CallVantage-Hub / prospection /module-acquisition.html
issam0505's picture
Visual polish: focus states, hover effects, kanban gradients, touch targets, offre pulse
d5c69e1 verified
Raw
History Blame Contribute Delete
83.6 kB
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CALL'VANTAGE &mdash; Module Acquisition Partenaires</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@400&family=Inter:wght@300;400;500;600&family=Playfair+Display:wght@400;600;700&display=swap" rel="stylesheet">
<style>
:root {
--navy: #0A1628;
--navy-light: #162340;
--navy-mid: #1E3A5F;
--electric: #00A8E8;
--electric-light: #4DC9F6;
--electric-dark: #0077B6;
--gold: #C9A84C;
--gold-light: #E8D48B;
--white: #F8F9FA;
--grey-light: #CED4DA;
--grey-mid: #8b949e;
--success: #2ECC71;
--warning: #F39C12;
--danger: #E74C3C;
--card-bg: rgba(22,35,64,0.6);
--border: rgba(201,168,76,0.15);
--kanban-neutral: #484f58;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
font-family: 'Inter', sans-serif;
background: var(--navy);
color: var(--white);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
/* ── HEADER ── */
.top-header {
position: sticky; top: 0; z-index: 100;
background: rgba(10,22,40,0.92);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid var(--border);
}
.header-inner {
max-width: 1200px; margin: 0 auto;
padding: 14px 24px;
display: flex; align-items: center; justify-content: space-between;
flex-wrap: wrap; gap: 10px;
}
.brand-title {
font-family: 'Playfair Display', serif;
font-size: 20px; font-weight: 700;
letter-spacing: 3px; color: var(--white);
white-space: nowrap;
}
.brand-title em { font-style: normal; color: var(--gold); }
.brand-sub {
font-size: 10px; letter-spacing: 2px;
text-transform: uppercase; color: var(--grey-mid);
margin-top: 2px;
}
.nav-strip {
display: flex; gap: 4px;
overflow-x: auto; -webkit-overflow-scrolling: touch;
scrollbar-width: none; padding: 4px 0;
}
.nav-strip::-webkit-scrollbar { display: none; }
.nav-btn {
background: transparent; border: 1px solid rgba(201,168,76,0.25);
color: var(--grey-light); font-size: 11px; font-weight: 500;
padding: 6px 14px; border-radius: 20px;
cursor: pointer; white-space: nowrap;
transition: all 0.25s ease;
font-family: 'Inter', sans-serif;
}
.nav-btn:hover, .nav-btn.active {
background: var(--gold); color: var(--navy);
border-color: var(--gold);
}
/* ── SECTIONS ── */
.section {
max-width: 1200px; margin: 0 auto;
padding: 60px 24px;
}
.section-label {
font-size: 10px; letter-spacing: 3px;
text-transform: uppercase; color: var(--gold);
margin-bottom: 8px; font-weight: 600;
}
.section-title {
font-family: 'Playfair Display', serif;
font-size: 32px; font-weight: 700;
margin-bottom: 12px; line-height: 1.2;
}
.section-desc {
font-size: 15px; color: var(--grey-light);
max-width: 640px; margin-bottom: 40px;
}
.divider {
width: 60px; height: 2px;
background: linear-gradient(90deg, var(--gold), transparent);
margin-bottom: 40px;
}
/* ── TIMELINE (Section 1) ── */
.timeline {
display: flex; gap: 0; position: relative;
padding: 20px 0;
}
.timeline::before {
content: ''; position: absolute;
top: 50%; left: 40px; right: 40px;
height: 2px;
background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
transform: translateY(-50%);
z-index: 0;
}
.tl-step {
flex: 1; text-align: center;
position: relative; z-index: 1;
cursor: pointer; padding: 16px 8px;
}
.tl-num {
width: 44px; height: 44px;
border-radius: 50%; margin: 0 auto 14px;
display: flex; align-items: center; justify-content: center;
font-family: 'DM Mono', monospace; font-size: 16px; font-weight: 700;
background: var(--navy-light); border: 2px solid var(--gold);
color: var(--gold); transition: all 0.3s ease;
}
.tl-step.active .tl-num,
.tl-step:hover .tl-num {
background: var(--gold); color: var(--navy);
box-shadow: 0 0 24px rgba(201,168,76,0.4);
}
.tl-title {
font-size: 13px; font-weight: 600;
margin-bottom: 4px; transition: color 0.3s;
}
.tl-step.active .tl-title { color: var(--gold); }
.tl-brief {
font-size: 11px; color: var(--grey-mid);
line-height: 1.4;
}
.tl-detail {
margin-top: 30px; padding: 28px;
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 12px;
display: none; animation: fadeUp 0.35s ease;
}
.tl-detail.visible { display: block; }
@keyframes fadeUp {
from { opacity:0; transform: translateY(12px); }
to { opacity:1; transform: translateY(0); }
}
/* ── FILTER + CARDS (Section 2) ── */
.filter-bar {
display: flex; gap: 8px; margin-bottom: 28px; flex-wrap: wrap;
}
.filter-btn {
padding: 8px 20px; border-radius: 20px;
border: 1px solid rgba(201,168,76,0.3);
background: transparent; color: var(--grey-light);
font-size: 12px; font-weight: 500; cursor: pointer;
font-family: 'Inter', sans-serif;
transition: all 0.2s;
}
.filter-btn.active, .filter-btn:hover {
background: var(--gold); color: var(--navy);
border-color: var(--gold);
}
.targets-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
gap: 16px;
}
.target-card {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px; overflow: hidden;
transition: all 0.25s ease;
}
.target-card:hover {
border-color: var(--gold);
transform: translateY(-2px);
box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
.target-card[data-hidden="true"] { display: none; }
.tc-header {
padding: 18px 20px;
display: flex; justify-content: space-between;
align-items: flex-start; cursor: pointer;
}
.tc-name {
font-size: 15px; font-weight: 600;
}
.tc-city {
font-size: 11px; color: var(--grey-mid); margin-top: 2px;
}
.tc-stat {
font-family: 'DM Mono', monospace;
font-size: 11px; color: var(--electric-light);
margin-top: 4px;
}
.tier-badge {
font-size: 10px; font-weight: 600;
padding: 3px 10px; border-radius: 10px;
white-space: nowrap; flex-shrink: 0;
}
.tier-badge.t1 { background: rgba(201,168,76,0.2); color: var(--gold); }
.tier-badge.t2 { background: rgba(0,168,232,0.15); color: var(--electric-light); }
.tier-badge.t3 { background: rgba(206,212,218,0.12); color: var(--grey-mid); }
.tc-body {
padding: 0 20px; max-height: 0;
overflow: hidden; transition: max-height 0.35s ease, padding 0.35s ease;
}
.tc-body.open {
max-height: 400px; padding: 0 20px 20px;
}
.tc-row {
display: flex; gap: 8px; margin-bottom: 6px;
font-size: 12px;
}
.tc-label {
color: var(--grey-mid); min-width: 80px; flex-shrink: 0;
}
.tc-volume {
font-family: 'DM Mono', monospace;
color: var(--gold); font-size: 13px;
margin-top: 8px;
}
/* ── EMAIL CARDS (Section 3) ── */
.email-card {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
margin-bottom: 20px; overflow: hidden;
}
.ec-header {
padding: 18px 22px;
display: flex; justify-content: space-between;
align-items: center; cursor: pointer;
border-bottom: 1px solid var(--border);
}
.ec-num {
font-family: 'DM Mono', monospace;
font-size: 12px; color: var(--gold);
}
.ec-subject {
font-size: 14px; font-weight: 600;
flex: 1; margin-left: 14px;
}
.copy-btn {
padding: 6px 16px; border-radius: 6px;
border: 1px solid var(--electric);
background: transparent; color: var(--electric);
font-size: 11px; font-weight: 600; cursor: pointer;
font-family: 'Inter', sans-serif;
transition: all 0.2s;
white-space: nowrap;
}
.copy-btn:hover {
background: var(--electric); color: var(--navy);
}
.copy-btn.copied {
border-color: var(--success); color: var(--success);
}
.ec-body {
padding: 0 22px; max-height: 0;
overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease;
}
.ec-body.open { max-height: 800px; padding: 20px 22px; }
.ec-field {
font-size: 12px; margin-bottom: 6px;
}
.ec-field strong { color: var(--gold); }
.ec-text {
font-size: 13px; line-height: 1.7;
color: var(--grey-light); margin-top: 12px;
white-space: pre-line;
}
.ec-ps {
margin-top: 14px; padding: 12px 16px;
background: rgba(201,168,76,0.08);
border-left: 2px solid var(--gold);
border-radius: 0 6px 6px 0;
font-size: 12px; color: var(--gold-light);
font-style: italic;
}
/* ── LINKEDIN (Section 4) ── */
.li-card {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px; padding: 22px;
margin-bottom: 14px;
position: relative;
}
.li-tag {
font-size: 10px; font-weight: 600;
text-transform: uppercase; letter-spacing: 1.5px;
margin-bottom: 10px;
}
.li-tag.conn { color: var(--electric); }
.li-tag.followup { color: var(--gold); }
.li-tag.tier1 { color: var(--warning); }
.li-text {
font-size: 13px; line-height: 1.7;
color: var(--grey-light);
}
.li-char-count {
font-family: 'DM Mono', monospace;
font-size: 10px; color: var(--grey-mid);
margin-top: 8px;
}
.li-actions {
display: flex; justify-content: flex-end;
margin-top: 12px;
}
/* ── SCRIPT ACCORDION (Section 5) ── */
.script-phase {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px; margin-bottom: 10px;
overflow: hidden;
}
.sp-header {
padding: 18px 22px;
display: flex; align-items: center; gap: 14px;
cursor: pointer;
}
.sp-num {
width: 36px; height: 36px; border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-family: 'DM Mono', monospace; font-size: 14px;
background: var(--navy-mid); color: var(--electric);
flex-shrink: 0;
}
.sp-title {
font-size: 15px; font-weight: 600; flex: 1;
}
.sp-time {
font-family: 'DM Mono', monospace;
font-size: 11px; color: var(--grey-mid);
}
.sp-chevron {
transition: transform 0.3s;
color: var(--grey-mid); font-size: 14px;
}
.script-phase.open .sp-chevron { transform: rotate(180deg); }
.sp-body {
max-height: 0; overflow: hidden;
transition: max-height 0.4s ease;
}
.sp-body.open { max-height: 2000px; }
.sp-content {
padding: 0 22px 22px;
}
.say-card {
padding: 14px 18px; border-radius: 8px;
margin-bottom: 10px; font-size: 13px; line-height: 1.6;
}
.say-good {
background: rgba(46,204,113,0.08);
border-left: 3px solid var(--success);
}
.say-good .say-label { color: var(--success); }
.say-bad {
background: rgba(231,76,60,0.08);
border-left: 3px solid var(--danger);
}
.say-bad .say-label { color: var(--danger); }
.say-label {
font-size: 10px; font-weight: 700;
text-transform: uppercase; letter-spacing: 1px;
margin-bottom: 6px;
}
.objection-item {
margin-bottom: 14px;
}
.obj-trigger {
font-weight: 600; color: var(--warning);
font-size: 13px; margin-bottom: 6px;
}
.obj-response {
font-size: 13px; color: var(--grey-light);
line-height: 1.6; padding-left: 14px;
border-left: 2px solid var(--electric);
}
/* ── OFFRE DECOUVERTE (Section 6) ── */
.offre-card {
background: linear-gradient(135deg, rgba(22,35,64,0.9), rgba(30,58,95,0.6));
border: 2px solid var(--gold);
border-radius: 16px; padding: 40px;
position: relative; overflow: hidden;
}
.offre-card::before {
content: ''; position: absolute;
top: -60px; right: -60px;
width: 180px; height: 180px;
background: radial-gradient(circle, rgba(201,168,76,0.1), transparent 70%);
border-radius: 50%;
}
.offre-badge {
display: inline-block;
background: var(--gold); color: var(--navy);
font-size: 10px; font-weight: 700;
letter-spacing: 2px; text-transform: uppercase;
padding: 5px 16px; border-radius: 20px;
margin-bottom: 20px;
}
.offre-title {
font-family: 'Playfair Display', serif;
font-size: 28px; font-weight: 700;
margin-bottom: 24px;
}
.offre-list {
list-style: none; margin-bottom: 30px;
}
.offre-list li {
padding: 10px 0;
border-bottom: 1px solid var(--border);
font-size: 14px; display: flex;
align-items: flex-start; gap: 12px;
}
.offre-list li:last-child { border-bottom: none; }
.offre-check {
color: var(--gold); font-size: 16px;
flex-shrink: 0; margin-top: 2px;
}
.offre-criteria {
margin-top: 24px; padding: 20px;
background: rgba(10,22,40,0.5);
border-radius: 10px;
}
.offre-criteria h4 {
font-size: 13px; color: var(--gold);
text-transform: uppercase; letter-spacing: 1px;
margin-bottom: 12px;
}
.criteria-grid {
display: grid; grid-template-columns: 1fr 1fr;
gap: 8px;
}
.criteria-item {
font-size: 12px; color: var(--grey-light);
display: flex; align-items: center; gap: 8px;
}
.criteria-dot {
width: 6px; height: 6px; border-radius: 50%;
background: var(--gold); flex-shrink: 0;
}
/* ── CALCULATEUR (Section 7) ── */
.calc-container {
display: grid; grid-template-columns: 1fr 1fr;
gap: 40px; align-items: start;
}
.calc-inputs { display: flex; flex-direction: column; gap: 28px; }
.calc-group label {
display: block; font-size: 13px;
font-weight: 500; margin-bottom: 10px;
}
.calc-group .calc-value {
font-family: 'DM Mono', monospace;
color: var(--gold); font-size: 14px;
float: right;
}
.calc-range {
width: 100%; height: 6px;
-webkit-appearance: none; appearance: none;
background: var(--navy-mid); border-radius: 3px;
outline: none; cursor: pointer;
}
.calc-range::-webkit-slider-thumb {
-webkit-appearance: none; appearance: none;
width: 20px; height: 20px; border-radius: 50%;
background: var(--gold); cursor: pointer;
border: 2px solid var(--navy);
box-shadow: 0 0 10px rgba(201,168,76,0.3);
}
.calc-range::-moz-range-thumb {
width: 20px; height: 20px; border-radius: 50%;
background: var(--gold); cursor: pointer;
border: 2px solid var(--navy);
}
.calc-results {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 12px; padding: 30px;
}
.calc-result-item {
padding: 14px 0;
border-bottom: 1px solid var(--border);
}
.calc-result-item:last-child { border-bottom: none; }
.cr-label {
font-size: 12px; color: var(--grey-mid);
margin-bottom: 4px;
}
.cr-value {
font-family: 'DM Mono', monospace;
font-size: 24px; font-weight: 700;
color: var(--gold);
}
.cr-value.highlight-electric { color: var(--electric-light); }
.cr-sub {
font-size: 11px; color: var(--success);
margin-top: 2px;
}
.cr-projection {
margin-top: 20px; padding: 16px;
background: rgba(201,168,76,0.08);
border-radius: 8px; border: 1px solid rgba(201,168,76,0.2);
font-size: 13px; line-height: 1.6;
color: var(--gold-light);
}
/* ── PIPELINE KANBAN (Section 8) ── */
.kanban {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 12px; min-height: 300px;
}
.kanban-col {
background: rgba(22,35,64,0.4);
border-radius: 10px; padding: 0;
min-height: 280px; display: flex;
flex-direction: column;
}
.kc-header {
padding: 12px 14px; border-radius: 10px 10px 0 0;
font-size: 11px; font-weight: 700;
text-transform: uppercase; letter-spacing: 1px;
text-align: center;
}
.kc-header[data-col="identifie"] { background: var(--kanban-neutral); }
.kc-header[data-col="contacte"] { background: var(--electric-dark); }
.kc-header[data-col="rdv"] { background: rgba(201,168,76,0.7); color: var(--navy); }
.kc-header[data-col="pilote"] { background: rgba(243,156,18,0.7); color: var(--navy); }
.kc-header[data-col="signe"] { background: rgba(46,204,113,0.7); color: var(--navy); }
.kc-count {
font-family: 'DM Mono', monospace;
font-size: 10px; opacity: 0.7;
margin-left: 6px;
}
.kc-body {
padding: 8px; flex: 1;
min-height: 60px;
}
.kanban-card {
background: var(--navy-light);
border: 1px solid var(--border);
border-radius: 6px; padding: 10px 12px;
margin-bottom: 6px; cursor: grab;
font-size: 12px; transition: all 0.2s;
}
.kanban-card:active { cursor: grabbing; }
.kanban-card:hover {
border-color: var(--electric);
transform: scale(1.02);
}
.kanban-card .kk-name {
font-weight: 600; font-size: 12px;
margin-bottom: 2px;
}
.kanban-card .kk-vol {
font-family: 'DM Mono', monospace;
font-size: 10px; color: var(--gold);
}
.kanban-card .kk-mobile-move {
display: none; margin-top: 6px;
}
.kk-mobile-select {
width: 100%; padding: 4px;
background: var(--navy); color: var(--grey-light);
border: 1px solid var(--border); border-radius: 4px;
font-size: 10px; font-family: 'Inter', sans-serif;
}
.kanban-card.dragging {
opacity: 0.4; transform: scale(0.95);
}
.kc-body.drag-over {
background: rgba(201,168,76,0.06);
border: 1px dashed var(--gold);
border-radius: 6px;
}
.reset-btn {
margin-top: 16px; padding: 8px 20px;
background: transparent; border: 1px solid var(--danger);
color: var(--danger); border-radius: 6px;
font-size: 12px; cursor: pointer;
font-family: 'Inter', sans-serif;
transition: all 0.2s;
}
.reset-btn:hover {
background: var(--danger); color: var(--white);
}
/* ── FOOTER ── */
.site-footer {
text-align: center; padding: 40px 24px;
border-top: 1px solid var(--border);
margin-top: 40px;
}
.footer-divider {
width: 40px; height: 2px;
background: var(--gold); margin: 0 auto 16px;
}
.footer-brand {
font-family: 'Playfair Display', serif;
font-size: 16px; font-weight: 600;
margin-bottom: 6px;
}
.footer-brand em { font-style: normal; color: var(--gold); }
.footer-info {
font-size: 12px; color: var(--grey-mid);
}
/* ── RESPONSIVE ── */
@media (max-width: 768px) {
.header-inner { flex-direction: column; align-items: flex-start; }
.timeline { flex-direction: column; gap: 0; }
.timeline::before {
top: 0; bottom: 0; left: 22px; right: auto;
width: 2px; height: auto;
transform: none;
}
.tl-step { text-align: left; display: flex; align-items: center; gap: 14px; padding: 10px 0; }
.tl-num { margin: 0; flex-shrink: 0; }
.targets-grid { grid-template-columns: 1fr; }
.calc-container { grid-template-columns: 1fr; }
.kanban {
grid-template-columns: 1fr;
}
.kanban-card .kk-mobile-move { display: block; }
.criteria-grid { grid-template-columns: 1fr; }
.offre-card { padding: 24px; }
.section-title { font-size: 24px; }
}
@media (max-width: 480px) {
.section { padding: 40px 16px; }
.nav-btn { font-size: 10px; padding: 8px 14px; min-height: 44px; }
.cr-value { font-size: 20px; }
.filter-btn, .copy-btn, .ec-copy { min-height: 44px; }
.section-title { font-size: 20px; }
.offre-card h3 { font-size: 20px; }
input[type="range"]::-webkit-slider-thumb { width: 36px; height: 36px; }
input[type="range"]::-moz-range-thumb { width: 36px; height: 36px; }
}
/* ── Focus & Accessibility ── */
*:focus-visible {
outline: 2px solid #C9A84C;
outline-offset: 2px;
box-shadow: 0 0 0 4px rgba(201,168,76,0.2);
}
button:focus-visible, input:focus-visible, select:focus-visible {
outline: 2px solid #C9A84C;
outline-offset: 2px;
}
/* ── Hover Enhancements ── */
.li-card:hover { border-color: rgba(201,168,76,0.3); box-shadow: 0 4px 20px rgba(0,0,0,0.2); }
.script-phase:hover, .email-card:hover { border-color: rgba(201,168,76,0.2); }
.sp-header:hover, .ec-header:hover { color: #C9A84C; }
.tl-step:hover { transform: scale(1.05); }
/* ── Premium Offre Card ── */
.offre-card:hover { box-shadow: 0 0 40px rgba(201,168,76,0.15), 0 8px 32px rgba(0,0,0,0.3); }
.offre-card li:hover { padding-left: 4px; transition: padding-left 0.2s ease; }
@keyframes subtlePulse { 0%,100% { opacity: 1; } 50% { opacity: 0.7; } }
.offre-badge { animation: subtlePulse 3s ease-in-out infinite; }
/* ── Section Label Accent ── */
.section-label::before {
content: '';
display: inline-block;
width: 20px;
height: 2px;
background: #C9A84C;
vertical-align: middle;
margin-right: 8px;
}
/* ── Kanban Gradient Headers ── */
.kc-header[data-col="identifie"] { background: linear-gradient(135deg, #484f58, #5a6270); }
.kc-header[data-col="contacte"] { background: linear-gradient(135deg, #0077B6, #0088cc); }
.kc-header[data-col="rdv"] { background: linear-gradient(135deg, #F39C12, #e8a020); }
.kc-header[data-col="pilote"] { background: linear-gradient(135deg, #C9A84C, #d4b85a); }
.kc-header[data-col="signe"] { background: linear-gradient(135deg, #2ECC71, #3dd67e); }
/* ── Calculator Polish ── */
.calc-results:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.25); }
.cr-projection:hover { box-shadow: 0 4px 20px rgba(201,168,76,0.15); }
/* ── Range Slider Touch Targets ── */
input[type="range"]::-webkit-slider-thumb { width: 28px; height: 28px; }
input[type="range"]::-moz-range-thumb { width: 28px; height: 28px; }
</style>
</head>
<body>
<!-- ═══════════ HEADER ═══════════ -->
<header class="top-header">
<div class="header-inner">
<div>
<div class="brand-title">CALL<em>&rsquo;</em>VANTAGE</div>
<div class="brand-sub">Module Acquisition Partenaires</div>
</div>
<nav class="nav-strip">
<button class="nav-btn active" onclick="scrollTo_s('s1')">Strat&eacute;gie</button>
<button class="nav-btn" onclick="scrollTo_s('s2')">Cibles</button>
<button class="nav-btn" onclick="scrollTo_s('s3')">Emails</button>
<button class="nav-btn" onclick="scrollTo_s('s4')">LinkedIn</button>
<button class="nav-btn" onclick="scrollTo_s('s5')">Script Appel</button>
<button class="nav-btn" onclick="scrollTo_s('s6')">Offre D&eacute;couverte</button>
<button class="nav-btn" onclick="scrollTo_s('s7')">Calculateur ROI</button>
<button class="nav-btn" onclick="scrollTo_s('s8')">Pipeline</button>
</nav>
</div>
</header>
<!-- ═══════════ SECTION 1: STRATEGIE ═══════════ -->
<section class="section" id="s1">
<div class="section-label">Section 01</div>
<h2 class="section-title">Strat&eacute;gie d&rsquo;Approche</h2>
<p class="section-desc">Une s&eacute;quence d&rsquo;acquisition en 5 &eacute;tapes, con&ccedil;ue pour convertir les courtiers en &eacute;nergie B2B en partenaires long terme.</p>
<div class="divider"></div>
<div class="timeline" id="timeline">
<div class="tl-step active" data-step="1" onclick="showStep(1)">
<div class="tl-num">01</div>
<div>
<div class="tl-title">Recherche</div>
<div class="tl-brief">Audit LinkedIn + site web</div>
</div>
</div>
<div class="tl-step" data-step="2" onclick="showStep(2)">
<div class="tl-num">02</div>
<div>
<div class="tl-title">Connexion LinkedIn</div>
<div class="tl-brief">Demande personnalis&eacute;e</div>
</div>
</div>
<div class="tl-step" data-step="3" onclick="showStep(3)">
<div class="tl-num">03</div>
<div>
<div class="tl-title">S&eacute;quence Email</div>
<div class="tl-brief">3 emails sur 8 jours</div>
</div>
</div>
<div class="tl-step" data-step="4" onclick="showStep(4)">
<div class="tl-num">04</div>
<div>
<div class="tl-title">Appel T&eacute;l&eacute;phonique</div>
<div class="tl-brief">Si pas de r&eacute;ponse</div>
</div>
</div>
<div class="tl-step" data-step="5" onclick="showStep(5)">
<div class="tl-num">05</div>
<div>
<div class="tl-title">Offre D&eacute;couverte</div>
<div class="tl-brief">5 RDV z&eacute;ro risque</div>
</div>
</div>
</div>
<div class="tl-detail visible" id="step-detail-1">
<strong style="color:var(--gold);">&#x1F50D; Recherche &amp; Audit</strong>
<p style="margin-top:10px; font-size:13px; color:var(--grey-light); line-height:1.7;">
Avant tout contact, on analyse en profondeur le courtier cible&nbsp;:<br>
&bull; <strong>LinkedIn</strong>&nbsp;: taille &eacute;quipe commerciale, publications r&eacute;centes, recrutements en cours<br>
&bull; <strong>Site web</strong>&nbsp;: zones g&eacute;ographiques, types d&rsquo;&eacute;nergie (gaz, &eacute;lectricit&eacute;, multi), mod&egrave;le (franchise vs direct)<br>
&bull; <strong>Soci&eacute;t&eacute;.com</strong>&nbsp;: chiffre d&rsquo;affaires, croissance, effectif<br>
&bull; <strong>Actualit&eacute;s</strong>&nbsp;: lev&eacute;e de fonds, fusion, expansion, recrutement<br><br>
<em style="color:var(--grey-mid);">Objectif&nbsp;: identifier le pain point sp&eacute;cifique pour personnaliser le premier message.</em>
</p>
</div>
<div class="tl-detail" id="step-detail-2">
<strong style="color:var(--gold);">&#x1F91D; Connexion LinkedIn Personnalis&eacute;e</strong>
<p style="margin-top:10px; font-size:13px; color:var(--grey-light); line-height:1.7;">
Envoi d&rsquo;une demande de connexion avec note personnalis&eacute;e (300 caract&egrave;res max)&nbsp;:<br>
&bull; Mentionner un &eacute;l&eacute;ment sp&eacute;cifique trouv&eacute; lors de la recherche<br>
&bull; Ne pas pitcher imm&eacute;diatement &mdash; cr&eacute;er la curiosit&eacute;<br>
&bull; Taux d&rsquo;acceptation vis&eacute;&nbsp;: 40-60%<br><br>
<em style="color:var(--grey-mid);">Timing&nbsp;: mardi &agrave; jeudi, 8h-10h ou 17h-19h.</em>
</p>
</div>
<div class="tl-detail" id="step-detail-3">
<strong style="color:var(--gold);">&#x2709;&#xFE0F; S&eacute;quence Email (J+1 &rarr; J+4 &rarr; J+8)</strong>
<p style="margin-top:10px; font-size:13px; color:var(--grey-light); line-height:1.7;">
Trois emails espac&eacute;s sur 8 jours, chacun avec un angle diff&eacute;rent&nbsp;:<br>
&bull; <strong>Email 1 (J+1)</strong>&nbsp;: Le co&ucirc;t du RDV non qualifi&eacute; &mdash; probl&egrave;me/solution<br>
&bull; <strong>Email 2 (J+4)</strong>&nbsp;: L&rsquo;Offre D&eacute;couverte &mdash; 5 RDV z&eacute;ro risque<br>
&bull; <strong>Email 3 (J+8)</strong>&nbsp;: FOMO concurrentiel &mdash; urgence et exclusivit&eacute;<br><br>
<em style="color:var(--grey-mid);">Taux d&rsquo;ouverture vis&eacute;&nbsp;: 35-50%. Taux de r&eacute;ponse&nbsp;: 8-15%.</em>
</p>
</div>
<div class="tl-detail" id="step-detail-4">
<strong style="color:var(--gold);">&#x1F4DE; Appel T&eacute;l&eacute;phonique</strong>
<p style="margin-top:10px; font-size:13px; color:var(--grey-light); line-height:1.7;">
Si aucune r&eacute;ponse apr&egrave;s la s&eacute;quence email&nbsp;:<br>
&bull; Appel direct au d&eacute;cideur (directeur commercial ou fondateur)<br>
&bull; Ref&eacute;rencer les emails envoy&eacute;s pour cr&eacute;er le lien<br>
&bull; Script structur&eacute; en 5 phases (voir Section 5)<br>
&bull; Objectif&nbsp;: d&eacute;crocher un appel d&eacute;couverte de 15 minutes<br><br>
<em style="color:var(--grey-mid);">Meilleurs cr&eacute;neaux&nbsp;: mardi-jeudi, 9h30-11h30.</em>
</p>
</div>
<div class="tl-detail" id="step-detail-5">
<strong style="color:var(--gold);">&#x1F381; Offre D&eacute;couverte &mdash; Z&eacute;ro Risque</strong>
<p style="margin-top:10px; font-size:13px; color:var(--grey-light); line-height:1.7;">
La proposition irr&eacute;sistible&nbsp;:<br>
&bull; <strong>5 RDV qualifi&eacute;s</strong> avec v&eacute;rification de la date d&rsquo;&eacute;ch&eacute;ance<br>
&bull; <strong>Paiement uniquement si qualifi&eacute;</strong> &mdash; aucun risque financier<br>
&bull; <strong>Seuil</strong>&nbsp;: si moins de 4/5 qualifi&eacute;s &rarr; remplacement gratuit<br>
&bull; <strong>Livraison</strong>&nbsp;: premiers RDV sous 48h<br><br>
<em style="color:var(--grey-mid);">Taux de conversion offre d&eacute;couverte &rarr; contrat&nbsp;: 60-70% vis&eacute;.</em>
</p>
</div>
</section>
<!-- ═══════════ SECTION 2: CIBLES ═══════════ -->
<section class="section" id="s2">
<div class="section-label">Section 02</div>
<h2 class="section-title">Top Partenaires Cibles</h2>
<p class="section-desc">17 courtiers en &eacute;nergie identifi&eacute;s et segment&eacute;s par priorit&eacute;. Cliquez sur une carte pour voir le d&eacute;tail.</p>
<div class="divider"></div>
<div class="filter-bar">
<button class="filter-btn active" onclick="filterTier('all', this)">Tous (17)</button>
<button class="filter-btn" onclick="filterTier('1', this)">Tier 1 (5)</button>
<button class="filter-btn" onclick="filterTier('2', this)">Tier 2 (6)</button>
<button class="filter-btn" onclick="filterTier('3', this)">Tier 3 (6)</button>
</div>
<div class="targets-grid" id="targets-grid">
<!-- TIER 1 -->
<div class="target-card" data-tier="1" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Mon Courtier &Eacute;nergie (MCE)</div>
<div class="tc-city">Bordeaux</div>
<div class="tc-stat">~100 collab &middot; CA 24.7M&euro; &middot; Euronext</div>
</div>
<span class="tier-badge t1">Tier 1</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Leader cot&eacute; en bourse, r&eacute;seau de franchis&eacute;s en pleine expansion</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Franchis&eacute;s sur 13 d&eacute;partements non couverts &mdash; besoin de volume de RDV pour acc&eacute;l&eacute;rer le d&eacute;ploiement</span></div>
<div class="tc-row"><span class="tc-label">D&eacute;cideur</span><span>Directeur du d&eacute;veloppement r&eacute;seau / Directeur commercial</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 50-100 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="1" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Alliance des &Eacute;nergies + Compass</div>
<div class="tc-city">Lyon</div>
<div class="tc-stat">80+ collab &middot; CA ~20M&euro; &middot; Fusion PWE</div>
</div>
<span class="tier-badge t1">Tier 1</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Fusion r&eacute;cente avec Place Watt Energies &mdash; phase d&rsquo;expansion agressive</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Post-fusion, besoin de g&eacute;n&eacute;rer +30% de RDV pour justifier la croissance</span></div>
<div class="tc-row"><span class="tc-label">D&eacute;cideur</span><span>Directeur commercial / Co-fondateur</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 40-80 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="1" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">ATOO &Eacute;nergie</div>
<div class="tc-city">Morlaix + Nantes</div>
<div class="tc-stat">20 ans d&rsquo;exp&eacute;rience &middot; R&eacute;seau ind&eacute;pendants</div>
</div>
<span class="tier-badge t1">Tier 1</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>R&eacute;seau d&rsquo;ind&eacute;pendants en croissance, besoin d&rsquo;onboarding rapide</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Package onboarding&nbsp;: fournir des RDV qualifi&eacute;s aux nouveaux ind&eacute;pendants d&egrave;s J+1</span></div>
<div class="tc-row"><span class="tc-label">D&eacute;cideur</span><span>Directeur du r&eacute;seau / Fondateur</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 30-60 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="1" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Capitole &Eacute;nergie (Groupe EPSA)</div>
<div class="tc-city">Toulouse</div>
<div class="tc-stat">7e Champion Croissance 2025 &middot; CIF</div>
</div>
<span class="tier-badge t1">Tier 1</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Croissance fulgurante, class&eacute; 7e Champion de la Croissance 2025</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Certification CIF &mdash; besoin de RDV ultra-qualifi&eacute;s pour maintenir la qualit&eacute; de service</span></div>
<div class="tc-row"><span class="tc-label">D&eacute;cideur</span><span>Directeur commercial / DG</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 30-50 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="1" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Op&eacute;ra &Eacute;nergie</div>
<div class="tc-city">Lyon</div>
<div class="tc-stat">~150 collab &middot; CA 32.7M&euro; &middot; Leader</div>
</div>
<span class="tier-badge t1">Tier 1</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Plus gros courtier en France, CA 32.7M&euro;, &eacute;quipe commerciale massive</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>&Eacute;conomies d&rsquo;&eacute;chelle &mdash; &agrave; ce volume, externaliser la prospection devient un avantage concurrentiel</span></div>
<div class="tc-row"><span class="tc-label">D&eacute;cideur</span><span>VP Sales / Directeur des op&eacute;rations</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 50-100 RDV/mois</div>
</div>
</div>
<!-- TIER 2 -->
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Collectif &Eacute;nergie</div>
<div class="tc-city">National (franchise)</div>
<div class="tc-stat">95 territoires &middot; Mod&egrave;le franchise</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>R&eacute;seau de franchise couvrant 95 territoires en France</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Fournir des RDV qualifi&eacute;s aux franchis&eacute;s pour acc&eacute;l&eacute;rer leur d&eacute;marrage</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 20-40 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Optima &Eacute;nergie</div>
<div class="tc-city">Vannes</div>
<div class="tc-stat">Expansion Toulouse/Lyon</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>En pleine expansion g&eacute;ographique vers le Sud</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Acc&eacute;l&eacute;rer l&rsquo;implantation sur les nouvelles zones sans recruter</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 15-30 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Place des &Eacute;nergies</div>
<div class="tc-city">Nord</div>
<div class="tc-stat">Partenaire Selectra</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Partenariat avec Selectra, besoin de volume pour rentabiliser</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Compl&eacute;ter les leads Selectra avec de la prospection sortante qualifi&eacute;e</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 15-25 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Dune &Eacute;nergie</div>
<div class="tc-city">Lille</div>
<div class="tc-stat">8000+ clients</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Base client importante, opportunit&eacute; d&rsquo;upsell et de r&eacute;activation</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>G&eacute;n&eacute;rer des RDV sur les clients proches de l&rsquo;&eacute;ch&eacute;ance pour le renouvellement</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 10-20 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Le Lab&rsquo; des &Eacute;nergies</div>
<div class="tc-city">National</div>
<div class="tc-stat">2500+ pros &middot; Courtage gratuit</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Mod&egrave;le gratuit pour le client, besoin de volume pour g&eacute;n&eacute;rer les commissions</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>Augmenter le pipeline de prospects qualifi&eacute;s &agrave; co&ucirc;t ma&icirc;tris&eacute;</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 15-30 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="2" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Energy Group</div>
<div class="tc-city">France</div>
<div class="tc-stat">Courtage + CEE + Fiscalit&eacute;</div>
</div>
<span class="tier-badge t2">Tier 2</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Pourquoi</span><span>Offre diversifi&eacute;e (courtage + CEE + fiscalit&eacute;), chaque RDV a un potentiel multi-produit</span></div>
<div class="tc-row"><span class="tc-label">Angle</span><span>RDV qualifi&eacute;s multi-solutions pour maximiser le panier moyen par client</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 15-25 RDV/mois</div>
</div>
</div>
<!-- TIER 3 -->
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Les Courtiers &Eacute;nergie</div>
<div class="tc-city">Metz</div>
<div class="tc-stat">Courtage r&eacute;gional Grand Est</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>Extension de zone g&eacute;ographique via prospection externalis&eacute;e</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 5-15 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Courtage &Eacute;nergies</div>
<div class="tc-city">Alsace</div>
<div class="tc-stat">Sp&eacute;cialiste r&eacute;gional</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>Croissance via externalisation sans investissement RH</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 5-15 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">WattValue</div>
<div class="tc-city">Paris</div>
<div class="tc-stat">&Eacute;nergie verte &middot; Premium</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>RDV qualifi&eacute;s aupr&egrave;s d&rsquo;entreprises sensibles &agrave; l&rsquo;&eacute;nergie verte</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 5-15 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Mon Agence &Eacute;nergies</div>
<div class="tc-city">France</div>
<div class="tc-stat">Courtage multi-&eacute;nergie</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>D&eacute;l&eacute;guer la prospection pour se concentrer sur le closing</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 5-15 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">Ma Meilleure &Eacute;nergie</div>
<div class="tc-city">France</div>
<div class="tc-stat">Comparateur + courtage</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>Compl&eacute;ter le flux inbound avec de la prospection sortante cibl&eacute;e</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: 5-15 RDV/mois</div>
</div>
</div>
<div class="target-card" data-tier="3" onclick="toggleCard(this)">
<div class="tc-header">
<div>
<div class="tc-name">SCE (Syndicat des Courtiers)</div>
<div class="tc-city">France</div>
<div class="tc-stat">Syndicat professionnel</div>
</div>
<span class="tier-badge t3">Tier 3</span>
</div>
<div class="tc-body">
<div class="tc-row"><span class="tc-label">Angle</span><span>Partenariat institutionnel &mdash; devenir prestataire r&eacute;f&eacute;renc&eacute; du syndicat</span></div>
<div class="tc-volume">Volume estim&eacute;&nbsp;: Acc&egrave;s r&eacute;seau</div>
</div>
</div>
</div>
</section>
<!-- ═══════════ SECTION 3: EMAILS ═══════════ -->
<section class="section" id="s3">
<div class="section-label">Section 03</div>
<h2 class="section-title">Emails Pr&ecirc;ts &agrave; Envoyer</h2>
<p class="section-desc">Trois emails de prospection optimis&eacute;s. Cliquez pour ouvrir, puis copiez le contenu en un clic.</p>
<div class="divider"></div>
<!-- Email 1 -->
<div class="email-card">
<div class="ec-header" onclick="toggleEmail(this)">
<span class="ec-num">01</span>
<span class="ec-subject">Le Co&ucirc;t du RDV Non Qualifi&eacute;</span>
<button class="copy-btn" onclick="event.stopPropagation(); copyEmail(this, 'email1')">Copier</button>
</div>
<div class="ec-body" id="email1-body">
<div class="ec-field"><strong>Objet&nbsp;:</strong> [Pr&eacute;nom], combien vous co&ucirc;te un RDV non qualifi&eacute;&nbsp;?</div>
<div class="ec-text">Bonjour [Pr&eacute;nom],
En tant que courtier en &eacute;nergie, vous le savez : un commercial qui se d&eacute;place pour un RDV o&ugrave; le contrat n'arrive pas &agrave; &eacute;ch&eacute;ance, c'est 200 &agrave; 400&euro; perdus.
Entre le temps de d&eacute;placement, la pr&eacute;paration, et le co&ucirc;t salarial &mdash; chaque RDV non qualifi&eacute; est un trou dans votre rentabilit&eacute;.
Chez CALL'VANTAGE, nous prenons des RDV qualifi&eacute;s avec une r&egrave;gle simple : nous v&eacute;rifions la date d'&eacute;ch&eacute;ance du contrat avant de vous transmettre le RDV.
Si le RDV n'est pas qualifi&eacute;, il est remplac&eacute;.
Nos tarifs : 30 &agrave; 50&euro; par RDV qualifi&eacute;.
Seriez-vous disponible pour un &eacute;change de 15 minutes cette semaine ?
Cordialement,
[Votre nom]
CALL'VANTAGE</div>
<div class="ec-ps">P.S. : Nous travaillons exclusivement avec des courtiers en &eacute;nergie B2B. Ce n'est pas du mass-market &mdash; c'est de la prospection chirurgicale.</div>
</div>
</div>
<!-- Email 2 -->
<div class="email-card">
<div class="ec-header" onclick="toggleEmail(this)">
<span class="ec-num">02</span>
<span class="ec-subject">L&rsquo;Offre D&eacute;couverte &mdash; Z&eacute;ro Risque</span>
<button class="copy-btn" onclick="event.stopPropagation(); copyEmail(this, 'email2')">Copier</button>
</div>
<div class="ec-body" id="email2-body">
<div class="ec-field"><strong>Objet&nbsp;:</strong> 5 RDV qualifi&eacute;s, z&eacute;ro risque &mdash; pour [Entreprise]</div>
<div class="ec-text">Bonjour [Pr&eacute;nom],
Suite &agrave; mon pr&eacute;c&eacute;dent message, je voulais vous pr&eacute;senter notre Offre D&eacute;couverte, con&ccedil;ue sp&eacute;cifiquement pour les courtiers qui veulent tester sans risque :
&bull; 5 RDV qualifi&eacute;s avec v&eacute;rification de la date d'&eacute;ch&eacute;ance
&bull; Factur&eacute;s uniquement si qualifi&eacute;s
&bull; Seuil : si moins de 4 RDV sur 5 sont qualifi&eacute;s &rarr; remplacement gratuit
&bull; Pas de frais de setup, pas d'abonnement
&bull; Premiers RDV livr&eacute;s sous 48h
Nos clients constatent un taux de transformation de 25-35%, contre 10-15% en g&eacute;n&eacute;ration interne.
La diff&eacute;rence ? Chaque RDV est v&eacute;rifi&eacute; : d&eacute;cideur confirm&eacute;, &eacute;ch&eacute;ance valid&eacute;e, cr&eacute;neau fix&eacute;.
Quand seriez-vous disponible pour en discuter ?
Cordialement,
[Votre nom]
CALL'VANTAGE</div>
</div>
</div>
<!-- Email 3 -->
<div class="email-card">
<div class="ec-header" onclick="toggleEmail(this)">
<span class="ec-num">03</span>
<span class="ec-subject">FOMO Concurrentiel</span>
<button class="copy-btn" onclick="event.stopPropagation(); copyEmail(this, 'email3')">Copier</button>
</div>
<div class="ec-body" id="email3-body">
<div class="ec-field"><strong>Objet&nbsp;:</strong> Vos concurrents externalisent d&eacute;j&agrave; leur prospection</div>
<div class="ec-text">Bonjour [Pr&eacute;nom],
Faisons un calcul rapide :
Un commercial terrain co&ucirc;te 4 000 &agrave; 5 000&euro;/mois charg&eacute;.
Il g&eacute;n&egrave;re en moyenne 15 &agrave; 20 RDV/mois.
Co&ucirc;t r&eacute;el par RDV : 250 &agrave; 330&euro;.
Avec CALL'VANTAGE :
&bull; 30 &agrave; 100&euro; par RDV qualifi&eacute;
&bull; V&eacute;rification de la date d'&eacute;ch&eacute;ance du contrat
&bull; Remplacement garanti si non qualifi&eacute;
&bull; Z&eacute;ro charge sociale, z&eacute;ro management
Vos concurrents les plus agiles ont d&eacute;j&agrave; fait ce calcul.
15 minutes pour en discuter ?
Cordialement,
[Votre nom]
CALL'VANTAGE</div>
<div class="ec-ps">P.S. : Nous ne travaillons qu'avec un nombre limit&eacute; de courtiers par zone g&eacute;ographique. L'exclusivit&eacute; territoriale est notre garantie de qualit&eacute;.</div>
</div>
</div>
</section>
<!-- ═══════════ SECTION 4: LINKEDIN ═══════════ -->
<section class="section" id="s4">
<div class="section-label">Section 04</div>
<h2 class="section-title">Messages LinkedIn</h2>
<p class="section-desc">Demandes de connexion et follow-ups optimis&eacute;s pour LinkedIn. Chaque message respecte la limite de 300 caract&egrave;res.</p>
<div class="divider"></div>
<h3 style="font-size:16px; margin-bottom:16px; color:var(--electric-light);">Demandes de connexion</h3>
<div class="li-card">
<div class="li-tag conn">Version A &mdash; Directe</div>
<div class="li-text" id="li-conn-a">Bonjour [Pr&eacute;nom], je dirige CALL'VANTAGE, sp&eacute;cialiste de la prise de RDV qualifi&eacute;s pour les courtiers en &eacute;nergie B2B. Nous v&eacute;rifions la date d'&eacute;ch&eacute;ance avant chaque RDV. J'aimerais &eacute;changer avec vous sur ce sujet.</div>
<div class="li-char-count"></div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-conn-a')">Copier</button></div>
</div>
<div class="li-card">
<div class="li-tag conn">Version B &mdash; Valeur</div>
<div class="li-text" id="li-conn-b">Bonjour [Pr&eacute;nom], un RDV o&ugrave; le contrat n'arrive pas &agrave; &eacute;ch&eacute;ance co&ucirc;te 200-400&euro; &agrave; un courtier. Nous avons r&eacute;solu ce probl&egrave;me. Seriez-vous ouvert &agrave; un &eacute;change de 10 min ?</div>
<div class="li-char-count"></div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-conn-b')">Copier</button></div>
</div>
<div class="li-card">
<div class="li-tag conn">Version C &mdash; R&eacute;seau / Tier 1</div>
<div class="li-text" id="li-conn-c">Bonjour [Pr&eacute;nom], votre approche du courtage &eacute;nergie est int&eacute;ressante. Nous accompagnons des courtiers B2B sur la g&eacute;n&eacute;ration de RDV qualifi&eacute;s avec v&eacute;rification d'&eacute;ch&eacute;ance. Ravi de vous ajouter &agrave; mon r&eacute;seau.</div>
<div class="li-char-count"></div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-conn-c')">Copier</button></div>
</div>
<h3 style="font-size:16px; margin:32px 0 16px; color:var(--gold);">Follow-ups</h3>
<div class="li-card">
<div class="li-tag followup">Follow-up J+2 &mdash; Message valeur</div>
<div class="li-text" id="li-fu-2">Merci pour la connexion [Pr&eacute;nom] !
Chez CALL'VANTAGE, nous g&eacute;n&eacute;rons des RDV qualifi&eacute;s exclusivement pour les courtiers en &eacute;nergie B2B.
Notre diff&eacute;rence : nous v&eacute;rifions la date d'&eacute;ch&eacute;ance du contrat AVANT de vous transmettre le RDV. Si le RDV n'est pas qualifi&eacute;, il est remplac&eacute;.
Tarifs : 30 &agrave; 100&euro; par RDV qualifi&eacute; (vs 250-330&euro; en interne).
Est-ce que 15 min cette semaine vous conviendraient pour en discuter ?</div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-fu-2')">Copier</button></div>
</div>
<div class="li-card">
<div class="li-tag followup">Follow-up J+5 &mdash; Cas client</div>
<div class="li-text" id="li-fu-5">[Pr&eacute;nom], un cas concret :
Avant CALL'VANTAGE :
&bull; Co&ucirc;t/RDV : ~300&euro;
&bull; Taux de transformation : 12%
&bull; RDV exploitables : 6 sur 20
Apr&egrave;s CALL'VANTAGE :
&bull; Co&ucirc;t/RDV : 35&euro;
&bull; Taux de transformation : 28%
&bull; RDV exploitables : 19 sur 20
La cl&eacute; ? V&eacute;rification syst&eacute;matique de l'&eacute;ch&eacute;ance du contrat.
On en parle ?</div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-fu-5')">Copier</button></div>
</div>
<div class="li-card">
<div class="li-tag followup">Follow-up J+10 &mdash; Derni&egrave;re chance</div>
<div class="li-text" id="li-fu-10">[Pr&eacute;nom], dernier message &mdash; je ne veux pas insister.
Nous lancons une Offre D&eacute;couverte : 5 RDV qualifi&eacute;s, factur&eacute;s uniquement si qualifi&eacute;s. Z&eacute;ro risque.
Important : nous ne travaillons qu'avec un nombre limit&eacute; de courtiers par zone g&eacute;ographique pour garantir l'exclusivit&eacute;.
Si la prospection B2B &eacute;nergie est un sujet pour vous, c'est le moment.
Bonne continuation dans tous les cas.</div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-fu-10')">Copier</button></div>
</div>
<h3 style="font-size:16px; margin:32px 0 16px; color:var(--warning);">Variantes Tier 1</h3>
<div class="li-card">
<div class="li-tag tier1">MCE &mdash; Angle Euronext / Franchis&eacute;s</div>
<div class="li-text" id="li-t1-mce">Bonjour [Pr&eacute;nom], f&eacute;licitations pour la performance de MCE sur Euronext. Avec votre expansion sur 13 d&eacute;partements, vos franchis&eacute;s doivent avoir un besoin &eacute;norme en RDV qualifi&eacute;s. Nous g&eacute;n&eacute;rons des RDV avec v&eacute;rification d'&eacute;ch&eacute;ance, sp&eacute;cifiquement pour le courtage &eacute;nergie. Un &eacute;change rapide ?</div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-t1-mce')">Copier</button></div>
</div>
<div class="li-card">
<div class="li-tag tier1">Alliance des &Eacute;nergies &mdash; Angle Fusion PWE</div>
<div class="li-text" id="li-t1-alliance">Bonjour [Pr&eacute;nom], la fusion Alliance + PWE est un move strat&eacute;gique impressionnant. Pour absorber +30% de croissance, il faut du volume de RDV qualifi&eacute;s. Nous sommes sp&eacute;cialis&eacute;s courtage &eacute;nergie B2B &mdash; v&eacute;rification d'&eacute;ch&eacute;ance incluse. &Eacute;changeons ?</div>
<div class="li-actions"><button class="copy-btn" onclick="copyLi(this, 'li-t1-alliance')">Copier</button></div>
</div>
</section>
<!-- ═══════════ SECTION 5: SCRIPT APPEL ═══════════ -->
<section class="section" id="s5">
<div class="section-label">Section 05</div>
<h2 class="section-title">Script d&rsquo;Appel Partenaire</h2>
<p class="section-desc">Script structur&eacute; en 5 phases pour convertir un d&eacute;cideur courtier en partenaire CALL&rsquo;VANTAGE.</p>
<div class="divider"></div>
<!-- Phase 1 -->
<div class="script-phase open">
<div class="sp-header" onclick="togglePhase(this)">
<div class="sp-num">1</div>
<div class="sp-title">Accroche</div>
<div class="sp-time">15s</div>
<div class="sp-chevron">&#9660;</div>
</div>
<div class="sp-body open">
<div class="sp-content">
<div class="say-card say-good">
<div class="say-label">&#10003; &Agrave; dire</div>
&laquo;&nbsp;Bonjour [Pr&eacute;nom], [votre nom] de CALL'VANTAGE. Je vous appelle car nous travaillons avec des courtiers en &eacute;nergie sur un sujet qui les concerne tous : le co&ucirc;t et la qualit&eacute; de leurs rendez-vous commerciaux. Est-ce que je vous d&eacute;range ?&nbsp;&raquo;
</div>
<div class="say-card say-bad">
<div class="say-label">&#10007; Ne pas dire</div>
&laquo;&nbsp;Bonjour, je vous appelle pour vous proposer nos services de t&eacute;l&eacute;prospection...&nbsp;&raquo;<br>
<span style="font-size:11px; color:var(--grey-mid);">Trop g&eacute;n&eacute;rique, d&eacute;clenche le r&eacute;flexe de rejet.</span>
</div>
</div>
</div>
</div>
<!-- Phase 2 -->
<div class="script-phase">
<div class="sp-header" onclick="togglePhase(this)">
<div class="sp-num">2</div>
<div class="sp-title">Qualification</div>
<div class="sp-time">30s</div>
<div class="sp-chevron">&#9660;</div>
</div>
<div class="sp-body">
<div class="sp-content">
<div class="say-card say-good">
<div class="say-label">&#10003; Questions de qualification</div>
&bull; &laquo;&nbsp;Comment g&eacute;n&eacute;rez-vous vos RDV commerciaux actuellement ?&nbsp;&raquo;<br>
&bull; &laquo;&nbsp;Combien de RDV par mois g&eacute;n&egrave;re votre &eacute;quipe ?&nbsp;&raquo;<br>
&bull; &laquo;&nbsp;Quel est votre co&ucirc;t estim&eacute; par RDV ?&nbsp;&raquo;<br>
&bull; &laquo;&nbsp;Sur ces RDV, quel pourcentage est r&eacute;ellement exploitable ?&nbsp;&raquo;
</div>
<p style="font-size:12px; color:var(--grey-mid); margin-top:10px;"><em>Objectif : faire prendre conscience du co&ucirc;t r&eacute;el et du taux de d&eacute;chet.</em></p>
</div>
</div>
</div>
<!-- Phase 3 -->
<div class="script-phase">
<div class="sp-header" onclick="togglePhase(this)">
<div class="sp-num">3</div>
<div class="sp-title">Pitch</div>
<div class="sp-time">2 min</div>
<div class="sp-chevron">&#9660;</div>
</div>
<div class="sp-body">
<div class="sp-content">
<div class="say-card say-good">
<div class="say-label">&#10003; Situation &rarr; Probl&egrave;me &rarr; Solution &rarr; Preuve</div>
<strong style="color:var(--electric-light);">Situation</strong><br>
&laquo;&nbsp;Vous investissez [montant] par mois en prospection commerciale.&nbsp;&raquo;<br><br>
<strong style="color:var(--warning);">Probl&egrave;me</strong><br>
&laquo;&nbsp;Mais [X]% de vos RDV ne sont pas exploitables &mdash; le contrat n'arrive pas &agrave; &eacute;ch&eacute;ance, le d&eacute;cideur n'est pas le bon, le cr&eacute;neau tombe &agrave; l'eau.&nbsp;&raquo;<br><br>
<strong style="color:var(--success);">Solution</strong><br>
&laquo;&nbsp;Chez CALL'VANTAGE, nous avons une r&egrave;gle simple : nous v&eacute;rifions la date d'&eacute;ch&eacute;ance du contrat AVANT de vous transmettre le RDV. Si le RDV n'est pas qualifi&eacute;, il est remplac&eacute; gratuitement. Nos tarifs : 30 &agrave; 100&euro; par RDV qualifi&eacute;.&nbsp;&raquo;<br><br>
<strong style="color:var(--gold);">Preuve</strong><br>
&bull; 50 &agrave; 80% moins cher qu'un commercial interne<br>
&bull; Taux de transformation de 25-35% (vs 10-15% en interne)<br>
&bull; Exclusivit&eacute; courtage &eacute;nergie B2B &mdash; c'est tout ce qu'on fait
</div>
</div>
</div>
</div>
<!-- Phase 4 -->
<div class="script-phase">
<div class="sp-header" onclick="togglePhase(this)">
<div class="sp-num">4</div>
<div class="sp-title">Traitement des Objections</div>
<div class="sp-time">variable</div>
<div class="sp-chevron">&#9660;</div>
</div>
<div class="sp-body">
<div class="sp-content">
<div class="objection-item">
<div class="obj-trigger">&laquo;&nbsp;On fait d&eacute;j&agrave; en interne&nbsp;&raquo;</div>
<div class="obj-response">&laquo;&nbsp;Parfait, c'est que le sujet est important pour vous. La question n'est pas de remplacer votre &eacute;quipe, mais de la compl&eacute;ter. Vos commerciaux sont excellents en closing &mdash; nous, on leur fournit des RDV d&eacute;j&agrave; qualifi&eacute;s pour qu'ils se concentrent sur ce qu'ils font de mieux.&nbsp;&raquo;</div>
</div>
<div class="objection-item">
<div class="obj-trigger">&laquo;&nbsp;C'est au Maroc ?&nbsp;&raquo;</div>
<div class="obj-response">&laquo;&nbsp;Oui, bas&eacute;s &agrave; Marrakech. Nos agents sont form&eacute;s sp&eacute;cifiquement au courtage &eacute;nergie B2B fran&ccedil;ais &mdash; terminologie, r&eacute;glementation, processus. Et notre garantie le prouve : si le RDV n'est pas qualifi&eacute;, il est remplac&eacute;. Le risque est de notre c&ocirc;t&eacute;, pas du v&ocirc;tre.&nbsp;&raquo;</div>
</div>
<div class="objection-item">
<div class="obj-trigger">&laquo;&nbsp;C'est trop cher&nbsp;&raquo;</div>
<div class="obj-response">&laquo;&nbsp;Comparons : un commercial interne co&ucirc;te 4 000-5 000&euro; charg&eacute; pour 15-20 RDV, soit 250-330&euro; par RDV. Nous, c'est 30 &agrave; 100&euro;, et uniquement si le RDV est qualifi&eacute;. En r&eacute;alit&eacute;, c'est l'option la moins ch&egrave;re du march&eacute;.&nbsp;&raquo;</div>
</div>
<div class="objection-item">
<div class="obj-trigger">&laquo;&nbsp;On a d&eacute;j&agrave; un prestataire&nbsp;&raquo;</div>
<div class="obj-response">&laquo;&nbsp;Est-ce qu'il v&eacute;rifie la date d'&eacute;ch&eacute;ance du contrat avant de vous transmettre le RDV ? Est-ce qu'il remplace les RDV non qualifi&eacute;s ? C'est notre diff&eacute;rence. On peut tester avec 5 RDV en parall&egrave;le &mdash; vous comparerez les r&eacute;sultats.&nbsp;&raquo;</div>
</div>
<div class="objection-item">
<div class="obj-trigger">&laquo;&nbsp;Pas le budget en ce moment&nbsp;&raquo;</div>
<div class="obj-response">&laquo;&nbsp;Justement, notre Offre D&eacute;couverte est faite pour &ccedil;a : 5 RDV, factur&eacute;s uniquement s'ils sont qualifi&eacute;s. Pas de setup, pas d'abonnement. Si les RDV ne sont pas bons, &ccedil;a ne vous co&ucirc;te rien. Le risque est z&eacute;ro.&nbsp;&raquo;</div>
</div>
</div>
</div>
</div>
<!-- Phase 5 -->
<div class="script-phase">
<div class="sp-header" onclick="togglePhase(this)">
<div class="sp-num">5</div>
<div class="sp-title">Closing &mdash; CTA</div>
<div class="sp-time">15s</div>
<div class="sp-chevron">&#9660;</div>
</div>
<div class="sp-body">
<div class="sp-content">
<div class="say-card say-good">
<div class="say-label">&#10003; Call to Action</div>
&laquo;&nbsp;On d&eacute;marre avec l'Offre D&eacute;couverte &mdash; 5 RDV qualifi&eacute;s, z&eacute;ro risque. Qu'est-ce qui vous emp&ecirc;cherait de tester ?&nbsp;&raquo;
</div>
<div class="say-card say-bad">
<div class="say-label">&#10007; &Agrave; &eacute;viter</div>
&laquo;&nbsp;Alors, est-ce que &ccedil;a vous int&eacute;resse ?&nbsp;&raquo;<br>
<span style="font-size:11px; color:var(--grey-mid);">Trop passif. Toujours proposer une action concr&egrave;te.</span>
</div>
<p style="font-size:12px; color:var(--grey-mid); margin-top:14px;">
<strong>Si h&eacute;sitation :</strong> &laquo;&nbsp;Je vous envoie un r&eacute;capitulatif par email avec les d&eacute;tails de l'offre. On se fixe un cr&eacute;neau mardi prochain pour faire le point ?&nbsp;&raquo;
</p>
</div>
</div>
</div>
</section>
<!-- ═══════════ SECTION 6: OFFRE DECOUVERTE ═══════════ -->
<section class="section" id="s6">
<div class="section-label">Section 06</div>
<h2 class="section-title">Offre D&eacute;couverte</h2>
<p class="section-desc">La proposition z&eacute;ro risque qui convertit les courtiers h&eacute;sitants en partenaires.</p>
<div class="divider"></div>
<div class="offre-card">
<div class="offre-badge">Offre Pilote</div>
<div class="offre-title">5 RDV Qualifi&eacute;s &mdash; Z&eacute;ro Risque</div>
<ul class="offre-list">
<li><span class="offre-check">&#10003;</span><span><strong>5 RDV qualifi&eacute;s</strong> avec v&eacute;rification syst&eacute;matique de la date d&rsquo;&eacute;ch&eacute;ance du contrat</span></li>
<li><span class="offre-check">&#10003;</span><span><strong>Paiement uniquement si qualifi&eacute;</strong> &mdash; aucun frais pour un RDV non qualifi&eacute;</span></li>
<li><span class="offre-check">&#10003;</span><span><strong>Seuil de qualit&eacute;</strong> &mdash; si moins de 4 RDV sur 5 sont qualifi&eacute;s &rarr; remplacement gratuit des RDV manquants</span></li>
<li><span class="offre-check">&#10003;</span><span><strong>Engagement post-pilote</strong> &mdash; si 4+/5 qualifi&eacute;s &rarr; engagement minimum 20 RDV/mois</span></li>
<li><span class="offre-check">&#10003;</span><span><strong>Livraison express</strong> &mdash; premiers RDV sous 48 heures</span></li>
<li><span class="offre-check">&#10003;</span><span><strong>Pas de frais de setup</strong> &mdash; pas d&rsquo;abonnement, pas de co&ucirc;ts cach&eacute;s</span></li>
</ul>
<div class="offre-criteria">
<h4>Crit&egrave;res &laquo;&nbsp;RDV Qualifi&eacute;&nbsp;&raquo;</h4>
<div class="criteria-grid">
<div class="criteria-item"><span class="criteria-dot"></span>D&eacute;cideur confirm&eacute; (dirigeant, DAF, responsable achats)</div>
<div class="criteria-item"><span class="criteria-dot"></span>&Eacute;ch&eacute;ance v&eacute;rifi&eacute;e (&lt;12 mois)</div>
<div class="criteria-item"><span class="criteria-dot"></span>Consommation estim&eacute;e document&eacute;e</div>
<div class="criteria-item"><span class="criteria-dot"></span>Cr&eacute;neau fix&eacute; et confirm&eacute;</div>
</div>
</div>
</div>
</section>
<!-- ═══════════ SECTION 7: CALCULATEUR ROI ═══════════ -->
<section class="section" id="s7">
<div class="section-label">Section 07</div>
<h2 class="section-title">Calculateur ROI</h2>
<p class="section-desc">Ajustez les curseurs pour voir l&rsquo;impact concret de CALL&rsquo;VANTAGE sur votre prospection.</p>
<div class="divider"></div>
<div class="calc-container">
<div class="calc-inputs">
<div class="calc-group">
<label>Budget prospection mensuel <span class="calc-value" id="cv-budget">5 000&euro;</span></label>
<input type="range" class="calc-range" id="r-budget" min="2000" max="15000" step="500" value="5000" oninput="calcROI()">
</div>
<div class="calc-group">
<label>RDVs actuels par mois <span class="calc-value" id="cv-rdvs">15</span></label>
<input type="range" class="calc-range" id="r-rdvs" min="5" max="60" step="1" value="15" oninput="calcROI()">
</div>
<div class="calc-group">
<label>Taux de transformation actuel <span class="calc-value" id="cv-taux">12%</span></label>
<input type="range" class="calc-range" id="r-taux" min="5" max="35" step="1" value="12" oninput="calcROI()">
</div>
</div>
<div class="calc-results">
<div class="calc-result-item">
<div class="cr-label">Co&ucirc;t actuel par RDV</div>
<div class="cr-value" id="cr-cout">333&euro;</div>
</div>
<div class="calc-result-item">
<div class="cr-label">Co&ucirc;t CALL&rsquo;VANTAGE par RDV</div>
<div class="cr-value highlight-electric" id="cr-cout-cv">40&euro;</div>
<div class="cr-sub">Moyenne tous volumes confondus</div>
</div>
<div class="calc-result-item">
<div class="cr-label">RDVs possibles avec CALL&rsquo;VANTAGE</div>
<div class="cr-value highlight-electric" id="cr-rdvs-cv">125</div>
<div class="cr-sub" id="cr-gain">+733% de volume</div>
</div>
<div class="calc-result-item">
<div class="cr-label">&Eacute;conomie mensuelle</div>
<div class="cr-value" id="cr-eco-mois">4 395&euro;</div>
</div>
<div class="calc-result-item">
<div class="cr-label">&Eacute;conomie annuelle estim&eacute;e</div>
<div class="cr-value" id="cr-eco">52 740&euro;</div>
</div>
<div class="cr-projection" id="cr-proj">
Avec le m&ecirc;me budget de 5 000&euro;/mois, vous obtenez <strong>125 RDVs</strong> au lieu de <strong>15</strong>.
</div>
</div>
</div>
</section>
<!-- ═══════════ SECTION 8: PIPELINE ═══════════ -->
<section class="section" id="s8">
<div class="section-label">Section 08</div>
<h2 class="section-title">Pipeline Tracker</h2>
<p class="section-desc">Glissez-d&eacute;posez les cartes entre les colonnes pour suivre votre pipeline d&rsquo;acquisition.</p>
<div class="divider"></div>
<div class="kanban" id="kanban">
<div class="kanban-col">
<div class="kc-header" data-col="identifie">Identifi&eacute; <span class="kc-count"></span></div>
<div class="kc-body" data-col="identifie"></div>
</div>
<div class="kanban-col">
<div class="kc-header" data-col="contacte">Contact&eacute; <span class="kc-count"></span></div>
<div class="kc-body" data-col="contacte"></div>
</div>
<div class="kanban-col">
<div class="kc-header" data-col="rdv">RDV Obtenu <span class="kc-count"></span></div>
<div class="kc-body" data-col="rdv"></div>
</div>
<div class="kanban-col">
<div class="kc-header" data-col="pilote">Pilote <span class="kc-count"></span></div>
<div class="kc-body" data-col="pilote"></div>
</div>
<div class="kanban-col">
<div class="kc-header" data-col="signe">Sign&eacute; <span class="kc-count"></span></div>
<div class="kc-body" data-col="signe"></div>
</div>
</div>
<button class="reset-btn" onclick="resetPipeline()">R&eacute;initialiser le pipeline</button>
</section>
<!-- ═══════════ FOOTER ═══════════ -->
<footer class="site-footer">
<div class="footer-divider"></div>
<div class="footer-brand">CALL<em>&rsquo;</em>VANTAGE &mdash; Marrakech</div>
<div class="footer-info">WhatsApp : +212 664 860 353</div>
</footer>
<!-- ═══════════ JAVASCRIPT ═══════════ -->
<script>
/* ── Navigation ── */
function scrollTo_s(id) {
document.getElementById(id).scrollIntoView({ behavior: 'smooth', block: 'start' });
}
// Active nav on scroll
const sections = document.querySelectorAll('.section');
const navBtns = document.querySelectorAll('.nav-btn');
window.addEventListener('scroll', function() {
let current = '';
sections.forEach(function(sec) {
const top = sec.offsetTop - 120;
if (window.pageYOffset >= top) current = sec.getAttribute('id');
});
navBtns.forEach(function(btn, i) {
btn.classList.toggle('active', 's' + (i + 1) === current);
});
});
/* ── Section 1: Timeline ── */
function showStep(n) {
document.querySelectorAll('.tl-step').forEach(function(s) { s.classList.remove('active'); });
document.querySelectorAll('.tl-detail').forEach(function(d) { d.classList.remove('visible'); });
document.querySelector('.tl-step[data-step="' + n + '"]').classList.add('active');
document.getElementById('step-detail-' + n).classList.add('visible');
}
/* ── Section 2: Filter targets ── */
function filterTier(tier, btn) {
document.querySelectorAll('.filter-btn').forEach(function(b) { b.classList.remove('active'); });
btn.classList.add('active');
document.querySelectorAll('.target-card').forEach(function(card) {
if (tier === 'all') {
card.setAttribute('data-hidden', 'false');
} else {
card.setAttribute('data-hidden', card.getAttribute('data-tier') !== tier ? 'true' : 'false');
}
});
}
function toggleCard(el) {
var body = el.querySelector('.tc-body');
body.classList.toggle('open');
}
/* ── Section 3: Emails ── */
function toggleEmail(header) {
var body = header.nextElementSibling;
body.classList.toggle('open');
}
var emailTexts = {
email1: "Objet : [Pr\u00e9nom], combien vous co\u00fbte un RDV non qualifi\u00e9 ?\n\nBonjour [Pr\u00e9nom],\n\nEn tant que courtier en \u00e9nergie, vous le savez : un commercial qui se d\u00e9place pour un RDV o\u00f9 le contrat n'arrive pas \u00e0 \u00e9ch\u00e9ance, c'est 200 \u00e0 400\u20ac perdus.\n\nEntre le temps de d\u00e9placement, la pr\u00e9paration, et le co\u00fbt salarial \u2014 chaque RDV non qualifi\u00e9 est un trou dans votre rentabilit\u00e9.\n\nChez CALL\u2019VANTAGE, nous prenons des RDV qualifi\u00e9s avec une r\u00e8gle simple : nous v\u00e9rifions la date d'\u00e9ch\u00e9ance du contrat avant de vous transmettre le RDV.\n\nSi le RDV n'est pas qualifi\u00e9, il est remplac\u00e9.\n\nNos tarifs : 30 \u00e0 50\u20ac par RDV qualifi\u00e9.\n\nSeriez-vous disponible pour un \u00e9change de 15 minutes cette semaine ?\n\nCordialement,\n[Votre nom]\nCALL\u2019VANTAGE\n\nP.S. : Nous travaillons exclusivement avec des courtiers en \u00e9nergie B2B. Ce n'est pas du mass-market \u2014 c'est de la prospection chirurgicale.",
email2: "Objet : 5 RDV qualifi\u00e9s, z\u00e9ro risque \u2014 pour [Entreprise]\n\nBonjour [Pr\u00e9nom],\n\nSuite \u00e0 mon pr\u00e9c\u00e9dent message, je voulais vous pr\u00e9senter notre Offre D\u00e9couverte, con\u00e7ue sp\u00e9cifiquement pour les courtiers qui veulent tester sans risque :\n\n\u2022 5 RDV qualifi\u00e9s avec v\u00e9rification de la date d'\u00e9ch\u00e9ance\n\u2022 Factur\u00e9s uniquement si qualifi\u00e9s\n\u2022 Seuil : si moins de 4 RDV sur 5 sont qualifi\u00e9s \u2192 remplacement gratuit\n\u2022 Pas de frais de setup, pas d'abonnement\n\u2022 Premiers RDV livr\u00e9s sous 48h\n\nNos clients constatent un taux de transformation de 25-35%, contre 10-15% en g\u00e9n\u00e9ration interne.\n\nLa diff\u00e9rence ? Chaque RDV est v\u00e9rifi\u00e9 : d\u00e9cideur confirm\u00e9, \u00e9ch\u00e9ance valid\u00e9e, cr\u00e9neau fix\u00e9.\n\nQuand seriez-vous disponible pour en discuter ?\n\nCordialement,\n[Votre nom]\nCALL\u2019VANTAGE",
email3: "Objet : Vos concurrents externalisent d\u00e9j\u00e0 leur prospection\n\nBonjour [Pr\u00e9nom],\n\nFaisons un calcul rapide :\n\nUn commercial terrain co\u00fbte 4 000 \u00e0 5 000\u20ac/mois charg\u00e9.\nIl g\u00e9n\u00e8re en moyenne 15 \u00e0 20 RDV/mois.\nCo\u00fbt r\u00e9el par RDV : 250 \u00e0 330\u20ac.\n\nAvec CALL\u2019VANTAGE :\n\u2022 30 \u00e0 100\u20ac par RDV qualifi\u00e9\n\u2022 V\u00e9rification de la date d'\u00e9ch\u00e9ance du contrat\n\u2022 Remplacement garanti si non qualifi\u00e9\n\u2022 Z\u00e9ro charge sociale, z\u00e9ro management\n\nVos concurrents les plus agiles ont d\u00e9j\u00e0 fait ce calcul.\n\n15 minutes pour en discuter ?\n\nCordialement,\n[Votre nom]\nCALL\u2019VANTAGE\n\nP.S. : Nous ne travaillons qu'avec un nombre limit\u00e9 de courtiers par zone g\u00e9ographique. L'exclusivit\u00e9 territoriale est notre garantie de qualit\u00e9."
};
function copyEmail(btn, id) {
var text = emailTexts[id];
function onSuccess() {
btn.textContent = '\u2713 Copi\u00e9 !';
btn.classList.add('copied');
setTimeout(function() { btn.textContent = 'Copier'; btn.classList.remove('copied'); }, 2000);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(onSuccess).catch(function() {
var ta = document.createElement('textarea'); ta.value = text;
ta.style.position = 'fixed'; ta.style.opacity = '0';
document.body.appendChild(ta); ta.select(); document.execCommand('copy');
document.body.removeChild(ta); onSuccess();
});
} else {
var ta = document.createElement('textarea'); ta.value = text;
ta.style.position = 'fixed'; ta.style.opacity = '0';
document.body.appendChild(ta); ta.select(); document.execCommand('copy');
document.body.removeChild(ta); onSuccess();
}
}
/* ── Section 4: LinkedIn copy ── */
function copyLi(btn, id) {
var el = document.getElementById(id);
var text = el.innerText || el.textContent;
function onSuccess() {
btn.textContent = '\u2713 Copi\u00e9 !';
btn.classList.add('copied');
setTimeout(function() { btn.textContent = 'Copier'; btn.classList.remove('copied'); }, 2000);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(onSuccess).catch(function() {
var ta = document.createElement('textarea'); ta.value = text;
ta.style.position = 'fixed'; ta.style.opacity = '0';
document.body.appendChild(ta); ta.select(); document.execCommand('copy');
document.body.removeChild(ta); onSuccess();
});
} else {
var ta = document.createElement('textarea'); ta.value = text;
ta.style.position = 'fixed'; ta.style.opacity = '0';
document.body.appendChild(ta); ta.select(); document.execCommand('copy');
document.body.removeChild(ta); onSuccess();
}
}
// Char counts for connection messages
document.querySelectorAll('[id^="li-conn-"]').forEach(function(el) {
var count = el.textContent.trim().length;
var counter = el.parentElement.querySelector('.li-char-count');
if (counter) counter.textContent = count + ' / 300 caract\u00e8res';
});
/* ── Section 5: Script accordion ── */
function togglePhase(header) {
var phase = header.parentElement;
var body = phase.querySelector('.sp-body');
var isOpen = phase.classList.contains('open');
phase.classList.toggle('open');
body.classList.toggle('open');
}
/* ── Section 7: ROI Calculator ── */
function calcROI() {
var budget = parseInt(document.getElementById('r-budget').value);
var rdvs = parseInt(document.getElementById('r-rdvs').value);
var taux = parseInt(document.getElementById('r-taux').value);
document.getElementById('cv-budget').innerHTML = budget.toLocaleString('fr-FR') + '&euro;';
document.getElementById('cv-rdvs').textContent = rdvs;
document.getElementById('cv-taux').textContent = taux + '%';
var coutActuel = Math.round(budget / rdvs);
var coutCv = 40;
var rdvsCv = Math.round(budget / coutCv);
var gainPct = Math.round(((rdvsCv - rdvs) / rdvs) * 100);
var ecoMensuelle = (coutActuel - coutCv) * rdvs;
var ecoAnnuelle = ecoMensuelle * 12;
animateValue('cr-cout', coutActuel, '\u20ac', true);
document.getElementById('cr-cout-cv').textContent = coutCv.toLocaleString('fr-FR') + '\u20ac';
animateValue('cr-rdvs-cv', rdvsCv, '', true);
document.getElementById('cr-gain').textContent = '+' + gainPct.toLocaleString('fr-FR') + '% de volume';
animateValue('cr-eco-mois', ecoMensuelle, '\u20ac', true);
animateValue('cr-eco', ecoAnnuelle, '\u20ac', true);
document.getElementById('cr-proj').innerHTML = 'Avec le m\u00eame budget de <strong>' + budget.toLocaleString('fr-FR') + '\u20ac/mois</strong>, vous obtenez <strong>' + rdvsCv.toLocaleString('fr-FR') + ' RDVs</strong> au lieu de <strong>' + rdvs + '</strong>.';
}
function animateValue(id, target, suffix, formatted) {
var el = document.getElementById(id);
var start = parseInt(el.textContent.replace(/[^\d\-]/g, '')) || 0;
var diff = target - start;
var duration = 400;
var startTime = null;
function step(ts) {
if (!startTime) startTime = ts;
var progress = Math.min((ts - startTime) / duration, 1);
var eased = 1 - Math.pow(1 - progress, 3);
var current = Math.round(start + diff * eased);
el.textContent = current.toLocaleString('fr-FR') + suffix;
if (progress < 1) requestAnimationFrame(step);
}
requestAnimationFrame(step);
}
calcROI();
/* ── Section 8: Kanban Pipeline ── */
var COLS = ['identifie', 'contacte', 'rdv', 'pilote', 'signe'];
var DEFAULT_CARDS = [
{ id: 'mce', name: 'Mon Courtier \u00c9nergie', vol: '50-100 RDV/mois', col: 'identifie' },
{ id: 'alliance', name: 'Alliance des \u00c9nergies', vol: '40-80 RDV/mois', col: 'identifie' },
{ id: 'atoo', name: 'ATOO \u00c9nergie', vol: '30-60 RDV/mois', col: 'identifie' },
{ id: 'capitole', name: 'Capitole \u00c9nergie', vol: '30-50 RDV/mois', col: 'identifie' },
{ id: 'opera', name: 'Op\u00e9ra \u00c9nergie', vol: '50-100 RDV/mois', col: 'identifie' }
];
function loadPipeline() {
var saved = localStorage.getItem('cv_pipeline');
return saved ? JSON.parse(saved) : JSON.parse(JSON.stringify(DEFAULT_CARDS));
}
function savePipeline(cards) {
localStorage.setItem('cv_pipeline', JSON.stringify(cards));
}
function renderPipeline() {
var cards = loadPipeline();
COLS.forEach(function(col) {
var body = document.querySelector('.kc-body[data-col="' + col + '"]');
body.innerHTML = '';
var colCards = cards.filter(function(c) { return c.col === col; });
colCards.forEach(function(c) {
var div = document.createElement('div');
div.className = 'kanban-card';
div.setAttribute('draggable', 'true');
div.setAttribute('data-id', c.id);
div.innerHTML = '<div class="kk-name">' + c.name + '</div><div class="kk-vol">' + c.vol + '</div>' +
'<div class="kk-mobile-move"><select class="kk-mobile-select" onchange="moveCard(\'' + c.id + '\', this.value)">' +
'<option value="">D\u00e9placer vers\u2026</option>' +
COLS.map(function(cc) {
var labels = { identifie: 'Identifi\u00e9', contacte: 'Contact\u00e9', rdv: 'RDV Obtenu', pilote: 'Pilote', signe: 'Sign\u00e9' };
return '<option value="' + cc + '"' + (cc === col ? ' disabled' : '') + '>' + labels[cc] + '</option>';
}).join('') +
'</select></div>';
div.addEventListener('dragstart', function(e) {
e.dataTransfer.setData('text/plain', c.id);
div.classList.add('dragging');
});
div.addEventListener('dragend', function() {
div.classList.remove('dragging');
document.querySelectorAll('.kc-body').forEach(function(b) { b.classList.remove('drag-over'); });
});
body.appendChild(div);
});
// Update count
var header = document.querySelector('.kc-header[data-col="' + col + '"]');
var countEl = header.querySelector('.kc-count');
countEl.textContent = '(' + colCards.length + ')';
});
// Drop zones
document.querySelectorAll('.kc-body').forEach(function(body) {
body.addEventListener('dragover', function(e) {
e.preventDefault();
body.classList.add('drag-over');
});
body.addEventListener('dragleave', function() {
body.classList.remove('drag-over');
});
body.addEventListener('drop', function(e) {
e.preventDefault();
body.classList.remove('drag-over');
var cardId = e.dataTransfer.getData('text/plain');
var targetCol = body.getAttribute('data-col');
moveCard(cardId, targetCol);
});
});
}
function moveCard(cardId, targetCol) {
if (!targetCol) return;
var cards = loadPipeline();
cards.forEach(function(c) {
if (c.id === cardId) c.col = targetCol;
});
savePipeline(cards);
renderPipeline();
}
function resetPipeline() {
localStorage.removeItem('cv_pipeline');
renderPipeline();
}
renderPipeline();
</script>
</body>
</html>