/* ===================================================== */
/* ILABS RESPONSIVE */
/* Version 1.2 — blobs ancrés au centre (calc)           */
/* ===================================================== */


/* ===================================================== */
/* BLOBS — BASE : conteneur toujours sans bordure        */
/* ===================================================== */

.hero-visual.ecosystem {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}


/* ===================================================== */
/* LAPTOP */
/* ===================================================== */

@media (max-width:1200px){

    .container{
        padding:0 32px;
    }

    .hero-grid{
        grid-template-columns:1fr;
        gap:60px;
    }

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

    .hero-visual{
        height:520px;
    }

    .platform-layout,
    .platform-grid,
    .ecosystem-wrapper,
    .about-ilabs{
        grid-template-columns:1fr;
        gap:70px;
    }

    .products-simple-grid,
    .suite-grid,
    .why-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .engineering-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .stats{
        grid-template-columns:repeat(2,1fr);
    }

    .footer-grid{
        grid-template-columns:1.5fr 1fr 1fr;
    }

    /* Blobs — laptop */
    .hero-visual.ecosystem{
        overflow:hidden;
    }

    .blob{
        transform:scale(0.75);
        transform-origin:center;
    }

    .core-glow{
        width:300px;
        height:300px;
    }

}

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

@media (max-width:992px){

    .container{
        padding:0 28px;
    }

    header{
        padding:14px 22px;
    }

    .logo img{
        height:90px;
    }

    .hero{
        padding:155px 0 90px;
    }

    .hero h1{
        font-size:58px;
        line-height:1;
    }

    .hero-subtitle{
        font-size:30px;
    }

    .hero p{
        font-size:17px;
    }

    .hero-actions{
        flex-wrap:wrap;
    }

    .hero-visual{
        height:420px;
    }

    .products-simple-grid,
    .why-grid,
    .stats{
        grid-template-columns:1fr;
    }

    .footer-grid{
        grid-template-columns:1fr 1fr;
    }

    .section-intro h2,
    .platform-v2 h2,
    .ecosystem-title,
    .why-header h2,
    .engineering-header h2{
        font-size:48px;
        letter-spacing:-2px;
    }

    /*
     * BLOBS TABLETTE — ancrés au centre avec calc()
     * Blob size : 260px
     * offset haut/gauche : calc(50% - 210px)  → centre - (260 * 0.8)
     * offset bas/droit   : calc(50% - 50px)   → centre - (260 * 0.2)
     * Les blobs se chevauchent de 160px au centre,
     * quelle que soit la largeur du conteneur.
     */
    .hero-visual.ecosystem{
        overflow:hidden;
        height:420px;
        background:transparent !important;
        border:none !important;
    }

    .blob{
        position:absolute;
        width:260px;
        height:260px;
        transform:none;
        opacity:0.85;
    }

    .blob-green{
        top:  calc(50% - 210px);
        left: calc(50% - 210px);
        bottom:auto;
        right:auto;
    }

    .blob-coral{
        top:  calc(50% - 210px);
        left: calc(50% - 50px);
        bottom:auto;
        right:auto;
    }

    .blob-pink{
        top:  calc(50% - 50px);
        left: calc(50% - 210px);
        bottom:auto;
        right:auto;
    }

    .blob-yellow{
        top:  calc(50% - 50px);
        left: calc(50% - 50px);
        bottom:auto;
        right:auto;
    }

    .core-glow{
        width:260px;
        height:260px;
    }

}

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

@media (max-width:768px){

    .container{
        padding:0 22px;
    }

    .hero{
        padding:155px 0 80px;
    }
    

    .hero-grid{
    gap:20px;
}

.hero-visual{

    display:flex;
    justify-content:center;
    align-items:center;

    width:100%;
    max-width:none;

   

    margin:-10px auto 0;

    overflow:visible;
}

    .hero h1{
        font-size:42px;
        letter-spacing:-1px;
        line-height:1.05;
    }

    .hero-subtitle{
        font-size:24px;
    }

    .hero p{
        font-size:16px;
        line-height:1.8;
    }

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

    .btn-primary,
    .btn-secondary{
        width:100%;
        justify-content:center;
    }

   
    .section-intro h2,
    .platform-v2 h2,
    .ecosystem-title,
    .why-header h2,
    .engineering-header h2,
    .cta h2{
        font-size:36px;
        line-height:1.15;
        letter-spacing:-1px;
    }

    .products-grid-v2,
    .platform-v2,
    .ecosystem-api,
    .why-ilabs,
    .engineering-v2,
    .cta{
        padding:80px 0;
    }

    .footer{
        padding:70px 25px 0;
    }

    .footer-grid{
        grid-template-columns:1fr;
    }

    .footer-bottom{
        flex-direction:column;
        justify-content:center;
        align-items:center;
        text-align:center;
        gap:12px;
        flex-wrap:wrap;
        margin-top:40px;
        padding:22px 0;
    }

    .footer-bottom span{
        width:100%;
        text-align:center;
        white-space:normal;
    }

    .footer-bottom a{
        white-space:normal;
    }

    .footer-bottom-right{
        width:100%;
        margin:0;
        text-align:center;
    }

}

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

@media (max-width:768px){

 

    .main-panel{
        position:relative;
        top:0;
        right:0;
        width:100%;
        height:100%;
        
    }

    .floating-widget{
        display:none;
    }

    .chart-bars{
        left:20px;
        gap:10px;
    }

    .chart-bars span{
        width:16px;
    }

    .fake-dashboard{
        padding:20px;
    }

    .fake-row{
        gap:12px;
    }

}

/* ===================================================== */
/* BLOBS — MOBILE                                        */
/*                                                       */
/* Blob size : 200px                                     */
/* offset haut/gauche : calc(50% - 160px) = centre - 80%*/
/* offset bas/droit   : calc(50% - 40px)  = centre - 20%*/
/* Chevauchement garanti : 120px au centre               */
/* ===================================================== */

@media (max-width:768px){

  .hero-visual.ecosystem{

    position:relative;

    width:100%;

    height:380px;

    overflow:visible;

    background:transparent !important;

    border:none !important;
}

 .blob{

    position:absolute;
    width:220px;
    height:220px;
    transform:none;
    opacity:0.88;
}

    /* haut-gauche */
 .blob-green{
    top:calc(50% - 175px);
    left:calc(50% - 175px);
    bottom:auto;
    right:auto;
}

    /* haut-droit */
    .blob-coral{
        top:calc(50% - 175px);
    left:calc(50% - 45px);
        bottom:auto;
        right:auto;
    }

    /* bas-gauche */
    .blob-pink{
     top:calc(50% - 45px);
    left:calc(50% - 175px);
        bottom:auto;
        right:auto;
    }

    /* bas-droit */
    .blob-yellow{
       top:calc(50% - 45px);
    left:calc(50% - 45px);
        bottom:auto;
        right:auto;
    }

   .core-glow{

    width:220px;
    height:220px;

    filter:blur(45px);

    opacity:.9;
}
}

/* ===================================================== */
/* PARTICULES */
/* ===================================================== */

@media (max-width:768px){

    .particle{
        display:none;
    }

}

/* ===================================================== */
/* DASHBOARDS */
/* ===================================================== */

@media (max-width:992px){

    .dashboard-card{
        flex-direction:column;
    }

    .dashboard-sidebar{
        width:100%;
        padding:25px;
    }

    .dashboard-menu{
        flex-direction:row;
        overflow:auto;
        gap:16px;
    }

    .dashboard-content{
        padding:30px;
    }

    .dashboard-row{
        grid-template-columns:1fr;
        gap:12px;
    }

}

/* ===================================================== */
/* CARDS */
/* ===================================================== */

@media (max-width:768px){

    .product-row{
        grid-template-columns:1fr;
        text-align:center;
        gap:25px;
    }

    .product-color{
        margin:auto;
    }

    .simple-product{
        min-height:auto;
        padding:40px 30px;
    }

    .suite-card{
        padding:35px;
    }

    .why-card{
        padding:35px;
    }

    .stat{
        padding:35px;
    }

}

/* ===================================================== */
/* METRICS */
/* ===================================================== */

@media (max-width:768px){

    .metrics-grid{
        grid-template-columns:1fr;
        gap:30px;
    }

    .metric{
        text-align:center;
        padding:20px 0;
    }

    .metric h3{
        font-size:48px;
    }

    .metric p{
        max-width:none;
    }

    .metric::after{
        display:none;
    }

}

/* ===================================================== */
/* SECTIONS */
/* ===================================================== */

@media (max-width:768px){

    .section{
        padding:80px 0;
    }

    .section-intro{
        margin-bottom:60px;
    }

    .section-intro p{
        font-size:17px;
    }

    .use-row{
        grid-template-columns:1fr;
        gap:30px;
    }

    .use-img img{
        height:auto;
    }

}

/* ===================================================== */
/* FORMULAIRES */
/* ===================================================== */

@media (max-width:768px){

    input,
    select,
    textarea{
        width:100%;
        font-size:16px;
    }

}

/* ===================================================== */
/* TYPOGRAPHIE */
/* ===================================================== */

@media (max-width:768px){

    h1{
        font-size:42px !important;
        line-height:1.1 !important;
        letter-spacing:-1px !important;
    }

    h2{
        font-size:34px !important;
        line-height:1.2 !important;
    }

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

    p{
        font-size:16px !important;
        line-height:1.8 !important;
    }

    .hero-tag,
    .section-label{
        padding:10px 16px;
        font-size:11px;
        letter-spacing:1px;
    }

}

/* ===================================================== */
/* BOUTONS */
/* ===================================================== */

@media (max-width:768px){

    .btn-primary,
    .btn-secondary,
    .nav-demo{
        width:100%;
        min-height:56px;
        justify-content:center;
        text-align:center;
    }

    .hero-actions{
        gap:14px;
    }

}

/* ===================================================== */
/* IMAGES */
/* ===================================================== */

@media (max-width:768px){

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

    .about-left img,
    .use-img img{
        border-radius:22px;
    }

}

/* ===================================================== */
/* PLATFORM */
/* ===================================================== */

@media (max-width:768px){

    .platform-content{
        position:static;
        max-width:100%;
    }

    .platform-layout{
        grid-template-columns:1fr;
        gap:50px;
    }

    .platform-list{
        gap:18px;
    }

    .platform-item{
        gap:12px;
    }

}

/* ===================================================== */
/* ECOSYSTEM */
/* ===================================================== */

@media (max-width:768px){

    .ecosystem-wrapper{
        grid-template-columns:1fr;
        gap:60px;
    }

    .ecosystem-row{
        padding:24px 0;
    }

    .ecosystem-row h3{
        font-size:24px;
    }

    .ecosystem-row p{
        font-size:15px;
    }

}

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

@media (max-width:768px){

    .api-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .api-badge{
        min-height:80px;
        padding:18px;
        font-size:15px;
    }

    .api-badge.featured{
        grid-column:auto;
        min-height:110px;
        font-size:18px;
    }

}

/* ===================================================== */
/* ENGINEERING */
/* ===================================================== */

@media (max-width:768px){

    .engineering-v2{
        padding:80px 22px;
    }

    .engineering-step{
        grid-template-columns:1fr;
        gap:18px;
        padding:36px 0;
    }

    .engineering-step h3{
        font-size:30px;
    }

    .engineering-intro{
        font-size:18px !important;
    }

}

/* ===================================================== */
/* PROOF */
/* ===================================================== */

@media (max-width:768px){

    .proof-line{
        flex-direction:column;
        gap:24px;
    }

    .proof-separator{
        display:none;
    }

    .proof-item strong{
        font-size:34px;
    }

}

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

@media (max-width:768px){

    .cta-box{
        padding:45px 28px;
        border-radius:24px;
    }

    .cta h2{
        font-size:34px !important;
    }

    .cta p{
        font-size:16px;
        color: #64748b;
    }

}

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

@media (max-width:768px){

    .footer-logo img{
        height:72px;
    }

    .footer-description{
        max-width:100%;
    }

    .footer-trust{
        gap:8px;
    }

    .footer-bottom{
        text-align:center;
    }

}

/* ===================================================== */
/* ACCORDÉON */
/* ===================================================== */

@media (max-width:768px){

    .accordion .title{
        font-size:16px;
        padding-right:30px;
    }

    .accordion .content{
        font-size:15px;
        line-height:1.8;
    }

}

/* ===================================================== */
/* USE CASES */
/* ===================================================== */

@media (max-width:768px){

    .use-row{
        padding:45px 0;
    }

    .use-text h3{
        font-size:28px;
        margin-bottom:15px;
    }

    .use-text p{
        font-size:16px;
    }

    .use-cta{
        text-align:center;
    }

}

/* ===================================================== */
/* TIMELINE */
/* ===================================================== */

@media (max-width:768px){

    .timeline-card{
        flex-direction:column;
        gap:12px;
    }

    .timeline-step{
        width:100%;
    }

}

/* ===================================================== */
/* SKILLS */
/* ===================================================== */

@media (max-width:768px){

    .skills-card{
        gap:10px;
    }

    .skill-tag{
        font-size:12px;
        padding:8px 12px;
    }

}

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

@media (max-width:768px){

    .floating-card{
        position:relative;
        width:100%;
        margin-top:20px;
        left:auto;
        right:auto;
        top:auto;
        bottom:auto;
    }

}

/* ===================================================== */
/* PROCESS */
/* ===================================================== */

@media (max-width:768px){

    .process{
        grid-template-columns:1fr;
        gap:18px;
    }

    .process-item{
        padding:28px;
    }

}

/* ===================================================== */
/* CHARTS */
/* ===================================================== */

@media (max-width:768px){

    .chart-item{
        padding:14px;
    }

    .chart-item strong{
        font-size:22px;
    }

    .software-chart{
        grid-template-columns:1fr;
        gap:15px;
    }

}

/* ===================================================== */
/* TABLEAUX */
/* ===================================================== */

@media (max-width:768px){

    table{
        display:block;
        width:100%;
        overflow-x:auto;
        white-space:nowrap;
    }

}

/* ===================================================== */
/* FORMULAIRES AVANCÉS */
/* ===================================================== */

@media (max-width:768px){

    form{
        width:100%;
    }

    input,
    select,
    textarea{
        margin-bottom:16px;
    }

    label{
        font-size:14px;
    }

}

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

@media (max-width:768px){

    .fake-card.large{
        height:120px;
    }

    .fake-card{
        height:90px;
    }

    .chart-line{
        left:20px;
        right:20px;
    }

}

/* ===================================================== */
/* STATS */
/* ===================================================== */

@media (max-width:768px){

    .stat{
        text-align:center;
    }

    .stat h3{
        font-size:42px;
    }

    .stat p{
        font-size:15px;
    }

}

/* ===================================================== */
/* PRODUCT ROW */
/* ===================================================== */

@media (max-width:768px){

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

    .product-content h3{
        font-size:30px;
    }

    .product-content p{
        font-size:16px;
    }

    .product-link{
        text-align:center;
    }

}

/* ===================================================== */
/* ECOSYSTEM MAP */
/* ===================================================== */

@media (max-width:768px){

    .ecosystem-map{
        gap:16px;
    }

    .eco-item{
        padding:22px;
    }

    .eco-item strong{
        font-size:22px;
    }

    .eco-line{
        display:none;
    }

}

/* ===================================================== */
/* PETIT MOBILE (≤ 480px) */
/* ===================================================== */

@media (max-width:480px){

    .container{
        padding:0 18px;
    }

    .hero h1{
        font-size:34px !important;
    }

    .hero-subtitle{
        font-size:20px;
    }

    .section-intro h2,
    .platform-v2 h2,
    .ecosystem-title,
    .why-header h2,
    .engineering-header h2,
    .cta h2{
        font-size:30px !important;
        color: #111827;
    }

    .btn-primary,
    .btn-secondary{
        padding:16px;
    }

    .footer{
        padding:60px 18px 0;
    }

    /*
     * BLOBS ≤ 480px
     * Blob size : 160px
     * offset haut/gauche : calc(50% - 128px) = centre - 80%
     * offset bas/droit   : calc(50% - 32px)  = centre - 20%
     * Chevauchement : 96px
     */
    .hero-visual.ecosystem{
        height:220px;
    }

    .blob{
        width:160px;
        height:160px;
        opacity:0.78;
    }

    .blob-green{
        top:  calc(50% - 128px);
        left: calc(50% - 128px);
    }

    .blob-coral{
        top:  calc(50% - 128px);
        left: calc(50% - 32px);
    }

    .blob-pink{
        top:  calc(50% - 32px);
        left: calc(50% - 128px);
    }

    .blob-yellow{
        top:  calc(50% - 32px);
        left: calc(50% - 32px);
    }

    .core-glow{
        width:140px;
        height:140px;
    }

}

/* ===================================================== */
/* PREMIUM RESPONSIVE — BASE                             */
/* ===================================================== */

html,
body{
    width:100%;
    overflow-x:hidden;
    -webkit-text-size-adjust:100%;
}

*{
    min-width:0;
}

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

svg{
    max-width:100%;
}

iframe,
video{
    max-width:100%;
    display:block;
}

a{
    -webkit-tap-highlight-color:transparent;
}

button{
    -webkit-tap-highlight-color:transparent;
}

button,
.btn-primary,
.btn-secondary{
    touch-action:manipulation;
}

input,
textarea,
select{
    border-radius:16px;
    -webkit-appearance:none;
}

html{
    scroll-behavior:smooth;
}

p{
    word-break:normal;
    overflow-wrap:break-word;
}

h1,
h2,
h3,
h4{
    overflow-wrap:break-word;
}

.flex,
.hero-actions,
.footer-bottom{
    flex-wrap:wrap;
}

.grid,
.hero-grid,
.platform-layout,
.ecosystem-wrapper,
.products-simple-grid,
.footer-grid{
    min-width:0;
}

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

@media (hover:none){

    .product:hover,
    .simple-product:hover,
    .why-card:hover,
    .suite-card:hover,
    .engineering-card:hover,
    .api-badge:hover{
        transform:none;
        box-shadow:none;
    }

}

/* ===================================================== */
/* GRANDS MOBILES */
/* ===================================================== */

@media (min-width:430px) and (max-width:768px){

    .container{
        padding:0 28px;
    }

    .hero{
        padding-top:135px;
    }

}

/* ===================================================== */
/* PETITS MOBILES */
/* ===================================================== */

@media (max-width:390px){

    .container{
        padding:0 16px;
    }

    .hero h1{
        font-size:30px !important;
    }

    .hero-subtitle{
        font-size:19px;
    }

    .section-label,
    .hero-tag{
        font-size:10px;
    }

}

/* ===================================================== */
/* PAYSAGE */
/* ===================================================== */

@media (max-height:500px){

    .hero{
        min-height:auto;
        padding:110px 0 60px;
    }

    .hero-visual{
        display:none;
    }

}

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

:focus-visible{
    outline:2px solid #0ea5e9;
    outline-offset:3px;
}

::selection{
    background:#0ea5e9;
    color:white;
}

::-webkit-scrollbar{
    width:8px;
}

::-webkit-scrollbar-thumb{
    background:#cbd5e1;
    border-radius:20px;
}

::-webkit-scrollbar-thumb:hover{
    background:#94a3b8;
}

/* ===================================================== */
/* SUBNAV */
/* ===================================================== */

@media (max-width:768px){

.subnav-section{
    width:100%;
    overflow:hidden;
}

.subnav{
    display:flex;
    justify-content:flex-start;
    align-items:center;

    flex-wrap:nowrap;
    gap:14px;

    overflow-x:auto;
    overflow-y:hidden;

    padding:0 22px 12px;
    margin:0;

    white-space:nowrap;

    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}

.subnav::-webkit-scrollbar{
    display:none;
}

.subnav a{
    flex:0 0 auto;
    white-space:nowrap;
    padding:12px 0;
    font-size:14px;
}

}

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

.overview-item{
    grid-template-columns:50px 1fr 40px;
    gap:16px;
}

.overview-item h4{
    font-size:22px;
}

.overview-arrow{
    width:36px;
    height:36px;
    font-size:16px;
    flex-shrink:0;
}

/* ===================================================== */
/* RESOURCES */
/* ===================================================== */

.resources-grid{
    grid-template-columns:1fr;
    gap:18px;
}

.resource-card{
    padding:22px;
    min-height:auto;
}

.resource-card strong{
    font-size:17px;
    line-height:1.4;
}

.resource-card span{
    font-size:14px;
    line-height:1.7;
}

.resource-icon{
    width:46px;
    height:46px;
    font-size:13px;
    margin-bottom:16px;
}

/* ===================================================== */
/* CYNESIA — PILIERS                                     */
/* ===================================================== */

.solution-pillars{
    grid-template-columns:1fr;
    gap:20px;
}

.pillar{
    padding:24px;
    min-height:auto;
    text-align:left;
}

.pillar-icon{
    width:52px;
    height:52px;
    font-size:22px;
    margin-bottom:18px;
}

.pillar h3{
    font-size:22px;
    line-height:1.3;
    margin-bottom:12px;
}

.pillar p{
    font-size:15px;
    line-height:1.8;
}
/* ===================================================== */
/* QUALIFOP - DASHBOARD HERO */
/* ===================================================== */

@media (max-width:768px){

.dashboard-content{

    max-width:410px;
    margin:0 auto;
    padding:18px;
}

.dashboard-stats{

    grid-template-columns:1fr;
    gap:14px;
    margin-bottom:18px;
}

.stat-card{

    padding:18px;
    min-height:auto;
    border-radius:18px;
}

.stat-card h3{

    font-size:32px;
}

.main-panel{

    padding:22px;
    border-radius:22px;
}

.main-panel h4{

    font-size:22px;
    margin-bottom:20px;
    line-height:1.3;
}

.panel-top{

    margin-bottom:18px;
}

.progress-wrap{

    margin-bottom:20px;
}

.progress-bar{

    height:10px;
}

.beneficiary-list{

    gap:10px;
    margin-bottom:18px;
}

.beneficiary-item{

    padding:14px;
    border-radius:16px;
}

.beneficiary-info strong{

    font-size:14px;
}

.beneficiary-info span{

    font-size:12px;
}

.mini-grid{

    gap:12px;
}

.mini-card{

    padding:16px;
    border-radius:16px;
    font-size:13px;
}

}
/* ===================================================== */
/* QUALIFOP - CARDS */
/* ===================================================== */

@media (max-width:768px){

.grid{

    grid-template-columns:1fr;

    gap:20px;
}

.card{

    padding:28px;
}

.card h3{

    font-size:24px !important;

    line-height:1.3;

    word-break:normal;

    overflow-wrap:break-word;
}

.card p{

    font-size:15px !important;

    line-height:1.8;
}

}