/* =========================================
   PTI TECH — style1.css COMPLET + FIX MOBILE
   PREMIUM FONTS: Outfit (Display) + Space Grotesk (Body)
   Architecture robuste + correction chevauchement menu mobile
   ========================================= */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');

:root {
     --body-bg:#faf9f7;
    --body-alt:#f5f4f1;
    --blue:#0a2463;--blue-mid:#1e40af;--blue-light:#3b82f6;--cyan:#06b6d4;--cyan-dark:#0891b2;
    --green:#10b981;--amber:#f59e0b;--red:#ef4444;--white:#ffffff;
    --gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;
    --gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;
    --gray-800:#1e293b;--gray-900:#0f172a;
    --font-ui:'Space Grotesk','Inter',system-ui,-apple-system,sans-serif;
    --font-display:'Outfit','Space Grotesk',sans-serif;
    --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;
    --shadow-xs:0 1px 2px rgba(0,0,0,.06);
    --shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);
    --shadow-md:0 4px 6px -1px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.06);
    --shadow-lg:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -2px rgba(0,0,0,.05);
    --shadow-xl:0 20px 25px -5px rgba(0,0,0,.10),0 10px 10px -5px rgba(0,0,0,.04);
    --shadow-2xl:0 25px 50px -12px rgba(0,0,0,.18);
    --transition:0.22s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-ui);font-size:15px;line-height:1.65;color:var(--gray-800);    background:var(--body-bg);
overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none;transition:color var(--transition)}
img{display:block;max-width:100%;height:auto}
ul{list-style:none}button{cursor:pointer;font-family:inherit}
.container{max-width:1280px;margin:0 auto;padding:0 24px}

/* =========================================
   TOPBAR
   ========================================= */
.topbar{background:var(--gray-900);padding:8px 0;font-size:12.5px;letter-spacing:.01em;border-bottom:1px solid rgba(255,255,255,.06)}
.topbar-content{display:flex;justify-content:space-between;align-items:center;gap:12px}
.topbar-info{display:flex;gap:20px;color:var(--gray-400)}
.topbar-info span{display:flex;align-items:center;gap:5px}
.topbar-info i{color:var(--cyan);font-size:13px}
.topbar-social{display:flex;gap:10px}
.topbar-social a{width:26px;height:26px;border-radius:var(--radius-full);background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;color:var(--gray-300);font-size:12px;transition:background var(--transition),color var(--transition),transform var(--transition)}
.topbar-social a:hover{background:var(--cyan);color:#fff;transform:translateY(-2px)}
.topbar-item{display:inline-flex;align-items:center;gap:5px;color:var(--gray-400);font-size:12.5px}
.topbar-item i{color:var(--cyan)}

/* =========================================
   HEADER
   ========================================= */
.header-main{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--gray-100);box-shadow:0 1px 0 var(--gray-100),var(--shadow-sm);transition:box-shadow var(--transition)}
.header-main.scrolled{box-shadow:var(--shadow-md)}
.header-top-row{display:flex;align-items:center;gap:14px;padding:8px 0;min-height:80px;border-bottom:1px solid var(--gray-100);flex-wrap:nowrap;transition:min-height .25s ease,padding .25s ease;overflow:visible}
.header-main.scrolled .header-top-row{min-height:60px;padding:5px 0}
.header-bottom-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:20px}

/* LOGO */
.logo-link{display:flex;align-items:center;gap:10px;flex-shrink:0;text-decoration:none}
.logo-img{height:56px;width:auto;max-width:56px;object-fit:contain;background:transparent;display:block;flex-shrink:0;transition:height .25s ease,transform .22s ease}
.header-main.scrolled .logo-img{height:42px;max-width:42px}
.logo-link:hover .logo-img{transform:scale(1.06)}
.logo-name{display:flex;flex-direction:column;line-height:1;user-select:none}
.logo-name-top{font-family:var(--font-display);font-size:22px;font-weight:900;color:var(--blue);letter-spacing:.04em;line-height:1}
.logo-name-bot{font-family:var(--font-display);font-size:11px;font-weight:700;color:var(--cyan-dark);letter-spacing:.2em;text-transform:uppercase;margin-top:2px}
.header-main.scrolled .logo-name-top{font-size:18px}
.header-main.scrolled .logo-name-bot{font-size:10px}

/* HEADER BUTTONS */
.text-btn{font-size:13px;font-weight:500;color:var(--gray-600);display:flex;align-items:center;gap:5px;transition:color var(--transition)}
.text-btn:hover{color:var(--blue-mid)}.text-btn i{font-size:14px}
.primary-btn{background:var(--blue);color:#fff;padding:9px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:600;border:none;display:flex;align-items:center;gap:6px;transition:background var(--transition),transform var(--transition);white-space:nowrap}
.primary-btn:hover{background:var(--blue-mid);transform:translateY(-1px);color:#fff}

/* SEARCH */
.search-box{position:relative;margin-left:auto;width:460px;flex-shrink:0}
.search-box input{width:100%;padding:10px 46px 10px 16px;border:1.5px solid var(--gray-200);border-radius:var(--radius-full);font-size:13.5px;font-family:inherit;background:var(--gray-50);color:var(--gray-800);transition:border-color var(--transition),background var(--transition);outline:none}
.search-box input:focus{border-color:var(--blue-light);background:#fff;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.search-box input::placeholder{color:var(--gray-400)}
.search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:var(--blue);border:none;width:34px;height:34px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;transition:background var(--transition)}
.search-btn:hover{background:var(--cyan-dark)}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:2000;display:none;overflow:hidden;max-height:380px;overflow-y:auto}
.search-results.open{display:block}
.search-result-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--gray-50);cursor:pointer;transition:background var(--transition);text-decoration:none;color:var(--gray-800)}
.search-result-item:hover{background:var(--gray-50)}
.search-result-item:last-child{border-bottom:none}
.search-result-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.search-result-info .name{font-size:13.5px;font-weight:600;color:var(--gray-900)}
.search-result-info .type{font-size:11.5px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em}
.search-empty{padding:20px;text-align:center;color:var(--gray-400);font-size:13px}

/* =========================================
   NAVBAR (avec FIX CHEVAUCHEMENT MOBILE)
   ========================================= */
.navbar{display:flex;align-items:center;overflow:visible}
.nav-menu{display:flex;align-items:center;gap:2px;margin:0;padding:0}
.nav-item{position:relative;z-index:10}
.nav-link{display:flex;align-items:center;gap:5px;padding:9px 13px;font-size:13.5px;font-weight:600;color:var(--gray-700);border-radius:var(--radius-md);white-space:nowrap;transition:background var(--transition),color var(--transition);border:none;background:none;letter-spacing:-.01em}
.nav-link i{font-size:14px}
.nav-link .bi-chevron-down{font-size:10px;opacity:.6;transition:transform var(--transition)}
.nav-link:hover,.nav-link.active{background:rgba(10,36,99,.07);color:var(--blue)}
.nav-item:hover .bi-chevron-down{transform:rotate(180deg)}
.nav-arrow{font-size:10px;opacity:.6;transition:transform var(--transition)}
.nav-item.open .nav-arrow{transform:rotate(180deg)}
.nav-item.open>.nav-link{color:var(--blue);background:rgba(10,36,99,.06)}
.header-content,.navbar{overflow:visible}

/* Dropdown */
.nav-item.dropdown .dropdown-menu,.nav-item.mega-dropdown .dropdown-menu{position:absolute;top:calc(100% + 10px);left:0;background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:230px;padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transition:all var(--transition);pointer-events:none;z-index:1010;display:block !important}
.nav-item.dropdown:hover>.dropdown-menu,.nav-item.mega-dropdown:hover>.dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto}
.dropdown-menu li a{display:flex;align-items:center;gap:10px;padding:9px 13px;font-size:13px;font-weight:500;color:var(--gray-700);border-radius:var(--radius-md);transition:background var(--transition),color var(--transition),padding-left var(--transition)}
.dropdown-menu li a:hover{background:var(--gray-50);color:var(--blue);padding-left:18px}
.dropdown-menu li a span{font-size:15px}
.dropdown-header{display:flex;align-items:center;gap:7px;padding:8px 14px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray-400)}
.dropdown-footer{padding:8px 14px;border-top:1px solid var(--gray-50);margin-top:4px}
.dropdown-footer a{font-size:12.5px !important}
.dropdown-divider{height:1px;background:var(--gray-100);margin:6px 14px;border:none;list-style:none}
.nav-item.mega-dropdown .dropdown-menu{min-width:580px;padding:20px;display:grid !important;grid-template-columns:1fr 1fr;gap:8px}
.dropdown-col h6,.dropdown-col-title{font-family:var(--font-display);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);padding:0 12px 10px;border-bottom:2px solid var(--cyan);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.dropdown-col ul{display:flex;flex-direction:column;gap:1px}
.mega-cta{border-left:1px solid var(--gray-100);padding-left:16px !important}
.svc-icon{font-size:14px}.cta-item{margin-left:6px}
.btn-cta{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-mid) 100%);color:#fff !important;padding:10px 22px;border-radius:var(--radius-md);font-size:13px;font-weight:700;border:none;display:inline-flex;align-items:center;gap:7px;transition:all var(--transition);box-shadow:0 4px 14px rgba(10,36,99,.25);white-space:nowrap}
.btn-cta:hover{background:linear-gradient(135deg,var(--blue-mid) 0%,var(--cyan-dark) 100%);color:#fff !important;transform:translateY(-2px);box-shadow:0 8px 20px rgba(10,36,99,.30)}

/* Hamburger (hidden desktop) + overlay + close btn — FIX COMPLET */
.mobile-toggle{display:none}
.nav-close-item{display:none}
.nav-close-btn{width:38px;height:38px;border-radius:50%;background:var(--gray-100);border:none;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--gray-700);cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-close-btn:active{background:var(--gray-300)}

/* =========================================
   DISCUSSION WIDGET
   ========================================= */
.discussion-widget{position:fixed;bottom:90px;right:24px;width:340px;background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px rgba(0,0,0,.18);border:1px solid var(--gray-100);z-index:9999;display:none;flex-direction:column;overflow:hidden;animation:slideUp .25s ease}
.discussion-widget.open{display:flex}
@keyframes slideUp{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.discussion-header{background:linear-gradient(135deg,var(--blue) 0%,var(--cyan-dark) 100%);color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}
.discussion-body{flex:1;padding:16px;max-height:320px;overflow-y:auto;background:var(--gray-50);display:flex;flex-direction:column;gap:12px}
.msg-bot,.msg-user{display:flex;gap:8px;align-items:flex-start}.msg-user{flex-direction:row-reverse}
.msg-avatar{width:30px;height:30px;border-radius:50%;background:var(--gray-200);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.msg-bubble{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);border-top-left-radius:4px;padding:10px 13px;font-size:13px;color:var(--gray-800);line-height:1.55;max-width:230px;box-shadow:var(--shadow-xs)}
.msg-bubble p{margin:0 0 4px}.msg-bubble p:last-child{margin:0}
.msg-user .msg-bubble{background:var(--blue);color:#fff;border-radius:var(--radius-lg);border-top-right-radius:4px;border:none}
.quick-replies{display:flex;flex-wrap:wrap;gap:6px;padding-left:38px}
.quick-replies button{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-full);padding:5px 12px;font-size:12px;font-weight:500;color:var(--gray-700);cursor:pointer;transition:all .18s;font-family:inherit}
.quick-replies button:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.typing-indicator .msg-bubble{display:flex;gap:4px;align-items:center;padding:12px 14px}
.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--gray-300);animation:typingBounce 1.2s infinite}
.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
.discussion-footer{padding:12px 14px;border-top:1px solid var(--gray-100);background:#fff}
.discussion-input-row{display:flex;gap:8px;align-items:center}
.discussion-input-row input{flex:1;border:1.5px solid var(--gray-200);border-radius:var(--radius-full);padding:9px 14px;font-size:13px;font-family:inherit;outline:none;transition:border-color var(--transition)}
.discussion-input-row input:focus{border-color:var(--blue-light);box-shadow:0 0 0 3px rgba(59,130,246,.1)}
.send-btn{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:background var(--transition);flex-shrink:0}
.send-btn:hover{background:var(--cyan-dark)}
.discussion-badge{width:17px;height:17px;background:var(--red);color:#fff;border-radius:50%;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-left:4px;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

/* WHATSAPP */
.whatsapp-float{position:fixed;bottom:28px;right:24px;width:52px;height:52px;background:#25d366;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 8px 24px rgba(37,211,102,.45);z-index:9998;transition:all var(--transition)}
.whatsapp-float:hover{background:#128C7E;transform:translateY(-3px) scale(1.05);color:#fff}
.whatsapp-float::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(37,211,102,.3);animation:waRipple 2s infinite}
@keyframes waRipple{from{transform:scale(.9);opacity:1}to{transform:scale(1.3);opacity:0}}

/* =========================================
   HERO SLIDER
   ========================================= */
.hero-slider{position:relative;width:100%}
.slider-wrapper{position:relative;width:100%;min-height:560px;max-height:640px;overflow:hidden;background:var(--gray-900)}
.slider-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s ease;display:flex;align-items:center;justify-content:center}
.slider-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,36,99,.88) 0%,rgba(10,36,99,.6) 50%,rgba(10,36,99,.35) 100%)}
.slider-slide.active{opacity:1;visibility:visible}
.slide-content{position:relative;z-index:2;width:100%;max-width:860px;margin:0 auto;padding:40px 48px;display:flex;align-items:center;justify-content:center}
.slide-image{display:none !important}
.slide-text-and-nav-wrapper{flex:1;color:#fff;text-align:center}
.slide-text{max-width:680px;margin:0 auto}
.slide-label{display:inline-flex;align-items:center;gap:6px;background:rgba(6,182,212,.18);border:1px solid rgba(6,182,212,.35);color:var(--cyan);padding:5px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:18px;backdrop-filter:blur(4px)}
.slide-text h2{font-family:var(--font-display);font-size:2.9rem;font-weight:800;line-height:1.08;margin-bottom:18px;text-shadow:0 2px 20px rgba(0,0,0,.3);letter-spacing:-.05em}
.slide-text p{font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.82);margin-bottom:28px}
.slide-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.btn-slide-primary{background:var(--cyan);color:#fff;padding:13px 28px;border-radius:var(--radius-md);font-size:14px;font-weight:700;border:none;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(6,182,212,.40);transition:all var(--transition)}
.btn-slide-primary:hover{background:var(--cyan-dark);transform:translateY(-2px);color:#fff}
.btn-slide-outline{background:rgba(255,255,255,.10);backdrop-filter:blur(8px);color:#fff;padding:13px 28px;border-radius:var(--radius-md);font-size:14px;font-weight:600;border:1.5px solid rgba(255,255,255,.3);display:inline-flex;align-items:center;gap:8px;transition:all var(--transition)}
.btn-slide-outline:hover{background:rgba(255,255,255,.20);border-color:rgba(255,255,255,.6);color:#fff}
.slider-dots{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}
.slider-dot{width:8px;height:8px;border-radius:var(--radius-full);background:rgba(255,255,255,.35);border:none;cursor:pointer;transition:all var(--transition);padding:0}
.slider-dot.active{background:var(--cyan);width:24px}






/* =========================================
   FEATURES / SECTIONS / STATS
   ========================================= */
.features-section{background:#fff;border-bottom:1px solid var(--gray-100)}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.feature-block{padding:32px 28px;border-right:1px solid var(--gray-100);display:flex;align-items:flex-start;gap:16px;transition:background var(--transition)}
.feature-block:last-child{border-right:none}
.feature-block:hover{background:var(--gray-50)}
.feature-icon{width:48px;height:48px;flex-shrink:0;background:linear-gradient(135deg,var(--blue) 0%,var(--blue-mid) 100%);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;box-shadow:0 6px 16px rgba(10,36,99,.20)}
.feature-block h3{font-size:14.5px;font-weight:700;color:var(--gray-900);margin-bottom:5px;letter-spacing:-.01em}
.feature-block p{font-size:13px;color:var(--gray-500);line-height:1.6;margin:0}
.section{padding:72px 0}.section-alt{background:#fff}
.section-title{text-align:center;margin-bottom:48px}
.section-label{display:inline-flex;align-items:center;gap:6px;background:rgba(59,130,246,.08);color:var(--blue-mid);padding:5px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:12px;border:1px solid rgba(59,130,246,.15)}
.section-title h2{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--gray-900);margin-bottom:12px;letter-spacing:-.02em;line-height:1.2}
.section-title p{font-size:15px;color:var(--gray-500);max-width:540px;margin:0 auto;line-height:1.7}
.stat-item-new{text-align:center;padding:20px 10px;position:relative}
.stat-val{font-family:var(--font-display);font-size:2.2rem;font-weight:800;color:#fff;line-height:1;margin-bottom:5px;letter-spacing:-.02em}
.stat-lbl{font-size:13px;font-weight:600;color:rgba(255,255,255,.85);margin-bottom:3px}
.stat-sub{font-size:11px;color:rgba(255,255,255,.4);font-weight:500}
.section-stats{background:linear-gradient(135deg,var(--gray-900) 0%,var(--blue) 100%);padding:52px 0}
@media(min-width:768px){.stat-item-new::after{content:'';position:absolute;right:0;top:25%;height:50%;width:1px;background:rgba(255,255,255,.08)}.col-md-3:last-child .stat-item-new::after{display:none}}

/* PRODUIT CARDS */
.produit-card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--gray-100);overflow:hidden;display:flex;flex-direction:column;height:100%;transition:all var(--transition);position:relative}
.produit-card:hover{box-shadow:var(--shadow-xl);border-color:var(--gray-200);transform:translateY(-3px)}
.produit-img-wrap{position:relative;overflow:hidden;background:var(--gray-50);height:160px;display:flex;align-items:center;justify-content:center}
.produit-img-wrap img{width:100%;height:100%;object-fit:contain;padding:10px;transition:transform .45s ease}
.produit-card:hover .produit-img-wrap img{transform:scale(1.05)}
.produit-badge{position:absolute;top:10px;left:10px;background:var(--amber);color:#fff;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full);z-index:2}
.produit-card-body{padding:16px 18px;flex:1;display:flex;flex-direction:column}
.produit-cat{font-size:11px;font-weight:600;color:var(--blue-mid);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.produit-card-body h6{font-size:14px;font-weight:700;color:var(--gray-900);margin-bottom:4px;line-height:1.4}
.produit-card-body .desc{font-size:12.5px;color:var(--gray-500);line-height:1.5;margin-bottom:12px;flex:1}
.prix{font-size:1.25rem;font-weight:800;color:var(--blue);letter-spacing:-.02em}
.prix span{font-size:12px;font-weight:500;color:var(--gray-400);margin-left:3px}
.produit-card-footer{padding:12px 18px;border-top:1px solid var(--gray-100);display:flex;gap:8px;background:var(--gray-50)}

/* BUTTONS */
.btn-primary-custom,.btn-secondary-custom,.btn-success-custom,.btn-outline-custom,.btn-ghost-custom{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:var(--radius-md);font-size:13.5px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition);font-family:inherit;letter-spacing:.01em;white-space:nowrap}
.btn-primary-custom{background:var(--blue);color:#fff;box-shadow:0 4px 14px rgba(10,36,99,.22)}
.btn-primary-custom:hover{background:var(--blue-mid);transform:translateY(-2px);color:#fff}
.btn-secondary-custom{background:var(--cyan);color:#fff;box-shadow:0 4px 14px rgba(6,182,212,.25)}
.btn-secondary-custom:hover{background:var(--cyan-dark);transform:translateY(-2px);color:#fff}
.btn-success-custom{background:#25d366;color:#fff;box-shadow:0 4px 14px rgba(37,211,102,.25)}
.btn-success-custom:hover{background:#128C7E;transform:translateY(-2px);color:#fff}
.btn-outline-custom{background:transparent;color:var(--blue);border:2px solid var(--blue)}
.btn-outline-custom:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.btn-ghost-custom{background:transparent;color:var(--gray-600);border:1.5px solid var(--gray-200)}
.btn-ghost-custom:hover{background:var(--gray-50);color:var(--gray-800);border-color:var(--gray-300)}
.btn-sm{padding:7px 14px;font-size:12.5px}.btn-lg{padding:14px 28px;font-size:15px}.btn-block{width:100%}
.btn-cta-white{background:#fff;color:var(--blue) !important;padding:14px 28px;border-radius:var(--radius-md);font-size:14px;font-weight:700;border:none;display:inline-flex;align-items:center;gap:8px;transition:all var(--transition);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.btn-cta-white:hover{background:var(--gray-100);transform:translateY(-2px)}
.btn-cta-outline-white{background:rgba(255,255,255,.10);backdrop-filter:blur(8px);color:#fff !important;padding:14px 28px;border-radius:var(--radius-md);font-size:14px;font-weight:600;border:1.5px solid rgba(255,255,255,.3);display:inline-flex;align-items:center;gap:8px;transition:all var(--transition)}
.btn-cta-outline-white:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.6)}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ATOUT/TEMOIGNAGE/TARIF/PORTFOLIO/TECH CARDS */
.atout-card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:28px 22px;height:100%;transition:all var(--transition);text-align:center;position:relative;overflow:hidden}
.atout-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--cyan));transform:scaleX(0);transition:transform var(--transition)}
.atout-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-5px);border-color:rgba(59,130,246,.2)}
.atout-card:hover::after{transform:scaleX(1)}
.atout-icon{font-size:2.4rem;margin-bottom:16px;display:inline-flex;width:64px;height:64px;background:linear-gradient(135deg,rgba(10,36,99,.06) 0%,rgba(6,182,212,.06) 100%);border-radius:var(--radius-lg);align-items:center;justify-content:center;border:1px solid rgba(59,130,246,.12)}
.atout-card h5{font-size:15px;font-weight:700;color:var(--gray-900);margin-bottom:8px}
.atout-card p{font-size:13px;color:var(--gray-500);line-height:1.65;margin:0}
.temoignage-card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);padding:24px;height:100%;transition:all var(--transition);position:relative}
.temoignage-card::before{content:'"';position:absolute;top:12px;right:20px;font-size:4rem;font-family:Georgia,serif;color:var(--gray-100);line-height:1}
.temoignage-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px)}
.temoignage-stars{color:var(--amber);font-size:14px;letter-spacing:2px;margin-bottom:12px}
.temoignage-text{font-size:13.5px;color:var(--gray-700);font-style:italic;line-height:1.7;margin-bottom:16px}
.temoignage-author{display:flex;align-items:center;gap:12px}
.temoignage-avatar{width:42px;height:42px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--blue) 0%,var(--cyan-dark) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.temoignage-name{font-size:13.5px;font-weight:700;color:var(--gray-900)}
.temoignage-company{font-size:12px;color:var(--gray-500)}
.tarif-card{background:#fff;border:1.5px solid var(--gray-100);border-radius:var(--radius-xl);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:all var(--transition);position:relative}
.tarif-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}
.tarif-card.featured{border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(30,64,175,.1),var(--shadow-xl)}
.portfolio-card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--gray-100);overflow:hidden;height:100%;transition:all var(--transition)}
.portfolio-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px)}
.tech-card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-md);padding:20px 14px;text-align:center;transition:all var(--transition);height:100%}
.tech-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.partenaires-section{padding:52px 0;border-top:1px solid var(--gray-100)}
.partenaires-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:40px 50px}
.partenaires-grid img{max-height:52px;width:auto;filter:grayscale(1) opacity(.5);transition:all .3s ease}
.partenaires-grid img:hover{filter:grayscale(0) opacity(1);transform:scale(1.08)}

/* CTA / HERO SERVICES / FAQ / CONTACT / FOOTER */
.section-cta{background:linear-gradient(135deg,var(--gray-900) 0%,var(--blue) 50%,var(--blue-mid) 100%);color:#fff;padding:80px 0;text-align:center;position:relative;overflow:hidden}
.section-cta .inner{position:relative;z-index:1}
.section-cta h2{font-family:var(--font-display);font-size:2.2rem;font-weight:800;margin-bottom:14px;letter-spacing:-.02em}
.section-cta p{font-size:15px;color:rgba(255,255,255,.65);margin-bottom:32px;line-height:1.7}
.section-hero{min-height:460px;display:flex;align-items:center;background:linear-gradient(120deg,var(--blue) 0%,var(--blue-mid) 60%,var(--cyan-dark) 100%);color:#fff;padding:80px 0;position:relative;overflow:hidden}
.section-hero h1{font-family:var(--font-display);font-size:2.8rem;font-weight:800;line-height:1.15;margin-bottom:16px;letter-spacing:-.02em}
.section-hero p{font-size:1.05rem;color:rgba(255,255,255,.78);line-height:1.7;margin-bottom:28px;max-width:520px}
.section-faq{padding:72px 0}
.faq-item{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden;transition:box-shadow var(--transition)}
.faq-item:hover{box-shadow:var(--shadow-md)}
.faq-question{padding:16px 20px;font-size:14px;font-weight:600;color:var(--gray-800);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;user-select:none}
.faq-question:hover{color:var(--blue)}
.faq-answer{padding:0 20px 16px;font-size:13.5px;color:var(--gray-600);line-height:1.7}
.contact-info-item{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--gray-100)}
.contact-info-item:last-child{border-bottom:none}
.contact-info-icon{width:42px;height:42px;border-radius:var(--radius-md);background:rgba(10,36,99,.07);border:1.5px solid rgba(10,36,99,.12);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.contact-info-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray-400);display:block;margin-bottom:3px}
.contact-info-value{font-size:13.5px;color:var(--gray-700);line-height:1.55}
.actu-card{background:#fff;border:1px solid var(--gray-100);border-radius:var(--radius-lg);overflow:hidden;height:100%;display:flex;flex-direction:column;transition:all var(--transition)}
.actu-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px)}

/* FOOTER */
.footer-main { 
    background-color: #fff; 
}.footer-logo{margin-bottom:16px}.footer-logo img{height:50px;filter:brightness(0) invert(1)}
.footer-desc{font-size:13px;color:rgba(255,255,255,.45);line-height:1.7;margin-bottom:20px;max-width:280px}
.footer-social{display:flex;gap:8px}
.footer-social a{width:34px;height:34px;border-radius:var(--radius-full);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:13px;transition:all var(--transition)}
.footer-social a:hover{background:var(--cyan);border-color:var(--cyan);color:#fff;transform:translateY(-2px)}
.footer-heading{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.35);margin-bottom:18px}
.footer-links{display:flex;flex-direction:column;gap:9px}
.footer-links a{font-size:13.5px;color:rgba(255,255,255,.5);display:flex;align-items:center;gap:6px;transition:color var(--transition),gap var(--transition)}
.footer-links a:hover{color:rgba(255,255,255,.9);gap:10px}
.footer-links a::before{content:'→';font-size:11px;color:var(--cyan)}
.footer-contact-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;font-size:13px;color:rgba(255,255,255,.5)}
.footer-contact-item i{color:var(--cyan);font-size:15px;margin-top:2px;flex-shrink:0}
.footer-contact-item a{color:rgba(255,255,255,.5)}
.footer-contact-item a:hover{color:var(--cyan)}
.footer-bottom{background:rgba(0,0,0,.2);margin-top:48px;padding:16px 0;border-top:1px solid rgba(255,255,255,.06)}
.footer-bottom .inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-copy{font-size:12.5px;color:rgba(255,255,255,.3)}.footer-copy strong{color:rgba(255,255,255,.5)}
.footer-made{font-size:12px;color:rgba(255,255,255,.25)}

/* SCROLL TOP */
.scroll-top{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius-full);font-size:16px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(16px);transition:all var(--transition);z-index:900;display:flex;align-items:center;justify-content:center;cursor:pointer}
.scroll-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.scroll-top:hover{background:var(--cyan-dark);transform:translateY(-3px)}

/* UTILS */
.text-blue{color:var(--blue) !important}.text-cyan{color:var(--cyan) !important}.text-green{color:var(--green) !important}
.badge-custom{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--radius-full);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.badge-blue{background:rgba(10,36,99,.08);color:var(--blue);border:1px solid rgba(10,36,99,.14)}
.badge-cyan{background:rgba(6,182,212,.08);color:var(--cyan-dark);border:1px solid rgba(6,182,212,.18)}
.badge-green{background:rgba(16,185,129,.08);color:var(--green);border:1px solid rgba(16,185,129,.18)}
.divider{border:none;border-top:1px solid var(--gray-100);margin:40px 0}
.alert-custom{padding:14px 18px;border-radius:var(--radius-md);font-size:13.5px;display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;border:1px solid transparent}
.alert-success-custom{background:rgba(16,185,129,.08);color:#065f46;border-color:rgba(16,185,129,.2)}
.alert-info-custom{background:rgba(59,130,246,.08);color:#1e40af;border-color:rgba(59,130,246,.18)}

/* =========================================
   PROCESSUS
   ========================================= */
.proc-card { position: relative; border-radius: var(--radius-xl); padding: 26px 22px 28px; overflow: hidden; transition: all .28s; }
.proc-card:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(0,0,0,.22); }
.proc-card-dark { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); }
.proc-card-dark:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.22); }
.proc-card-light { background: #fff; border: 1px solid rgba(255,255,255,.9); box-shadow: 0 8px 28px rgba(0,0,0,.1); }
.proc-card-light:hover { box-shadow: 0 20px 48px rgba(0,0,0,.18); }
.proc-icon { width: 58px; height: 58px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 1.45rem; flex-shrink: 0; transition: all .3s; }
.proc-card:hover .proc-icon { transform: scale(1.07) rotate(-5deg); }
.proc-icon-dark { background: rgba(6,182,212,.18); border: 1.5px solid rgba(6,182,212,.3); color: var(--cyan); }
.proc-icon-light { background: rgba(10,36,99,.08); border: 1.5px solid rgba(10,36,99,.15); color: var(--blue); }
.proc-num { font-family: var(--font-display); font-size: 2.6rem; font-weight: 900; line-height: 1; letter-spacing: -.04em; user-select: none; }
.proc-num-dark { color: rgba(255,255,255,.07); }
.proc-num-light { color: rgba(10,36,99,.07); }
.proc-titre { font-family: var(--font-display); font-size: 15.5px; font-weight: 800; margin-bottom: 9px; letter-spacing: -.01em; line-height: 1.3; }
.proc-titre-dark { color: #fff; }
.proc-titre-light { color: var(--gray-900); }
.proc-desc { font-size: 13px; line-height: 1.7; margin: 0; }
.proc-desc-dark { color: rgba(255,255,255,.52); }
.proc-desc-light { color: var(--gray-500); }
.proc-bar { position: absolute; bottom: 0; left: 0; height: 3px; width: 0; transition: width .45s ease; }
.proc-card:hover .proc-bar { width: 100%; }
.proc-bar-dark { background: var(--cyan); }
.proc-bar-light { background: var(--blue); }
.proc-arrow { position: absolute; top: 36px; right: -14px; width: 28px; height: 28px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 12px; z-index: 2; }
.proc-arrow-light { background: var(--cyan); color: #fff; box-shadow: 0 4px 12px rgba(6,182,212,.35); }
.proc-arrow-dark { background: #fff; color: var(--blue); box-shadow: 0 4px 12px rgba(10,36,99,.2); }
.proc-domain-item { padding: 22px 14px; text-align: center; border-right: 1px solid rgba(255,255,255,.07); transition: background .22s; cursor: default; }
.proc-domain-item:last-child { border-right: none; }
.proc-domain-item:hover { background: rgba(255,255,255,.07); }
.proc-domain-icon { width: 46px; height: 46px; border-radius: var(--radius-md); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); color: var(--cyan); font-size: 1.2rem; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; transition: all .25s; }
.proc-domain-item:hover .proc-domain-icon { background: rgba(6,182,212,.2); border-color: rgba(6,182,212,.3); transform: scale(1.08); }
.proc-domain-title { font-size: 13.5px; font-weight: 700; color: #fff; margin-bottom: 3px; letter-spacing: -.01em; }
.proc-domain-sub { font-size: 11.5px; color: rgba(255,255,255,.38); }


/* =========================================
   SERVICES — GRILLE COMPLÈTE (remplace SERVICES SLIDER)
   Coller à la place de l'ancien bloc .svc-section...#svcCurrent
   ========================================= */

/* ── Section ── */
.sg-section {
    padding: 90px 0 80px;
    background: var(--body-alt);
    overflow: hidden;
    position: relative;
}
.sg-section::before {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 40%;
    height: 100%;
    background: radial-gradient(circle at 80% 30%, rgba(6,182,212,.04) 0%, transparent 50%);
    pointer-events: none;
}

/* ── Header ── */
.sg-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 52px;
    flex-wrap: wrap;
    gap: 24px;
}
.sg-header-left {
    max-width: 560px;
}

/* Tag */
.sg-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-display);
    font-size: 11.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--blue);
    margin-bottom: 18px;
}
.sg-tag-dot {
    width: 8px;
    height: 8px;
    background: var(--cyan);
    border-radius: 50%;
    flex-shrink: 0;
}

/* Title */
.sg-title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 900;
    color: var(--gray-900);
    letter-spacing: -.04em;
    line-height: 1.08;
    margin: 0 0 14px;
}
.sg-title-accent {
    background: linear-gradient(135deg, var(--blue), var(--cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Subtitle */
.sg-subtitle {
    font-size: 15px;
    color: var(--gray-500);
    line-height: 1.75;
    margin: 0;
}

/* ── Filters ── */
.sg-filters {
    display: flex;
    gap: 4px;
    padding: 5px;
    background: #fff;
    border-radius: var(--radius-full);
    border: 1px solid var(--gray-100);
    box-shadow: var(--shadow-xs);
    flex-wrap: wrap;
}
.sg-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: var(--radius-full);
    font-size: 12.5px;
    font-weight: 600;
    font-family: var(--font-ui);
    color: var(--gray-500);
    background: transparent;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    transition: all .22s cubic-bezier(.4,0,.2,1);
}
.sg-filter i {
    font-size: 13px;
}
.sg-filter:hover {
    color: var(--blue);
    background: var(--gray-50);
}
.sg-filter.active {
    background: var(--blue);
    color: #fff;
    box-shadow: 0 4px 14px rgba(10,36,99,.25);
}

/* ── Grid ── */
.sg-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* ═════════════════════════════════
   CARD
   ═════════════════════════════════ */
.sg-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1.5px solid var(--gray-100);
    border-radius: var(--radius-xl);
    padding: 28px 22px 22px;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition:
        transform .35s cubic-bezier(.4,0,.2,1),
        box-shadow .35s cubic-bezier(.4,0,.2,1),
        border-color .35s cubic-bezier(.4,0,.2,1);
}

/* ── Hover ── */
.sg-card:hover {
    color: inherit;
    border-color: var(--sg-accent, var(--cyan));
    box-shadow:
        0 20px 50px rgba(0,0,0,.08),
        0 0 0 1px var(--sg-accent, var(--cyan)),
        0 0 40px color-mix(in srgb, var(--sg-accent, var(--cyan)) 8%, transparent);
    transform: translateY(-8px);
}

/* ── Number watermark ── */
.sg-card-num {
    position: absolute;
    top: 10px;
    right: 16px;
    font-family: var(--font-display);
    font-size: 3.2rem;
    font-weight: 900;
    color: var(--gray-50);
    line-height: 1;
    pointer-events: none;
    z-index: 0;
    transition: color .35s;
    letter-spacing: -.06em;
    user-select: none;
}
.sg-card:hover .sg-card-num {
    color: var(--sg-light, rgba(6,182,212,.06));
}

/* ── Icon ── */
.sg-card-icon {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-lg);
    background: var(--sg-light, rgba(6,182,212,.07));
    border: 1.5px solid var(--sg-border, rgba(6,182,212,.14));
    color: var(--sg-accent, var(--cyan));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.45rem;
    margin-bottom: 16px;
    position: relative;
    z-index: 1;
    transition: all .35s cubic-bezier(.4,0,.2,1);
}
.sg-card:hover .sg-card-icon {
    background: var(--sg-accent, var(--cyan));
    color: #fff;
    border-color: var(--sg-accent, var(--cyan));
    transform: scale(1.1) rotate(-6deg);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--sg-accent, var(--cyan)) 30%, transparent);
}

/* ── Badge ── */
.sg-card-badge {
    display: inline-block;
    width: fit-content;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 3px 11px;
    border-radius: var(--radius-full);
    background: var(--sg-light, rgba(6,182,212,.07));
    color: var(--sg-accent, var(--cyan));
    border: 1px solid var(--sg-border, rgba(6,182,212,.14));
    margin-bottom: 14px;
    position: relative;
    z-index: 1;
}

/* ── Title ── */
.sg-card-title {
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 800;
    color: var(--gray-900);
    line-height: 1.3;
    margin: 0 0 8px;
    letter-spacing: -.015em;
    position: relative;
    z-index: 1;
}

/* ── Description ── */
.sg-card-desc {
    font-size: 13px;
    color: var(--gray-500);
    line-height: 1.7;
    flex: 1;
    margin: 0 0 16px;
    position: relative;
    z-index: 1;
}

/* ── Footer ── */
.sg-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 1px solid var(--gray-100);
    position: relative;
    z-index: 1;
}
.sg-card-link {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--sg-accent, var(--cyan));
    transition: letter-spacing .3s;
}
.sg-card:hover .sg-card-link {
    letter-spacing: .03em;
}
.sg-card-arrow {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--sg-light, rgba(6,182,212,.07));
    border: 1.5px solid var(--sg-border, rgba(6,182,212,.14));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--sg-accent, var(--cyan));
    transition: all .3s cubic-bezier(.4,0,.2,1);
}
.sg-card:hover .sg-card-arrow {
    background: var(--sg-accent, var(--cyan));
    border-color: var(--sg-accent, var(--cyan));
    color: #fff;
    transform: translateX(4px);
}

/* ── Bottom bar ── */
.sg-card-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(to right, var(--sg-bg, var(--blue)), var(--sg-accent, var(--cyan)));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s cubic-bezier(.4,0,.2,1);
}
.sg-card:hover .sg-card-bar {
    transform: scaleX(1);
}

/* ═════════════════════════════════
   ANIMATIONS
   ═════════════════════════════════ */

/* Initial state — invisible */
.sg-card {
    opacity: 0;
    transform: translateY(32px) scale(.97);
}

/* Revealed state */
.sg-card-visible {
    animation: sgCardReveal .6s cubic-bezier(.23,1,.32,1) forwards;
    animation-delay: var(--sg-delay, 0ms);
}

@keyframes sgCardReveal {
    0% {
        opacity: 0;
        transform: translateY(32px) scale(.97);
    }
    60% {
        opacity: 1;
        transform: translateY(-4px) scale(1.005);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Hiding animation for filter */
.sg-card-hiding {
    animation: sgCardHide .25s ease forwards;
}
@keyframes sgCardHide {
    to {
        opacity: 0;
        transform: translateY(12px) scale(.96);
    }
}

/* ── Section footer ── */
.sg-section-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--gray-200);
    flex-wrap: wrap;
    gap: 16px;
}
.sg-count {
    font-size: 14px;
    color: var(--gray-500);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}
.sg-count-num {
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 900;
    color: var(--blue);
    letter-spacing: -.03em;
}

/* ═════════════════════════════════
   RESPONSIVE
   ═════════════════════════════════ */

/* ── 1200px ── */
@media (max-width: 1200px) {
    .sg-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
    .sg-title {
        font-size: 1.65rem;
    }
}

/* ── 1024px — Tablette ── */
@media (max-width: 1024px) {
    .sg-section {
        padding: 64px 0 56px;
    }
    .sg-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        margin-bottom: 36px;
    }
    .sg-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .sg-filters {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }
    .sg-filters::-webkit-scrollbar {
        display: none;
    }
    .sg-card-num {
        font-size: 2.4rem;
    }
    .sg-card-icon {
        width: 50px;
        height: 50px;
        font-size: 1.3rem;
    }
    .sg-card {
        padding: 24px 18px 18px;
    }
    .sg-card-title {
        font-size: 14.5px;
    }
}

/* ── 768px — Mobile ── */
@media (max-width: 768px) {
    .sg-section {
        padding: 52px 0 44px;
    }
    .sg-title {
        font-size: 1.45rem;
        line-height: 1.15;
    }
    .sg-subtitle {
        font-size: 13.5px;
    }
    .sg-grid {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    .sg-card {
        padding: 20px 16px 16px;
    }
    .sg-card-num {
        font-size: 2rem;
        top: 8px;
        right: 12px;
    }
    .sg-card-icon {
        width: 44px;
        height: 44px;
        font-size: 1.15rem;
        margin-bottom: 12px;
    }
    .sg-card-badge {
        font-size: 9px;
        padding: 2px 8px;
        margin-bottom: 10px;
    }
    .sg-card-title {
        font-size: 13.5px;
        margin-bottom: 5px;
    }
    .sg-card-desc {
        font-size: 12px;
        line-height: 1.6;
        margin-bottom: 12px;
        /* Limit to 3 lines on mobile */
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .sg-card-footer {
        padding-top: 10px;
    }
    .sg-card-link {
        font-size: 11.5px;
    }
    .sg-card-arrow {
        width: 24px;
        height: 24px;
        font-size: 11px;
    }
    .sg-section-footer {
        margin-top: 24px;
        padding-top: 20px;
    }
    .sg-count {
        font-size: 13px;
    }
    .sg-count-num {
        font-size: 1.15rem;
    }
    .sg-filter {
        padding: 7px 14px;
        font-size: 11.5px;
    }
}

/* ── 580px ── */
@media (max-width: 580px) {
    .sg-title {
        font-size: 1.3rem;
    }
    .sg-subtitle {
        font-size: 12.5px;
    }
}

/* ── 480px — Petit mobile ── */
@media (max-width: 480px) {
    .sg-section {
        padding: 40px 0 36px;
    }
    .sg-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .sg-card {
        flex-direction: row;
        flex-wrap: wrap;
        padding: 18px 16px 14px;
        gap: 0;
    }
    .sg-card-num {
        display: none;
    }
    .sg-card-icon {
        width: 42px;
        height: 42px;
        font-size: 1.1rem;
        margin-bottom: 0;
        margin-right: 14px;
        flex-shrink: 0;
    }
    .sg-card-badge {
        align-self: center;
        margin-bottom: 0;
    }
    .sg-card-title {
        width: 100%;
        margin-top: 12px;
    }
    .sg-card-desc {
        width: 100%;
        -webkit-line-clamp: 2;
    }
    .sg-card-footer {
        width: 100%;
    }
    .sg-card-bar {
        height: 2px;
    }
    .sg-title {
        font-size: 1.2rem;
    }
    .sg-header {
        margin-bottom: 24px;
    }
    .sg-filter {
        padding: 6px 12px;
        font-size: 11px;
    }
    .sg-section-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    .sg-card {
        opacity: 1;
        transform: none;
    }
    .sg-card-visible {
        animation: none;
    }
    .sg-card-hiding {
        animation: none;
    }
}
/* SOLAIRE */
.section-solaire{padding:80px 0;background:var(--gray-50)}
.solaire-card{max-width:1180px;margin:0 auto;border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-2xl);display:grid;grid-template-columns:1fr 1fr;min-height:540px;border:1px solid var(--gray-100)}
.solaire-texte{background:#fff;padding:60px 52px;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateX(-30px);transition:opacity .7s ease,transform .7s ease}
.solaire-texte.visible{opacity:1;transform:translateX(0)}
.solaire-titre{font-family:var(--font-display);font-size:1.85rem;font-weight:800;color:var(--gray-900);margin-bottom:14px;line-height:1.22;letter-spacing:-.02em}
.solaire-titre .highlight{color:var(--blue);position:relative;display:inline-block}
.solaire-desc{font-size:14.5px;color:var(--gray-500);margin-bottom:24px;line-height:1.8}
.solaire-list{list-style:none;margin-bottom:28px;display:flex;flex-direction:column;gap:0;padding:0}
.solaire-list li{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--gray-700);padding:11px 0;border-bottom:1px solid var(--gray-100)}
.solaire-image{position:relative;overflow:hidden;min-height:480px;opacity:0;transform:translateX(30px);transition:opacity .7s ease .2s,transform .7s ease .2s}
.solaire-image.visible{opacity:1;transform:translateX(0)}
.solaire-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 8s ease}
.solaire-image:hover .solaire-img{transform:scale(1.05)}

/* =========================================
   SECTIONS REDESIGNÉES
   ========================================= */
.sec-header { text-align:center; margin-bottom:56px; }
.sec-header-tag { display:inline-flex; align-items:center; gap:7px; background:linear-gradient(135deg,rgba(10,36,99,.08),rgba(6,182,212,.06)); color:var(--blue); border:1px solid rgba(10,36,99,.16); padding:6px 18px; border-radius:var(--radius-full); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.sec-header-tag i { color:var(--cyan); font-size:12px; }
.sec-header-title { font-family:var(--font-display); font-size:clamp(1.8rem,3.5vw,2.4rem); font-weight:900; color:var(--gray-900); margin:0 0 14px; letter-spacing:-.035em; line-height:1.12; }
.sec-header-title .accent { background:linear-gradient(135deg,var(--blue),var(--cyan)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.sec-header-sub { font-size:15.5px; color:var(--gray-500); max-width:520px; margin:0 auto; line-height:1.8; }

/* Hero pages services */
.sec-hero { position:relative; overflow:hidden; padding:80px 0 60px; background:var(--blue); }
.sec-hero-bg { position:absolute; inset:0; background:linear-gradient(135deg,#0a2463 0%,#1a3a7a 45%,#0891b2 100%); }
.sec-hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:48px 48px; }
.sec-hero-photo { position:absolute; inset:0; background-size:cover; background-position:center; z-index:1; transition:transform 8s ease; }
.sec-hero:hover .sec-hero-photo { transform:scale(1.03); }
.sec-hero-img-overlay { position:absolute; inset:0; background:linear-gradient(100deg,rgba(10,36,99,.88) 0%,rgba(10,36,99,.65) 55%,rgba(10,36,99,.4) 100%); z-index:2; }
.sec-hero-orb { position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:1; }
.sh-o1 { width:450px; height:450px; background:rgba(6,182,212,.14); top:-100px; right:-80px; animation:shOrb 9s ease-in-out infinite; }
.sh-o2 { width:250px; height:250px; background:rgba(124,58,237,.12); bottom:-60px; left:-50px; animation:shOrb 11s ease-in-out infinite reverse; }
@keyframes shOrb { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(18px,-22px) scale(1.05)} }
.sec-hero-inner { position:relative; z-index:3; max-width:660px; }
.sec-hero-badge { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.9); padding:6px 16px; border-radius:var(--radius-full); font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; }
.sec-hero-title { font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.8rem); font-weight:900; color:#fff; margin:0 0 16px; line-height:1.1; letter-spacing:-.03em; }
.sec-hero-desc { font-size:15px; color:rgba(255,255,255,.65); margin:0 0 22px; line-height:1.75; }
.sec-hero-pills { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.sec-hero-pill { display:inline-flex; align-items:center; gap:5px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.85); padding:5px 12px; border-radius:var(--radius-full); font-size:12px; font-weight:600; }
.sec-hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
@keyframes shFadeDown { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:translateY(0)} }

/* Atouts */
.sec-atouts { background:#080f1e; position:relative; overflow:hidden; }
.sec-atouts::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 45% at 85% 15%,rgba(6,182,212,.09) 0%,transparent 70%),radial-gradient(ellipse 45% 55% at 5% 85%,rgba(10,36,99,.35) 0%,transparent 70%); pointer-events:none; }
.sec-atouts::after { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px); background-size:58px 58px; pointer-events:none; }
.sec-atouts-stats-band { display:grid !important; grid-template-columns:repeat(4,1fr) !important; border-bottom:1px solid rgba(255,255,255,.07); position:relative; z-index:1; width:100%; }
.sec-atouts-stat { padding:44px 28px; border-right:1px solid rgba(255,255,255,.06); position:relative; overflow:hidden; transition:background .3s; }
.sec-atouts-stat:last-child { border-right:none; }
.sec-atouts-stat:hover { background:rgba(255,255,255,.03); }
.sec-atouts-stat::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; transform:scaleX(0); transition:transform .35s ease; }
.sec-atouts-stat:hover::after { transform:scaleX(1); }
.sec-atouts-stat:nth-child(1)::after { background:var(--cyan); }
.sec-atouts-stat:nth-child(2)::after { background:#22d3a5; }
.sec-atouts-stat:nth-child(3)::after { background:#f59e0b; }
.sec-atouts-stat:nth-child(4)::after { background:#a78bfa; }
.sec-atouts-stat-num { font-family:var(--font-display); font-size:3.2rem; font-weight:900; line-height:1; letter-spacing:-.05em; margin-bottom:8px; display:block; }
.sec-atouts-stat:nth-child(1) .sec-atouts-stat-num { color:var(--cyan); }
.sec-atouts-stat:nth-child(2) .sec-atouts-stat-num { color:#22d3a5; }
.sec-atouts-stat:nth-child(3) .sec-atouts-stat-num { color:#f59e0b; }
.sec-atouts-stat:nth-child(4) .sec-atouts-stat-num { color:#a78bfa; }
.sec-atouts-stat-label { font-size:13px; font-weight:600; color:rgba(255,255,255,.4); line-height:1.5; }
.sec-atouts-body { padding:80px 0; position:relative; z-index:1; }
.sec-atouts-grid { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:16px; margin-bottom:40px; }
.sec-atout-card { position:relative; overflow:hidden; border-radius:var(--radius-xl); padding:32px 26px 28px; border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.04); transition:all .35s cubic-bezier(.4,0,.2,1); cursor:default; display:flex; flex-direction:column; }
.sec-atout-card:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14); transform:translateY(-10px); box-shadow:0 30px 70px rgba(0,0,0,.5); }
.sec-atout-num { position:absolute; top:16px; right:18px; font-family:var(--font-display); font-size:4.5rem; font-weight:900; line-height:1; letter-spacing:-.06em; user-select:none; color:rgba(255,255,255,.04); transition:color .35s; }
.sec-atout-card:hover .sec-atout-num { color:rgba(255,255,255,.08); }
.sec-atout-icon { width:60px; height:60px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin-bottom:20px; transition:transform .35s cubic-bezier(.4,0,.2,1); position:relative; z-index:1; }
.sec-atout-card:hover .sec-atout-icon { transform:scale(1.12) rotate(-8deg); }
.sec-atout-card:nth-child(1) .sec-atout-icon { background:rgba(6,182,212,.15); border:1.5px solid rgba(6,182,212,.3); color:var(--cyan); }
.sec-atout-card:nth-child(2) .sec-atout-icon { background:rgba(34,211,165,.15); border:1.5px solid rgba(34,211,165,.3); color:#22d3a5; }
.sec-atout-card:nth-child(3) .sec-atout-icon { background:rgba(245,158,11,.15); border:1.5px solid rgba(245,158,11,.3); color:#f59e0b; }
.sec-atout-card:nth-child(4) .sec-atout-icon { background:rgba(167,139,250,.15); border:1.5px solid rgba(167,139,250,.3); color:#a78bfa; }
.sec-atout-title { font-family:var(--font-display); font-size:16.5px; font-weight:800; color:#fff; margin:0 0 10px; letter-spacing:-.015em; line-height:1.3; }
.sec-atout-desc { font-size:13.5px; color:rgba(255,255,255,.45); line-height:1.75; margin:0; flex:1; }
.sec-atout-tag { display:inline-flex; align-items:center; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; padding:4px 12px; border-radius:var(--radius-full); margin-top:16px; width:fit-content; }
.sec-atout-card:nth-child(1) .sec-atout-tag { background:rgba(6,182,212,.12); color:var(--cyan); border:1px solid rgba(6,182,212,.2); }
.sec-atout-card:nth-child(2) .sec-atout-tag { background:rgba(34,211,165,.12); color:#22d3a5; border:1px solid rgba(34,211,165,.2); }
.sec-atout-card:nth-child(3) .sec-atout-tag { background:rgba(245,158,11,.12); color:#f59e0b; border:1px solid rgba(245,158,11,.2); }
.sec-atout-card:nth-child(4) .sec-atout-tag { background:rgba(167,139,250,.12); color:#a78bfa; border:1px solid rgba(167,139,250,.2); }
.sec-atout-bar { position:absolute; bottom:0; left:0; height:2px; width:0; transition:width .45s ease; }
.sec-atout-card:hover .sec-atout-bar { width:100%; }
.sec-atout-card:nth-child(1) .sec-atout-bar { background:var(--cyan); }
.sec-atout-card:nth-child(2) .sec-atout-bar { background:#22d3a5; }
.sec-atout-card:nth-child(3) .sec-atout-bar { background:#f59e0b; }
.sec-atout-card:nth-child(4) .sec-atout-bar { background:#a78bfa; }
.sec-atouts-strip { display:grid !important; grid-template-columns:repeat(4,1fr) !important; border-top:1px solid rgba(255,255,255,.07); position:relative; z-index:1; }
.sec-atouts-strip-item { display:flex; align-items:center; gap:14px; padding:24px 28px; border-right:1px solid rgba(255,255,255,.06); transition:background .25s; }
.sec-atouts-strip-item:last-child { border-right:none; }
.sec-atouts-strip-item:hover { background:rgba(255,255,255,.04); }
.sec-atouts-strip-icon { width:42px; height:42px; border-radius:var(--radius-md); background:rgba(6,182,212,.12); border:1px solid rgba(6,182,212,.22); color:var(--cyan); font-size:1.1rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .28s; }
.sec-atouts-strip-item:hover .sec-atouts-strip-icon { transform:scale(1.1) rotate(-6deg); }
.sec-atouts-strip-title { font-size:13.5px; font-weight:700; color:#fff; margin-bottom:2px; }
.sec-atouts-strip-sub { font-size:11.5px; color:rgba(255,255,255,.35); }

/* Technologies */
.sec-tech { padding:80px 0; background:#fff; }
.sec-tech-cat-label { display:flex !important; align-items:center; gap:14px; margin-bottom:20px; margin-top:36px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--gray-400); }
.sec-tech-cat-label:first-of-type { margin-top:0; }
.sec-tech-cat-bar { flex:1; height:1px; background:var(--gray-100); }
.sec-tech-grid { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)) !important; gap:12px !important; margin-bottom:12px; }
.sec-tech-card { background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-lg); padding:20px 12px 16px; text-align:center; transition:all .28s cubic-bezier(.4,0,.2,1); cursor:default; position:relative; overflow:hidden; }
.sec-tech-card::before { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),var(--cyan)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.sec-tech-card:hover { transform:translateY(-9px); box-shadow:0 20px 50px rgba(10,36,99,.12); border-color:rgba(10,36,99,.14); }
.sec-tech-card:hover::before { transform:scaleX(1); }
.sec-tech-logo-wrap { height:56px; display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.sec-tech-logo { max-height:44px; max-width:82%; object-fit:contain; transition:transform .3s,filter .3s; filter:grayscale(.35) opacity(.8); }
.sec-tech-card:hover .sec-tech-logo { transform:scale(1.14); filter:none; }
.sec-tech-initials { width:48px; height:48px; border-radius:var(--radius-md); background:linear-gradient(135deg,var(--blue),var(--cyan-dark)); color:#fff; font-size:16px; font-weight:900; display:flex; align-items:center; justify-content:center; margin:0 auto; transition:transform .3s; box-shadow:0 6px 18px rgba(10,36,99,.25); }
.sec-tech-card:hover .sec-tech-initials { transform:scale(1.1) rotate(-5deg); }
.sec-tech-name { font-size:12.5px; font-weight:800; color:var(--gray-800); margin-bottom:3px; }
.sec-tech-cat { font-size:10.5px; color:var(--gray-400); margin-bottom:8px; }
.sec-tech-level { height:3px; background:var(--gray-100); border-radius:2px; overflow:hidden; margin:0 10px; }
.sec-tech-level-bar { height:100%; background:linear-gradient(90deg,var(--blue),var(--cyan)); border-radius:2px; transition:width 1.4s cubic-bezier(.4,0,.2,1); }

/* Processus redesigné */
.sec-processus { padding:80px 0; background:var(--blue); position:relative; }
.sec-proc-grid { display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:16px; position:relative; margin-bottom:32px; }
.sec-proc-card { position:relative; border-radius:var(--radius-xl); padding:26px 20px 22px; overflow:hidden; transition:all .28s; }
.sec-proc-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(0,0,0,.2); }
.sec-proc-dark { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); }
.sec-proc-dark:hover { background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.22); }
.sec-proc-light { background:#fff; border:1px solid rgba(255,255,255,.9); box-shadow:0 8px 28px rgba(0,0,0,.1); }
.sec-proc-light:hover { box-shadow:0 20px 48px rgba(0,0,0,.18); }
.sec-proc-connector { position:absolute; top:36px; right:-14px; width:28px; height:28px; border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; font-size:12px; z-index:2; }
.sec-conn-cyan { background:var(--cyan); color:#fff; box-shadow:0 4px 12px rgba(6,182,212,.35); }
.sec-conn-white { background:#fff; color:var(--blue); box-shadow:0 4px 12px rgba(10,36,99,.2); }
.sec-proc-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px; }
.sec-proc-icon { width:54px; height:54px; border-radius:var(--radius-md); border:1.5px solid; display:flex; align-items:center; justify-content:center; font-size:1.35rem; flex-shrink:0; transition:transform .3s; }
.sec-proc-card:hover .sec-proc-icon { transform:scale(1.08) rotate(-5deg); }
.sec-proc-icon-dark { background:rgba(6,182,212,.18); border-color:rgba(6,182,212,.3); color:var(--cyan); }
.sec-proc-icon-light { background:rgba(10,36,99,.08); border-color:rgba(10,36,99,.15); color:var(--blue); }
.sec-proc-num { font-family:var(--font-display); font-size:2.4rem; font-weight:900; line-height:1; letter-spacing:-.04em; user-select:none; }
.sec-proc-num-dark { color:rgba(255,255,255,.07); }
.sec-proc-num-light { color:rgba(10,36,99,.07); }
.sec-proc-title { font-family:var(--font-display); font-size:15px; font-weight:800; margin:0 0 8px; letter-spacing:-.01em; line-height:1.3; }
.sec-proc-title-dark { color:#fff; }
.sec-proc-title-light { color:var(--gray-900); }
.sec-proc-desc { font-size:12.5px; line-height:1.7; margin:0; }
.sec-proc-desc-dark { color:rgba(255,255,255,.52); }
.sec-proc-desc-light { color:var(--gray-500); }
.sec-proc-bar { position:absolute; bottom:0; left:0; height:3px; width:0; transition:width .4s ease; }
.sec-proc-card:hover .sec-proc-bar { width:100%; }
.sec-proc-bar-dark { background:var(--cyan); }
.sec-proc-bar-light { background:var(--blue); }
.sec-proc-domains { display:grid !important; grid-template-columns:repeat(4,1fr) !important; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-xl); overflow:hidden; }
.sec-proc-domain-item { padding:20px 16px; text-align:center; border-right:1px solid rgba(255,255,255,.07); transition:background .22s; }
.sec-proc-domain-item:last-child { border-right:none; }
.sec-proc-domain-item:hover { background:rgba(255,255,255,.07); }
.sec-proc-domain-icon { width:46px; height:46px; border-radius:var(--radius-md); border:1px solid; display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin:0 auto 10px; transition:transform .25s; }
.sec-proc-domain-item:hover .sec-proc-domain-icon { transform:scale(1.1) rotate(-5deg); }
.sec-proc-domain-title { font-size:13px; font-weight:700; color:#fff; }

/* Tarifs redesignés */
.sec-tarifs { padding:80px 0; background:var(--gray-50); }
.sec-tarifs-grid { display:grid !important; grid-template-columns:1fr 1.12fr 1fr !important; gap:16px; margin-bottom:28px; align-items:start; }
.sec-tarif-card { position:relative; background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-xl); overflow:hidden; display:flex; flex-direction:column; transition:all .32s cubic-bezier(.4,0,.2,1); }
.sec-tarif-card:hover { transform:translateY(-12px); box-shadow:0 32px 70px rgba(10,36,99,.13); border-color:rgba(10,36,99,.14); }
.sec-tarif-featured { background:var(--blue); border-color:var(--blue); box-shadow:0 24px 60px rgba(10,36,99,.35); transform:scale(1.03) translateY(-8px); }
.sec-tarif-featured:hover { transform:scale(1.03) translateY(-20px); box-shadow:0 44px 90px rgba(10,36,99,.48); border-color:var(--cyan); }
.sec-tarif-ribbon { padding:10px 16px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; display:flex; align-items:center; justify-content:center; gap:7px; color:#fff; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-ribbon { background:linear-gradient(90deg,var(--blue),var(--blue-mid)); }
.sec-tarif-featured .sec-tarif-ribbon { background:rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.12); }
.sec-tarif-body { padding:28px 26px; flex:1; }
.sec-tarif-header { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.sec-tarif-icon-wrap { width:64px; height:64px; border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; font-size:1.6rem; flex-shrink:0; transition:transform .32s; }
.sec-tarif-card:hover .sec-tarif-icon-wrap { transform:scale(1.1) rotate(-7deg); }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-icon-wrap { background:rgba(10,36,99,.07); border:1.5px solid rgba(10,36,99,.13); color:var(--blue); }
.sec-tarif-featured .sec-tarif-icon-wrap { background:rgba(255,255,255,.12); border:1.5px solid rgba(255,255,255,.2); color:#fff; box-shadow:0 8px 24px rgba(0,0,0,.2); }
.sec-tarif-name { font-family:var(--font-display); font-size:19px; font-weight:900; margin:0 0 4px; letter-spacing:-.02em; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-name { color:var(--gray-900); }
.sec-tarif-featured .sec-tarif-name { color:#fff; }
.sec-tarif-tagline { font-size:13px; margin:0; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-tagline { color:var(--gray-500); }
.sec-tarif-featured .sec-tarif-tagline { color:rgba(255,255,255,.6); }
.sec-tarif-prix-wrap { border-radius:var(--radius-lg); padding:18px 20px; margin-bottom:22px; display:flex; align-items:flex-end; gap:8px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-prix-wrap { background:var(--gray-50); border:1px solid var(--gray-100); }
.sec-tarif-featured .sec-tarif-prix-wrap { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); }
.sec-tarif-currency { font-size:15px; font-weight:700; padding-bottom:8px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-currency { color:var(--gray-500); }
.sec-tarif-featured .sec-tarif-currency { color:rgba(255,255,255,.6); }
.sec-tarif-amount { font-family:var(--font-display); font-size:2.8rem; font-weight:900; letter-spacing:-.05em; line-height:1; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-amount { color:var(--blue); }
.sec-tarif-featured .sec-tarif-amount { color:#fff; }
.sec-tarif-period { font-size:12.5px; padding-bottom:6px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-period { color:var(--gray-400); }
.sec-tarif-featured .sec-tarif-period { color:rgba(255,255,255,.45); }
.sec-tarif-features { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.sec-tarif-features li { display:flex; align-items:flex-start; gap:10px; font-size:13.5px; padding-bottom:9px; line-height:1.45; border-bottom-width:1px; border-bottom-style:solid; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-features li { color:var(--gray-700); border-bottom-color:var(--gray-50); }
.sec-tarif-featured .sec-tarif-features li { color:rgba(255,255,255,.75); border-bottom-color:rgba(255,255,255,.07); }
.sec-tarif-features li:last-child { border-bottom:none; padding-bottom:0; }
.sec-tarif-features li .bi-check-circle-fill { font-size:14px; flex-shrink:0; margin-top:1px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-features li .bi-check-circle-fill { color:var(--green); }
.sec-tarif-featured .sec-tarif-features li .bi-check-circle-fill { color:#4ade80; }
.sec-tarif-footer { padding:20px 26px; border-top-width:1px; border-top-style:solid; display:flex; flex-direction:column; gap:10px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-footer { border-top-color:var(--gray-100); background:var(--gray-50); }
.sec-tarif-featured .sec-tarif-footer { border-top-color:rgba(255,255,255,.1); background:rgba(255,255,255,.05); }
.sec-tarif-note { display:flex; align-items:center; justify-content:center; gap:5px; font-size:11.5px; }
.sec-tarif-card:not(.sec-tarif-featured) .sec-tarif-note { color:var(--gray-400); }
.sec-tarif-featured .sec-tarif-note { color:rgba(255,255,255,.4); }
.sec-tarifs-note { display:flex; align-items:center; gap:14px; background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-lg); padding:18px 22px; font-size:14px; color:var(--gray-600); box-shadow:var(--shadow-sm); }
.sec-tarifs-note i { color:var(--cyan); font-size:18px; flex-shrink:0; }

/* CTA */
.sec-cta-section { padding:110px 0; position:relative; overflow:hidden; text-align:center; }
.sec-cta-bg { position:absolute; inset:0; background:linear-gradient(135deg,#04091a 0%,#0a2463 40%,#073d5e 70%,#062e1c 100%); }
.sec-cta-bg::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:52px 52px; }
.sec-cta-bg::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,transparent 0%,var(--cyan) 30%,#4ade80 60%,var(--cyan) 80%,transparent 100%); }
.sec-cta-orb { position:absolute; border-radius:50%; filter:blur(100px); pointer-events:none; }
.sec-cta-orb.c1 { width:600px; height:600px; background:rgba(6,182,212,.1); top:-150px; right:-100px; animation:ctaFloat 12s ease-in-out infinite; }
.sec-cta-orb.c2 { width:400px; height:400px; background:rgba(16,185,129,.07); bottom:-100px; left:-80px; animation:ctaFloat 15s ease-in-out infinite reverse; }
.sec-cta-orb.c3 { width:280px; height:280px; background:rgba(167,139,250,.08); top:30%; left:15%; animation:ctaFloat 9s ease-in-out infinite; }
@keyframes ctaFloat { 0%,100%{transform:translate(0,0)} 50%{transform:translate(20px,-25px)} }
.sec-cta-inner { position:relative; z-index:2; max-width:680px; margin:0 auto; }
.sec-cta-badge { display:inline-flex; align-items:center; gap:7px; background:rgba(6,182,212,.12); border:1px solid rgba(6,182,212,.25); color:var(--cyan); padding:7px 20px; border-radius:var(--radius-full); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:28px; }
.sec-cta-title { font-family:var(--font-display); font-size:clamp(2.2rem,5vw,3.4rem); font-weight:900; color:#fff; margin:0 0 20px; letter-spacing:-.04em; line-height:1.06; }
.sec-cta-title span { background:linear-gradient(90deg,var(--cyan) 0%,#4ade80 50%,var(--cyan) 100%); background-size:200% auto; -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; animation:gradientMove 4s linear infinite; }
@keyframes gradientMove { 0%{background-position:0% center} 100%{background-position:200% center} }
.sec-cta-desc { font-size:16.5px; color:rgba(255,255,255,.5); margin:0 0 44px; line-height:1.8; }
.sec-cta-actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:36px; }
.sec-cta-actions .btn-success-custom { padding:16px 36px; font-size:15.5px; font-weight:700; box-shadow:0 8px 32px rgba(37,211,102,.4); border-radius:var(--radius-lg); }
.sec-cta-actions .btn-cta-outline-white { padding:16px 36px; font-size:15.5px; border-radius:var(--radius-lg); }
.sec-cta-trust { display:flex; align-items:center; justify-content:center; gap:28px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.38); font-weight:600; }
.sec-cta-trust span { display:flex; align-items:center; gap:7px; }
.sec-cta-trust i { color:var(--cyan); font-size:14px; }

/* Témoignages */
.sec-temoignages { padding:80px 0; background:#fff; }
.sec-temoignages-grid { display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:20px; }
.sec-temoignage-card { background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-xl); padding:30px 26px; position:relative; overflow:hidden; transition:all .32s cubic-bezier(.4,0,.2,1); }
.sec-temoignage-card:hover { transform:translateY(-10px); box-shadow:0 28px 64px rgba(10,36,99,.12); border-color:rgba(10,36,99,.12); }
.sec-temoignage-card::before { content:''; position:absolute; top:0; left:0; bottom:0; width:4px; background:linear-gradient(180deg,var(--blue) 0%,var(--cyan) 100%); opacity:0; transition:opacity .32s; }
.sec-temoignage-card:hover::before { opacity:1; }
.sec-temoignage-stars { display:flex; gap:3px; margin-bottom:18px; }
.sec-temoignage-stars i { color:var(--amber); font-size:14px; }
.sec-temoignage-text { font-size:14px; color:var(--gray-700); line-height:1.85; margin-bottom:18px; font-style:italic; position:relative; z-index:1; }
.sec-temoignage-result { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--green); background:rgba(16,185,129,.08); border:1px solid rgba(16,185,129,.18); padding:5px 14px; border-radius:var(--radius-full); margin-bottom:22px; }
.sec-temoignage-sep { height:1px; background:var(--gray-100); margin-bottom:18px; }
.sec-temoignage-author { display:flex; align-items:center; gap:14px; }
.sec-temoignage-avatar { width:48px; height:48px; border-radius:50%; flex-shrink:0; background:linear-gradient(135deg,var(--blue),var(--cyan-dark)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:17px; box-shadow:0 6px 20px rgba(10,36,99,.25); overflow:hidden; }
.sec-temoignage-avatar img { width:100%; height:100%; object-fit:cover; }
.sec-temoignage-name { font-size:14px; font-weight:800; color:var(--gray-900); margin-bottom:3px; }
.sec-temoignage-company { font-size:12px; color:var(--gray-400); }

/* Présentation */
.sec-presentation { padding:80px 0; background:var(--gray-50); }
.sec-pres-grid { display:grid !important; grid-template-columns:1.05fr 1fr !important; gap:70px; align-items:center; }
.sec-pres-media { position:relative; }
.sec-pres-img-wrap { position:relative; border-radius:var(--radius-xl); overflow:hidden; aspect-ratio:4/3; box-shadow:0 36px 90px rgba(10,36,99,.22); }
.sec-pres-img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease; }
.sec-pres-img-wrap:hover .sec-pres-img { transform:scale(1.05); }
.sec-pres-img-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(10,36,99,.12),transparent 60%); }
.sec-pres-placeholder { border-radius:var(--radius-xl); background:linear-gradient(135deg,var(--blue) 0%,#0d4f6b 50%,var(--cyan-dark) 100%); aspect-ratio:4/3; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 36px 90px rgba(10,36,99,.22); position:relative; overflow:hidden; }
.sec-pres-placeholder::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:40px 40px; }
.sec-pres-placeholder i { font-size:4rem; color:rgba(255,255,255,.25); position:relative; z-index:1; }
.sec-pres-placeholder span { font-size:13px; color:rgba(255,255,255,.3); margin-top:12px; position:relative; z-index:1; }
.sec-pres-badge-tl { position:absolute; top:22px; left:22px; background:rgba(10,36,99,.9); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-lg); padding:14px 18px; color:#fff; display:flex; align-items:center; gap:12px; z-index:2; }
.sec-pres-badge-tl-icon { width:34px; height:34px; background:rgba(6,182,212,.2); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; color:var(--cyan); font-size:14px; flex-shrink:0; }
.sec-pres-badge-tl-val { font-family:var(--font-display); font-size:1.2rem; font-weight:900; color:#fff; line-height:1; display:block; }
.sec-pres-badge-tl-lbl { font-size:11px; color:rgba(255,255,255,.45); margin-top:2px; display:block; }
.sec-pres-badge-br { position:absolute; bottom:22px; right:22px; background:#fff; border-radius:var(--radius-lg); padding:16px 20px; display:flex; align-items:center; gap:14px; box-shadow:0 20px 50px rgba(0,0,0,.18); z-index:2; }
.sec-pres-badge-br-icon { width:48px; height:48px; background:linear-gradient(135deg,var(--green),#059669); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:#fff; flex-shrink:0; animation:brPulse 3s ease-in-out infinite; }
@keyframes brPulse { 0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.35)} 50%{box-shadow:0 0 0 10px rgba(16,185,129,0)} }
.sec-pres-badge-br-val { font-family:var(--font-display); font-size:1.5rem; font-weight:900; color:var(--gray-900); line-height:1; display:block; }
.sec-pres-badge-br-lbl { font-size:12px; color:var(--gray-500); margin-top:3px; display:block; }
.sec-pres-intro { font-size:15.5px; color:var(--gray-500); line-height:1.85; margin-bottom:32px; }
.sec-pres-points { display:grid !important; grid-template-columns:1fr 1fr !important; gap:12px; margin-top:32px; }
.sec-pres-point { display:flex; align-items:center; gap:14px; background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-lg); padding:18px 16px; transition:all .28s; }
.sec-pres-point:hover { border-color:rgba(10,36,99,.15); box-shadow:0 10px 28px rgba(10,36,99,.09); transform:translateY(-4px); }
.sec-pres-point-icon { width:40px; height:40px; border-radius:var(--radius-md); border:1.5px solid; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; transition:transform .28s; }
.sec-pres-point:hover .sec-pres-point-icon { transform:scale(1.12) rotate(-7deg); }
.sec-pres-point-val { font-family:var(--font-display); font-size:16px; font-weight:900; color:var(--gray-900); line-height:1; margin-bottom:3px; display:block; }
.sec-pres-point-lbl { font-size:12px; color:var(--gray-500); display:block; }

/* Spécialités */
.sec-specialites-grid { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)) !important; gap:14px; }
.sec-specialite-card { background:#fff; border:1.5px solid var(--gray-100); border-radius:var(--radius-lg); padding:22px 18px; display:flex; align-items:flex-start; gap:14px; transition:all .28s; cursor:default; text-decoration:none; color:inherit; }
.sec-specialite-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(10,36,99,.1); border-color:rgba(10,36,99,.14); color:inherit; }
.sec-specialite-icon { width:46px; height:46px; border-radius:var(--radius-md); background:rgba(10,36,99,.07); border:1.5px solid rgba(10,36,99,.12); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0; transition:transform .28s; }
.sec-specialite-card:hover .sec-specialite-icon { transform:scale(1.1) rotate(-6deg); }
.sec-specialite-title { font-family:var(--font-display); font-size:14.5px; font-weight:800; color:var(--gray-900); margin-bottom:5px; letter-spacing:-.01em; }
.sec-specialite-desc { font-size:12.5px; color:var(--gray-500); line-height:1.6; margin:0; }

/* Animations communes */
@keyframes secSlideUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }

/* =========================================
   SOUS-SERVICES BOOTSTRAP OVERRIDE
   ========================================= */
.section-sous-services { padding:80px 0 !important; background:#fff !important; position:relative; overflow:hidden; }
.section-sous-services::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 40% at 100% 0%,rgba(6,182,212,.05) 0%,transparent 60%),radial-gradient(ellipse 40% 50% at 0% 100%,rgba(10,36,99,.04) 0%,transparent 60%); pointer-events:none; }
.section-sous-services h2.text-center { font-family:var(--font-display) !important; font-size:clamp(1.8rem,3vw,2.3rem) !important; font-weight:900 !important; color:var(--gray-900) !important; letter-spacing:-.03em !important; margin-bottom:10px !important; }
.section-sous-services p.text-center { font-size:15.5px !important; color:var(--gray-500) !important; line-height:1.75 !important; margin-bottom:48px !important; }
.section-sous-services .row { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important; gap:16px !important; margin:0 !important; }
.section-sous-services .row>[class*="col"] { padding:0 !important; margin:0 !important; max-width:100% !important; flex:none !important; width:auto !important; }
.section-sous-services .card { background:#fff !important; border:1.5px solid var(--gray-100) !important; border-radius:var(--radius-xl) !important; padding:28px 24px !important; box-shadow:none !important; transition:all .32s cubic-bezier(.4,0,.2,1) !important; position:relative !important; overflow:hidden !important; height:100% !important; display:flex !important; flex-direction:column !important; }
.section-sous-services .card::before { content:''; position:absolute; top:0; left:0; bottom:0; width:0; background:linear-gradient(180deg,var(--blue),var(--cyan)); transition:width .32s ease; }
.section-sous-services .card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.section-sous-services .card:hover { transform:translateY(-10px) !important; box-shadow:0 24px 60px rgba(10,36,99,.12) !important; border-color:rgba(10,36,99,.14) !important; }
.section-sous-services .card:hover::after { transform:scaleX(1); }
.section-sous-services .d-flex.align-items-start { flex-direction:column !important; align-items:flex-start !important; gap:0 !important; }
.section-sous-services .d-flex>span[style*="font-size:2rem"],.section-sous-services .d-flex>span[style*="font-size: 2rem"] { display:flex !important; align-items:center !important; justify-content:center !important; width:60px !important; height:60px !important; background:rgba(10,36,99,.07) !important; border:1.5px solid rgba(10,36,99,.12) !important; border-radius:var(--radius-md) !important; font-size:1.6rem !important; margin-right:0 !important; margin-bottom:20px !important; transition:transform .32s cubic-bezier(.4,0,.2,1) !important; flex-shrink:0 !important; position:relative !important; z-index:1 !important; }
.section-sous-services .card:hover .d-flex>span[style*="font-size"] { transform:scale(1.12) rotate(-7deg) !important; }
.section-sous-services .d-flex>div { width:100% !important; }
.section-sous-services .badge.badge-info { background:rgba(6,182,212,.12) !important; color:var(--cyan-dark) !important; border:1px solid rgba(6,182,212,.22) !important; font-size:10px !important; font-weight:800 !important; letter-spacing:.07em !important; text-transform:uppercase !important; padding:4px 10px !important; border-radius:999px !important; margin-bottom:10px !important; display:inline-flex !important; }
.section-sous-services h5.font-weight-bold { font-family:var(--font-display) !important; font-size:16px !important; font-weight:800 !important; color:var(--gray-900) !important; margin-bottom:8px !important; letter-spacing:-.015em !important; line-height:1.3 !important; }
.section-sous-services p.text-muted.small { font-size:13.5px !important; color:var(--gray-500) !important; line-height:1.75 !important; margin-bottom:14px !important; }
.section-sous-services a.small.text-primary { display:inline-flex !important; align-items:center !important; gap:6px !important; font-size:13px !important; font-weight:700 !important; color:var(--blue) !important; text-decoration:none !important; transition:all .22s !important; margin-top:auto !important; }
.section-sous-services a.small.text-primary:hover { color:var(--cyan-dark) !important; gap:10px !important; }
.section-sous-services .row>:nth-child(1) .d-flex>span[style*="font-size"] { background:rgba(6,182,212,.1) !important; border-color:rgba(6,182,212,.2) !important; }
.section-sous-services .row>:nth-child(2) .d-flex>span[style*="font-size"] { background:rgba(16,185,129,.1) !important; border-color:rgba(16,185,129,.2) !important; }
.section-sous-services .row>:nth-child(3) .d-flex>span[style*="font-size"] { background:rgba(245,158,11,.1) !important; border-color:rgba(245,158,11,.2) !important; }
.section-sous-services .row>:nth-child(4) .d-flex>span[style*="font-size"] { background:rgba(167,139,250,.1) !important; border-color:rgba(167,139,250,.2) !important; }
.section-sous-services .row>:nth-child(5) .d-flex>span[style*="font-size"] { background:rgba(239,68,68,.1) !important; border-color:rgba(239,68,68,.2) !important; }
.section-sous-services .row>:nth-child(6) .d-flex>span[style*="font-size"] { background:rgba(10,36,99,.1) !important; border-color:rgba(10,36,99,.2) !important; }
.section-sous-services .row>:nth-child(1) .card::after { background:var(--cyan); }
.section-sous-services .row>:nth-child(2) .card::after { background:var(--green); }
.section-sous-services .row>:nth-child(3) .card::after { background:var(--amber); }
.section-sous-services .row>:nth-child(4) .card::after { background:#a78bfa; }
.section-sous-services .row>:nth-child(5) .card::after { background:var(--red); }
.section-sous-services .row>:nth-child(6) .card::after { background:var(--blue); }


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE UNIQUE + FIX MOBILE MENU
   Ce bloc est le DERNIER du fichier — il écrase tout conflit
   
   Z-INDEX:
   99999 = #navMenu ouvert
   9999  = Discussion widget
   9998  = WhatsApp / Overlay
   999   = Hamburger
   1000  = Header sticky
   900   = Scroll-top
═══════════════════════════════════════════════════════════════ */

html,body{overflow-x:hidden}

/* ── HAMBURGER ── */
#mobileToggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:12px;background:var(--gray-100);color:var(--gray-800);font-size:22px;cursor:pointer;flex-shrink:0;position:relative;z-index:999;-webkit-tap-highlight-color:transparent;transition:background .2s,transform .2s,opacity .25s,visibility .25s}
#mobileToggle:active{transform:scale(.92)}

/* ── OVERLAY ── */
#navOverlay{position:fixed !important;inset:0 !important;background:rgba(0,0,0,.5) !important;backdrop-filter:blur(4px) !important;-webkit-backdrop-filter:blur(4px) !important;z-index:9998 !important;opacity:0 !important;visibility:hidden !important;transition:opacity .3s ease,visibility .3s ease !important;-webkit-tap-highlight-color:transparent !important}
#navOverlay.open{opacity:1 !important;visibility:visible !important}

/* ── BODY LOCK ── */
body.menu-open{overflow:hidden !important;position:fixed !important;width:100% !important}

/* ── CACHER HAMBURGER QUAND OUVERT ── */
body.menu-open #mobileToggle{opacity:0 !important;visibility:hidden !important;pointer-events:none !important;transform:scale(.8) !important}

/* ── CLOSE BTN ── */
.nav-close-item{display:none !important}
.nav-close-btn{width:38px;height:38px;border-radius:50%;background:var(--gray-100);border:none;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--gray-700);cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-close-btn:active{background:var(--gray-300)}

/* ── 1200px ── */
@media(max-width:1200px){
.search-box{width:300px !important}
.slide-text h2{font-size:2.3rem !important}
.sec-atouts-stats-band{grid-template-columns:repeat(2,1fr) !important}
.sec-atouts-grid{grid-template-columns:repeat(2,1fr) !important}
.sec-tech-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) !important}
.sec-tarifs-grid{grid-template-columns:1fr 1fr 1fr !important}
.sec-tarif-featured{transform:none !important}
}

/* ── 1024px — MOBILE MENU ── */
@media(max-width:1024px){
#mobileToggle{display:flex !important}
body.menu-open #mobileToggle{display:flex !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important}
.nav-close-item{display:flex !important;align-items:center !important;justify-content:space-between !important;padding:18px 20px 14px !important;border-bottom:1px solid var(--gray-100) !important;margin-bottom:6px !important;position:sticky !important;top:0 !important;background:#fff !important;z-index:10 !important}
.header-top-row .search-box,.header-top-row .primary-btn,.header-top-row .text-btn{display:none !important}
#navMenu{position:fixed !important;top:0 !important;right:-100% !important;bottom:auto !important;left:auto !important;width:82% !important;max-width:320px !important;height:100vh !important;height:100dvh !important;background:#fff !important;z-index:99999 !important;overflow-y:auto !important;overflow-x:hidden !important;-webkit-overflow-scrolling:touch !important;box-shadow:-10px 0 40px rgba(0,0,0,.15) !important;padding:0 0 40px !important;margin:0 !important;transition:right .35s cubic-bezier(.32,.72,0,1) !important;transform:none !important;display:flex !important;flex-direction:column !important}
#navMenu.open{right:0 !important}
#navMenu .nav-item,.nav-menu>.nav-item{width:100% !important}
#navMenu .nav-link,.nav-menu .nav-link{width:100% !important;padding:14px 18px !important;font-size:15px !important;justify-content:flex-start !important;border-radius:8px !important;gap:12px !important;min-height:50px !important;white-space:normal !important;overflow:visible !important;color:var(--gray-700) !important}
#navMenu .nav-link>i:first-child{width:22px !important;flex-shrink:0 !important;text-align:center !important;font-size:16px !important;color:var(--blue) !important}
#navMenu .nav-link .nav-arrow{margin-left:auto !important;flex-shrink:0 !important}
.nav-item.dropdown .dropdown-menu,.nav-item.mega-dropdown .dropdown-menu{position:static !important;opacity:1 !important;visibility:visible !important;transform:none !important;box-shadow:none !important;border:none !important;background:var(--gray-50) !important;border-radius:8px !important;margin:2px 0 4px 16px !important;padding:4px !important;pointer-events:auto !important;min-width:auto !important;grid-template-columns:1fr !important;display:none !important}
.nav-item.open>.dropdown-menu{display:block !important}
.dropdown-menu li a{min-height:46px !important;padding:11px 14px !important;font-size:14px !important}
.nav-item.mega-dropdown .dropdown-menu{grid-template-columns:1fr !important}
.mega-cta{border-left:none !important;padding-left:0 !important}
.cta-item{padding:14px 18px !important}
.btn-cta{width:100% !important;justify-content:center !important}
/* Grilles tablette */
.features-grid{grid-template-columns:repeat(2,1fr) !important}
.svc-slide{flex:0 0 calc(50% - 8px) !important;min-width:calc(50% - 8px) !important}
.svc-header{flex-direction:column !important}
.svc-tabs{overflow-x:auto !important;flex-wrap:nowrap !important;width:100% !important}
.solaire-card{grid-template-columns:1fr !important;min-height:auto !important}
.solaire-image{min-height:260px !important}
.solaire-texte{padding:32px 28px !important}
.sec-proc-grid{grid-template-columns:repeat(2,1fr) !important}
.sec-proc-connector{display:none !important}
.sec-proc-domains{grid-template-columns:repeat(2,1fr) !important}
.sec-pres-grid{grid-template-columns:1fr !important;gap:40px !important}
.sec-temoignages-grid{grid-template-columns:repeat(2,1fr) !important}
.sec-tarifs-grid{grid-template-columns:1fr !important;max-width:460px !important;margin-left:auto !important;margin-right:auto !important}
.sec-atouts-strip{grid-template-columns:repeat(2,1fr) !important}
.sec-specialites-grid{grid-template-columns:repeat(2,1fr) !important}
.section-sous-services .row{grid-template-columns:repeat(2,1fr) !important}
.slide-content{padding:32px !important}
.slide-text h2{font-size:2rem !important}
}

/* ── 768px — MOBILE ── */
@media(max-width:768px){
.topbar{display:none !important}
.container{padding:0 16px !important}
.header-top-row{min-height:62px !important;padding:4px 0 !important}
.logo-img{height:46px !important;max-width:46px !important}
.logo-name-top{font-size:18px !important}
.logo-name-bot{font-size:9px !important}
.header-main.scrolled .logo-img{height:36px !important;max-width:36px !important}
.slider-wrapper{min-height:360px !important;max-height:460px !important}
.slide-content{padding:24px 20px !important;max-width:100% !important}
.slide-text h2{font-size:1.65rem !important;line-height:1.2 !important}
.slide-text p{font-size:13.5px !important;margin-bottom:18px !important}
.btn-slide-primary,.btn-slide-outline{padding:10px 18px !important;font-size:13px !important}
.features-grid{grid-template-columns:1fr !important}
.feature-block{border-right:none !important;border-bottom:1px solid var(--gray-100) !important}
.feature-block:last-child{border-bottom:none !important}
.svc-slide{flex:0 0 100% !important;min-width:100% !important}
.svc-section{padding:48px 0 !important}
.svc-arrow{display:none !important}
.solaire-card{grid-template-columns:1fr !important}
.solaire-image{min-height:200px !important}
.solaire-texte{padding:24px 18px !important}
.solaire-titre{font-size:1.4rem !important}
.stat-item-new::after{display:none !important}
.sec-atouts-stats-band{grid-template-columns:repeat(2,1fr) !important}
.sec-atouts-stat{padding:24px 14px !important}
.sec-atouts-stat-num{font-size:2rem !important}
.sec-atouts-grid{grid-template-columns:1fr 1fr !important;gap:10px !important}
.sec-atouts-body{padding:48px 0 !important}
.sec-atouts-strip{grid-template-columns:1fr !important}
.sec-atouts-strip-item{border-right:none !important;border-bottom:1px solid rgba(255,255,255,.06) !important}
.sec-proc-grid{grid-template-columns:1fr !important}
.sec-proc-domains{grid-template-columns:repeat(2,1fr) !important}
.sec-tarifs-grid{grid-template-columns:1fr !important;max-width:100% !important}
.sec-tarif-featured{transform:none !important}
.sec-tech-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr)) !important}
.sec-temoignages-grid{grid-template-columns:1fr !important}
.sec-pres-grid{grid-template-columns:1fr !important;gap:28px !important}
.sec-pres-points{grid-template-columns:1fr !important}
.sec-cta-section{padding:64px 0 !important}
.sec-specialites-grid{grid-template-columns:1fr !important}
.section-sous-services .row{grid-template-columns:1fr !important}
.section-sous-services{padding:52px 0 !important}
.section-cta{padding:52px 0 !important}
.section-cta h2{font-size:1.5rem !important}
.cta-actions{flex-direction:column !important;align-items:center !important}
.btn-cta-white,.btn-cta-outline-white{width:100% !important;max-width:280px !important;justify-content:center !important}
.footer-bottom .inner{flex-direction:column !important;text-align:center !important;gap:10px !important}
.section{padding:52px 0 !important}
}

/* ── 580px ── */
@media(max-width:580px){
.slider-wrapper{min-height:320px !important}
.slide-text h2{font-size:1.4rem !important}
.slide-text p{display:none !important}
.slide-actions{flex-direction:column !important;align-items:center !important}
.btn-slide-primary,.btn-slide-outline{width:100% !important;max-width:220px !important}
.logo-name-top{font-size:16px !important}
.sec-cta-title{font-size:1.7rem !important}
}

/* ── 480px — PETIT MOBILE ── */
@media(max-width:480px){
.container{padding:0 12px !important}
.logo-img{height:40px !important;max-width:40px !important}
.logo-name-top{font-size:15px !important}
.logo-name-bot{font-size:8px !important}
.header-top-row{min-height:56px !important}
.sec-atouts-stats-band{grid-template-columns:repeat(2,1fr) !important}
.sec-atouts-grid{grid-template-columns:1fr !important}
.sec-tech-grid{grid-template-columns:repeat(2,1fr) !important}
.sec-proc-domains{grid-template-columns:1fr !important}
.sec-hero-title{font-size:1.5rem !important}
.sec-header-title{font-size:1.35rem !important}
.sec-cta-title{font-size:1.5rem !important}
.sec-cta-trust{flex-direction:column !important;gap:8px !important}
.sec-cta-actions{flex-direction:column !important;align-items:center !important}
.section-hero h1{font-size:1.8rem !important}
/* Menu plein écran */
#navMenu{width:100% !important;max-width:100% !important}
}

/* PERFORMANCE */
.svc-track,.marquee-inner{will-change:transform}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}