```json
{
    "title": "Legacy – 01 Industry Courier FR",
    "url": "https://kardinal.ai/fr/optimisation-de-tournees-pour-les-courses-urbaines/",
    "datePublished": "2023-04-11",
    "dateModified": "2026-08-19",
    "language": "en-GB",
    "description": "Kardinal aide les acteurs des courses urbaines à planifier des tournées qui répondent aux besoins de leurs clients. Découvrez notre solution.",
    "author": "Kardinal",
    "publisher": "Kardinal"
}
```

# Legacy – 01 Industry Courier FR

.kd-halo{
 /* --- réglages --- */
 --halo-color:77,106,255; /* bleu Kardinal en RGB */
 --halo-size:820px; /* diamètre de la lueur */
 --halo-x:90%; /* position horizontale du centre (0% = gauche) */
 --halo-y:500%; /* position verticale du centre (0% = haut) */
 --halo-opacity:.30; /* intensité max (0 à 1) */
 position:absolute; z-index:0; pointer-events:none;
 top:var(--halo-y); left:var(--halo-x); transform:translate(-50%,-50%);
 width:var(--halo-size); height:var(--halo-size); max-width:120vw;
 border-radius:50%;
 background:radial-gradient(circle at center,
 rgba(var(--halo-color),var(--halo-opacity)) 0%,
 rgba(var(--halo-color),calc(var(--halo-opacity) * .35)) 34%,
 transparent 68%);
 filter:blur(12px);
 }

.kd-eyebrow{
 --blue:#4D6AFF;
 display:inline-flex; align-items:center; gap:11px; margin:0;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase;
 color:var(--blue); line-height:1;
 }
 .kd-eyebrow::before{
 content:""; width:8px; height:8px; border-radius:50%;
 background:var(--blue); flex:none;
 }

Kardinal Transport

# Courses urbaines

Les coursiers urbains collectent en temps réel des marchandises à livrer le jour même. Les commandes arrivent tout au long de la journée et sont immédiatement envoyées à une flotte de véhicules réactifs, souvent composés en partie de 2 roues et de véhicules légers.

Comme dans toute activité logistique B2B2C, les exigences en matière de qualité de service augmentent, de même que le turnover des chauffeurs.

Le principal défi des entreprises de ce secteur est donc aujourd'hui de se réinventer pour maintenir leur qualité de service.

.kbtn-row{ display:flex; justify-content:flex-end; width:100%; }
 .kbtn{
 display:inline-flex; align-items:center; gap:10px;
 background:transparent; color:#fff;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 font-weight:600; font-size:15px; line-height:1;
 border:1px solid rgba(255,255,255,.28); border-radius:12px; padding:13px 22px;
 text-decoration:none; cursor:pointer;
 transition:border-color .15s ease, background .15s ease;
 }
 .kbtn:hover{ border-color:rgba(77,106,255,.9); background:rgba(77,106,255,.10); color:#fff; }
 .kbtn svg{ width:18px; height:18px; fill:none; stroke:#4D6AFF; stroke-width:2.4;
 stroke-linecap:round; stroke-linejoin:round; transition:transform .15s ease; }
 .kbtn:hover svg{ transform:translateX(4px); }
 @media (max-width:560px){
 .kbtn-row{ justify-content:stretch; }
 .kbtn{ width:100%; justify-content:center; }
 }

[Contact us](#)

.kcc{--bg:#FBFAF6;--card:#FFFFFF;--line:rgba(27,24,19,.10);--tx:#1B1813;--mut:#6B6558;--soft:#8A8377;--blue:#4D6AFF;--blue-hover:#3A56E6;--blue-soft:rgba(77,106,255,.10);
 position:relative;z-index:0;isolation:isolate;background:var(--bg);color:var(--tx);margin:0;padding:88px 0;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
 .kcc *{box-sizing:border-box}
 .kcc .en{display:none}
 :lang(en) .kcc .fr{display:none}
 :lang(en) .kcc .en{display:inline}
 .kcc a.fr{display:inline-flex}
 .kcc a.en{display:none}
 :lang(en) .kcc a.fr{display:none}
 :lang(en) .kcc a.en{display:inline-flex}
 .kcc .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
 .kcc-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:64px;align-items:center}
 .kcc-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px}
 .kcc-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;display:block}
 .kcc-eyebrow span{font:400 14px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--blue)}
 .kcc h2{font:700 33px/1.24 Inter,sans-serif;letter-spacing:-.02em;color:var(--tx);margin:0 0 26px;max-width:20ch}
 .kcc h2 b{color:var(--blue);font-weight:700}
 .kcc-meta{display:flex;align-items:center;gap:12px;margin:0 0 32px}
 .kcc-ava{flex:none;width:42px;height:42px;border-radius:11px;background:var(--blue-soft);border:1px solid rgba(77,106,255,.22);display:flex;align-items:center;justify-content:center;font:700 13px Inter,sans-serif;color:var(--blue);letter-spacing:.02em}
 .kcc-who{line-height:1.3}
 .kcc-who .n{font:600 15px Inter,sans-serif;color:var(--tx)}
 .kcc-who .s{font:400 13.5px Inter,sans-serif;color:var(--mut)}
 .kcc-cta{align-items:center;gap:10px;background:var(--blue);color:#fff !important;text-decoration:none;font:600 15px Inter,sans-serif;padding:14px 24px;border-radius:12px;transition:background .15s ease}
 .kcc-cta:hover{background:var(--blue-hover)}
 .kcc-cta svg{width:16px;height:16px;transition:transform .15s ease}
 .kcc-cta:hover svg{transform:translateX(4px)}
 /* media */
 .kcc-media{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);
 box-shadow:0 30px 70px -34px rgba(27,24,19,.32),0 10px 24px -18px rgba(77,106,255,.30);
 aspect-ratio:16/11;background:linear-gradient(135deg,#EDEBE4,#E3E7F5)}
 .kcc .kcc-media img.kcc-img{display:block !important;width:100% !important;height:100% !important;max-width:none !important;object-fit:cover !important;object-position:center top !important;margin:0 !important;border:none !important}
 .kcc-tag{position:absolute;left:18px;bottom:18px;display:inline-flex;align-items:center;gap:9px;
 background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border:1px solid rgba(27,24,19,.08);
 border-radius:999px;padding:8px 14px 8px 12px;box-shadow:0 8px 22px -12px rgba(27,24,19,.30)}
 .kcc-tag i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none}
 .kcc-tag span{font:600 13px Inter,sans-serif;color:var(--tx)}
 @media(max-width:900px){
 .kcc{padding:56px 0}.kcc .wrap{padding:0 22px}
 .kcc-grid{grid-template-columns:1fr;gap:30px}
 .kcc h2{font-size:26px}
 .kcc-media{order:-1}
 }

**Cas clientClient case

 Comment le Groupe STERNE a optimisé la planification de ses livraisons urbaines.How the STERNE Group optimized the planning of its urban deliveries.
 Groupe STERNE
 Transport urgent et sur-mesureUrgent & on-demand delivery
 [Lire le cas client](https://kardinal.ai/fr/temoignages-groupe-sterne/)
 [Read the client case](https://kardinal.ai/sterne-group-testimonials/)

 **Groupe STERNE

.kucu{--bg:#FBFAF6;--card:#FFFFFF;--line:rgba(27,24,19,.10);--tx:#1B1813;--mut:#6B6558;--soft:#8A8377;--blue:#4D6AFF;--blue-soft:rgba(77,106,255,.09);
 position:relative;z-index:0;isolation:isolate;background:var(--bg);color:var(--tx);margin:0;padding:80px 0;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
 .kucu *{box-sizing:border-box}
 .kucu .en{display:none}
 :lang(en) .kucu .fr{display:none}
 :lang(en) .kucu .en{display:inline}
 .kucu .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
 .kucu-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px}
 .kucu-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;display:block}
 .kucu-eyebrow span{font:400 14px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--blue)}
 .kucu h2{font:700 40px/1.1 Inter,sans-serif;letter-spacing:-.025em;color:var(--tx);margin:0 0 44px;max-width:20ch}
 .kucu-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 .kucu-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 30px 32px;transition:border-color .18s ease,box-shadow .18s ease}
 .kucu-card:hover{border-color:rgba(77,106,255,.32);box-shadow:0 16px 40px rgba(27,24,19,.05)}
 .kucu-idx{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:28px;padding:0 10px;border-radius:8px;background:var(--blue-soft);border:1px solid rgba(77,106,255,.20);color:var(--blue);font:600 13px 'JetBrains Mono',ui-monospace,monospace;margin-bottom:18px}
 .kucu-card h3{font:600 20px/1.3 Inter,sans-serif;letter-spacing:-.01em;color:var(--tx);margin:0 0 12px}
 .kucu-card p{font:400 15.5px/1.62 Inter,sans-serif;color:var(--mut);margin:0}
 @media(max-width:860px){
 .kucu{padding:56px 0}
 .kucu .wrap{padding:0 22px}
 .kucu h2{font-size:31px;margin-bottom:32px}
 .kucu-grid{grid-template-columns:1fr;gap:14px}
 .kucu-card{padding:26px 24px 28px}
 }

**Cas d'usageUse cases

 Cas d'usage pour les courses urbainesUse cases for Urban Delivery
 01
 Dispatch de nouveaux ordres en temps réelNew Order Dispatch in Real Time
 Les algorithmes de Kardinal optimisent la répartition des nouvelles commandes en temps réel en tenant compte de la localisation des coursiers, des conditions de trafic et du plan de tournée en cours.Kardinal's algorithms optimize order distribution in real time by taking into account the location of couriers, traffic conditions and current order plans.

 02
 Prise de rendez-vous intelligenteSmart Meeting Appointment
 Obtenez des recommandations optimisées pour les créneaux horaires d'enlèvement et de livraison au moment de la prise de nouvelles commandes.Get optimized recommendations for pickup and delivery timeslots before taking new orders.

 03
 Optimisation de tournées en continuContinuous Route Optimization
 Kardinal optimise les tournées des chauffeurs en temps réel afin de tenir compte des retards, du trafic et des modifications du planning réalisées par les dispatchers.As drivers complete their assigned route, Kardinal optimizes it in real time to account for driver delays, traffic, and changes made by dispatchers.

 04
 Suivi d'ETAsETA Monitoring
 Bénéficiez de la mise à jour en temps réel de l'heure d'arrivée du conducteur en fonction des conditions de circulation actuelles.Get a real-time update of the driver's arrival time depending on current traffic conditions.

.kucc{--bg:#FBFAF6;--card:#FFFFFF;--line:rgba(27,24,19,.10);--tx:#1B1813;--mut:#6B6558;--soft:#8A8377;--blue:#4D6AFF;--blue-soft:rgba(77,106,255,.07);
 position:relative;z-index:0;isolation:isolate;background:var(--bg);color:var(--tx);margin:0;padding:80px 0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.kucc *{box-sizing:border-box}
.kucc .en{display:none}
:lang(en) .kucc .fr{display:none}
:lang(en) .kucc .en{display:inline}
.kucc .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
.kucc-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px}
.kucc-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;display:block}
.kucc-eyebrow span{font:400 14px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--blue)}
.kucc h2{font:700 40px/1.1 Inter,sans-serif;letter-spacing:-.025em;color:var(--tx);margin:0 0 12px;max-width:24ch}
.kucc .lede{font:400 16.5px/1.6 Inter,sans-serif;color:var(--mut);margin:0 0 30px;max-width:62ch}
/* onglets */
.kucc-tabs{display:inline-flex;flex-wrap:wrap;gap:8px;margin:0 0 34px;padding:6px;background:#F1EEE7;border:1px solid var(--line);border-radius:14px}
.kucc .cx-tab{display:inline-flex;align-items:center;gap:9px;font:600 14px Inter,sans-serif;color:var(--mut) !important;background:transparent !important;border:0 !important;border-radius:9px;padding:10px 16px;cursor:pointer;font-family:inherit;outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent;transition:background .16s ease,color .16s ease}
.kucc .cx-tab:hover,.kucc .cx-tab:focus,.kucc .cx-tab:active{outline:none !important}
.kucc .cx-tab:hover{color:var(--tx) !important;background:transparent !important}
.kucc .cx-tab:focus-visible{outline:2px solid var(--blue) !important;outline-offset:2px}
.kucc .cx-tab.active,.kucc .cx-tab.active:hover,.kucc .cx-tab.active:focus,.kucc .cx-tab.active:active{background:#fff !important;color:var(--tx) !important;box-shadow:0 1px 3px rgba(27,24,19,.08) !important}
.kucc .cx-tab-n{font:600 11px 'Fakt Pro',Inter,system-ui,sans-serif;color:var(--soft);background:rgba(27,24,19,.05);border-radius:999px;padding:2px 8px}
.kucc .cx-tab.active .cx-tab-n{color:var(--blue);background:var(--blue-soft)}
.kucc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.kucc .cx-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 24px;display:flex;flex-direction:column}
.kucc .cx-card.hidden{display:none}
.kucc .cx-card.sig{border-color:rgba(77,106,255,.32);background:linear-gradient(180deg,var(--blue-soft),transparent 60%)}
.kucc .cx-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font:600 10.5px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;padding:4px 9px 4px 8px;border-radius:999px;margin-bottom:16px;white-space:nowrap}
.kucc .cx-badge i{width:7px;height:7px;border-radius:50%;display:block}
.kucc .cx-badge.classic{color:var(--soft);background:rgba(27,24,19,.05);border:1px solid var(--line)}
.kucc .cx-badge.classic i{background:#B8B2A6}
.kucc .cx-badge.advanced{color:var(--blue);background:var(--blue-soft);border:1px solid rgba(77,106,255,.20)}
.kucc .cx-badge.advanced i{background:#8AA0FF}
.kucc .cx-badge.signature{color:#fff;background:var(--blue);border:1px solid var(--blue)}
.kucc .cx-badge.signature i{background:#fff}
.kucc .cx-card h3{font:600 17.5px/1.35 Inter,sans-serif;letter-spacing:-.01em;color:var(--tx);margin:0 0 9px}
.kucc .cx-card p{font:400 14.5px/1.55 Inter,sans-serif;color:var(--mut);margin:0}
@media(max-width:900px){.kucc{padding:56px 0}.kucc .wrap{padding:0 22px}.kucc h2{font-size:30px}.kucc-grid{grid-template-columns:1fr 1fr}.kucc-tabs{display:flex;width:100%}}
@media(max-width:600px){.kucc-grid{grid-template-columns:1fr}.kucc .cx-tab{flex:1;justify-content:center;padding:10px 8px;font-size:13px}}

**Contraintes métierOperational constraints

Gérez les contraintes spécifiques aux courses urbaines.Handle Urban Delivery specific constraints.
Du socle attendu aux règles signature que presque personne ne sait modéliser, choisissez un niveau pour voir ce que l'optimisation prend en compte.From the expected baseline to the signature rules almost no one can model, pick a level to see what the optimization accounts for.

ClassiqueClassic4AvancéAdvanced3Kardinal SignatureKardinal Signature2
**ClassiqueClassicEnlèvement et livraisonPickup & DeliveryEnlèvement et livraison traités comme un seul point de passage, avec livraison déclenchée immédiatement après l'enlèvement quand c'est nécessaire.Pickup and delivery treated as one stop, with delivery triggered right after pickup when needed.

**ClassiqueClassicCréneaux horairesTime windowsChaque commande a ses propres créneaux d'enlèvement et de livraison, optimaux ou obligatoires, pour guider la meilleure décision.Each order carries its own pickup and delivery windows, optimal or mandatory, to guide the best decision.

**ClassiqueClassicProfils de véhicules dernier kilomètreLast-mile vehicle profilesVélos, scooters, piétons, fourgons : le bon type de véhicule pour chaque partie de la ville.Bikes, scooters, walkers, vans: the right vehicle type for each leg of the city.

**ClassiqueClassicPauses chauffeurDriver breaksLes pauses sont positionnées pendant le service du chauffeur, dans la plage horaire que vous définissez.Breaks placed inside the shift on the window you define.

**AvancéAdvancedTemps maximal entre l'enlèvement et la livraisonMaximum pickup-to-delivery timeUn délai maximum entre l'enlèvement et la livraison, pour les marchandises qui ne doivent pas rester trop longtemps dans le véhicule.A maximum delay between pickup and delivery, for goods that can't stay too long in the vehicle.

**AvancéAdvancedTrafic prédictif et en temps réelPredictive & real-time trafficTrafic prévu et trafic en temps réel intégrés avant l'optimisation, pour des itinéraires fiables du premier coup.Forecast and real-time traffic both baked in before optimizing, for routes that are reliable from the start.

**AvancéAdvancedÉquilibrage des tournéesRoute balancingLe temps de travail est réparti équitablement entre les tournées, sans qu'un chauffeur n'hérite systématiquement de la plus longue.Working time evenly spread across routes, no driver stuck with the long one.

**Kardinal SignatureKardinal SignatureCapacités de transport complexesComplex transport capacitiesDes véhicules à compartiments multiples, chacun avec sa propre température de stockage.Multi-compartment vehicles, each with its own storage temperature.

**Kardinal SignatureKardinal SignatureZones préféréesPreferred zonesLes chauffeurs restent associés à leur secteur habituel, rééquilibré automatiquement en cas de surcharge.Drivers softly tied to their usual area, auto-rebalanced when it overflows.

.kcta{--bg:#FBFAF6;--tx:#1B1813;--blue:#4D6AFF;--blue-hover:#3A56E6;--dk:#0B0A0F;--dk-tx:#F5F2EA;--dk-mut:#A6A093;--dk-blue:#4D6AFF;--dk-line:rgba(255,255,255,.12);
 position:relative;z-index:0;isolation:isolate;background:var(--bg);margin:0;padding:40px 0 88px;
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
 .kcta *{box-sizing:border-box}
 .kcta .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
 .kcta-card{position:relative;overflow:hidden;background:var(--dk);border-radius:22px;padding:46px 48px;
 display:flex;align-items:center;justify-content:space-between;gap:36px;
 background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px}
 .kcta-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(110% 130% at 88% -20%,rgba(77,106,255,.30),transparent 60%)}
 .kcta-card>*{position:relative}
 .kcta-txt{max-width:640px}
 .kcta-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px}
 .kcta-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--dk-blue);flex:none;display:block}
 .kcta-eyebrow span{font:400 13px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--dk-blue)}
 .kcta-card h2{font:700 30px/1.16 Inter,sans-serif;letter-spacing:-.022em;color:#fff;margin:0 0 12px;max-width:22ch}
 .kcta-card p{font:400 16px/1.6 Inter,sans-serif;color:var(--dk-mut);margin:0}
 .kcta-btn{flex:none;display:inline-flex;align-items:center;gap:10px;background:var(--blue);color:#fff !important;text-decoration:none;font:600 15.5px Inter,sans-serif;padding:16px 26px;border-radius:12px;transition:background .15s ease}
 .kcta-btn:hover{background:var(--blue-hover)}
 .kcta-btn svg{width:17px;height:17px}
 @media(max-width:860px){
 .kcta{padding:24px 0 60px}
 .kcta .wrap{padding:0 22px}
 .kcta-card{flex-direction:column;align-items:flex-start;padding:34px 28px;gap:26px}
 .kcta-card h2{font-size:25px}
 .kcta-btn{width:100%;justify-content:center}
 }

**Benchmark

 Comparez notre couverture à celle de la concurrence.
 Notre benchmark confronte 149 contraintes métier réelles à 10 API d'optimisation, secteur par secteur. Le transport de déchets y a sa propre analyse, et chaque résultat est vérifiable à la source.

 [Voir le benchmark complet](https://kardinal.ai/fr/benchmark-api-optimisation-tournees-2026/)

.kdc{
 --bg:#0E0D10; --card:#1A1820; --line:rgba(255,255,255,.10);
 --tx:#FFFFFF; --mut:#A8A29A; --blue:#4D6AFF;
 padding:80px 0; margin:0;
 background:var(--bg);
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 }
 .kdc *{box-sizing:border-box}
 .kdc-wrap{max-width:1240px;margin:0 auto;padding:0 40px}
 .kdc-card{
 position:relative; overflow:hidden;
 display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
 background:var(--card); border:1px solid var(--line); border-radius:28px;
 }
 /* halo bleu discret en haut à gauche */
 .kdc-card::before{content:"";position:absolute;top:-140px;left:-80px;width:420px;height:420px;
 border-radius:50%;background:radial-gradient(circle at center,rgba(77,106,255,.22),transparent 70%);
 pointer-events:none;z-index:0}
 /* ---- colonne texte ---- */
 .kdc-left{position:relative;z-index:1;padding:60px 56px;display:flex;flex-direction:column;justify-content:center}
 .kdc .kdc-left img.kdc-logo{height:20px !important;width:auto !important;max-width:150px !important;display:block;margin:0 0 28px}
 .kdc-h{font:600 22px/1.35 Inter;letter-spacing:-.01em;color:var(--tx);margin:0 0 30px;max-width:380px}
 .kdc-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;
 background:var(--blue);color:#fff;text-decoration:none;font:600 15px Inter;
 border-radius:12px;padding:14px 24px;transition:background .15s ease}
 .kdc-btn:hover{background:#3a56e6;color:#fff}
 .kdc-btn svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}
 .kdc-btn:hover svg{transform:translateX(4px)}
 /* ---- colonne image ---- */
 .kdc-media{position:relative;min-height:340px}
 .kdc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
 @media (max-width:900px){
 .kdc{padding:56px 0}
 .kdc-wrap{padding:0 22px}
 .kdc-card{grid-template-columns:1fr}
 .kdc-left{padding:44px 30px;order:2}
 .kdc-media{order:1;min-height:240px}
 .kdc-h{font-size:20px}
 .kdc-btn{width:100%;justify-content:center;align-self:stretch}
 }

Would you like to discuss your challenges with our team?
 [Contact us](https://kardinal.ai/contact)

## Ressources

.kr{
 --bg:#FBFAF6; --card:#16141C; --line:rgba(27,24,19,.10);
 --tx:#FFFFFF; --mut:#A8A29A; --blue:#4D6AFF;
 padding:20px 0; margin:0; background:var(--bg);
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
 }
 .kr *{box-sizing:border-box}
 .kr-wrap{max-width:none;margin:0 auto;padding:0 0px}
 .kr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
 /* ---- carte ---- */
 .kr-card{
 position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
 min-height:330px; padding:24px; text-decoration:none;
 background:var(--card); background-size:cover; background-position:center;
 border:1px solid var(--line); border-radius:20px;
 transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
 }
 .kr-card:hover{transform:translateY(-4px);border-color:rgba(77,106,255,.45);box-shadow:0 18px 40px rgba(27,24,19,.12)}
 /* halo bleu si pas d'image */
 .kr-card::after{content:"";position:absolute;top:-120px;right:-90px;width:320px;height:320px;border-radius:50%;
 background:radial-gradient(circle at center,rgba(77,106,255,.20),transparent 70%);pointer-events:none;z-index:0}
 /* voile sombre pour lisibilite quand il y a une image de fond */
 .kr-card::before{content:"";position:absolute;inset:0;z-index:0;
 background:linear-gradient(to bottom,rgba(10,9,12,.30) 0%,rgba(10,9,12,.55) 55%,rgba(10,9,12,.92) 100%)}
 .kr-card > *{position:relative;z-index:1}
 .kr-chip{position:absolute;top:26px;left:26px;z-index:1;display:inline-flex;align-items:center;
 background:var(--blue);color:#fff;font:700 11px Inter;letter-spacing:.10em;text-transform:uppercase;
 padding:6px 13px;border-radius:999px}
 .kr-title{margin:0 0 18px;color:var(--tx);font:600 21px/1.3 Inter;letter-spacing:-.01em;text-shadow:0 1px 8px rgba(0,0,0,.4)}
 /* lien fleche + bouton : caches par defaut, apparaissent au survol de la carte */
 .kr-link,.kr-btn{opacity:0;transform:translateY(10px);
 transition:opacity .2s ease, transform .2s ease, gap .15s ease, background .15s ease}
 .kr-card:hover .kr-link,.kr-card:hover .kr-btn,
 .kr-card:focus-within .kr-link,.kr-card:focus-within .kr-btn{opacity:1;transform:translateY(0)}
 /* lien fleche, stylise comme un bouton */
 .kr-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;
 font:600 14px Inter;border-radius:12px;padding:13px 20px}
 .kr-link:hover{background:#3a56e6}
 .kr-link svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
 /* bouton (carte brochure) */
 .kr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;
 font:600 14px Inter;border-radius:12px;padding:13px 20px}
 .kr-btn:hover{background:#3a56e6}
 .kr-btn svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
 /* ecrans tactiles : pas de survol possible, on affiche toujours */
 @media (hover:none){ .kr-link,.kr-btn{opacity:1;transform:none} }
 @media (max-width:980px){ .kr-grid{grid-template-columns:repeat(2,1fr)} }
 @media (max-width:620px){
 .kr{padding:56px 0}
 .kr-wrap{padding:0 22px}
 .kr-grid{grid-template-columns:1fr}
 .kr-title{font-size:19px}
 }

[Brochure Kardinal's Route Optimization Solution Download the brochure](https://kardinal.ai/kardinal-brochure/)

 [Success story How Vente-unique improved its NPS by 20 points with Kardinal Read the story](https://kardinal.ai/vente-unique-testimonials/)

 [Success story How the STERNE Group optimized the planning of its urban deliveries Read the story](https://kardinal.ai/sterne-group-testimonials/)

 [Report The different levels of route optimization Read the report](https://kardinal.ai/report-the-different-types-of-route-optimization/)

 [Guide Route optimization: comparison of the best software solutions Read the guide](https://kardinal.ai/guide-route-optimization-comparison-best-software-solutions/)

 [Report What route optimization to meet the challenges of the parcel delivery industry? Read the report](https://kardinal.ai/report-what-route-optimization-to-meet-the-challenges-of-the-parcel-delivery-industry/)
