/* ============================================================ Guero's Group — Hub pages (Home / Group / Services / Coverage / Contact) ============================================================ */ /* ---------- Shared CTA band ---------- */ function CTABand() { const { go } = useContext(NavCtx); return (
{L("Talk to the group", "Parlez au groupe")}

{L("Not sure which service you need?", "Vous h\u00e9sitez entre nos services ?")}

{L("Tell us what you're trying to move or fix. One message reaches both desks.", "Dites-nous ce que vous devez d\u00e9placer ou r\u00e9parer. Un seul message atteint nos deux \u00e9quipes.")}

{[["phone", L("Office", "Bureau"), CONTACT.tel, "tel:" + CONTACT.tel.replace(/\s/g, "")], ["phone", L("Mobile / WhatsApp", "Mobile / WhatsApp"), CONTACT.mobile, "tel:" + CONTACT.mobile.replace(/\s/g, "")], ["mail", "Email", CONTACT.email, "mailto:" + CONTACT.email]].map(([ic, h, v, href]) => ( (e.currentTarget.style.transform = "translateX(4px)")} onMouseLeave={(e) => (e.currentTarget.style.transform = "none")}>
{h}
{v}
))}
); } /* ---------- Two service cards ---------- */ function ServiceCard({ variant, tag, name, desc, points, cta, icon, photo, onClick }) { const [hover, setHover] = useState(false); const accent = variant === "spares" ? "var(--spares)" : "var(--rent)"; const accentD = variant === "spares" ? "var(--spares-d)" : "var(--rent-d)"; return (
setHover(true)} onMouseLeave={() => setHover(false)} style={{ background: "var(--paper-0)", borderRadius: 5, overflow: "hidden", cursor: "pointer", border: "1px solid var(--line)", transition: "transform .25s, box-shadow .25s", transform: hover ? "translateY(-6px)" : "none", boxShadow: hover ? "0 30px 60px -30px rgba(0,0,0,.3)" : "0 1px 0 rgba(0,0,0,0.02)", display: "flex", flexDirection: "column", height: "100%" }}> {name}
: variant === "spares" ? : } style={{ aspectRatio: "16/9" }}>
{tag}

{name}

{desc}

{points.map((p) => (
{p}
))}
); } function ServicesGrid() { const { go } = useContext(NavCtx); return (
go("rent")} /> go("spares")} />
); } /* ---------- Advantages grid (from company profile) ---------- */ const ADV = [ ["truck", { en: "Free delivery", fr: "Livraison gratuite" }, { en: "& pick-up within 25km", fr: "& reprise dans un rayon de 25 km" }], ["pin", { en: "Airport service", fr: "Service a\u00e9roport" }, { en: "to Diori Hamani Int'l", fr: "vers Diori Hamani Int." }], ["clock", { en: "24h replacement", fr: "Remplacement 24h" }, { en: "if a vehicle fails, anywhere", fr: "en cas de panne, partout" }], ["gauge", { en: "Unlimited mileage", fr: "Kilom\u00e9trage illimit\u00e9" }, { en: "on every rental", fr: "sur chaque location" }], ["globe", { en: "Road maps & guides", fr: "Cartes & guides" }, { en: "tourist guides on Niger", fr: "guides touristiques du Niger" }], ["users", { en: "Extra driver", fr: "Chauffeur suppl." }, { en: "available on request", fr: "disponible sur demande" }], ]; function AdvantagesGrid({ cols = 3 }) { return (
{ADV.map(([ic, n, l], i) => (
{L(n.en, n.fr)}
{L(l.en, l.fr)}
))}
); } /* ============================ HOME ============================ */ function Home() { const { go } = useContext(NavCtx); return (