// Bottom sections — Workflow, Testimonials, Pricing, FAQ, CTA, Footer // ───────── WORKFLOW ───────── function Workflow() { const steps = [ { n: "01", t: "Le client réserve", d: "Sur votre site ou directement par téléphone — la réservation arrive dans Yo car.", icon: "calendar-plus" }, { n: "02", t: "Confirmation auto", d: "Email + SMS envoyés. Acompte demandé. Contrat pré-rempli prêt à signer.", icon: "send" }, { n: "03", t: "Départ & check-in", d: "Photos, kilométrage, signature mobile. Tout est consigné dans le dossier.", icon: "key-round" }, { n: "04", t: "Retour & facture", d: "Check-out, restitution caution, facture envoyée, archivage automatique.", icon: "file-check" }, ]; return (
Workflow

De la demande au paiement, en 4 étapes.

Un flux pensé pour les agences. Aucune étape n’est oubliée.

{/* connecting line */}
{steps.map((s, i) => (
{s.n}

{s.t}

{s.d}

))}
); } // ───────── TESTIMONIALS ───────── function Testimonials() { const list = [ { quote: "On a divisé par 3 le temps passé sur les contrats. Mes équipes ne reviennent plus en arrière.", name: "Younes B.", role: "Gérant · Atlas Cars (Casablanca)", stars: 5, }, { quote: "Le calendrier de disponibilité a éliminé tous nos doubles bookings. Indispensable au quotidien.", name: "Sara M.", role: "Responsable flotte · Medina Rental", stars: 5, }, { quote: "Le site web synchronisé est un vrai plus. Nos prix sont toujours à jour, sans rien faire.", name: "Karim L.", role: "Fondateur · Maroc Drive", stars: 5, }, { quote: "Yo IA me sort en 2 secondes mon chiffre du mois. Avant je passais une heure sur Excel.", name: "Hassan T.", role: "Directeur · Sahara Auto (Marrakech)", stars: 5, }, ]; return (
{list.map((t, i) => (
{Array.from({ length: t.stars }).map((_, i) => ( ))}
« {t.quote} »
{t.name.split(" ").map((s) => s[0]).slice(0, 2).join("")}
{t.name}
{t.role}
))}
{/* Stats row */}
{[ ["+20", "agences accompagnées"], ["+100", "réservations traitées / mois"], ["4.9/5", "satisfaction clients"], ["−68%", "tâches manuelles"], ].map(([k, v]) => (
{k}
{v}
))}
); } // ───────── PRICING ───────── function Pricing() { const [yearly, setYearly] = useState(true); const tiers = [ { name: "Starter", tagline: "Idéal pour démarrer.", monthly: 290, yearly: 232, features: [ "Jusqu’à 10 véhicules", "Réservations & calendrier", "Contrats & paiements", "Application mobile", "Support email", ], cta: "Commencer", variant: "ghost", }, { name: "Pro", tagline: "Le choix des agences en croissance.", monthly: 590, yearly: 472, features: [ "Jusqu’à 40 véhicules", "Site web inclus & synchronisé", "Automatisations avancées", "Assistant IA Yo IA", "Équipe : 5 utilisateurs", "Support prioritaire", ], cta: "Choisir Pro", variant: "primary", highlight: true, }, { name: "Business", tagline: "Multi-agences & flotte étendue.", monthly: 990, yearly: 792, features: [ "Véhicules illimités", "Multi-agences / multi-villes", "Rapports avancés & API", "Utilisateurs illimités", "SLA dédié + onboarding", ], cta: "Parler à l’équipe", variant: "dark", }, ]; return (
Mensuel Annuel −20%
{tiers.map((tier, i) => { const price = yearly ? tier.yearly : tier.monthly; return (
{tier.highlight && ( Recommandé )}

{tier.name}

{tier.tagline}

{price} MAD / mois
{yearly ? `Facturé annuellement · ${price * 12} MAD / an` : "Facturé mensuellement · sans engagement"}
    {tier.features.map((f) => (
  • {f}
  • ))}
{tier.cta}
); })}
TVA non incluse · Paiement carte ou virement · Migration et formation incluses pour Pro et Business.
); } // ───────── FAQ ───────── function FAQ() { const qa = [ ["Combien de temps pour démarrer ?", "Comptez 1 jour ouvré : import de votre flotte, paramétrage de votre identité, formation rapide de votre équipe."], ["Yo car est-il adapté au marché marocain ?", "Oui — devise MAD, factures conformes, numéros CIN/passeport, signature mobile, paramétrage darija et français."], ["Puis-je garder mon site web actuel ?", "Bien sûr. Vous pouvez utiliser notre site synchronisé inclus, ou connecter votre site existant via une simple intégration."], ["Mes données sont-elles en sécurité ?", "Données chiffrées, sauvegardes quotidiennes, accès par rôles. Hébergement européen et conforme."], ["Puis-je tester gratuitement ?", "Oui. Sur demande de démo, nous offrons un essai gratuit de 14 jours sur un compte complet."], ["Que se passe-t-il si j’arrête ?", "Vous récupérez vos données à tout moment (CSV / PDF). Aucun engagement, vous restez maître de votre activité."], ]; const [open, setOpen] = useState(0); return (
{qa.map(([q, a], i) => { const isOpen = open === i; return ( ); })}
); } // ───────── FINAL CTA ───────── function FinalCTA() { const [submitted, setSubmitted] = useState(false); const [submitting, setSubmitting] = useState(false); const [submitError, setSubmitError] = useState(""); const handleSubmit = async (event) => { event.preventDefault(); const form = event.currentTarget; setSubmitted(false); setSubmitError(""); setSubmitting(true); try { const sendRequest = fetch("api/send-demo.php", { method: "POST", headers: { "Accept": "application/json" }, body: new FormData(form), }); const [response] = await Promise.all([ sendRequest, new Promise((resolve) => window.setTimeout(resolve, 700)), ]); const data = await response.json().catch(() => ({})); if (!response.ok || !data.ok) { throw new Error(data.message || "Impossible d’envoyer la demande pour le moment."); } form.reset(); setSubmitted(true); } catch (error) { setSubmitError(error.message || "Une erreur est survenue. Veuillez réessayer."); } finally { setSubmitting(false); } }; return (
Démarrer

Prêt à passer à Yo car ?

Réservez une démo gratuite de 20 minutes. On vous montre comment Yo car peut s’adapter à votre agence — et on configure votre compte avec vous.

Réserver une démo Nous appeler
Essai 14 jours gratuits Sans carte bancaire Migration incluse
{/* Mini form card */}
Demander une démo
On vous rappelle sous 24h ouvrées.
{[ ["full_name", "Nom complet", "Karim Alaoui", "user", "text"], ["agency_name", "Nom de votre agence", "Atlas Cars", "building-2", "text"], ["phone", "Téléphone", "+212 6 12 34 56 78", "phone", "tel"], ["email", "Email professionnel", "karim@atlas-cars.ma", "mail", "email"], ].map(([name, label, ph, ic, type]) => ( ))}
{submitted && (
Merci, votre demande a bien été envoyée. Notre équipe vous contactera bientôt.
)} {submitError && (
{submitError}
)}
En envoyant, vous acceptez notre politique de confidentialité.
Démo en 20 min
); } // ───────── FOOTER ───────── function Footer() { return ( ); } Object.assign(window, { Workflow, Testimonials, Pricing, FAQ, FinalCTA, Footer });