/* =========================================================
   NOVASKY CONSULTING — RÉALISATIONS / DÉTAIL
   VERSION COMPACTE — CARROUSEL PRINCIPAL
   ========================================================= */

.project-page{

    --navy:#0B1440;
    --blue:#2E9BE6;
    --gold:#F5A623;
    --white:#fff;
    --text:#17213D;
    --muted:#68718A;
    --light:#F6F8FC;
    --border:rgba(11,20,64,.09);

    color:var(--text);
    background:#fff;
}


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

.project-page *,
.project-page *::before,
.project-page *::after{
    box-sizing:border-box;
}

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

.project-page button{
    font:inherit;
}

.project-page a{
    -webkit-tap-highlight-color:transparent;
}

.project-container{
    width:min(1180px,calc(100% - 32px));
    margin:0 auto;
}


/* =========================================================
   BOUTON RETOUR
   ========================================================= */

.floating-back-realisation{

    position:fixed;

    left:16px;
    top:50%;

    z-index:800;

    display:inline-flex;
    align-items:center;

    gap:8px;

    padding:5px 10px 5px 5px;

    color:var(--navy);

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

    border:1px solid var(--border);

    border-radius:50px;

    box-shadow:
        0 7px 22px rgba(11,20,64,.10);

    text-decoration:none;

    transform:translateY(-50%);

    backdrop-filter:blur(10px);

    transition:.25s ease;
}

.floating-back-realisation:hover{

    color:var(--blue);

    transform:
        translate(-3px,-50%);

    box-shadow:
        0 10px 28px rgba(11,20,64,.14);
}

.floating-back-icon{

    width:29px;
    height:29px;

    display:grid;
    place-items:center;

    color:#fff;

    background:var(--navy);

    border-radius:50%;
}

.floating-back-icon svg{

    width:14px;
    height:14px;

    fill:none;

    stroke:currentColor;

    stroke-width:1.8;

    stroke-linecap:round;
    stroke-linejoin:round;
}

.floating-back-content{

    display:grid;

    line-height:1.1;
}

.floating-back-content small{

    color:var(--muted);

    font:
        700 8px/1
        Montserrat,
        sans-serif;

    letter-spacing:.12em;

    text-transform:uppercase;
}

.floating-back-content strong{

    margin-top:3px;

    font:
        700 10px/1
        Montserrat,
        sans-serif;
}


/* =========================================================
   TITRE DE PAGE
   ========================================================= */

.project-page-title{

    position:relative;

    overflow:hidden;

    padding:108px 0 22px;

    background:

        radial-gradient(
            circle at 85% 35%,
            rgba(46,155,230,.09),
            transparent 28%
        ),

        linear-gradient(
            180deg,
            #F8FAFD,
            #F5F7FB
        );

    border-bottom:1px solid var(--border);
}

.project-page-title::after{

    content:"";

    position:absolute;

    width:210px;
    height:210px;

    right:-105px;
    top:38px;

    border:
        1px solid
        rgba(46,155,230,.11);

    border-radius:50%;

    pointer-events:none;
}

.page-title-content{

    position:relative;

    z-index:2;

    max-width:760px;
}

.page-title-eyebrow{

    display:block;

    margin-bottom:8px;

    color:var(--blue);

    font:
        700 8px/1
        Montserrat,
        sans-serif;

    letter-spacing:.17em;

    text-transform:uppercase;
}

.page-title-content h1{

    margin:0;

    color:var(--navy);

    font:
        800 clamp(30px,4vw,48px)/1.02
        Montserrat,
        sans-serif;

    letter-spacing:-.045em;
}

.page-title-content p{

    max-width:650px;

    margin:9px 0 0;

    color:var(--muted);

    font:
        400 12px/1.6
        Lato,
        sans-serif;
}


/* =========================================================
   BREADCRUMB
   ========================================================= */

.project-breadcrumb{

    display:flex;

    align-items:center;

    flex-wrap:wrap;

    gap:6px;

    margin-top:15px;

    color:var(--muted);

    font:
        500 9px/1.3
        Lato,
        sans-serif;
}

.project-breadcrumb a{

    color:var(--muted);

    text-decoration:none;

    transition:.2s ease;
}

.project-breadcrumb a:hover{
    color:var(--blue);
}

.project-breadcrumb strong{

    color:var(--navy);

    font-weight:700;
}

.project-breadcrumb span{
    color:var(--gold);
}


/* =========================================================
   DÉTAIL PROJET
   ========================================================= */

.project-details{

    padding:38px 0 45px;
}

.project-details-grid{

    display:grid;

    grid-template-columns:
        245px
        minmax(0,1fr);

    gap:30px;

    align-items:start;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.project-sidebar{

    position:sticky;

    top:90px;
}

.project-side-box{

    padding:17px;

    background:#fff;

    border:
        1px solid
        var(--border);

    border-radius:6px;

    box-shadow:
        0 6px 20px
        rgba(11,20,64,.045);
}

.project-side-box
+.project-side-box{

    margin-top:12px;
}

.side-eyebrow{

    display:block;

    margin-bottom:6px;

    color:var(--blue);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.15em;

    text-transform:uppercase;
}

.project-side-box h2{

    margin:0 0 12px;

    color:var(--navy);

    font:
        800 17px/1.15
        Montserrat,
        sans-serif;

    letter-spacing:-.025em;
}


/* =========================================================
   LISTE PROJETS
   ========================================================= */

.project-list{

    display:grid;

    gap:4px;
}

.project-list a{

    display:flex;

    align-items:center;

    gap:8px;

    padding:9px 10px;

    color:var(--text);

    background:
        rgba(11,20,64,.025);

    border-radius:4px;

    text-decoration:none;

    font:
        600 9px/1.25
        Montserrat,
        sans-serif;

    transition:.22s ease;
}

.project-list a:hover{

    color:var(--blue);

    background:
        rgba(46,155,230,.07);

    transform:translateX(2px);
}

.project-list a.active{

    color:#fff;

    background:var(--navy);

    box-shadow:
        0 4px 12px
        rgba(11,20,64,.12);
}

.project-list-number{

    min-width:20px;

    color:var(--gold);

    font:
        800 8px/1
        Montserrat,
        sans-serif;
}


/* =========================================================
   INFORMATIONS
   ========================================================= */

.project-info-list{

    border-top:
        1px solid
        var(--border);
}

.project-info-item{

    display:flex;

    flex-direction:column;

    gap:4px;

    padding:10px 0;

    border-bottom:
        1px solid
        var(--border);
}

.project-info-item:last-child{

    padding-bottom:0;

    border-bottom:0;
}

.project-info-item span{

    color:var(--muted);

    font:
        600 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.07em;

    text-transform:uppercase;
}

.project-info-item strong{

    color:var(--navy);

    font:
        700 10px/1.35
        Lato,
        sans-serif;
}


/* =========================================================
   CONTENU
   ========================================================= */

.project-content{
    min-width:0;
}


/* =========================================================
   CARROUSEL PRINCIPAL
   ========================================================= */

.project-main-visual{

    position:relative;

    overflow:hidden;

    background:var(--navy);

    border-radius:7px;

    box-shadow:
        0 14px 34px
        rgba(11,20,64,.11);

    outline:none;
}

.carousel-image-wrapper{

    position:relative;

    height:auto;
    aspect-ratio:16 / 9;
    max-height:560px;
    background:#0B1440;

    overflow:hidden;
}

/* image dont le format s'éloigne du cadre : affichée entière, sans rognage ni étirement */
.carousel-image-wrapper::before{
    content:"";
    position:absolute;
    inset:-30px;
    background:var(--nv-bg) center/cover no-repeat;
    filter:blur(26px) brightness(.55) saturate(1.2);
    opacity:0;
    transition:opacity .35s ease;
}
.carousel-image-wrapper.is-fit::before{ opacity:1; }
.carousel-image-wrapper.is-fit .project-visual-image{ object-fit:contain; }
.carousel-image-wrapper .project-visual-image{ position:relative; }
.carousel-image-wrapper.is-fit:hover .project-visual-image,
.project-main-visual:hover .carousel-image-wrapper.is-fit .project-visual-image{ transform:none; }

.project-visual-image{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:
        transform .7s
        cubic-bezier(.2,.7,.2,1);
}

.project-main-visual:hover
.project-visual-image{

    transform:scale(1.025);
}

.project-visual-overlay{

    position:absolute;

    inset:0;

    z-index:2;

    pointer-events:none;

    background:

        linear-gradient(
            100deg,
            rgba(11,20,64,.68),
            rgba(11,20,64,.13) 68%,
            rgba(11,20,64,.02)
        );
}


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

.carousel-slide-next{

    animation:
        carouselNext .48s
        cubic-bezier(.2,.7,.2,1);
}

.carousel-slide-prev{

    animation:
        carouselPrev .48s
        cubic-bezier(.2,.7,.2,1);
}

@keyframes carouselNext{

    from{
        opacity:.35;
        transform:
            translateX(28px)
            scale(1.015);
    }

    to{
        opacity:1;
        transform:
            translateX(0)
            scale(1);
    }
}

@keyframes carouselPrev{

    from{
        opacity:.35;
        transform:
            translateX(-28px)
            scale(1.015);
    }

    to{
        opacity:1;
        transform:
            translateX(0)
            scale(1);
    }
}


/* =========================================================
   MARQUE PROJET
   ========================================================= */

.visual-project-mark{

    position:absolute;

    left:20px;
    top:19px;

    z-index:4;

    display:flex;

    align-items:center;

    gap:7px;

    color:#fff;
}

.visual-project-mark::before{

    content:"";

    width:22px;
    height:1px;

    background:var(--gold);
}

.visual-project-mark span{

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.14em;

    text-transform:uppercase;
}

.visual-project-mark strong{

    color:var(--gold);

    font:
        800 18px/1
        Montserrat,
        sans-serif;
}


/* =========================================================
   CATÉGORIE
   ========================================================= */

.visual-category{

    position:absolute;

    right:20px;
    top:20px;

    z-index:4;

    padding:7px 9px;

    color:#fff;

    background:
        rgba(11,20,64,.48);

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

    border-radius:3px;

    backdrop-filter:blur(8px);
}

.visual-category span{

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.12em;

    text-transform:uppercase;
}


/* =========================================================
   COMPTEUR
   ========================================================= */

.visual-counter{

    position:absolute;

    right:20px;
    bottom:18px;

    z-index:4;

    display:flex;

    align-items:baseline;

    gap:5px;

    color:#fff;

    text-shadow:
        0 2px 8px
        rgba(0,0,0,.25);
}

.visual-counter strong{

    color:var(--gold);

    font:
        800 21px/1
        Montserrat,
        sans-serif;
}

.visual-counter span{

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

    font:
        600 9px/1
        Montserrat,
        sans-serif;
}


/* =========================================================
   FLÈCHES
   ========================================================= */

.carousel-arrow{

    position:absolute;

    top:50%;

    z-index:5;

    width:38px;
    height:38px;

    display:grid;

    place-items:center;

    color:#fff;

    background:
        rgba(11,20,64,.55);

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

    border-radius:50%;

    cursor:pointer;

    transform:translateY(-50%);

    backdrop-filter:blur(8px);

    transition:
        background .25s ease,
        transform .25s ease,
        border-color .25s ease;
}

.carousel-arrow:hover{

    background:var(--blue);

    border-color:var(--blue);

    transform:
        translateY(-50%)
        scale(1.05);
}

.carousel-arrow:focus-visible{

    outline:
        2px solid
        var(--gold);

    outline-offset:3px;
}

.carousel-arrow svg{

    width:18px;
    height:18px;

    fill:none;

    stroke:currentColor;

    stroke-width:1.8;

    stroke-linecap:round;

    stroke-linejoin:round;
}

.carousel-arrow-prev{
    left:17px;
}

.carousel-arrow-next{
    right:17px;
}


/* =========================================================
   LÉGENDE
   ========================================================= */

.carousel-caption{

    min-height:72px;

    display:grid;

    grid-template-columns:
        40px
        minmax(0,1fr)
        120px;

    align-items:center;

    gap:13px;

    padding:12px 18px;

    background:#fff;

    border-top:
        1px solid
        var(--border);
}

.carousel-caption-number{

    color:var(--gold);

    font:
        800 16px/1
        Montserrat,
        sans-serif;
}

.carousel-caption-content{

    min-width:0;
}

.carousel-caption-content > span{

    display:block;

    margin-bottom:3px;

    color:var(--blue);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.carousel-caption-content h3{

    overflow:hidden;

    margin:0;

    color:var(--navy);

    font:
        700 12px/1.25
        Montserrat,
        sans-serif;

    white-space:nowrap;

    text-overflow:ellipsis;
}

.carousel-caption-progress{

    width:100%;
}

.carousel-progress-track{

    width:100%;
    height:2px;

    overflow:hidden;

    background:
        rgba(11,20,64,.09);

    border-radius:10px;
}

.carousel-progress-value{

    display:block;

    width:25%;
    height:100%;

    background:
        linear-gradient(
            90deg,
            var(--blue),
            var(--gold)
        );

    border-radius:10px;

    transition:
        width .45s
        cubic-bezier(.2,.7,.2,1);
}


/* =========================================================
   FALLBACK
   ========================================================= */

.image-fallback{

    width:100%;
    height:100%;

    display:grid;

    place-content:center;

    gap:5px;

    padding:12px;

    text-align:center;

    background:
        linear-gradient(
            135deg,
            #F4F6FA,
            #EDF1F7
        );
}

.image-fallback::before{

    content:"NOVASKY";

    color:
        rgba(11,20,64,.08);

    font:
        800 22px/1
        Montserrat,
        sans-serif;

    letter-spacing:.08em;
}

.image-fallback span{

    color:var(--navy);

    font:
        700 10px/1.3
        Montserrat,
        sans-serif;
}

.image-fallback small{

    color:var(--muted);

    font-size:9px;
}


/* =========================================================
   EN-TÊTE PROJET
   ========================================================= */

.project-content-header{

    padding:22px 0 19px;

    border-bottom:
        1px solid
        var(--border);
}

.project-meta{

    display:flex;

    align-items:center;

    gap:7px;

    margin-bottom:8px;

    color:var(--blue);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.13em;

    text-transform:uppercase;
}

.project-meta i{

    width:20px;
    height:1px;

    background:var(--gold);
}

.project-meta strong{
    color:var(--gold);
}

.project-content-header h2{

    margin:0;

    color:var(--navy);

    font:
        800 clamp(25px,3.2vw,38px)/1.05
        Montserrat,
        sans-serif;

    letter-spacing:-.04em;
}

.project-intro{

    max-width:700px;

    margin:8px 0 0;

    color:var(--muted);

    font:
        400 13px/1.65
        Lato,
        sans-serif;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.project-description{

    padding:24px 0 0;
}

.content-eyebrow{

    display:block;

    margin-bottom:7px;

    color:var(--blue);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.17em;

    text-transform:uppercase;
}

.project-description h3{

    margin:0 0 7px;

    color:var(--navy);

    font:
        800 20px/1.15
        Montserrat,
        sans-serif;
}

.project-description p{

    max-width:760px;

    margin:0;

    color:var(--muted);

    font:
        400 12px/1.7
        Lato,
        sans-serif;
}


/* =========================================================
   INTERVENTION
   ========================================================= */

.project-intervention{

    display:grid;

    grid-template-columns:
        .75fr
        1.25fr;

    gap:22px;

    align-items:center;

    margin-top:22px;

    padding:18px 20px;

    background:var(--light);

    border-left:
        3px solid
        var(--gold);
}

.project-intervention h3{

    max-width:360px;

    margin:0;

    color:var(--navy);

    font:
        700 16px/1.25
        Montserrat,
        sans-serif;
}


/* =========================================================
   TAGS
   ========================================================= */

.service-tags{

    display:flex;

    flex-wrap:wrap;

    gap:6px;
}

.service-tags span{

    display:inline-flex;

    align-items:center;

    padding:6px 8px;

    color:var(--navy);

    background:#fff;

    border:
        1px solid
        var(--border);

    border-radius:3px;

    font:
        600 8px/1.2
        Montserrat,
        sans-serif;

    transition:.2s ease;
}

.service-tags span:hover{

    color:var(--blue);

    border-color:
        rgba(46,155,230,.35);

    transform:translateY(-1px);
}


/* (menu mobile : désormais dans css/shared.css, commun à toutes les pages) */


/* =========================================================
   REVEAL
   ========================================================= */

[data-reveal]{

    opacity:0;

    transform:translateY(12px);

    transition:
        opacity .55s ease,
        transform .55s
        cubic-bezier(.2,.7,.2,1);
}

[data-reveal].is-visible{

    opacity:1;

    transform:translateY(0);
}


/* =========================================================
   CTA
   ========================================================= */

.project-cta{

    padding:48px 0;

    background:
        linear-gradient(
            135deg,
            #F7F9FC,
            #EEF4FA
        );

    border-top:
        1px solid
        var(--border);
}

.cta-inner{

    position:relative;

    overflow:hidden;

    padding:38px;

    background:var(--navy);

    border-radius:8px;

    box-shadow:
        0 15px 35px
        rgba(11,20,64,.12);
}

.cta-inner::after{

    content:"";

    position:absolute;

    width:240px;
    height:240px;

    right:-100px;
    top:-120px;

    border:
        1px solid
        rgba(46,155,230,.22);

    border-radius:50%;
}

.cta-inner .content-eyebrow{
    color:var(--gold);
}

.cta-inner h2{

    position:relative;

    z-index:2;

    margin:0;

    color:#fff;

    font:
        800 clamp(27px,4vw,40px)/1.05
        Montserrat,
        sans-serif;

    letter-spacing:-.035em;
}

.cta-inner p{

    position:relative;

    z-index:2;

    max-width:570px;

    margin:9px 0 18px;

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

    font:
        400 12px/1.65
        Lato,
        sans-serif;
}

.cta-button{

    position:relative;

    z-index:2;

    display:inline-flex;

    align-items:center;

    gap:14px;

    padding:10px 15px;

    color:var(--navy);

    background:#fff;

    border-radius:4px;

    text-decoration:none;

    font:
        700 9px/1
        Montserrat,
        sans-serif;

    transition:.25s ease;
}

.cta-button:hover{

    color:#fff;

    background:var(--blue);

    transform:translateY(-2px);

    box-shadow:
        0 8px 20px
        rgba(46,155,230,.25);
}


/* =========================================================
   NAVIGATION PROJETS
   ========================================================= */

.project-navigation{

    padding:28px 0;

    background:#fff;

    border-top:
        1px solid
        var(--border);
}

.navigation-inner{

    display:grid;

    grid-template-columns:
        1fr
        auto
        1fr;

    align-items:center;

    gap:20px;
}

.project-nav{

    display:flex;

    flex-direction:column;

    gap:5px;

    max-width:260px;

    color:var(--navy);

    text-decoration:none;

    transition:.25s ease;
}

.project-nav:hover{
    color:var(--blue);
}

.project-nav-next{

    justify-self:end;

    text-align:right;
}

.nav-small{

    color:var(--muted);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.11em;

    text-transform:uppercase;
}

.project-nav strong{

    overflow:hidden;

    font:
        700 11px/1.3
        Montserrat,
        sans-serif;

    white-space:nowrap;

    text-overflow:ellipsis;
}

.navigation-center{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:3px;

    color:var(--navy);

    text-decoration:none;
}

.navigation-center span{

    color:var(--blue);

    font:
        700 7px/1
        Montserrat,
        sans-serif;

    letter-spacing:.13em;
}

.navigation-center strong{

    color:var(--gold);

    font:
        800 12px/1
        Montserrat,
        sans-serif;
}


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

@media(max-width:950px){

    .project-details-grid{

        grid-template-columns:
            220px
            minmax(0,1fr);

        gap:24px;
    }

    .project-side-box{
        padding:15px;
    }

    .carousel-image-wrapper{
        height:auto;
    }

    .project-intervention{

        grid-template-columns:1fr;

        gap:15px;
    }
}


/* =========================================================
   TABLETTE / MOBILE LARGE
   ========================================================= */

@media(max-width:780px){

    .project-page-title{
        padding-top:100px;
    }

    .project-details-grid{

        grid-template-columns:1fr;

        gap:25px;
    }

    .project-sidebar{
        position:static;
    }

    .project-side-box:first-child{
        overflow:hidden;
    }

    .project-list{

        display:flex;

        gap:6px;

        overflow-x:auto;

        padding-bottom:2px;

        scrollbar-width:none;
    }

    .project-list::-webkit-scrollbar{
        display:none;
    }

    .project-list a{

        flex:0 0 auto;

        min-width:max-content;
    }

    .project-info-box{
        display:none;
    }

    .carousel-image-wrapper{
        height:auto;
    }
}


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

@media(max-width:600px){

    .project-container{
        width:calc(100% - 20px);
    }

    .project-page-title{

        padding:
            88px
            0
            18px;
    }

    .page-title-content h1{
        font-size:31px;
    }

    .page-title-content p{

        font-size:11px;

        line-height:1.55;
    }

    .project-breadcrumb{

        margin-top:11px;

        font-size:8px;
    }

    .project-details{

        padding:
            28px
            0
            35px;
    }

    .project-side-box{
        padding:13px;
    }

    .project-side-box h2{
        font-size:16px;
    }


    /* CARROUSEL */

    .project-main-visual{
        border-radius:5px;
    }

    .carousel-image-wrapper{
        height:auto; aspect-ratio:4 / 3;
    }

    .project-visual-overlay{

        background:
            linear-gradient(
                100deg,
                rgba(11,20,64,.58),
                rgba(11,20,64,.08) 72%
            );
    }

    .visual-project-mark{

        left:13px;
        top:13px;
    }

    .visual-project-mark strong{
        font-size:16px;
    }

    .visual-category{

        right:13px;
        top:13px;

        padding:6px 7px;
    }

    .visual-counter{

        right:13px;
        bottom:13px;
    }

    .visual-counter strong{
        font-size:18px;
    }

    .carousel-arrow{

        width:32px;
        height:32px;
    }

    .carousel-arrow-prev{
        left:10px;
    }

    .carousel-arrow-next{
        right:10px;
    }

    .carousel-arrow svg{

        width:15px;
        height:15px;
    }


    /* LÉGENDE */

    .carousel-caption{

        min-height:62px;

        grid-template-columns:
            32px
            minmax(0,1fr)
            65px;

        gap:8px;

        padding:
            10px
            12px;
    }

    .carousel-caption-number{
        font-size:14px;
    }

    .carousel-caption-content > span{
        font-size:6px;
    }

    .carousel-caption-content h3{
        font-size:10px;
    }


    /* CONTENU */

    .project-content-header{

        padding:
            18px
            0
            16px;
    }

    .project-content-header h2{
        font-size:26px;
    }

    .project-intro{
        font-size:12px;
    }

    .project-description{
        padding-top:20px;
    }

    .project-description h3{
        font-size:18px;
    }

    .project-description p{

        font-size:11px;

        line-height:1.65;
    }

    .project-intervention{

        margin-top:18px;

        padding:16px;
    }

    .project-intervention h3{
        font-size:15px;
    }


    /* CTA */

    .project-cta{
        padding:32px 0;
    }

    .cta-inner{
        padding:25px 20px;
    }


    /* NAVIGATION */

    .project-navigation{
        padding:22px 0;
    }

    .navigation-inner{
        gap:10px;
    }

    .project-nav strong{
        max-width:100px;
    }

    .navigation-center span{
        font-size:6px;
    }

    .navigation-center strong{
        font-size:10px;
    }


    /* RETOUR */

    .floating-back-realisation{

        left:8px;

        padding:5px;
    }

    .floating-back-content{
        display:none;
    }
}


/* =========================================================
   TRÈS PETITS ÉCRANS
   ========================================================= */

@media(max-width:400px){

    .project-container{
        width:calc(100% - 16px);
    }

    .page-title-content h1{
        font-size:28px;
    }

    .carousel-image-wrapper{
        height:200px;
    }

    .project-content-header h2{
        font-size:24px;
    }

    .carousel-caption{

        grid-template-columns:
            28px
            minmax(0,1fr)
            45px;
    }

    .carousel-caption-content h3{
        font-size:9px;
    }

    .project-nav strong{
        max-width:80px;
    }
}


/* =========================================================
   ACCESSIBILITÉ
   ========================================================= */

@media(prefers-reduced-motion:reduce){

    *,
    *::before,
    *::after{

        scroll-behavior:auto!important;

        animation-duration:.01ms!important;

        animation-iteration-count:1!important;

        transition-duration:.01ms!important;
    }
}

/* Espace sous le header fixe partagé */
.project-page #main-content{
    padding-top:24px;
}


/* Bouton « retour » : en bas à gauche pour ne pas masquer la liste des projets */
.floating-back-realisation{
    top:auto;
    bottom:28px;
    transform:none;
}


/* =========================================================
   CARROUSEL — IMAGES NETTES + LUEUR AUX COINS
   Plus de voile sombre sur l'image : seules des lumières
   douces éclairent les coins. Les repères (projet, compteur)
   ont leur propre pastille pour rester lisibles.
   ========================================================= */

.carousel-image-wrapper{
    height:440px;
    background:#0B1440;
}

.project-visual-overlay{
    background:
        radial-gradient(circle at 0% 0%, rgba(46,155,230,.40) 0%, transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(245,166,35,.32) 0%, transparent 36%);
    mix-blend-mode:screen;
}

.visual-project-mark,
.visual-counter{
    padding:7px 13px;
    border-radius:999px;
    background:rgba(7,16,47,.52);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
}

.visual-project-mark::before{ display:none; }

@media (max-width:760px){
    .carousel-image-wrapper{ height:250px; }
    .project-visual-overlay{
        background:
            radial-gradient(circle at 0% 0%, rgba(46,155,230,.40) 0%, transparent 40%),
            radial-gradient(circle at 100% 100%, rgba(245,166,35,.32) 0%, transparent 38%);
    }
}


/* ----- Bande de vignettes (jusqu'à 12 images et plus) ----- */

.carousel-thumbs{
    display:flex;
    gap:10px;
    margin:14px 0 6px;
    padding:4px 2px 10px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    scrollbar-color:rgba(11,20,64,.25) transparent;
}

.carousel-thumbs[hidden]{ display:none; }

.carousel-thumb{
    position:relative;
    flex:0 0 auto;
    width:92px;
    height:62px;
    padding:0;
    overflow:hidden;
    border:2px solid transparent;
    border-radius:8px;
    background:#E8EDF7;
    opacity:.62;
    cursor:pointer;
    scroll-snap-align:center;
    transition:opacity .25s ease, border-color .25s ease, transform .25s ease;
}

.carousel-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.carousel-thumb:hover{ opacity:1; transform:translateY(-2px); }

.carousel-thumb.is-active{
    opacity:1;
    border-color:#F5A623;
}

.carousel-thumb.is-broken img{ visibility:hidden; }

.carousel-thumb:focus-visible{ outline:2px solid #2E9BE6; outline-offset:2px; }

@media (max-width:760px){
    .carousel-thumb{ width:72px; height:50px; }
}


/* =========================================================
   ARTICLES (INSIGHTS) — MÊME GABARIT QUE LE DÉTAIL RÉALISATION
   ========================================================= */

.article-cover{ margin-bottom:26px; }

.article-cover .carousel-image-wrapper{
    height:340px;
    background:linear-gradient(150deg,#2E9BE6,#0B1440);
}

.article-body{
    max-width:760px;
    color:var(--text);
}

.article-body h2{
    margin:34px 0 10px;
    color:var(--navy);
    font:800 clamp(19px,2vw,24px)/1.25 Montserrat,sans-serif;
    letter-spacing:-.01em;
}

.article-body h2:first-child{ margin-top:0; }

.article-body p{
    margin:0 0 16px;
    font:400 16px/1.8 Lato,sans-serif;
    color:#2b3552;
}

.article-body ul{
    margin:0 0 18px;
    padding:0;
    list-style:none;
}

.article-body li{
    position:relative;
    margin:0 0 9px;
    padding-left:24px;
    font:400 16px/1.7 Lato,sans-serif;
    color:#2b3552;
}

.article-body li::before{
    content:"";
    position:absolute;
    left:2px;
    top:.62em;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--gold);
    box-shadow:0 0 0 4px rgba(245,166,35,.16);
}

.article-body blockquote{
    margin:28px 0;
    padding:20px 24px;
    border-left:4px solid var(--blue);
    border-radius:0 10px 10px 0;
    background:linear-gradient(100deg,rgba(46,155,230,.09),rgba(46,155,230,.02));
    color:var(--navy);
    font:700 18px/1.55 Montserrat,sans-serif;
}

.article-page .project-list a{ font-size:10px; align-items:flex-start; }
.article-page .project-list-number{ padding-top:1px; }

@media (max-width:760px){
    .article-cover .carousel-image-wrapper{ height:210px; }
    .article-body p,.article-body li{ font-size:15.5px; }
}


/* =========================================================
   ARTICLES — TEXTE JUSTIFIÉ + RETOUR AUX INSIGHTS
   ========================================================= */

.article-body p,
.article-body li,
.article-body blockquote { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }

.article-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    padding: 9px 18px;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
    color: var(--novasky-marine, #0B1440);
    background: #fff;
    border: 1px solid rgba(11,20,64,.12);
    box-shadow: 0 6px 18px rgba(11,20,64,.08);
    transition: transform .25s ease, box-shadow .25s ease;
}

.article-back:hover { transform: translateX(-3px); box-shadow: 0 10px 24px rgba(11,20,64,.14); }


/* =========================================================
   PROJET — BLOCS DE DÉTAIL STRUCTURÉS
   ========================================================= */

.project-extra { max-width: 760px; margin-top: 22px; }

.project-extra-block {
    margin-top: 18px;
    padding: 16px 18px 16px 20px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(11,20,64,.08);
    border-left: 4px solid var(--blue, #2E9BE6);
    box-shadow: 0 6px 20px rgba(11,20,64,.05);
}

.project-extra-block:nth-child(even) { border-left-color: var(--gold, #F5A623); }

.project-extra-block h4 {
    margin: 0 0 8px;
    color: var(--navy, #0B1440);
    font: 800 14px/1.2 Montserrat, sans-serif;
}

.project-extra-block p {
    margin: 0;
    max-width: none;
    color: var(--muted);
    font: 400 12.5px/1.75 Lato, sans-serif;
    text-align: justify;
    hyphens: auto;
}

.project-extra-block p + ul { margin-top: 10px; }

.project-extra-block ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }

.project-extra-block li {
    position: relative;
    padding-left: 18px;
    color: var(--muted);
    font: 400 12.5px/1.65 Lato, sans-serif;
    text-align: justify;
}

.project-extra-block li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--gold, #F5A623);
}

.project-description p { text-align: justify; hyphens: auto; }


/* =========================================================
   VIDÉO DU PROJET
   ========================================================= */

.project-video { margin-top: 26px; }
.project-video[hidden] { display: none; }

.project-video-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    margin-top: 8px;
    overflow: hidden;
    border-radius: 16px;
    background: #0B1440;
    box-shadow: 0 18px 44px rgba(11,20,64,.18);
}

.project-video-frame video,
.project-video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    background: #000;
}

/* bouton retour (article) : espacement propre sous le sous-titre */
.article-back { margin-top: 14px; }


/* ligne « Vues » de la fiche Informations */
.project-info-item strong[data-views-key],
#overview-views {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--navy, #0B1440);
}

.project-info-item strong[data-views-key]::before,
#overview-views::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #18B3A4;
    box-shadow: 0 0 0 0 rgba(24,179,164,.55);
    animation: views-live 2s ease-out infinite;
}

@keyframes views-live {
    0% { box-shadow: 0 0 0 0 rgba(24,179,164,.55); }
    100% { box-shadow: 0 0 0 9px rgba(24,179,164,0); }
}

.carousel-image-wrapper { position: relative; }
.carousel-image-wrapper .views-pill { z-index: 6; }

.project-info-item[hidden] { display: none; }

.project-demo-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 22px;
    border-radius: 999px;
    font: 800 13px/1 Montserrat, sans-serif;
    text-decoration: none;
    color: #0B1440;
    background: linear-gradient(135deg, #F5A623, #FFD27A);
    box-shadow: 0 10px 26px rgba(245,166,35,.35);
    transition: transform .25s ease, box-shadow .25s ease;
}

.project-demo-link:hover { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(245,166,35,.45); }


/* =========================================================
   MOBILE : colonnes sans debordement + bouton Retour
   ========================================================= */
@media(max-width:780px){
    .project-details-grid{ grid-template-columns:minmax(0,1fr); }
    .project-details-grid > *, .project-sidebar, .project-side-box{ min-width:0; max-width:100%; }
    .project-list{ max-width:100%; }
    .project-extra-block, .project-description, .project-content{ overflow-wrap:anywhere; }
    .project-content img, .project-extra-block img, .project-content iframe, .project-content video{ max-width:100%; }
    .project-content table{ display:block; overflow-x:auto; max-width:100%; }
}
.project-back-btn{
    display:inline-flex; align-items:center; gap:8px;
    margin:0 0 18px; padding:10px 18px;
    border:1px solid rgba(11,20,64,.18); border-radius:999px;
    background:#fff; color:#0B1440;
    font:700 12px/1 Montserrat,sans-serif; letter-spacing:.04em; text-decoration:none;
    transition:background .25s,color .25s,transform .25s;
}
.project-back-btn:hover{ background:#0B1440; color:#fff; transform:translateX(-3px); }


/* =========================================================
   IMAGE PRINCIPALE : toujours pleine largeur du cadre (16/9)
   ========================================================= */
.carousel-image-wrapper,
.article-cover .carousel-image-wrapper,
.project-main-visual .carousel-image-wrapper{
    width:100% !important;
    height:auto !important;
    aspect-ratio:16 / 9;
    max-height:none !important;
}
.carousel-image-wrapper .project-visual-image{
    width:100%; height:100%; object-fit:cover;
}
.carousel-image-wrapper.is-fit .project-visual-image{ object-fit:contain; }
@media (max-width:780px){
    .carousel-image-wrapper,
    .article-cover .carousel-image-wrapper,
    .project-main-visual .carousel-image-wrapper{ aspect-ratio:4 / 3; }
}
