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

.project-hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

}


/*==============================
  IMAGE
==============================*/

.project-hero .page-hero-image{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:center;

    transform:scale(1.08);

    animation:heroZoom 12s ease forwards;

    z-index:1;

}


/*==============================
  OVERLAY
==============================*/

.project-hero .page-hero-overlay{

    position:absolute;

    inset:0;

    z-index:2;

    background:
    linear-gradient(
        90deg,
        rgba(5,18,10,.88) 0%,
        rgba(20,60,35,.75) 45%,
        rgba(20,60,35,.45) 100%
    );

}


/*==============================
  CONTENT
==============================*/

.project-hero .page-hero-content{

    position:relative;

    z-index:3;

    max-width:760px;

    color:#ffffff;

}

.project-hero .page-hero-badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:12px 24px;

    background:rgba(255,255,255,.08);

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

    backdrop-filter:blur(12px);

    border-radius:50px;

    font-size:.9rem;

    font-weight:600;

    margin-bottom:30px;

}

.project-hero .page-hero-badge i{

    color:#f7941d;

}

.project-hero h1{

    font-size:clamp(3rem,5vw,5rem);

    line-height:1.1;

    margin-bottom:30px;

}

.project-hero p{

    font-size:1.08rem;

    line-height:1.9;

    color:rgba(255,255,255,.92);

    margin-bottom:45px;

}


/*==============================
  BUTTONS
==============================*/

.project-hero .page-hero-buttons{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

}


/*==============================
  OUTLINE BUTTON
==============================*/

.project-hero .btn-outline{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:16px 34px;

    border:2px solid rgba(255,255,255,.30);

    border-radius:50px;

    color:#ffffff;

    text-decoration:none;

    transition:.35s;

}

.project-hero .btn-outline:hover{

    background:#ffffff;

    color:#1f5d3a;

}


/*=====================================================
  PROJECT HIGHLIGHTS
=====================================================*/

.project-highlights{

    position:relative;

    margin-top:-70px;

    z-index:20;

}

.highlights-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}

.highlight-item{

    display:flex;

    align-items:center;

    gap:18px;

    padding:30px;

    background:#ffffff;

    border-radius:20px;

    box-shadow:0 20px 50px rgba(15,23,42,.08);

    transition:.35s;

}

.highlight-item:hover{

    transform:translateY(-8px);

}

.highlight-item i{

    width:65px;

    height:65px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:18px;

    background:rgba(31,93,58,.10);

    color:#1f5d3a;

    font-size:1.6rem;

}

.highlight-item h4{

    color:#0f172a;

    margin-bottom:8px;

}

.highlight-item p{

    color:#64748b;

    margin:0;

}


/*==============================
  ANIMATION
==============================*/

@keyframes heroZoom{

    from{

        transform:scale(1.08);

    }

    to{

        transform:scale(1);

    }

}


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

@media(max-width:1200px){

    .highlights-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .project-hero{

        min-height:85vh;

        padding:120px 0 80px;

    }

    .project-hero h1{

        font-size:2.5rem;

    }

    .project-hero .page-hero-buttons{

        flex-direction:column;

        align-items:flex-start;

    }

    .project-highlights{

        margin-top:60px;

    }

    .highlights-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:576px){

    .project-hero{

        min-height:75vh;

    }

    .project-hero h1{

        font-size:2rem;

    }

    .project-hero p{

        font-size:1rem;

    }

}

/*======================================================
  PROJECT OVERVIEW
======================================================*/

.project-overview{

    padding:120px 0;

    background:#ffffff;

}


/*==============================
  GRID
==============================*/

.overview-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

}


/*==============================
  IMAGE
==============================*/

.overview-image{

    position:relative;

    overflow:hidden;

    border-radius:28px;

    box-shadow:0 25px 60px rgba(15,23,42,.12);

}

.overview-image img{

    width:100%;

    display:block;

    object-fit:cover;

    transition:.6s;

}

.overview-image:hover img{

    transform:scale(1.05);

}


/*==============================
  CONTENT
==============================*/

.overview-content{

    max-width:620px;

}

.overview-content h2{

    margin:25px 0;

    font-size:clamp(2.2rem,4vw,3.4rem);

    line-height:1.2;

    color:#0f172a;

}

.overview-content p{

    margin-bottom:22px;

    color:#64748b;

    line-height:1.9;

    font-size:1rem;

}

.overview-content strong{

    color:#1f5d3a;

    font-weight:600;

}


/*==============================
  CITATION
==============================*/

.project-quote{

    margin-top:40px;

    padding:35px;

    background:#f8fafc;

    border-left:6px solid #1f5d3a;

    border-radius:18px;

}

.project-quote p{

    margin:0;

    font-size:1.1rem;

    font-style:italic;

    color:#334155;

}

.project-quote span{

    display:block;

    margin-top:20px;

    font-weight:700;

    color:#1f5d3a;

}


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

@media(max-width:992px){

    .overview-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .overview-content{

        max-width:100%;

    }

}

@media(max-width:768px){

    .project-overview{

        padding:90px 0;

    }

    .overview-content h2{

        font-size:2rem;

    }

}

@media(max-width:576px){

    .project-overview{

        padding:70px 0;

    }

    .overview-grid{

        gap:35px;

    }

    .overview-image{

        border-radius:20px;

    }

    .project-quote{

        padding:25px;

    }

}

/*======================================================
  PROJECT FACTS
======================================================*/

.project-facts{

    padding:120px 0;

    background:#f8fafc;

}


/*==============================
  GRID
==============================*/

.facts-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

    margin-top:70px;

}


/*==============================
  CARD
==============================*/

.fact-card{

    position:relative;

    background:#ffffff;

    padding:40px 35px;

    border-radius:24px;

    border:1px solid #e5e7eb;

    overflow:hidden;

    transition:.35s ease;

    box-shadow:0 12px 35px rgba(15,23,42,.05);

}

.fact-card:hover{

    transform:translateY(-10px);

    border-color:#1f5d3a;

    box-shadow:0 20px 55px rgba(15,23,42,.10);

}


/*==============================
  ICON
==============================*/

.fact-icon{

    width:75px;

    height:75px;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:20px;

    background:rgba(31,93,58,.08);

    margin-bottom:30px;

    transition:.35s;

}

.fact-icon i{

    font-size:2rem;

    color:#1f5d3a;

}

.fact-card:hover .fact-icon{

    background:#1f5d3a;

    transform:rotate(-8deg);

}

.fact-card:hover .fact-icon i{

    color:#ffffff;

}


/*==============================
  TITLE
==============================*/

.fact-card h3{

    font-size:1.35rem;

    color:#0f172a;

    margin-bottom:15px;

}


/*==============================
  TEXT
==============================*/

.fact-card p{

    color:#64748b;

    line-height:1.8;

    margin:0;

}


/*==============================
  TOP BAR
==============================*/

.fact-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:5px;

    background:#1f5d3a;

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s;

}

.fact-card:hover::before{

    transform:scaleX(1);

}


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

@media(max-width:1200px){

    .facts-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .project-facts{

        padding:90px 0;

    }

    .facts-grid{

        grid-template-columns:1fr;

    }

}

@media(max-width:576px){

    .project-facts{

        padding:70px 0;

    }

    .fact-card{

        padding:30px 25px;

        border-radius:20px;

    }

    .fact-icon{

        width:65px;

        height:65px;

    }

    .fact-icon i{

        font-size:1.7rem;

    }

}

/*======================================================
  PROJECT COMPONENTS
======================================================*/

.project-components{

    padding:120px 0;

    background:#ffffff;

}


/*==============================
  GRID
==============================*/

.component-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:center;

    margin-top:100px;

}

.component-grid:first-of-type{

    margin-top:70px;

}


/*==============================
  REVERSE
==============================*/

.component-grid.reverse{

    direction:rtl;

}

.component-grid.reverse>*{

    direction:ltr;

}


/*==============================
  IMAGE
==============================*/

.component-image{

    position:relative;

    overflow:hidden;

    border-radius:28px;

    box-shadow:0 25px 60px rgba(15,23,42,.12);

}

.component-image img{

    width:100%;

    height:520px;

    object-fit:cover;

    display:block;

    transition:.6s ease;

}

.component-grid:hover .component-image img{

    transform:scale(1.06);

}


/*==============================
  CONTENT
==============================*/

.component-content{

    max-width:560px;

}

.component-badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 22px;

    background:rgba(31,93,58,.08);

    color:#1f5d3a;

    border-radius:50px;

    font-weight:600;

    margin-bottom:25px;

}

.component-content h3{

    font-size:2.5rem;

    color:#0f172a;

    margin-bottom:25px;

}

.component-content p{

    color:#64748b;

    line-height:1.9;

    margin-bottom:30px;

}


/*==============================
  LIST
==============================*/

.component-content ul{

    list-style:none;

    padding:0;

    margin:0;

}

.component-content li{

    display:flex;

    align-items:center;

    gap:14px;

    margin-bottom:18px;

    color:#334155;

    font-weight:500;

}

.component-content li i{

    color:#1f5d3a;

    font-size:1rem;

}


/*==============================
  IMAGE SHADOW
==============================*/

.component-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.18),
        transparent
    );

    opacity:0;

    transition:.4s;

}

.component-grid:hover .component-image::after{

    opacity:1;

}


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

@media(max-width:992px){

    .component-grid{

        grid-template-columns:1fr;

        gap:45px;

        margin-top:70px;

    }

    .component-grid.reverse{

        direction:ltr;

    }

    .component-content{

        max-width:100%;

    }

}

@media(max-width:768px){

    .project-components{

        padding:90px 0;

    }

    .component-image img{

        height:380px;

    }

    .component-content h3{

        font-size:2rem;

    }

}

@media(max-width:576px){

    .project-components{

        padding:70px 0;

    }

    .component-grid{

        gap:30px;

    }

    .component-image{

        border-radius:20px;

    }

    .component-image img{

        height:280px;

    }

    .component-content h3{

        font-size:1.8rem;

    }

    .component-badge{

        font-size:.9rem;

    }

}

/*======================================================
  RESPONSIVE - AJOUT
======================================================*/

@media (max-width:992px){

    .project-hero .page-hero-content,
    .overview-content,
    .component-content{

        max-width:100%;

        width:100%;

    }

    .project-hero .page-hero-buttons{

        justify-content:flex-start;

        flex-wrap:wrap;

    }

}


@media (max-width:768px){

    .project-hero{

        padding:130px 0 80px;

    }

    .project-hero .page-hero-content{

        text-align:center;

        margin:auto;

    }

    .project-hero .page-hero-badge{

        margin-inline:auto;

    }

    .project-hero .page-hero-buttons{

        justify-content:center;

        align-items:center;

    }

    .project-hero .btn,
    .project-hero .btn-outline{

        width:100%;

    }

    .overview-content,
    .component-content{

        text-align:center;

    }

    .component-badge{

        margin-inline:auto;

    }

    .component-content ul{

        display:flex;

        flex-direction:column;

        align-items:center;

    }

    .highlight-item{

        flex-direction:column;

        text-align:center;

    }

}


@media (max-width:576px){

    .project-hero h1{

        line-height:1.25;

    }

    .highlight-item,
    .fact-card{

        padding:25px 20px;

    }

    .project-quote{

        padding:20px;

    }

    .component-image img{

        width:100%;

        height:auto;

        aspect-ratio:4/3;

    }

    .overview-image img{

        width:100%;

        height:auto;

    }

}


/* Sécurité Responsive */

.project-hero img,
.overview-image img,
.component-image img{

    max-width:100%;

}

.highlight-item,
.fact-card,
.component-content{

    width:100%;

}