diff --git a/src/components/sections/SolutionsSections.tsx b/src/components/sections/SolutionsSections.tsx index 3b9b850..2eefc64 100644 --- a/src/components/sections/SolutionsSections.tsx +++ b/src/components/sections/SolutionsSections.tsx @@ -642,51 +642,66 @@ function Sol01() { BEAT 02 — ELIMINATING DAILY FRICTION (Before vs DoorMile Control) LIGHT SECTION (sol-bg--white) — Visual Rhythm Break ============================================================ */ +/* Both card sets share one skeleton so the two tab views line up pixel-for-pixel + and nothing jumps when you toggle: fixed-height icon/stat header, then title, + body, then a bottom-pinned outcome line. */ const S02_OLD = [ { - badge: "Friction 01", - chip: "2.5x time on coordination", + icon: IcPhone, + statV: "2.5x", + statL: "Time on coordination", title: "20 Phone Calls for One Truck", body: "Operations managers waste hours calling drivers, hub managers and clients just to find out where a shipment is.", - foot: "Cost: your most experienced dispatcher spends the morning relaying, not deciding.", + footLbl: "Cost", + footTxt: "your most experienced dispatcher spends the morning relaying, not deciding.", }, { - badge: "Friction 02", - chip: "73% of delays start here", + icon: IcSheet, + statV: "73%", + statL: "Of delays start here", title: "Outdated Excel Spreadsheets", body: "Orders in one file, driver lists in another. When delays happen, nobody has the true status until clients complain.", - foot: "Cost: the handoff between two files is where the day quietly goes wrong.", + footLbl: "Cost", + footTxt: "the handoff between two files is where the day quietly goes wrong.", }, { - badge: "Friction 03", - chip: "28% higher cost to operate", + icon: IcArchive, + statV: "28%", + statL: "Higher cost to operate", title: "Paper Receipts & Invoicing Delays", body: "Waiting days for physical paper delivery receipts to return to the office before invoices can be processed.", - foot: "Cost: completed revenue sits in a glovebox instead of on an invoice.", + footLbl: "Cost", + footTxt: "completed revenue sits in a glovebox instead of on an invoice.", }, ]; const S02_DM = [ { - badge: "✓ DoorMile Control", - chip: "99.2% on-time", + icon: IcTracking, + statV: "99.2%", + statL: "On-time", title: "Live Real-Time GPS Tracking", body: "Every vehicle and shipment visible on one live map. ETAs update automatically without making a single phone call.", - foot: "Gain: status is answered in a glance, not a call chain.", + footLbl: "Gain", + footTxt: "status is answered in a glance, not a call chain.", }, { - badge: "✓ DoorMile Control", - chip: "40% fewer manual tasks", + icon: IcLayers, + statV: "40%", + statL: "Fewer manual tasks", title: "Single Connected Workspace", body: "Orders, vehicle capacity, driver dispatch and tracking sync live in one place for your entire team.", - foot: "Gain: one screen replaces the entire morning ritual.", + footLbl: "Gain", + footTxt: "one screen replaces the entire morning ritual.", }, { - badge: "✓ DoorMile Control", - chip: "3x faster response", + icon: IcBilling, + statV: "3x", + statL: "Faster response", title: "Instant Digital Proof of Receipt", body: "Digital signatures and OTP receipts captured at the doorstep — ready for instant billing reconciliation.", - foot: "Gain: the invoice is raised the moment the door closes.", + footLbl: "Gain", + footTxt: "the invoice is raised the moment the door closes.", }, ]; @@ -748,15 +763,21 @@ function Sol02() { {!isDm ? (
- {S02_OLD.map((c) => ( -
+ {S02_OLD.map((c, i) => ( +
- {c.badge} - {c.chip} + {c.icon} + + {c.statV} + {c.statL} +

{c.title}

{c.body}

- {c.foot} + + {c.footLbl} + {c.footTxt} +
))}
@@ -778,23 +799,33 @@ function Sol02() { ) : (
- {S02_DM.map((c) => ( -
+ {S02_DM.map((c, i) => ( +
- {c.badge} - {c.chip} + {c.icon} + + {c.statV} + {c.statL} +

{c.title}

{c.body}

- {c.foot} + + {c.footLbl} + {c.footTxt} +
))}
- {/* Secondary layer: supporting illustration + what changes */} + {/* Secondary layer: supporting illustration + what changes. + One bordered panel with the photo bled to the edge, so the + image and the copy read as a single object rather than two + loose halves floating on the white. */}
- / What actually changes / + +