/* =====================================================
   VARIABLES GLOBALES
===================================================== */

:root{

    --bg-primary:#0b1120;
    --bg-secondary:#111827;
    --bg-card:#162033;

    --accent:#00d4ff;
    --accent-hover:#0099ff;

    --text-primary:#ffffff;
    --text-secondary:rgba(255,255,255,.78);

}
/* =====================================================
   RESET ET STYLES DE BASE
===================================================== */

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Inter",sans-serif;
    background:#0b1120;
    color:#ffffff;
    line-height:1.6;
}
body::before{

    content:"";

    position:fixed;

    inset:0;

    pointer-events:none;

    background:
    radial-gradient(
        circle at 15% 20%,
        rgba(0,212,255,.08),
        transparent 35%
    ),
    radial-gradient(
        circle at 85% 80%,
        rgba(34,211,238,.06),
        transparent 35%
    );

    z-index:-1;
}

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

a{
    text-decoration:none;
}
/* =====================================================
   HEADER PRINCIPAL
===================================================== */

.site-header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    height:80px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    padding:0 5%;

    background:rgba(11,17,32,.92);

    backdrop-filter:blur(15px);

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

    z-index:9999;

    transition:.4s ease;
}

.site-header.is-scrolled{

    background:rgba(5,10,20,.97);

    backdrop-filter:blur(20px);

    box-shadow:
    0 10px 30px rgba(0,0,0,.25);
}

/* =====================================================
   LOGO VPD
===================================================== */

.brand{

    display:flex;

    align-items:center;

    gap:12px;

    text-decoration:none;
}

/* Image du logo */

.brand img{

    width:42px;

    height:42px;

    object-fit:cover;

    border-radius:10px;
}

/* Texte du logo */

.brand span{

    color:#ffffff;

    font-size:1rem;

    font-weight:700;

    letter-spacing:.3px;

    white-space:nowrap;
}
/* =====================================================
   NAVIGATION PRINCIPALE
===================================================== */

.site-nav{

    display:flex;

    align-items:center;

    gap:22px;
}

.site-nav a{

    color:#ffffff;

    text-decoration:none;

    font-size:.95rem;

    font-weight:500;

    transition:.3s ease;
}

.site-nav a:hover{

    color:#00d4ff;
}

.site-nav a.is-active{

    color:#00d4ff;
}
/* =====================================================
   MENU MOBILE
===================================================== */

/* Bouton hamburger */

.nav-toggle{

    display:none;

    align-items:center;

    justify-content:center;

    width:48px;

    height:48px;

    border:none;

    background:transparent;

    cursor:pointer;

    color:#ffffff;
}

/* Icônes du bouton */

.nav-toggle svg{

    width:24px;

    height:24px;
}

.nav-toggle line{

    stroke:currentColor;

    stroke-width:2;

    stroke-linecap:round;

    stroke-linejoin:round;
}

/* Icône fermeture cachée par défaut */

.close-icon{

    display:none;
}

/* Lorsque le menu est ouvert */

.nav-toggle[aria-expanded="true"] .menu-icon{

    display:none;
}

.nav-toggle[aria-expanded="true"] .close-icon{

    display:block;
}

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

@media(max-width:1024px){

    /* Afficher le bouton menu */

    .nav-toggle{

        display:flex;
    }

    /* Menu latéral mobile */

    .site-nav{

        position:fixed;

        top:80px;

        right:-100%;

        width:280px;

        height:calc(100vh - 80px);

        display:flex;

        flex-direction:column;

        align-items:flex-start;

        gap:20px;

        padding:30px;

        background:#0b1120;

        border-left:
        1px solid rgba(255,255,255,.08);

        transition:right .35s ease;

        z-index:9998;
    }

    /* Menu ouvert */

    .site-nav.is-open{

        right:0;
    }

    /* Liens du menu */

    .site-nav a{

        width:100%;

        padding:12px 0;

        border-bottom:
        1px solid rgba(255,255,255,.08);
    }

}
/* =====================================================
   HERO / BANNIÈRE PRINCIPALE
===================================================== */

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    overflow:hidden;
}

/* Image de fond */

.hero-image{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    animation:
    heroZoom 18s ease-in-out infinite alternate;
}

/* Voile sombre */

.hero-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        135deg,
        rgba(5,10,20,.88),
        rgba(11,17,32,.75)
    );

    z-index:1;
}

/* Contenu */

.hero-content{

    position:relative;

    z-index:2;

    width:min(100%,1200px);

    padding:120px 5%;

    text-align:left;

    margin:0 auto;
}

/* Badges */

.hero-badges{

    display:flex;

    flex-wrap:wrap;

    justify-content:flex-start;

    align-items:center;

    gap:10px;

    margin-bottom:24px;
}

/* Titre principal */

.hero h1{

    max-width:900px;

    font-size:clamp(2.5rem,6vw,4.8rem);

    line-height:1.1;

    color:#ffffff;

    margin-bottom:24px;
}

/* Description */

.hero-text{

    max-width:700px;

    font-size:1.15rem;

    line-height:1.8;

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

    margin-bottom:36px;
}

/* Boutons */

.hero-actions{

    display:flex;

    flex-wrap:wrap;

    gap:16px;
}
/* =====================================================
   HERO RESPONSIVE
===================================================== */

@media(max-width:768px){

    .hero{

        min-height:90vh;
    }

    .hero-content{

        padding:100px 24px 80px;
    }

    .hero h1{

        font-size:2.2rem;
    }

    .hero-text{

        font-size:1rem;
    }

    .hero-actions{

        flex-direction:column;

        align-items:flex-start;
    }

}
/* =====================================================
   BOUTONS PRINCIPAUX
===================================================== */

/* Style général */
.button{

    position:relative;

    overflow:hidden;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:14px 28px;

    border-radius:12px;

    font-weight:600;

    text-decoration:none;

    transition:.35s ease;
}

.button::before{

    content:"";

    position:absolute;

    top:0;

    left:-100%;

    width:100%;

    height:100%;

    background:

    linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.25),
        transparent
    );

    transition:.6s;
}

.button:hover::before{

    left:100%;
}
/* Bouton principal */

.button-primary{

    background:
    linear-gradient(
        135deg,
        #00d4ff,
        #0066ff
    );

    color:#ffffff;

    box-shadow:
    0 12px 30px rgba(0,212,255,.25);
}

/* Effet au survol */

.button-primary:hover{

    transform:
    translateY(-3px);

    box-shadow:
    0 18px 40px rgba(0,212,255,.35);
}

/* Bouton secondaire */

.button-secondary{

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

    color:#ffffff;

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

    backdrop-filter:blur(12px);
}

/* Effet au survol */

.button-secondary:hover{

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

    transform:
    translateY(-3px);
}

/* Boutons sur mobile */

@media(max-width:768px){

    .button{

        width:100%;
    }

}
/* =====================================================
   TITRES ET SECTIONS
===================================================== */

/* Section principale */

.section{

    position:relative;
}

.section::after{

    content:"";

    position:absolute;

    bottom:0;

    left:50%;

    transform:translateX(-50%);

    width:120px;

    height:1px;

    background:

    linear-gradient(
        90deg,
        transparent,
        rgba(0,212,255,.4),
        transparent
    );
}
/* Conteneur central */

.section-inner{

    width:min(100%,1200px);

    margin:0 auto;

    padding:0 5%;
}

/* En-tête de section */

.section-heading{

    margin-bottom:50px;

    text-align:left;
}

/* Petit titre bleu */

.section-kicker{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-bottom:16px;

    color:#00d4ff;

    font-size:.9rem;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:1px;
}

/* Trait décoratif */

.section-kicker::before{

    content:"";

    width:40px;

    height:2px;

    background:#00d4ff;
}

/* Titre principal */

.section-heading h2{

    max-width:800px;

    color:#ffffff;

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

    line-height:1.2;

    margin-bottom:20px;
}

/* Description de section */

.section-heading p:not(.section-kicker){

    max-width:750px;

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

    font-size:1.05rem;

    line-height:1.8;
}

/* Texte générique */

.section p{

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

    line-height:1.8;
}

/* Séparation discrète entre sections */

.section + .section{

    border-top:
    1px solid rgba(255,255,255,.05);
}
/* =====================================================
   TITRES ET SECTIONS RESPONSIVE
===================================================== */

@media(max-width:768px){

    .section{

        padding:90px 0;
    }

    .section-heading{

        margin-bottom:35px;
    }

    .section-heading h2{

        font-size:2rem;
    }

}
/* =====================================================
   SECTION STARLINK
===================================================== */

.starlink-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:50px;

    align-items:center;
}

.starlink-image{

    overflow:hidden;

    border-radius:24px;
}

.starlink-image img{

    width:100%;

    display:block;

    border-radius:24px;

    transition:
    transform .8s ease,
    filter .8s ease;
}

.starlink-image:hover img{

    transform:scale(1.04);

    filter:brightness(1.05);
}

.starlink-content{

    display:flex;

    flex-direction:column;

    gap:20px;
}

.starlink-badge{

    display:inline-block;

    padding:10px 18px;

    border-radius:999px;

    background:
    rgba(0,212,255,.12);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.starlink-features{

    display:flex;

    flex-direction:column;

    gap:15px;

    margin-top:15px;
}

.starlink-feature{

    display:flex;

    align-items:center;

    gap:15px;

    padding:15px;

    border-radius:16px;

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

    transition:.35s ease;
}
.starlink-feature:hover{

    transform:translateX(8px);
}

.starlink-feature-icon{

    width:40px;

    height:40px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:12px;

    background:
    rgba(0,212,255,.12);

    color:#00d4ff;
}

@media(max-width:900px){

    .starlink-layout{

        grid-template-columns:1fr;
    }

}
/* =====================================================
   SECTION AVANTAGES
   Pourquoi choisir VPD
===================================================== */

/* Grille des avantages */

.advantages-grid{

    display:grid;

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

    gap:30px;
}

/* Carte avantage */

.advantage-card{

    position:relative;

    overflow:hidden;

    padding:35px;

    border-radius:24px;

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

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

    transition:.4s ease;
}

.advantage-card:hover{

    transform:
    translateY(-8px);
}

.advantage-card h3{

    transition:.35s ease;
}

.advantage-card:hover h3{

    color:#00d4ff;

    transform:
    translateX(5px);
}

/* Effet au survol */

.advantage-card:hover{

    transform:
    translateY(-8px);

    box-shadow:
    0 20px 40px rgba(0,0,0,.25);
}

/* Ligne lumineuse décorative */

.advantage-card::before{

    content:"";

    position:absolute;

    top:0;
    left:0;

    width:100%;

    height:3px;

    background:
    linear-gradient(
        90deg,
        #00d4ff,
        #0066ff
    );
}

/* Titre */

.advantage-card h3{

    color:#ffffff;

    font-size:1.3rem;

    margin-bottom:16px;
}

/* Description */

.advantage-card p{

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

    line-height:1.8;
}
/* =====================================================
   AVANTAGES RESPONSIVE
===================================================== */

@media(max-width:768px){

    .advantages-grid{

        grid-template-columns:1fr;

        gap:24px;
    }

    .advantage-card{

        padding:28px;
    }

}
/* =====================================================
   SECTION ÉCOSYSTÈME
===================================================== */

/* Conteneur principal */

.ecosystem-layout{

    display:grid;

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

    gap:40px;

    align-items:center;
}

/* Colonne texte */

.ecosystem-content{

    display:flex;

    flex-direction:column;

    gap:20px;
}

/* Description */

.ecosystem-content p{

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

    line-height:1.8;
}

/* Liste des piliers */

.ecosystem-pillars{

    display:grid;

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

    gap:20px;
}

/* Élément */

.pillar-item{

    padding:25px;

    border-radius:20px;

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

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

    transition:.3s ease;
}

.pillar-item:hover{

    transform:
    translateY(-6px);

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

/* Titre */

.pillar-item h3{

    color:#ffffff;

    font-size:1.1rem;

    margin-bottom:10px;
}

/* Texte */

.pillar-item p{

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

    font-size:.95rem;
}
/* =====================================================
   SECTION ÉCOSYSTÈME
===================================================== */

.ecosystem-visual{

    position:relative;

    height:500px;

    display:flex;

    align-items:center;

    justify-content:center;
}

/* ===================================
   HUB CENTRAL
=================================== */

.hub-center{

    position:relative;

    width:160px;

    height:160px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:
    linear-gradient(
        135deg,
        #00d4ff,
        #0066ff
    );

    box-shadow:
    0 0 60px rgba(0,212,255,.4);

    z-index:10;

    animation:
    hubPulse 4s ease-in-out infinite;
}

.hub-logo{

    color:#ffffff;

    font-size:2rem;

    font-weight:800;

    letter-spacing:2px;
}

/* ===================================
   ANNEAUX
=================================== */

.pulse-ring{

    position:absolute;

    border-radius:50%;

    border:
    2px solid rgba(0,212,255,.25);

    pointer-events:none;
}

.ring-1{

    width:220px;

    height:220px;

    animation:
    pulseRing 5s linear infinite;
}

.ring-2{

    width:300px;

    height:300px;

    animation:
    pulseRing 5s linear infinite;

    animation-delay:1.5s;
}

.ring-3{

    width:380px;

    height:380px;

    animation:
    pulseRing 5s linear infinite;

    animation-delay:3s;
}

/* ===================================
   SATELLITES
=================================== */

.hub-satellite{

    position:absolute;

    width:120px;

    height:120px;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    border-radius:50%;

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

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

    backdrop-filter:blur(12px);

    color:#ffffff;

    font-weight:600;

    transition:.35s ease;

    z-index:5;
}

.hub-satellite:hover{

    transform:scale(1.08);

    background:
    rgba(0,212,255,.18);

    border-color:
    rgba(0,212,255,.35);
}

/* WEB */

.sat-web{

    top:0;

    left:50%;

    animation:
    floatWeb 6s ease-in-out infinite;
}

/* IA */

.sat-ai{

    right:0;

    top:50%;

    animation:
    floatAi 5s ease-in-out infinite;
}

/* NFC */

.sat-nfc{

    bottom:0;

    left:50%;

    animation:
    floatNfc 7s ease-in-out infinite;
}

/* STARLINK */

.sat-starlink{

    left:0;

    top:50%;

    animation:
    floatStarlink 6s ease-in-out infinite;
}
/* =====================================================
   CARTES SERVICES ET EXPERTISES
===================================================== */

.service-grid{

    display:grid;

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

    gap:30px;
}

/* ===================================
   TITRES DES CATÉGORIES SERVICES
=================================== */

.category-title{

    display:flex;

    align-items:center;

    gap:15px;

    margin-bottom:30px;

    color:#ffffff;

    font-size:1.5rem;

    font-weight:700;
}
/* =====================================================
   TITRES ET SECTIONS
===================================================== */

.section-inner{

    max-width:1200px;

    margin:0 auto;

    padding:0 24px;
}

/* Espacement entre les sections */

section{

    padding:120px 0;
}

/* Titres des sections */

.section-heading{

    text-align:center;

    max-width:850px;

    margin:0 auto 80px;
}

.section-kicker{

    color:#00d4ff;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:15px;
}

.section-heading h2{

    color:#ffffff;

    font-size:clamp(2rem,4vw,3.2rem);

    line-height:1.2;
}

.category-title::before{

    content:"";

    width:50px;

    height:3px;

    border-radius:999px;

    background:
    linear-gradient(
        90deg,
        #00d4ff,
        #0066ff
    );
}

.service-category{


    margin-bottom:100px;
}


/* ===================================
   CARTES SERVICES
=================================== */

.service-card{

    position:relative;

    overflow:hidden;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.02)
    );

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

    transition:
    transform .45s ease,
    box-shadow .45s ease;

    backdrop-filter:blur(12px);
}

.service-card:hover{

    transform:
    translateY(-12px);

    box-shadow:
    0 25px 50px rgba(0,0,0,.25);
}

.service-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:3px;

    background:
    linear-gradient(
        90deg,
        #00d4ff,
        #0066ff
    );
}

.service-card img{

    width:100%;

    height:220px;

    object-fit:cover;

    transition:
    transform .8s ease,
    filter .8s ease;
}

.service-card:hover img{

    transform:scale(1.08);

    filter:brightness(1.08);
}

.service-card-body{

    padding:25px;
}

.service-number{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:45px;

    height:45px;

    border-radius:12px;

    background:
    rgba(0,212,255,.12);

    color:#00d4ff;

    font-weight:700;

    margin-bottom:15px;
}

.service-card h3{

    color:#ffffff;

    margin-bottom:15px;

    transition:.35s ease;
}

.service-card:hover h3{

    color:#00d4ff;

    transform:
    translateX(5px);
}

.service-card p{

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

    line-height:1.7;
}

.text-link{

    display:inline-block;

    margin-top:15px;

    color:#00d4ff;

    text-decoration:none;

    font-weight:600;

    transition:.35s ease;
}

.text-link:hover{

    color:#ffffff;

    transform:
    translateX(8px);
}
/* =====================================================
   SECTION INNOVATIONS
===================================================== */

.innovative-showcase{

    position:relative;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:50px;

    align-items:center;

    overflow:hidden;

    padding:40px;

    border-radius:28px;

    background:
    linear-gradient(
        135deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.02)
    );

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

    backdrop-filter:blur(12px);

    transition:
    transform .5s ease,
    box-shadow .5s ease;
}
.showcase-content h3{

    color:#ffffff;

    font-size:2rem;

    margin-bottom:20px;

    transition:.4s ease;
}

.innovative-showcase:hover h3{

    color:#00d4ff;

    transform:
    translateX(6px);
}
.innovative-img{

    width:100%;

    border-radius:24px;

    transition:
    transform .8s ease,
    filter .8s ease;
}

.innovative-showcase:hover .innovative-img{

    transform:scale(1.05);

    filter:brightness(1.08);
}

.innovative-showcase:hover{

    transform:
    translateY(-10px);

    box-shadow:
    0 30px 60px rgba(0,0,0,.25);
}

.innovative-showcase::after{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:100%;

    height:100%;

    background:

    linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.08),
        transparent
    );

    transition:1s;
}

.innovative-showcase:hover::after{

    left:120%;
}
/* =====================================================
   SECTION MÉTHODE
   Comment nous travaillons
===================================================== */

/* Timeline */

.method-timeline{

    position:relative;

    display:flex;

    flex-direction:column;

    gap:30px;

    max-width:1000px;

    margin:0 auto;
}

/* Ligne verticale */

.method-timeline::before{

    content:"";

    position:absolute;

    left:30px;

    top:0;

    bottom:0;

    width:2px;

    background:
    linear-gradient(
        #00d4ff,
        rgba(0,212,255,.2)
    );
}

/* Étape */

.timeline-step{

    position:relative;

    display:flex;

    gap:30px;

    padding-left:80px;
}

/* Numéro */

.timeline-number{

    position:absolute;

    left:0;

    width:60px;

    height:60px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:
    linear-gradient(
        135deg,
        #00d4ff,
        #0066ff
    );

    color:#ffffff;

    font-weight:700;

    font-size:1.1rem;

    box-shadow:
    0 10px 25px rgba(0,212,255,.3);
}

/* Carte */

.timeline-content{

    flex:1;

    padding:30px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);

    transition:.35s ease;
}

.timeline-content:hover{

    transform:
    translateY(-5px);

    box-shadow:
    0 20px 40px rgba(0,0,0,.25);
}

/* Titre */

.timeline-content h3{

    color:#ffffff;

    font-size:1.3rem;

    margin-bottom:15px;
}

/* Texte */

.timeline-content p{

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

    line-height:1.8;
}
/* =====================================================
   SECTION PARTENAIRES
===================================================== */

/* Grille des partenaires */

.partners-grid{

    display:grid;

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

    gap:25px;

    margin-top:50px;
}

/* Carte partenaire */

.partner-card{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    text-align:center;

    padding:30px;

    min-height:180px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);

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

/* Animation */

.partner-card:hover{

    transform:
    translateY(-8px);

    box-shadow:
    0 20px 40px rgba(0,0,0,.25);
}

/* Logo */

.partner-card img{

    width:90px;

    height:90px;

    object-fit:contain;

    margin-bottom:20px;
}

/* Nom */

.partner-card h3{

    color:#ffffff;

    font-size:1.1rem;

    margin-bottom:10px;
}

/* Description */

.partner-card p{

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

    line-height:1.6;

    font-size:.95rem;
}
/* =====================================================
   SECTION PARTENAIRES
===================================================== */

.partners-section{

    position:relative;
}

.partners-slider{

    overflow:hidden;

    width:100%;

    margin-top:50px;

    padding:30px 0;

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

    border-bottom:
    1px solid rgba(255,255,255,.08);
}

.partners-track{

    display:flex;

    align-items:center;

    gap:70px;

    width:max-content;

    animation:
    partnersScroll 30s linear infinite;
}

.partners-track:hover{

    animation-play-state:paused;
}

.partners-track span{

    position:relative;

    color:#ffffff;

    font-size:1.15rem;

    font-weight:700;

    letter-spacing:1px;

    opacity:.75;

    white-space:nowrap;

    transition:.35s ease;
}

.partners-track span::after{

    content:"";

    position:absolute;

    bottom:-8px;

    left:50%;

    transform:translateX(-50%);

    width:0;

    height:2px;

    background:#00d4ff;

    transition:.35s ease;
}

.partners-track span:hover{

    color:#00d4ff;

    opacity:1;

    transform:translateY(-3px);
}

.partners-track span:hover::after{

    width:100%;
}

.partners-description{

    max-width:850px;

    margin:50px auto 0;

    text-align:center;

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

    line-height:1.8;

    font-size:1rem;
}

/* =====================================================
   SECTION RÉSULTATS
===================================================== */

.results-grid{

    display:grid;

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

    gap:30px;

    margin-top:60px;
}

.stat-card{

    position:relative;

    overflow:hidden;

    text-align:center;

    padding:40px 30px;

    border-radius:28px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.02)
    );

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

    backdrop-filter:blur(12px);

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

.stat-card:hover{

    transform:
    translateY(-10px);

    box-shadow:
    0 25px 50px rgba(0,0,0,.25);
}

.stat-card::after{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:100%;

    height:100%;

    background:

    linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.08),
        transparent
    );

    transition:1s;
}

.stat-card:hover::after{

    left:120%;
}

/* Icône */

.stat-icon{

    font-size:2rem;

    margin-bottom:20px;

    animation:
    statFloat 4s ease-in-out infinite;
}

/* ===================================
   CHIFFRES
=================================== */

.stat-number{

    display:flex;

    justify-content:center;

    align-items:flex-start;

    gap:4px;

    margin-bottom:15px;
}

.counter{

    color:#00d4ff;

    font-size:3rem;

    font-weight:800;

    line-height:1;
}

.stat-suffix{

    color:#00d4ff;

    font-size:1.5rem;

    font-weight:700;

    margin-top:5px;
}

/* Titres */

.stat-card h3{

    color:#ffffff;

    margin-bottom:15px;

    transition:.35s ease;
}

.stat-card:hover h3{

    color:#00d4ff;
}

/* Texte */

.stat-card p{

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

    line-height:1.8;
}
@media(max-width:900px){

    .results-grid{

        grid-template-columns:1fr;
    }

}
/* ===================================
   COLONNE INFORMATIONS
=================================== */

.contact-info-box{

    padding:35px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);
}

.contact-info-box h3{

    color:#ffffff;

    font-size:1.4rem;

    margin-bottom:15px;
}

.contact-info-box p{

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

    line-height:1.8;

    margin-bottom:30px;
}

/* Coordonnées */

.contact-channels{

    display:flex;

    flex-direction:column;

    gap:20px;
}

.channel-card{

    display:flex;

    align-items:center;

    gap:15px;

    padding:16px;

    border-radius:16px;

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

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

.channel-icon{

    width:50px;

    height:50px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:14px;

    background:
    rgba(0,212,255,.12);

    color:#00d4ff;
}

.channel-icon svg{

    width:24px;

    height:24px;
}

.channel-card span{

    display:block;

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

    font-size:.85rem;
}

.channel-card strong{

    color:#ffffff;

    font-size:1rem;
}

/* ===================================
   FORMULAIRE
=================================== */

.contact-form{

    padding:35px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);
}

/* Grille */

.form-grid{

    display:grid;

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

    gap:20px;
}

/* Groupe */

.form-group{

    margin-bottom:22px;
}

.form-group label{

    display:block;

    margin-bottom:8px;

    color:#ffffff;

    font-weight:600;
}

/* Champs */

.form-group input,
.form-group select,
.form-group textarea{

    width:100%;

    padding:14px 16px;

    border-radius:12px;

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

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

    color:#ffffff;

    outline:none;

    transition:.3s ease;
}

/* Focus */

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{

    border-color:#00d4ff;

    box-shadow:
    0 0 0 3px rgba(0,212,255,.15);
}

/* Placeholder */

.form-group input::placeholder,
.form-group textarea::placeholder{

    color:rgba(255,255,255,.45);
}

/* Zone texte */

.form-group textarea{

    resize:vertical;

    min-height:140px;
}

/* Bouton */

.submit-btn{

    width:100%;
}
/* =====================================================
   SECTION CONTACT PREMIUM
===================================================== */

.contact-layout{

    display:grid;

    grid-template-columns:1fr 1.2fr;

    gap:50px;

    align-items:start;
}

.contact-info-box,
.contact-form{

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.02)
    );

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

    border-radius:28px;

    padding:35px;

    backdrop-filter:blur(12px);
}

/* Champs */

.contact-form input,
.contact-form textarea,
.contact-form select{

    width:100%;

    padding:16px 18px;

    border-radius:14px;

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

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

    color:#ffffff;

    font-size:1rem;

    transition:.35s ease;
}

/* Focus */

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus{

    outline:none;

    border-color:#00d4ff;

    box-shadow:
    0 0 0 4px rgba(0,212,255,.15);
}

/* Placeholder */

.contact-form input::placeholder,
.contact-form textarea::placeholder{

    color:rgba(255,255,255,.45);
}

/* Select Service */

.contact-form select{

    cursor:pointer;

    appearance:none;

    background:
    linear-gradient(
        180deg,
        rgba(0,212,255,.08),
        rgba(255,255,255,.04)
    );

    font-weight:600;
}

/* Options */

.contact-form option{

    background:#081221;

    color:#ffffff;
}

/* Labels */

.form-group label{

    display:block;

    margin-bottom:10px;

    color:#ffffff;

    font-weight:600;
}

/* Bouton */

.submit-btn{

    width:100%;

    margin-top:10px;
}

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

.contact-info-box{

    padding:35px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);
}

.contact-info-box h3{

    color:#ffffff;

    font-size:1.4rem;

    margin-bottom:15px;
}

.contact-info-box p{

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

    line-height:1.8;

    margin-bottom:30px;
}

/* Coordonnées */

.contact-channels{

    display:flex;

    flex-direction:column;

    gap:20px;
}

.channel-card{

    display:flex;

    align-items:center;

    gap:15px;

    padding:16px;

    border-radius:16px;

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

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

.channel-icon{

    width:50px;

    height:50px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:14px;

    background:
    rgba(0,212,255,.12);

    color:#00d4ff;
}

.channel-icon svg{

    width:24px;

    height:24px;
}

.channel-card span{

    display:block;

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

    font-size:.85rem;
}

.channel-card strong{

    color:#ffffff;

    font-size:1rem;
}

/* ===================================
   FORMULAIRE
=================================== */

.contact-form{

    padding:35px;

    border-radius:24px;

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.03)
    );

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

    backdrop-filter:blur(12px);
}

/* Grille */

.form-grid{

    display:grid;

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

    gap:20px;
}

/* Groupe */

.form-group{

    margin-bottom:22px;
}

.form-group label{

    display:block;

    margin-bottom:8px;

    color:#ffffff;

    font-weight:600;
}

/* Champs */

.form-group input,
.form-group select,
.form-group textarea{

    width:100%;

    padding:14px 16px;

    border-radius:12px;

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

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

    color:#ffffff;

    outline:none;

    transition:.3s ease;
}

/* Focus */

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{

    border-color:#00d4ff;

    box-shadow:
    0 0 0 3px rgba(0,212,255,.15);
}

/* Placeholder */

.form-group input::placeholder,
.form-group textarea::placeholder{

    color:rgba(255,255,255,.45);
}

/* Zone texte */

.form-group textarea{

    resize:vertical;

    min-height:140px;
}

/* Bouton */

.submit-btn{

    width:100%;
}
/* =====================================================
   CONTACT RESPONSIVE
===================================================== */

@media(max-width:900px){

    .contact-layout{

        grid-template-columns:1fr;
    }

    .form-grid{

        grid-template-columns:1fr;
    }

}

@media(max-width:768px){

    .contact-form,
    .contact-info-box{

        padding:25px;
    }

}
/* =====================================================
   BOUTONS FLOTTANTS
===================================================== */

/* Conteneur */

.floating-actions{

    position:fixed;

    right:25px;

    bottom:25px;

    display:flex;

    flex-direction:column;

    gap:15px;

    z-index:9999;
}

/* ===================================
   BOUTON RETOUR EN HAUT
=================================== */

.back-to-top{

    width:55px;

    height:55px;

    display:flex;

    align-items:center;

    justify-content:center;

    border:none;

    border-radius:50%;

    background:
    linear-gradient(
        135deg,
        #00d4ff,
        #0066ff
    );

    color:#ffffff;

    cursor:pointer;

    box-shadow:
    0 10px 25px rgba(0,212,255,.35);

    transition:.3s ease;

    opacity:0;

    visibility:hidden;
}

.back-to-top:hover{

    transform:
    translateY(-5px);

    box-shadow:
    0 15px 35px rgba(0,212,255,.45);
}

.back-to-top svg{

    width:22px;

    height:22px;
}

/* ===================================
   BOUTON WHATSAPP
=================================== */

.whatsapp-float{

    width:60px;

    height:60px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#25D366;

    color:#fff;

    box-shadow:
    0 10px 30px rgba(37,211,102,.35);

    transition:.35s ease;
}

.whatsapp-float:hover{

    transform:
    translateY(-5px)
    scale(1.05);
}

.whatsapp-float:hover{

    transform:
    translateY(-5px);

    box-shadow:
    0 15px 40px rgba(37,211,102,.50);
}

.whatsapp-float svg{

    width:30px;

    height:30px;
}

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

@keyframes whatsappPulse{

    0%{

        transform:scale(1);
    }

    50%{

        transform:scale(1.08);
    }

    100%{

        transform:scale(1);
    }

}
/* =====================================================
   BOUTONS FLOTTANTS RESPONSIVE
===================================================== */

@media(max-width:768px){

    .floating-actions{

        right:15px;

        bottom:15px;
    }

    .whatsapp-float{

        width:55px;

        height:55px;
    }

    .back-to-top{

        width:50px;

        height:50px;
    }

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

.site-footer{

    position:relative;

    margin-top:120px;

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

    background:
    linear-gradient(
        180deg,
        rgba(255,255,255,.02),
        rgba(255,255,255,.01)
    );
}

/* Conteneur principal */

.footer-inner{

    width:min(100%,1200px);

    margin:0 auto;

    padding:80px 5% 50px;

    display:grid;

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

    gap:50px;
}

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

.footer-brand{

    max-width:450px;
}

.footer-logo{

    display:inline-flex;

    align-items:center;

    gap:12px;

    color:#ffffff;

    text-decoration:none;

    font-size:1.3rem;

    font-weight:700;

    margin-bottom:20px;
}

.footer-desc{

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

    line-height:1.8;

    margin-bottom:25px;
}

/* ===================================
   RESEAUX SOCIAUX
=================================== */

.footer-socials{

    display:flex;

    gap:15px;
}

.footer-socials a{

    width:46px;

    height:46px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:12px;

    color:#ffffff;

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

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

    transition:.3s ease;
}

.footer-socials a:hover{

    transform:
    translateY(-4px);

    color:#00d4ff;

    border-color:#00d4ff;
}

.footer-socials svg{

    width:20px;

    height:20px;
}

/* ===================================
   COLONNES LIENS
=================================== */

.footer-links h4{

    color:#ffffff;

    font-size:1.1rem;

    margin-bottom:20px;
}

.footer-links ul{

    list-style:none;
}

.footer-links li{

    margin-bottom:12px;
}

.footer-links a,
.footer-links span{

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

    text-decoration:none;

    transition:.3s ease;
}

.footer-links a:hover{

    color:#00d4ff;
}

/* ===================================
   COPYRIGHT
=================================== */

.footer-bottom{

    text-align:center;

    padding:25px;

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

.footer-bottom p{

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

    font-size:.95rem;

    margin:0;
}
/* =====================================================
   ANIMATIONS GÉNÉRALES
===================================================== */

/* =====================================================
   ANIMATIONS D'APPARITION
===================================================== */

.reveal{

    opacity:0;

    transform:
    translateY(40px)
    scale(.98);

    transition:
    opacity .8s ease,
    transform .8s ease;
}
.reveal.is-visible{

    opacity:1;

    transform:
    translateY(0)
    scale(1);
}
@keyframes heroZoom{

    from{

        transform:scale(1);
    }

    to{

        transform:scale(1.08);
    }

}
@keyframes floatWeb{

    0%,100%{

        transform:
        translateX(-50%)
        translateY(0);
    }

    50%{

        transform:
        translateX(-50%)
        translateY(-12px);
    }

}

@keyframes floatAi{

    0%,100%{

        transform:
        translateY(-50%)
        translateX(0);
    }

    50%{

        transform:
        translateY(-50%)
        translateX(-12px);
    }

}

@keyframes floatNfc{

    0%,100%{

        transform:
        translateX(-50%)
        translateY(0);
    }

    50%{

        transform:
        translateX(-50%)
        translateY(12px);
    }

}

@keyframes floatStarlink{

    0%,100%{

        transform:
        translateY(-50%)
        translateX(0);
    }

    50%{

        transform:
        translateY(-50%)
        translateX(12px);
    }

}
.hub-center{

    animation:
    hubPulse 4s ease-in-out infinite;
}
@keyframes hubPulse{

    0%,100%{

        transform:scale(1);
    }

    50%{

        transform:scale(1.06);
    }

}


/* ===================================
   ANIMATION BADGES HERO
=================================== */

.hero-badge-word{

    transition:
    opacity .4s ease,
    transform .4s ease;
}

.hero-badge-word.is-changing{

    opacity:.4;

    transform:
    translateY(-4px);
}

/* ===================================
   EFFET PULSE
=================================== */

@keyframes pulse{

    0%{

        transform:scale(1);
    }

    50%{

        transform:scale(1.05);
    }

    100%{

        transform:scale(1);
    }

}

/* ===================================
   SCROLL DES LOGOS PARTENAIRES
=================================== */

@keyframes logoScroll{

    from{

        transform:
        translateX(0);
    }

    to{

        transform:
        translateX(-50%);
    }

}

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

@keyframes whatsappPulse{

    0%{

        transform:scale(1);
    }

    50%{

        transform:scale(1.08);
    }

    100%{

        transform:scale(1);
    }

}

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

@keyframes floating{

    0%{

        transform:
        translateY(0);
    }

    50%{

        transform:
        translateY(-8px);
    }

    100%{

        transform:
        translateY(0);
    }

}

/* ===================================
   FADE UP
=================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:
        translateY(30px);
    }

    to{

        opacity:1;

        transform:
        translateY(0);
    }

}

/* ===================================
   FADE IN
=================================== */

@keyframes fadeIn{

    from{

        opacity:0;
    }

    to{

        opacity:1;
    }

}
@keyframes partnersScroll{

    from{

        transform:translateX(0);
    }

    to{

        transform:translateX(-50%);
    }

}





/* =========================================================
   VOTRE PARTENAIRE DIGITAL — Feuille de style globale
   Thème : Bleu foncé, texte blanc, accents cyan
   Auteur : Votre Partenaire Digital
   ========================================================= */

/* ---------- 1. VARIABLES DU DESIGN SYSTEM ---------- */
:root {
  /* Couleurs principales */
  --bg:           #0b1120;   /* Fond global bleu foncé */
  --surface:      #0f172a;   /* Surfaces / cartes */
  --surface-2:    #111c33;   /* Variante plus claire */
  --text:         #ffffff;   /* Texte principal */
  --text-muted:   #c8d2e0;   /* Texte secondaire */
  --text-dark:    #07111f;   /* Texte sur fond clair */
  --teal:         #00d4ff;   /* Accent principal cyan */
  --teal-dark:    #0369a1;   /* Accent foncé */
  --cyan:         #22d3ee;   /* Accent secondaire */
  --lime:         #a3e635;   /* Accent vert (succès) */
  --amber:        #f59e0b;   /* Accent orange (alerte) */

  /* Effets visuels */
  --shadow-sm:    0 4px 12px rgba(0,0,0,.25);
  --shadow:       0 22px 60px rgba(0,0,0,.45);
  --radius:       16px;
  --radius-sm:    10px;

  /* Gradient signature de la marque */
  --grad-brand:   linear-gradient(135deg, var(--teal) 0%, var(--cyan) 50%, var(--teal-dark) 100%);
  --grad-surface: linear-gradient(160deg, var(--surface) 0%, var(--surface-2) 100%);

  /* Typographie */
  --font:         'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  /* Transitions cohérentes partout */
  --t-fast:       .2s ease;
  --t:            .35s cubic-bezier(.4,0,.2,1);
}

/* ---------- 2. RESET & BASE ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  overflow-x: hidden;            /* évite le scroll horizontal sur mobile */
  -webkit-font-smoothing: antialiased;
}

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

a { color: var(--teal); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--cyan); }

ul { list-style: none; padding: 0; margin: 0; }

h1, h2, h3, h4 { margin: 0 0 .6em; line-height: 1.2; font-weight: 700; }

/* Container fluide centré */
.container {
  width: min(1200px, 92%);
  margin: 0 auto;
}

/* ---------- 3. HEADER & NAVIGATION ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(11,17,32,.85);
  backdrop-filter: blur(12px);       /* effet verre dépoli moderne */
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.06);
}

.nav-wrapper {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 0;
}

.brand {
  font-weight: 800;
  font-size: 1.15rem;
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.main-nav ul {
  display: flex; gap: 1.6rem; align-items: center; flex-wrap: wrap;
}
.main-nav a {
  color: var(--text);
  font-size: .95rem;
  position: relative;
}
/* Soulignement animé au survol */
.main-nav a::after {
  content: ''; position: absolute; left: 0; bottom: -6px;
  width: 0; height: 2px; background: var(--grad-brand);
  transition: width var(--t);
}
.main-nav a:hover::after { width: 100%; }

.nav-cta {
  background: var(--grad-brand);
  color: var(--text-dark) !important;
  padding: .55rem 1.1rem;
  border-radius: 999px;
  font-weight: 600;
}
.nav-cta::after { display: none; }

/* Bouton burger (caché en desktop) */
.nav-toggle {
  display: none;
  width: 42px; height: 42px;
  background: transparent; border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px; cursor: pointer;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
}
.nav-toggle span {
  display: block; width: 22px; height: 2px; background: var(--text);
  transition: var(--t);
}

/* ---------- 4. BOUTONS ---------- */
.btn {
  display: inline-block;
  padding: .85rem 1.6rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .95rem;
  transition: transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
  cursor: pointer; border: none;
}
.btn-primary {
  background: var(--grad-brand);
  color: var(--text-dark);
  box-shadow: 0 10px 30px rgba(0,212,255,.25);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(0,212,255,.4); }

.btn-outline {
  background: transparent;
  color: var(--text);
  border: 2px solid var(--teal);
}
.btn-outline:hover {
  background: var(--teal);
  color: var(--text-dark);
}

/* ---------- 5. HERO ---------- */
.hero {
  padding: clamp(3rem, 8vw, 6rem) 0 clamp(3rem, 6vw, 5rem);
  background:
    radial-gradient(circle at 20% 20%, rgba(0,212,255,.15), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(3,105,161,.18), transparent 50%),
    var(--bg);
  text-align: center;
}
.hero-tags {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem;
  margin-bottom: 1.5rem;
}
.hero-tags li {
  font-size: .8rem; padding: .4rem .9rem;
  border: 1px solid rgba(0,212,255,.3);
  border-radius: 999px;
  background: rgba(0,212,255,.06);
  color: var(--cyan);
}
.hero-title {
  font-size: clamp(1.8rem, 5vw, 3.2rem);
  max-width: 900px; margin: 0 auto 1.2rem;
}
.hero-lead {
  max-width: 760px; margin: 0 auto 2rem;
  font-size: clamp(1rem, 1.6vw, 1.15rem);
  color: var(--text-muted);
}
.hero-actions {
  display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;
  margin-bottom: 3rem;
}
.hero-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem;
  max-width: 700px; margin: 0 auto;
}
.hero-stats li {
  background: var(--grad-surface);
  border: 1px solid rgba(255,255,255,.08);
  padding: 1.2rem .8rem; border-radius: var(--radius);
  text-align: center;
}
.hero-stats strong {
  display: block; font-size: 1.6rem;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-stats span { color: var(--text-muted); font-size: .9rem; }

/* ---------- 6. SECTIONS GÉNÉRIQUES ---------- */
.section { padding: clamp(3rem, 7vw, 5rem) 0; }
.section-alt { background: var(--surface); }

.eyebrow {
  text-align: center;
  text-transform: uppercase; letter-spacing: .2em;
  font-size: .8rem; color: var(--cyan); margin-bottom: .6rem;
}
.section-title {
  text-align: center;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  max-width: 800px; margin: 0 auto 3rem;
}

/* Grilles réutilisables (auto-fit = responsive natif sans media query) */
.grid-2 {
  display: grid; gap: 2rem;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  align-items: center;
}
.grid-4 {
  display: grid; gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

/* ---------- 7. EXPERTISE ---------- */
.expertise-text p { color: var(--text-muted); margin-bottom: 1rem; }
.check-list { margin: 1.5rem 0; }
.check-list li {
  position: relative; padding-left: 1.8rem; margin-bottom: .6rem;
  color: var(--text-muted);
}
.check-list li::before {
  content: '✓';
  position: absolute; left: 0; top: 0;
  width: 1.3rem; height: 1.3rem;
  background: var(--grad-brand);
  color: var(--text-dark);
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: .8rem; font-weight: 700;
}
.expertise-image img {
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform var(--t);
}
.expertise-image img:hover { transform: scale(1.02); }

/* ---------- 8. CARTES SOLUTIONS ---------- */
.solution-card {
  background: var(--grad-surface);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--radius);
  padding: 2rem 1.5rem;
  position: relative; overflow: hidden;
  transition: transform var(--t), border-color var(--t);
}
/* Effet de halo lumineux au survol */
.solution-card::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at top right, rgba(0,212,255,.18), transparent 60%);
  opacity: 0; transition: opacity var(--t);
}
.solution-card:hover {
  transform: translateY(-6px);
  border-color: rgba(0,212,255,.4);
}
.solution-card:hover::before { opacity: 1; }

.solution-num {
  display: inline-block;
  font-size: 2rem; font-weight: 800;
  background: var(--grad-brand);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  margin-bottom: .8rem;
}
.solution-card h3 { font-size: 1.2rem; }
.solution-card p { color: var(--text-muted); font-size: .95rem; }

/* ---------- 9. CARTES INCLUSIONS / FEATURES ---------- */
.features-grid .feature {
  background: var(--surface);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--radius);
  padding: 1.8rem 1.4rem;
  text-align: center;
  transition: transform var(--t), background var(--t);
}
.features-grid .feature:hover {
  transform: translateY(-4px);
  background: var(--surface-2);
}
.features-grid .ico {
  display: inline-grid; place-items: center;
  width: 60px; height: 60px; border-radius: 50%;
  background: rgba(0,212,255,.1);
  font-size: 1.6rem; margin-bottom: 1rem;
}
.features-grid h3 { font-size: 1rem; }
.features-grid p { color: var(--text-muted); font-size: .9rem; }

/* ---------- 10. CTA SECTION ---------- */
.cta-section {
  padding: clamp(3rem, 7vw, 5rem) 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(0,212,255,.18), transparent 60%),
    var(--surface);
  text-align: center;
}
.cta-lead {
  max-width: 760px; margin: 0 auto 2rem; color: var(--text-muted);
}
.cta-checks {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem;
  margin-bottom: 2rem;
}
.cta-checks li {
  padding: .5rem 1rem; border-radius: 999px;
  background: rgba(0,212,255,.08);
  border: 1px solid rgba(0,212,255,.25);
  color: var(--cyan); font-size: .9rem;
}
.cta-checks li::before { content: '✓ '; }

/* ---------- 11. FOOTER ---------- */
.site-footer {
  background: var(--charcoal, #07111f);
  padding-top: 3rem;
  color: var(--text-muted);
}
.footer-grid {
  display: grid; gap: 2rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  padding-bottom: 2rem;
}
.footer-grid h3 { color: var(--text); font-size: 1.1rem; }
.footer-grid h4 { color: var(--text); font-size: 1rem; margin-bottom: 1rem; }
.footer-grid a { color: var(--text-muted); }
.footer-grid a:hover { color: var(--teal); }
.footer-grid ul li { margin-bottom: .5rem; font-size: .92rem; }
.contact-list li { display: flex; gap: .4rem; align-items: flex-start; }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 1.2rem 0;
  text-align: center;
  font-size: .85rem;
}

/* ---------- 12. BOUTONS FLOTTANTS (WhatsApp / Top) ---------- */
.whatsapp-float, .back-to-top {
  position: fixed; right: 20px;
  width: 60px; height: 60px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: none; cursor: pointer; z-index: 90;
  font-size: 1.4rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transition: transform var(--t), box-shadow var(--t);
}
.whatsapp-float {
  bottom: 20px;
  background: #25d366; color: #fff;
  animation: pulse 2.4s infinite;     /* pulsation discrète */
}
.back-to-top {
  bottom: 90px;
  background: var(--grad-brand); color: var(--text-dark);
}
.whatsapp-float:hover, .back-to-top:hover {
  transform: translateY(-3px) scale(1.05);
}

/* Pulsation pour bouton WhatsApp */
@keyframes pulse {
  0%, 100% { box-shadow: 0 10px 30px rgba(37,211,102,.35), 0 0 0 0 rgba(37,211,102,.5); }
  50%      { box-shadow: 0 10px 30px rgba(37,211,102,.35), 0 0 0 14px rgba(37,211,102,0); }
}

/* ---------- 13. ANIMATIONS GLOBALES ---------- */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-title, .hero-lead, .hero-actions, .hero-stats,
.section-title, .solution-card, .feature {
  animation: fadeUp .8s ease both;
}

/* Respect des préférences d'accessibilité */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
  }
}

/* ---------- 14. RESPONSIVE ---------- */

/* Tablettes */
@media (max-width: 992px) {
  .hero-stats { grid-template-columns: repeat(3, 1fr); }
}

/* Mobiles */
@media (max-width: 768px) {
  /* Activation du menu burger */
  .nav-toggle { display: flex; }
  .main-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--surface);
    max-height: 0; overflow: hidden;
    transition: max-height var(--t);
  }
  .main-nav.open { max-height: 80vh; }
  .main-nav ul {
    flex-direction: column; align-items: flex-start;
    gap: 0; padding: 1rem 5%;
  }
  .main-nav li { width: 100%; padding: .6rem 0; border-bottom: 1px solid rgba(255,255,255,.05); }

  .hero-stats { grid-template-columns: 1fr; }
  .hero-actions .btn { width: 100%; text-align: center; }
}

/* Très petits écrans */
@media (max-width: 380px) {
  .brand { font-size: 1rem; }
  .btn { padding: .75rem 1.2rem; font-size: .9rem; }
  .whatsapp-float, .back-to-top { width: 52px; height: 52px; }
}

/* =====================================================
   BOUTON RETOUR EN HAUT
===================================================== */

.back-to-top{

    position:fixed;

    right:25px;

    bottom:100px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:#00d4ff;

    color:#081221;

    font-size:22px;

    font-weight:700;

    cursor:pointer;

    z-index:9999;

    opacity:0;

    visibility:hidden;

    transition:.3s ease;
}

.back-to-top.show{

    opacity:1;

    visibility:visible;
}
/* =====================================================
   IMAGE APPLICATION MOBILE
===================================================== */

.expertise-image img{

    max-width:420px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   IMAGE IA
===================================================== */

.expertise-image img{

    max-width:500px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}

/* =====================================================
   EFFET IA
===================================================== */

.hero::after{

    content:"";

    position:absolute;

    width:350px;

    height:350px;

    border-radius:50%;

    background:
    rgba(139,92,246,.08);

    left:-120px;

    bottom:-120px;

    filter:blur(90px);
}
/* =====================================================
   INFRASTRUCTURE & SÉCURITÉ
===================================================== */

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}

.hero::after{

    content:"";

    position:absolute;

    width:350px;

    height:350px;

    border-radius:50%;

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

    left:-120px;

    bottom:-120px;

    filter:blur(90px);
}
/* =====================================================
   STARLINK INTERNET
===================================================== */

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}

.hero::after{

    content:"";

    position:absolute;

    width:400px;

    height:400px;

    border-radius:50%;

    background:
    rgba(0,212,255,.10);

    left:-150px;

    bottom:-150px;

    filter:blur(100px);
}
/* =====================================================
   BADGE STARLINK
===================================================== */

.starlink-badge{

    margin-top:20px;

    padding:14px 20px;

    text-align:center;

    border-radius:999px;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;

    backdrop-filter:blur(10px);
}
/* =====================================================
   VIDÉOSURVEILLANCE
===================================================== */

.security-badge{

    margin-top:20px;

    padding:14px 20px;

    text-align:center;

    border-radius:999px;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;

    backdrop-filter:blur(10px);
}

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}

.hero::after{

    content:"";

    position:absolute;

    width:400px;

    height:400px;

    border-radius:50%;

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

    left:-150px;

    bottom:-150px;

    filter:blur(100px);
}
/* =====================================================
   CONTRÔLE D'ACCÈS
===================================================== */

.security-badge{

    margin-top:20px;

    padding:14px 20px;

    text-align:center;

    border-radius:999px;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   TECHNOLOGIE NFC
===================================================== */

.nfc-badge{

    margin-top:20px;

    padding:14px 20px;

    text-align:center;

    border-radius:999px;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   CARTE NFC
===================================================== */

.nfc-card-badge{

    margin-top:20px;

    padding:14px 22px;

    border-radius:999px;

    text-align:center;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.expertise-image img{

    max-width:500px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   FONCTIONNEMENT NFC
===================================================== */

.fonctionnement-layout{

    display:grid;

    grid-template-columns:
    1.2fr .8fr;

    gap:60px;

    align-items:center;
}

.fonctionnement-steps{

    display:flex;

    flex-direction:column;

    gap:25px;
}

.fonctionnement-image{

    text-align:center;
}

.fonctionnement-image img{

    width:100%;

    max-width:420px;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);

    transition:
    transform .5s ease;
}

.fonctionnement-image:hover img{

    transform:
    translateY(-8px)
    scale(1.03);
}

.nfc-card-badge{

    margin-top:20px;

    display:inline-block;

    padding:14px 22px;

    border-radius:999px;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

/* RESPONSIVE */

@media(max-width:900px){

    .fonctionnement-layout{

        grid-template-columns:1fr;

    }

    .fonctionnement-image{

        order:-1;
    }

}
/* =====================================================
   BRACELET NFC
===================================================== */

.nfc-card-badge{

    margin-top:20px;

    padding:14px 22px;

    border-radius:999px;

    text-align:center;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.fonctionnement-image img{

    max-width:420px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   MAINTENANCE
===================================================== */

.maintenance-badge{

    margin-top:20px;

    padding:14px 22px;

    border-radius:999px;

    text-align:center;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.expertise-image img{

    max-width:550px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}
/* =====================================================
   FLASH DEV
===================================================== */

.hero{

    position:relative;
    overflow:hidden;
}

.hero::after{

    content:"";

    position:absolute;

    width:450px;
    height:450px;

    right:-150px;
    top:-150px;

    border-radius:50%;

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

    filter:blur(100px);
}

.feature:hover{

    transform:
    translateY(-10px);

    transition:.35s ease;
}

.solution-card:hover{

    transform:
    translateY(-12px);

    transition:.35s ease;
}
/* =====================================================
   FLASH & MAINTENANCE MOBILE
===================================================== */

.flash-badge{

    margin-top:20px;

    padding:14px 22px;

    border-radius:999px;

    text-align:center;

    background:
    rgba(0,212,255,.10);

    border:
    1px solid rgba(0,212,255,.25);

    color:#00d4ff;

    font-weight:600;
}

.expertise-image img{

    max-width:500px;

    display:block;

    margin:auto;

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.25);
}