Files
html/products/wevia-enterprise.html
Opus 41a40ff936
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
phase53 doctrine 195 MASS INJECT products subdir 104 pages UX doctrine 60 - total 426 pages
Handler new: /var/www/html/api/inject-products.py
- Mass injection doctrine 60 sur /var/www/html/products/ subfolder
- 104 pages HTML traitees en 1 pass
- GOLD backup systematique: vault-gold/opus/products-NAME.html.doctrine195-TS.bak
- chattr +i/-i atomic handling
- Includes mobile fix responsive bot-widget (doctrine 194 pattern)

Resultats:
- OK=104 ALREADY=0 ERR=0 TOTAL=104 (100 percent success)
- Health checks HTTP 200 sur consulting/leadforge/academy/arsenal/bizplan

Coverage GLOBAL maintenant:
- Root: 322/325 = 99.1 percent (2 exclusions legitimes wevia/monitor)
- Products: 104/104 = 100 percent COMPLETE
- TOTAL: 426 pages UX doctrine 60

Cumul session Opus:
- 45 tags (44+1)
- 35 doctrines vault (146-195)
- 426 pages UX doctrine 60 (was 323, +104)
- NR 153/153 invariant 53 phases

Handler inject-products.py battle-tested - reusable pour autres subdirs.
ZERO regression. ZERO ecrasement.
2026-04-24 15:57:08 +02:00

399 lines
41 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr"><head>
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>WEVIA Enterprise — Assistant IA Entreprise Souverain</title>
<meta name="description" content="WEVIA Enterprise — Assistant IA Entreprise Souverain - Solutions IA souveraines pour entreprises">
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Outfit:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
<style>:root{--bg:#05080f;--s:#0c1222;--a:#00c9a7;--a15:rgba(0,201,167,.15);--p:#7c5cfc;--g:#f0c674;--r:#ff6b6b;--bl:#4ea8de;--sv:#7a8ba5;--w:#edf2f7;--b:rgba(0,201,167,.08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--w)}nav{position:fixed;top:0;width:100%;padding:1rem 4%;display:flex;justify-content:space-between;align-items:center;z-index:100;backdrop-filter:blur(20px);background:rgba(5,8,15,.85);border-bottom:1px solid var(--b)}.logo{font-weight:800;font-size:1.5rem}.logo span{color:var(--a)}.btn-n{background:var(--a);color:var(--bg);padding:.55rem 1.3rem;border-radius:7px;font-weight:700;font-size:.82rem;text-decoration:none}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7rem 4% 4rem}.badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--a15);border:1px solid rgba(0,201,167,.2);border-radius:100px;padding:.35rem 1rem;font-size:.75rem;font-weight:600;color:var(--a);margin-bottom:2rem}h1{font-size:3.2rem;font-weight:800;line-height:1.08;letter-spacing:-.04em;margin-bottom:1.2rem;max-width:800px}h1 em{font-style:normal;background:linear-gradient(135deg,var(--a),var(--p));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sub{font-size:1.05rem;color:var(--sv);max-width:600px;line-height:1.7;margin-bottom:2rem}.btns{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.btn-p{background:var(--a);color:var(--bg);padding:.85rem 2rem;border-radius:8px;font-weight:700;text-decoration:none}.btn-o{background:transparent;color:var(--w);padding:.85rem 2rem;border-radius:8px;text-decoration:none;border:1px solid rgba(255,255,255,.12)}.sec{padding:4rem 4%;max-width:1200px;margin:0 auto}.stag{font-family:'Space Mono',monospace;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--a);margin-bottom:1rem}h2{font-size:2.2rem;font-weight:800;margin-bottom:.8rem}.sd{color:var(--sv);font-size:.95rem;line-height:1.7;max-width:560px;margin-bottom:2.5rem}.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgba(0,201,167,.06);border-radius:14px;overflow:hidden;margin:2rem 0}.stat{padding:1.2rem;text-align:center;background:rgba(12,18,34,.95)}.stat-n{font-family:'Space Mono',monospace;font-size:1.5rem;font-weight:700;color:var(--a)}.stat-l{font-size:.65rem;color:var(--sv)}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.cd{background:var(--s);border:1px solid var(--b);border-radius:14px;padding:1.5rem;transition:all .3s}.cd:hover{transform:translateY(-2px)}.cd h3{font-size:.9rem;font-weight:600;margin:.5rem 0 .25rem}.cd p{font-size:.78rem;color:var(--sv);line-height:1.5}.arch{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:2rem 0}.arch-box{background:var(--s);border:1px solid var(--b);border-radius:14px;padding:1.5rem}.arch-box h3{font-size:.95rem;font-weight:700;margin-bottom:.6rem}.arch-list{font-size:.8rem;color:var(--sv);line-height:1.8}.cta{text-align:center;padding:4rem 2rem;margin:2rem 4%;background:var(--s);border:1px solid var(--b);border-radius:20px}.cta p{color:var(--sv);max-width:500px;margin:.5rem auto 1.5rem}footer{padding:2rem 4%;max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.04);font-size:.75rem;color:var(--sv)}footer a{color:var(--a);text-decoration:none}@media(max-width:900px){h1{font-size:2.2rem}.g3,.g4,.stats,.arch{grid-template-columns:1fr}}input,select,textarea{background:#0b0d14!important;color:#e2e8f0!important;border:1px solid #1e293b!important;border-radius:8px!important}input::placeholder{color:#475569!important}</style><style>/* Hide nav in iframe */
@media all{.in-iframe nav{display:none!important}.in-iframe .hero{padding-top:3rem!important;min-height:auto!important}.in-iframe footer{display:none!important}.in-iframe .cta{display:none!important}.in-iframe .wv-links{display:none!important}.wv-links{display:none!important}}</style>
<script>if(window!==window.top)document.documentElement.classList.add('in-iframe');</script>
<link rel="canonical" href="https://weval-consulting.com/products/wevia-enterprise.html">
<meta property="og:title" content="WEVIA Enterprise — Assistant IA Entreprise Souverain">
<meta property="og:description" content="WEVIA Enterprise — Assistant IA Entreprise Souverain - Solutions IA souveraines pour entreprises">
<meta property="og:url" content="https://weval-consulting.com/products/wevia-enterprise.html">
<meta property="og:type" content="website">
<meta property="og:site_name" content="WEVAL Consulting">
<meta property="og:image" content="https://weval-consulting.com/assets/logo-weval-png-DChrMGao.png">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="WEVIA Enterprise — Assistant IA Entreprise Souverain">
<meta name="twitter:description" content="WEVIA Enterprise — Assistant IA Entreprise Souverain - Solutions IA souveraines pour entreprises">
<link rel="alternate" hreflang="fr" href="https://weval-consulting.com/products/wevia-enterprise.html">
<link rel="alternate" hreflang="x-default" href="https://weval-consulting.com/products/wevia-enterprise.html">
<link rel="stylesheet" href="/assets/dark-iframe.css">
<!-- DOCTRINE-60-UX-ENRICH products-batch-doctrine195 -->
<style id="wtp-doctrine60-ux-premium">
:root {
--wtp-bg-start:#0a0f1c; --wtp-bg-end:#0f172a;
--wtp-surface:rgba(15,23,42,.85); --wtp-surface-hover:rgba(30,41,59,.9);
--wtp-border:rgba(99,102,241,.25); --wtp-border-hover:rgba(99,102,241,.5);
--wtp-text:#e2e8f0; --wtp-text-dim:#94a3b8; --wtp-text-bright:#f1f5f9;
--wtp-primary:#6366f1; --wtp-primary-hover:#7c7feb;
--wtp-accent:#8b5cf6; --wtp-success:#10b981; --wtp-warning:#f59e0b; --wtp-danger:#ef4444;
--wtp-radius:12px; --wtp-shadow:0 4px 24px rgba(99,102,241,.15); --wtp-shadow-lg:0 8px 48px rgba(99,102,241,.25);
--wtp-transition:all .2s cubic-bezier(.4,0,.2,1);
--wtp-font:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
--wtp-font-mono:'JetBrains Mono',monospace;
}
.wtp-card{background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:var(--wtp-radius);padding:20px;transition:var(--wtp-transition)}
.wtp-card:hover{border-color:var(--wtp-border-hover);box-shadow:var(--wtp-shadow)}
.wtp-btn{background:linear-gradient(135deg,var(--wtp-primary),var(--wtp-accent));color:#fff;padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--wtp-transition)}
.wtp-btn:hover{transform:translateY(-1px);box-shadow:var(--wtp-shadow)}
.wtp-badge{display:inline-flex;align-items:center;padding:4px 10px;background:var(--wtp-surface);border:1px solid var(--wtp-border);border-radius:20px;font-size:12px;color:var(--wtp-text-dim)}
@media (max-width:768px){#weval-bot-widget{bottom:100px !important;right:16px !important;z-index:10001 !important}#weval-bot-btn{width:48px !important;height:48px !important}#weval-bot-btn svg{width:22px !important;height:22px !important}#footer_banner,.footer-banner,[class*="footer-bandeau"]{z-index:9990 !important}}
</style>
</head><body>
<nav><div class="logo" style="display:flex;align-items:center;gap:8px"><img src="/assets/logo-wevia-enterprise.svg" alt="" style="width:32px;height:32px">WEVIA<span>Enterprise</span></div><a href="#cta" class="btn-n">Demo live →</a></nav>
<section class="hero">
<div class="badge">IA Entreprise Souveraine — 43 endpoints · GPU local</div>
<h1>L'assistant IA qui connaît <em>votre entreprise</em></h1>
<p class="sub">43 endpoints, 13 modules core, Knowledge Base ×10, mémoire conversationnelle, vision, SearXNG, GraphRAG, YouTube. Tout tourne sur notre Cloud souverain — vos données ne quittent JAMAIS vos murs. Testez-le en live sur weval-consulting.com.</p>
<div class="btns"><a href="#cta" class="btn-p" target="_blank">Tester le chatbot live →</a><a href="#" class="btn-o" onclick="event.preventDefault();document.getElementById('deployModal').style.display='flex'">Déployer sur mon site</a></div></section>
<div class="sec"><div class="stats">
<div class="stat"><div class="stat-n">43</div><div class="stat-l">Endpoints</div></div>
<div class="stat"><div class="stat-n">13</div><div class="stat-l">Modules core</div></div>
<div class="stat"><div class="stat-n">51</div><div class="stat-l">Modèles IA</div></div>
<div class="stat"><div class="stat-n">10</div><div class="stat-l">Knowledge Bases</div></div>
<div class="stat"><div class="stat-n">8</div><div class="stat-l">Modules Dark</div></div>
<div class="stat"><div class="stat-n">20GB</div><div class="stat-l">GPU VRAM</div></div></div></div>
<section class="sec"><div class="stag">13 modules core</div><h2>Architecture modulaire</h2><p class="sd">Chaque module est indépendant et activable à la demande. Pas de monolithe — que des micro-services IA.</p>
<div class="g4">
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Knowledge Base ×10</h3><p>10 tables KB spécialisées. Upload docs, FAQ, catalogue. Le chatbot apprend en minutes.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>SearXNG</h3><p>Recherche web privée intégrée. Le chatbot cherche sur le web sans tracker vos utilisateurs.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>GraphRAG</h3><p>Retrieval augmenté par graphe. Relations entre documents, entités, concepts. Réponses contextuelles.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Mémoire</h3><p>Se souvient des échanges passés. Personnalisé chaque conversation. Cross-session.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Vision</h3><p>Analyse images, documents scannés, screenshots. WEVIA Vision intégré pour le visual understanding.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>SmartRouter</h3><p>Route chaque requête vers le meilleur modèle IA selon la complexité. WEVIA local → cloud fallback.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>YouTube</h3><p>Analyse et résume des vidéos YouTube. Extraction de transcripts, Q&A sur le contenu vidéo.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Sanitizer</h3><p>Masque automatiquement les données internes (IPs, mots de passe, infra) dans les réponses publiques.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>8 Dark Modules</h3><p>dark-matrix, dark-slot, ghost-network, shadow-rag, dark-scout, dark-data collector, dark-data, ia-discovery.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Auto-Enrichment</h3><p>Cron auto-enrichissement KB toutes les 6h via GPU WEVIA. La base de connaissances grandit seule.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Back-Office v3</h3><p>13 sections nav, 14 APIs, 83KB PHP. Dashboard, Inbox, Leads, Conversations, Analytics, CRUD complet.</p></div>
<div class="cd"><div style="font-size:1.1rem"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 12l2 2 4-4"/><circle cx="12" cy="12" r="10"/></svg></div><h3>Dual Interface</h3><p>Widget léger (54KB) pour embed rapide. Fullscreen (124KB) pour expérience immersive complète.</p></div></div></section>
<section class="sec"><div class="stag">GPU Souverain</div><h2>51 modèles IA en local</h2>
<div class="arch">
<div class="arch-box"><h3 style="color:var(--a)">Hardware</h3><div class="arch-list">GPU dédié — 20GB VRAM<br>CUDA optimisé<br>Serveur dédié / 64GB RAM<br>Infrastructure dédiée Europe<br>WEVIA Engine local</div></div>
<div class="arch-box"><h3 style="color:var(--p)">Modèles phares</h3><div class="arch-list">WEVIA Sovereign (custom fine-tuned)<br>WEVIA Deep (reasoning)<br>WEVIA Code (code)<br>WEVIA General (multi-purpose)<br>WEVIA Embed (embeddings)<br>WEVIA Vision (visual understanding)<br>+ 45 autres modèles</div></div></div>
<div style="background:rgba(0,201,167,.03);border:1px solid rgba(0,201,167,.1);border-radius:14px;padding:1.5rem;margin-top:1rem">
<h3 style="font-size:1rem;font-weight:700;margin-bottom:.5rem;color:var(--a)">Failover multi-cloud</h3>
<p style="font-size:.82rem;color:var(--sv);line-height:1.6">multi-providers IA avec smart failover : GPU local (rang 1) → Cloud Tier 1 (ultra-fast) → Cloud Tier 2 (fast) → Cloud Tier 3 → WEVIA → Gemini → Claude → Hyperbolic → Mistral → Cohere → WEVIA cloud. Si le GPU local est occupé, Brain bascule automatiquement. Jamais de downtime IA.</p></div></section>
<section class="sec"><div class="stag">vs concurrents</div><h2>Pourquoi pas IA générique Enterprise / Copilot ?</h2>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:1.5rem">
<div class="cd" style="border-color:rgba(0,201,167,.2)"><h3 style="color:var(--a)">WEVIA Enterprise</h3><p style="font-size:.82rem;color:var(--sv);line-height:1.7"> Cloud souverain — données 100% locales<br> 43 endpoints / 13 modules<br> KB custom × 10 tables<br> Vision + Mémoire + GraphRAG<br> 51 modèles (souverain, pas de vendor lock-in)<br> 500-$2,999/mo (tout compris)<br> FR/AR/EN/ES natif<br> Widget embed 5 minutes<br> Back-office CRUD complet</p></div>
<div class="cd"><h3 style="color:var(--sv)">IA générique Enterprise / Microsoft Copilot</h3><p style="font-size:.82rem;color:var(--sv);line-height:1.7"> Cloud US — données chez IA Cloud/Microsoft<br> API standardisée, pas de modules custom<br> KB limitée (1 upload, pas 10 tables)<br> Pas de GraphRAG, pas de dark modules<br> 1 seul modèle (GPT-4), pas de choix<br> $30/user/mo × 100 users = $3000/mo<br> Principalement anglophone<br> Embed complexe, API requise<br> Pas de back-office dédié</p></div></div></section>
<div class="cta" id="cta"><div class="stag">Deploy</div><h2>Votre IA en 5 minutes</h2><p>Testez le chatbot live sur weval-consulting.com, puis déployez-le sur votre site. Knowledge base custom, votre marque, notre IA.</p><div class="btns" style="justify-content:center"><a href="#cta" class="btn-p" target="_blank">Tester live →</a><a href="#" class="btn-o" onclick="event.preventDefault();document.getElementById('deployModal').style.display='flex'">Déployer sur mon site</a></div></div>
<footer><div><strong>WEVIA Enterprise</strong> · <a href="/products/">WEVAL Products</a></div><div>France · Maroc · États-Unis · International · IA Souveraine</div></footer><!-- WEVAL Product Assistant Chatbot Widget -->
<div id="weval-bot-widget" style="position:fixed;bottom:20px;right:20px;z-index:9999;font-family:'Inter',system-ui,sans-serif">
<style>
#weval-bot-btn{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;cursor:pointer;box-shadow:0 4px 24px rgba(99,102,241,.4);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}
#weval-bot-btn:hover{transform:scale(1.08);box-shadow:0 6px 32px rgba(99,102,241,.5)}
#weval-bot-btn svg{width:28px;height:28px;fill:#fff}
#weval-bot-badge{position:absolute;top:-2px;right:-2px;width:14px;height:14px;background:#22c55e;border-radius:50%;border:2px solid #fff;animation:pulse-badge 2s infinite}
@keyframes pulse-badge{0%,100%{opacity:1}50%{opacity:.5}}
#weval-bot-panel{display:none;position:fixed;bottom:90px;right:20px;width:380px;max-height:520px;background:#0f1629;border:1px solid rgba(99,102,241,.2);border-radius:16px;box-shadow:0 12px 48px rgba(0,0,0,.5);overflow:hidden;flex-direction:column}
#weval-bot-panel.open{display:flex}
#weval-bot-head{background:linear-gradient(135deg,#6366f1,#8b5cf6);padding:14px 18px;display:flex;align-items:center;gap:10px}
#weval-bot-head .avatar{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:18px}
#weval-bot-head .info{flex:1;color:#fff}
#weval-bot-head .info .name{font-weight:600;font-size:14px}
#weval-bot-head .info .status{font-size:11px;opacity:.8}
#weval-bot-close{background:none;border:none;color:rgba(255,255,255,.7);cursor:pointer;font-size:20px;padding:4px}
#weval-bot-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:280px;max-height:360px}
.bot-msg{max-width:85%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;word-wrap:break-word}
.bot-msg.bot{background:rgba(99,102,241,.12);color:#e2e8f0;border-bottom-left-radius:4px;align-self:flex-start}
.bot-msg.user{background:#6366f1;color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.bot-msg a{color:#818cf8;text-decoration:underline}
.bot-typing{display:flex;gap:4px;padding:10px 14px;align-self:flex-start}
.bot-typing span{width:6px;height:6px;background:#6366f1;border-radius:50%;animation:bounce .6s infinite alternate}
.bot-typing span:nth-child(2){animation-delay:.2s}
.bot-typing span:nth-child(3){animation-delay:.4s}
@keyframes bounce{to{opacity:.3;transform:translateY(-4px)}}
#weval-bot-input-area{padding:10px 14px;border-top:1px solid rgba(255,255,255,.06);display:flex;gap:8px}
#weval-bot-input{flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;color:#e2e8f0;font-size:13px;outline:none}
#weval-bot-input::placeholder{color:rgba(255,255,255,.3)}
#weval-bot-send{background:#6366f1;border:none;border-radius:8px;padding:8px 12px;color:#fff;cursor:pointer;font-size:13px;font-weight:600}
#weval-bot-send:hover{background:#5558e6}
.quick-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.quick-btn{background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.25);color:#a5b4fc;padding:5px 10px;border-radius:6px;font-size:11px;cursor:pointer;transition:all .15s}
.quick-btn:hover{background:rgba(99,102,241,.3);color:#fff}
</style>
<button id="weval-bot-btn" onclick="toggleBot()">
<svg viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/></svg>
<div id="weval-bot-badge"></div>
</button>
<div id="weval-bot-panel">
<div id="weval-bot-head">
<div class="avatar">W</div>
<div class="info">
<div class="name">WEVAL Assistant</div>
<div class="status">En ligne - 62 produits</div>
</div>
<button id="weval-bot-close" onclick="toggleBot()">&times;</button>
</div>
<div id="weval-bot-msgs"></div>
<div id="weval-bot-input-area">
<input id="weval-bot-input" placeholder="Posez une question sur nos produits..." onkeypress="if(event.key==='Enter')sendBot()">
<button id="weval-bot-send" onclick="sendBot()">Envoyer</button>
</div>
</div>
<script>
const PRODUCTS_KB = {
deliVerscore: {name:'DeliverScore',desc:'Audit délivrabilité email - SPF/DKIM/DMARC/listes de blocage. Score + recommandations IA.',price:'Gratuit + Pro $49/mo',url:'/products/deliverscore.html',category:'Email Intelligence'},
medreach: {name:'MedReach API',desc:'Base de 18596+ professionnels de santé vérifiés (Afrique, Europe, Moyen-Orient, Asie, Europe). API REST + export.',price:'Gratuit + Pro $299/mo',url:'/products/medreach.html',category:'Data'},
gpu: {name:'WEVIA Inference',desc:'IA-as-a-Service. WEVIA Deep, WEVIA sur GPU dédié. API IA Cloud-compatible.',price:'Gratuit + Pro $99/mo',url:'/products/gpu-inference.html',category:'IA'},
contentfactory: {name:'AI Content Factory',desc:'Génération de contenu IA - articles, fiches produits, LinkedIn. 6 templates.',price:'Gratuit + Pro $29/mo',url:'/products/content-factory.html',category:'IA'},
proposalai: {name:'ProposalAI',desc:'Generateur de propositions commerciales qualité Big4. Brief -> propale en 30 sec.',price:'Gratuit + Pro $19/mo',url:'/products/proposalai.html',category:'IA'},
blueprintai: {name:'BlueprintAI',desc:'Process docs, BPMN, CDC, blueprints L1/L2/L3, 8D, RACI.',price:'$25/mo',url:'/products/blueprintai.html',category:'IA'},
storeforge: {name:'StoreForge',desc:'E-commerce IA. Boutique en 5 min. Descriptions IA, chatbot WEVIA, paiement Maroc.',price:'0-$29/mo',url:'/products/storeforge.html',category:'Commerce'},
leadforge: {name:'LeadForge',desc:'B2B Lead Intelligence sur mesure. Leads vérifiés tous secteurs. 0.30-0.$50/lead.',price:'0.30-0.$49/lead',url:'/products/workspace.html',category:'Data'},
mailwarm: {name:'MailWarm',desc:'Optimisation email automatique. 500+ seeds. Inbox 90%+ en 4-6 semaines.',price:'$29/compte/mo',url:'/products/workspace.html',category:'Email'},
sentinel: {name:'Sentinel Monitor',desc:'Cyber monitoring PME - SSL, ports, DNS, OWASP. Alertes Telegram.',price:'Gratuit + Pro $49/mo',url:'/products/workspace.html',category:'Security'},
outreachai: {name:'OutreachAI',desc:'Cold outreach IA. Upload leads -> IA personnalisé, envoi -> tracking.',price:'$199/mo',url:'/products/workspace.html',category:'Email'},
wevia: {name:'WEVIA White-Label',desc:'Chatbot IA clé en main. Widget embed 5 min. KB custom, memoire, vision.',price:'100-$299/mo',url:'/products/wevia-whitelabel.html',category:'IA'},
emailverify: {name:'EmailVerify',desc:'Validation email temps réel MX+SMTP+disposable.',price:'$49/mo',url:'/products/workspace.html',category:'Email Intelligence'},
blacklistguard: {name:'BlacklistGuard',desc:'Monitoring 100+ listes de blocage RBL + alertes.',price:'$29/mo',url:'/products/workspace.html',category:'Email Intelligence'},
reputationai: {name:'RéputationAI',desc:'Score réputation domaine + historique.',price:'$39/mo',url:'/products/workspace.html',category:'Email Intelligence'},
copyai: {name:'CopyAI WEVAL',desc:'Copywriting IA - emails, sujets, CTA. Cloud souveraine.',price:'$39/mo',url:'/products/workspace.html',category:'IA'},
dataharvest: {name:'DataInsight',desc:'Intelligence d\'enrichissement de donn\u00e9es B2B.',price:'$99/mo',url:'/products/workspace.html',category:'Data'},
smsforge: {name:'SMSForge',desc:'SMS marketing international (190+ pays).',price:'$49/mo',url:'/products/workspace.html',category:'Marketing'},
adscontrol: {name:'AdsControl',desc:'Multi-channel ads FB/Google/LinkedIn/TikTok.',price:'$99/mo',url:'/products/workspace.html',category:'Marketing'},
wevalcrm: {name:'WEVAL CRM',desc:'CRM leger pipeline + contacts + IA.',price:'Gratuit + Pro $29/mo',url:'/products/workspace.html',category:'Business'},
canvasai: {name:'CanvasAI',desc:'Design IA - visuels, bannieres, logos.',price:'$29/mo',url:'/products/workspace.html',category:'IA'},
devforge: {name:'DevForge AI',desc:'12 modules dev: specs, tests, code gen, API design, security review.',price:'$199/mo',url:'/products/workspace.html',category:'Dev'},
ethica: {name:'Ethica B2B',desc:'Plateforme HCP internationale. 5775+ medecins vérifiés.',price:'$299/mo',url:'/products/workspace.html',category:'Data'},
arsenal: {name:'Arsenal Framework',desc:'150+ ecrans. ERP Intelligence, Brain Engine, moteur envoi. Enterprise.',price:'2000-$9,999/mo',url:'/products/arsenal.html',category:'Flagship'},
wevads: {name:'WEVADS Platform',desc:'Infrastructure email complete. Brain Engine des centaines de configurations. 6.65M contacts.',price:'Enterprise',url:'/products/wevads.html',category:'Flagship'},
};
function getProductList() {
return Object.values(PRODUCTS_KB).map(p => `<b>${p.name}</b> - ${p.desc} (<a href="${p.url}">${p.price}</a>)`).join('<br><br>');
}
function findProducts(query) {
const q = query.toLowerCase();
const matches = [];
const keywords = {
email: ['deliVerscore','emailverify','blacklistguard','reputationai','mailwarm','outreachai'],
ia: ['gpu','contentfactory','proposalai','blueprintai','copyai','canvasai','devforge','wevia'],
data: ['medreach','leadforge','dataharvest','ethica'],
security: ['sentinel','blacklistguard'],
ecommerce: ['storeforge'],
marketing: ['smsforge','adscontrol','outreachai'],
crm: ['wevalcrm'],
sap: ['arsenal'],
enterprise: ['arsenal','wevads','wevia'],
gratuit: [],
prix: [],
maroc: ['medreach','ethica','smsforge','storeforge'],
};
for (const [kw, ids] of Object.entries(keywords)) {
if (q.includes(kw)) ids.forEach(id => { if (!matches.includes(id)) matches.push(id); });
}
// Also search in product names and descriptions
for (const [id, p] of Object.entries(PRODUCTS_KB)) {
if (p.name.toLowerCase().includes(q) || p.desc.toLowerCase().includes(q) || p.category.toLowerCase().includes(q)) {
if (!matches.includes(id)) matches.push(id);
}
}
return matches.map(id => PRODUCTS_KB[id]).filter(Boolean);
}
function botReply(userMsg) {
const q = userMsg.toLowerCase();
// Greetings
if (/^(bonjour|salut|hello|hi|hey|coucou)/.test(q)) {
return `Bonjour ! Je suis l'assistant WEVAL. Nous avons <b>62 produits SaaS</b> en production. Comment puis-je vous aider ?<div class="quick-btns"><span class="quick-btn" onclick="askBot('Quels sont vos produits?')">Voir les produits</span><span class="quick-btn" onclick="askBot('email délivrabilité')">Email</span><span class="quick-btn" onclick="askBot('intelligence artificielle')">IA</span><span class="quick-btn" onclick="askBot('prix')">Tarifs</span></div>`;
}
// List all
if (/tous|tout|liste|produit|service|catalogue|quoi/.test(q)) {
const cats = {};
Object.values(PRODUCTS_KB).forEach(p => { if (!cats[p.category]) cats[p.category]=[]; cats[p.category].push(p); });
let html = `Voici nos <b>${Object.keys(PRODUCTS_KB).length} produits</b> par categorie :<br><br>`;
for (const [cat, prods] of Object.entries(cats)) {
html += `<b>${cat}</b><br>`;
prods.forEach(p => { html += `&bull; <a href="${p.url}">${p.name}</a> - ${p.price}<br>`; });
html += '<br>';
}
html += `<div class="quick-btns"><span class="quick-btn" onclick="askBot('email')">Email</span><span class="quick-btn" onclick="askBot('IA')">IA</span><span class="quick-btn" onclick="askBot('essayer gratuit')">Gratuit</span></div>`;
return html;
}
// Pricing
if (/prix|tarif|cout|combien|pricing|gratuit|free/.test(q)) {
const free = Object.values(PRODUCTS_KB).filter(p => p.price.toLowerCase().includes('gratuit'));
let html = `<b>Produits avec plan gratuit (${free.length}):</b><br>`;
free.forEach(p => { html += `&bull; <a href="${p.url}">${p.name}</a> - ${p.price}<br>`; });
html += `<br>Tous les prix sont sur <a href="/products/">notre catalogue</a>. Besoin d'un devis personnalisé ?<div class="quick-btns"><span class="quick-btn" onclick="askBot('demo')">Demander une demo</span><span class="quick-btn" onclick="window.location.href='/booking.html'">Nous contacter</span></div>`;
return html;
}
// Demo / essai
if (/demo|essai|tester|try|commencer|start/.test(q)) {
return `Pour commencer gratuitement :<br><br>1. <a href="/products/workspace.html">Ouvrir le Workspace</a> et créer un compte<br>2. Vous aurez acces a tous les produits gratuits<br>3. Testez DeliverScore, WEVIA Inference, Content Factory...<br><br>Ou <a href="#cta">contactez-nous</a> pour une demo personnalisée !<div class="quick-btns"><span class="quick-btn" onclick="window.location.href='/products/workspace.html'">Ouvrir Workspace</span></div>`;
}
// Specific product search
const matches = findProducts(q);
if (matches.length > 0) {
let html = `J'ai trouve <b>${matches.length} produit(s)</b> correspondant :<br><br>`;
matches.slice(0, 6).forEach(p => {
html += `<b><a href="${p.url}">${p.name}</a></b><br>${p.desc}<br><i>${p.price}</i><br><br>`;
});
if (matches.length > 6) html += `...et ${matches.length - 6} autres.<br>`;
html += `<div class="quick-btns"><span class="quick-btn" onclick="window.location.href='${matches[0].url}'">Voir ${matches[0].name}</span><span class="quick-btn" onclick="askBot('prix')">Tarifs</span></div>`;
return html;
}
// Default - suggest contacting or browsing
return `Je n'ai pas trouve de produit spécifique pour "${userMsg}". Nos 62 produits couvrent : Email Intelligence, IA/GPU, Data, Security, Marketing, E-commerce et Dev.<br><br><div class="quick-btns"><span class="quick-btn" onclick="askBot('tous les produits')">Voir tout</span><span class="quick-btn" onclick="window.location.href='/booking.html'">Contacter WEVAL</span><span class="quick-btn" onclick="window.location.href='/products/workspace.html'">Workspace</span></div>`;
}
function toggleBot() {
const p = document.getElementById('weval-bot-panel');
p.classList.toggle('open');
if (p.classList.contains('open') && document.getElementById('weval-bot-msgs').children.length === 0) {
addMsg('bot', `Bonjour ! Je suis l'assistant produits WEVAL. Nous proposons <b>37 SaaS</b> en production. Que recherchez-vous ?<div class="quick-btns"><span class="quick-btn" onclick="askBot('Tous les produits')">Catalogue</span><span class="quick-btn" onclick="askBot('email')">Email</span><span class="quick-btn" onclick="askBot('intelligence artificielle')">IA</span><span class="quick-btn" onclick="askBot('gratuit')">Gratuit</span><span class="quick-btn" onclick="askBot('demo')">Demo</span></div>`);
}
document.getElementById('weval-bot-badge').style.display = 'none';
}
function addMsg(type, html) {
const msgs = document.getElementById('weval-bot-msgs');
const div = document.createElement('div');
div.className = 'bot-msg ' + type;
div.innerHTML = html;
msgs.appendChild(div);
msgs.scrollTop = msgs.scrollHeight;
}
function askBot(q) {
document.getElementById('weval-bot-input').value = q;
sendBot();
}
function sendBot() {
const input = document.getElementById('weval-bot-input');
const msg = input.value.trim();
if (!msg) return;
input.value = '';
addMsg('user', msg);
// Show typing
const msgs = document.getElementById('weval-bot-msgs');
const typing = document.createElement('div');
typing.className = 'bot-typing';
typing.innerHTML = '<span></span><span></span><span></span>';
msgs.appendChild(typing);
msgs.scrollTop = msgs.scrollHeight;
setTimeout(() => {
typing.remove();
addMsg('bot', botReply(msg));
}, 400 + Math.random() * 600);
}
</script>
</div>
<div id="deployModal" style="display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;align-items:center;justify-content:center" onclick="if(event.target===this)this.style.display='none'">
<div style="background:#111827;border:1px solid #1f2937;border-radius:16px;padding:32px;max-width:600px;width:90%;color:#e2e8f0">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:20px">
<h2 style="font-size:20px;font-weight:700;margin:0">Déployer WEVIA sur votre site</h2>
<span style="cursor:pointer;font-size:24px;color:#9ca3af" onclick="this.closest('#deployModal').style.display='none'">&times;</span>
</div>
<p style="color:#9ca3af;font-size:14px;margin-bottom:16px">Copiez ce code et collez-le avant la balise <code style="background:#1f2937;padding:2px 6px;border-radius:4px">&lt;/body&gt;</code> de votre site.</p>
<div style="background:#0a0d14;border:1px solid #1f2937;border-radius:8px;padding:16px;font-family:monospace;font-size:12px;line-height:1.6;color:#22c55e;position:relative">
<button onclick="navigator.clipboard.writeText(document.getElementById('embedCode').textContent);this.textContent='Copié !';setTimeout(()=>this.textContent='Copier',2000)" style="position:absolute;top:8px;right:8px;background:#3b82f6;color:#fff;border:none;padding:5px 12px;border-radius:6px;font-size:11px;cursor:pointer">Copier</button>
<pre id="embedCode" style="margin:0;white-space:pre-wrap;word-break:break-all">&lt;script src="https://weval-consulting.com/wevia-widget-embed.js"
data-api-key="VOTRE_CLE_API"
data-position="bottom-right"
data-theme="auto"&gt;&lt;/script&gt;</pre>
</div>
<div style="margin-top:16px;display:flex;gap:8px">
<a href="/products/workspace.html" style="flex:1;text-align:center;padding:10px;background:#1f2937;color:#e2e8f0;border-radius:8px;font-size:13px;text-decoration:none">Obtenir une clé API</a>
<a href="/wevia-ia/wevia.html" target="_blank" style="flex:1;text-align:center;padding:10px;background:#3b82f6;color:#fff;border-radius:8px;font-size:13px;text-decoration:none">Tester live</a>
</div>
<p style="color:#6b7280;font-size:11px;margin-top:12px;text-align:center">Widget léger (54KB) · Cloud souverain · Vos données restent chez vous</p>
</div>
</div>
<style>
.enrich-trust{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;padding:1.5rem 4%;background:rgba(255,255,255,.02);border-top:1px solid rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.04);margin:2rem 0}
.enrich-trust-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5}.enrich-trust-item strong{color:#edf2f7}
.enrich-stats{display:flex;gap:3rem;justify-content:center;padding:2rem 4%;margin:1rem 0}.enrich-stat{text-align:center}.enrich-stat .v{font-family:"Space Mono",monospace;font-size:1.5rem;font-weight:700}.enrich-stat .l{font-size:.72rem;color:#7a8ba5;margin-top:.2rem}
.enrich-chat{max-width:800px;margin:3rem auto;padding:0 4%}.enrich-chat-box{background:#0c1222;border:1px solid rgba(255,255,255,.06);border-radius:14px;overflow:hidden}
.enrich-chat-hd{padding:.8rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:.6rem;font-size:.9rem;font-weight:600}
.enrich-chat-msgs{min-height:200px;max-height:350px;overflow-y:auto;padding:1rem}.enrich-chat-empty{text-align:center;padding:2rem;color:#7a8ba5;font-size:.82rem}
.enrich-sug{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin-top:.8rem}
.enrich-sug button{padding:.35rem .7rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:16px;color:#edf2f7;font-size:.72rem;cursor:pointer;font-family:"Outfit"}
.enrich-input{padding:.8rem 1.2rem;border-top:1px solid rgba(255,255,255,.06);display:flex;gap:.5rem}
.enrich-input textarea{flex:1;resize:none;min-height:36px;max-height:100px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);color:#edf2f7;border-radius:8px;padding:.5rem .7rem;font-family:"Outfit";font-size:.82rem;outline:none}
.enrich-input button{background:#8b5cf6;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:700;cursor:pointer;font-family:"Outfit";font-size:.82rem}
.msg-eu{background:rgba(255,255,255,.05);border-radius:8px 8px 2px 8px;padding:.5rem .8rem;margin:6px 0;max-width:70%;margin-left:auto;font-size:.82rem;color:#edf2f7}
.msg-ea{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.04);border-radius:2px 8px 8px 8px;padding:.6rem .9rem;margin:6px 0;max-width:85%;font-size:.82rem;color:#edf2f7;line-height:1.6}
.msg-ea strong{color:#fff}.msg-ea pre{background:rgba(0,0,0,.3);padding:.5rem;border-radius:6px;font-size:.75rem;margin:.4rem 0;overflow-x:auto}
.enrich-ld{display:inline-block;width:6px;height:6px;border-radius:50%;background:#8b5cf6;margin:0 2px;animation:ep .8s infinite}
.enrich-ld:nth-child(2){animation-delay:.2s}.enrich-ld:nth-child(3){animation-delay:.4s}
@keyframes ep{0%,100%{opacity:1}50%{opacity:.3}}
</style>
<div class="enrich-trust">
<div class="enrich-trust-item"><strong>44</strong> produits SaaS</div>
<div class="enrich-trust-item"><strong>Cloud</strong> souverain</div>
<div class="enrich-trust-item"><strong>API</strong> REST</div>
<div class="enrich-trust-item"><strong>RGPD</strong> conforme</div>
<div class="enrich-trust-item"><strong>France</strong> · Maroc · États-Unis · International</div>
</div>
<div class="enrich-chat">
<div class="enrich-chat-box" style="--enrichcolor:#8b5cf6">
<div class="enrich-chat-hd"><span style="color:#8b5cf6"></span> WEVIA Enterprise — Assistant IA</div>
<div class="enrich-chat-msgs" id="echat-msgs">
<div class="enrich-chat-empty" id="echat-empty">
Posez votre question sur WEVIA Enterprise
<div class="enrich-sug">
<button onclick="esg('Quelles sont les fonctionnalités principales ?')">Fonctionnalités</button>
<button onclick="esg('Quels sont les tarifs ?')">Tarifs</button>
<button onclick="esg('Comment ca marche ?')">Comment ca marche</button>
</div></div></div>
<div class="enrich-input"><textarea id="echat-i" rows="1" placeholder="Posez votre question..." onkeydown="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();esend()}"></textarea><button onclick="esend()">Envoyer</button></div>
</div></div>
<script>
var ectx="Tu es WEVIA Enterprise, assistant IA souverain pour entreprises. RAG, knowledge base, GPU prive, API.";var ehist=[];
function eesc(s){var d=document.createElement("div");d.textContent=s;return d.innerHTML}
function emd(m){return m.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/`(.*?)`/g,"<code>$1</code>").replace(/\n\n/g,"<br><br>")}
function esg(q){document.getElementById("echat-i").value=q;esend()}
async function esend(){var i=document.getElementById("echat-i"),m=i.value.trim();if(!m)return;var a=document.getElementById("echat-msgs"),es=document.getElementById("echat-empty");if(es)es.remove();a.innerHTML+='<div class="msg-eu">'+eesc(m)+'</div>';i.value="";a.scrollTop=a.scrollHeight;var lid="el"+Date.now();a.innerHTML+='<div class="msg-ea" id="'+lid+'"><span class="enrich-ld"></span><span class="enrich-ld"></span><span class="enrich-ld"></span></div>';a.scrollTop=a.scrollHeight;try{ehist.push({role:"user",content:m});var r=await fetch("/api/weval-ia-fast.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:"[INSTRUCTION SYSTEME: "+ectx+"]\n\nDemande utilisateur: "+m,mode:"full",history:ehist.slice(-6)})});var j=await r.json();var rp=j.response||j.error||"Erreur";ehist.push({role:"assistant",content:rp});var el=document.getElementById(lid);if(el)el.outerHTML='<div class="msg-ea">'+emd(rp)+"</div>";}catch(ex){var el=document.getElementById(lid);if(el)el.innerHTML="Erreur: "+ex.message;}a.scrollTop=a.scrollHeight;}
</script>
</body></html>
<!-- WEVAL Self-Service Inject -->
<script>
if(window===window.top){
// Replace all contact mailto links with signup portal
document.querySelectorAll('a[href*="mailto:"]').forEach(a => {
if(a.classList.contains('btn-p') || a.classList.contains('btn-f') || a.classList.contains('btn-n') || a.classList.contains('btn-nav') || a.classList.contains('btn-primary') || a.classList.contains('btn-price-fill') || a.textContent.includes('Commencer') || a.textContent.includes('Commander') || a.textContent.includes('Essayer') || a.textContent.includes('Souscrire') || a.textContent.includes('Créer') || a.textContent.includes('Obtenir') || a.textContent.includes('Démarrer') || a.textContent.includes('Rejoindre')) {
a.href = '/products/workspace.html';
a.removeAttribute('target');
}
});
// Add floating CTA
const bar = document.createElement('div');
bar.innerHTML = '<div style="position:fixed;bottom:0;left:0;right:0;z-index:999;background:rgba(5,8,15,0.95);backdrop-filter:blur(10px);border-top:1px solid rgba(0,201,167,0.15);padding:0.6rem 4%;display:flex;justify-content:space-between;align-items:center"><div style="font-size:0.82rem;color:#7a8ba5"><strong style="color:#edf2f7">WEVAL Products</strong> · <span style="color:#00c9a7">Self-service</span> · Inscription en 30 secondes</div><a href="/products/workspace.html" style="background:#00c9a7;color:#05080f;padding:0.5rem 1.2rem;border-radius:6px;font-weight:700;font-size:0.82rem;text-decoration:none">Créer mon compte gratuit →</a></div>';
if(window.self===window.top){document.body.appendChild(bar);}
document.body.style.paddingBottom = '52px';
}
</script>