/*
Theme Name: VSOLUTION
Theme URI: https://www.vsolution-tech.com/
Author: CodeurFort
Author URI: https://codeurfort.github.io/aurian-portfolio/
Description: Theme sur-mesure VSOLUTION — bureau d'etudes en ingenierie industrielle. Theme sombre, accent bleu, toggle jour/nuit, SEO (JSON-LD).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: vsolution
*/

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

    :root{
      --bg:#141b26;
      --bg2:#1a2332;
      --bg3:#222e3f;
      --bg4:#2d3a4e;
      --tx:#dce5f1;
      --tx2:#8b9db5;
      --tx3:#5c708a;
      --acc:#3b9eff;
      --acc2:#1a7fd4;
      --acc-dim:rgba(59,158,255,.08);
      --acc-glow:rgba(59,158,255,.12);
      --bd:rgba(0,0,0,.15);
      --bd-h:rgba(59,158,255,.3);
      --r:2px;
      --t:.3s cubic-bezier(.4,0,.2,1);
    }

    /* ===== THEME JOUR / NUIT ===== */
    .theme-toggle{background:var(--bg3);border:1px solid var(--bd);color:var(--tx2);width:36px;height:34px;font-size:.95rem;line-height:1;cursor:pointer;border-radius:var(--r);transition:all var(--t);display:flex;align-items:center;justify-content:center}
    .theme-toggle:hover{border-color:var(--bd-h);color:var(--acc)}
    html[data-theme="day"]{
      --bg:#eef2f8;--bg2:#ffffff;--bg3:#ffffff;--bg4:#e4ebf3;
      --tx:#16202c;--tx2:#45566b;--tx3:#73849a;
      --bd:rgba(15,30,50,.12);
      /* Mode jour : tout le bleu du site = bleu marine du vrai logo */
      --acc:#000080;--acc2:#00005c;
      --acc-dim:rgba(0,0,128,.08);--acc-glow:rgba(0,0,128,.16);--bd-h:rgba(0,0,128,.35);
    }
    html[data-theme="day"] header{background:rgba(255,255,255,.85)}
    html[data-theme="day"] .logo-text{color:#16202c}
    html[data-theme="day"] .nav-links.open{background:rgba(255,255,255,.97)}
    html[data-theme="day"] .bg-photo::after{background:linear-gradient(180deg,rgba(238,242,248,.85),rgba(238,242,248,.93)),radial-gradient(circle at 75% 35%,rgba(0,0,128,.10),transparent 60%)}
    html[data-theme="day"] .hero .bg-photo::after{background:linear-gradient(110deg,rgba(238,242,248,.92) 24%,rgba(238,242,248,.42) 82%),radial-gradient(circle at 80% 40%,rgba(0,0,128,.12),transparent 52%)}
    html[data-theme="day"] .ia-spot .bg-photo::after{background:linear-gradient(180deg,rgba(238,242,248,.88),rgba(228,235,243,.93))}
    html[data-theme="day"] .about .bg-photo::after{background:linear-gradient(90deg,rgba(238,242,248,.94),rgba(238,242,248,.82))}
    html[data-theme="day"] .chip-link{background:rgba(255,255,255,.7)}
    html[data-theme="day"] .sector{background:#ffffff}
    html[data-theme="day"] .mid-cta{background:linear-gradient(135deg,rgba(0,0,128,.12),rgba(238,242,248,.96))}
    /* Figure SVG du hero (cyan) -> marine en jour */
    html[data-theme="day"] .hero-visual [stroke="#0099cc"]{stroke:#000080}
    html[data-theme="day"] .hero-visual [fill="#0099cc"]{fill:#000080}
    html[data-theme="day"] .hero-visual stop[stop-color="#0099cc"]{stop-color:#000080}
    html[data-theme="day"] .hero-visual [stroke="rgba(59,158,255,.12)"]{stroke:rgba(0,0,128,.18)}
    /* Halos et grille décoratifs du hero -> marine en jour */
    html[data-theme="day"] .hero-bg::before{background:radial-gradient(circle,rgba(0,0,128,.08) 0%,transparent 65%)}
    html[data-theme="day"] .hero-bg::after{background:radial-gradient(circle,rgba(0,0,128,.06) 0%,transparent 65%)}
    html[data-theme="day"] .hero::after{background-image:linear-gradient(rgba(0,0,128,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,128,.04) 1px,transparent 1px)}
    /* Logo : harmonisé (bleu) en nuit, officiel (marine+gris) en jour */
    .logo-mark-day{display:none}
    html[data-theme="day"] .logo-mark-night{display:none}
    html[data-theme="day"] .logo-mark-day{display:block}

    html{scroll-behavior:smooth;font-size:16px}
    body{font-family:'Space Grotesk',sans-serif;background:var(--bg);color:var(--tx);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
    body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");opacity:.02;pointer-events:none;z-index:9999}

    /* Blueprint grid overlay on hero */
    .hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(59,158,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(59,158,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}
    a{color:inherit;text-decoration:none;transition:color var(--t)}
    a:hover{color:var(--acc)}
    a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
    .skip-link{position:fixed;top:12px;left:12px;z-index:99999;transform:translateY(-140%);background:var(--acc);color:#fff;padding:10px 14px;font-weight:700}
    .skip-link:focus{transform:translateY(0)}
    .container{max-width:1320px;margin:0 auto;padding:0 28px}
    .mono{font-family:'JetBrains Mono',monospace}
    .label{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--acc);letter-spacing:.15em;text-transform:uppercase;margin-bottom:14px;display:block}
    h2.big{font-size:clamp(2rem,4vw,3.5rem);font-weight:700;letter-spacing:-.025em;line-height:1.05;margin-bottom:18px;max-width:750px}
    .sub{font-size:1.0625rem;color:var(--tx2);max-width:620px;margin-bottom:56px;line-height:1.7}
    .section-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:56px}
    .section-head .sub{margin-bottom:0}
    .section-kicker{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 42px}
    .chip-link{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--tx2);border:1px solid var(--bd);background:rgba(34,46,63,.72);padding:8px 12px;transition:all var(--t)}
    .chip-link:hover{color:var(--acc);border-color:var(--bd-h);transform:translateY(-1px)}

    /* ===== Fonds photo (couleurs index 1 conservées) ===== */
    .bg-photo{position:absolute;inset:0;z-index:0;overflow:hidden}
    .bg-photo img{width:100%;height:100%;object-fit:cover;filter:blur(3px) brightness(.4) saturate(1.05);transform:scale(1.08)}
    .bg-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,27,38,.78),rgba(20,27,38,.9)),radial-gradient(circle at 75% 35%,rgba(59,158,255,.10),transparent 60%)}
    .hero .bg-photo img{filter:blur(2px) brightness(.44) saturate(1.1);transform:scale(1.1)}
    .hero .bg-photo::after{background:linear-gradient(110deg,rgba(20,27,38,.92) 24%,rgba(20,27,38,.5) 82%),radial-gradient(circle at 80% 40%,rgba(59,158,255,.16),transparent 52%)}
    .ia-spot{position:relative;overflow:hidden}
    .ia-spot .bg-photo img{filter:blur(5px) brightness(.4) saturate(1.2);transform:scale(1.1)}
    .ia-spot .bg-photo::after{background:linear-gradient(180deg,rgba(20,27,38,.85),rgba(26,35,50,.92))}
    .ia-spot .container{position:relative;z-index:2}
    .about{position:relative;overflow:hidden}
    .about .bg-photo::after{background:linear-gradient(90deg,rgba(20,27,38,.93),rgba(20,27,38,.8))}
    .about .container{position:relative;z-index:2}

    /* ===== HEADER ===== */
    header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(20,27,38,.88);backdrop-filter:blur(16px);border-bottom:1px solid var(--bd)}
    .nav{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;max-width:1320px;margin:0 auto}
    .logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.45rem;letter-spacing:.08em;text-decoration:none;transform:translateX(-50%)}
    .ft-brand .logo{transform:none}
    .logo-mark{width:68px;height:68px;object-fit:contain;flex-shrink:0;background:#fff;padding:8px;border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,.22)}
    html[data-theme="day"] .logo-mark{background:transparent;border-radius:0;box-shadow:none}
    .logo-text{color:#fff;font-weight:700;letter-spacing:.12em;font-size:1.45rem}
    .nav-links{display:flex;gap:28px;list-style:none;font-size:.8125rem}
    .nav-links a{color:var(--tx2);font-weight:500;letter-spacing:.02em;position:relative;padding:4px 0}
    .nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--acc);transition:width var(--t)}
    .nav-links a:hover::after{width:100%}
    .nav-right{display:flex;align-items:center;gap:16px}
    .nav-cta{padding:8px 18px;border:1px solid var(--acc);color:var(--acc);font-size:.8125rem;font-weight:600;transition:all var(--t);background:var(--bg3)}
    .nav-cta:hover{background:var(--acc);color:#fff}
    .lang{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--tx3);border:1px solid var(--bd);padding:4px 8px;background:var(--bg3)}
    .mobile-toggle{display:none;background:none;border:none;color:var(--tx);font-size:1.4rem;cursor:pointer}

    /* ===== HERO ===== */
    .hero{min-height:100vh;display:flex;align-items:center;position:relative;padding:120px 0 80px;overflow:hidden}
    .hero-bg{position:absolute;inset:0;z-index:0}
    .hero-bg::before{content:'';position:absolute;top:10%;right:-15%;width:700px;height:700px;background:radial-gradient(circle,rgba(59,158,255,.08) 0%,transparent 65%);border-radius:50%}
    .hero-bg::after{content:'';position:absolute;bottom:-25%;left:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(59,158,255,.05) 0%,transparent 65%);border-radius:50%}

    /* Logo watermark in hero background */
    .hero-logo-bg{position:absolute;top:50%;right:8%;transform:translateY(-50%);width:480px;height:559px;opacity:.05;z-index:0;pointer-events:none;mask-image:linear-gradient(to left,black 0%,transparent 70%);-webkit-mask-image:linear-gradient(to left,black 0%,transparent 70%)}
    .hero-logo-bg img{width:100%;height:100%;object-fit:contain}
    .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;position:relative;z-index:1}
    .hero-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--bd);border-radius:100px;font-size:.72rem;color:var(--tx2);margin-bottom:28px;font-family:'JetBrains Mono',monospace;letter-spacing:.08em}
    .hero-tag-dot{width:6px;height:6px;background:var(--acc);border-radius:50%;animation:pulse 2s infinite}
    .hero-tag{border-color:var(--bd);color:var(--tx2);background:var(--bg3)}
    @keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
    .hero h1{font-size:clamp(2.5rem,5.5vw,5rem);font-weight:700;line-height:1;letter-spacing:-.03em;margin-bottom:28px}
    .hero h1 .acc{color:var(--acc)}
    .hero h1 .lt{font-weight:300}
    .hero-p{font-size:1.125rem;color:var(--tx2);max-width:500px;margin-bottom:36px;line-height:1.7}
    .hero-p strong{color:var(--tx);font-weight:600}
    .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
    .btn{padding:13px 26px;font-weight:600;font-size:.9rem;letter-spacing:.01em;cursor:pointer;transition:all var(--t);border:none}
    .btn-primary{background:var(--acc);color:#fff}
    .btn-primary:hover{background:var(--acc2);transform:translateY(-2px);box-shadow:0 10px 30px var(--acc-glow)}
    .btn-ghost{background:var(--bg3);color:var(--tx);border:1px solid var(--bd)}
    .btn-ghost:hover{border-color:var(--bd-h);color:var(--acc)}

    /* Hero visual: animated engineering schematic */
    .hero-visual{position:relative;height:460px;display:flex;align-items:center;justify-content:center}
    .hero-visual svg{width:100%;height:100%}

    /* Responsive logo watermark */
    @media(max-width:1024px){.hero-logo-bg{display:none}}

    /* Scroll cue */
    .scroll-cue{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--tx3);font-family:'JetBrains Mono',monospace;font-size:.65rem;letter-spacing:.1em}
    .scroll-cue-line{width:1px;height:32px;background:var(--bd);position:relative;overflow:hidden}
    .scroll-cue-line::after{content:'';position:absolute;top:0;left:0;width:100%;height:50%;background:var(--acc);animation:scrollDown 1.8s infinite}
    @keyframes scrollDown{0%{top:-50%}100%{top:100%}}

    /* ===== COUNTERS ===== */
    .counters{border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);background:var(--bg3)}
    .counter-num{color:var(--acc)}
    .counters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;text-align:center}
    .counter{padding:48px 24px;border-right:1px solid var(--bd)}
    .counter:last-child{border-right:none}
    .counter-num{font-size:2.75rem;font-weight:700;color:var(--acc);font-family:'JetBrains Mono',monospace;line-height:1}
    .counter-suffix{font-size:1.5rem;color:var(--acc);opacity:.6}
    .counter-label{font-size:.8rem;color:var(--tx3);margin-top:8px;letter-spacing:.08em;text-transform:uppercase}

    /* ===== SECTIONS ===== */
    section{padding:110px 0;position:relative}

    /* ===== SERVICES ===== */
    .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd)}
    .svc{background:var(--bg3);padding:44px 36px;transition:all var(--t);position:relative;overflow:hidden;cursor:default;box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .svc::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
    .svc:hover{background:var(--bg3);box-shadow:0 4px 20px rgba(59,158,255,.08)}
    .svc:hover::before{transform:scaleX(1)}
    .svc-num{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--tx3);margin-bottom:22px;letter-spacing:.05em}
    .svc-icon{width:44px;height:44px;margin-bottom:22px;color:var(--acc)}
    .svc-tags .svc-tag{background:var(--bg3)}
    .svc h3{font-size:1.3125rem;font-weight:600;margin-bottom:12px;letter-spacing:-.01em}
    .svc p{color:var(--tx2);font-size:.9375rem;line-height:1.65;margin-bottom:18px}
    .svc-tags{display:flex;flex-wrap:wrap;gap:6px}
    .svc-tag{font-family:'JetBrains Mono',monospace;font-size:.6875rem;padding:3px 9px;border:1px solid var(--bd);color:var(--tx3);letter-spacing:.03em}
    .svc-link{display:inline-flex;margin-top:22px;font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--acc);letter-spacing:.04em;text-transform:uppercase}
    .svc-link::after{content:'->';margin-left:8px;transition:transform var(--t)}
    .svc:hover .svc-link::after{transform:translateX(4px)}

    /* ===== IA SPOTLIGHT ===== */
    .ia-spot{background:var(--bg3);position:relative;overflow:hidden}
    .ia-spot::before{content:'';position:absolute;top:-30%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(59,158,255,.06) 0%,transparent 60%);border-radius:50%}
    .ia-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;position:relative;z-index:1}
    .ia-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--acc-dim);border:1px solid var(--bd-h);border-radius:100px;font-size:.72rem;color:var(--acc);font-family:'JetBrains Mono',monospace;letter-spacing:.08em;margin-bottom:24px;font-weight:600}
    .ia-spot h2{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-bottom:20px}
    .ia-spot .ia-desc{font-size:1.0625rem;color:var(--tx2);line-height:1.75;margin-bottom:28px}
    .ia-quote{border-left:3px solid var(--acc);padding:16px 0 16px 20px;margin:28px 0;font-size:.9375rem;color:var(--tx2);font-style:italic;line-height:1.7;background:var(--bg3);border-radius:0 var(--r) var(--r) 0}
    .ia-quote cite{display:block;margin-top:8px;font-style:normal;font-size:.8125rem;color:var(--tx3);font-family:'JetBrains Mono',monospace}
    .ia-features{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:32px}
    .ia-feat{display:flex;gap:14px;align-items:flex-start;font-size:.9375rem;color:var(--tx2);line-height:1.5}
    .ia-feat::before{content:'';flex-shrink:0;width:6px;height:6px;background:var(--acc);margin-top:8px;transform:rotate(45deg)}
    .ia-feat strong{color:var(--tx);font-weight:600}

    /* IA cards */
    .ia-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
    .ia-card{border:1px solid var(--bd);padding:28px;background:var(--bg3);transition:all var(--t);box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .ia-card:hover{border-color:var(--bd-h);box-shadow:0 4px 20px rgba(59,158,255,.08)}
    .ia-card h4{font-size:1.0625rem;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:10px}
    .ia-card .price{font-family:'JetBrains Mono',monospace;color:var(--acc);font-size:.8125rem;margin-bottom:14px;letter-spacing:.05em}
    .ia-card ul{list-style:none;display:flex;flex-direction:column;gap:8px}
    .ia-card li{font-size:.875rem;color:var(--tx2);display:flex;gap:8px;align-items:flex-start}
    .ia-card li::before{content:'→';color:var(--acc);flex-shrink:0}

    /* ===== ABOUT ===== */
    .about{background:var(--bg3)}
    .about-info{box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}
    .about-text p{color:var(--tx2);font-size:1.0625rem;line-height:1.85;margin-bottom:18px}
    .about-text p strong{color:var(--tx);font-weight:600}
    .about-info{border:1px solid var(--bd);background:var(--bg3)}
    .about-info-h{padding:20px 24px;border-bottom:1px solid var(--bd);font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--acc);letter-spacing:.1em;text-transform:uppercase}
    .about-info ul{list-style:none}
    .about-info li{padding:14px 24px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;font-size:.9rem}
    .about-info li:last-child{border-bottom:none}
    .about-info li span:first-child{color:var(--tx2)}
    .about-info li span:last-child{color:var(--tx);font-weight:500;font-family:'JetBrains Mono',monospace;font-size:.85rem}

    /* ===== PRESTATIONS ===== */
    .prest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
    .prest{border:1px solid var(--bd);padding:32px 28px;transition:all var(--t);position:relative;background:var(--bg3);box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .prest:hover{border-color:var(--bd-h);background:var(--bg3);transform:translateY(-3px)}
    .prest-num{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--acc);margin-bottom:20px;letter-spacing:.1em}
    .prest h4{font-size:1.125rem;font-weight:600;margin-bottom:14px}
    .prest ul{list-style:none;display:flex;flex-direction:column;gap:8px}
    .prest li{font-size:.85rem;color:var(--tx2);display:flex;gap:8px;align-items:center}
    .prest li::before{content:'';width:4px;height:4px;background:var(--acc);border-radius:50%;flex-shrink:0}


    /* ===== SECTORS / PROOF / FAQ ===== */
    .sectors{background:linear-gradient(180deg,var(--bg),var(--bg2));border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
    .sector-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd)}
    .sector{background:rgba(34,46,63,.9);padding:30px 26px;min-height:210px;display:flex;flex-direction:column;justify-content:space-between;transition:all var(--t)}
    .sector:hover{background:var(--bg3);box-shadow:0 14px 40px rgba(0,0,0,.18)}
    .sector h3{font-size:1.15rem;margin-bottom:12px}
    .sector p{color:var(--tx2);font-size:.9rem;line-height:1.65}
    .sector-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
    .sector-tags span{font-family:'JetBrains Mono',monospace;font-size:.66rem;color:var(--tx3);border:1px solid var(--bd);padding:3px 8px}
    .proof-band{display:grid;grid-template-columns:1.1fr repeat(3,1fr);gap:1px;background:var(--bd);border:1px solid var(--bd);margin-top:40px}
    .proof-item{background:var(--bg3);padding:26px 24px}
    .proof-item:first-child{background:var(--bg3)}
    .proof-item .v{display:block;font-size:1.8rem;font-weight:700;color:var(--tx);line-height:1}
    .proof-item .l{display:block;margin-top:10px;color:var(--tx2);font-size:.86rem;line-height:1.5}
    .mid-cta{border:1px solid var(--bd-h);background:linear-gradient(135deg,rgba(59,158,255,.12),rgba(34,46,63,.92));padding:34px;display:grid;grid-template-columns:1.4fr auto;gap:28px;align-items:center;margin-top:44px}
    .mid-cta h3{font-size:1.45rem;margin-bottom:8px}
    .mid-cta p{color:var(--tx2);font-size:.95rem;line-height:1.6}
    .faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:36px}
    .faq{border:1px solid var(--bd);background:var(--bg3);padding:24px}
    .faq h3{font-size:1rem;margin-bottom:10px}
    .faq p{color:var(--tx2);font-size:.9rem;line-height:1.65}

    /* ===== USE CASES ===== */
    .uc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
    .uc{border:1px solid var(--bd);padding:0;overflow:hidden;transition:all var(--t);background:var(--bg3);box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .uc:hover{border-color:var(--bd-h);box-shadow:0 4px 20px rgba(59,158,255,.08)}
    .uc-body{padding:28px}
    .uc-body h4{font-size:1.0625rem;font-weight:600;margin-bottom:10px}
    .uc-body p{font-size:.875rem;color:var(--tx2);line-height:1.6;margin-bottom:16px}
    .uc-stat{display:flex;align-items:baseline;gap:8px;font-family:'JetBrains Mono',monospace}
    .uc-stat .v{font-size:1.5rem;font-weight:700;color:var(--acc)}
    .uc-stat .l{font-size:.72rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}

    /* ===== CLIENTS ===== */
    .clients{padding:60px 0;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
    .clients-row{display:flex;flex-wrap:wrap;gap:16px 56px;align-items:center;justify-content:center;padding:24px 0}
    .client{font-size:1.625rem;font-weight:600;color:var(--tx3);letter-spacing:.01em;transition:color var(--t)}
    .client:hover{color:var(--tx)}
    .client-logos{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;margin-top:28px}
    .client-logo{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:8px;padding:0 22px;height:60px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.18);transition:transform var(--t)}
    .client-logo:hover{transform:translateY(-3px)}
    .client-logo img{height:30px;width:auto;max-width:120px;object-fit:contain;display:block}

    /* ===== LOCATIONS ===== */
    .loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
    .loc{border:1px solid var(--bd);padding:36px 32px;transition:all var(--t);background:var(--bg3);box-shadow:0 1px 3px rgba(0,0,0,.2)}
    .loc:hover{border-color:var(--bd-h);box-shadow:0 4px 20px rgba(59,158,255,.08)}
    .loc-flag{font-size:2.25rem;margin-bottom:14px;line-height:1}
    .loc h4{font-size:1.125rem;font-weight:600;margin-bottom:4px}
    .loc .loc-type{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--acc);text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}
    .loc p{color:var(--tx2);font-size:.875rem;line-height:1.65}
    .loc .loc-contact{margin-top:16px;padding-top:16px;border-top:1px solid var(--bd);font-size:.8125rem;color:var(--tx3);font-family:'JetBrains Mono',monospace}

    /* ===== CONTACT ===== */
    .contact{background:var(--bg3)}
    .contact-socials a{background:var(--bg3)}
    .contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
    .contact-info p{color:var(--tx2);font-size:1.0625rem;line-height:1.7;margin-bottom:28px}
    .contact-detail{display:flex;align-items:baseline;gap:14px;padding:14px 0;border-bottom:1px solid var(--bd);font-size:.9rem}
    .contact-detail .lbl{color:var(--tx3);font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;min-width:70px}
    .contact-detail .val{color:var(--tx)}
    .contact-socials{display:flex;gap:12px;margin-top:28px}
    .contact-socials a{width:40px;height:40px;border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;color:var(--tx2);font-size:.875rem;transition:all var(--t)}
    .contact-socials a:hover{border-color:var(--acc);color:var(--acc)}
    .form{display:flex;flex-direction:column;gap:16px}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
    .fg{display:flex;flex-direction:column;gap:6px}
    .fg label{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}
    .fg input,.fg textarea,.fg select{padding:12px 16px;background:var(--bg2);border:1px solid var(--bd);color:var(--tx);font-family:'Space Grotesk',sans-serif;font-size:.9rem;transition:border-color var(--t);border-radius:var(--r)}
    .fg input:focus,.fg textarea:focus,.fg select:focus{outline:none;border-color:var(--acc)}
    .fg textarea{resize:vertical;min-height:130px}
    .form-hint{font-size:.72rem;color:var(--tx3);font-family:'JetBrains Mono',monospace;margin-top:8px}

    /* ===== FOOTER ===== */
    footer{border-top:1px solid var(--bd);padding:64px 0 28px}
    .ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px}
    .ft-brand p{color:var(--tx2);font-size:.85rem;max-width:320px;margin-top:14px;line-height:1.65}
    .ft-col h5{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px}
    .ft-col ul{list-style:none}
    .ft-col li{margin-bottom:8px}
    .ft-col a{color:var(--tx2);font-size:.85rem}
    .ft-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--bd);font-size:.78rem;color:var(--tx3)}
    .ft-bottom a{color:var(--tx3)}
    .ft-credit{text-align:center;margin-top:18px;font-size:.7rem;color:var(--tx3);font-family:'JetBrains Mono',monospace;letter-spacing:.06em;opacity:.65}
    .ft-credit a{color:var(--tx2)}.ft-credit a:hover{color:var(--acc)}

    /* ===== RESPONSIVE ===== */
    @media(max-width:1024px){
      .hero-grid{grid-template-columns:1fr;gap:32px}
      .hero-visual{display:none}
      .counters-grid{grid-template-columns:repeat(2,1fr)}
      .counter:nth-child(2){border-right:none}
      .counter:nth-child(1),.counter:nth-child(2){border-bottom:1px solid var(--bd)}
      .services-grid{grid-template-columns:1fr}
      .ia-grid{grid-template-columns:1fr;gap:36px}
      .about-grid{grid-template-columns:1fr;gap:32px}
      .prest-grid{grid-template-columns:repeat(2,1fr)}
      .sector-grid{grid-template-columns:repeat(2,1fr)}
      .proof-band{grid-template-columns:1fr 1fr}
      .mid-cta{grid-template-columns:1fr}
      .section-head{display:block}
      .uc-grid{grid-template-columns:1fr 1fr}
      .loc-grid{grid-template-columns:1fr}
      .contact-grid{grid-template-columns:1fr;gap:32px}
      .ft-grid{grid-template-columns:1fr 1fr;gap:32px}
      .nav-links{display:none}
      .nav-links.open{display:flex;position:absolute;top:100%;left:0;right:0;background:rgba(20,27,38,.98);flex-direction:column;padding:20px 28px;border-bottom:1px solid var(--bd);gap:16px}
      .mobile-toggle{display:block}
      .logo{transform:none;font-size:1.2rem;gap:8px}
      .nav{padding:14px 16px}
      .nav-right{gap:10px}
      .logo-mark{width:48px;height:48px;padding:6px}
      .nav-cta{display:none}
      section{padding:72px 0}
      /* iOS Safari : le backdrop-filter du header fixe laisse un "fantôme"
         de l'ancien rendu en scrollant -> header opaque sans flou sur mobile */
      header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg);transform:translateZ(0)}
      html[data-theme="day"] header{background:#fff}
    }
    @media(max-width:640px){
      .counters-grid{grid-template-columns:1fr}
      .counter{border-right:none;border-bottom:1px solid var(--bd)}
      .counter:last-child{border-bottom:none}
      .prest-grid{grid-template-columns:1fr}
      .uc-grid{grid-template-columns:1fr}
      .sector-grid,.proof-band,.faq-grid{grid-template-columns:1fr}
      .ia-cards{grid-template-columns:1fr}
      .form-row{grid-template-columns:1fr}
      .ft-grid{grid-template-columns:1fr}
      .ft-bottom{flex-direction:column;gap:12px;text-align:center}
    }

    /* ===== ANIM ===== */
    @keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
    .anim{animation:fadeUp .7s cubic-bezier(.4,0,.2,1) forwards;opacity:0}
    .d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}.d5{animation-delay:.5s}

    /* SVG animations */
    @keyframes rotate-slow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
    @keyframes dash{to{stroke-dashoffset:0}}
    .svg-rotate{animation:rotate-slow 60s linear infinite;transform-origin:center}
    .svg-dash{stroke-dasharray:800;stroke-dashoffset:800;animation:dash 3s ease-out forwards}
    @media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

/* ===== PAGES INTERNES (sous-pages + maillage) ===== */
.breadcrumb{border-bottom:1px solid var(--bd);background:var(--bg2);font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.04em}
.breadcrumb .container{padding-top:16px;padding-bottom:16px}
.breadcrumb a{color:var(--tx2)}
.breadcrumb a:hover{color:var(--acc)}
.breadcrumb .bc-sep{margin:0 10px;color:var(--tx3)}
.breadcrumb .bc-current{color:var(--tx)}
.section-page{padding:88px 0 40px}
.page-content{max-width:760px;color:var(--tx2);font-size:1.0625rem;line-height:1.8}
.page-content h2{font-size:1.6rem;font-weight:600;letter-spacing:-.01em;color:var(--tx);margin:36px 0 14px}
.page-content h3{font-size:1.2rem;font-weight:600;color:var(--tx);margin:28px 0 10px}
.page-content p{margin-bottom:16px}
.page-content ul,.page-content ol{margin:0 0 16px 22px}
.page-content li{margin-bottom:8px}
.page-content strong{color:var(--tx)}
.page-content a{color:var(--acc)}
/* Teaser accueil : lien "En savoir plus" */
.teaser-more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:.8rem;font-weight:600;color:var(--acc);letter-spacing:.04em}
.teaser-more:hover{gap:12px;color:var(--acc)}
/* Liens croisés bas de page interne */
.page-crosslinks{display:flex;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:32px;border-top:1px solid var(--bd)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== TEASERS ACCUEIL (2 colonnes : texte + visuel droite) ===== */
.teaser-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.teaser-grid .teaser-copy .sub{margin-bottom:0}
.teaser-visual{display:grid;gap:14px}
.teaser-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.teaser-chip{border:1px solid var(--bd);background:var(--bg3);padding:18px 20px;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:all var(--t)}
.teaser-chip:hover{border-color:var(--bd-h);box-shadow:0 4px 20px rgba(59,158,255,.08)}
.teaser-chip .k{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--acc);letter-spacing:.08em;text-transform:uppercase}
.teaser-chip .v{display:block;margin-top:6px;color:var(--tx);font-weight:600;font-size:.95rem;line-height:1.3}
.teaser-stats{display:flex;gap:14px;flex-wrap:wrap}
.teaser-stat{flex:1;min-width:120px;border:1px solid var(--bd);background:var(--bg3);padding:18px 20px;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.teaser-stat .v{display:block;font-family:'JetBrains Mono',monospace;font-size:1.5rem;font-weight:700;color:var(--acc);line-height:1}
.teaser-stat .l{display:block;margin-top:8px;font-size:.72rem;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}
@media(max-width:1024px){.teaser-grid{grid-template-columns:1fr;gap:32px}}

/* ===== TEASER : bloc-image cliquable (aperçu de la page de destination) ===== */
.teaser-preview{position:relative;display:block;overflow:hidden;border:1px solid var(--bd);border-radius:var(--r);box-shadow:0 14px 40px rgba(0,0,0,.28);aspect-ratio:4/3}
.teaser-preview img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.teaser-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,27,38,.05),rgba(20,27,38,.78))}
.teaser-preview:hover img{transform:scale(1.06)}
.teaser-preview .tp-bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px}
.teaser-preview .tp-label{color:#fff;font-weight:600;font-size:1.05rem;letter-spacing:.01em}
.teaser-preview .tp-arrow{color:#fff;font-family:'JetBrains Mono',monospace;font-size:1.1rem;transition:transform var(--t)}
.teaser-preview:hover .tp-arrow{transform:translateX(5px)}

/* Ancres : décalage pour le header fixe (atterrissage propre sur la section) */
:target{scroll-margin-top:96px}
section[id],div[id]{scroll-margin-top:96px}

/* ===== CARTES EXPERTISE CLIQUABLES + GALERIE RÉALISATIONS ===== */
a.svc{cursor:pointer;color:inherit}
a.svc:hover{color:inherit}
.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:6px 0 10px}
.real-card{border:1px solid var(--bd);background:var(--bg3);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:all var(--t)}
.real-card:hover{border-color:var(--bd-h);box-shadow:0 8px 28px rgba(0,0,0,.22)}
.real-card img{width:100%;height:210px;object-fit:contain;background:#fff;display:block;padding:10px}
.real-card figcaption{padding:14px 16px;font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--tx2);letter-spacing:.03em}
@media(max-width:1024px){.real-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.real-grid{grid-template-columns:1fr}}
