

:root{

    --primary:#4338ca;         /* Bleu-violet principal */
    --primary-light:#6366f1;   /* Bleu-violet clair */

    --secondary:#4f46e5;       /* Accent principal */
    --secondary-dark:#3730a3;  /* Accent foncé */

    --dark:#1e293b;            /* Gris industriel */
    --dark-2:#334155;

    --light:#ffffff;

    --gray:#f8fafc;
    --gray-2:#e2e8f0;
    --gray-3:#94a3b8;

    --shadow-sm:0 4px 15px rgba(0,0,0,.05);
    --shadow-md:0 10px 30px rgba(0,0,0,.08);
    --shadow-lg:0 20px 50px rgba(0,0,0,.12);

    --radius:16px;
}

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

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

html{
    scroll-behavior:smooth;
}

body{

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

    background:var(--gray);

    color:var(--primary);

    overflow-x:hidden;

    line-height:1.7;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

.container{

    width:92%;

    max-width:1400px;

    margin:auto;
}

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

.topbar{

    background:
    linear-gradient(
        90deg,
        #1e293b,
        #312e81
    );
    padding: 5px 0;
}

.topbar.hidden{

    transform:translateY(-100%);
}

.topbar .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;
}

.topbar-left,
.topbar-right{

    display:flex;

    align-items:center;

    gap:25px;
}

.topbar a,
.topbar span{

    color:white;

    font-size:14px;

    transition:.3s;
}

.topbar a:hover{

    color:var(--secondary);
}

/* ==================================================
   NAVBAR
================================================== */

.navbar{

    position:sticky;

    top:0;

    z-index:999;

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

    backdrop-filter:blur(15px);

    border-bottom:1px solid rgba(0,0,0,.05);

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

.navbar .container{

    height:95px;

    display:flex;

    justify-content:space-between;

    align-items:center;
}

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

.logo{

    display:flex;

    align-items:center;

    gap:15px;
}

.logo-icon{

    width:60px;

    height:60px;

    border-radius:18px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:
    linear-gradient(
        135deg,
        var(--secondary),
        var(--secondary-dark)
    );

    box-shadow:
    0 10px 30px rgba(56,189,248,.3);
}

.logo-icon i{

    color:white;

    font-size:24px;
}

.logo-text h3{

    font-size:24px;

    color:var(--primary);

    font-weight:700;

    margin:0;
}

.logo-text span{

    font-size:12px;

    color:var(--gray-3);
}

/* ==================================================
   MENU
================================================== */

.navbar ul{

    display:flex;

    align-items:center;

    gap:10px;
}

.navbar ul li a{

    position:relative;

    color:black;

    padding-left:12px;
    padding-bottom: 18px;
    padding-top: 18px;

    font-size:18px;

    font-weight:600;

    transition:.3s;
}

.navbar ul li a::after{

    content:'';

    position:absolute;

    left:50%;

    bottom:0;

    width:0;

    height:3px;

    transform:translateX(-50%);

    background:var(--secondary);

    border-radius:10px;

    transition:.3s;
}

.navbar ul li a:hover{

    color:var(--secondary-dark);
}

.navbar ul li a:hover::after{

    width:60%;
}

/* ==================================================
   BOUTON NAVBAR
================================================== */

.btn-contact{

    padding:14px 28px;

    border-radius:50px;

    color:white;

    font-weight:600;

    background:
    linear-gradient(
        135deg,
        var(--secondary),
        var(--secondary-dark)
    );

   

    transition:.3s;
}

.btn-contact:hover{

    transform:translateY(-3px);

    color:white;

     box-shadow:
    0 10px 25px rgba(59, 20, 122, 0.3);
}

/* ==================================================
   MAIN
================================================== */

main{

    min-height:600px;
}

/* ==================================================
   FOOTER
================================================== */
/* ==========================================
FOOTER PREMIUM DESIGN
========================================== */

.footer{
    position:relative;
    margin-top:60px;
    background:linear-gradient(135deg, #0f172a, #111c33);
    color:#fff;
    overflow:hidden;
}

/* effet lumineux subtil */
.footer::before{
    content:"";
    position:absolute;
    top:-120px;
    left:-120px;
    width:300px;
    height:300px;
    background:radial-gradient(circle, rgba(99,102,241,.25), transparent 70%);
    filter:blur(40px);
}

.footer::after{
    content:"";
    position:absolute;
    bottom:-120px;
    right:-120px;
    width:350px;
    height:350px;
    background:radial-gradient(circle, rgba(34,211,238,.15), transparent 70%);
    filter:blur(50px);
}

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

.footer-grid{
    position:relative;
    z-index:2;

    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.5fr;
    gap:60px;

    padding:80px 0 50px;
}

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

.footer h3{
    font-size:28px;
    margin-bottom:15px;
    color:#6366f1;
    letter-spacing:1px;
}

.footer h4{
    font-size:18px;
    margin-bottom:20px;
    color:#fff;
    position:relative;
}

.footer h4::after{
    content:"";
    position:absolute;
    bottom:-8px;
    left:0;
    width:40px;
    height:2px;
    background:linear-gradient(135deg,#6366f1,#22d3ee);
    border-radius:10px;
}

/* ==========================================
TEXTES
========================================== */

.footer p{
    color:#cbd5e1;
    line-height:1.8;
    font-size:15px;
}

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

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

.footer ul li{
    margin-bottom:12px;
}

.footer ul li a{
    color:#cbd5e1;
    text-decoration:none;
    transition:.3s;
    display:inline-block;
}

.footer ul li a:hover{
    color:#6366f1;
    transform:translateX(6px);
}

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

.footer .footer-contact p{
    margin-bottom:10px;
    display:flex;
    gap:10px;
    align-items:center;
    color:#cbd5e1;
}

/* ==========================================
BOTTOM
========================================== */

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    padding:20px 0;

    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;

    color:#94a3b8;
    font-size:14px;
}

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

@media(max-width:991px){
    .footer-grid{
        grid-template-columns:1fr 1fr;
        gap:40px;
    }
}

@media(max-width:600px){
    .footer-grid{
        grid-template-columns:1fr;
        text-align:left;
    }

    .footer-bottom{
        flex-direction:column;
        gap:10px;
        text-align:center;
    }
}
/* ===================================
   FLOATING ACTION BUTTON
=================================== */

.floating-actions{

    position:fixed;

    right:25px;

    bottom:90px;

    z-index:99999;

    display:flex;

    flex-direction:column;

    align-items:flex-end;

    gap:15px;
}

/* BOUTONS CACHÉS */

.floating-item{

    display:flex;

    align-items:center;

    gap:12px;

    background:white;

    padding:12px 18px;

    border-radius:50px;

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

    color:#1f2937;

    font-weight:600;

    transform:translateY(20px);

    opacity:0;

    visibility:hidden;

    transition:.35s;
}

.floating-item span{

    white-space:nowrap;

    font-size:14px;
}

/* ICÔNES */

.floating-item i{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;
}

/* COULEURS */

.floating-item.whatsapp i{

    background:#25D366;
}

.floating-item.devis i{

    background:#4338ca;
}

.floating-item.tech i{

    background:#0ea5e9;
}

/* BOUTON PRINCIPAL */

.floating-main{

    width:65px;

    height:65px;

    border:none;

    border-radius:50%;

    cursor:pointer;

    color:white;

    font-size:22px;

    background:linear-gradient(
        135deg,
        #4338ca,
        #6366f1
    );

    box-shadow:
    0 15px 40px rgba(67,56,202,.35);

    transition:.35s;
}

/* OUVERTURE */

.floating-actions.active .floating-item{

    transform:translateY(0);

    opacity:1;

    visibility:visible;
}

.floating-actions.active .floating-main{

    transform:rotate(45deg);
}

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

*{
    box-sizing:border-box;
}

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

.container{
    width:100%;
    max-width:1400px;
    margin:auto;
    padding:0 15px;
}

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

@media (max-width: 991px){

    h1{
        font-size:40px !important;
    }

    h2{
        font-size:32px !important;
    }

    .hero-content{
        max-width:100%;
        text-align:center;
    }

    .hero-buttons{
        justify-content:center;
        flex-wrap:wrap;
    }

    .footer-grid,
    .contact-info-grid,
    .sector-grid,
    .services-grid,
    .atout-grid,
    .blog-grid{
        grid-template-columns:repeat(2,1fr) !important;
    }

    .contact-grid,
    .article-layout,
    .about-grid,
    .sector-intro-grid,
    .blog-layout{
        grid-template-columns:1fr !important;
    }

    .blog-sidebar{
        position:relative !important;
        top:0 !important;
    }

    .contact-form-wrapper,
    .article-content{
        padding:30px !important;
    }
}
@media (max-width: 768px){

    section{
        padding:60px 0 !important;
    }

    h1{
        font-size:32px !important;
        line-height:1.2;
    }

    h2{
        font-size:26px !important;
    }

    h3{
        font-size:20px !important;
    }

    p{
        font-size:15px !important;
    }

    .hero-content{
        text-align:center;
    }

    .hero-buttons{
        flex-direction:column;
        width:100%;
    }

    .hero-buttons a{
        width:100%;
        text-align:center;
    }

    .footer-grid,
    .contact-info-grid,
    .sector-grid,
    .services-grid,
    .atout-grid,
    .blog-grid,
    .why-grid,
    .stats-grid{
        grid-template-columns:1fr !important;
    }

    .contact-card,
    .service-card,
    .sector-card,
    .blog-card,
    .info-card{
        width:100%;
    }

    .article-content{
        padding:25px 20px !important;
    }

    .article-hero{
        height:auto !important;
    }

    .article-hero img{
        height:300px !important;
        object-fit:cover;
    }

    .floating-actions{
        right:15px;
        bottom:15px;
    }
}
@media (max-width: 480px){

    .container{
        padding:0 12px;
    }

    h1{
        font-size:28px !important;
    }

    h2{
        font-size:22px !important;
    }

    .section-badge{
        font-size:12px;
        padding:8px 15px;
    }

    .contact-form-wrapper{
        padding:20px !important;
    }

    .sidebar-card{
        padding:20px !important;
    }

    .blog-image{
        height:220px !important;
    }
}