```json
{
    "title": "Legacy – 01 Industry Retail EN",
    "url": "https://kardinal.ai/route-optimization-for-ecommerce-retail/",
    "datePublished": "2023-02-25",
    "dateModified": "2026-08-25",
    "language": "en-GB",
    "description": "Kardinal helps ecommerce & retail players to plan their routes in an optimal way.",
    "author": "Kardinal",
    "publisher": "Kardinal"
}
```

# Legacy – 01 Industry Retail EN

.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

# Ecommerce & Retail

For retailers and pure players, logistics plays a major role in the customer experience, as it is often the last element in a shopping experience and the one that has the most impact, whether positive or negative.

This is why players have sought to push the limits of service quality, putting their logistics under increasing pressure.

.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-img{display:block;width:100%;height:100%;object-fit:cover}
 .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

 Vente-unique améliore son NPS de 20 points grâce à Kardinal.Vente-unique improves its NPS by 20 points with Kardinal.
 Vente-unique
 Ameublement & décorationFurniture & home decor
 [Lire le cas client](https://kardinal.ai/fr/temoignages-vente-unique/)
 [Read the client case](https://kardinal.ai/vente-unique-testimonials/)

 **Vente-unique

.kuce{--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}
 .kuce *{box-sizing:border-box}
 .kuce .en{display:none}
 :lang(en) .kuce .fr{display:none}
 :lang(en) .kuce .en{display:inline}
 .kuce .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
 .kuce-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px}
 .kuce-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;display:block}
 .kuce-eyebrow span{font:400 14px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--blue)}
 .kuce h2{font:700 40px/1.1 Inter,sans-serif;letter-spacing:-.025em;color:var(--tx);margin:0 0 44px;max-width:20ch}
 .kuce-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 .kuce-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}
 .kuce-card:hover{border-color:rgba(77,106,255,.32);box-shadow:0 16px 40px rgba(27,24,19,.05)}
 .kuce-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}
 .kuce-card h3{font:600 20px/1.3 Inter,sans-serif;letter-spacing:-.01em;color:var(--tx);margin:0 0 12px}
 .kuce-card p{font:400 15.5px/1.62 Inter,sans-serif;color:var(--mut);margin:0}
 @media(max-width:860px){
 .kuce{padding:56px 0}
 .kuce .wrap{padding:0 22px}
 .kuce h2{font-size:31px;margin-bottom:32px}
 .kuce-grid{grid-template-columns:1fr;gap:14px}
 .kuce-card{padding:26px 24px 28px}
 }

**Cas d'usageUse cases

 Cas d'usage pour l'e-commerce et le retailUse cases for Ecommerce and Retailers
 01
 Créneaux de livraison intelligentsSmart Delivery Slot
 Obtenez les créneaux de livraison disponibles pour les nouvelles commandes, sur la base des commandes et des ressources planifiées. Affichez le coût et l'impact en termes d'émissions de CO2 de chaque créneau horaire lors du choix de la livraison sur votre site e-commerce.Get available delivery timeslots for new orders, based on planned orders and resources. Display the cost and CO2 emissions impact of each timeslot when choosing the delivery on your ecommerce website.

 02
 Allocation aux consignes en temps réelReal-time Locker Allocation
 En cas d'absence, le chauffeur peut être envoyé à la consigne disponible la plus proche pour livrer le colis, en l'intégrant de manière optimale dans la tournée en cours.In case of absence, the driver can be sent to the nearest available locker to deliver the package, optimally integrating it into the current route.

 03
 Optimisation de tournées en continuContinuous Route Optimization
 Optimisez les tournées en continu de la première commande à la dernière livraison. Allouez les ressources en temps réel tout en respectant les attentes des clients.Optimizing routes continuously from first order to last delivery, allocating resources in real time while meeting customer expectations.

 04
 Suivi des ETAsETA Monitoring
 Obtenez une 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.

.krtl{--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}
.krtl *{box-sizing:border-box}
.krtl .en{display:none}
:lang(en) .krtl .fr{display:none}
:lang(en) .krtl .en{display:inline}
.krtl .wrap{max-width:1160px;margin:0 auto;padding:0 40px}
.krtl-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px}
.krtl-eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);flex:none;display:block}
.krtl-eyebrow span{font:400 14px 'Fakt Pro',Inter,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--blue)}
.krtl h2{font:700 40px/1.1 Inter,sans-serif;letter-spacing:-.025em;color:var(--tx);margin:0 0 12px;max-width:22ch}
.krtl .lede{font:400 16.5px/1.6 Inter,sans-serif;color:var(--mut);margin:0 0 30px;max-width:62ch}
/* onglets */
.krtl-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}
.krtl .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}
.krtl .cx-tab:hover,.krtl .cx-tab:focus,.krtl .cx-tab:active{outline:none !important}
.krtl .cx-tab:hover{color:var(--tx) !important;background:transparent !important}
.krtl .cx-tab:focus-visible{outline:2px solid var(--blue) !important;outline-offset:2px}
.krtl .cx-tab.active,.krtl .cx-tab.active:hover,.krtl .cx-tab.active:focus,.krtl .cx-tab.active:active{background:#fff !important;color:var(--tx) !important;box-shadow:0 1px 3px rgba(27,24,19,.08) !important}
.krtl .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}
.krtl .cx-tab.active .cx-tab-n{color:var(--blue);background:var(--blue-soft)}
.krtl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.krtl .cx-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 24px;display:flex;flex-direction:column}
.krtl .cx-card.hidden{display:none}
.krtl .cx-card.sig{border-color:rgba(77,106,255,.32);background:linear-gradient(180deg,var(--blue-soft),transparent 60%)}
.krtl .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}
.krtl .cx-badge i{width:7px;height:7px;border-radius:50%;display:block}
.krtl .cx-badge.classic{color:var(--soft);background:rgba(27,24,19,.05);border:1px solid var(--line)}
.krtl .cx-badge.classic i{background:#B8B2A6}
.krtl .cx-badge.advanced{color:var(--blue);background:var(--blue-soft);border:1px solid rgba(77,106,255,.20)}
.krtl .cx-badge.advanced i{background:#8AA0FF}
.krtl .cx-badge.signature{color:#fff;background:var(--blue);border:1px solid var(--blue)}
.krtl .cx-badge.signature i{background:#fff}
.krtl .cx-card h3{font:600 17.5px/1.35 Inter,sans-serif;letter-spacing:-.01em;color:var(--tx);margin:0 0 9px}
.krtl .cx-card p{font:400 14.5px/1.55 Inter,sans-serif;color:var(--mut);margin:0}
@media(max-width:900px){.krtl{padding:56px 0}.krtl .wrap{padding:0 22px}.krtl h2{font-size:30px}.krtl-grid{grid-template-columns:1fr 1fr}.krtl-tabs{display:flex;width:100%}}
@media(max-width:600px){.krtl-grid{grid-template-columns:1fr}.krtl .cx-tab{flex:1;justify-content:center;padding:10px 8px;font-size:13px}}

**Contraintes métierOperational constraints

Gérez les contraintes spécifiques à la livraison retail et e-commerce du dernier kilomètre.Handle Ecommerce & Retail last-mile 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.

ClassiqueClassic2AvancéAdvanced4Kardinal SignatureKardinal Signature2
**ClassiqueClassicPriorité des sous-traitantsSubcontractor priorityLes sous-traitants sont sollicités dans l'ordre de préférence que vous définissez.Subcontractors called on in the preference order you set.

**ClassiqueClassicLivraisons avant ouverturePre-opening windowsLes livraisons en magasin arrivent avant l'ouverture, pour les enseignes qui en ont besoin.Store deliveries landed before the shop opens, for chains that need it.

**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 one stuck with the long one.

**AvancéAdvancedGestion des clésKey managementLes clés de consignes et de sas sont rattachées à un seul chauffeur, choisi par le solveur.Locker and airlock keys keychained to a single driver the solver picks.

**AvancéAdvancedRayon d'action des véhiculesVehicle radiusUn plafond de distance par véhicule, pour désiloter les territoires multi-dépôts.A cap on how far each vehicle ranges, de-siloing multi-depot territories.

**AvancéAdvancedTemps de service selon la connaissance du terrainLocal knowledge service timesHors de son secteur habituel, un chauffeur met plus de temps, et le plan en tient compte.Off a driver's home turf, jobs take longer, and the plan knows it.

**Kardinal SignatureKardinal SignatureCoûts mixtesMixed costsLes sous-traitants sont payés au forfait plus variable, les chauffeurs internes au kilomètre, pour un coût unique consolidé.Subcontractors paid a flat rate + variable, in-house paid by the kilometer, one blended cost.

**Kardinal SignatureKardinal SignatureCréneaux d'accès privilégiésPrivileged access windowsLes chauffeurs disposant des clés peuvent livrer sur des horaires étendus, inaccessibles aux autres.Drivers holding the keys can deliver on extended hours others can't.

.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 .en{display:none}
 :lang(en) .kcta .fr{display:none}
 :lang(en) .kcta .en{display:inline}
 .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.Compare our coverage to the competition.
 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.Our benchmark pits 149 real business constraints against 10 routing APIs, sector by sector. Waste gets its own breakdown, and every result is verifiable at the source.

 [Voir le benchmark completSee the full benchmark](https://kardinal.ai/benchmark-route-optimization-api-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)

## Resources

.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/)
