✨ تحسينات رئيسية: 1️⃣ إصلاحات توثيقية (docs/21, docs/33): - S18 ليست مشكلة — النظام يفرض سحب الرصيد الكامل فقط - إضافة تنبيه حالة عن عدم جاهزية الوحدات 2️⃣ إصلاحات الموقع (marketing/index.html): - حذف قسم #ai-modules المكرر (التكرار المحرج) - إضافة رابط «الإضافات» في القائمة العلوية (4 لغات) - تغيير جميع الشارات إلى «قريباً الربع القادم» (حماية قانونية) - 7 وحدات مدفوعة واضحة مع أسعار + وصف 3️⃣ النموذج التجاري: - النواة رخيصة = سلاح اكتساب - الوحدات = هامش الربح الحقيقي (land-and-expand) - بدون تكرار محرج للزائر ⚠️ الحد الأدنى قبل التسويق: - S4 و S5 تُصلح قبل أول استنساخ على سيرفر مستأجر - جرد صدق بند بند على إنتاج سيرو Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1688 lines
142 KiB
HTML
1688 lines
142 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ar" dir="rtl" data-theme="dark">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Tripz — أطلق تطبيق النقل بعلامتك التجارية</title>
|
||
<meta name="description" content="أطلق تطبيق نقل بعلامتك التجارية خلال 30 يوماً — بياناتك تبقى لك. تطبيقا راكب وسائق، لوحة تحكم وdispatch، بتكلفة معلنة على الموقع.">
|
||
<meta property="og:title" content="Tripz — Launch ride-hailing under your brand">
|
||
<meta property="og:description" content="Rider & driver apps on both stores, admin panel and dispatch — pricing published, data export guaranteed.">
|
||
<meta property="og:type" content="website">
|
||
<link rel="alternate" hreflang="ar" href="/ar/"><link rel="alternate" hreflang="en" href="/en/">
|
||
<link rel="alternate" hreflang="fr" href="/fr/"><link rel="alternate" hreflang="es" href="/es/">
|
||
<link rel="alternate" hreflang="x-default" href="/ar/">
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap" rel="stylesheet">
|
||
<style>
|
||
/* ============ DESIGN TOKENS (docs/31 §5) ============ */
|
||
:root{
|
||
--midnight-900:#0A1128; --midnight-800:#0D1733; --midnight-700:#12203F;
|
||
--brand-500:#2E4BFF; --brand-600:#1F38D9; --brand-glow:rgba(46,75,255,.45);
|
||
--signal-400:#D6DBEE; --signal-glow:rgba(214,219,238,.38);
|
||
--surface-0:#FFFFFF; --surface-50:#F6F8FC; --surface-100:#EEF2FA;
|
||
--ink-900:#101828; --ink-700:#344054; --ink-500:#5B6478; --ink-300:#98A2B3;
|
||
--success-500:#12B76A; --danger-500:#F04438;
|
||
--line:rgba(16,24,40,.10);
|
||
--radius-card:16px; --radius-btn:12px; --radius-pill:999px;
|
||
--shadow-sm:0 2px 8px rgba(10,17,40,.06);
|
||
--shadow-md:0 4px 24px rgba(10,17,40,.10);
|
||
--shadow-lg:0 24px 60px rgba(10,17,40,.18);
|
||
--ease:cubic-bezier(.16,1,.3,1);
|
||
--font-ar:"IBM Plex Sans Arabic",system-ui,sans-serif;
|
||
--font-lat:"Inter",system-ui,sans-serif;
|
||
--font-display:"Space Grotesk","IBM Plex Sans Arabic",system-ui,sans-serif;
|
||
--maxw:1200px;
|
||
/* semantic surfaces (light) */
|
||
--bg:var(--surface-0); --bg-alt:var(--surface-50); --card:var(--surface-0);
|
||
--text:var(--ink-900); --text-soft:var(--ink-500); --border:var(--line);
|
||
--nav-bg:rgba(255,255,255,.72);
|
||
}
|
||
[data-theme="dark"]{
|
||
--bg:var(--midnight-900); --bg-alt:var(--midnight-800); --card:var(--midnight-700);
|
||
--text:#EAF0FF; --text-soft:#9BA8C9; --border:rgba(255,255,255,.10);
|
||
--nav-bg:rgba(10,17,40,.72); --shadow-md:0 4px 24px rgba(0,0,0,.4);
|
||
--shadow-lg:0 24px 60px rgba(0,0,0,.55); --line:rgba(255,255,255,.10);
|
||
}
|
||
*{box-sizing:border-box;margin:0;padding:0}
|
||
html{scroll-behavior:smooth}
|
||
body{
|
||
font-family:var(--font-ar);background:var(--bg);color:var(--text);
|
||
line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
|
||
transition:background .4s var(--ease),color .4s var(--ease);
|
||
}
|
||
html[lang="en"] body,html[lang="fr"] body,html[lang="es"] body{font-family:var(--font-lat);line-height:1.55}
|
||
h1,h2,h3{font-family:var(--font-display);line-height:1.15;letter-spacing:-.01em;font-weight:700}
|
||
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3{font-family:var(--font-ar);letter-spacing:0}
|
||
.num{font-family:var(--font-lat);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}
|
||
a{color:inherit;text-decoration:none}
|
||
img,svg{max-width:100%;display:block}
|
||
section{padding:96px 0;position:relative}
|
||
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
|
||
.eyebrow{color:var(--brand-500);font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
|
||
[data-theme="dark"] .eyebrow{color:#8AA0FF}
|
||
h2.sec{font-size:clamp(30px,4vw,44px);margin-bottom:16px}
|
||
.sec-lead{color:var(--text-soft);font-size:19px;max-width:640px;margin-bottom:48px}
|
||
.center{text-align:center}.center .sec-lead{margin-inline:auto}
|
||
|
||
/* buttons */
|
||
.btn{display:inline-flex;align-items:center;gap:9px;font-family:inherit;font-weight:600;
|
||
font-size:16px;padding:15px 26px;border-radius:var(--radius-btn);border:1px solid transparent;
|
||
cursor:pointer;transition:transform .18s var(--ease),box-shadow .25s,background .2s;position:relative;overflow:hidden}
|
||
.btn:hover{transform:translateY(-2px)}
|
||
.btn-primary{background:var(--brand-500);color:#fff;box-shadow:0 8px 24px var(--brand-glow)}
|
||
.btn-primary:hover{background:var(--brand-600);box-shadow:0 12px 32px var(--brand-glow)}
|
||
.btn-primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
|
||
background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);
|
||
transform:skewX(-20deg);animation:sheen 8s ease-in-out infinite}
|
||
@keyframes sheen{0%,88%{left:-60%}96%{left:130%}100%{left:130%}}
|
||
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}
|
||
.btn-ghost:hover{border-color:var(--brand-500);color:var(--brand-500)}
|
||
.btn-wa{background:#25D366;color:#062e14}
|
||
.btn-wa:hover{background:#1fbe5a}
|
||
.btn-lg{padding:17px 34px;font-size:17px}
|
||
|
||
/* ============ NAV ============ */
|
||
header{position:sticky;top:0;z-index:100;transition:background .3s,box-shadow .3s,border-color .3s;
|
||
border-bottom:1px solid transparent}
|
||
header.scrolled{background:var(--nav-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
|
||
border-bottom-color:var(--border);box-shadow:var(--shadow-sm)}
|
||
.nav{display:flex;align-items:center;gap:28px;height:72px}
|
||
.brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.02em;direction:ltr;unicode-bidi:isolate}
|
||
.brand-badge{display:inline-flex;align-items:center;background:#fff;border-radius:10px;padding:6px 12px;box-shadow:0 2px 10px rgba(10,17,40,.18)}
|
||
.brand-badge img{height:22px;display:block}
|
||
.foot-brand .brand-badge img{height:24px}
|
||
.brand .z{color:var(--signal-400)}
|
||
.brand svg{width:30px;height:30px}
|
||
.nav-links{display:flex;gap:26px;margin-inline-start:14px}
|
||
.nav-links a{font-size:15px;font-weight:500;color:var(--text-soft);transition:color .2s}
|
||
.nav-links a:hover{color:var(--text)}
|
||
.nav-right{margin-inline-start:auto;display:flex;align-items:center;gap:12px}
|
||
.icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:transparent;
|
||
color:var(--text);cursor:pointer;display:grid;place-items:center;transition:.2s}
|
||
.icon-btn:hover{border-color:var(--brand-500);color:var(--brand-500)}
|
||
.lang-wrap{position:relative}
|
||
.lang-menu{position:absolute;top:48px;inset-inline-end:0;background:var(--card);border:1px solid var(--border);
|
||
border-radius:12px;box-shadow:var(--shadow-md);padding:6px;min-width:150px;opacity:0;visibility:hidden;
|
||
transform:translateY(-8px);transition:.2s var(--ease);z-index:120}
|
||
.lang-wrap.open .lang-menu{opacity:1;visibility:visible;transform:none}
|
||
.lang-menu button{display:block;width:100%;text-align:start;padding:9px 12px;border:0;background:transparent;
|
||
color:var(--text);font-family:inherit;font-size:15px;border-radius:8px;cursor:pointer}
|
||
.lang-menu button:hover,.lang-menu button.active{background:var(--bg-alt);color:var(--brand-500)}
|
||
.menu-toggle{display:none}
|
||
|
||
/* ============ HERO ============ */
|
||
/* ============ GRAIN TEXTURE (dark sections) ============ */
|
||
.grain{position:relative}
|
||
.grain::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
|
||
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
|
||
background-size:180px 180px}
|
||
|
||
.hero{padding:100px 0 60px;min-height:100vh;min-height:100svh;display:flex;align-items:center;background:
|
||
radial-gradient(1000px 500px at 80% -10%,rgba(46,75,255,.28),transparent 60%),
|
||
radial-gradient(700px 450px at 10% 100%,rgba(214,219,238,.14),transparent 60%),var(--midnight-900);
|
||
color:#EAF0FF;overflow:hidden;position:relative}
|
||
html[dir="ltr"] .hero{background:radial-gradient(1000px 500px at 20% -10%,rgba(46,75,255,.28),transparent 60%),
|
||
radial-gradient(700px 450px at 90% 100%,rgba(214,219,238,.14),transparent 60%),var(--midnight-900)}
|
||
.hero>.wrap{width:100%}
|
||
.hero-map{position:absolute;inset:-4%;opacity:.5;pointer-events:none;animation:mapDrift 24s ease-in-out infinite}
|
||
@keyframes mapDrift{0%{transform:translate(0,0) scale(1.02)}50%{transform:translate(-1.2%,.8%) scale(1.045)}100%{transform:translate(0,0) scale(1.02)}}
|
||
.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:3;display:flex;
|
||
flex-direction:column;align-items:center;gap:8px;color:#8A99C2;font-size:12px;text-decoration:none}
|
||
.scroll-cue .chev{width:20px;height:20px;border-inline-start:2px solid currentColor;border-bottom:2px solid currentColor;
|
||
transform:rotate(-45deg);animation:cueBounce 1.8s ease-in-out infinite}
|
||
html[dir="ltr"] .scroll-cue .chev{transform:rotate(-45deg)}
|
||
@keyframes cueBounce{0%,100%{transform:translateY(0) rotate(-45deg)}50%{transform:translateY(6px) rotate(-45deg)}}
|
||
@media(max-height:760px){.hero{min-height:auto;padding:96px 0 48px}}
|
||
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;position:relative;z-index:2}
|
||
.hero h1{font-size:clamp(36px,5.4vw,62px);color:#fff;margin-bottom:22px}
|
||
.hero h1 .hl{color:var(--signal-400)}
|
||
.hero .word{display:inline-block;opacity:0;transform:translateY(16px);animation:wordIn .6s var(--ease) forwards}
|
||
@keyframes wordIn{to{opacity:1;transform:none}}
|
||
.hero-sub{font-size:19px;color:#B7C4E6;max-width:560px;margin-bottom:30px}
|
||
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px}
|
||
.trust-line{font-size:14px;color:#8A99C2;display:flex;align-items:center;gap:8px}
|
||
.trust-line b{color:#C7D3F0;font-weight:500}
|
||
.hero-visual{position:relative;height:520px}
|
||
/* phones */
|
||
.phone{position:absolute;width:240px;border-radius:36px;background:#080d1e;border:4px solid #233463;
|
||
box-shadow:0 20px 50px rgba(0,0,0,.7),0 0 30px rgba(46,75,255,.3);overflow:hidden;animation:float 6s ease-in-out infinite}
|
||
.phone.p1{inset-inline-end:20px;top:10px;z-index:3}
|
||
.phone.p2{inset-inline-start:10px;top:110px;z-index:2;animation-delay:-3s;width:230px}
|
||
@keyframes float{0%,100%{transform:translateY(-6px)}50%{transform:translateY(6px)}}
|
||
.p-notch{height:20px;background:#080d1e;position:relative;z-index:5}
|
||
.p-notch::after{content:"";position:absolute;top:6px;left:50%;transform:translateX(-50%);width:50px;height:5px;border-radius:6px;background:#1e2d54}
|
||
.p-screen{padding:0;min-height:auto;background:transparent;overflow:hidden}
|
||
.p-screen img{width:100%;height:auto;display:block;border-radius:0 0 32px 32px}
|
||
.p-map{height:150px;border-radius:14px;background:
|
||
linear-gradient(135deg,#13224a,#0e1730);position:relative;overflow:hidden;margin-bottom:12px}
|
||
.p-route{position:absolute;top:40%;left:10%;width:80%;height:3px;background:var(--brand-500);border-radius:3px;
|
||
box-shadow:0 0 12px var(--brand-glow)}
|
||
.p-pin{position:absolute;top:32%;left:70%;width:14px;height:14px;border-radius:50%;background:var(--signal-400);
|
||
box-shadow:0 0 0 4px var(--signal-glow);animation:pulse 2.4s infinite}
|
||
@keyframes pulse{0%{box-shadow:0 0 0 0 var(--signal-glow)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
|
||
.p-card{background:#131f3d;border-radius:12px;padding:11px;margin-bottom:9px}
|
||
.p-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#9BB0E0;margin-bottom:7px}
|
||
.p-row b{color:#fff}
|
||
.p-chip{display:inline-block;font-size:10px;padding:3px 9px;border-radius:999px;background:rgba(46,75,255,.2);color:#9DB2FF}
|
||
.p-btn{background:var(--brand-500);color:#fff;text-align:center;padding:9px;border-radius:9px;font-size:12px;font-weight:600}
|
||
.p-title{font-size:12px;color:#7C8DBB;margin-bottom:8px}
|
||
.p-earn{font-size:22px;color:#fff;font-weight:700}.p-earn small{font-size:12px;color:var(--success-500)}
|
||
|
||
/* ============ STATS ============ */
|
||
/* ============ AMBIENT BACKGROUND BLOBS ============ */
|
||
.ambient{position:relative;isolation:isolate;overflow:hidden}
|
||
.ambient::before,.ambient::after{content:"";position:absolute;z-index:-1;border-radius:50%;
|
||
filter:blur(90px);pointer-events:none}
|
||
.ambient::before{width:340px;height:340px;background:var(--brand-500);opacity:.10;top:-90px;inset-inline-end:-90px}
|
||
.ambient::after{width:300px;height:300px;background:var(--signal-400);opacity:.08;bottom:-110px;inset-inline-start:-80px}
|
||
[data-theme="dark"] .ambient::before{opacity:.24;background:#5B7CFF}
|
||
[data-theme="dark"] .ambient::after{opacity:.16}
|
||
|
||
.stats{background:var(--bg-alt);border-block:1px solid var(--border)}
|
||
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
|
||
.stat{text-align:center}
|
||
.stat .n{font-family:var(--font-display);font-size:clamp(28px,3.4vw,40px);font-weight:700;color:var(--brand-500)}
|
||
[data-theme="dark"] .stat .n{color:#8AA0FF}
|
||
.stat .l{color:var(--text-soft);font-size:15px;margin-top:6px}
|
||
|
||
/* ============ PILLARS ============ */
|
||
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
|
||
.pcard{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);
|
||
padding:32px 28px;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
|
||
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--brand-500)}
|
||
.pcard .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;
|
||
background:linear-gradient(135deg,rgba(46,75,255,.16),rgba(214,219,238,.12));color:var(--brand-500)}
|
||
.pcard h3{font-size:22px;margin-bottom:10px}
|
||
.pcard p{color:var(--text-soft);font-size:16px}
|
||
|
||
/* ============ FEATURE ROWS (pillars, alternating) ============ */
|
||
.feature-rows{display:flex;flex-direction:column;gap:64px;margin-top:44px}
|
||
.frow{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
|
||
.frow.reverse .frow-art{order:2}
|
||
.frow.reverse .frow-text{order:1}
|
||
.frow-art{aspect-ratio:260/200;filter:drop-shadow(0 12px 28px rgba(10,17,40,.14))}
|
||
[data-theme="dark"] .frow-art{filter:drop-shadow(0 12px 28px rgba(0,0,0,.35))}
|
||
.frow-text h3{font-size:26px;margin-bottom:12px}
|
||
.frow-text p{color:var(--text-soft);font-size:17px;max-width:420px}
|
||
@media(max-width:900px){
|
||
.frow,.frow.reverse{grid-template-columns:1fr}
|
||
.frow.reverse .frow-art,.frow.reverse .frow-text{order:initial}
|
||
.frow-art{max-width:320px;margin-inline:auto}
|
||
.frow-text{text-align:center}
|
||
.frow-text p{margin-inline:auto}
|
||
}
|
||
|
||
/* ============ BRANDS WE POWER ============ */
|
||
.brand-logos{display:flex;justify-content:center;align-items:stretch;gap:22px;flex-wrap:wrap;margin-top:36px}
|
||
.blogo-card{background:#fff;border-radius:16px;padding:28px 34px;display:flex;flex-direction:column;align-items:center;
|
||
gap:14px;min-width:180px;box-shadow:var(--shadow-sm);border:1px solid var(--line);
|
||
transition:transform .3s var(--ease),box-shadow .3s}
|
||
.blogo-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
|
||
.blogo-card img{height:38px;width:auto}
|
||
.blogo-card span{font-size:14px;font-weight:600;color:var(--ink-500)}
|
||
.blogo-more{background:transparent;border:1.5px dashed var(--line);box-shadow:none;justify-content:center}
|
||
.blogo-more:hover{transform:none;box-shadow:none;border-color:var(--brand-500)}
|
||
.blogo-plus{width:38px;height:38px;border-radius:50%;background:var(--bg-alt);color:var(--brand-500);
|
||
display:grid;place-items:center;font-size:22px;font-weight:700}
|
||
.blogo-more span{color:var(--text-soft)}
|
||
.brands-note{text-align:center;color:var(--text-soft);font-size:14px;margin-top:26px}
|
||
|
||
/* ============ PRODUCT TABS ============ */
|
||
.tabs-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px;background:var(--bg-alt);
|
||
padding:6px;border-radius:14px;border:1px solid var(--border);width:fit-content}
|
||
.tab-btn{padding:11px 20px;border-radius:10px;border:0;background:transparent;color:var(--text-soft);
|
||
font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:.25s}
|
||
.tab-btn.active{background:var(--brand-500);color:#fff;box-shadow:0 6px 16px var(--brand-glow)}
|
||
.tab-panel{display:none;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
|
||
.tab-panel.active{display:grid;animation:fadeSlide .45s var(--ease)}
|
||
@keyframes fadeSlide{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
|
||
.feat-list{list-style:none;display:flex;flex-direction:column;gap:16px;margin-top:8px}
|
||
.feat-list li{display:flex;gap:12px;align-items:flex-start;font-size:17px}
|
||
.feat-list .ck{flex:none;width:26px;height:26px;border-radius:8px;background:rgba(18,183,106,.14);
|
||
color:var(--success-500);display:grid;place-items:center;margin-top:2px}
|
||
.mock{background:var(--midnight-700);border-radius:20px;padding:22px;border:1px solid var(--border);box-shadow:var(--shadow-md)}
|
||
.mock-img-wrap{background:var(--midnight-700);border-radius:20px;padding:12px;border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;overflow:hidden}
|
||
.mock-img{width:100%;max-height:480px;object-fit:contain;border-radius:14px;display:block;margin:0 auto;transition:transform .3s var(--ease)}
|
||
.mock-img:hover{transform:scale(1.02)}
|
||
.mock-bar{display:flex;gap:6px;margin-bottom:16px}
|
||
.mock-bar span{width:11px;height:11px;border-radius:50%;background:#39466b}
|
||
.mock-map{height:170px;border-radius:14px;background:linear-gradient(135deg,#16274f,#101a34);position:relative;overflow:hidden;margin-bottom:14px}
|
||
.mock-line{position:absolute;height:3px;background:var(--brand-500);border-radius:3px;box-shadow:0 0 10px var(--brand-glow)}
|
||
.mock-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--signal-400);box-shadow:0 0 0 4px var(--signal-glow)}
|
||
.mock-rows{display:grid;gap:9px}
|
||
.mock-r{display:flex;justify-content:space-between;font-size:13px;color:#9BB0E0;background:#141f3d;padding:11px 13px;border-radius:10px}
|
||
.mock-r b{color:#fff}
|
||
|
||
/* ============ CALCULATOR ============ */
|
||
.calc{background:var(--midnight-800);color:#EAF0FF;
|
||
background-image:radial-gradient(700px 400px at 90% 0%,rgba(46,75,255,.18),transparent);}
|
||
.calc h2.sec{color:#fff}.calc .sec-lead{color:#B7C4E6}
|
||
.calc-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:stretch}
|
||
.calc-panel{background:var(--midnight-700);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:30px}
|
||
.field{margin-bottom:24px}
|
||
.field label{display:block;font-size:15px;color:#B7C4E6;margin-bottom:10px;font-weight:500}
|
||
.field label .val{color:var(--signal-400);font-weight:700;float:inline-end}
|
||
input[type=range]{-webkit-appearance:none;width:100%;height:6px;border-radius:6px;
|
||
background:linear-gradient(90deg,var(--brand-500) var(--p,40%),#28345c 0);outline:none}
|
||
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;
|
||
background:#fff;border:4px solid var(--brand-500);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.4)}
|
||
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
||
select,.txtin{width:100%;padding:13px 14px;border-radius:11px;border:1px solid rgba(255,255,255,.12);
|
||
background:var(--midnight-800);color:#fff;font-family:inherit;font-size:15px}
|
||
.result{background:var(--midnight-700);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:30px;display:flex;flex-direction:column}
|
||
.cmp-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.08)}
|
||
.cmp-row .lbl{color:#B7C4E6;font-size:15px}
|
||
.cmp-row .amt{font-family:var(--font-lat);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}
|
||
.cmp-row.tripz .amt{color:var(--success-500)}
|
||
.cmp-row.rival .amt{color:var(--danger-500)}
|
||
.savings{margin-top:auto;padding-top:22px;text-align:center}
|
||
.savings .cap{color:#B7C4E6;font-size:15px;margin-bottom:6px}
|
||
.savings .big{font-family:var(--font-lat);font-variant-numeric:tabular-nums;font-size:clamp(34px,5vw,52px);
|
||
font-weight:700;color:var(--signal-400);line-height:1.1}
|
||
.savings.bump .big{animation:bump .5s var(--ease)}
|
||
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
|
||
.calc-cta{margin-top:20px}
|
||
|
||
/* ============ TIMELINE ============ */
|
||
/* ============ ZIGZAG TIMELINE ============ */
|
||
.zig-timeline{position:relative;max-width:880px;margin:20px auto 0}
|
||
.zig-line{position:absolute;left:50%;top:6px;bottom:6px;width:3px;background:var(--border);transform:translateX(-50%)}
|
||
.zig-fill{position:absolute;left:50%;top:6px;width:3px;background:linear-gradient(var(--brand-500),var(--signal-400));
|
||
height:0;transition:height 1.4s var(--ease);transform:translateX(-50%)}
|
||
.zig-row{display:grid;grid-template-columns:1fr 52px 1fr;align-items:center;margin-bottom:52px}
|
||
.zig-row:last-child{margin-bottom:0}
|
||
.zig-row.a .zig-card{grid-column:1;text-align:end}
|
||
.zig-row.b .zig-card{grid-column:3;text-align:start}
|
||
.zig-node{grid-column:2;justify-self:center;width:42px;height:42px;border-radius:50%;background:var(--card);
|
||
border:3px solid var(--border);display:grid;place-items:center;font-size:14px;font-weight:800;
|
||
color:var(--text-soft);position:relative;z-index:2;transition:.4s var(--ease)}
|
||
.zig-row.on .zig-node{border-color:var(--brand-500);color:#fff;background:var(--brand-500);box-shadow:0 0 0 8px var(--brand-glow)}
|
||
.zig-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;
|
||
box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s}
|
||
.zig-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
|
||
.zig-day{font-size:13px;font-weight:700;color:var(--brand-500);letter-spacing:.04em;margin-bottom:5px}
|
||
[data-theme="dark"] .zig-day{color:#8AA0FF}
|
||
.zig-card h3{font-size:19px;margin-bottom:6px}
|
||
.zig-card p{color:var(--text-soft);font-size:15px}
|
||
@media(max-width:760px){
|
||
.zig-row{grid-template-columns:40px 1fr;margin-bottom:32px}
|
||
.zig-node{grid-column:1;width:36px;height:36px;font-size:13px}
|
||
.zig-row.a .zig-card,.zig-row.b .zig-card{grid-column:2;text-align:start}
|
||
.zig-line,.zig-fill{left:20px;transform:none}
|
||
}
|
||
|
||
/* ============ PRICING ============ */
|
||
.toggle-wrap{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:44px}
|
||
.toggle{position:relative;width:58px;height:32px;border-radius:999px;background:var(--brand-500);cursor:pointer;border:0}
|
||
.toggle .knob{position:absolute;top:4px;inset-inline-start:4px;width:24px;height:24px;border-radius:50%;background:#fff;transition:.3s var(--ease)}
|
||
.toggle.year .knob{inset-inline-start:30px}
|
||
.toggle-lbl{font-weight:600;color:var(--text-soft)}.toggle-lbl.active{color:var(--text)}
|
||
.badge-save{background:rgba(18,183,106,.14);color:var(--success-500);font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px}
|
||
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
|
||
.plan{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:30px 24px;
|
||
display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s}
|
||
.plan:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}
|
||
.plan.featured{border-color:var(--signal-400);box-shadow:0 20px 50px var(--signal-glow);transform:translateY(-8px)}
|
||
.plan.featured:hover{transform:translateY(-12px)}
|
||
.plan .tag{position:absolute;top:-13px;inset-inline-start:50%;transform:translateX(50%);background:var(--signal-400);
|
||
color:#0A1128;font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px}
|
||
html[dir=ltr] .plan .tag{transform:translateX(-50%)}
|
||
.plan{position:relative}
|
||
.plan h3{font-size:22px;margin-bottom:4px}
|
||
.plan .price{font-family:var(--font-lat);font-variant-numeric:tabular-nums;font-size:40px;font-weight:700;margin:10px 0 2px}
|
||
.plan .price small{font-size:15px;color:var(--text-soft);font-weight:500}
|
||
.plan .setup{font-size:14px;color:var(--text-soft);margin-bottom:8px}
|
||
.plan .gmv{display:inline-block;font-size:13px;font-weight:700;color:var(--brand-500);background:rgba(46,75,255,.1);padding:4px 11px;border-radius:999px;margin-bottom:18px}
|
||
.plan ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:24px;flex:1}
|
||
.plan li{display:flex;gap:9px;font-size:14.5px;color:var(--text-soft)}
|
||
.plan li .ck{color:var(--success-500);flex:none}
|
||
.plan-inherit{font-size:12.5px;color:var(--brand-500);font-weight:600;margin:-6px 0 12px;padding-bottom:10px;border-bottom:1px dashed var(--border)}
|
||
.plan .btn{width:100%;justify-content:center}
|
||
.gmv-note{margin-top:32px;text-align:center;color:var(--text-soft);font-size:15px}
|
||
.contract-box{margin-top:40px;background:var(--bg-alt);border:1px dashed var(--brand-500);border-radius:var(--radius-card);padding:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
|
||
.contract-box .ci h4{font-size:16px;margin-bottom:6px;display:flex;gap:8px;align-items:center}
|
||
.contract-box .ci p{font-size:14px;color:var(--text-soft)}
|
||
.founder{margin-top:24px;background:linear-gradient(120deg,var(--brand-500),var(--brand-600));color:#fff;border-radius:var(--radius-card);padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
|
||
.founder .seats{background:rgba(255,255,255,.18);padding:6px 14px;border-radius:999px;font-weight:700;font-size:14px}
|
||
|
||
/* ============ ADD-ONS / MODULES ============ */
|
||
.addons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:44px}
|
||
.addon-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:28px 24px;
|
||
display:flex;flex-direction:column;position:relative;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
|
||
.addon-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--brand-500)}
|
||
.addon-card.featured{border-color:var(--signal-400);box-shadow:0 12px 32px var(--signal-glow)}
|
||
.addon-card.featured:hover{box-shadow:0 16px 40px var(--signal-glow)}
|
||
.addon-badge{position:absolute;top:-12px;inset-inline-start:16px;display:inline-flex;align-items:center;gap:5px;
|
||
font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;z-index:2;letter-spacing:.04em}
|
||
.addon-badge.available{background:rgba(18,183,106,.2);color:var(--success-500);text-transform:uppercase}
|
||
.addon-badge.coming-soon{background:rgba(152,162,179,.15);color:#9CA2B3;text-transform:uppercase}
|
||
.addon-ico{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;margin-top:6px}
|
||
.addon-card h3{font-size:20px;margin-bottom:10px}
|
||
.addon-card p{color:var(--text-soft);font-size:15px;flex:1;margin-bottom:18px}
|
||
.addon-price{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
|
||
.addon-price .num{font-family:var(--font-lat);font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}
|
||
.addon-price span:not(.num){color:var(--text-soft);font-size:14px}
|
||
.addon-setup{font-size:12px;color:var(--text-soft);margin-top:4px;font-weight:500}
|
||
@media(max-width:900px){
|
||
.addons-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
|
||
.addon-card{padding:24px 20px}
|
||
}
|
||
@media(max-width:640px){
|
||
.addons-grid{grid-template-columns:1fr}
|
||
.addon-card{padding:24px}
|
||
}
|
||
|
||
/* ============ COMPARISON ============ */
|
||
.cmp-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px}
|
||
.cmp-table th,.cmp-table td{padding:16px 18px;text-align:start;border-bottom:1px solid var(--border)}
|
||
.cmp-table thead th{font-family:var(--font-display);font-size:16px}
|
||
.cmp-table thead th.us{color:var(--brand-500)}
|
||
.cmp-table tbody tr:hover{background:var(--bg-alt)}
|
||
.cmp-table td.us{font-weight:700;color:var(--text)}
|
||
.cmp-table .yes{color:var(--success-500);font-weight:700}
|
||
.cmp-table .no{color:var(--danger-500);font-weight:700}
|
||
.cmp-table th.us,.cmp-table td.us{background:rgba(46,75,255,.07);position:relative}
|
||
[data-theme="dark"] .cmp-table th.us,[data-theme="dark"] .cmp-table td.us{background:rgba(89,120,255,.10)}
|
||
.cmp-table th.us{border-top:2px solid var(--brand-500)}
|
||
.cmp-table .us-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
|
||
color:var(--brand-500);background:var(--card);border:1px solid var(--brand-500);border-radius:999px;
|
||
padding:3px 10px;margin-inline-start:8px;vertical-align:middle}
|
||
.cmp-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card)}
|
||
|
||
/* ============ CASE STUDY ============ */
|
||
.case{background:var(--bg-alt)}
|
||
.case-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
|
||
.case p{color:var(--text-soft);font-size:17px;margin-bottom:16px}
|
||
.case-stats{display:flex;gap:14px;margin:24px 0}
|
||
.cs{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 20px;flex:1;text-align:center}
|
||
.cs .n{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--brand-500)}
|
||
.cs .l{font-size:13px;color:var(--text-soft)}
|
||
.quote{border-inline-start:3px solid var(--signal-400);padding-inline-start:18px;font-style:italic;color:var(--text);font-size:18px}
|
||
.quote .who{display:block;font-style:normal;font-size:14px;color:var(--text-soft);margin-top:8px}
|
||
.case-visual{background:var(--midnight-700);border-radius:20px;padding:24px;border:1px solid var(--border)}
|
||
.dash-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);color:#B7C4E6;font-size:14px}
|
||
.dash-row b{color:#fff;font-family:var(--font-lat)}
|
||
.dash-bars{display:flex;gap:8px;align-items:flex-end;height:90px;margin-top:16px}
|
||
.dash-bars span{flex:1;background:linear-gradient(var(--brand-500),var(--brand-600));border-radius:5px 5px 0 0;opacity:.85}
|
||
|
||
/* ============ SECURITY ============ */
|
||
.sec-strip{background:var(--midnight-900);color:#B7C4E6}
|
||
.sec-strip .wrap{text-align:center}
|
||
.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:26px}
|
||
.sbadge{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:12px 20px;font-size:14px;display:flex;gap:9px;align-items:center;color:#C7D3F0}
|
||
.sbadge svg{color:var(--success-500)}
|
||
|
||
/* ============ FAQ ============ */
|
||
.faq-list{max-width:820px;margin:0 auto}
|
||
.faq-item{border:1px solid var(--border);border-radius:14px;margin-bottom:12px;overflow:hidden;background:var(--card);transition:border-color .2s}
|
||
.faq-item.open{border-color:var(--brand-500)}
|
||
.faq-q{width:100%;text-align:start;padding:18px 22px;background:transparent;border:0;font-family:inherit;
|
||
font-size:17px;font-weight:600;color:var(--text);cursor:pointer;display:flex;align-items:center;gap:14px}
|
||
.faq-q-text{flex:1}
|
||
.faq-ico{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
|
||
background:linear-gradient(135deg,rgba(46,75,255,.16),rgba(214,219,238,.12));color:var(--brand-500);transition:.3s}
|
||
.faq-item.open .faq-ico{background:var(--brand-500);color:#fff}
|
||
.faq-q .pm{flex:none;width:26px;height:26px;border-radius:50%;background:var(--bg-alt);display:grid;place-items:center;transition:.3s;color:var(--brand-500);font-size:20px}
|
||
.faq-item.open .pm{transform:rotate(45deg);background:var(--brand-500);color:#fff}
|
||
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
|
||
.faq-a p{padding:0 22px 22px;color:var(--text-soft);font-size:16px}
|
||
|
||
/* ============ FINAL CTA ============ */
|
||
.final{background:radial-gradient(800px 400px at 50% 120%,rgba(46,75,255,.35),transparent),var(--midnight-900);color:#fff;text-align:center}
|
||
.final h2{font-size:clamp(30px,4.4vw,50px);margin-bottom:26px}
|
||
.final .btn-group{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
|
||
.demo-lead{color:#B7C4E6;font-size:17px;max-width:560px;margin:14px auto 36px}
|
||
.store-groups{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}
|
||
.store-group-label{font-size:14px;font-weight:700;color:var(--signal-400);margin-bottom:14px;letter-spacing:.03em}
|
||
.store-badges{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
|
||
.store-badge{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;
|
||
border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#fff;
|
||
transition:transform .2s var(--ease),border-color .2s,background .2s}
|
||
.store-badge:hover{transform:translateY(-3px);border-color:var(--signal-400);background:rgba(255,255,255,.08)}
|
||
.store-badge span{display:flex;flex-direction:column;text-align:start;line-height:1.25}
|
||
.store-badge small{font-size:10.5px;color:#9BB0E0}
|
||
.store-badge b{font-size:14px;font-weight:600}
|
||
@media(max-width:560px){.store-groups{gap:24px}}
|
||
|
||
/* ============ FOOTER ============ */
|
||
footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-top:1px solid rgba(255,255,255,.08)}
|
||
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:36px;margin-bottom:40px}
|
||
.foot-brand .brand{color:#fff;margin-bottom:14px}
|
||
.foot-brand p{font-size:14px;max-width:260px}
|
||
.foot-col h5{color:#fff;font-size:15px;margin-bottom:14px;font-family:var(--font-display)}
|
||
.foot-col a{display:block;font-size:14px;margin-bottom:10px;transition:color .2s}
|
||
.foot-col a:hover{color:var(--brand-500)}
|
||
.foot-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:14px}
|
||
|
||
/* ============ FLOAT WA ============ */
|
||
.wa-float{position:fixed;bottom:24px;inset-inline-start:24px;z-index:90;width:58px;height:58px;border-radius:50%;
|
||
background:#25D366;display:grid;place-items:center;box-shadow:0 10px 30px rgba(37,211,102,.5);
|
||
animation:waPulse 3s infinite;transition:transform .2s}
|
||
.wa-float:hover{transform:scale(1.08)}
|
||
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px transparent}100%{box-shadow:0 0 0 0 transparent}}
|
||
|
||
/* ============ REVEAL ============ */
|
||
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
|
||
.reveal.in{opacity:1;transform:none}
|
||
|
||
/* ============ RESPONSIVE ============ */
|
||
@media(max-width:900px){
|
||
.nav-links{display:none}.menu-toggle{display:grid}
|
||
.hero-grid,.tab-panel.active,.calc-grid,.case-grid{grid-template-columns:1fr}
|
||
.hero-visual{height:440px;margin-top:20px}
|
||
.stats-grid{grid-template-columns:repeat(2,1fr);gap:32px 16px}
|
||
.cards-3,.price-grid,.contract-box{grid-template-columns:1fr}
|
||
.plan.featured{transform:none}
|
||
.foot-grid{grid-template-columns:1fr 1fr}
|
||
section{padding:64px 0}
|
||
.case-stats{flex-wrap:wrap}
|
||
}
|
||
@media(max-width:560px){
|
||
.stats-grid,.foot-grid{grid-template-columns:1fr}
|
||
.row2{grid-template-columns:1fr}
|
||
.founder{flex-direction:column;text-align:center}
|
||
}
|
||
@media(prefers-reduced-motion:reduce){
|
||
*{animation-duration:.001s!important;transition-duration:.001s!important}
|
||
.reveal{opacity:1;transform:none}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<!-- ================= HEADER ================= -->
|
||
<header id="hdr">
|
||
<div class="wrap nav">
|
||
<a href="#" class="brand" aria-label="Tripz">
|
||
<span class="brand-badge"><img src="assets/logotripz.png" alt="Tripz"></span>
|
||
</a>
|
||
<nav class="nav-links">
|
||
<a href="#product" data-i18n="nav.product">المنتج</a>
|
||
<a href="#addons" data-i18n="nav.addons">الإضافات</a>
|
||
<a href="#calc" data-i18n="nav.savings">حاسبة التوفير</a>
|
||
<a href="#pricing" data-i18n="nav.pricing">التسعير</a>
|
||
<a href="#how" data-i18n="nav.how">كيف نطلق</a>
|
||
<a href="#faq" data-i18n="nav.faq">الأسئلة</a>
|
||
</nav>
|
||
<div class="nav-right">
|
||
<div class="lang-wrap" id="langWrap">
|
||
<button class="icon-btn" id="langBtn" aria-label="Language" aria-haspopup="true">
|
||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15 15 0 010 20M12 2a15 15 0 000 20"/></svg>
|
||
</button>
|
||
<div class="lang-menu" role="menu">
|
||
<button data-lang="ar" class="active">العربية</button>
|
||
<button data-lang="en">English</button>
|
||
<button data-lang="fr">Français</button>
|
||
<button data-lang="es">Español</button>
|
||
</div>
|
||
</div>
|
||
<button class="icon-btn" id="themeBtn" aria-label="Theme">
|
||
<svg id="thmIcon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12.8A9 9 0 1111.2 3a7 7 0 009.8 9.8z"/></svg>
|
||
</button>
|
||
<a href="#demo" class="btn btn-primary" style="padding:11px 20px" data-i18n="nav.demo">جرّب الديمو</a>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- ================= HERO ================= -->
|
||
<section class="hero grain" id="top">
|
||
<svg class="hero-map" viewBox="0 0 1200 600" preserveAspectRatio="xMidYMid slice" aria-hidden="true">
|
||
<g stroke="#1b2a52" stroke-width="1.5" fill="none" opacity=".7">
|
||
<path d="M0 120 H1200 M0 260 H1200 M0 400 H1200 M0 540 H1200"/>
|
||
<path d="M180 0 V600 M420 0 V600 M660 0 V600 M900 0 V600 M1080 0 V600"/>
|
||
</g>
|
||
<path id="road1" d="M-50 400 C 250 400 300 180 620 180 S 1000 260 1260 260" stroke="#2E4BFF" stroke-width="3" fill="none" opacity=".6"/>
|
||
<path id="road2" d="M-50 120 C 300 120 380 460 720 460 S 1100 400 1260 420" stroke="#D6DBEE" stroke-width="2.5" fill="none" opacity=".35"/>
|
||
<path id="road3" d="M-50 540 C 200 540 260 320 560 320 S 950 140 1260 100" stroke="#8AA0FF" stroke-width="2" fill="none" opacity=".3"/>
|
||
<circle cx="620" cy="180" r="4" fill="#2E4BFF" opacity=".8"><animate attributeName="r" values="4;9;4" dur="2.6s" repeatCount="indefinite"/><animate attributeName="opacity" values=".8;0;.8" dur="2.6s" repeatCount="indefinite"/></circle>
|
||
<circle cx="720" cy="460" r="4" fill="#D6DBEE" opacity=".7"><animate attributeName="r" values="4;9;4" dur="3.2s" begin="-1s" repeatCount="indefinite"/><animate attributeName="opacity" values=".7;0;.7" dur="3.2s" begin="-1s" repeatCount="indefinite"/></circle>
|
||
<circle r="6" fill="#fff"><animateMotion dur="9s" repeatCount="indefinite"><mpath href="#road1"/></animateMotion></circle>
|
||
<circle r="5" fill="#D6DBEE"><animateMotion dur="12s" repeatCount="indefinite"><mpath href="#road2"/></animateMotion></circle>
|
||
<circle r="5" fill="#8AA0FF"><animateMotion dur="14s" begin="-4s" repeatCount="indefinite"><mpath href="#road1"/></animateMotion></circle>
|
||
<circle r="4.5" fill="#2E4BFF"><animateMotion dur="10s" begin="-2s" repeatCount="indefinite"><mpath href="#road3"/></animateMotion></circle>
|
||
<circle r="4" fill="#fff" opacity=".8"><animateMotion dur="16s" begin="-7s" repeatCount="indefinite"><mpath href="#road2"/></animateMotion></circle>
|
||
</svg>
|
||
<a href="#why" class="scroll-cue" aria-label="Scroll down"><span data-i18n="hero.scroll"></span><span class="chev"></span></a>
|
||
<div class="wrap hero-grid">
|
||
<div class="hero-copy">
|
||
<h1 id="heroTitle"></h1>
|
||
<p class="hero-sub" data-i18n="hero.sub"></p>
|
||
<div class="hero-cta">
|
||
<a href="#demo" class="btn btn-primary btn-lg" data-i18n="hero.cta1">جرّب الديمو الحي</a>
|
||
<a href="https://wa.me/962798583052" target="_blank" rel="noopener" class="btn btn-wa btn-lg" data-i18n="hero.cta2">
|
||
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2zm0 18a8 8 0 01-4-1.1l-.3-.2-2.9.8.8-2.8-.2-.3A8 8 0 1112 20zm4.4-6c-.2-.1-1.4-.7-1.6-.8s-.4-.1-.6.1-.6.8-.8.9-.3.2-.6 0a6.5 6.5 0 01-1.9-1.2 7.3 7.3 0 01-1.4-1.7c-.1-.3 0-.4.1-.5l.4-.5.3-.5v-.4l-.8-1.9c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 00-.7.3 3 3 0 00-.9 2.2 5.2 5.2 0 001.1 2.7 11.8 11.8 0 004.5 4c.6.2 1.1.4 1.5.5.6.2 1.2.2 1.6.1.5-.1 1.4-.6 1.6-1.1s.2-1 .1-1.1z"/></svg>
|
||
<span data-i18n="hero.cta2">تحدّث معنا على واتساب</span>
|
||
</a>
|
||
</div>
|
||
<p class="trust-line">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#25D366" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg>
|
||
<b data-i18n="hero.trust"></b>
|
||
</p>
|
||
</div>
|
||
<div class="hero-visual">
|
||
<!-- Rider phone -->
|
||
<div class="phone p1">
|
||
<div class="p-notch"></div>
|
||
<div class="p-screen" style="padding:0">
|
||
<img src="assets/mock_rider.png" alt="Tripz Rider App" style="width:100%;height:auto;display:block">
|
||
</div>
|
||
</div>
|
||
<!-- Driver phone -->
|
||
<div class="phone p2">
|
||
<div class="p-notch"></div>
|
||
<div class="p-screen" style="padding:0">
|
||
<img src="assets/mock_driver.png" alt="Tripz Driver App" style="width:100%;height:auto;display:block">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= STATS ================= -->
|
||
<section class="stats" style="padding:48px 0">
|
||
<div class="wrap stats-grid">
|
||
<div class="stat reveal"><div class="n"><span class="count" data-to="2019" data-plain="1">2019</span></div><div class="l" data-i18n="stat.since"></div></div>
|
||
<div class="stat reveal"><div class="n">$<span class="count" data-to="0.02" data-dec="2">0.02</span></div><div class="l" data-i18n="stat.min"></div></div>
|
||
<div class="stat reveal"><div class="n"><span class="count" data-to="30">30</span> <span data-i18n="stat.days"></span></div><div class="l" data-i18n="stat.launch"></div></div>
|
||
<div class="stat reveal"><div class="n"><span class="count" data-to="4">4</span></div><div class="l" data-i18n="stat.lang"></div></div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= PILLARS ================= -->
|
||
<section id="why">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="pillars.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="pillars.title"></h2>
|
||
<p class="sec-lead" data-i18n="pillars.lead"></p>
|
||
</div>
|
||
<div class="feature-rows">
|
||
|
||
<div class="frow reveal">
|
||
<div class="frow-art">
|
||
<svg viewBox="0 0 260 200" width="100%" height="100%">
|
||
<defs>
|
||
<linearGradient id="g1" x1="0" y1="0" x2="1" y2="1">
|
||
<stop offset="0" style="stop-color:var(--brand-500)" stop-opacity=".16"/>
|
||
<stop offset="1" style="stop-color:var(--signal-400)" stop-opacity=".10"/>
|
||
</linearGradient>
|
||
</defs>
|
||
<rect x="4" y="4" width="252" height="192" rx="20" style="fill:url(#g1)"/>
|
||
<circle cx="224" cy="34" r="5" style="fill:var(--signal-400)" opacity=".7"/>
|
||
<circle cx="34" cy="168" r="4" style="fill:var(--brand-500)" opacity=".5"/>
|
||
<!-- shield -->
|
||
<path d="M130 36 L182 54 V96 C182 130 158 152 130 164 C102 152 78 130 78 96 V54 Z"
|
||
style="fill:var(--midnight-700)" opacity=".9"/>
|
||
<path d="M130 36 L182 54 V96 C182 130 158 152 130 164 C102 152 78 130 78 96 V54 Z"
|
||
style="fill:none;stroke:var(--brand-500);stroke-width:2.5"/>
|
||
<!-- document sliding out -->
|
||
<rect x="106" y="76" width="48" height="60" rx="4" style="fill:#fff" opacity=".95"/>
|
||
<line x1="114" y1="90" x2="146" y2="90" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<line x1="114" y1="100" x2="146" y2="100" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<line x1="114" y1="110" x2="134" y2="110" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<!-- export arrow -->
|
||
<path d="M130 118 L130 150 M130 150 L120 140 M130 150 L140 140" style="stroke:var(--signal-400);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none"/>
|
||
</svg>
|
||
</div>
|
||
<div class="frow-text">
|
||
<h3 data-i18n="pillars.p1.t"></h3><p data-i18n="pillars.p1.d"></p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="frow reveal reverse">
|
||
<div class="frow-art">
|
||
<svg viewBox="0 0 260 200" width="100%" height="100%">
|
||
<defs>
|
||
<linearGradient id="g2" x1="0" y1="0" x2="1" y2="1">
|
||
<stop offset="0" style="stop-color:var(--signal-400)" stop-opacity=".14"/>
|
||
<stop offset="1" style="stop-color:var(--brand-500)" stop-opacity=".12"/>
|
||
</linearGradient>
|
||
</defs>
|
||
<rect x="4" y="4" width="252" height="192" rx="20" style="fill:url(#g2)"/>
|
||
<circle cx="40" cy="40" r="5" style="fill:var(--brand-500)" opacity=".6"/>
|
||
<!-- receipt -->
|
||
<path d="M92 40 H168 V148 L160 142 L152 148 L144 142 L136 148 L128 142 L120 148 L112 142 L104 148 L96 142 L92 148 Z"
|
||
style="fill:#fff" opacity=".97"/>
|
||
<path d="M92 40 H168 V148 L160 142 L152 148 L144 142 L136 148 L128 142 L120 148 L112 142 L104 148 L96 142 L92 148 Z"
|
||
style="fill:none;stroke:var(--line);stroke-width:1.5"/>
|
||
<line x1="104" y1="60" x2="156" y2="60" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<line x1="104" y1="72" x2="156" y2="72" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<line x1="104" y1="84" x2="140" y2="84" style="stroke:var(--ink-300);stroke-width:2.5"/>
|
||
<!-- transparent % badge -->
|
||
<circle cx="150" cy="108" r="26" style="fill:var(--success-500)" opacity=".14"/>
|
||
<circle cx="150" cy="108" r="26" style="fill:none;stroke:var(--success-500);stroke-width:2.5"/>
|
||
<text x="150" y="114" text-anchor="middle" style="fill:var(--success-500);font-size:15px;font-weight:700;font-family:sans-serif">2.5%</text>
|
||
<path d="M186 96 L196 106 L212 88" style="fill:none;stroke:var(--signal-400);stroke-width:4;stroke-linecap:round;stroke-linejoin:round"/>
|
||
</svg>
|
||
</div>
|
||
<div class="frow-text">
|
||
<h3 data-i18n="pillars.p2.t"></h3><p data-i18n="pillars.p2.d"></p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="frow reveal">
|
||
<div class="frow-art">
|
||
<svg viewBox="0 0 260 200" width="100%" height="100%">
|
||
<defs>
|
||
<linearGradient id="g3" x1="0" y1="0" x2="1" y2="1">
|
||
<stop offset="0" style="stop-color:var(--brand-500)" stop-opacity=".16"/>
|
||
<stop offset="1" style="stop-color:var(--signal-400)" stop-opacity=".14"/>
|
||
</linearGradient>
|
||
</defs>
|
||
<rect x="4" y="4" width="252" height="192" rx="20" style="fill:url(#g3)"/>
|
||
<!-- motion streaks -->
|
||
<path d="M30 70 H70 M24 90 H82 M30 110 H64" style="stroke:var(--brand-500);stroke-width:3;stroke-linecap:round" opacity=".45"/>
|
||
<!-- speedometer -->
|
||
<circle cx="150" cy="104" r="46" style="fill:var(--midnight-700)" opacity=".92"/>
|
||
<path d="M114 128 A46 46 0 0 1 186 128" style="fill:none;stroke:var(--brand-500);stroke-width:6;stroke-linecap:round"/>
|
||
<path d="M114 128 A46 46 0 0 1 150 60" style="fill:none;stroke:var(--signal-400);stroke-width:6;stroke-linecap:round"/>
|
||
<line x1="150" y1="104" x2="176" y2="82" style="stroke:#fff;stroke-width:3.5;stroke-linecap:round"/>
|
||
<circle cx="150" cy="104" r="6" style="fill:#fff"/>
|
||
<!-- 30-day badge -->
|
||
<circle cx="204" cy="150" r="24" style="fill:var(--signal-400)"/>
|
||
<text x="204" y="156" text-anchor="middle" style="fill:var(--midnight-900);font-size:16px;font-weight:800;font-family:sans-serif">30</text>
|
||
</svg>
|
||
</div>
|
||
<div class="frow-text">
|
||
<h3 data-i18n="pillars.p3.t"></h3><p data-i18n="pillars.p3.d"></p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= BRANDS WE POWER ================= -->
|
||
<section id="brands" style="background:var(--bg-alt);padding:72px 0">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="brands.eyebrow"></div>
|
||
<h2 class="sec" style="font-size:clamp(24px,3vw,32px)" data-i18n="brands.title"></h2>
|
||
</div>
|
||
<div class="brand-logos reveal">
|
||
<div class="blogo-card">
|
||
<img src="assets/logotripz.png" alt="Tripz">
|
||
<span>Tripz — العلامة الرئيسية</span>
|
||
</div>
|
||
<div class="blogo-card">
|
||
<img src="assets/logo_siro.png" alt="Siro">
|
||
<span data-i18n="brands.siro"></span>
|
||
</div>
|
||
<div class="blogo-card">
|
||
<img src="assets/intaleq.png" alt="Intalaq">
|
||
<span data-i18n="brands.intalaq"></span>
|
||
</div>
|
||
<div class="blogo-card blogo-more">
|
||
<div class="blogo-plus">+</div>
|
||
<span data-i18n="brands.next"></span>
|
||
</div>
|
||
</div>
|
||
<p class="brands-note" data-i18n="brands.note"></p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= PRODUCT TABS ================= -->
|
||
<section id="product" class="ambient" style="background:var(--bg-alt)">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="prod.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="prod.title"></h2>
|
||
</div>
|
||
<div style="display:flex;justify-content:center"><div class="tabs-nav reveal">
|
||
<button class="tab-btn active" data-tab="rider" data-i18n="prod.tab.rider"></button>
|
||
<button class="tab-btn" data-tab="driver" data-i18n="prod.tab.driver"></button>
|
||
<button class="tab-btn" data-tab="dispatch" data-i18n="prod.tab.dispatch"></button>
|
||
<button class="tab-btn" data-tab="hub" data-i18n="prod.tab.hub"></button>
|
||
</div></div>
|
||
|
||
<div class="tab-panel active" data-panel="rider">
|
||
<div>
|
||
<h3 style="font-size:28px;margin-bottom:10px" data-i18n="prod.rider.h"></h3>
|
||
<ul class="feat-list">
|
||
<li><span class="ck">✓</span><span data-i18n="prod.rider.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.rider.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.rider.3"></span></li>
|
||
</ul>
|
||
</div>
|
||
<div class="mock-img-wrap">
|
||
<img src="assets/mock_rider.png" alt="Tripz Rider App" class="mock-img">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tab-panel" data-panel="driver">
|
||
<div>
|
||
<h3 style="font-size:28px;margin-bottom:10px" data-i18n="prod.driver.h"></h3>
|
||
<ul class="feat-list">
|
||
<li><span class="ck">✓</span><span data-i18n="prod.driver.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.driver.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.driver.3"></span></li>
|
||
</ul>
|
||
</div>
|
||
<div class="mock-img-wrap">
|
||
<img src="assets/mock_driver.png" alt="Tripz Driver App" class="mock-img">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tab-panel" data-panel="dispatch">
|
||
<div>
|
||
<h3 style="font-size:28px;margin-bottom:10px" data-i18n="prod.dispatch.h"></h3>
|
||
<ul class="feat-list">
|
||
<li><span class="ck">✓</span><span data-i18n="prod.dispatch.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.dispatch.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.dispatch.3"></span></li>
|
||
</ul>
|
||
</div>
|
||
<div class="mock-img-wrap">
|
||
<img src="assets/mock_dispatch.png" alt="Tripz Dispatch Hub" class="mock-img" onerror="this.src='assets/tripz_dispatch_mockup.png'">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tab-panel" data-panel="hub">
|
||
<div>
|
||
<h3 style="font-size:28px;margin-bottom:10px" data-i18n="prod.hub.h"></h3>
|
||
<ul class="feat-list">
|
||
<li><span class="ck">✓</span><span data-i18n="prod.hub.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.hub.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="prod.hub.3"></span></li>
|
||
</ul>
|
||
</div>
|
||
<div class="mock-img-wrap">
|
||
<img src="assets/mock_hub.png" alt="Tripz Hub Analytics" class="mock-img">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= AI MODULES & NABEH INTEGRATION ================= -->
|
||
<!-- ================= CALCULATOR ================= -->
|
||
<section class="calc grain" id="calc">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" style="color:#8AA0FF" data-i18n="calc.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="calc.title"></h2>
|
||
<p class="sec-lead" data-i18n="calc.lead"></p>
|
||
</div>
|
||
<div class="calc-grid reveal">
|
||
<div class="calc-panel">
|
||
<div class="field">
|
||
<label data-i18n="calc.trips"></label>
|
||
<input type="range" id="trips" min="50" max="5000" step="50" value="1500">
|
||
<div style="display:flex;justify-content:space-between;font-size:12px;color:#7C8DBB;margin-top:6px"><span>50</span><span id="tripsVal" class="num" style="color:#D6DBEE;font-weight:700;font-size:16px">1,500 / day</span><span>5,000</span></div>
|
||
</div>
|
||
<div class="row2">
|
||
<div class="field">
|
||
<label data-i18n="calc.fare"></label>
|
||
<input type="number" class="txtin num" id="fare" value="2.2" step="0.1" min="0.1">
|
||
</div>
|
||
<div class="field">
|
||
<label data-i18n="calc.currency"></label>
|
||
<select id="cur">
|
||
<option value="JOD:1.41">JOD — دينار أردني</option>
|
||
<option value="EGP:0.021">EGP — جنيه مصري</option>
|
||
<option value="SYP:0.00007">SYP — ليرة سورية</option>
|
||
<option value="USD:1">USD — دولار</option>
|
||
<option value="EUR:1.08">EUR — يورو</option>
|
||
<option value="MAD:0.10">MAD — درهم مغربي</option>
|
||
<option value="XOF:0.0017">XOF — فرنك غرب أفريقيا</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="field" style="margin-bottom:0">
|
||
<label data-i18n="calc.plan"></label>
|
||
<select id="plan">
|
||
<option value="349:0.025:0.04">علامة — $349/mo · 2.5%</option>
|
||
<option value="169:0.035:0.05">انطلاقة — $169/mo · 3.5%</option>
|
||
<option value="599:0.02:0.03">أسطول+ — $599/mo · 2%</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="result">
|
||
<div class="cmp-row tripz"><span class="lbl" data-i18n="calc.r.tripz"></span><span class="amt num" id="rTripz">$—</span></div>
|
||
<div class="cmp-row rival"><span class="lbl" data-i18n="calc.r.commission"></span><span class="amt num" id="rComm">$—</span></div>
|
||
<div class="cmp-row rival"><span class="lbl" data-i18n="calc.r.floor"></span><span class="amt num" id="rFloor">$—</span></div>
|
||
<div class="savings" id="savings">
|
||
<div class="cap" data-i18n="calc.r.savecap"></div>
|
||
<div class="big num" id="saveBig">$—</div>
|
||
</div>
|
||
<a href="#wa" class="btn btn-wa calc-cta" id="waCalc"><span data-i18n="calc.r.send"></span></a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= TIMELINE / HOW ================= -->
|
||
<section id="how">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="how.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="how.title"></h2>
|
||
<p class="sec-lead" data-i18n="how.lead"></p>
|
||
</div>
|
||
<div class="zig-timeline reveal" id="timeline">
|
||
<div class="zig-line"></div><div class="zig-fill" id="tlFill"></div>
|
||
<div class="zig-row a"><div class="zig-card"><div class="zig-day" data-i18n="how.s1.d"></div><h3 data-i18n="how.s1.t"></h3><p data-i18n="how.s1.p"></p></div><div class="zig-node">1</div></div>
|
||
<div class="zig-row b"><div class="zig-node">2</div><div class="zig-card"><div class="zig-day" data-i18n="how.s2.d"></div><h3 data-i18n="how.s2.t"></h3><p data-i18n="how.s2.p"></p></div></div>
|
||
<div class="zig-row a"><div class="zig-card"><div class="zig-day" data-i18n="how.s3.d"></div><h3 data-i18n="how.s3.t"></h3><p data-i18n="how.s3.p"></p></div><div class="zig-node">3</div></div>
|
||
<div class="zig-row b"><div class="zig-node">4</div><div class="zig-card"><div class="zig-day" data-i18n="how.s4.d"></div><h3 data-i18n="how.s4.t"></h3><p data-i18n="how.s4.p"></p></div></div>
|
||
<div class="zig-row a"><div class="zig-card"><div class="zig-day" data-i18n="how.s5.d"></div><h3 data-i18n="how.s5.t"></h3><p data-i18n="how.s5.p"></p></div><div class="zig-node">5</div></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= PRICING ================= -->
|
||
<section id="pricing" class="ambient" style="background:var(--bg-alt)">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="price.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="price.title"></h2>
|
||
<p class="sec-lead" data-i18n="price.lead"></p>
|
||
</div>
|
||
<div class="toggle-wrap reveal">
|
||
<span class="toggle-lbl active" id="lblM" data-i18n="price.monthly"></span>
|
||
<button class="toggle" id="billToggle" aria-label="billing"><span class="knob"></span></button>
|
||
<span class="toggle-lbl" id="lblY" data-i18n="price.yearly"></span>
|
||
<span class="badge-save" data-i18n="price.save15"></span>
|
||
</div>
|
||
<div class="price-grid">
|
||
<!-- Start -->
|
||
<div class="plan reveal">
|
||
<h3 data-i18n="plan.start.n"></h3>
|
||
<div class="price" data-m="169" data-y="144">$169<small>/mo</small></div>
|
||
<div class="setup"><span data-i18n="plan.setup"></span> $2,500</div>
|
||
<span class="gmv">GMV 3.5% · min $0.05</span>
|
||
<ul>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.start.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.start.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.start.3"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.start.4"></span></li>
|
||
</ul>
|
||
<a href="https://wa.me/962798583052" target="_blank" rel="noopener" class="btn btn-ghost" data-i18n="plan.start.cta"></a>
|
||
</div>
|
||
<!-- Brand featured -->
|
||
<div class="plan featured reveal">
|
||
<span class="tag" data-i18n="plan.popular"></span>
|
||
<h3 data-i18n="plan.brand.n"></h3>
|
||
<div class="price" data-m="349" data-y="297">$349<small>/mo</small></div>
|
||
<div class="setup"><span data-i18n="plan.setup"></span> $4,900</div>
|
||
<span class="gmv">GMV 2.5% · min $0.04</span>
|
||
<div class="plan-inherit" data-i18n="plan.brand.0"></div>
|
||
<ul>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.brand.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.brand.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.brand.3"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.brand.4"></span></li>
|
||
</ul>
|
||
<a href="https://calendly.com/sefertraveling/30min" target="_blank" rel="noopener" class="btn btn-primary" data-i18n="plan.brand.cta"></a>
|
||
</div>
|
||
<!-- Fleet -->
|
||
<div class="plan reveal">
|
||
<h3 data-i18n="plan.fleet.n"></h3>
|
||
<div class="price" data-m="599" data-y="509">$599<small>/mo</small></div>
|
||
<div class="setup"><span data-i18n="plan.setup"></span> $8,500</div>
|
||
<span class="gmv">GMV 2% · min $0.03</span>
|
||
<div class="plan-inherit" data-i18n="plan.fleet.0"></div>
|
||
<ul>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.fleet.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.fleet.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.fleet.3"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.fleet.4"></span></li>
|
||
</ul>
|
||
<a href="https://calendly.com/sefertraveling/30min" target="_blank" rel="noopener" class="btn btn-ghost" data-i18n="plan.brand.cta"></a>
|
||
</div>
|
||
<!-- Sovereign -->
|
||
<div class="plan reveal">
|
||
<h3 data-i18n="plan.sov.n"></h3>
|
||
<div class="price" data-m="879" data-y="747">$879<small>/mo</small></div>
|
||
<div class="setup"><span data-i18n="plan.setup"></span> $13,500+</div>
|
||
<span class="gmv">GMV 1% · min $0.02</span>
|
||
<div class="plan-inherit" data-i18n="plan.sov.0"></div>
|
||
<ul>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.sov.1"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.sov.2"></span></li>
|
||
<li><span class="ck">✓</span><span data-i18n="plan.sov.3"></span></li>
|
||
</ul>
|
||
<a href="https://calendly.com/sefertraveling/30min" target="_blank" rel="noopener" class="btn btn-ghost" data-i18n="plan.sov.cta"></a>
|
||
</div>
|
||
</div>
|
||
<p class="gmv-note" data-i18n="price.gmvnote"></p>
|
||
|
||
<div class="contract-box reveal">
|
||
<div class="ci"><h4>① <span data-i18n="price.c1.t"></span></h4><p data-i18n="price.c1.d"></p></div>
|
||
<div class="ci"><h4>② <span data-i18n="price.c2.t"></span></h4><p data-i18n="price.c2.d"></p></div>
|
||
<div class="ci"><h4>③ <span data-i18n="price.c3.t"></span></h4><p data-i18n="price.c3.d"></p></div>
|
||
</div>
|
||
<div class="founder reveal">
|
||
<div><strong style="font-size:18px;color:#fff" data-i18n="price.founder.t"></strong><div style="font-size:14px;opacity:.9;margin-top:4px" data-i18n="price.founder.d"></div></div>
|
||
<span class="seats"><span data-i18n="price.founder.seats"></span> 3 / 3</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= ADD-ONS / MODULES ================= -->
|
||
<section id="addons" class="ambient" style="background:var(--bg)">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="addons.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="addons.title"></h2>
|
||
<p class="sec-lead" data-i18n="addons.lead"></p>
|
||
</div>
|
||
<div class="addons-grid reveal">
|
||
<!-- 1. AI Suite -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(46,75,255,.15);color:#2E4BFF">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m1.name"></h3>
|
||
<p data-i18n="addons.m1.desc"></p>
|
||
<div class="addon-price"><span class="num">$149</span><span data-i18n="addons.m1.period"></span></div>
|
||
</div>
|
||
|
||
<!-- 2. Pricing Intelligence -->
|
||
<div class="addon-card featured">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(214,219,238,.15);color:#D6DBEE">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 3h18v18H3z" stroke-width="1.5"/><path d="M6 15l4-6 4 3 5-8"/><circle cx="6" cy="16" r="1"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m2.name"></h3>
|
||
<p data-i18n="addons.m2.desc"></p>
|
||
<div class="addon-price"><span class="num">$249</span><span data-i18n="addons.m2.period"></span></div>
|
||
</div>
|
||
|
||
<!-- 3. Growth Suite -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(18,183,106,.15);color:#12B76A">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 6 13.5 15.5 8.5 10.5 1 17"/><polyline points="17 6 23 6 23 12"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m3.name"></h3>
|
||
<p data-i18n="addons.m3.desc"></p>
|
||
<div class="addon-price"><span class="num">$129</span><span data-i18n="addons.m3.period"></span></div>
|
||
</div>
|
||
|
||
<!-- 4. Transit -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(255,179,71,.15);color:#FFB347">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 15h18M3 6h18v7H3z" stroke-width="1.5"/><circle cx="6" cy="19" r="1.5"/><circle cx="18" cy="19" r="1.5"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m4.name"></h3>
|
||
<p data-i18n="addons.m4.desc"></p>
|
||
<div class="addon-price"><span class="num">$299</span><span data-i18n="addons.m4.period"></span><div class="addon-setup" data-i18n="addons.m4.setup"></div></div>
|
||
</div>
|
||
|
||
<!-- 5. Fleet Intelligence -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(80,227,194,.15);color:#50E3C2">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10" stroke-width="1.5"/><path d="M12 2v20M2 12h20"/><circle cx="12" cy="12" r="3"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m5.name"></h3>
|
||
<p data-i18n="addons.m5.desc"></p>
|
||
<div class="addon-price"><span class="num">$99</span><span data-i18n="addons.m5.period"></span></div>
|
||
</div>
|
||
|
||
<!-- 6. Payments+ -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(255,107,107,.15);color:#FF6B6B">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="7" width="20" height="14" rx="2" stroke-width="1.5"/><path d="M16 12H8"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m6.name"></h3>
|
||
<p data-i18n="addons.m6.desc"></p>
|
||
<div class="addon-price"><span class="num">$99</span><span data-i18n="addons.m6.period"></span></div>
|
||
</div>
|
||
|
||
<!-- 7. Trust & Safety -->
|
||
<div class="addon-card">
|
||
<div class="addon-badge coming-soon" data-i18n="addon.badge.soon"></div>
|
||
<div class="addon-ico" style="background:rgba(100,108,255,.15);color:#646CFF">
|
||
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" stroke-width="1.5"/><path d="M10 13l2 2 4-4"/></svg>
|
||
</div>
|
||
<h3 data-i18n="addons.m7.name"></h3>
|
||
<p data-i18n="addons.m7.desc"></p>
|
||
<div class="addon-price"><span class="num">$79</span><span data-i18n="addons.m7.period"></span></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= COMPARISON ================= -->
|
||
<section id="compare" class="ambient">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="cmp.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="cmp.title"></h2>
|
||
</div>
|
||
<div class="cmp-scroll reveal">
|
||
<table class="cmp-table">
|
||
<thead><tr>
|
||
<th data-i18n="cmp.col.feature"></th>
|
||
<th class="us">Tripz<span class="us-badge" data-i18n="cmp.badge"></span></th><th data-i18n="cmp.col.other"></th><th data-i18n="cmp.col.custom"></th>
|
||
</tr></thead>
|
||
<tbody>
|
||
<tr><td data-i18n="cmp.r1"></td><td class="us">$2,500–13,500</td><td>$4,500–23,000</td><td>$150k–500k</td></tr>
|
||
<tr><td data-i18n="cmp.r2"></td><td class="us" data-i18n="cmp.r2.us"></td><td data-i18n="cmp.r2.on"></td><td data-i18n="cmp.r2.cu"></td></tr>
|
||
<tr><td data-i18n="cmp.r3"></td><td class="us">$0.02–0.05</td><td>$0.10</td><td>—</td></tr>
|
||
<tr><td data-i18n="cmp.r4"></td><td class="us yes">✓</td><td class="no">✕</td><td>—</td></tr>
|
||
<tr><td data-i18n="cmp.r5"></td><td class="us yes">✓</td><td class="no">✕</td><td class="yes">✓</td></tr>
|
||
<tr><td data-i18n="cmp.r6"></td><td class="us yes" data-i18n="cmp.r6.us"></td><td class="no">✕</td><td class="yes">✓</td></tr>
|
||
<tr><td data-i18n="cmp.r7"></td><td class="us yes">✓ RTL</td><td data-i18n="cmp.r7.on"></td><td data-i18n="cmp.r7.cu"></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= MARKET LANDSCAPE ================= -->
|
||
<section id="landscape" class="ambient" style="background:var(--bg-alt)">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="land.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="land.title"></h2>
|
||
<p class="sec-lead" data-i18n="land.lead"></p>
|
||
</div>
|
||
<div class="cmp-scroll reveal">
|
||
<table class="cmp-table">
|
||
<thead><tr>
|
||
<th data-i18n="land.col.platform"></th>
|
||
<th data-i18n="land.col.model"></th>
|
||
<th data-i18n="land.col.setup"></th>
|
||
<th data-i18n="land.col.monthly"></th>
|
||
<th data-i18n="land.col.pertrip"></th>
|
||
</tr></thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="us">Tripz<span class="us-badge" data-i18n="cmp.badge"></span></td>
|
||
<td class="us" data-i18n="land.m.tripz"></td>
|
||
<td class="us">$2,500–13,500</td><td class="us">$169–879</td><td class="us" data-i18n="land.p.tripz"></td>
|
||
</tr>
|
||
<tr>
|
||
<td>المنصات الأجنبية المنافسة</td>
|
||
<td data-i18n="land.m.onde"></td>
|
||
<td>$4,500–23,000</td>
|
||
<td>$299–1,500</td>
|
||
<td data-i18n="land.p.onde"></td>
|
||
</tr>
|
||
<tr>
|
||
<td>التطوير المخصص من الصفر</td>
|
||
<td>كود مخصص مستقل</td>
|
||
<td>$150,000–500,000</td>
|
||
<td>صيانة وسيرفرات مستقلة</td>
|
||
<td>— (تكلفة رأس مال ضخمة)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p class="brands-note" data-i18n="land.note"></p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= CASE STUDY ================= -->
|
||
<section class="case ambient" id="case">
|
||
<div class="wrap case-grid">
|
||
<div class="reveal">
|
||
<div class="eyebrow" data-i18n="case.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="case.title"></h2>
|
||
<p data-i18n="case.p1"></p>
|
||
<p data-i18n="case.p2"></p>
|
||
<div class="case-stats">
|
||
<div class="cs"><div class="n num">2,500</div><div class="l" data-i18n="case.s1"></div></div>
|
||
<div class="cs"><div class="n num">6,000</div><div class="l" data-i18n="case.s2"></div></div>
|
||
<div class="cs"><div class="n num">3</div><div class="l" data-i18n="case.s3"></div></div>
|
||
</div>
|
||
<div class="quote"><span data-i18n="case.quote"></span><span class="who" data-i18n="case.who"></span></div>
|
||
</div>
|
||
<div class="case-visual reveal">
|
||
<div class="dash-row"><span data-i18n="case.s1"></span><b class="num">2,500</b></div>
|
||
<div class="dash-row"><span data-i18n="case.s2"></span><b class="num">6,000</b></div>
|
||
<div class="dash-row"><span data-i18n="case.d4"></span><b>Cairo · Alexandria · Damascus</b></div>
|
||
<div class="dash-bars"><span style="height:45%"></span><span style="height:60%"></span><span style="height:52%"></span><span style="height:78%"></span><span style="height:66%"></span><span style="height:90%"></span><span style="height:82%"></span><span style="height:97%"></span></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= SECURITY ================= -->
|
||
<section class="sec-strip grain" style="padding:56px 0">
|
||
<div class="wrap">
|
||
<h3 style="color:#fff;font-size:22px" data-i18n="sec.title"></h3>
|
||
<div class="badges">
|
||
<div class="sbadge"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg><span data-i18n="sec.b1"></span></div>
|
||
<div class="sbadge"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg>3-D Secure</div>
|
||
<div class="sbadge"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg><span data-i18n="sec.b2"></span></div>
|
||
<div class="sbadge"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg><span data-i18n="sec.b3"></span></div>
|
||
<div class="sbadge"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg><span data-i18n="sec.b4"></span></div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= FAQ ================= -->
|
||
<section id="faq" class="ambient">
|
||
<div class="wrap">
|
||
<div class="center reveal">
|
||
<div class="eyebrow" data-i18n="faq.eyebrow"></div>
|
||
<h2 class="sec" data-i18n="faq.title"></h2>
|
||
</div>
|
||
<div class="faq-list" id="faqList"></div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= FINAL CTA / REAL APPS ================= -->
|
||
<section class="final grain" id="demo">
|
||
<div class="wrap">
|
||
<h2 data-i18n="final.title"></h2>
|
||
<p class="demo-lead" data-i18n="demo.lead"></p>
|
||
<div class="store-groups">
|
||
<div class="store-group">
|
||
<div class="store-group-label" data-i18n="demo.rider"></div>
|
||
<div class="store-badges">
|
||
<a href="https://apps.apple.com/eg/app/tripz-rider/id6458734951" target="_blank" rel="noopener" class="store-badge">
|
||
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M16.7 1.3c0 1.1-.4 2-1.2 2.9-.9 1-2 1.6-3.1 1.5-.1-1.1.4-2.2 1.2-3 .8-.9 2.1-1.5 3.1-1.4zM20.9 17c-.5 1.1-.7 1.6-1.4 2.6-.9 1.4-2.2 3.1-3.8 3.1-1.4 0-1.8-.9-3.7-.9s-2.4.9-3.7.9c-1.6 0-2.8-1.6-3.7-3-2.5-3.9-2.8-8.5-1.2-10.9 1.1-1.7 2.9-2.7 4.6-2.7 1.7 0 2.8 1 4.2 1s2.2-1 4.2-1c1.5 0 3.1.8 4.2 2.2-3.7 2-3.1 7.2.3 8.7z"/></svg>
|
||
<span><small data-i18n="demo.appstore"></small><b>Tripz Rider</b></span>
|
||
</a>
|
||
<a href="https://play.google.com/store/apps/details?id=com.mobileapp.store.ride" target="_blank" rel="noopener" class="store-badge">
|
||
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M3.6 2.6c-.4.3-.6.8-.6 1.4v16c0 .6.2 1.1.6 1.4l9-9.4-9-9.4zm10.2 9.9l2.4-2.5 3.9 2.2c.7.4.7 1.4 0 1.8l-3.9 2.2-2.4-2.5-.7.7 2.7 2.9 4.9-2.8c1.4-.8 1.4-2.9 0-3.7l-4.9-2.8-2.7 2.9.7.7zM4.6 3l8.7 8.9-8.7 8.9c-.1-.2-.1-.4-.1-.6V3.6c0-.2 0-.4.1-.6z"/></svg>
|
||
<span><small data-i18n="demo.googleplay"></small><b>Tripz Rider</b></span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div class="store-group">
|
||
<div class="store-group-label" data-i18n="demo.driver"></div>
|
||
<div class="store-badges">
|
||
<a href="https://apps.apple.com/eg/app/tripz-driver/id6502189302" target="_blank" rel="noopener" class="store-badge">
|
||
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M16.7 1.3c0 1.1-.4 2-1.2 2.9-.9 1-2 1.6-3.1 1.5-.1-1.1.4-2.2 1.2-3 .8-.9 2.1-1.5 3.1-1.4zM20.9 17c-.5 1.1-.7 1.6-1.4 2.6-.9 1.4-2.2 3.1-3.8 3.1-1.4 0-1.8-.9-3.7-.9s-2.4.9-3.7.9c-1.6 0-2.8-1.6-3.7-3-2.5-3.9-2.8-8.5-1.2-10.9 1.1-1.7 2.9-2.7 4.6-2.7 1.7 0 2.8 1 4.2 1s2.2-1 4.2-1c1.5 0 3.1.8 4.2 2.2-3.7 2-3.1 7.2.3 8.7z"/></svg>
|
||
<span><small data-i18n="demo.appstore"></small><b>Tripz Driver</b></span>
|
||
</a>
|
||
<a href="https://play.google.com/store/apps/details?id=com.sefer_driver" target="_blank" rel="noopener" class="store-badge">
|
||
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M3.6 2.6c-.4.3-.6.8-.6 1.4v16c0 .6.2 1.1.6 1.4l9-9.4-9-9.4zm10.2 9.9l2.4-2.5 3.9 2.2c.7.4.7 1.4 0 1.8l-3.9 2.2-2.4-2.5-.7.7 2.7 2.9 4.9-2.8c1.4-.8 1.4-2.9 0-3.7l-4.9-2.8-2.7 2.9.7.7zM4.6 3l8.7 8.9-8.7 8.9c-.1-.2-.1-.4-.1-.6V3.6c0-.2 0-.4.1-.6z"/></svg>
|
||
<span><small data-i18n="demo.googleplay"></small><b>Tripz Driver</b></span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="btn-group" style="margin-top:32px">
|
||
<a href="https://wa.me/962798583052" target="_blank" rel="noopener" class="btn btn-wa btn-lg" data-i18n="hero.cta2"></a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ================= FOOTER ================= -->
|
||
<footer class="grain">
|
||
<div class="wrap">
|
||
<div class="foot-grid">
|
||
<div class="foot-brand">
|
||
<div class="brand"><span class="brand-badge"><img src="assets/logotripz.png" alt="Tripz"></span></div>
|
||
<p data-i18n="foot.tag"></p>
|
||
</div>
|
||
<div class="foot-col"><h5 data-i18n="foot.product"></h5><a href="#product" data-i18n="prod.tab.rider"></a><a href="#product" data-i18n="prod.tab.driver"></a><a href="#product" data-i18n="prod.tab.dispatch"></a><a href="#product" data-i18n="prod.tab.hub"></a></div>
|
||
<div class="foot-col"><h5 data-i18n="foot.solutions"></h5><a href="#" data-i18n="foot.fleets"></a><a href="#" data-i18n="foot.startups"></a><a href="#" data-i18n="plan.sov.n"></a></div>
|
||
<div class="foot-col"><h5 data-i18n="foot.resources"></h5><a href="#pricing" data-i18n="nav.pricing"></a><a href="#how" data-i18n="nav.how"></a><a href="#faq" data-i18n="nav.faq"></a><a href="#case" data-i18n="foot.case"></a></div>
|
||
<div class="foot-col"><h5 data-i18n="foot.legal"></h5><a href="#" data-i18n="foot.privacy"></a><a href="#" data-i18n="foot.terms"></a><a href="#" data-i18n="foot.dpa"></a></div>
|
||
</div>
|
||
<div class="foot-bottom">
|
||
<span>© 2026 Tripz. <span data-i18n="foot.rights"></span></span>
|
||
<span data-i18n="foot.built"></span>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<a href="https://wa.me/962798583052" target="_blank" rel="noopener" class="wa-float" aria-label="WhatsApp">
|
||
<svg width="28" height="28" viewBox="0 0 24 24" fill="#fff"><path d="M12 2a10 10 0 00-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1012 2zm0 18a8 8 0 01-4-1.1l-.3-.2-2.9.8.8-2.8-.2-.3A8 8 0 1112 20zm4.4-6c-.2-.1-1.4-.7-1.6-.8s-.4-.1-.6.1-.6.8-.8.9-.3.2-.6 0a6.5 6.5 0 01-1.9-1.2 7.3 7.3 0 01-1.4-1.7c-.1-.3 0-.4.1-.5l.4-.5.3-.5v-.4l-.8-1.9c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 00-.7.3 3 3 0 00-.9 2.2 5.2 5.2 0 001.1 2.7 11.8 11.8 0 004.5 4c.6.2 1.1.4 1.5.5.6.2 1.2.2 1.6.1.5-.1 1.4-.6 1.6-1.1s.2-1 .1-1.1z"/></svg>
|
||
</a>
|
||
|
||
<script>
|
||
/* ============ i18n DICTIONARY (ar default · en · fr · es) ============ */
|
||
const I18N = {
|
||
ar:{
|
||
"nav.product":"المنتج","nav.addons":"الإضافات","nav.savings":"حاسبة التوفير","nav.pricing":"التسعير","nav.how":"كيف نطلق","nav.faq":"الأسئلة","nav.demo":"جرّب الديمو",
|
||
"hero.title":"أطلق تطبيق النقل [بعلامتك] — خلال 30 يوماً، وبياناتك تبقى لك.",
|
||
"hero.sub":"تطبيقا راكب وسائق على المتجرين، لوحة تحكم وdispatch — بنسبة معلنة على الموقع وعقد يضمن تصدير بياناتك في أي وقت.",
|
||
"hero.cta1":"جرّب الديمو الحي","hero.cta2":"تحدّث معنا على واتساب","hero.trust":"بلا بطاقة ائتمانية · ديمو فوري بلا مكالمة مبيعات","hero.scroll":"اكتشف المزيد",
|
||
"ph.rider.eta":"وقت الوصول","ph.min":"دقائق","ph.rider.class":"اقتصادي","ph.rider.chip":"سعر مؤكد قبل الطلب","ph.rider.btn":"اطلب الآن",
|
||
"ph.driver.today":"أرباح اليوم","ph.driver.new":"طلب جديد","ph.driver.fare":"الأجرة","ph.driver.accept":"قبول",
|
||
"stat.since":"يشغّل رحلات حقيقية","stat.min":"الحد الأدنى للرحلة — الأدنى بالفئة","stat.days":"يوماً","stat.launch":"من العقد إلى المتجرين","stat.lang":"لغات بـRTL أصيل",
|
||
"pillars.eyebrow":"لماذا Tripz","pillars.title":"مقلوبٌ عن كل ما يؤلمك في المنافس","pillars.lead":"ثلاث ثغرات في السوق حوّلناها إلى وعودٍ مكتوبة في عقدك.",
|
||
"pillars.p1.t":"بياناتك سيادتك","pillars.p1.d":"تصدير كامل في أي وقت، فترة انتقال 60 يوماً مكتوبة في العقد، وخيار نشر داخل بلدك.",
|
||
"pillars.p2.t":"تكلفة بلا مفاجآت","pillars.p2.d":"النسبة معلنة هنا في صفحة التسعير. لا فاتورة خرائط مخفية، ولا حد أدنى $0.10.",
|
||
"pillars.p3.t":"أسرع من أن تتردد","pillars.p3.d":"نظام مجرّب يشغّل رحلات منذ 2019 — لا نبنيه من الصفر: نلبسه علامتك ونطلقه خلال 30 يوماً.",
|
||
"brands.eyebrow":"العلامات التي ندير تشغيلها اليوم","brands.title":"نفس المنصة، بعلامات مختلفة — بالضبط كما ستبدو علامتك","brands.siro":"سيرو — مصر والأردن","brands.intalaq":"انطلق — سوريا","brands.next":"علامتك القادمة","brands.note":"كل علامة تطبيق وواجهة إدارة مستقلة بالكامل، فوق نفس النواة التقنية الواحدة.",
|
||
"prod.eyebrow":"المنصة","prod.title":"أربعة مكونات، نظام واحد","prod.tab.rider":"تطبيق الراكب","prod.tab.driver":"تطبيق السائق","prod.tab.dispatch":"لوحة الموزّع","prod.tab.hub":"My Hub",
|
||
"prod.rider.h":"يطلب، يرى السعر، يتتبّع","prod.rider.1":"طلب بعرض أسعار الفئات قبل التأكيد","prod.rider.2":"تتبّع حي للسائق أثناء الرحلة","prod.rider.3":"دفع كاش ومحفظة إلكترونية","prod.rider.m1":"السعر المؤكد","prod.rider.m2":"وقت الوصول",
|
||
"prod.driver.h":"محفظة، اشتراكات، أرباح لحظية","prod.driver.1":"محفظة واشتراكات مرنة (90 / 180 / 360 يوماً)","prod.driver.2":"خريطة طلب واضحة بمسافة وأجرة","prod.driver.3":"أرباح لحظية وسجل رحلات","prod.driver.m1":"أرباح اليوم","prod.driver.m2":"الاشتراك","prod.driver.m3":"الطلب القادم",
|
||
"prod.dispatch.h":"إسناد يدوي وآلي وخريطة حية","prod.dispatch.1":"إسناد الطلبات يدوياً أو آلياً","prod.dispatch.2":"خريطة الأسطول الحية لكل المركبات","prod.dispatch.3":"حجوزات هاتفية للركاب دون تطبيق","prod.dispatch.m1":"مركبات نشطة",
|
||
"prod.hub.h":"التعرفة، التقارير، السائقون","prod.hub.1":"محرك تعرفة كامل بالفئات والنوافذ الزمنية","prod.hub.2":"تقارير ومالية شفافة بالكامل","prod.hub.3":"إدارة السائقين ووثائقهم بفحص ذكاء اصطناعي","prod.hub.m1":"رحلات الشهر","prod.hub.m2":"إجمالي GMV",
|
||
"calc.eyebrow":"أداة البيع الصامت","calc.title":"كم ستوفّر مع Tripz؟ احسبها بنفسك.","calc.lead":"حرّك رحلاتك اليومية ومتوسط الأجرة — وقارن فاتورتنا لحظياً بنموذج العمولة 15% وبحد المنافس الأدنى.",
|
||
"calc.trips":"عدد الرحلات يومياً","calc.fare":"متوسط الأجرة","calc.currency":"العملة","calc.plan":"الباقة",
|
||
"calc.r.tripz":"فاتورة Tripz الشهرية","calc.r.commission":"نموذج عمولة 15%","calc.r.floor":"نموذج بحد أدنى $0.10/رحلة","calc.r.savecap":"توفيرك السنوي مع Tripz","calc.r.send":"أرسل هذه الحسبة على واتساب",
|
||
"how.eyebrow":"رحلة الإطلاق","how.title":"من العقد إلى المتجرين خلال 30 يوماً","how.lead":"خمس مراحل واضحة، بإشرافنا المباشر، وبلا يوم توقف واحد إن كنت تعمل بنظام قديم.",
|
||
"how.s1.d":"يوم 1–3","how.s1.t":"دراسة النطاق","how.s1.p":"نحدد معك المدينة والفئات والتعرفة واللغات والعملات.",
|
||
"how.s2.d":"يوم 4–7","how.s2.t":"الأصول والتراخيص","how.s2.p":"ترسل الشعار والألوان وحسابات المطوّر، ونجهّز الهوية البصرية.",
|
||
"how.s3.d":"يوم 8–14","how.s3.t":"البناء والترحيل","how.s3.p":"نبني نسختك، نربط الدفع والرسائل، ونرحّل سائقيك وأرصدتهم بلا انقطاع.",
|
||
"how.s4.d":"يوم 15–21","how.s4.t":"الاختبار الميداني","how.s4.p":"نشر على TestFlight ومسار Beta وتجربة معك على الأرض.",
|
||
"how.s5.d":"يوم 22–30","how.s5.t":"الإطلاق الحي","how.s5.p":"مراجعة المتاجر والموافقة، ثم الإطلاق الحي بإشرافنا المباشر.",
|
||
"price.eyebrow":"تسعير علني بالكامل","price.title":"نعم — أسعارنا كلها هنا. علناً.","price.lead":"وجود صفحة تسعير كاملة وحده تمايزٌ في سوق يعتمد الغموض. اختر باقتك، وارتقِ متى شئت.",
|
||
"price.monthly":"شهري","price.yearly":"سنوي","price.save15":"وفّر 15%","plan.setup":"الإعداد:","plan.popular":"الأكثر اختياراً",
|
||
"plan.start.n":"انطلاقة","plan.start.1":"مدينتك مُدرجة داخل تطبيق Tripz الجامع — بلا تطبيق خاص بشعارك بعد","plan.start.2":"لوحة تحكم و dispatch أساسي","plan.start.3":"محرك تعرفة كامل بحزمة بلدك (نفس محرك الباقات الأعلى)","plan.start.4":"سقف تجريبي: 90 يوماً أو 10,000 رحلة، ثم ترقية","plan.start.cta":"ابدأ الآن",
|
||
"plan.brand.n":"علامة","plan.brand.0":"↳ كل مزايا انطلاقة، إضافة إلى:","plan.brand.1":"تطبيقا راكب+سائق خاصّان بعلامتك على المتجرين — لا مشاركة مع مستأجرين آخرين","plan.brand.2":"نشر ومراجعة المتجرين نتولاها بالكامل","plan.brand.3":"بلا سقف رحلات أو زمن","plan.brand.4":"دعم عربي مباشر + مدير حساب مخصص","plan.brand.cta":"احجز إطلاقك",
|
||
"plan.fleet.n":"أسطول+","plan.fleet.0":"↳ كل مزايا علامة، إضافة إلى:","plan.fleet.1":"Dispatch متقدم بتخصيص مناطق وشرائح سائقين","plan.fleet.2":"بوابة حجز للشركات (B2B) + حجز عبر الويب","plan.fleet.3":"محافظ وائتمان مخصّصة للسائقين","plan.fleet.4":"API + Webhooks + تقارير تشغيلية متقدمة",
|
||
"plan.sov.n":"سيادة","plan.sov.0":"↳ كل مزايا أسطول+، إضافة إلى:","plan.sov.1":"سيرفر معزول بالكامل داخل حدود دولتك","plan.sov.2":"واجهة تقارير للمنظّم + SLA 99.9%","plan.sov.3":"ضمان تصدير كامل + خيار Escrow","plan.sov.cta":"كلّم فريق المؤسسات",
|
||
"price.gmvnote":"نِسب GMV تنازلية: كلما كبر حجم أعمالك، صغرت نسبتنا. (علامة: 2.5% حتى $50k · 2% حتى $200k · 1.5% فوقها)",
|
||
"price.c1.t":"نسبة معلنة","price.c1.d":"مكتوبة ومثبتة في العقد — لا مفاجآت.","price.c2.t":"تصدير بياناتك","price.c2.d":"بياناتك كاملة، قابلة للتصدير في أي وقت.","price.c3.t":"خروج كريم","price.c3.d":"إن غادرت: فترة انتقال 60 يوماً بدل القطع الفوري.",
|
||
"price.founder.t":"برنامج الشريك المؤسِّس","price.founder.d":"أول 3 مشغّلين: إعداد مجاني مقابل نقطة مئوية إضافية لسنة + دراسة حالة باسمك.","price.founder.seats":"المقاعد المتبقية",
|
||
"addons.eyebrow":"منصة قابلة للتركيب","addons.title":"خذ ما تحتاجه فقط — الوحدات المدفوعة","addons.lead":"أضف الذكاء والتسعير والنمو والمواصلات لنواة التطبيق — بناءً على احتياجات كل سوق.",
|
||
"addon.badge.now":"متاح الآن","addon.badge.soon":"قريباً الربع القادم",
|
||
"addons.m1.name":"حزمة الذكاء الاصطناعي","addons.m1.desc":"وثائق السائق، تدقيق الشكاوى، كشف الاحتيال، مستشار تشغيلي أسبوعي — موظفك الذي لا ينام.","addons.m1.period":"/شهر",
|
||
"addons.m2.name":"استخبارات التسعير","addons.m2.desc":"اعرف كيف يسعّر منافسك — قبل أن يعرف هو. تسعير ديناميكي ذكي بناءً على أسعار السوق.","addons.m2.period":"/شهر",
|
||
"addons.m3.name":"حزمة النمو","addons.m3.desc":"إعادة تنشيط الركاب الخاملين، حملات واتساب، تلعيب وتحديات — راكب عاد أرخص 10 مرات.","addons.m3.period":"/شهر",
|
||
"addons.m4.name":"المواصلات العامة","addons.m4.desc":"خطوط، مواقيت، تسجيل ركاب، تنبيهات، لوحة مشرف — الباصات على نفس المنصة.","addons.m4.period":"/شهر","addons.m4.setup":"إعداد $2,500",
|
||
"addons.m5.name":"ذكاء الأسطول","addons.m5.desc":"خريطة حرارية للطلب، تنبؤات ذكية، لقطة يومية، تقارير صحة — سائقوك سيقفون في المكان الصحيح.","addons.m5.period":"/شهر",
|
||
"addons.m6.name":"حزمة المدفوعات","addons.m6.desc":"كل بوابات الدفع المحلية (PayMob، CliQ، سيرياتيل) — محوّل جاهز بدل شهرين تطوير.","addons.m6.period":"/شهر",
|
||
"addons.m7.name":"الأمان والامتثال","addons.m7.desc":"كشف احتيال متقدم، تأمين السائق، زر الطوارئ، تقارير المنظّم — قريباً (توثيق قانوني جاري).","addons.m7.period":"/شهر",
|
||
"cmp.eyebrow":"المقارنة الصريحة","cmp.title":"Tripz مقابل البدائل","cmp.col.feature":"المعيار","cmp.col.other":"المنصات المنافسة","cmp.col.custom":"تطوير مخصص","cmp.badge":"الأفضل قيمة",
|
||
"land.eyebrow":"أين يقف السوق","land.title":"المشهد السعري للقطاع","land.lead":"مقارنة نموذج Tripz النزيه والأشمل مقابل المنصات الأجنبية المنافسة والتطوير المخصص.",
|
||
"land.col.platform":"الخيار / المنصة","land.col.model":"النموذج والتسويق","land.col.setup":"رسوم الإعداد","land.col.monthly":"الاشتراك الشهري","land.col.pertrip":"عمولة الرحلة",
|
||
"land.m.tripz":"علني ومعلن بالكامل + AI","land.m.onde":"نموذج غير معلن + رسوم غير شفافة",
|
||
"land.p.tripz":"من $0.02 · نسبة معلنة","land.p.onde":"$0.10+ · حد أدنى سرّي",
|
||
"land.note":"المقارنة مبنية على معايير السوق العالمية (2026). Tripz تنشر كامل أسعارها بنزاهة وتتيح استكشاف البيانات وإدماج منصة نبيّه.",
|
||
"cmp.r1":"تكلفة البدء","cmp.r2":"الزمن حتى الإطلاق","cmp.r2.us":"30 يوماً","cmp.r2.on":"أسابيع–أشهر","cmp.r2.cu":"9–18 شهراً",
|
||
"cmp.r3":"الحد الأدنى للرحلة","cmp.r4":"النسبة معلنة؟","cmp.r5":"تصدير البيانات مضمون بالعقد","cmp.r6":"استضافة داخل بلدك","cmp.r6.us":"✓ سيادة","cmp.r7":"دعم عربي أصيل","cmp.r7.on":"جزئي","cmp.r7.cu":"حسب المطوّر",
|
||
"case.eyebrow":"دراسة حالة","case.title":"قبل أن نبيعه لغيرنا، شغّلنا به شركتنا","case.p1":"«سيرو» هو تطبيق النقل الذي أدرناه بأنفسنا في السوق منذ 2019. كل ميزة في Tripz خرجت من تشغيلٍ حقيقي، لا من لوح أبيض.",
|
||
"case.p2":"حوّلناه إلى منصة سحابية متعددة المستأجرين حتى يحصل كل مشغّل على النظام نفسه — مجرّباً — تحت علامته هو. اليوم يعمل في القاهرة والإسكندرية ودمشق.","case.s1":"رحلة/شهر","case.s2":"سائق نشط","case.s3":"مدن",
|
||
"case.quote":"«لم نبنِ عرضاً تقديمياً؛ بنينا شركة تعمل، ثم فتحناها للمشغّلين.»","case.who":"— مؤسّس Tripz",
|
||
"case.d1":"رحلات الشهر","case.d2":"إجمالي GMV","case.d3":"النسبة الفعلية","case.d4":"المدن الحية",
|
||
"sec.title":"أمان بمعايير عالمية، وامتثال واضح","sec.b1":"دفع عبر شركاء PCI DSS (Paymob) — لا تمر بطاقةٌ بخوادمنا","sec.b2":"تشفير TLS كامل","sec.b3":"نسخ احتياطي يومي","sec.b4":"اتفاقية معالجة بيانات واضحة",
|
||
"faq.eyebrow":"بصراحة","faq.title":"الأسئلة التي يتهرّب منها غيرنا",
|
||
"final.title":"مدينتك تنتظر تطبيقها. ابدأ اليوم.",
|
||
"demo.lead":"هذا ليس عرضاً تقديمياً — هذان تطبيقا Tripz الحقيقيان، يعملان على المتجرين الآن.","demo.rider":"تطبيق الراكب","demo.driver":"تطبيق السائق","demo.appstore":"App Store","demo.googleplay":"Google Play",
|
||
"foot.tag":"منصة النقل الذكي كخدمة — أطلق تطبيقك بعلامتك، وبياناتك تبقى لك.","foot.product":"المنتج","foot.solutions":"الحلول","foot.fleets":"مكاتب وأساطيل التكسي","foot.startups":"رواد الأعمال والأسواق الناشئة","foot.resources":"الموارد","foot.case":"دراسة الحالة","foot.legal":"القانوني","foot.privacy":"الخصوصية","foot.terms":"الشروط","foot.dpa":"اتفاقية معالجة البيانات","foot.rights":"جميع الحقوق محفوظة.","foot.built":"صُمِّم للأسواق العربية والناشئة."
|
||
},
|
||
en:{
|
||
"nav.product":"Product","nav.addons":"Add-ons","nav.savings":"Savings","nav.pricing":"Pricing","nav.how":"How we launch","nav.faq":"FAQ","nav.demo":"Try demo",
|
||
"hero.title":"Launch ride-hailing [under your brand] — live in 30 days, your data stays yours.",
|
||
"hero.sub":"Rider & driver apps on both stores, an admin panel and dispatch — with pricing published right here and a contract that guarantees data export, anytime.",
|
||
"hero.cta1":"Try the live demo","hero.cta2":"Chat with us on WhatsApp","hero.trust":"No credit card · Instant demo, no sales call","hero.scroll":"Discover more",
|
||
"ph.rider.eta":"ETA","ph.min":"min","ph.rider.class":"Economy","ph.rider.chip":"Fare confirmed before you book","ph.rider.btn":"Request now",
|
||
"ph.driver.today":"Today's earnings","ph.driver.new":"New request","ph.driver.fare":"Fare","ph.driver.accept":"Accept",
|
||
"stat.since":"Running real trips","stat.min":"Per-trip floor — lowest in class","stat.days":"days","stat.launch":"from contract to both stores","stat.lang":"languages, true RTL",
|
||
"pillars.eyebrow":"Why Tripz","pillars.title":"The inverse of everything that hurts about the incumbent","pillars.lead":"Three market gaps we turned into promises written into your contract.",
|
||
"pillars.p1.t":"Your data, your sovereignty","pillars.p1.d":"Full export anytime, a 60-day transition period in the contract, and the option to host inside your own country.",
|
||
"pillars.p2.t":"Cost with no surprises","pillars.p2.d":"The rate is published right here on the pricing page. No hidden maps bill, no $0.10 floor.",
|
||
"pillars.p3.t":"Too fast to hesitate","pillars.p3.d":"A proven system running real trips since 2019 — we don't build from scratch: we wrap it in your brand and launch in 30 days.",
|
||
"brands.eyebrow":"Brands we run today","brands.title":"Same platform, different brands — exactly how yours will look","brands.siro":"Siro — Egypt & Jordan","brands.intalaq":"Intalaq — Syria","brands.next":"Your brand next","brands.note":"Each brand gets a fully independent app and admin identity, on top of the same core engine.",
|
||
"prod.eyebrow":"The platform","prod.title":"Four components, one system","prod.tab.rider":"Rider app","prod.tab.driver":"Driver app","prod.tab.dispatch":"Dispatch","prod.tab.hub":"My Hub",
|
||
"prod.rider.h":"Request, see the price, track","prod.rider.1":"Request with per-class fare quotes before confirming","prod.rider.2":"Live driver tracking during the trip","prod.rider.3":"Cash payment and e-wallet","prod.rider.m1":"Confirmed fare","prod.rider.m2":"ETA",
|
||
"prod.driver.h":"Wallet, subscriptions, live earnings","prod.driver.1":"Wallet & flexible subscriptions (90 / 180 / 360 days)","prod.driver.2":"Clear request map with distance & fare","prod.driver.3":"Live earnings and trip history","prod.driver.m1":"Today's earnings","prod.driver.m2":"Subscription","prod.driver.m3":"Next request",
|
||
"prod.dispatch.h":"Manual & auto assign, live map","prod.dispatch.1":"Assign requests manually or automatically","prod.dispatch.2":"Live fleet map of every vehicle","prod.dispatch.3":"Phone bookings for riders without the app","prod.dispatch.m1":"Active vehicles",
|
||
"prod.hub.h":"Tariffs, reports, drivers","prod.hub.1":"Full tariff engine with classes & time windows","prod.hub.2":"Fully transparent reports & finance","prod.hub.3":"Driver & document management with AI verification","prod.hub.m1":"Monthly trips","prod.hub.m2":"Total GMV",
|
||
"calc.eyebrow":"The silent sales tool","calc.title":"How much would you save with Tripz? Do the math.","calc.lead":"Slide your daily trips and average fare — and compare our bill instantly against a 15% commission model and the incumbent's floor.",
|
||
"calc.trips":"Trips per day","calc.fare":"Average fare","calc.currency":"Currency","calc.plan":"Plan",
|
||
"calc.r.tripz":"Tripz monthly bill","calc.r.commission":"15% commission model","calc.r.floor":"Model with $0.10/trip floor","calc.r.savecap":"Your yearly savings with Tripz","calc.r.send":"Send this to us on WhatsApp",
|
||
"how.eyebrow":"The launch journey","how.title":"From contract to both stores in 30 days","how.lead":"Five clear stages, under our direct supervision, with zero downtime if you're on a legacy system.",
|
||
"how.s1.d":"Day 1–3","how.s1.t":"Scoping","how.s1.p":"We define your city, classes, tariff, languages and currencies together.",
|
||
"how.s2.d":"Day 4–7","how.s2.t":"Assets & licenses","how.s2.p":"You send the logo, colors and developer accounts; we prepare the visual identity.",
|
||
"how.s3.d":"Day 8–14","how.s3.t":"Build & migration","how.s3.p":"We build your instance, connect payment & SMS, and migrate your drivers and balances with no downtime.",
|
||
"how.s4.d":"Day 15–21","how.s4.t":"Field testing","how.s4.p":"Deploy to TestFlight and a Beta track and test with you on the ground.",
|
||
"how.s5.d":"Day 22–30","how.s5.t":"Go live","how.s5.p":"Store review and approval, then go live under our direct supervision.",
|
||
"price.eyebrow":"Fully public pricing","price.title":"Yes — all our prices are right here. Publicly.","price.lead":"A complete pricing page is itself a differentiator in a market built on ambiguity. Pick your plan, upgrade whenever.",
|
||
"price.monthly":"Monthly","price.yearly":"Yearly","price.save15":"Save 15%","plan.setup":"Setup:","plan.popular":"Most chosen",
|
||
"plan.start.n":"Startup","plan.start.1":"Your city listed inside the shared Tripz app — no branded app of your own yet","plan.start.2":"Admin panel & basic dispatch","plan.start.3":"Full tariff engine with your country pack (same engine as paid tiers)","plan.start.4":"Trial cap: 90 days or 10,000 trips, then upgrade","plan.start.cta":"Get started",
|
||
"plan.brand.n":"Brand","plan.brand.0":"↳ Everything in Startup, plus:","plan.brand.1":"Your own Rider + Driver apps on both stores — not shared with other tenants","plan.brand.2":"We handle store publishing & review end-to-end","plan.brand.3":"No trip or time cap","plan.brand.4":"Direct Arabic support + a dedicated account manager","plan.brand.cta":"Book your launch",
|
||
"plan.fleet.n":"Fleet+","plan.fleet.0":"↳ Everything in Brand, plus:","plan.fleet.1":"Advanced dispatch with zone assignment and driver tiers","plan.fleet.2":"Corporate (B2B) booking portal + web booking","plan.fleet.3":"Dedicated driver wallets & credit","plan.fleet.4":"API + Webhooks + advanced operational reports",
|
||
"plan.sov.n":"Sovereign","plan.sov.0":"↳ Everything in Fleet+, plus:","plan.sov.1":"Fully isolated server inside your own country's borders","plan.sov.2":"Regulator reporting interface + 99.9% SLA","plan.sov.3":"Full data export guarantee + Escrow option","plan.sov.cta":"Talk to enterprise",
|
||
"price.gmvnote":"Descending GMV rates: the bigger you get, the smaller our cut. (Brand: 2.5% up to $50k · 2% up to $200k · 1.5% above)",
|
||
"price.c1.t":"Published rate","price.c1.d":"Written and fixed in the contract — no surprises.","price.c2.t":"Export your data","price.c2.d":"All your data, exportable at any time.","price.c3.t":"Graceful exit","price.c3.d":"If you leave: a 60-day transition instead of an instant cut-off.",
|
||
"price.founder.t":"Founding Partner program","price.founder.d":"First 3 operators: free setup for +1 percentage point for a year + a named case study.","price.founder.seats":"Seats left",
|
||
"addons.eyebrow":"Build your own bundle","addons.title":"Paid add-ons — choose what you need","addons.lead":"Layer intelligence, pricing, growth, and transit on top of the core — customized for each market.",
|
||
"addon.badge.now":"Available now","addon.badge.soon":"Coming next quarter",
|
||
"addons.m1.name":"AI Suite","addons.m1.desc":"Document processing, auto complaint review, fraud detection, weekly advisor — your employee who never sleeps.","addons.m1.period":"/month",
|
||
"addons.m2.name":"Pricing Intelligence","addons.m2.desc":"Know how your competitor prices — before they do. Smart dynamic pricing powered by real-time market data.","addons.m2.period":"/month",
|
||
"addons.m3.name":"Growth Suite","addons.m3.desc":"Re-engage idle riders, WhatsApp campaigns, gamification & challenges — a returning rider costs 10× less to acquire.","addons.m3.period":"/month",
|
||
"addons.m4.name":"Transit","addons.m4.desc":"Lines, schedules, rider registration, alerts, operator dashboard — buses on the same platform.","addons.m4.period":"/month","addons.m4.setup":"Setup $2,500",
|
||
"addons.m5.name":"Fleet Intelligence","addons.m5.desc":"Demand heatmap, predictive demand, daily snapshot, health reports — your drivers will stand in the right place.","addons.m5.period":"/month",
|
||
"addons.m6.name":"Payments+","addons.m6.desc":"All local payment gateways (PayMob, CliQ, SyriaTel) — ready-made connector instead of two months of dev.","addons.m6.period":"/month",
|
||
"addons.m7.name":"Trust & Safety","addons.m7.desc":"Advanced fraud detection, driver assurance, panic button, regulator reports — coming soon (legal docs in progress).","addons.m7.period":"/month",
|
||
"cmp.eyebrow":"The honest comparison","cmp.title":"Tripz vs the alternatives","cmp.col.feature":"Criterion","cmp.col.other":"المنصات المنافسة","cmp.col.custom":"Custom build","cmp.badge":"Best value",
|
||
"land.eyebrow":"Where the market stands","land.title":"The sector's pricing landscape","land.lead":"Global ride-hailing platforms' pricing, public from their own sites — with Tripz the most transparent and the lowest per-trip floor.",
|
||
"land.col.platform":"Platform","land.col.model":"Model","land.col.setup":"Setup","land.col.monthly":"Monthly","land.col.pertrip":"Per trip",
|
||
"land.m.tripz":"Fully public & published","land.m.onde":"Hybrid + opaque","land.m.yelow":"Monthly subscription","land.m.vivo":"One-time code license","land.m.zoy":"Subscription + per-trip","land.m.cab":"Flat by fleet size",
|
||
"land.p.tripz":"From $0.02 · rate published","land.p.onde":"$0.10 · secret rate","land.p.zoy":"$0.10 after 600 trips","land.p.cabm":"By fleet","land.p.cab":"No commission",
|
||
"land.note":"Figures from each provider's public pages (2026), subject to change. Tripz is the only one that publishes its full rate.",
|
||
"cmp.r1":"Startup cost","cmp.r2":"Time to launch","cmp.r2.us":"30 days","cmp.r2.on":"Weeks–months","cmp.r2.cu":"9–18 months",
|
||
"cmp.r3":"Per-trip floor","cmp.r4":"Rate published?","cmp.r5":"Data export guaranteed in contract","cmp.r6":"Host inside your country","cmp.r6.us":"✓ Sovereign","cmp.r7":"True Arabic support","cmp.r7.on":"Partial","cmp.r7.cu":"Depends on dev",
|
||
"case.eyebrow":"Case study","case.title":"Before we sold it to others, we ran our own company on it","case.p1":"“Siro” is the ride-hailing app we ran ourselves in the market since 2019. Every feature in Tripz came out of real operations, not a whiteboard.",
|
||
"case.p2":"We turned it into a multi-tenant cloud platform so every operator gets the same — battle-tested — system under their own brand. Today it runs in Cairo, Alexandria and Damascus.","case.s1":"trips/month","case.s2":"active drivers","case.s3":"cities",
|
||
"case.quote":"“We didn't build a pitch deck; we built a company that works, then opened it to operators.”","case.who":"— Founder, Tripz",
|
||
"case.d1":"Monthly trips","case.d2":"Total GMV","case.d3":"Effective rate","case.d4":"Live cities",
|
||
"sec.title":"World-class security, clear compliance","sec.b1":"Payments via PCI DSS partners (Paymob) — no card touches our servers","sec.b2":"Full TLS encryption","sec.b3":"Daily backups","sec.b4":"Clear data processing agreement",
|
||
"faq.eyebrow":"Straight answers","faq.title":"The questions others dodge",
|
||
"final.title":"Your city is waiting for its app. Start today.",
|
||
"demo.lead":"This isn't a pitch — these are the real Tripz apps, live on both stores right now.","demo.rider":"Rider app","demo.driver":"Driver app","demo.appstore":"App Store","demo.googleplay":"Google Play",
|
||
"foot.tag":"Ride-hailing SaaS — launch your app under your brand, and your data stays yours.","foot.product":"Product","foot.solutions":"Solutions","foot.fleets":"Taxi offices & fleets","foot.startups":"Founders & emerging markets","foot.resources":"Resources","foot.case":"Case study","foot.legal":"Legal","foot.privacy":"Privacy","foot.terms":"Terms","foot.dpa":"Data Processing Agreement","foot.rights":"All rights reserved.","foot.built":"Built for Arabic & emerging markets."
|
||
},
|
||
fr:{
|
||
"nav.product":"Produit","nav.addons":"Modules","nav.savings":"Économies","nav.pricing":"Tarifs","nav.how":"Notre lancement","nav.faq":"FAQ","nav.demo":"Essayer la démo",
|
||
"hero.title":"Lancez votre plateforme VTC [sous votre marque] — en 30 jours, vos données restent les vôtres.",
|
||
"hero.sub":"Applications passager et chauffeur sur les deux stores, un tableau de bord et un dispatch — avec des tarifs publiés ici même et un contrat qui garantit l'export de vos données, à tout moment.",
|
||
"hero.cta1":"Essayer la démo en direct","hero.cta2":"Discuter sur WhatsApp","hero.trust":"Sans carte bancaire · Démo instantanée, sans appel commercial","hero.scroll":"Découvrir plus",
|
||
"ph.rider.eta":"Arrivée","ph.min":"min","ph.rider.class":"Éco","ph.rider.chip":"Tarif confirmé avant réservation","ph.rider.btn":"Commander",
|
||
"ph.driver.today":"Gains du jour","ph.driver.new":"Nouvelle demande","ph.driver.fare":"Tarif","ph.driver.accept":"Accepter",
|
||
"stat.since":"Des trajets réels depuis","stat.min":"Plancher par trajet — le plus bas","stat.days":"jours","stat.launch":"du contrat aux deux stores","stat.lang":"langues, RTL authentique",
|
||
"pillars.eyebrow":"Pourquoi Tripz","pillars.title":"L'inverse de tout ce qui fait mal chez le leader","pillars.lead":"Trois failles du marché transformées en promesses inscrites dans votre contrat.",
|
||
"pillars.p1.t":"Vos données, votre souveraineté","pillars.p1.d":"Export complet à tout moment, période de transition de 60 jours dans le contrat, et option d'hébergement dans votre pays.",
|
||
"pillars.p2.t":"Un coût sans surprises","pillars.p2.d":"Le taux est publié ici sur la page tarifs. Pas de facture cartes cachée, pas de plancher à 0,10 $.",
|
||
"pillars.p3.t":"Trop rapide pour hésiter","pillars.p3.d":"Un système éprouvé depuis 2019 — on ne part pas de zéro : on l'habille de votre marque et on lance en 30 jours.",
|
||
"brands.eyebrow":"Les marques que nous exploitons aujourd'hui","brands.title":"Même plateforme, marques différentes — exactement comme sera la vôtre","brands.siro":"Siro — Égypte et Jordanie","brands.intalaq":"Intalaq — Syrie","brands.next":"Votre marque, ensuite","brands.note":"Chaque marque obtient une identité d'application et d'administration totalement indépendante, sur le même moteur.",
|
||
"prod.eyebrow":"La plateforme","prod.title":"Quatre composants, un seul système","prod.tab.rider":"App passager","prod.tab.driver":"App chauffeur","prod.tab.dispatch":"Dispatch","prod.tab.hub":"My Hub",
|
||
"prod.rider.h":"Commander, voir le prix, suivre","prod.rider.1":"Commande avec devis par catégorie avant confirmation","prod.rider.2":"Suivi en direct du chauffeur","prod.rider.3":"Paiement en espèces et portefeuille","prod.rider.m1":"Tarif confirmé","prod.rider.m2":"Arrivée",
|
||
"prod.driver.h":"Portefeuille, abonnements, gains en direct","prod.driver.1":"Portefeuille et abonnements flexibles (90 / 180 / 360 jours)","prod.driver.2":"Carte de demande claire avec distance et tarif","prod.driver.3":"Gains en direct et historique","prod.driver.m1":"Gains du jour","prod.driver.m2":"Abonnement","prod.driver.m3":"Demande suivante",
|
||
"prod.dispatch.h":"Affectation manuelle et auto, carte live","prod.dispatch.1":"Affecter les demandes manuellement ou automatiquement","prod.dispatch.2":"Carte de flotte en direct","prod.dispatch.3":"Réservations téléphoniques sans l'app","prod.dispatch.m1":"Véhicules actifs",
|
||
"prod.hub.h":"Tarifs, rapports, chauffeurs","prod.hub.1":"Moteur tarifaire complet avec catégories et plages horaires","prod.hub.2":"Rapports et finances totalement transparents","prod.hub.3":"Gestion des chauffeurs et documents avec vérification IA","prod.hub.m1":"Trajets/mois","prod.hub.m2":"GMV total",
|
||
"calc.eyebrow":"L'outil de vente silencieux","calc.title":"Combien économiseriez-vous avec Tripz ? Faites le calcul.","calc.lead":"Ajustez vos trajets quotidiens et le tarif moyen — et comparez notre facture en direct à un modèle de commission de 15% et au plancher du leader.",
|
||
"calc.trips":"Trajets par jour","calc.fare":"Tarif moyen","calc.currency":"Devise","calc.plan":"Forfait",
|
||
"calc.r.tripz":"Facture mensuelle Tripz","calc.r.commission":"Modèle à 15% de commission","calc.r.floor":"Modèle à 0,10 $/trajet","calc.r.savecap":"Vos économies annuelles avec Tripz","calc.r.send":"Envoyer ce calcul sur WhatsApp",
|
||
"how.eyebrow":"Le parcours de lancement","how.title":"Du contrat aux deux stores en 30 jours","how.lead":"Cinq étapes claires, sous notre supervision directe, sans aucune interruption si vous êtes sur un ancien système.",
|
||
"how.s1.d":"Jour 1–3","how.s1.t":"Cadrage","how.s1.p":"Nous définissons ensemble votre ville, vos catégories, tarifs, langues et devises.",
|
||
"how.s2.d":"Jour 4–7","how.s2.t":"Ressources & licences","how.s2.p":"Vous envoyez le logo, les couleurs et les comptes développeur ; nous préparons l'identité visuelle.",
|
||
"how.s3.d":"Jour 8–14","how.s3.t":"Build & migration","how.s3.p":"Nous construisons votre instance, connectons paiement et SMS, et migrons vos chauffeurs et soldes sans interruption.",
|
||
"how.s4.d":"Jour 15–21","how.s4.t":"Tests terrain","how.s4.p":"Déploiement sur TestFlight et une piste Beta et tests avec vous sur le terrain.",
|
||
"how.s5.d":"Jour 22–30","how.s5.t":"Mise en ligne","how.s5.p":"Revue des stores et approbation, puis mise en ligne sous notre supervision directe.",
|
||
"price.eyebrow":"Tarifs entièrement publics","price.title":"Oui — tous nos prix sont ici. Publiquement.","price.lead":"Une page de tarifs complète est en soi un différenciateur dans un marché fondé sur le flou. Choisissez, évoluez quand vous voulez.",
|
||
"price.monthly":"Mensuel","price.yearly":"Annuel","price.save15":"Économisez 15%","plan.setup":"Mise en place :","plan.popular":"Le plus choisi",
|
||
"plan.start.n":"Démarrage","plan.start.1":"Votre ville listée dans l'appli Tripz partagée — pas encore d'appli à votre marque","plan.start.2":"Tableau de bord et dispatch de base","plan.start.3":"Moteur tarifaire complet avec votre pack pays (même moteur que les offres payantes)","plan.start.4":"Plafond d'essai : 90 jours ou 10 000 trajets, puis mise à niveau","plan.start.cta":"Commencer",
|
||
"plan.brand.n":"Marque","plan.brand.0":"↳ Tout Démarrage, plus :","plan.brand.1":"Vos propres apps passager + chauffeur sur les deux stores — non partagées","plan.brand.2":"Publication et revue sur les stores gérées de bout en bout","plan.brand.3":"Aucun plafond de trajets ni de durée","plan.brand.4":"Support arabe direct + gestionnaire de compte dédié","plan.brand.cta":"Réserver votre lancement",
|
||
"plan.fleet.n":"Flotte+","plan.fleet.0":"↳ Tout Marque, plus :","plan.fleet.1":"Dispatch avancé avec zones et niveaux de chauffeurs","plan.fleet.2":"Portail de réservation entreprises (B2B) + réservation web","plan.fleet.3":"Portefeuilles et crédit chauffeurs dédiés","plan.fleet.4":"API + Webhooks + rapports opérationnels avancés",
|
||
"plan.sov.n":"Souveraineté","plan.sov.0":"↳ Tout Flotte+, plus :","plan.sov.1":"Serveur entièrement isolé à l'intérieur de votre pays","plan.sov.2":"Interface de reporting régulateur + SLA 99,9%","plan.sov.3":"Garantie d'export complète + option Escrow","plan.sov.cta":"Contacter les entreprises",
|
||
"price.gmvnote":"Taux GMV dégressifs : plus vous grandissez, plus notre part diminue. (Marque : 2,5% jusqu'à 50k$ · 2% jusqu'à 200k$ · 1,5% au-delà)",
|
||
"price.c1.t":"Taux publié","price.c1.d":"Écrit et fixé dans le contrat — sans surprises.","price.c2.t":"Exportez vos données","price.c2.d":"Toutes vos données, exportables à tout moment.","price.c3.t":"Sortie élégante","price.c3.d":"Si vous partez : 60 jours de transition au lieu d'une coupure immédiate.",
|
||
"price.founder.t":"Programme Partenaire Fondateur","price.founder.d":"3 premiers opérateurs : mise en place gratuite contre +1 point pendant un an + étude de cas nominative.","price.founder.seats":"Places restantes",
|
||
"addons.eyebrow":"Plateforme modulable","addons.title":"Modules payants — prenez ce dont vous avez besoin","addons.lead":"Ajoutez l'IA, la tarification, la croissance et le transit sur la base — personnalisé pour chaque marché.",
|
||
"addon.badge.now":"Disponible maintenant","addon.badge.soon":"Prochainement ce trimestre",
|
||
"addons.m1.name":"Suite IA","addons.m1.desc":"Traitement des documents, vérification automatique des plaintes, détection des fraudes, conseiller hebdomadaire — votre employé qui ne dort jamais.","addons.m1.period":"/mois",
|
||
"addons.m2.name":"Renseignements Tarifaires","addons.m2.desc":"Sachez comment votre concurrent fait ses prix — avant qu'il ne le sache. Tarification dynamique intelligente basée sur les données du marché.","addons.m2.period":"/mois",
|
||
"addons.m3.name":"Suite Croissance","addons.m3.desc":"Réactivez les passagers inactifs, campagnes WhatsApp, gamification et défis — un passager revenant coûte 10× moins cher à acquérir.","addons.m3.period":"/mois",
|
||
"addons.m4.name":"Transports","addons.m4.desc":"Lignes, horaires, enregistrement des passagers, alertes, tableau de bord opérateur — les bus sur la même plateforme.","addons.m4.period":"/mois","addons.m4.setup":"Mise en place 2 500 $",
|
||
"addons.m5.name":"Renseignements Flotte","addons.m5.desc":"Carte thermique de la demande, demande prédictive, snapshot quotidien, rapports de santé — vos conducteurs seront aux bons endroits.","addons.m5.period":"/mois",
|
||
"addons.m6.name":"Paiements+","addons.m6.desc":"Toutes les passerelles de paiement locales (PayMob, CliQ, SyriaTel) — connecteur prêt à l'emploi au lieu de deux mois de dev.","addons.m6.period":"/mois",
|
||
"addons.m7.name":"Confiance & Sécurité","addons.m7.desc":"Détection avancée des fraudes, assurance conducteur, bouton de panique, rapports régulateurs — prochainement (documents juridiques en cours).","addons.m7.period":"/mois",
|
||
"cmp.eyebrow":"La comparaison honnête","cmp.title":"Tripz face aux alternatives","cmp.col.feature":"Critère","cmp.col.other":"المنصات المنافسة","cmp.col.custom":"Développement sur mesure","cmp.badge":"Meilleure valeur",
|
||
"land.eyebrow":"Où en est le marché","land.title":"Le paysage tarifaire du secteur","land.lead":"Les tarifs des plateformes VTC mondiales, publics sur leurs propres sites — avec Tripz la plus transparente et le plancher par trajet le plus bas.",
|
||
"land.col.platform":"Plateforme","land.col.model":"Modèle","land.col.setup":"Mise en place","land.col.monthly":"Mensuel","land.col.pertrip":"Par trajet",
|
||
"land.m.tripz":"Entièrement public et publié","land.m.onde":"Hybride + opaque","land.m.yelow":"Abonnement mensuel","land.m.vivo":"Licence de code unique","land.m.zoy":"Abonnement + par trajet","land.m.cab":"Forfait selon la flotte",
|
||
"land.p.tripz":"Dès 0,02 $ · taux publié","land.p.onde":"0,10 $ · taux secret","land.p.zoy":"0,10 $ après 600 trajets","land.p.cabm":"Selon la flotte","land.p.cab":"Sans commission",
|
||
"land.note":"Chiffres issus des pages publiques de chaque fournisseur (2026), susceptibles de changer. Tripz est la seule à publier son taux complet.",
|
||
"cmp.r1":"Coût de départ","cmp.r2":"Délai de lancement","cmp.r2.us":"30 jours","cmp.r2.on":"Semaines–mois","cmp.r2.cu":"9–18 mois",
|
||
"cmp.r3":"Plancher par trajet","cmp.r4":"Taux publié ?","cmp.r5":"Export garanti par contrat","cmp.r6":"Hébergement dans votre pays","cmp.r6.us":"✓ Souveraineté","cmp.r7":"Vrai support arabe","cmp.r7.on":"Partiel","cmp.r7.cu":"Selon le dev",
|
||
"case.eyebrow":"Étude de cas","case.title":"Avant de le vendre, nous avons fait tourner notre propre société dessus","case.p1":"« Siro » est l'application VTC que nous avons exploitée nous-mêmes depuis 2019. Chaque fonction de Tripz vient d'une exploitation réelle, pas d'un tableau blanc.",
|
||
"case.p2":"Nous en avons fait une plateforme cloud multi-locataire pour que chaque opérateur ait le même système — éprouvé — sous sa propre marque. Aujourd'hui, il fonctionne au Caire, à Alexandrie et à Damas.","case.s1":"trajets/mois","case.s2":"chauffeurs actifs","case.s3":"villes",
|
||
"case.quote":"« Nous n'avons pas fait un pitch deck ; nous avons bâti une société qui fonctionne, puis l'avons ouverte aux opérateurs. »","case.who":"— Fondateur, Tripz",
|
||
"case.d1":"Trajets mensuels","case.d2":"GMV total","case.d3":"Taux effectif","case.d4":"Villes actives",
|
||
"sec.title":"Sécurité de classe mondiale, conformité claire","sec.b1":"Paiements via partenaires PCI DSS (Paymob) — aucune carte sur nos serveurs","sec.b2":"Chiffrement TLS complet","sec.b3":"Sauvegardes quotidiennes","sec.b4":"Accord de traitement des données clair",
|
||
"faq.eyebrow":"Réponses franches","faq.title":"Les questions que les autres esquivent",
|
||
"final.title":"Votre ville attend son application. Commencez aujourd'hui.",
|
||
"demo.lead":"Ce n'est pas un pitch — voici les vraies applications Tripz, déjà en ligne sur les deux stores.","demo.rider":"App passager","demo.driver":"App chauffeur","demo.appstore":"App Store","demo.googleplay":"Google Play",
|
||
"foot.tag":"VTC en SaaS — lancez votre app sous votre marque, vos données restent les vôtres.","foot.product":"Produit","foot.solutions":"Solutions","foot.fleets":"Bureaux de taxis & flottes","foot.startups":"Fondateurs & marchés émergents","foot.resources":"Ressources","foot.case":"Étude de cas","foot.legal":"Légal","foot.privacy":"Confidentialité","foot.terms":"Conditions","foot.dpa":"Accord de traitement des données","foot.rights":"Tous droits réservés.","foot.built":"Conçu pour les marchés arabes & émergents."
|
||
},
|
||
es:{
|
||
"nav.product":"Producto","nav.addons":"Complementos","nav.savings":"Ahorro","nav.pricing":"Precios","nav.how":"Cómo lanzamos","nav.faq":"FAQ","nav.demo":"Probar demo",
|
||
"hero.title":"Lanza tu plataforma de transporte [con tu marca] — en 30 días, y tus datos siguen siendo tuyos.",
|
||
"hero.sub":"Apps de pasajero y conductor en ambas tiendas, un panel de administración y dispatch — con precios publicados aquí mismo y un contrato que garantiza la exportación de tus datos, en cualquier momento.",
|
||
"hero.cta1":"Probar la demo en vivo","hero.cta2":"Habla con nosotros por WhatsApp","hero.trust":"Sin tarjeta · Demo instantánea, sin llamada de ventas","hero.scroll":"Descubre más",
|
||
"ph.rider.eta":"Llegada","ph.min":"min","ph.rider.class":"Económico","ph.rider.chip":"Tarifa confirmada antes de pedir","ph.rider.btn":"Pedir ahora",
|
||
"ph.driver.today":"Ganancias de hoy","ph.driver.new":"Nueva solicitud","ph.driver.fare":"Tarifa","ph.driver.accept":"Aceptar",
|
||
"stat.since":"Viajes reales desde","stat.min":"Mínimo por viaje — el más bajo","stat.days":"días","stat.launch":"del contrato a ambas tiendas","stat.lang":"idiomas, RTL auténtico",
|
||
"pillars.eyebrow":"Por qué Tripz","pillars.title":"Lo inverso de todo lo que duele del líder","pillars.lead":"Tres brechas del mercado que convertimos en promesas escritas en tu contrato.",
|
||
"pillars.p1.t":"Tus datos, tu soberanía","pillars.p1.d":"Exportación completa en cualquier momento, período de transición de 60 días en el contrato y opción de alojar dentro de tu país.",
|
||
"pillars.p2.t":"Costo sin sorpresas","pillars.p2.d":"La tarifa está publicada aquí en la página de precios. Sin factura de mapas oculta, sin mínimo de $0.10.",
|
||
"pillars.p3.t":"Demasiado rápido para dudar","pillars.p3.d":"Un sistema probado con viajes reales desde 2019 — no construimos desde cero: lo vestimos con tu marca y lanzamos en 30 días.",
|
||
"brands.eyebrow":"Marcas que operamos hoy","brands.title":"Misma plataforma, marcas distintas — exactamente como se verá la tuya","brands.siro":"Siro — Egipto y Jordania","brands.intalaq":"Intalaq — Siria","brands.next":"Tu marca, después","brands.note":"Cada marca obtiene una app y un panel de administración totalmente independientes, sobre el mismo motor.",
|
||
"prod.eyebrow":"La plataforma","prod.title":"Cuatro componentes, un sistema","prod.tab.rider":"App pasajero","prod.tab.driver":"App conductor","prod.tab.dispatch":"Dispatch","prod.tab.hub":"My Hub",
|
||
"prod.rider.h":"Pide, ve el precio, rastrea","prod.rider.1":"Pedido con cotización por categoría antes de confirmar","prod.rider.2":"Seguimiento en vivo del conductor","prod.rider.3":"Pago en efectivo y billetera","prod.rider.m1":"Tarifa confirmada","prod.rider.m2":"Llegada",
|
||
"prod.driver.h":"Billetera, suscripciones, ganancias en vivo","prod.driver.1":"Billetera y suscripciones flexibles (90 / 180 / 360 días)","prod.driver.2":"Mapa de solicitud claro con distancia y tarifa","prod.driver.3":"Ganancias en vivo e historial","prod.driver.m1":"Ganancias de hoy","prod.driver.m2":"Suscripción","prod.driver.m3":"Próxima solicitud",
|
||
"prod.dispatch.h":"Asignación manual y automática, mapa en vivo","prod.dispatch.1":"Asigna solicitudes manual o automáticamente","prod.dispatch.2":"Mapa de flota en vivo de cada vehículo","prod.dispatch.3":"Reservas telefónicas sin la app","prod.dispatch.m1":"Vehículos activos",
|
||
"prod.hub.h":"Tarifas, informes, conductores","prod.hub.1":"Motor de tarifas completo con categorías y franjas horarias","prod.hub.2":"Informes y finanzas totalmente transparentes","prod.hub.3":"Gestión de conductores y documentos con verificación IA","prod.hub.m1":"Viajes/mes","prod.hub.m2":"GMV total",
|
||
"calc.eyebrow":"La herramienta de venta silenciosa","calc.title":"¿Cuánto ahorrarías con Tripz? Haz el cálculo.","calc.lead":"Ajusta tus viajes diarios y la tarifa media — y compara nuestra factura al instante con un modelo de comisión del 15% y el mínimo del líder.",
|
||
"calc.trips":"Viajes por día","calc.fare":"Tarifa media","calc.currency":"Moneda","calc.plan":"Plan",
|
||
"calc.r.tripz":"Factura mensual Tripz","calc.r.commission":"Modelo con 15% de comisión","calc.r.floor":"Modelo con mínimo $0.10/viaje","calc.r.savecap":"Tu ahorro anual con Tripz","calc.r.send":"Envíanos este cálculo por WhatsApp",
|
||
"how.eyebrow":"El camino de lanzamiento","how.title":"Del contrato a ambas tiendas en 30 días","how.lead":"Cinco etapas claras, bajo nuestra supervisión directa, sin un solo día de inactividad si vienes de un sistema antiguo.",
|
||
"how.s1.d":"Día 1–3","how.s1.t":"Alcance","how.s1.p":"Definimos juntos tu ciudad, categorías, tarifas, idiomas y monedas.",
|
||
"how.s2.d":"Día 4–7","how.s2.t":"Recursos y licencias","how.s2.p":"Envías el logo, colores y cuentas de desarrollador; preparamos la identidad visual.",
|
||
"how.s3.d":"Día 8–14","how.s3.t":"Build y migración","how.s3.p":"Construimos tu instancia, conectamos pago y SMS, y migramos tus conductores y saldos sin interrupción.",
|
||
"how.s4.d":"Día 15–21","how.s4.t":"Pruebas de campo","how.s4.p":"Despliegue en TestFlight y una pista Beta y pruebas contigo en el terreno.",
|
||
"how.s5.d":"Día 22–30","how.s5.t":"Salida en vivo","how.s5.p":"Revisión de tiendas y aprobación, luego salida en vivo bajo nuestra supervisión directa.",
|
||
"price.eyebrow":"Precios totalmente públicos","price.title":"Sí — todos nuestros precios están aquí. Públicamente.","price.lead":"Una página de precios completa es en sí un diferenciador en un mercado basado en la ambigüedad. Elige tu plan, mejora cuando quieras.",
|
||
"price.monthly":"Mensual","price.yearly":"Anual","price.save15":"Ahorra 15%","plan.setup":"Instalación:","plan.popular":"El más elegido",
|
||
"plan.start.n":"Inicio","plan.start.1":"Tu ciudad listada dentro de la app compartida Tripz — sin app propia con tu marca todavía","plan.start.2":"Panel de administración y dispatch básico","plan.start.3":"Motor de tarifas completo con tu pack país (mismo motor que los planes de pago)","plan.start.4":"Límite de prueba: 90 días o 10.000 viajes, luego actualización","plan.start.cta":"Empezar ahora",
|
||
"plan.brand.n":"Marca","plan.brand.0":"↳ Todo Inicio, más:","plan.brand.1":"Tus propias apps de pasajero + conductor en ambas tiendas — no compartidas","plan.brand.2":"Publicación y revisión en tiendas gestionada por nosotros","plan.brand.3":"Sin límite de viajes ni de tiempo","plan.brand.4":"Soporte en árabe directo + gestor de cuenta dedicado","plan.brand.cta":"Reserva tu lanzamiento",
|
||
"plan.fleet.n":"Flota+","plan.fleet.0":"↳ Todo Marca, más:","plan.fleet.1":"Dispatch avanzado con zonas y niveles de conductores","plan.fleet.2":"Portal de reservas corporativas (B2B) + reserva web","plan.fleet.3":"Billeteras y crédito dedicados para conductores","plan.fleet.4":"API + Webhooks + informes operativos avanzados",
|
||
"plan.sov.n":"Soberanía","plan.sov.0":"↳ Todo Flota+, más:","plan.sov.1":"Servidor totalmente aislado dentro de tu país","plan.sov.2":"Interfaz de reportes para el regulador + SLA 99,9%","plan.sov.3":"Garantía de exportación completa + opción Escrow","plan.sov.cta":"Habla con empresas",
|
||
"price.gmvnote":"Tasas GMV decrecientes: cuanto más creces, menor es nuestra parte. (Marca: 2,5% hasta $50k · 2% hasta $200k · 1,5% por encima)",
|
||
"price.c1.t":"Tarifa publicada","price.c1.d":"Escrita y fijada en el contrato — sin sorpresas.","price.c2.t":"Exporta tus datos","price.c2.d":"Todos tus datos, exportables en cualquier momento.","price.c3.t":"Salida elegante","price.c3.d":"Si te vas: 60 días de transición en lugar de un corte inmediato.",
|
||
"price.founder.t":"Programa Socio Fundador","price.founder.d":"Primeros 3 operadores: instalación gratis a cambio de +1 punto porcentual por un año + estudio de caso con tu nombre.","price.founder.seats":"Plazas restantes",
|
||
"addons.eyebrow":"Plataforma modular","addons.title":"Módulos pagados — elige lo que necesitas","addons.lead":"Agrega IA, precios, crecimiento y tránsito a la base — personalizado para cada mercado.",
|
||
"addon.badge.now":"Disponible ahora","addon.badge.soon":"Próximamente este trimestre",
|
||
"addons.m1.name":"Suite de IA","addons.m1.desc":"Procesamiento de documentos, revisión automática de quejas, detección de fraude, asesor semanal — tu empleado que nunca duerme.","addons.m1.period":"/mes",
|
||
"addons.m2.name":"Inteligencia de Precios","addons.m2.desc":"Sabe cómo fija precios tu competidor — antes de que él lo sepa. Precios dinámicos inteligentes impulsados por datos de mercado reales.","addons.m2.period":"/mes",
|
||
"addons.m3.name":"Suite de Crecimiento","addons.m3.desc":"Reactiva pasajeros inactivos, campañas WhatsApp, gamificación y desafíos — un pasajero que regresa cuesta 10× menos de adquirir.","addons.m3.period":"/mes",
|
||
"addons.m4.name":"Transporte","addons.m4.desc":"Líneas, horarios, registro de pasajeros, alertas, panel del operador — autobuses en la misma plataforma.","addons.m4.period":"/mes","addons.m4.setup":"Configuración $2.500",
|
||
"addons.m5.name":"Inteligencia de Flota","addons.m5.desc":"Mapa de calor de demanda, predicción de demanda, snapshot diario, informes de salud — tus conductores estarán en el lugar correcto.","addons.m5.period":"/mes",
|
||
"addons.m6.name":"Pagos+","addons.m6.desc":"Todas las pasarelas de pago locales (PayMob, CliQ, SyriaTel) — conector listo para usar en lugar de dos meses de desarrollo.","addons.m6.period":"/mes",
|
||
"addons.m7.name":"Confianza y Seguridad","addons.m7.desc":"Detección avanzada de fraude, seguro del conductor, botón de pánico, reportes regulatorios — próximamente (documentos legales en progreso).","addons.m7.period":"/mes",
|
||
"cmp.eyebrow":"La comparación honesta","cmp.title":"Tripz frente a las alternativas","cmp.col.feature":"Criterio","cmp.col.other":"المنصات المنافسة","cmp.col.custom":"Desarrollo a medida","cmp.badge":"Mejor valor",
|
||
"land.eyebrow":"Dónde está el mercado","land.title":"El panorama de precios del sector","land.lead":"Los precios de las plataformas de transporte globales, públicos en sus propios sitios — con Tripz la más transparente y el mínimo por viaje más bajo.",
|
||
"land.col.platform":"Plataforma","land.col.model":"Modelo","land.col.setup":"Instalación","land.col.monthly":"Mensual","land.col.pertrip":"Por viaje",
|
||
"land.m.tripz":"Totalmente público y publicado","land.m.onde":"Híbrido + opaco","land.m.yelow":"Suscripción mensual","land.m.vivo":"Licencia de código única","land.m.zoy":"Suscripción + por viaje","land.m.cab":"Tarifa según la flota",
|
||
"land.p.tripz":"Desde $0.02 · tarifa publicada","land.p.onde":"$0.10 · tarifa secreta","land.p.zoy":"$0.10 tras 600 viajes","land.p.cabm":"Según la flota","land.p.cab":"Sin comisión",
|
||
"land.note":"Cifras de las páginas públicas de cada proveedor (2026), sujetas a cambios. Tripz es la única que publica su tarifa completa.",
|
||
"cmp.r1":"Costo inicial","cmp.r2":"Tiempo hasta el lanzamiento","cmp.r2.us":"30 días","cmp.r2.on":"Semanas–meses","cmp.r2.cu":"9–18 meses",
|
||
"cmp.r3":"Mínimo por viaje","cmp.r4":"¿Tarifa publicada?","cmp.r5":"Exportación garantizada por contrato","cmp.r6":"Alojamiento en tu país","cmp.r6.us":"✓ Soberanía","cmp.r7":"Soporte árabe auténtico","cmp.r7.on":"Parcial","cmp.r7.cu":"Según el dev",
|
||
"case.eyebrow":"Estudio de caso","case.title":"Antes de venderlo a otros, operamos nuestra propia empresa con él","case.p1":"«Siro» es la app de transporte que operamos nosotros mismos en el mercado desde 2019. Cada función de Tripz salió de una operación real, no de una pizarra.",
|
||
"case.p2":"La convertimos en una plataforma cloud multi-inquilino para que cada operador tenga el mismo sistema — probado — bajo su propia marca. Hoy opera en El Cairo, Alejandría y Damasco.","case.s1":"viajes/mes","case.s2":"conductores activos","case.s3":"ciudades",
|
||
"case.quote":"«No hicimos un pitch deck; construimos una empresa que funciona y luego la abrimos a los operadores.»","case.who":"— Fundador, Tripz",
|
||
"case.d1":"Viajes mensuales","case.d2":"GMV total","case.d3":"Tasa efectiva","case.d4":"Ciudades activas",
|
||
"sec.title":"Seguridad de clase mundial, cumplimiento claro","sec.b1":"Pagos vía socios PCI DSS (Paymob) — ninguna tarjeta toca nuestros servidores","sec.b2":"Cifrado TLS completo","sec.b3":"Copias de seguridad diarias","sec.b4":"Acuerdo de tratamiento de datos claro",
|
||
"faq.eyebrow":"Respuestas directas","faq.title":"Las preguntas que otros esquivan",
|
||
"final.title":"Tu ciudad espera su aplicación. Empieza hoy.",
|
||
"demo.lead":"Esto no es una presentación — son las apps reales de Tripz, ya activas en ambas tiendas.","demo.rider":"App pasajero","demo.driver":"App conductor","demo.appstore":"App Store","demo.googleplay":"Google Play",
|
||
"foot.tag":"Transporte en SaaS — lanza tu app con tu marca, y tus datos siguen siendo tuyos.","foot.product":"Producto","foot.solutions":"Soluciones","foot.fleets":"Oficinas de taxi y flotas","foot.startups":"Fundadores y mercados emergentes","foot.resources":"Recursos","foot.case":"Estudio de caso","foot.legal":"Legal","foot.privacy":"Privacidad","foot.terms":"Términos","foot.dpa":"Acuerdo de tratamiento de datos","foot.rights":"Todos los derechos reservados.","foot.built":"Diseñado para mercados árabes y emergentes."
|
||
}
|
||
};
|
||
/* FAQ content per language */
|
||
const FAQS={
|
||
ar:[["من يملك بيانات الركاب والسائقين؟","أنت. تصدّرها كاملة في أي وقت، والعقد يلزمنا بفترة انتقال 60 يوماً إن قررت المغادرة."],
|
||
["ماذا لو أفلستم أو أغلقتم؟","باقة «سيادة» تعمل من خوادم داخل بلدك، ولكل الباقات ضمان تصدير + escrow اختياري للكود."],
|
||
["كم النسبة بالضبط؟","مكتوبة في صفحة التسعير: 5% (انطلاقة) · 2.5% (علامة) · 2% (أسطول+) · 1% (سيادة) — تنازلية مع نمو GMV."],
|
||
["هل أحتاج فريقاً تقنياً؟","لا. النشر والتحديثات والمتاجر علينا. أنت تدير التشغيل من لوحة عربية."],
|
||
["عندي تطبيق قديم وسائقون نشطون — هل أخسرهم؟","لا: نرحّل السائقين والأرصدة والسجلات بلا يوم توقف."],
|
||
["هل يدعم الدفع كاش؟","نعم، الكاش افتراضي أساسي، والمحافظ والبطاقات إضافات حسب بلدك (Paymob في مصر وبوابات محلية أخرى)."]],
|
||
en:[["Who owns the rider and driver data?","You do. Export it in full anytime, and the contract binds us to a 60-day transition period if you decide to leave."],
|
||
["What if you go bankrupt or shut down?","The Sovereign plan runs from servers inside your country, and every plan has an export guarantee + optional code escrow."],
|
||
["What exactly is the rate?","Written on the pricing page: 5% (Startup) · 2.5% (Brand) · 2% (Fleet+) · 1% (Sovereign) — descending as GMV grows."],
|
||
["Do I need a technical team?","No. Publishing, updates and the stores are on us. You run operations from an Arabic-first panel."],
|
||
["I have a legacy app and active drivers — will I lose them?","No: we migrate drivers, balances and records with zero downtime."],
|
||
["Does it support cash payment?","Yes, cash is the core default, and wallets and cards are add-ons per country (Paymob in Egypt and other local gateways)."]],
|
||
fr:[["Qui possède les données des passagers et chauffeurs ?","Vous. Exportez-les intégralement à tout moment ; le contrat nous oblige à une transition de 60 jours si vous partez."],
|
||
["Et si vous faites faillite ou fermez ?","Le forfait Souveraineté tourne sur des serveurs dans votre pays, et chaque forfait a une garantie d'export + escrow de code optionnel."],
|
||
["Quel est exactement le taux ?","Écrit sur la page tarifs : 5% (Démarrage) · 2,5% (Marque) · 2% (Flotte+) · 1% (Souveraineté) — dégressif selon le GMV."],
|
||
["Ai-je besoin d'une équipe technique ?","Non. Publication, mises à jour et stores sont pour nous. Vous gérez depuis un panneau pensé pour l'arabe."],
|
||
["J'ai une ancienne app et des chauffeurs actifs — vais-je les perdre ?","Non : nous migrons chauffeurs, soldes et historiques sans interruption."],
|
||
["Le paiement en espèces est-il pris en charge ?","Oui, l'espèce est le défaut de base ; portefeuilles et cartes sont des options selon le pays (Paymob en Égypte et autres passerelles locales)."]],
|
||
es:[["¿Quién es dueño de los datos de pasajeros y conductores?","Tú. Expórtalos completos en cualquier momento; el contrato nos obliga a 60 días de transición si decides irte."],
|
||
["¿Qué pasa si quiebran o cierran?","El plan Soberanía corre en servidores dentro de tu país, y todos los planes tienen garantía de exportación + escrow de código opcional."],
|
||
["¿Cuál es exactamente la tarifa?","Escrita en la página de precios: 5% (Inicio) · 2,5% (Marca) · 2% (Flota+) · 1% (Soberanía) — decreciente al crecer el GMV."],
|
||
["¿Necesito un equipo técnico?","No. Publicación, actualizaciones y tiendas corren por nuestra cuenta. Tú operas desde un panel pensado en árabe."],
|
||
["Tengo una app antigua y conductores activos — ¿los perderé?","No: migramos conductores, saldos y registros sin tiempo de inactividad."],
|
||
["¿Admite pago en efectivo?","Sí, el efectivo es el predeterminado base; billeteras y tarjetas son complementos según el país (Paymob en Egipto y otras pasarelas locales)."]]
|
||
};
|
||
|
||
/* ============ STATE ============ */
|
||
let LANG="ar";
|
||
const $=(s,e=document)=>e.querySelector(s), $$=(s,e=document)=>[...e.querySelectorAll(s)];
|
||
|
||
function applyLang(lang){
|
||
LANG=lang;
|
||
const rtl=lang==="ar";
|
||
document.documentElement.lang=lang;
|
||
document.documentElement.dir=rtl?"rtl":"ltr";
|
||
const d=I18N[lang];
|
||
$$("[data-i18n]").forEach(el=>{const k=el.getAttribute("data-i18n");if(d[k]!=null)el.textContent=d[k];});
|
||
// hero title: per-word stagger with a [bracketed] highlight span that may span several words
|
||
$("#heroTitle").innerHTML=buildHeroTitle(d["hero.title"]);
|
||
// lang menu active
|
||
$$(".lang-menu button").forEach(b=>b.classList.toggle("active",b.dataset.lang===lang));
|
||
buildFAQ();
|
||
calc();
|
||
try{localStorage.setItem("tripz_lang",lang);}catch(e){}
|
||
}
|
||
|
||
function buildHeroTitle(raw){
|
||
let hl=false;
|
||
return raw.split(" ").map((w,i)=>{
|
||
let t=w, isHl=hl, closeAfter=false;
|
||
if(t.includes("[")){isHl=true;hl=true;t=t.replace("[","");}
|
||
if(t.includes("]")){isHl=true;closeAfter=true;t=t.replace("]","");}
|
||
const inner=isHl?`<span class="hl">${t}</span>`:t;
|
||
if(closeAfter)hl=false;
|
||
return `<span class="word" style="animation-delay:${i*.06}s">${inner} </span>`;
|
||
}).join("");
|
||
}
|
||
const FAQ_ICONS=[
|
||
'<path d="M12 2l8 4v6c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6l8-4z"/>',
|
||
'<path d="M3 21h18M5 21V9l7-5 7 5v12M9 21v-6h6v6"/>',
|
||
'<path d="M5 19L19 5M7 9a2 2 0 100-4 2 2 0 000 4zM17 19a2 2 0 100-4 2 2 0 000 4z"/>',
|
||
'<path d="M9 18V6l8 6-8 6z"/><circle cx="12" cy="12" r="9"/>',
|
||
'<path d="M4 4v5h5M20 20v-5h-5M4.5 9A8 8 0 0119 8.5M19.5 15a8 8 0 01-15 .5"/>',
|
||
'<rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 10h18M7 15h3"/>'
|
||
];
|
||
function buildFAQ(){
|
||
const list=$("#faqList"); list.innerHTML="";
|
||
FAQS[LANG].forEach(([q,a],i)=>{
|
||
const item=document.createElement("div");item.className="faq-item";
|
||
const icon=FAQ_ICONS[i]||FAQ_ICONS[0];
|
||
item.innerHTML=`<button class="faq-q"><span class="faq-ico"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${icon}</svg></span><span class="faq-q-text">${q}</span><span class="pm">+</span></button><div class="faq-a"><p>${a}</p></div>`;
|
||
const btn=item.querySelector(".faq-q"),ans=item.querySelector(".faq-a");
|
||
btn.addEventListener("click",()=>{
|
||
const open=item.classList.contains("open");
|
||
$$(".faq-item").forEach(f=>{f.classList.remove("open");f.querySelector(".faq-a").style.maxHeight=null;});
|
||
if(!open){item.classList.add("open");ans.style.maxHeight=ans.scrollHeight+"px";}
|
||
});
|
||
list.appendChild(item);
|
||
});
|
||
}
|
||
|
||
/* ============ CALCULATOR (docs/05 formula) ============ */
|
||
function fmt(n){return "$"+Math.round(n).toLocaleString("en-US");}
|
||
function calc(){
|
||
const trips=+$("#trips").value;
|
||
const fare=+$("#fare").value||0;
|
||
const [,rate]=$("#cur").value.split(":");
|
||
const [base,gmvRate,minRate]=$("#plan").value.split(":").map(Number);
|
||
const usd=fare*(+rate);
|
||
const monthlyTrips=trips*30;
|
||
const gmv=monthlyTrips*usd;
|
||
// GMV fee: only the Brand plan (2.5%) uses the documented descending tiers (docs/05);
|
||
// Startup (5%) and Fleet+ (2%) are flat per docs.
|
||
let gmvFee;
|
||
if(gmvRate===0.025){
|
||
if(gmv<=50000)gmvFee=gmv*0.025;
|
||
else if(gmv<=200000)gmvFee=50000*0.025+(gmv-50000)*0.02;
|
||
else gmvFee=50000*0.025+150000*0.02+(gmv-200000)*0.015;
|
||
}else{
|
||
gmvFee=gmv*gmvRate;
|
||
}
|
||
const minMonthly=monthlyTrips*minRate;
|
||
const tripz=base+Math.max(minMonthly,gmvFee);
|
||
const commission=gmv*0.15;
|
||
const floor=monthlyTrips*0.10;
|
||
$("#rTripz").textContent=fmt(tripz);
|
||
$("#rComm").textContent=fmt(commission);
|
||
$("#rFloor").textContent=fmt(floor);
|
||
const save=Math.max(commission,floor)-tripz;
|
||
const bigEl=$("#saveBig");
|
||
bigEl.textContent=(save>0?fmt(save*12):"$0")+"/yr";
|
||
const sv=$("#savings");sv.classList.remove("bump");void sv.offsetWidth;sv.classList.add("bump");
|
||
// slider fill + label
|
||
const pct=((trips-50)/(5000-50))*100;
|
||
$("#trips").style.setProperty("--p",pct+"%");
|
||
$("#tripsVal").textContent=trips.toLocaleString("en-US")+" / day";
|
||
// whatsapp prefill
|
||
const msg=encodeURIComponent(`Tripz — ${I18N[LANG]["calc.r.savecap"]}: ${bigEl.textContent} | ${trips}/day @ ${fare} ${$("#cur").value.split(":")[0]}`);
|
||
$("#waCalc").href="https://wa.me/962798583052?text="+msg;
|
||
}
|
||
|
||
/* ============ TABS ============ */
|
||
$$(".tab-btn").forEach(b=>b.addEventListener("click",()=>{
|
||
$$(".tab-btn").forEach(x=>x.classList.remove("active"));
|
||
$$(".tab-panel").forEach(x=>x.classList.remove("active"));
|
||
b.classList.add("active");
|
||
$(`.tab-panel[data-panel="${b.dataset.tab}"]`).classList.add("active");
|
||
}));
|
||
|
||
/* ============ PRICING TOGGLE ============ */
|
||
$("#billToggle").addEventListener("click",function(){
|
||
const yr=this.classList.toggle("year");
|
||
$("#lblM").classList.toggle("active",!yr);$("#lblY").classList.toggle("active",yr);
|
||
$$(".plan .price[data-m]").forEach(p=>{
|
||
const v=yr?p.dataset.y:p.dataset.m;
|
||
p.innerHTML=`$${v}<small>/mo</small>`;
|
||
});
|
||
});
|
||
|
||
/* ============ THEME ============ */
|
||
$("#themeBtn").addEventListener("click",()=>{
|
||
const cur=document.documentElement.getAttribute("data-theme");
|
||
const nxt=cur==="dark"?"light":"dark";
|
||
document.documentElement.setAttribute("data-theme",nxt);
|
||
try{localStorage.setItem("tripz_theme",nxt);}catch(e){}
|
||
});
|
||
|
||
/* ============ LANG MENU ============ */
|
||
$("#langBtn").addEventListener("click",e=>{e.stopPropagation();$("#langWrap").classList.toggle("open");});
|
||
document.addEventListener("click",()=>$("#langWrap").classList.remove("open"));
|
||
$$(".lang-menu button").forEach(b=>b.addEventListener("click",()=>{applyLang(b.dataset.lang);$("#langWrap").classList.remove("open");}));
|
||
|
||
/* ============ NAV SCROLL ============ */
|
||
addEventListener("scroll",()=>{$("#hdr").classList.toggle("scrolled",scrollY>80);});
|
||
|
||
/* ============ CALC INPUTS ============ */
|
||
["trips","fare","cur","plan"].forEach(id=>$("#"+id).addEventListener("input",calc));
|
||
|
||
/* ============ REVEAL + COUNTERS + TIMELINE ============ */
|
||
const io=new IntersectionObserver((es)=>{
|
||
es.forEach(en=>{
|
||
if(en.isIntersecting){
|
||
en.target.classList.add("in");
|
||
$$(".count",en.target).forEach(runCount);
|
||
if(en.target.id==="timeline")animateTimeline();
|
||
io.unobserve(en.target);
|
||
}
|
||
});
|
||
},{threshold:.2});
|
||
$$(".reveal").forEach(el=>io.observe(el));
|
||
const tlObs=$("#timeline");if(tlObs)io.observe(tlObs);
|
||
|
||
function runCount(el){
|
||
if(el.dataset.plain){return;} // years shown plainly
|
||
const to=+el.dataset.to, dec=+el.dataset.dec||0, dur=900; let t0=null;
|
||
function step(ts){if(!t0)t0=ts;const p=Math.min((ts-t0)/dur,1);const e=1-Math.pow(1-p,3);
|
||
el.textContent=(to*e).toFixed(dec);if(p<1)requestAnimationFrame(step);else el.textContent=to.toFixed(dec);}
|
||
requestAnimationFrame(step);
|
||
}
|
||
function animateTimeline(){
|
||
const steps=$$(".zig-row");const fill=$("#tlFill");
|
||
fill.style.height=($("#timeline").offsetHeight-12)+"px";
|
||
steps.forEach((s,i)=>setTimeout(()=>s.classList.add("on"),i*220));
|
||
}
|
||
|
||
/* ============ INIT ============ */
|
||
(function init(){
|
||
try{
|
||
const t=localStorage.getItem("tripz_theme");if(t)document.documentElement.setAttribute("data-theme",t);
|
||
const savedThm=document.documentElement.getAttribute("data-theme");
|
||
const l=localStorage.getItem("tripz_lang")||"ar";applyLang(l);
|
||
}catch(e){applyLang("ar");}
|
||
})();
|
||
</script>
|
||
</body>
|
||
</html>
|