Files
html/products/medreach.html
2026-04-12 22:57:03 +02:00

1227 lines
57 KiB
HTML

<!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>MedReach — Base Mondiale de Professionnels de Santé</title>
<meta name="description" content="MedReach — Base Mondiale de Professionnels de Santé - Solutions IA souveraines pour entreprises">
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--deep: #0a1628;
--navy: #0f2140;
--teal: #00c9a7;
--teal-glow: rgba(0,201,167,0.15);
--ice: #e8f9f5;
--white: #ffffff;
--silver: #8a98ad;
--gold: #f0c674;
--coral: #ff6b6b;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
font-family: 'Outfit', sans-serif;
background: var(--deep);
color: var(--white);
overflow-x: hidden;
}
/* ─── GRAIN OVERLAY ─── */
body::before {
content: '';
position: fixed;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 1000;
}
/* ─── NAV ─── */
nav {
position: fixed;
top: 0;
width: 100%;
padding: 1.2rem 4%;
display: flex;
justify-content: space-between;
align-items: center;
z-index: 100;
backdrop-filter: blur(20px);
background: rgba(10,22,40,0.7);
border-bottom: 1px solid rgba(0,201,167,0.08);
}
.logo {
font-family: 'DM Serif Display', serif;
font-size: 1.6rem;
letter-spacing: -0.02em;
}
.logo span { color: var(--teal); }
.nav-links { display: flex; gap: 2rem; align-items: center; }
.nav-links a {
color: var(--silver);
text-decoration: none;
font-size: 0.9rem;
font-weight: 500;
transition: color 0.3s;
}
.nav-links a:hover { color: var(--teal); }
.btn-nav {
background: var(--teal);
color: var(--deep);
padding: 0.6rem 1.4rem;
border-radius: 6px;
font-weight: 600;
font-size: 0.85rem;
text-decoration: none;
transition: all 0.3s;
}
.btn-nav:hover { background: #00e6be; transform: translateY(-1px); }
/* ─── HERO ─── */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
padding: 8rem 4% 4rem;
position: relative;
}
.hero::after {
content: '';
position: absolute;
top: -20%;
right: -10%;
width: 700px;
height: 700px;
background: radial-gradient(circle, rgba(0,201,167,0.08) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
}
.hero-grid {
display: grid;
grid-template-columns: 1.1fr 0.9fr;
gap: 4rem;
max-width: 1240px;
margin: 0 auto;
align-items: center;
}
.hero-tag {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: var(--teal-glow);
border: 1px solid rgba(0,201,167,0.25);
border-radius: 100px;
padding: 0.35rem 1rem;
font-size: 0.78rem;
font-weight: 500;
color: var(--teal);
margin-bottom: 1.5rem;
animation: fadeIn 0.8s ease;
}
.hero-tag::before {
content: '';
width: 6px;
height: 6px;
background: var(--teal);
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
h1 {
font-family: 'DM Serif Display', serif;
font-size: 3.6rem;
line-height: 1.08;
letter-spacing: -0.03em;
margin-bottom: 1.5rem;
animation: fadeUp 0.8s ease;
}
h1 em {
font-style: italic;
color: var(--teal);
}
.hero-desc {
font-size: 1.15rem;
line-height: 1.7;
color: var(--silver);
max-width: 520px;
margin-bottom: 2.5rem;
animation: fadeUp 0.8s 0.15s ease both;
}
.hero-actions {
display: flex;
gap: 1rem;
animation: fadeUp 0.8s 0.3s ease both;
}
.btn-primary {
background: var(--teal);
color: var(--deep);
padding: 0.9rem 2rem;
border-radius: 8px;
font-weight: 600;
font-size: 1rem;
text-decoration: none;
transition: all 0.3s;
display: inline-flex;
align-items: center;
gap: 0.5rem;
border: none;
cursor: pointer;
}
.btn-primary:hover { background: #00e6be; transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0,201,167,0.25); }
.btn-outline {
background: transparent;
color: var(--white);
padding: 0.9rem 2rem;
border-radius: 8px;
font-weight: 500;
font-size: 1rem;
text-decoration: none;
border: 1px solid rgba(255,255,255,0.15);
transition: all 0.3s;
}
.btn-outline:hover { border-color: var(--teal); color: var(--teal); }
/* ─── HERO VISUAL — API Preview ─── */
.api-preview {
background: rgba(15,33,64,0.6);
border: 1px solid rgba(0,201,167,0.12);
border-radius: 14px;
overflow: hidden;
backdrop-filter: blur(10px);
animation: fadeIn 1s 0.4s ease both;
box-shadow: 0 30px 80px rgba(0,0,0,0.4);
}
.api-bar {
padding: 0.8rem 1.2rem;
background: rgba(0,0,0,0.3);
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.75rem;
color: var(--silver);
}
.dot { width: 10px; height: 10px; border-radius: 50%; }
.dot-r { background: #ff5f57; }
.dot-y { background: #febc2e; }
.dot-g { background: #28c840; }
.api-bar span { margin-left: auto; font-family: monospace; font-size: 0.7rem; color: rgba(255,255,255,0.3); }
.api-code {
padding: 1.5rem;
font-family: 'Courier New', monospace;
font-size: 0.82rem;
line-height: 1.8;
overflow-x: auto;
}
.c-key { color: var(--teal); }
.c-str { color: var(--gold); }
.c-num { color: var(--coral); }
.c-comment { color: rgba(138,152,173,0.5); font-style: italic; }
/* ─── STATS BAR ─── */
.stats-bar {
max-width: 1240px;
margin: -2rem auto 0;
padding: 0 4%;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1px;
background: rgba(0,201,167,0.06);
border-radius: 14px;
overflow: hidden;
position: relative;
z-index: 2;
}
.stat-item {
padding: 2rem;
text-align: center;
background: var(--navy);
}
.stat-num {
font-family: 'DM Serif Display', serif;
font-size: 2.4rem;
color: var(--teal);
margin-bottom: 0.3rem;
}
.stat-label {
font-size: 0.82rem;
color: var(--silver);
font-weight: 400;
}
/* ─── SECTION ─── */
section {
padding: 6rem 4%;
max-width: 1240px;
margin: 0 auto;
}
.section-tag {
display: inline-block;
font-size: 0.72rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.15em;
color: var(--teal);
margin-bottom: 1rem;
}
h2 {
font-family: 'DM Serif Display', serif;
font-size: 2.6rem;
line-height: 1.15;
letter-spacing: -0.02em;
margin-bottom: 1rem;
}
.section-desc {
font-size: 1.05rem;
color: var(--silver);
max-width: 560px;
line-height: 1.7;
margin-bottom: 3rem;
}
/* ─── FEATURES ─── */
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
}
.feature-card {
background: rgba(15,33,64,0.5);
border: 1px solid rgba(0,201,167,0.08);
border-radius: 14px;
padding: 2rem;
transition: all 0.4s;
}
.feature-card:hover {
border-color: rgba(0,201,167,0.25);
transform: translateY(-4px);
box-shadow: 0 20px 50px rgba(0,0,0,0.3);
}
.feature-icon {
width: 48px;
height: 48px;
background: var(--teal-glow);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.4rem;
margin-bottom: 1.2rem;
}
.feature-card h3 {
font-size: 1.15rem;
font-weight: 600;
margin-bottom: 0.6rem;
}
.feature-card p {
font-size: 0.9rem;
color: var(--silver);
line-height: 1.6;
}
/* ─── COVERAGE MAP ─── */
.coverage {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: center;
}
.country-list { display: flex; flex-direction: column; gap: 1rem; }
.country-row {
display: flex;
align-items: center;
gap: 1rem;
padding: 1.2rem 1.5rem;
background: rgba(15,33,64,0.5);
border: 1px solid rgba(0,201,167,0.06);
border-radius: 12px;
transition: all 0.3s;
}
.country-row:hover { border-color: rgba(0,201,167,0.2); }
.country-flag {
font-size: 2rem;
width: 48px;
text-align: center;
}
.country-info { flex: 1; }
.country-name { font-weight: 600; font-size: 1rem; }
.country-count { font-size: 0.82rem; color: var(--silver); }
.country-bar {
height: 4px;
background: rgba(0,201,167,0.15);
border-radius: 4px;
margin-top: 0.4rem;
overflow: hidden;
}
.country-bar-fill {
height: 100%;
background: var(--teal);
border-radius: 4px;
transition: width 1.5s ease;
}
/* ─── PRICING ─── */
.pricing-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
}
.price-card {
background: rgba(15,33,64,0.5);
border: 1px solid rgba(0,201,167,0.08);
border-radius: 16px;
padding: 2.5rem 2rem;
transition: all 0.4s;
position: relative;
}
.price-card.featured {
border-color: var(--teal);
background: rgba(0,201,167,0.05);
}
.price-card.featured::before {
content: 'POPULAIRE';
position: absolute;
top: -12px;
left: 50%;
transform: translateX(-50%);
background: var(--teal);
color: var(--deep);
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.1em;
padding: 0.3rem 1rem;
border-radius: 100px;
}
.price-card:hover { transform: translateY(-4px); }
.price-name {
font-size: 0.85rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--silver);
margin-bottom: 1rem;
}
.price-amount {
font-family: 'DM Serif Display', serif;
font-size: 3rem;
margin-bottom: 0.2rem;
}
.price-amount span {
font-size: 1rem;
color: var(--silver);
font-family: 'Outfit', sans-serif;
}
.price-desc {
font-size: 0.85rem;
color: var(--silver);
margin-bottom: 2rem;
padding-bottom: 2rem;
border-bottom: 1px solid rgba(255,255,255,0.06);
}
.price-features {
list-style: none;
display: flex;
flex-direction: column;
gap: 0.8rem;
margin-bottom: 2rem;
}
.price-features li {
font-size: 0.9rem;
color: var(--silver);
display: flex;
align-items: center;
gap: 0.6rem;
}
.price-features li::before {
content: '✓';
color: var(--teal);
font-weight: 700;
font-size: 0.85rem;
}
.btn-price {
display: block;
text-align: center;
padding: 0.85rem;
border-radius: 8px;
font-weight: 600;
font-size: 0.9rem;
text-decoration: none;
transition: all 0.3s;
}
.btn-price-outline {
border: 1px solid rgba(255,255,255,0.15);
color: var(--white);
}
.btn-price-outline:hover { border-color: var(--teal); color: var(--teal); }
.btn-price-fill {
background: var(--teal);
color: var(--deep);
}
.btn-price-fill:hover { background: #00e6be; }
/* ─── USE CASES ─── */
.use-cases-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1.5rem;
}
.use-case {
padding: 2rem;
background: rgba(15,33,64,0.5);
border: 1px solid rgba(0,201,167,0.08);
border-radius: 14px;
display: flex;
gap: 1.5rem;
align-items: flex-start;
transition: all 0.3s;
}
.use-case:hover { border-color: rgba(0,201,167,0.2); }
.use-case-icon {
width: 44px;
height: 44px;
min-width: 44px;
background: var(--teal-glow);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.2rem;
}
.use-case h3 { font-size: 1.05rem; font-weight: 600; margin-bottom: 0.4rem; }
.use-case p { font-size: 0.88rem; color: var(--silver); line-height: 1.6; }
/* ─── CTA ─── */
.cta-section {
text-align: center;
padding: 5rem 2rem;
background: rgba(0,201,167,0.04);
border: 1px solid rgba(0,201,167,0.1);
border-radius: 20px;
margin: 2rem auto 4rem;
max-width: 1240px;
}
.cta-section h2 { margin-bottom: 1rem; }
.cta-section p { color: var(--silver); margin: 0 auto 2rem; max-width: 500px; }
/* ─── FOOTER ─── */
footer {
padding: 3rem 4%;
max-width: 1240px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
border-top: 1px solid rgba(255,255,255,0.06);
font-size: 0.82rem;
color: var(--silver);
}
footer a { color: var(--teal); text-decoration: none; }
/* ─── ANIMATIONS ─── */
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
/* ─── RESPONSIVE ─── */
@media (max-width: 900px) {
.hero-grid { grid-template-columns: 1fr; }
h1 { font-size: 2.5rem; }
.features-grid, .pricing-grid { grid-template-columns: 1fr; }
.stats-bar { grid-template-columns: repeat(2, 1fr); }
.coverage { grid-template-columns: 1fr; }
.use-cases-grid { grid-template-columns: 1fr; }
.nav-links { display: none; }
.api-preview { margin-top: 2rem; }
footer { flex-direction: column; gap: 1rem; text-align: center; }
}
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/medreach.html">
<meta property="og:title" content="MedReach — Base Mondiale de Professionnels de Santé">
<meta property="og:description" content="MedReach — Base Mondiale de Professionnels de Santé - Solutions IA souveraines pour entreprises">
<meta property="og:url" content="https://weval-consulting.com/products/medreach.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="MedReach — Base Mondiale de Professionnels de Santé">
<meta name="twitter:description" content="MedReach — Base Mondiale de Professionnels de Santé - Solutions IA souveraines pour entreprises">
<link rel="alternate" hreflang="fr" href="https://weval-consulting.com/products/medreach.html">
<link rel="alternate" hreflang="x-default" href="https://weval-consulting.com/products/medreach.html">
<link rel="stylesheet" href="/assets/dark-iframe.css"></head>
<body>
<!-- NAV -->
<nav>
<div class="logo" style="display:flex;align-items:center;gap:8px"><img src="/assets/logo-medreach.svg" alt="" style="width:32px;height:32px">Med<span>Reach</span></div>
<div class="nav-links">
<a href="#features">Fonctionnalités</a>
<a href="#coverage">Couverture</a>
<a href="#pricing">Tarifs</a>
<a href="#usecases">Cas d'usage</a>
<a href="#cta" class="btn-nav">Commencer →</a></div></nav>
<!-- HERO -->
<section class="hero">
<div class="hero-grid">
<div>
<div class="hero-tag">Base vérifiée — Données Google-checkable</div>
<h1>Accédez aux <em>professionnels de santé</em> dans 30+ pays</h1>
<p class="hero-desc">
La base B2B de médecins vérifiés couvrant 30+ pays : Europe · Maroc · International, Asie, Amériques.
Chaque contact est réel, sourcé et enrichi — téléphone, email, spécialité, ville.
</p>
<div class="hero-actions">
<a href="#pricing" class="btn-primary">Voir les tarifs →</a>
<a href="#features" class="btn-outline">Explorer l'API</a></div></div>
<div class="api-preview">
<div class="api-bar">
<div class="dot dot-r"></div>
<div class="dot dot-y"></div>
<div class="dot dot-g"></div>
<span>GET /api/medreach/search</span></div>
<div class="api-code">
<span class="c-comment">// Recherche médecins — Cardiologues à Paris</span><br>
{<br>
&nbsp;&nbsp;<span class="c-key">"query"</span>: {<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"speciality"</span>: <span class="c-str">"Cardiologie"</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"city"</span>: <span class="c-str">"Paris"</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"country"</span>: <span class="c-str">"FR"</span><br>
&nbsp;&nbsp;},<br>
&nbsp;&nbsp;<span class="c-key">"results"</span>: <span class="c-num">47</span>,<br>
&nbsp;&nbsp;<span class="c-key">"data"</span>: [<br>
&nbsp;&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"name"</span>: <span class="c-str">"Dr. Marie Laurent"</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"phone"</span>: <span class="c-str">"+33 1XX-XXXXXX"</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"email"</span>: <span class="c-str">"m.laur●●●@gmail.com"</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"vérifiéd"</span>: <span class="c-num">true</span>,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="c-key">"source"</span>: <span class="c-str">"Annuaire Santé"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;]<br>
}
</div></div></div></section>
<!-- STATS -->
<div class="stats-bar">
<div class="stat-item">
<div class="stat-num">International</div>
<div class="stat-label">Médecins vérifiés</div></div>
<div class="stat-item">
<div class="stat-num">3</div>
<div class="stat-label">Pays couverts</div></div>
<div class="stat-item">
<div class="stat-num">50+</div>
<div class="stat-label">Spécialités</div></div>
<div class="stat-item">
<div class="stat-num">99%</div>
<div class="stat-label">Taux de vérification</div></div></div>
<!-- FEATURES -->
<section id="features">
<div class="section-tag">Fonctionnalités</div>
<h2>Données de qualité<br>pharmaceutique</h2>
<p class="section-desc">
Chaque fiche est extraite de sources publiques vérifiables, enrichie et validée.
Zéro donnée synthétique.
</p>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.35-4.35"/></svg></div>
<h3>Recherche avancée</h3>
<p>Filtrez par spécialité, ville, pays, source. Résultats instantanés via API REST ou dashboard.</p></div>
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l8 4v6c0 5.5-3.8 10.7-8 12-4.2-1.3-8-6.5-8-12V6l8-4z"/><path d="M9 12l2 2 4-4"/></svg></div>
<h3>Données vérifiées</h3>
<p>Chaque médecin est sourcé depuis Annuaire Santé, Health Directory, Tunisie-Médicale — vérifiable sur Google.</p></div>
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.35-4.35"/><path d="M8 11h6M11 8v6"/></svg></div>
<h3>Export flexible</h3>
<p>JSON, CSV, Excel. Intégration directe dans votre CRM ou outil marketing.</p></div>
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0110 0v4"/><circle cx="12" cy="16" r="1" fill="currentColor"/></svg></div>
<h3>API sécurisée</h3>
<p>Authentification par clé API, rate limiting, HTTPS. Conformité RGPD et données publiques.</p></div>
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 4v6h-6"/><path d="M1 20v-6h6"/><path d="M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15"/></svg></div>
<h3>Mise à jour continue</h3>
<p>Collecte intelligente multi-sources. Nouvelles fiches ajoutées chaque semaine.</p></div>
<div class="feature-card">
<div class="feature-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg></div>
<h3>Segmentation fine</h3>
<p>Ciblez les dermatologues de Rabat ou les pédiatres d'Alger. Précision ville + spécialité.</p></div></div></section>
<!-- COVERAGE -->
<section id="coverage">
<div class="section-tag">Couverture</div>
<h2>12+ marchés,<br>une seule API</h2>
<p class="section-desc">
La couverture la plus complète de professionnels de santé vérifiés dans le monde.
</p>
<div class="coverage">
<div class="country-list">
<div class="country-row">
<div class="country-flag">🇲🇦</div>
<div class="country-info">
<div class="country-name">Maroc</div>
<div class="country-count">Base vérifiée et enrichie</div>
<div class="country-bar"><div class="country-bar-fill" style="width:85%"></div></div></div></div>
<div class="country-row">
<div class="country-flag">🇹🇳</div>
<div class="country-info">
<div class="country-name">Tunisie</div>
<div class="country-count">Base vérifiée et enrichie</div>
<div class="country-bar"><div class="country-bar-fill" style="width:35%"></div></div></div></div>
<div class="country-row">
<div class="country-flag">🇩🇿</div>
<div class="country-info">
<div class="country-name">Algérie</div>
<div class="country-count">Couverture nationale</div>
<div class="country-bar"><div class="country-bar-fill" style="width:22%"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">EG</div>
<div class="country-info">
<div class="country-name">Égypte</div>
<div class="country-count">Expansion en cours</div>
<div class="country-bar"><div class="country-bar-fill" style="width:12%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">TR</div>
<div class="country-info">
<div class="country-name">Turquie</div>
<div class="country-count">Expansion en cours</div>
<div class="country-bar"><div class="country-bar-fill" style="width:10%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">FR</div>
<div class="country-info">
<div class="country-name">France</div>
<div class="country-count">Expansion en cours</div>
<div class="country-bar"><div class="country-bar-fill" style="width:8%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">SA</div>
<div class="country-info">
<div class="country-name">Arabie Saoudite</div>
<div class="country-count">Expansion en cours</div>
<div class="country-bar"><div class="country-bar-fill" style="width:6%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">AE</div>
<div class="country-info">
<div class="country-name">Émirats (UAE)</div>
<div class="country-count">Expansion planifiée</div>
<div class="country-bar"><div class="country-bar-fill" style="width:5%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">LB</div>
<div class="country-info">
<div class="country-name">Liban</div>
<div class="country-count">Expansion planifiée</div>
<div class="country-bar"><div class="country-bar-fill" style="width:4%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">LY</div>
<div class="country-info">
<div class="country-name">Libye</div>
<div class="country-count">Expansion en cours</div>
<div class="country-bar"><div class="country-bar-fill" style="width:3%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">ES</div>
<div class="country-info">
<div class="country-name">Espagne</div>
<div class="country-count">Expansion planifiée</div>
<div class="country-bar"><div class="country-bar-fill" style="width:3%;background:var(--gold)"></div></div></div></div>
<div class="country-row">
<div class="country-flag" style="font-size:2rem">SN</div>
<div class="country-info">
<div class="country-name">Sénégal</div>
<div class="country-count">Expansion planifiée</div>
<div class="country-bar"><div class="country-bar-fill" style="width:2%;background:var(--gold)"></div></div></div></div>
</div>
<div>
<div class="feature-card" style="margin-bottom:1rem;">
<h3 style="color:var(--gold); margin-bottom:0.8rem;">Prochainement</h3>
<p>Phase 1 : Afrique & International — live.<br>Phase 2 : Europe — en cours.<br>Phase 3 : Amériques & Asie — planifié.<br>Objectif : <strong style="color:var(--teal)">une couverture internationale de professionnels de santé</strong> sur 30+ marchés.</p></div>
<div class="feature-card">
<h3 style="margin-bottom:0.8rem;">Spécialités couvertes</h3>
<p>Cardiologie, Dermatologie, Pédiatrie, Gynécologie, Ophtalmologie, ORL, Gastro-entérologie, Neurologie, Pneumologie, Médecine Générale, et 40+ autres.</p></div></div></div></section>
<!-- PRICING -->
<section id="pricing">
<div style="text-align:center; margin-bottom:3rem;">
<div class="section-tag">Tarifs</div>
<h2>Simple, transparent,<br>sans engagement</h2>
<p class="section-desc" style="margin:1rem auto 0; max-width:480px;">
Payez uniquement pour ce que vous utilisez. Tous les plans incluent l'accès API complet.
</p></div>
<div class="pricing-grid">
<div class="price-card">
<div class="price-name">Starter</div>
<div class="price-amount">$299 <span>/mo</span></div>
<p class="price-desc">Pour tester et valider votre cas d'usage</p>
<ul class="price-features">
<li>500 fiches / mois</li>
<li>API REST complète</li>
<li>Export CSV & JSON</li>
<li>Support email</li>
<li>1 clé API</li></ul>
<a href="#cta" class="btn-price btn-price-outline">Commencer</a></div>
<div class="price-card featured">
<div class="price-name">Professional</div>
<div class="price-amount">$800 <span>/mo</span></div>
<p class="price-desc">Pour les équipes marketing pharma</p>
<ul class="price-features">
<li>2,000 fiches / mois</li>
<li>API REST complète</li>
<li>Export tous formats</li>
<li>Support prioritaire</li>
<li>5 clés API</li>
<li>Filtres avancés</li></ul>
<a href="#cta" class="btn-price btn-price-fill">Commencer</a></div>
<div class="price-card">
<div class="price-name">Enterprise</div>
<div class="price-amount">Sur mesure</div>
<p class="price-desc">Accès illimité + intégrations custom</p>
<ul class="price-features">
<li>Fiches illimitées</li>
<li>API + Webhook</li>
<li>CRM integration</li>
<li>Account manager dédié</li>
<li>SLA 99.9%</li>
<li>Data enrichment custom</li></ul>
<a href="#cta" class="btn-price btn-price-outline">Nous contacter</a></div></div></section>
<!-- USE CASES -->
<section id="usecases">
<div class="section-tag">Cas d'usage</div>
<h2>Qui utilise MedReach ?</h2>
<p class="section-desc">Des équipes pharma, medtech et santé qui veulent toucher les bons professionnels.</p>
<div class="use-cases-grid">
<div class="use-case">
<div class="use-case-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 3h6v3H9z"/><path d="M7 6h10v2a8 8 0 01-3 6.32V21H10v-6.68A8 8 0 017 8V6z"/><circle cx="12" cy="13" r="1.5" fill="currentColor"/></svg></div>
<div>
<h3>Laboratoires Pharmaceutiques</h3>
<p>Ciblez les prescripteurs par spécialité et zone géographique pour vos campagnes de visite médicale ou d'information.</p></div></div>
<div class="use-case">
<div class="use-case-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 4L12 13 2 4"/><path d="M2 20l7-7M22 20l-7-7"/></svg></div>
<div>
<h3>Marketing Digital Pharma — International</h3>
<p>Construisez des listes qualifiées pour vos campagnes d'marketing digital conformes — invitations congrès, webinaires, nouveaux produits.</p></div></div>
<div class="use-case">
<div class="use-case-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="3"/><path d="M8 12h8M12 8v8"/><circle cx="7" cy="7" r="1" fill="currentColor"/><circle cx="17" cy="7" r="1" fill="currentColor"/></svg></div>
<div>
<h3>MedTech & Dispositifs Médicaux</h3>
<p>Identifiez les spécialistes susceptibles d'adopter vos dispositifs — chirurgiens, radiologues, cardiologues interventionnels.</p></div></div>
<div class="use-case">
<div class="use-case-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.35-4.35"/><path d="M8 11h6M11 8v6"/></svg></div>
<div>
<h3>Market Research Santé</h3>
<p>Cartographiez l'offre médicale par ville, spécialité et pays pour vos études de marché internationales.</p></div></div></div></section>
<!-- CTA -->
<div class="cta-section" id="cta">
<div class="section-tag">Démarrer</div>
<h2>Prêt à accéder à la base ?</h2>
<p>Créez votre compte en 2 minutes. Premier export gratuit pour tester la qualité des données.</p>
<div style="display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;">
<a href="/products/workspace.html" class="btn-primary">Demander un accès →</a>
<a href="https://weval-consulting.com" class="btn-outline" target="_blank">En savoir plus sur WEVAL</a></div></div>
<!-- FOOTER -->
<footer>
<div>
<span class="logo" style="font-size:1.1rem;">Med<span>Reach</span></span>
&nbsp;&nbsp;·&nbsp;&nbsp; Un produit <a href="https://weval-consulting.com" target="_blank">WEVAL Consulting</a></div>
<div>France · Maroc · États-Unis · International &nbsp;·&nbsp; contact@weval-consulting.com</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 15000++ professionnels de santé vérifiés dans 30+ pays. 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 fournisseurs 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 international.',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. professionnels de santé 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 centaines de configurations. millions de 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>
<style>
.ev-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);margin:2rem 0}
.ev-trust-i{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:#7a8ba5}.ev-trust-i strong{color:#edf2f7}
.ev-chat{max-width:800px;margin:3rem auto;padding:0 4%}.ev-cb{background:#0c1222;border:1px solid rgba(255,255,255,.06);border-radius:14px;overflow:hidden}
.ev-ch{padding:.8rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.06);font-size:.9rem;font-weight:600}
.ev-cm{min-height:200px;max-height:350px;overflow-y:auto;padding:1rem}.ev-ce{text-align:center;padding:2rem;color:#7a8ba5;font-size:.82rem}
.ev-sg{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin-top:.8rem}
.ev-sg 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}
.ev-ci{padding:.8rem 1.2rem;border-top:1px solid rgba(255,255,255,.06);display:flex;gap:.5rem}
.ev-ci 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}
.ev-ci button{background:#ec4899;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:700;cursor:pointer;font-family:Outfit;font-size:.82rem}
.ev-mu{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}
.ev-ma{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}
.ev-ma strong{color:#fff}
.ev-ld{display:inline-block;width:6px;height:6px;border-radius:50%;background:#ec4899;margin:0 2px;animation:evp .8s infinite}.ev-ld:nth-child(2){animation-delay:.2s}.ev-ld:nth-child(3){animation-delay:.4s}
@keyframes evp{0%,100%{opacity:1}50%{opacity:.3}}
</style>
<div class="ev-trust">
<div class="ev-trust-i"><strong>44</strong> produits SaaS</div>
<div class="ev-trust-i"><strong>Cloud</strong> souverain</div>
<div class="ev-trust-i"><strong>API</strong> REST</div>
<div class="ev-trust-i"><strong>RGPD</strong> conforme</div>
<div class="ev-trust-i"><strong>France</strong> · Maroc · États-Unis · International</div>
</div>
<div class="ev-chat"><div class="ev-cb">
<div class="ev-ch"><span style="color:#ec4899"></span> MedReach — Assistant IA</div>
<div class="ev-cm" id="ev2-msgs"><div class="ev-ce" id="ev2-empty">Posez votre question sur MedReach<div class="ev-sg">
<button onclick="ev2sg('Fonctionnalités principales')">Fonctionnalités</button>
<button onclick="ev2sg('Comment ca marche')">Comment ca marche</button>
<button onclick="ev2sg('Tarifs')">Tarifs</button>
</div></div></div>
<div class="ev-ci"><textarea id="ev2-i" rows="1" placeholder="Votre question..." onkeydown="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();ev2send()}"></textarea><button onclick="ev2send()">Envoyer</button></div>
</div></div>
<script>
var ev2ctx="Tu es MedReach, expert en data medicale et outreach sante. Base HCP, validation RPPS, data enrichment medecins.";var ev2h=[];
function ev2esc(s){var d=document.createElement("div");d.textContent=s;return d.innerHTML}
function ev2md(m){return m.replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\n\n/g,"<br><br>")}
function ev2sg(q){document.getElementById("ev2-i").value=q;ev2send()}
async function ev2send(){var i=document.getElementById("ev2-i"),m=i.value.trim();if(!m)return;var a=document.getElementById("ev2-msgs"),es=document.getElementById("ev2-empty");if(es)es.remove();a.innerHTML+='<div class="ev-mu">'+ev2esc(m)+'</div>';i.value="";a.scrollTop=a.scrollHeight;var lid="ev2l"+Date.now();a.innerHTML+='<div class="ev-ma" id="'+lid+'"><span class="ev-ld"></span><span class="ev-ld"></span><span class="ev-ld"></span></div>';a.scrollTop=a.scrollHeight;try{ev2h.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: "+ev2ctx+"]\n\nDemande utilisateur: "+m,mode:"full",history:ev2h.slice(-6)})});var j=await r.json();var rp=j.response||j.error||"Erreur";ev2h.push({role:"assistant",content:rp});var el=document.getElementById(lid);if(el)el.outerHTML='<div class="ev-ma">'+ev2md(rp)+"</div>";}catch(ex){var el=document.getElementById(lid);if(el)el.innerHTML="Erreur: "+ex.message;}a.scrollTop=a.scrollHeight;}
</script>
<style>.dm-box{background:#0c1222;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:1.5rem;margin:2rem auto;max-width:800px}.dm-box h3{font-size:1rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.dm-row{display:flex;gap:.6rem;margin-bottom:1rem}.dm-row input{flex:1;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem .8rem;color:#edf2f7;font-family:Outfit;font-size:.85rem;outline:none}.dm-row button{background:var(--a,#7c5cfc);color:#05080f;border:none;border-radius:8px;padding:.6rem 1.2rem;font-weight:700;cursor:pointer;font-family:Outfit;font-size:.85rem;white-space:nowrap}.dm-out{min-height:80px;padding:1rem;background:rgba(0,0,0,.2);border-radius:8px;font-size:.82rem;color:#edf2f7;line-height:1.6}.dm-out strong{color:#fff}.dm-out pre{background:rgba(0,0,0,.3);padding:.5rem;border-radius:6px;font-size:.75rem;margin:.4rem 0;overflow-x:auto}.dm-ld{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--a,#7c5cfc);margin:0 2px;animation:dmp .8s infinite}.dm-ld:nth-child(2){animation-delay:.2s}.dm-ld:nth-child(3){animation-delay:.4s}@keyframes dmp{0%,100%{opacity:1}50%{opacity:.3}}</style>
<div class="dm-box" id="demo"><h3>⚡ MedReach — Demo Live</h3>
<div class="dm-row"><input id="dm-medreach" placeholder="Spécialité et region cible" onkeydown="if(event.key==='Enter')dm_medreach()"><button onclick="dm_medreach()">Tester</button></div>
<div class="dm-out" id="dmo-medreach">Testez MedReach en direct — aucune inscription.</div></div>
<script>
async function dm_medreach(){var q=document.getElementById("dm-medreach").value.trim();if(!q)return;var o=document.getElementById("dmo-medreach");o.innerHTML='<span class="dm-ld"></span><span class="dm-ld"></span><span class="dm-ld"></span>';try{var r=await fetch("/api/weval-ia-fast.php",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:"[INSTRUCTION SYSTEME: Reponds de facon structurée et professionnelle.]\n\nDemande utilisateur: Propose une stratégie data HCP pour: "+q,mode:"full"})});var j=await r.json();o.innerHTML=(j.response||"Erreur").replace(/\*\*(.*?)\*\*/g,"<strong>$1</strong>").replace(/\n\n/g,"<br><br>");}catch(e){o.innerHTML="Erreur: "+e.message}}
</script>
<script defer src=/assets/dm-enhance.js></script></body>
<!-- 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></html><div style="max-width:700px;margin:2rem auto;padding:0 4%">
<div style="background:#0c1222;border:1px solid rgba(0,201,167,.15);border-radius:14px;padding:1.5rem">
<h3 style="font-size:1rem;font-weight:700;margin-bottom:.8rem;color:#00c9a7">Rechercher dans la base — Professionnels de santé vérifiés</h3>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.6rem">
<select id="mr-spec" style="width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem;font-size:.82rem;color:#edf2f7;font-family:Outfit;outline:none"><option value="">Toutes spécialités</option><option>Cardiologie</option><option>Dermatologie</option><option>Pédiatrie</option><option>Gynécologie</option><option>Ophtalmologie</option><option>ORL</option><option>Médecine Générale</option><option>Chirurgie</option><option>Neurologie</option><option>Radiologie</option></select>
<select id="mr-country" style="width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem;font-size:.82rem;color:#edf2f7;font-family:Outfit;outline:none"><option value="">Tous pays</option><option value="FR">Maroc</option><option value="DZ">Algérie</option><option value="TN">Tunisie</option><option value="EG">Égypte</option><option value="FR">France</option><option value="ES">Espagne</option><option value="SA">Arabie Saoudite</option><option value="AE">Émirats</option><option value="SN">Sénégal</option><option value="CI">Côte d'Ivoire</option><option value="TR">Turquie</option><option value="US">États-Unis</option><option value="IN">Inde</option><option value="BR">Brésil</option></select></div>
<input id="mr-city" type="text" placeholder="Ville (ex: Paris, Alger, Tunis...)" style="width:100%;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.6rem;font-size:.82rem;color:#edf2f7;font-family:Outfit;margin-bottom:.6rem;outline:none">
<button onclick="mrSearch()" id="mr-btn" style="width:100%;padding:.7rem;background:#00c9a7;color:#05080f;border:none;border-radius:8px;font-weight:700;cursor:pointer;font-family:Outfit">Rechercher →</button>
<div id="mr-result" style="margin-top:1rem;display:none;font-size:.82rem;color:#7a8ba5;line-height:1.6;max-height:300px;overflow-y:auto"></div></div></div>
<script>
async function mrSearch(){
let url="/api/medreach/search.php?limit=10";
const spec=document.getElementById("mr-spec").value;
const country=document.getElementById("mr-country").value;
const city=document.getElementById("mr-city").value;
if(spec)url+="&specialty="+encodeURIComponent(spec);
if(country)url+="&country="+country;
if(city)url+="&city="+encodeURIComponent(city);
document.getElementById("mr-result").style.display="block";
document.getElementById("mr-result").innerHTML="<em>Recherche...</em>";
try{
const r=await fetch(url);const d=await r.json();
let html="<strong style='color:#00c9a7'>"+d.total+" résultats</strong><br><br>";
d.data.forEach(doc=>{
html+="<div style='padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.04)'><strong style='color:#edf2f7'>"+doc.name+"</strong><br><span style='color:#00c9a7'>"+doc.specialty+"</span> — "+(doc.city||"")+" "+(doc.country||"")+"<br><span style='font-size:.72rem'>Source: "+doc.source+" · "+(doc.phone||" API key requise")+"</span></div>";
});
if(d.has_more)html+="<br><a href='/products/workspace.html' style='color:#00c9a7'>Créez un compte pour voir tous les résultats + téléphones + emails →</a>";
document.getElementById("mr-result").innerHTML=html;
}catch(e){document.getElementById("mr-result").innerHTML="Erreur. Réessayez.";}
}
</script>