/* ===== FUNNEL — rassurer, prouver, lever les objections, convertir (en douceur) ===== */ /* 1 — COMMENT ÇA SE PASSE : on enlève la peur avant de demander quoi que ce soit */ const STEPS = [ ["Tu nous appelles (ou on te rappelle)", "Tu expliques ton souci avec tes mots à toi. Pas besoin de connaître les termes techniques — c'est notre métier, pas le tien."], ["On regarde, et le diagnostic est gratuit", "On te dit clairement ce qui cloche, combien ça coûte et combien de temps ça prend. Tu décides ensuite, tranquillement, sans aucune pression."], ["On répare, et on t'explique tout", "On remet tout d'aplomb — et on prend le temps de te montrer, pour que tu sois plus serein qu'avant qu'on arrive."], ]; function Process({ onCall }) { return (
Comment ça se passe

Simple, et sans stress.

On sait qu'un ordi qui plante, ça angoisse. Alors on a fait en sorte que tout soit clair de bout en bout — trois étapes, et c'est réglé.

{STEPS.map(([t, d], i) => (
{i + 1}

{t}

{d}

))}

Sans engagement · on rappelle le soir même, entre 17h et 22h

); } /* 2 — TÉMOIGNAGES : la preuve sociale, centrée sur l'humain (patience, zéro jugement) */ const QUOTES = [ { q: "J'avais un peu honte de poser des questions « bêtes ». En fait il n'y en a pas avec lui — il m'a tout réexpliqué calmement, deux fois s'il le fallait.", n: "Monique", d: "71 ans · Hérouville", i: "M" }, { q: "Ordi planté la veille d'un dossier important. Réglé le soir même, et en plus il m'a montré comment éviter que ça recommence. Un vrai soulagement.", n: "Karim", d: "Caen centre", i: "K" }, { q: "Mon PC gamer monté pièce par pièce, pile dans mon budget. Propre, puissant, et zéro prise de tête. Je recommande les yeux fermés.", n: "Théo", d: "Mondeville", i: "T" }, ]; function Stars({ color = "var(--accent)" }) { return ( {[0, 1, 2, 3, 4].map((i) => )} ); } function Testimonials() { return (
Ils nous ont appelés

On ne juge jamais.
On explique toujours.

Ce qui revient le plus : patient, clair, et humain.
{QUOTES.map((c, i) => (

« {c.q} »

{c.i}
{c.n}
{c.d}
))}
); } /* 3 — ENGAGEMENTS : on lève les dernières objections, juste avant de demander le contact */ const VOWS = [ ["shield", "Diagnostic & devis gratuits", "Tu sais toujours combien ça coûte avant qu'on commence quoi que ce soit."], ["chat", "Zéro jargon, zéro jugement", "On parle simplement, à ton rythme. Et on ne te fera jamais sentir « nul »."], ["heart", "Satisfait, ou on revient", "Si ce n'est pas réglé, on repasse — sans te recompter le déplacement."], ["grad", "On te rend autonome", "Notre but, ce n'est pas que tu rappelles : c'est que tu te débrouilles."], ]; function Engagements({ onCall }) { return (
Nos engagements

Des promesses, tenues à chaque visite

Faire appel à quelqu'un pour son informatique, ça demande de la confiance. Voilà ce sur quoi tu peux compter, à chaque fois.

{VOWS.map(([ic, t, d], i) => (

{t}

{d}

))}
Un doute, une question, un truc qui t'embête depuis des semaines ? Parlons-en, c'est gratuit.
); } /* 4 — BARRE FLOTTANTE : on garde l'action à portée de main, sans agresser */ function StickyCTA({ onCall, enabled = true }) { const [show, setShow] = useState(false); const [closed, setClosed] = useState(false); useEffect(() => { if (!enabled) { setShow(false); return; } const onScroll = () => { const sc = window.scrollY || document.documentElement.scrollTop || 0; const vh = window.innerHeight; const past = sc > vh * 0.9; const contact = document.getElementById("contact"); const near = contact ? contact.getBoundingClientRect().top < vh * 0.9 : false; setShow(past && !near); }; onScroll(); window.addEventListener("scroll", onScroll, { passive: true }); window.addEventListener("resize", onScroll); return () => { window.removeEventListener("scroll", onScroll); window.removeEventListener("resize", onScroll); }; }, [enabled]); if (!enabled || closed) return null; return (
Une question ? On t'écoute, gratuitement.
On te rappelle le soir même, sans engagement · 7j/7
06 58 66 54 93
); } Object.assign(window, { Process, Testimonials, Engagements, StickyCTA, Stars });