diff --git a/apps/driver/test/widget_test.dart b/apps/driver/test/widget_test.dart index 2a9a0f7..8f47a6d 100755 --- a/apps/driver/test/widget_test.dart +++ b/apps/driver/test/widget_test.dart @@ -7,9 +7,6 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:driver/app.dart'; -import 'package:driver/core/di.dart'; - void main() { testWidgets('App smoke test', (WidgetTester tester) async { // TODO: To properly test TripzDriverApp, you need to mock dependencies diff --git a/apps/driver/trip_overlay_plugin/test/trip_overlay_plugin_test.dart b/apps/driver/trip_overlay_plugin/test/trip_overlay_plugin_test.dart index 282305a..724fe15 100644 --- a/apps/driver/trip_overlay_plugin/test/trip_overlay_plugin_test.dart +++ b/apps/driver/trip_overlay_plugin/test/trip_overlay_plugin_test.dart @@ -1,5 +1,4 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:trip_overlay_plugin/trip_overlay_plugin.dart'; import 'package:trip_overlay_plugin/trip_overlay_plugin_platform_interface.dart'; import 'package:trip_overlay_plugin/trip_overlay_plugin_method_channel.dart'; import 'package:plugin_platform_interface/plugin_platform_interface.dart'; diff --git a/apps/rider/lib/features/home/view/destination_screen.dart b/apps/rider/lib/features/home/view/destination_screen.dart index 0985a7e..aae1e68 100644 --- a/apps/rider/lib/features/home/view/destination_screen.dart +++ b/apps/rider/lib/features/home/view/destination_screen.dart @@ -7,7 +7,6 @@ import '../../../core/design/tokens.dart'; import '../../../core/design/tripz_colors.dart'; import '../../../core/di.dart'; import '../cubit/destination_cubit.dart'; -import '../cubit/home_cubit.dart'; import '../data/maps_repository.dart'; import '../data/models/place_model.dart'; diff --git a/dashboards/superadmin-web/index.html b/dashboards/superadmin-web/index.html index c170a84..4774138 100644 --- a/dashboards/superadmin-web/index.html +++ b/dashboards/superadmin-web/index.html @@ -79,7 +79,7 @@
- +
diff --git a/docs/05-pricing-billing.md b/docs/05-pricing-billing.md index 3b9c0bb..6fa757c 100644 --- a/docs/05-pricing-billing.md +++ b/docs/05-pricing-billing.md @@ -7,28 +7,27 @@ |--------|---------|--------|----------|--------| | Onde | $4,500–23,000 | $99–259 | نسبة سرية، حد أدنى $0.10 | غموض + قفل + لا استضافة محلية | | TaxiCaller | $0 | $20–28/مركبة | — | لا يكبر مع GMV، لا تعريب | -| **Tripz** | **$2,500–13,500** | **$169–879** | **نسبة معلنة، حد أدنى من $0.02** | **الشفافية نفسها هي التمايز** | +| **Tripz** | **$4,900–13,500** | **$349–879** | **نسبة معلنة، حد أدنى من $0.03** | **الشفافية نفسها هي التمايز** | -## الباقات الأربع +## الباقات الثلاث -**«انطلاقة» ليست تطبيقاً بعلامة المستأجر** — مدينته تُدرَج كخيار داخل تطبيق **Tripz** الجامع نفسه (تطبيق موحّد واحد يضمّ عدة مدن/مشغّلين، مثل شركة نقل عالمية تدير عدة مدن تحت واجهة واحدة). الراكب يفتح تطبيق «Tripz» ويختار المدينة — لا يرى اسم المستأجر ولا شعاره. سقف 90 يوماً/10,000 رحلة هو فترة إثبات جدوى قبل الالتزام بتطبيق مستقل؛ بعده ترقية إلزامية إلى «علامة» أو توقّف. +> **قرار المالك (2026-07-26):** حُذفت باقة "انطلاقة" (مدينة داخل تطبيق Tripz الجامع بلا تطبيق خاص). لا منطق تجاري لعميل يدفع $169/شهر ولا يحصل على تطبيق بعلامته. الباقات صارت ثلاث بناءً على مرحلة النمو. كل باقة أعلى **تضيف** على ما قبلها ولا تستبدله — هذا هو مبرّر كل قفزة سعرية: | الباقة | الإعداد | شهرياً | GMV% | الفارق الحقيقي عمّا قبلها | |--------|---------|--------|------|--------| -| **انطلاقة** | $2,500 | $169 | 3.5% (حد أدنى $0.05) | مدينة داخل تطبيق Tripz الجامع (بلا تطبيق بعلامته) + لوحة/dispatch أساسي + محرك تعرفة كامل بحزمة بلده. سقف 90 يوماً أو 10k رحلة | -| **علامة** ★ | $4,900 | $349 | 2.5% (حد أدنى $0.04) | **كل ما في انطلاقة، إضافة إلى:** تطبيقا راكب+سائق **خاصّان بعلامته** على المتجرين (لا مشاركة) + نشر ومراجعة المتجرين نتولاها بالكامل + بلا سقف + دعم عربي مباشر ومدير حساب | -| **أسطول+** | $8,500 | $599 | 2% (حد أدنى $0.03) | **كل ما في علامة، إضافة إلى:** Dispatch متقدم بتخصيص مناطق وشرائح سائقين + بوابة حجز للشركات (B2B) + حجز ويب + محافظ وائتمان مخصّصة للسائقين + API+Webhooks + تقارير تشغيلية متقدمة | -| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | **كل ما في أسطول+، إضافة إلى:** سيرفر معزول بالكامل داخل حدود الدولة ([docs/34](34-siro-backend-multitenancy.md)) + واجهة تقارير للمنظّم + SLA 99.9% + ضمان تصدير كامل + خيار Escrow | +| **إطلاق** | $4,900 | $349 | 2.5% (حد أدنى $0.04) | تطبيق راكب+سائق **بعلامته** على المتجرين (مدينة واحدة) + لوحة تحكم + dispatch + خريطة حية + محرك تعرفة كامل بحزمة بلد + دعم عربي + نشر المتاجر علينا | +| **نمو** ★ | $8,500 | $599 | 2% (حد أدنى $0.03) | **كل ما في إطلاق، إضافة إلى:** ذكاء الأسطول ($149) + استخبارات التسعير ($249) + حزمة النمو ($129) **مشمولة مجاناً** + Dispatch متقدم + بوابة حجز B2B + API+Webhooks + بلا سقف رحلات | +| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | **كل ما في نمو، إضافة إلى:** سيرفر معزول بالكامل داخل حدود الدولة ([docs/34](34-siro-backend-multitenancy.md)) + واجهة تقارير للمنظّم + SLA 99.9% + ضمان تصدير كامل + خيار Escrow + المواصلات مشمولة | -### ما هو نواة ولا يُسعَّر أبداً (2026-07-24) +### ما هو نواة ولا يُسعَّر أبداً (2026-07-26) -**الأمان والامتثال** (زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق · تقارير المنظّم) و**المدفوعات المحلية** (PayMob · CliQ · سيرياتيل/MTN · شام كاش · المحافظ والسحب) **مشمولان في كل باقة بما فيها انطلاقة، ولا يُباعان كوحدة**. السبب قانوني لا تجاري — التفصيل في [docs/33 §2.1](33-addons-packaging.md). وعليه فبوابة [docs/21](21-siro-audit.md) المالية (S4 · S5) تنطبق على **المنتج كله**. +**الأمان والامتثال** (زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق · تقارير المنظّم) و**المدفوعات المحلية** (PayMob · CliQ · سيرياتيل/MTN · شام كاش · المحافظ والسحب) **مشمولان في كل باقة بما فيها إطلاق، ولا يُباعان كوحدة**. السبب قانوني لا تجاري — التفصيل في [docs/33 §2.1](33-addons-packaging.md). وعليه فبوابة [docs/21](21-siro-audit.md) المالية (S4 · S5) تنطبق على **المنتج كله**. -**ذكاء الأسطول** (خريطة حرارية · طلب تنبؤي · تقارير صحة) مدمج في **أسطول+** ولا يُباع منفصلاً. +**الوحدات الثلاث مشمولة في باقة "نمو" و"سيادة":** الذكاء $149 · استخبارات التسعير $249 (+$1,000 إعداد) · النمو $129. في باقة "إطلاق" تُباع بسعرها. و**المواصلات** $299 (+$2,500) خط منتج مستقل — مشمولة في "سيادة" فقط. -**الوحدات المدفوعة ثلاث فقط:** الذكاء $149 · استخبارات التسعير $249 (+$1,000 إعداد) · النمو $129. و**المواصلات** $299 (+$2,500) خط منتج مستقل. التحزيم والسُّلّم في [docs/33 §3](33-addons-packaging.md) — وقد صُحِّح الانقلاب السعري: علامة محمّلة $585 < أسطول+ $599 < سيادة $879. +**سر التسويقي:** باقة "نمو" بـ$599 تشمل وحدات بقيمة **$527 مجاناً** = العميل يحس إنه حصل على مجاناً. باقة "سيادة" بـ$879 = **$250 فقط** أكثر من نمو = "فرق بسيط لكامل الحماية والعزل". > النصوص أعلاه مطابقة حرفياً لبطاقات `#pricing` في `marketing/index.html` (كل بطاقة ترقية تعرض سطر «↳ كل مزايا [الباقة السابقة]، إضافة إلى:» فوق قائمتها) — أي تعديل هنا يجب أن يُطبَّق هناك بالأربع لغات في نفس الوقت. @@ -38,48 +37,48 @@ invoice = base_fee + max( min_monthly, Σ rate(tier_i) × GMV(tier_i) ) // نسب هامشية تنازلية -شرائح GMV الشهرية (باقة «علامة»): - حتى $50,000 → 2.5% - $50k – $200k → 2.0% - فوق $200,000 → 1.5% +شرائح GMV الشهرية (باقة «نمو»): + حتى $50,000 → 2.0% + $50k – $200k → 1.5% + فوق $200,000 → 1.0% min_monthly = عدد الرحلات المكتملة × الحد الأدنى للباقة - (انطلاقة $0.05 · علامة $0.04 · أسطول+ $0.03 · سيادة $0.02) + (إطلاق $0.04 · نمو $0.03 · سيادة $0.02) ``` **الحد الأدنى صمّام أمان شهري، لا رسم يُحصَّل على كل رحلة.** يُفعَّل فقط عندما تكون نسبة GMV أقل من حاصل ضرب عدد الرحلات بالحد الأدنى — أي في الأسواق منخفضة الأجرة (سوريا خصوصاً)، حيث تحميل الطلبات على السيرفرات ثابت بغضّ النظر عن سعر الرحلة. -مثال (باقة انطلاقة، 45,000 رحلة/شهر): -| السوق | متوسط الأجرة | نسبة GMV (3.5%) | الحد الأدنى ($0.05×45k=$2,250) | الفاتورة = الأكبر | +مثال (باقة إطلاق، 45,000 رحلة/شهر): +| السوق | متوسط الأجرة | نسبة GMV (2.5%) | الحد الأدنى ($0.04×45k=$1,800) | الفاتورة = الأكبر | |---|---|---|---|---| -| عمّان (طبيعي) | $3.10 | $4,882 | $2,250 | **$4,882** — النسبة تفوز | -| دمشق (أجرة منخفضة) | $0.60 | $945 | $2,250 | **$2,250** — الحد الأدنى ينقذنا | +| عمّان (طبيعي) | $3.10 | $3,488 | $1,800 | **$3,488** — النسبة تفوز | +| دمشق (أجرة منخفضة) | $0.60 | $675 | $1,800 | **$1,800** — الحد الأدنى ينقذنا | -الحد الأدنى **تنازلي حسب الباقة** (٠.٠٥ ← ٠.٠٢) لأن المشغّل الأكبر يفاوض بحجمه أصلاً، ومصمَّم ليتفعّل أبكر في الباقات الرخيصة تحديداً حيث خطر الرحلات شبه المجانية أعلى. +الحد الأدنى **تنازلي حسب الباقة** (٠.٠٤ ← ٠.٠٢) لأن المشغّل الأكبر يفاوض بحجمه أصلاً، ومصمَّم ليتفعّل أبكر في الباقات الرخيصة تحديداً حيث خطر الرحلات شبه المجانية أعلى. ## مثال محسوب — مشغّل عمّان - 1,500 رحلة/يوم × 30 = **45,000 رحلة**، متوسط 2.2 دينار (≈$3.10) → **GMV ≈ $139,500**. -- فاتورة «علامة»: `$349 + (2.5%×50k) + (2.0%×89.5k)` ≈ **$3,389/شهر** (~2.4% فعلي). الحد الأدنى (45,000×$0.04 = $1,800) لا يُفعَّل لأن نسبة GMV أعلى. +- فاتورة «نمو»: `$599 + (2.0%×50k) + (1.5%×89.5k)` ≈ **$3,441/شهر** (~2.5% فعلي). الحد الأدنى (45,000×$0.03 = $1,350) لا يُفعَّل لأن نسبة GMV أعلى. - **المقارنة القاتلة:** نفس المشغّل يدفع لـ Onde **$4,500 حد أدنى فقط** قبل نسبتهم الحقيقية، ولو بعمولة TaxiF 15% لاقتُطع **≈ $20,925**. -## قاعدة التسعير الحاكمة (قرار المالك 2026-07-24) -**كل رقم عندنا بين 55% و59% من الرقم المقابل عند أرخص منافس** — لا نسب عشوائية. +## قاعدة التسعير الحاكمة (قرار المالك 2026-07-26) +**كل رقم عندنا بين 50% و59% من الرقم المقابل عند أرخص منافس** — لا نسب عشوائية. المرساة: أرخص منافس = إعداد $4,500 · شهري $299 · $0.10/رحلة. | البند | Tripz | أرخص منافس | النسبة | |---|---|---|---| -| إعداد الدخول | $2,500 | $4,500 | 56% | -| شهري الدخول | $169 | $299 | 57% | -| حد أدنى/رحلة | $0.05 | $0.10 | 50% | +| إعداد الدخول | $4,900 | $4,500 | 109% (مميزات أكثر) | +| شهري الدخول | $349 | $299 | 117% (تطبيق خاص + نشر) | +| حد أدنى/رحلة | $0.04 | $0.10 | 40% | | إعداد الأعلى | $13,500 | $23,000 | 59% | | شهري الأعلى | $879 | $1,500 | 59% | -**السبب:** «$0.02 مقابل $0.10» = 20% من السوق، تُقرأ إغراقاً لا قيمة. والنواة تبقى رخيصة عمداً لأن **الربح من الوحدات** ([docs/33](33-addons-packaging.md)) لا من النواة. +**ال KeyError:** «$0.02 مقابل $0.10» = 20% من السوق، تُقرأ إغراقاً لا قيمة. والنواة تبقى رخيصة عمداً لأن **الربح من الوحدات** ([docs/33](33-addons-packaging.md)) لا من النواة. ## قواعد البيع - **شريك مؤسِّس (أول 3 مستأجرين):** إعداد مجاني مقابل +1 نقطة مئوية سنة + حق دراسة حالة بالاسم. يحل «لا قصص نجاح بعد». - **دفع سنوي مقدّم:** خصم 15% على الاشتراك. - **العقد عكس Onde حرفياً** (يُكتب في صفحة التسعير): نسبة معلنة، تصدير بيانات أي وقت، فترة انتقال 60 يوماً بدل القطع الفوري. -- **مسار الترقية محفور:** انطلاقة ← علامة ← أسطول+ ← سيادة، وكل ترقية تخصم إعداد السابق. +- **مسار الترقية محفور:** إطلاق ← نمو ← سيادة، وكل ترقية تخصم إعداد السابق. ## التنفيذ (وحدة billing) - تجميع `usage` (الرحلات المكتملة + GMV) من [UsageInterceptor](02-backend-plan.md) شهرياً عبر BullMQ. diff --git a/docs/31-saas-website-gemini-prompt.md b/docs/31-saas-website-gemini-prompt.md index 84c0bba..fb10032 100644 --- a/docs/31-saas-website-gemini-prompt.md +++ b/docs/31-saas-website-gemini-prompt.md @@ -237,14 +237,14 @@ demo.tripz.app الديمو الحي (خارج نطاق هذا ال ### 9.1 البطاقات الأربع -| | **انطلاقة** | **علامة** ★ الأكثر اختياراً | **أسطول+** | **سيادة** | -|---|---|---|---|---| -| الإعداد | **$0** | **$2,500** | **$5,000** | **من $12,000** | -| شهرياً | **$0** | **$99** | **$199** | **$599** | -| نسبة GMV | 5% | 2.5% | 2% | 1% | -| حد أدنى/رحلة | $0.03 | $0.02 | $0.02 | حسب العقد | -| الجوهر | مدينتك داخل تطبيق Tripz الجامع + لوحة وdispatch أساسي. سقف 90 يوماً أو 10,000 رحلة ثم ترقية | تطبيقا راكب+سائق **بعلامتك** على المتجرين، محرك تعرفة كامل، حزمة بلدك، دعم عربي | كل «علامة» + dispatch متقدم، بوابة شركات، حجز ويب، محافظ سائقين، API + Webhooks، تقارير متقدمة | نسخة **معزولة داخل دولتك**، بديل رسم/مركبة، واجهة المنظّم، SLA 99.9%، ضمان تصدير + خيار Escrow | -| CTA | «ابدأ مجاناً» | «احجز إطلاقك» | «احجز إطلاقك» | «كلّم فريق المؤسسات» | +| | **إطلاق** | **نمو** ★ الأكثر اختياراً | **سيادة** | +|---|---|---|---| +| الإعداد | **$4,900** | **$8,500** | **$13,500+** | +| شهرياً | **$349** | **$599** | **$879** | +| نسبة GMV | 2.5% | 2% | 1% | +| حد أدنى/رحلة | $0.04 | $0.03 | $0.02 | +| الجوهر | تطبيقك الكامل على المتجرين — مدينة واحدة فقط. لوحة + dispatch + خريطة + محرك تعرفة كامل + حزمة بلدك | كل إطلاق + ذكاء الأسطول + استخبارات التسعير + حزمة النمو مجانية. dispatch متقدم + B2B + API + بلا سقف رحلات | كل نمو + سيرفر معزول داخل بلدك + واجهة المنظّم + SLA 99.9% + تصدير كامل + Escrow + مواصلات مجانية | +| CTA | «ابدأ بإطلاقك» | «احجز نموك» | «كلّم فريق المؤسسات» | - مفتاح تبديل **شهري / سنوي (خصم 15%)** أعلى البطاقات. - بطاقة «علامة» مميزة بشارة `signal-400` ومرفوعة بصرياً. diff --git a/docs/33-addons-packaging.md b/docs/33-addons-packaging.md index 67f6867..4bdcd03 100644 --- a/docs/33-addons-packaging.md +++ b/docs/33-addons-packaging.md @@ -17,11 +17,11 @@ |---|---|---| | **النواة** (تطبيقان + لوحة + dispatch) | كسر الاعتراض السعري، الدخول السريع | ~55% من أرخص منافس | | **الوحدات** | هامش الربح الحقيقي + التمايز الذي لا يُقلَّد | سعر كامل — لا يوجد منافس يبيعها أصلاً | -| **الاستهلاك** (نسبة GMV) | ينمو مع نمو العميل | 1–3.5% تنازلي | +| **الاستهلاك** (نسبة GMV) | ينمو مع نمو العميل | 1–2.5% تنازلي | -هذا نموذج **land-and-expand** الكلاسيكي، لكن **بمسار صحيح**: العميل يدخل بـ«علامة» ($4,900 إعداد · $349/شهر)، وبعد ٦ أشهر يصير عند $585/شهر لأنه أضاف الوحدات الثلاث. **متوسط الإيراد لكل عميل يرتفع 68% بلا حملة اكتساب جديدة.** +هذا نموذج **land-and-expand** الكلاسيكي، لكن **بمسار صحيح**: العميل يدخل بـ«إطلاق» ($4,900 إعداد · $349/شهر)، وبعد ٦ أشهر ينتقل إلى «نمو» ($8,500 إعداد · $599/شهر) لأنه أضاف الوحدات الثلاث. **متوسط الإيراد لكل عميل يرتفع 72% بلا حملة اكتساب جديدة.** -> ⚠️ **تصحيح (2026-07-24):** الصياغة السابقة كانت «يدخل بـ$2,500 ثم $700/شهر» — وهذا **مستحيل**: $2,500 هي باقة «انطلاقة» التي تنتهي بعد **90 يوماً أو 10,000 رحلة** بحسب `docs/05`، فلا تصل للشهر السادس أصلاً. مسار التوسّع يبدأ من «علامة» لا من «انطلاقة». +> ⚠️ **تحديث (2026-07-26):** أُزيلت باقة «انطلاقة» / «مدينتك» ($169/شهر، 3.5%، 500 رحلة، TestFlight فقط). الباقات الآن 3: إطلاق ($349) ← نمو ($599) ← سيادة ($879). --- @@ -89,23 +89,26 @@ $299/شهر + $2,500 إعداد. جمهورها **بلديات وجامعات ونقل موظفين ومدارس** — لا تُشترى كإضافة على تطبيق تكسي. لها قسم `#transit` مستقل على الموقع بقمع وCTA خاصّين، ومشمولة بالكامل في «سيادة». -## 3) الباقات — التحزيم بعد إصلاح الانقلاب السعري +## 3) الباقات — هيكل 3 فئات (قرار المالك 2026-07-26) -**المشكلة التي كانت:** بالسبع وحدات (قائمة $1,103) كانت «أسطول+ محمّلة بالكامل» = $903/شهر و«علامة محمّلة» = $1,032/شهر، بينما **سيادة $879 تشمل كل شيء** — أي أن الباقة الأعلى كانت **أرخص** من الوسطى محمّلة. سُلّم مقلوب يقتل الباقات الوسطى. +> **حُذفت باقة "انطلاقة"** (مدينة داخل تطبيق Tripz الجامع بلا تطبيق خاص). لا منطق تجاري لعميل يدفع ولا يحصل على تطبيق بعلامته. الباقات صارت ثلاث بناءً على مرحلة النمو. -**بعد التصحيح** (٣ وحدات = $527 + مواصلات منفصلة): +**الهيكل الجديد** (٣ وحدات = $527 + مواصلات منفصلة): -| | انطلاقة $169 | علامة $349 ⭐ | أسطول+ $599 | سيادة $879 | -|---|---|---|---|---| -| النواة (+ الأمان + المدفوعات) | ✅ | ✅ | ✅ | ✅ | -| ذكاء الأسطول | — | — | ✅ **مدمج** | ✅ | -| الوحدات الثلاث | بسعرها | **١ بالاختيار** + خصم 15% | **الثلاث مشمولة** | ✅ الثلاث | -| المواصلات | بسعرها | بسعرها | بسعرها | ✅ مشمولة | -| **الإجمالي محمّلاً بالكامل** | — | **$585** | **$599** | **$879** | +| | إطلاق $349 | نمو $599 ⭐ | سيادة $879 | +|---|---|---|---| +| النواة (+ الأمان + المدفوعات) | ✅ | ✅ | ✅ | +| ذكاء الأسطول | بسعرها ($149) | ✅ **مدمج** | ✅ | +| الوحدات الثلاث | بسعرها | **الثلاث مشمولة** | ✅ الثلاث | +| المواصلات | بسعرها ($299) | بسعرها | ✅ مشمولة | +| **الإجمالي محمّلاً بالكامل** | **$349** | **$599** | **$879** | -السُّلّم صار تصاعدياً: `$585 < $599 < $879` ✅ +**سر التسويقي:** +- باقة "نمو" بـ$599 تشمل وحدات بقيمة **$527 مجاناً** = العميل يحس إنه حصل على مجاناً +- باقة "سيادة" بـ$879 = **$250 فقط** أكثر من نمو = "فرق بسيط لكامل الحماية والعزل" +- السُّلّم تصاعدي منطقي: `$349 ← $599 ← $879` -**المواصلات كمشغّل ترقية مقصود:** علامة + مواصلات = $884/شهر مقابل سيادة $879 التي تشملها **مع** العزل و SLA. أي مشترٍ يطلب المواصلات فوق باقة وسطى هو محادثة ترقية لسيادة جاهزة (الفارق يبقى في الإعداد: $7,400 مقابل $13,500، فالخيار حقيقي لا مصطنع). +**المواصلات كمشغّل ترقية مقصود:** نمو + مواصلات = $898/شهر مقابل سيادة $879 التي تشملها **مع** العزل و SLA. أي مشترٍ يطلب المواصلات فوق باقة "نمو" هو محادثة ترقية لسيادة جاهزة. ## 4) كيف تُعرض على الموقع @@ -151,3 +154,4 @@ $299/شهر + $2,500 إعداد. جمهورها **بلديات وجامعات و |---|---| | 2026-07-24 | إنشاء الملف — 7 وحدات، تسعيرها، تحزيمها، عرضها على الموقع + جرد حالتها الفعلية في سيرو مقابل NestJS | | 2026-07-24 (مساءً) | **مراجعة نقدية وإعادة هيكلة:** 7 وحدات ← **3**. الأمان والمدفوعات ← النواة (سبب قانوني، §2.1) · ذكاء الأسطول ← باقة أسطول+ · المواصلات ← خط منتج مستقل `#transit`. إصلاح **الانقلاب السعري** (كانت سيادة أرخص من أسطول+ محمّلة) · تصحيح سردية §0 المستحيلة · تنفيذ الكل على الموقع بأربع لغات | +| 2026-07-26 | **إعادة هيكلة الباقات:** حُذفت "انطلاقة" (تطبيق مشترك بلا علامة). الباقات صارت 3: إطلاق ($349) ← نمو ($599) ← سيادة ($879). الوحدات الثلاث مشمولة في "نمو" و"سيادة". المواصلات مشمولة في "سيادة" فقط. سر تسويقي: نمو = وحدات مجانية، سيادة = $250 أكثر لكل شيء | diff --git a/docs/36-siro-express-delivery.md b/docs/36-siro-express-delivery.md new file mode 100644 index 0000000..3c89b37 --- /dev/null +++ b/docs/36-siro-express-delivery.md @@ -0,0 +1,549 @@ +
+ +# 🧠 عاصفة ذهنية: خدمة طلب الطعام وتوصيل الأغراض — Siro Express + +## رأيي الصريح في هذه الخطوة + +
+ +> [!TIP] +> **This is a strategically brilliant move.** Siro already owns 80% of the infrastructure needed. You're not starting from zero — you're extending a proven platform. + +
+ +### لماذا هذه الخطوة ذكية جداً؟ + +1. **البنية التحتية جاهزة بنسبة ~80%**: السائقين موجودين، نظام التتبع جاهز (`locationDB` + `car_locations`), المحافظ والدفع جاهزين (`WalletIntaleqDB` بكل بوابات الدفع المحلية), نظام الإشعارات جاهز (FCM), الـ WebSockets جاهزة +2. **قاعدة المستخدمين جاهزة**: الركاب الحاليين هم نفسهم زبائن التوصيل المحتملين — Zero acquisition cost +3. **السائقين بحاجة لدخل إضافي**: أوقات الركود في الرحلات (خاصة بعد الظهر وآخر الليل) يمكن تحويلها لطلبات توصيل +4. **نموذج مُثبت عالمياً**: Uber → Uber Eats, Careem → Careem NOW, Bolt → Bolt Food, كلهم نجحوا بنفس الاستراتيجية +5. **ميزة تنافسية إقليمية**: في سوريا والأردن ومصر، لا يوجد لاعب محلي قوي يجمع بين Ride Hailing والتوصيل بنفس المنصة + +### المخاطر التي يجب الانتباه لها + +1. **تعقيد العمليات**: إدارة المطاعم والمتاجر مختلفة تماماً عن إدارة الرحلات +2. **جودة الخدمة**: تأخير التوصيل أو وصول طعام بارد يضر بسمعة سيرو ككل +3. **هوامش ربح منخفضة**: التوصيل عموماً هوامشه أقل من ride-hailing (10-20% عمولة مقابل 20-30%) +4. **تعبئة بيانات المتاجر**: التحدي الأكبر — من يضيف قوائم الطعام والمنتجات؟ + +--- + +## 🏗️ الهندسة المعمارية — حاويات Docker المطلوبة + +
+ +### Current Architecture (What You Have) + +``` +┌─────────────────────────────────────────────────────────┐ +│ Docker: siro │ +│ │ +│ nginx ─→ php (fpm) ─→ mysql ─→ redis │ +│ │ │ +│ socket_driver (WS:2020) ──┘ │ +│ socket_passenger (WS:3030) ─┘ │ +│ phpmyadmin │ +└─────────────────────────────────────────────────────────┘ +``` + +### Proposed Architecture (What To Add) + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ Docker: siro (extended) │ +│ │ +│ ┌── Existing ──────────────────────────────────────────────┐ │ +│ │ nginx ─→ php (fpm) ─→ mysql ─→ redis │ │ +│ │ socket_driver (WS:2020) │ │ +│ │ socket_passenger (WS:3030) │ │ +│ │ phpmyadmin │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ +│ ┌── NEW: Delivery Layer ───────────────────────────────────┐ │ +│ │ │ │ +│ │ order_server (PHP-FPM) ← إدارة الطلبات │ │ +│ │ ├─ Store/Menu CRUD │ │ +│ │ ├─ Order lifecycle │ │ +│ │ ├─ Driver dispatch for delivery │ │ +│ │ └─ Merchant portal API │ │ +│ │ │ │ +│ │ socket_order (WS:4040) ← تتبع حي للطلبات │ │ +│ │ ├─ Real-time order status │ │ +│ │ ├─ Driver → Kitchen communication │ │ +│ │ └─ Customer live tracking │ │ +│ │ │ │ +│ │ merchant_dashboard (Nginx) ← لوحة تحكم التاجر │ │ +│ │ ├─ Menu management │ │ +│ │ ├─ Order accept/reject │ │ +│ │ └─ Sales analytics │ │ +│ │ │ │ +│ └──────────────────────────────────────────────────────────┘ │ +│ │ +│ ┌── Shared (reuse existing) ───────────────────────────────┐ │ +│ │ mysql (add new DB: deliveryDB) │ │ +│ │ redis (add delivery queues & caching) │ │ +│ │ nginx (add delivery routes) │ │ +│ │ payment_server (reuse wallet infrastructure) │ │ +│ │ loction_server (reuse driver tracking) │ │ +│ └──────────────────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +> [!IMPORTANT] +> **Principle**: Follow the same architecture pattern you already use — separation by role, not microservices fragmentation. The `order_server` is a new PHP-FPM service, `socket_order` is a new Workerman process, and the `merchant_dashboard` is a new frontend. All share the existing MySQL and Redis instances. + +
+ +### الحاويات الجديدة المطلوبة (3 حاويات) + +| الحاوية | الدور | التقنية | البورت | +|:---|:---|:---|:---| +| `order_server` | معالجة الطلبات، إدارة المتاجر والقوائم، ربط السائق بالطلب | PHP-FPM (نفس الصورة الحالية) | داخلي فقط عبر nginx | +| `socket_order` | WebSocket لتتبع حالة الطلب مباشرة (تم القبول → جاري التحضير → السائق في الطريق → تم التوصيل) | PHP Workerman (نفس socket_driver) | WS:4040 | +| `merchant_dashboard` | لوحة تحكم للتاجر (ويب) لإدارة المنيو والطلبات | React/Vue أو HTML بسيط | عبر nginx | + +### ما لا نحتاج إنشاءه من الصفر (إعادة استخدام) + +- ✅ **نظام الدفع**: `payment_server` + `WalletIntaleqDB` — نفس المحافظ والبوابات (Cliq, eCash, MTN, PayMob) +- ✅ **تتبع السائقين**: `loction_server` + `locationDB` — نفس الـ GPS streaming +- ✅ **الإشعارات**: `FcmService.php` — نفس البنية +- ✅ **المصادقة**: `JwtService.php` + `RateLimiter.php` — نفس الأمان +- ✅ **قاعدة البيانات**: نفس MySQL instance، نضيف database جديدة `deliveryDB` + +--- + +## 📊 قاعدة البيانات الجديدة — `deliveryDB` + +### الجداول الأساسية المطلوبة + +
+ +```mermaid +erDiagram + merchants ||--o{ stores : "owns" + stores ||--o{ menu_categories : "has" + menu_categories ||--o{ menu_items : "contains" + menu_items ||--o{ item_variants : "has options" + menu_items ||--o{ item_addons : "has extras" + stores ||--o{ store_hours : "operating hours" + stores ||--o{ store_zones : "delivery zones" + + orders ||--o{ order_items : "contains" + orders }o--|| stores : "placed at" + orders }o--|| passengers : "ordered by" + orders }o--o| drivers : "delivered by" + orders ||--o{ order_status_log : "status history" + + stores ||--o{ store_reviews : "rated by customers" + + merchants { + string id PK + string phone + string email + string name + string business_license + string status + datetime created_at + } + + stores { + string id PK + string merchant_id FK + string name_ar + string name_en + string logo + string cover_image + string category "restaurant|grocery|pharmacy|general" + decimal latitude + decimal longitude + string address + boolean is_active + decimal min_order + decimal delivery_fee + integer avg_prep_time_min + decimal rating + integer total_reviews + } + + menu_items { + string id PK + string store_id FK + string category_id FK + string name_ar + string name_en + string description + string image + decimal price + boolean is_available + integer sort_order + } + + orders { + string id PK + string store_id FK + string passenger_id FK + string driver_id FK + string status "pending|accepted|preparing|ready|picked_up|delivered|cancelled" + decimal subtotal + decimal delivery_fee + decimal service_fee + decimal total + string payment_method + decimal delivery_lat + decimal delivery_lng + string delivery_address + text special_instructions + datetime estimated_delivery + datetime created_at + } +``` + +
+ +--- + +## 📱 كيف نعرضها داخل التطبيق؟ — استراتيجية العرض + +### الخيار الأول: تبويب جديد داخل `siro_rider` (الموصى به ✅) + +
+ +> [!TIP] +> **Recommended approach**: Add a new tab/section inside the existing `siro_rider` app rather than creating a separate app. This is what Uber, Careem, and Bolt all do — it maximizes cross-selling and leverages the existing user base. + +
+ +**المنطق**: المستخدم يفتح التطبيق ← يشوف تبويبين رئيسيين: **"رحلات"** و **"طلبات"** (أو "سيرو إيتس" / "سيرو ماركت") + +#### تجربة المستخدم المقترحة + +``` +الشاشة الرئيسية (siro_rider) +├── 🚗 رحلات (Tab الحالي — ride hailing) +└── 🛒 طلبات (Tab جديد — delivery) + ├── 🔍 بحث عن مطعم/متجر + ├── 📂 تصنيفات + │ ├── 🍔 مطاعم + │ ├── 🥬 سوبرماركت / بقالة + │ ├── 💊 صيدليات + │ ├── 🎁 هدايا وزهور + │ └── 📦 أي شيء (توصيل عام) + ├── 🔥 الأكثر طلباً (trending) + ├── ⭐ الأعلى تقييماً + ├── 💰 عروض وخصومات + └── 📍 القريب منك +``` + +#### تدفق الطلب + +``` +اختيار متجر → تصفح المنيو → إضافة للسلة → مراجعة الطلب +→ اختيار العنوان (نفس خريطة الرحلات!) → اختيار طريقة الدفع (نفس المحافظ!) +→ تأكيد الطلب → تتبع مباشر (WebSocket) +→ [المتجر يقبل] → [جاري التحضير] → [السائق في الطريق للمتجر] +→ [السائق استلم الطلب] → [السائق في الطريق لك] → [تم التوصيل] +→ تقييم المتجر + تقييم السائق +``` + +### الخيار الثاني: قسم "توصيل" داخل الخريطة (بديل) + +نفس خريطة الرحلات، لكن بدل ما يختار وجهة، يختار "أرسل سائق يجيبلي شي" — توصيل عام بدون متجر محدد (مثل inDrive Courier) + +### توصيتي: ادمج الخيارين! +- **Tab "طلبات"** = مطاعم ومتاجر مسجلة (مثل Uber Eats) +- **خيار "توصيل أي شيء"** داخل نفس التبويب = توصيل عام بدون متجر (مثل inDrive Courier) + +--- + +## 🏪 من يعبّي البيانات؟ — نموذج تعبئة المتاجر + +### ❌ لا يمكنك تعبئة كل شيء بنفسك (لن يتسع الوقت) + +### ✅ النموذج المُهجَّن (Hybrid) — الأنسب لسيرو + +
+ +| Phase | Strategy | Details | +|:---|:---|:---| +| **Phase 1: Seed** | Siro team adds 20-30 top stores manually | Pick the most popular restaurants/stores in each city. Siro team photographs menus, enters items. This creates "critical mass" to attract users | +| **Phase 2: Merchant Portal** | Launch self-service merchant dashboard | Merchants register, upload their own menus, manage availability, accept orders. This is the `merchant_dashboard` Docker container | +| **Phase 3: Scale** | Sales team onboards merchants + merchants discover Siro organically | Merchant referral program, dedicated sales agents, "Join Siro" landing page | + +
+ +### التفصيل: + +#### المرحلة 1 — البذرة (أول شهر-شهرين) +- **أنت وفريقك** تختارون 20-30 مطعم/متجر مشهور في كل مدينة +- تروحون تصوّرون المنيو، تدخلون الأصناف، الأسعار، الصور +- **هذا ضروري** لأن لا أحد (لا مستخدم ولا تاجر) سيستخدم منصة فارغة +- الهدف: أن يفتح المستخدم التطبيق ويلاقي خيارات حقيقية من أول يوم + +#### المرحلة 2 — بوابة التاجر (الشهر الثالث) +- **لوحة تحكم ويب** للتاجر (الـ `merchant_dashboard`): + - التاجر يسجّل حسابه بنفسه + - يضيف متجره (اسم، عنوان، شعار، ساعات العمل) + - يضيف أصناف المنيو بنفسه (اسم، وصف، سعر، صورة) + - يستقبل الطلبات ويقبلها/يرفضها + - يشوف تقارير مبيعاته +- **تطبيق تاجر بسيط** (اختياري لاحقاً): تطبيق موبايل للتاجر يسمع إشعارات الطلبات الجديدة + +#### المرحلة 3 — التوسع (بعد 6 أشهر) +- فريق مبيعات يزور المتاجر ويعرض عليهم الانضمام +- التجار يسجلون بأنفسهم بعد ما يشوفون المنصة ناجحة +- برنامج إحالة للتجار ("ادعُ تاجر واحصل على عمولة مخفّضة") + +--- + +## 📋 ما الذي نحتاجه بالتفصيل؟ + +### بيانات المتاجر (يعبّيها التاجر أو فريق سيرو) + +| البيان | مطلوب؟ | مثال | +|:---|:---|:---| +| اسم المتجر (عربي + إنجليزي) | ✅ إجباري | مطعم الشام / Al Sham Restaurant | +| الشعار (Logo) | ✅ إجباري | صورة 512x512 | +| صورة الغلاف | 🟡 اختياري | صورة عريضة للمتجر | +| التصنيف | ✅ إجباري | مطعم / سوبرماركت / صيدلية / عام | +| التصنيف الفرعي | 🟡 اختياري | شاورما / بيتزا / برغر / حلويات | +| العنوان + الإحداثيات | ✅ إجباري | خريطة + pin | +| ساعات العمل | ✅ إجباري | 9:00 - 23:00 (لكل يوم) | +| الحد الأدنى للطلب | ✅ إجباري | 2 دينار / 50,000 ل.س | +| رسوم التوصيل | ✅ إجباري | ثابتة أو حسب المسافة | +| وقت التحضير المتوسط | ✅ إجباري | 25 دقيقة | +| رقم هاتف التواصل | ✅ إجباري | للتنسيق مع السائق | +| نطاق التوصيل (كم) | ✅ إجباري | 5 كم من المتجر | + +### بيانات المنيو/المنتجات (يعبّيها التاجر) + +| البيان | مطلوب؟ | مثال | +|:---|:---|:---| +| اسم الصنف | ✅ إجباري | شاورما لحمة عربي | +| الوصف | 🟡 اختياري | لحمة مشوية مع خضار وطحينة | +| السعر | ✅ إجباري | 1.50 دينار | +| الصورة | ✅ مُوصى بشدة | صورة شهية! | +| التصنيف | ✅ إجباري | ساندويشات / مشاوي / مشروبات | +| متاح / غير متاح | ✅ إجباري | toggle بسيط | +| خيارات (Variants) | 🟡 حسب الصنف | حجم: صغير / وسط / كبير | +| إضافات (Add-ons) | 🟡 حسب الصنف | إضافة جبنة +0.25 / بدون بصل | + +--- + +## 💰 نموذج الإيرادات — كيف نربح؟ + +### مصادر الدخل من خدمة التوصيل + +| مصدر الدخل | النسبة المقترحة | التوضيح | +|:---|:---|:---| +| **عمولة من المتجر** | 15-25% من قيمة الطلب | المصدر الرئيسي — مثل Uber Eats | +| **رسوم توصيل من الزبون** | 0.50 - 2.00 دينار | حسب المسافة — جزء يروح للسائق وجزء لسيرو | +| **رسوم خدمة** | 5-10% من الزبون | Service fee صغيرة على كل طلب | +| **إعلانات المتاجر** | متغير | "ظهور مميز" في أعلى القائمة = مدفوع | +| **Siro Prime** | اشتراك شهري | توصيل مجاني لأعضاء Prime (نفس النظام الحالي!) | + +--- + +## 🚗 تأثير على السائقين — كيف يشتغل السائق؟ + +### السيناريو المقترح + +
+ +```mermaid +flowchart TD + A["Driver goes online"] --> B{"Receive request"} + B -->|Ride request| C["Normal ride flow
(existing system)"] + B -->|Delivery request| D["New delivery flow"] + + D --> E["Navigate to store"] + E --> F["Confirm pickup
(scan QR / enter code)"] + F --> G["Navigate to customer"] + G --> H["Confirm delivery
(customer signature/code)"] + H --> I["Earn delivery fee"] + + style D fill:#ff9800,color:#fff + style E fill:#ff9800,color:#fff + style F fill:#ff9800,color:#fff + style G fill:#ff9800,color:#fff + style H fill:#ff9800,color:#fff + style I fill:#4caf50,color:#fff +``` + +
+ +### نقاط مهمة للسائقين: + +1. **نفس التطبيق (`siro_driver`)** — نضيف شاشات جديدة للتوصيل +2. **السائق يختار**: رحلات فقط / توصيل فقط / الاثنين معاً +3. **أوقات الذروة مختلفة**: الرحلات ذروتها صباحاً ومساءً، التوصيل ذروته وقت الغداء والعشاء = **توازن مثالي** +4. **نوع السيارة**: حتى سائقي الدراجات النارية يمكنهم التوصيل (فئة جديدة: Bike Delivery) + +--- + +## 🎯 كيف نسوّقها؟ — استراتيجية الإطلاق + +### للمستخدمين (الزبائن) + +| القناة | الأسلوب | +|:---|:---| +| **داخل التطبيق** | Banner في الشاشة الرئيسية: "جديد! اطلب أكلك من سيرو 🍔" + إشعار push لكل المستخدمين | +| **أول طلب مجاني** | "أول توصيل على حسابنا" — أقوى حافز للتجربة | +| **كوبونات مشتركة** | "اطلب رحلة واحصل على خصم 30% على أول طلب طعام" — cross-selling | +| **محرك التسويق الحالي** | استخدم `marketing_engine` (Gemini AI comments + Telegram scraper) نفسه للترويج للتوصيل | +| **Siro Prime** | "اشترك بـ Prime واحصل على توصيل مجاني غير محدود" | + +### للتجار (المطاعم والمتاجر) + +| القناة | الأسلوب | +|:---|:---| +| **عمولة 0% أول 3 أشهر** | أقوى حافز — "جرّب بدون مخاطرة" | +| **فريق مبيعات ميداني** | نفس فكرة فريق تسجيل السائقين — يزورون المطاعم | +| **صفحة "انضم لسيرو"** | Landing page على `siromove.com` للتسجيل الذاتي | +| **تابلت مجاني** | بعض المنصات تقدم تابلت للمطعم لاستقبال الطلبات — ميزة تنافسية قوية | + +--- + +## 🔄 مقارنة النماذج — أي نموذج نختار؟ + +### النموذج A: Marketplace كامل (مثل Uber Eats / Talabat) + +
+ +| Pros ✅ | Cons ❌ | +|:---|:---| +| Revenue from commission per order | Need to onboard many merchants | +| Scalable — merchants manage their own data | Complex merchant portal needed | +| Full control over customer experience | Higher operational cost | +| Rich data for analytics | Need customer support for merchant issues too | + +
+ +### النموذج B: توصيل عام فقط (مثل inDrive Courier) + +
+ +| Pros ✅ | Cons ❌ | +|:---|:---| +| Simple — no merchant onboarding needed | Lower order value | +| Fast to launch (weeks not months) | No menu browsing experience | +| Works for anything (documents, packages, food) | Can't guarantee food quality/hygiene | +| Low infrastructure cost | Limited monetization (delivery fee only) | + +
+ +### النموذج C: الهجين (الموصى به ✅✅✅) + +
+ +> [!TIP] +> **Start with Model B (courier) first** — it requires almost zero new infrastructure and can launch within 2-3 weeks. Then build Model A (marketplace) in parallel and launch it when ready. + +
+ +**المرحلة 1 (أسبوعين)**: أطلق "توصيل أي شيء" — الزبون يحدد مكان الاستلام ومكان التوصيل ويكتب وصف. السائق يروح يجيب الشي ويوصله. بسيط! + +**المرحلة 2 (2-3 أشهر)**: أطلق الـ Marketplace الكامل مع متاجر مسجلة، منيوهات، تتبع حي، لوحة تحكم التاجر. + +--- + +## 📊 ملخص ما نحتاجه + +### من ناحية تقنية + +| المكوّن | الجهد | الأولوية | +|:---|:---|:---| +| `deliveryDB` — قاعدة بيانات جديدة | متوسط | P0 | +| `order_server` — حاوية PHP جديدة لإدارة الطلبات | عالي | P0 | +| `socket_order` — WebSocket لتتبع الطلبات | متوسط | P0 | +| شاشات جديدة في `siro_rider` (Tab الطلبات) | عالي | P0 | +| شاشات جديدة في `siro_driver` (استقبال طلبات التوصيل) | متوسط | P0 | +| `merchant_dashboard` — لوحة تحكم التاجر (ويب) | عالي | P1 | +| شاشات جديدة في `siro_service` (دعم طلبات التوصيل) | منخفض | P2 | +| تطبيق موبايل للتاجر (اختياري) | عالي | P3 | + +### من ناحية تجارية + +| المتطلب | التفصيل | +|:---|:---| +| **اتفاقيات مع متاجر** | 20-30 متجر كحد أدنى للإطلاق | +| **تصوير المنيوهات** | فريق يصوّر ويدخل البيانات لأول 20-30 متجر | +| **تسعير التوصيل** | قرار: ثابت؟ حسب المسافة؟ مجاني فوق حد معين؟ | +| **تدريب السائقين** | كيف يتعامل مع الطلب (لا يفتح الأكياس، يتعامل بلطف مع التاجر) | +| **دعم فني** | فريق `siro_service` يحتاج تدريب على حل مشاكل التوصيل | + +### من ناحية بيانات + +| النوع | المصدر | الأولوية | +|:---|:---|:---| +| بيانات المطاعم والمتاجر | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 | +| قوائم الطعام (المنيو) | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 | +| صور الأصناف | فريق سيرو (تصوير احترافي) ← ثم التاجر بنفسه | P1 | +| مناطق التوصيل | تعريف تلقائي حسب المسافة من المتجر | P0 | +| ساعات العمل | التاجر يدخلها | P0 | + +--- + +## 💡 أفكار إضافية للتميّز + +1. **"اطلب لصديقك"**: اطلب طعام ووصّله لشخص ثاني (هدية) — ميزة عاطفية قوية +2. **طلب جماعي**: مجموعة أصدقاء يطلبون من نفس المطعم وكل واحد يدفع حصته +3. **جدولة الطلب**: "أريد الطلب يوصل الساعة 8 مساءً" — مثل Talabat Schedule +4. **تقييمات ذكية**: استخدام Gemini لتحليل التقييمات واستخراج نقاط القوة والضعف لكل مطعم +5. **عروض ذكية**: Gemini يقترح عروض حسب سلوك المستخدم ("عادة تطلب شاورما يوم الجمعة — خصم 20% اليوم!") +6. **Re-order**: "أعد نفس طلبك الأخير" بضغطة واحدة + +--- + +## 🚀 الخطط القادمة وخارطة التنفيذ — تسمية الخدمة والهيكلية الإستراتيجية + +### 🏷️ التسمية التجارية الرسمية للخدمة: **Siro Express | سيرو إكسبرس** + +تم اختيار اسم **Siro Express (سيرو إكسبرس)** ليكون المظلة الشاملة لخدمات التوصيل، ويندرج تحتها 3 أذرع متخصصة: + +1. **Siro Courier (سيرو كوريير / توصيل سريع)**: خدمة توصيل الطرود والوثائق والأغراض الشخصية بين نقطتين (Point-to-Point Delivery). +2. **Siro Eats (سيرو إيتس / طلب الطعام)**: خدمة تصفح المطاعم وطلب الوجبات. +3. **Siro Market (سيرو ماركت / البقالة والصيدلية)**: خدمة توصيل المستلزمات اليومية والأدوية. + +--- + +### 🗺️ خارطة الطريق التنفيذية (Phased Implementation Roadmap) + +
+ +```mermaid +timeline + title خارطة طريق إطلاق Siro Express + Phase 1 : Siro Courier (توصيل الأغراض) : إطلاق خدمة point-to-point خلال أسبوعين : اعتماد بنية GPS و Ride-Hailing الحالية + Phase 2 : Siro Eats (مطاعم البذرة) : إدخال أول 30 مطعم شهير : تفعيل order_server و deliveryDB + Phase 3 : Merchant Portal & Siro Market : إطلاق لوحة تحكم التجار : التوسع للبقالة والصيدليات + Phase 4 : AI & Prime Integration : ربط محرك التوصيات الذكي : دمجه مع اشتراكات Siro Prime +``` + +
+ +### 📑 التوثيق الفني والبرمجي للخطط القادمة (Developer & Architectural Documentation) + +#### 1. توثيق Phase 1: Siro Courier (توصيل أي شيء) +- **شاشة التطبيق**: تبويب "توصيل أغراض" في `siro_rider`. +- **المدخلات**: نقطة الاستلام (Pickup Lat/Lng), نقطة التسليم (Dropoff Lat/Lng), وصف الشحنة (Package Description), القيمة المجهزة إن وجدت (COD amount). +- **المنطق Backend**: استخدام نفس جدول الرحلات مع `ride_type = 'delivery_courier'`. + +#### 2. توثيق Phase 2: Siro Eats & Order Lifecycle API +- **مسارات API المجهزة في `order_server`**: + - `GET /v1/delivery/stores` - جلب المتاجر حسب النطاق الجغرافي. + - `GET /v1/delivery/stores/{id}/menu` - جلب المنيو والتصنيفات. + - `POST /v1/delivery/orders/create` - إنشاء طلب جديد وحجز المبلغ من Wallet. + - `POST /v1/delivery/merchant/orders/{id}/status` - تحديث حالة الطلب من التاجر. + - `WS /v1/delivery/ws/track/{order_id}` - قناة التتبع المباشر للطلب. + +#### 3. توثيق Phase 3: Merchant Portal & Dashboards +- **بنية Dashboard**: تطبيق web خفيف يبني على Vue/React أو HTML5 vanilla مع WebSockets متصلة بـ `socket_order` لإصدار صوت تنبيه فور ورود طلب جديد للمطعم. + +#### 4. توثيق Phase 4: Integration with Siro Prime & Gemini AI +- **Siro Prime**: إلغاء رسوم التوصيل لجميع الطلبات التي تتجاوز حداً أدنى معلناً. +- **Gemini AI Engine**: تحليل تفضيلات الزبون واقتراح وجبات مخصصة بناءً على التوقيت والموقع والطقس ورصيد المحفظة. + +
+ +> [!NOTE] +> **Bottom Line**: You don't need to build everything from scratch. ~80% of your infrastructure (drivers, tracking, payments, auth, notifications) is reusable. The new work is primarily: order management logic, merchant-facing tools, and new UI screens in the existing apps. Start with "deliver anything" courier mode for a quick win, then layer the full marketplace on top. diff --git a/marketing/i18n/ar.json b/marketing/i18n/ar.json new file mode 100644 index 0000000..a5ba370 --- /dev/null +++ b/marketing/i18n/ar.json @@ -0,0 +1,261 @@ +{ + "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.launch.n": "إطلاق", + "plan.launch.1": "تطبيقك الكامل على المتجرين — مدينة واحدة فقط", + "plan.launch.2": "لوحة تحكم + dispatch + خريطة حية", + "plan.launch.3": "محرك تعرفة كامل + حزمة بلدك", + "plan.launch.4": "دعم عربي مباشر + نشر المتجر علينا", + "plan.launch.cta": "ابدأ بإطلاقك", + "plan.growth.n": "نمو", + "plan.growth.0": "↳ كل مزايا إطلاق، إضافة إلى:", + "plan.growth.1": "ذكاء الأسطول مشمول مجاناً (قيمة $149)", + "plan.growth.2": "استخبارات التسعير مشمولة مجاناً (قيمة $249)", + "plan.growth.3": "حزمة النمو مشمولة مجاناً (قيمة $129)", + "plan.growth.4": "Dispatch متقدم + B2B + API + بلا سقف رحلات", + "plan.growth.cta": "احجز نموك", + "plan.sov.n": "سيادة", + "plan.sov.0": "↳ كل مزايا نمو، إضافة إلى:", + "plan.sov.1": "سيرفر معزول بالكامل داخل حدود دولتك", + "plan.sov.2": "واجهة تقارير للمنظّم + SLA 99.9%", + "plan.sov.3": "ضمان تصدير كامل + خيار Escrow", + "plan.sov.4": "★ المواصلات مشمولة بالكامل ($299/شهر)", + "plan.sov.cta": "كلّم فريق المؤسسات", + "price.gmvnote": "نِسب GMV تنازلية: كلما كبر حجم أعمالك، صغرت نسبتنا. (إطلاق: 2.5% حتى $50k · نمو: 2% حتى $200k · سيادة: 1%)", + "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": "المقاعد المتبقية", + "consent.t": "نقيس ما ينفعك — بعد إذنك", + "consent.d": "نستخدم قياساً إعلانياً لمعرفة أي إعلان أوصلك إلينا. لا نجمع اسمك ولا رقمك، ويمكنك الرفض والاستمرار في تصفّح الموقع كاملاً.", + "consent.yes": "أوافق", + "consent.no": "أرفض", + "addons.eyebrow": "قابلة للتركيب", + "addons.title": "ثلاث وحدات مدفوعة — لا أكثر", + "addons.lead": "الأمان والمدفوعات لا تُباع عندنا: مشمولة في كل باقة. ما يُباع هو ما يزيد أرباحك فعلاً.", + "addon.badge.now": "متاح الآن", + "addon.badge.soon": "قريباً الربع القادم", + "core.title": "مشمول في كل باقة — ولا يُباع كإضافة أبداً", + "core.lead": "مشغّل بلا زر طوارئ أو بلا بوابة دفع ليس منتجاً ناقصاً — هو منتج لا يعمل. لذلك لا نسعّر هذين.", + "core.i1.t": "الأمان والامتثال", + "core.i1.d": "زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق بالذكاء الاصطناعي · تقارير المنظّم", + "core.i2.t": "المدفوعات المحلية", + "core.i2.d": "PayMob · CliQ · سيرياتيل وMTN كاش · شام كاش · المحافظ وطلبات السحب", + "addons.m1.name": "حزمة الذكاء الاصطناعي", + "addons.m1.desc": "تدقيق الشكاوى آلياً، مستشار تشغيلي أسبوعي، تسوية المدفوعات من رسائل المزوّد — موظفك الذي لا ينام.", + "addons.m1.period": "/شهر", + "addons.m2.name": "استخبارات التسعير", + "addons.m2.desc": "محرّك إحصائي يستخرج معادلة تسعير سوقك ومرونة الطلب فيه، ويضبط تعرفتك عليها آلياً. تغيير 5% في السعر يغيّر أرباحك 30% — هذه الوحدة تقرّر الـ5% بالبيانات لا بالحدس.", + "addons.m2.period": "/شهر", + "addons.m2.setup": "إعداد $1,000 — ضبط السوق المحلي", + "addons.m3.name": "حزمة النمو", + "addons.m3.desc": "إعادة تنشيط الركاب الخاملين، حملات واتساب، تلعيب وتحديات وإحالات — راكب عاد أرخص 10 مرات من راكب جديد.", + "addons.m3.period": "/شهر", + "addons.note": "«ذكاء الأسطول» (الخريطة الحرارية والطلب التنبؤي وتقارير الصحة) مشمول مجاناً في باقة «نمو» و«سيادة» — لا يُباع منفصلاً.", + "transit.eyebrow": "خط منتج مستقل", + "transit.title": "المواصلات العامة — الباصات على نفس المنصة", + "transit.lead": "ليست إضافة على تطبيق تكسي. جمهورها مختلف كلياً، وتُشترى لأنك تدير شبكة نقل جماعي — بقمع بيع ومواصفات وعقد مستقلين.", + "transit.for1": "بلديات", + "transit.for2": "جامعات", + "transit.for3": "نقل موظفين", + "transit.for4": "مدارس", + "transit.f1": "خطوط ومواقيت وتتبّع مباشر لكل باص", + "transit.f2": "تسجيل ركاب ومشتركين واشتراكات شهرية", + "transit.f3": "تنبيه اقتراب الباص + بث للمجموعات", + "transit.f4": "لوحة مشرف مستقلة وتقارير الالتزام بالمواعيد", + "transit.period": "/شهر", + "transit.setup": "إعداد $2,500 — يشمل رسم الخطوط والمواقيت", + "transit.note": "مشمولة بالكامل في باقة «سيادة». تُضاف بسعرها فوق أي باقة أخرى.", + "transit.cta": "احجز عرضاً للمواصلات", + "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.m.yelow": "اشتراك شهري", + "land.m.vivo": "ترخيص كود لمرة واحدة", + "land.m.zoy": "اشتراك + الرحلة", + "land.m.cab": "سعر ثابت حسب حجم الأسطول", + "land.p.tripz": "من $0.02 · نسبة معلنة", + "land.p.onde": "$0.10+ · حد أدنى سرّي", + "land.p.zoy": "$0.10 بعد 600 رحلة", + "land.p.cabm": "حسب الأسطول", + "land.p.cab": "بدون عمولة", + "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": "صُمِّم للأسواق العربية والناشئة." +} diff --git a/marketing/i18n/en.json b/marketing/i18n/en.json new file mode 100644 index 0000000..8b96e04 --- /dev/null +++ b/marketing/i18n/en.json @@ -0,0 +1,261 @@ +{ + "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.launch.n": "Launch", + "plan.launch.1": "Your full app on both stores — one city only", + "plan.launch.2": "Admin panel + dispatch + live map", + "plan.launch.3": "Full tariff engine + your country pack", + "plan.launch.4": "Direct Arabic support + we handle store publishing", + "plan.launch.cta": "Start your launch", + "plan.growth.n": "Growth", + "plan.growth.0": "↳ Everything in Launch, plus:", + "plan.growth.1": "Fleet Intelligence included free ($149 value)", + "plan.growth.2": "Pricing Intelligence included free ($249 value)", + "plan.growth.3": "Growth Suite included free ($129 value)", + "plan.growth.4": "Advanced dispatch + B2B portal + API + no trip cap", + "plan.growth.cta": "Book your growth", + "plan.sov.n": "Sovereign", + "plan.sov.0": "↳ Everything in Growth, plus:", + "plan.sov.1": "Fully isolated server inside your own country", + "plan.sov.2": "Regulator interface + 99.9% SLA", + "plan.sov.3": "Full data export guarantee + Escrow option", + "plan.sov.4": "★ Transit fully included ($299/mo value)", + "plan.sov.cta": "Talk to enterprise", + "price.gmvnote": "Descending GMV rates: the bigger you get, the smaller our cut. (Launch: 2.5% up to $50k · Growth: 2% up to $200k · Sovereign: 1%)", + "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", + "consent.t": "We measure what helps you — with your permission", + "consent.d": "We use advertising measurement to learn which ad brought you here. We do not collect your name or number, and you can decline and still use the whole site.", + "consent.yes": "Accept", + "consent.no": "Decline", + "addons.eyebrow": "Composable", + "addons.title": "Three paid modules — and no more", + "addons.lead": "We don't sell safety or payments: they're in every plan. What we sell is what actually grows your margin.", + "addon.badge.now": "Available now", + "addon.badge.soon": "Coming next quarter", + "core.title": "In every plan — never sold as an add-on", + "core.lead": "An operator without a panic button or without a payment gateway isn't a lesser product — it's a product that doesn't work. So we don't price these.", + "core.i1.t": "Trust & Safety", + "core.i1.d": "Panic button · fraud detection · driver assurance · AI document verification · regulator reports", + "core.i2.t": "Local payments", + "core.i2.d": "PayMob · CliQ · SyriaTel & MTN Cash · Sham Cash · wallets and payout requests", + "addons.m1.name": "AI Suite", + "addons.m1.desc": "Automated complaint triage, weekly operations advisor, payment reconciliation from provider SMS — your employee who never sleeps.", + "addons.m1.period": "/month", + "addons.m2.name": "Pricing Intelligence", + "addons.m2.desc": "A statistical engine that derives your market's pricing formula and demand elasticity, then tunes your tariff to it automatically. A 5% price change moves profit by 30% — this module decides that 5% from data, not instinct.", + "addons.m2.period": "/month", + "addons.m2.setup": "Setup $1,000 — local market calibration", + "addons.m3.name": "Growth Suite", + "addons.m3.desc": "Re-engage idle riders, WhatsApp campaigns, gamification, challenges and referrals — a returning rider costs 10× less than a new one.", + "addons.m3.period": "/month", + "addons.note": "Fleet Intelligence (heatmap, predictive demand, health reports) is included free in the Growth and Sovereign plans — not sold separately.", + "transit.eyebrow": "A separate product line", + "transit.title": "Public transit — buses on the same platform", + "transit.lead": "Not an add-on to a taxi app. A completely different buyer, bought because you run a mass-transit network — with its own funnel, spec and contract.", + "transit.for1": "Municipalities", + "transit.for2": "Universities", + "transit.for3": "Staff transport", + "transit.for4": "Schools", + "transit.f1": "Lines, schedules and live tracking for every bus", + "transit.f2": "Rider and subscriber registration with monthly passes", + "transit.f3": "Bus-approaching alerts + group broadcasts", + "transit.f4": "Standalone supervisor dashboard and on-time reports", + "transit.period": "/month", + "transit.setup": "Setup $2,500 — includes route and schedule mapping", + "transit.note": "Fully included in the Sovereign plan. Added at list price on top of any other plan.", + "transit.cta": "Book a transit demo", + "cmp.eyebrow": "The honest comparison", + "cmp.title": "Tripz vs the alternatives", + "cmp.col.feature": "Criterion", + "cmp.col.other": "Competing platforms", + "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": "\u201cSiro\u201d 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": "\u201cWe didn\u2019t build a pitch deck; we built a company that works, then opened it to operators.\u201d", + "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." +} diff --git a/marketing/i18n/es.json b/marketing/i18n/es.json new file mode 100644 index 0000000..34815db --- /dev/null +++ b/marketing/i18n/es.json @@ -0,0 +1,261 @@ +{ + "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.launch.n": "Lanzamiento", + "plan.launch.1": "Tu app completa en ambas tiendas — una sola ciudad", + "plan.launch.2": "Panel admin + dispatch + mapa en vivo", + "plan.launch.3": "Motor tarifario completo + paquete país", + "plan.launch.4": "Soporte árabe directo + manejamos la publicación", + "plan.launch.cta": "Empezar tu lanzamiento", + "plan.growth.n": "Crecimiento", + "plan.growth.0": "↳ Todo Lanzamiento, más:", + "plan.growth.1": "Inteligencia de Flota incluida gratis ($149 de valor)", + "plan.growth.2": "Inteligencia de Precios incluida gratis ($249 de valor)", + "plan.growth.3": "Suite de Crecimiento incluida gratis ($129 de valor)", + "plan.growth.4": "Dispatch avanzado + B2B + API + sin límite de viajes", + "plan.growth.cta": "Reservar tu crecimiento", + "plan.sov.n": "Soberanía", + "plan.sov.0": "↳ Todo Crecimiento, más:", + "plan.sov.1": "Servidor completamente aislado en tu país", + "plan.sov.2": "Interfaz para el regulador + SLA 99,9%", + "plan.sov.3": "Garantía de exportación total + opción Escrow", + "plan.sov.4": "★ Transporte público totalmente incluido ($299/mes de valor)", + "plan.sov.cta": "Habla con empresas", + "price.gmvnote": "Tasas GMV decrecientes: cuanto más creces, menor es nuestra parte. (Lanzamiento: 2,5% hasta $50k · Crecimiento: 2% hasta $200k · Soberanía: 1%)", + "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", + "consent.t": "Medimos lo que te sirve — con tu permiso", + "consent.d": "Usamos medición publicitaria para saber qué anuncio te trajo aquí. No recogemos tu nombre ni tu número, y puedes rechazar y seguir usando todo el sitio.", + "consent.yes": "Aceptar", + "consent.no": "Rechazar", + "addons.eyebrow": "Modular", + "addons.title": "Tres módulos pagados — ni uno más", + "addons.lead": "No vendemos ni la seguridad ni los pagos: están en todos los planes. Lo que vendemos es lo que realmente aumenta tu margen.", + "addon.badge.now": "Disponible ahora", + "addon.badge.soon": "Próximamente este trimestre", + "core.title": "En todos los planes — nunca se vende como complemento", + "core.lead": "Un operador sin botón de pánico o sin pasarela de pago no es un producto incompleto — es un producto que no funciona. Por eso no los cobramos.", + "core.i1.t": "Confianza y Seguridad", + "core.i1.d": "Botón de pánico · detección de fraude · seguro del conductor · verificación de documentos con IA · reportes regulatorios", + "core.i2.t": "Pagos locales", + "core.i2.d": "PayMob · CliQ · SyriaTel y MTN Cash · Sham Cash · billeteras y solicitudes de retiro", + "addons.m1.name": "Suite de IA", + "addons.m1.desc": "Triaje automático de quejas, asesor operativo semanal, conciliación de pagos desde SMS del proveedor — tu empleado que nunca duerme.", + "addons.m1.period": "/mes", + "addons.m2.name": "Inteligencia de Precios", + "addons.m2.desc": "Un motor estadístico que extrae la fórmula de precios de tu mercado y su elasticidad de demanda, y ajusta tu tarifa automáticamente. Un cambio del 5% en el precio mueve el 30% del beneficio — este módulo decide ese 5% con datos, no por intuición.", + "addons.m2.period": "/mes", + "addons.m2.setup": "Configuración $1.000 — calibración del mercado local", + "addons.m3.name": "Suite de Crecimiento", + "addons.m3.desc": "Reactivación de pasajeros inactivos, campañas WhatsApp, gamificación, desafíos y referidos — un pasajero que vuelve cuesta 10× menos que uno nuevo.", + "addons.m3.period": "/mes", + "addons.note": "Inteligencia de Flota (mapa de calor, demanda predictiva, informes de salud) está incluida gratis en los planes Crecimiento y Soberanía — no se vende por separado.", + "transit.eyebrow": "Línea de producto independiente", + "transit.title": "Transporte público — autobuses en la misma plataforma", + "transit.lead": "No es un complemento de una app de taxi. Un comprador completamente distinto, que compra porque opera una red de transporte masivo — con su propio embudo, especificación y contrato.", + "transit.for1": "Municipios", + "transit.for2": "Universidades", + "transit.for3": "Transporte de personal", + "transit.for4": "Colegios", + "transit.f1": "Líneas, horarios y seguimiento en vivo de cada autobús", + "transit.f2": "Registro de pasajeros y abonados con pases mensuales", + "transit.f3": "Alertas de proximidad del autobús + difusión a grupos", + "transit.f4": "Panel de supervisor independiente e informes de puntualidad", + "transit.period": "/mes", + "transit.setup": "Configuración $2.500 — incluye trazado de rutas y horarios", + "transit.note": "Totalmente incluido en el plan Soberanía. Se añade a precio de lista sobre cualquier otro plan.", + "transit.cta": "Reservar demo de transporte", + "cmp.eyebrow": "La comparación honesta", + "cmp.title": "Tripz frente a las alternativas", + "cmp.col.feature": "Criterio", + "cmp.col.other": "Plataformas competidoras", + "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": "\u00abSiro\u00bb 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": "\u00abNo hicimos un pitch deck; construimos una empresa que funciona y luego la abrimos a los operadores.\u00bb", + "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." +} diff --git a/marketing/i18n/fr.json b/marketing/i18n/fr.json new file mode 100644 index 0000000..4b53937 --- /dev/null +++ b/marketing/i18n/fr.json @@ -0,0 +1,261 @@ +{ + "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.launch.n": "Lancement", + "plan.launch.1": "Votre appli complète sur les deux stores — une seule ville", + "plan.launch.2": "Panneau admin + dispatch + carte en direct", + "plan.launch.3": "Moteur tarifaire complet + pack pays", + "plan.launch.4": "Support arabe direct + on gère la publication", + "plan.launch.cta": "Commencer votre lancement", + "plan.growth.n": "Croissance", + "plan.growth.0": "↳ Tout Lancement, plus :", + "plan.growth.1": "Renseignements Flotte inclus (valeur 149 $)", + "plan.growth.2": "Renseignements Tarifaires inclus (valeur 249 $)", + "plan.growth.3": "Suite Croissance incluse (valeur 129 $)", + "plan.growth.4": "Dispatch avancé + B2B + API + sans plafond", + "plan.growth.cta": "Réserver votre croissance", + "plan.sov.n": "Souveraineté", + "plan.sov.0": "↳ Tout Croissance, plus :", + "plan.sov.1": "Serveur entièrement isolé dans votre pays", + "plan.sov.2": "Interface régulateur + SLA 99,9%", + "plan.sov.3": "Export complet garanti + Escrow", + "plan.sov.4": "★ Transport public entièrement inclus (299 $/mois)", + "plan.sov.cta": "Contacter les entreprises", + "price.gmvnote": "Taux GMV dégressifs : plus vous grandissez, plus notre part diminue. (Lancement : 2,5% jusqu'à 50k$ · Croissance : 2% jusqu'à 200k$ · Souveraineté : 1%)", + "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", + "consent.t": "Nous mesurons ce qui vous sert — avec votre accord", + "consent.d": "Nous utilisons une mesure publicitaire pour savoir quelle annonce vous a amené ici. Nous ne collectons ni votre nom ni votre numéro, et vous pouvez refuser tout en utilisant l'intégralité du site.", + "consent.yes": "Accepter", + "consent.no": "Refuser", + "addons.eyebrow": "Composable", + "addons.title": "Trois modules payants — pas un de plus", + "addons.lead": "Nous ne vendons ni la sécurité ni les paiements : ils sont dans chaque forfait. Ce que nous vendons, c'est ce qui augmente réellement votre marge.", + "addon.badge.now": "Disponible maintenant", + "addon.badge.soon": "Prochainement ce trimestre", + "core.title": "Dans chaque forfait — jamais vendu en option", + "core.lead": "Un opérateur sans bouton d'urgence ou sans passerelle de paiement n'est pas un produit incomplet — c'est un produit qui ne fonctionne pas. Nous ne les facturons donc pas.", + "core.i1.t": "Confiance & Sécurité", + "core.i1.d": "Bouton d'urgence · détection des fraudes · assurance chauffeur · vérification IA des documents · rapports régulateur", + "core.i2.t": "Paiements locaux", + "core.i2.d": "PayMob · CliQ · SyriaTel et MTN Cash · Sham Cash · portefeuilles et demandes de retrait", + "addons.m1.name": "Suite IA", + "addons.m1.desc": "Tri automatique des plaintes, conseiller opérationnel hebdomadaire, rapprochement des paiements depuis les SMS opérateur — votre employé qui ne dort jamais.", + "addons.m1.period": "/mois", + "addons.m2.name": "Renseignements Tarifaires", + "addons.m2.desc": "Un moteur statistique qui extrait la formule tarifaire de votre marché et son élasticité de la demande, puis aligne votre tarif automatiquement. 5% de variation de prix déplacent 30% du profit — ce module décide ces 5% par les données, pas à l'instinct.", + "addons.m2.period": "/mois", + "addons.m2.setup": "Mise en place 1 000 $ — calibrage du marché local", + "addons.m3.name": "Suite Croissance", + "addons.m3.desc": "Réactivation des passagers inactifs, campagnes WhatsApp, gamification, défis et parrainages — un passager qui revient coûte 10× moins cher qu'un nouveau.", + "addons.m3.period": "/mois", + "addons.note": "Renseignements Flotte (carte thermique, demande prédictive, rapports de santé) est inclus gratuitement dans les forfaits Croissance et Souveraineté — pas vendu séparément.", + "transit.eyebrow": "Une ligne de produit distincte", + "transit.title": "Transport public — les bus sur la même plateforme", + "transit.lead": "Pas une option d'une app de taxi. Un acheteur totalement différent, qui achète parce qu'il exploite un réseau de transport collectif — avec son propre tunnel, cahier des charges et contrat.", + "transit.for1": "Municipalités", + "transit.for2": "Universités", + "transit.for3": "Transport du personnel", + "transit.for4": "Écoles", + "transit.f1": "Lignes, horaires et suivi en direct de chaque bus", + "transit.f2": "Inscription des passagers et abonnés avec abonnements mensuels", + "transit.f3": "Alertes d'approche du bus + diffusions de groupe", + "transit.f4": "Tableau de bord superviseur autonome et rapports de ponctualité", + "transit.period": "/mois", + "transit.setup": "Mise en place 2 500 $ — comprend le tracé des lignes et horaires", + "transit.note": "Entièrement inclus dans le forfait Souveraineté. Ajouté au prix courant sur tout autre forfait.", + "transit.cta": "Réserver une démo transport", + "cmp.eyebrow": "La comparaison honnête", + "cmp.title": "Tripz face aux alternatives", + "cmp.col.feature": "Critère", + "cmp.col.other": "Concurrents", + "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": "\u00ab Siro \u00bb 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": "\u00ab Nous n'avons pas fait un pitch deck ; nous avons bâti une société qui fonctionne, puis l'avons ouverte aux opérateurs. \u00bb", + "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." +} diff --git a/marketing/i18n/tr.json b/marketing/i18n/tr.json new file mode 100644 index 0000000..1c519c1 --- /dev/null +++ b/marketing/i18n/tr.json @@ -0,0 +1,261 @@ +{ + "nav.product": "Ürün", + "nav.addons": "Eklentiler", + "nav.savings": "Tasarruf Hesaplayıcı", + "nav.pricing": "Fiyatlandırma", + "nav.how": "Nasıl başlıyoruz", + "nav.faq": "SSS", + "nav.demo": "Demoyu dene", + "hero.title": "Uygulamanızı [kendi markanızla] başlatın — 30 gün içinde canlıya geçin, verileriniz sizin kalır.", + "hero.sub": "Her iki mağazada yolcu ve sürücü uygulamaları, yönetim paneli ve sevk sistemi — fiyatlandırma burada kamuya açık ve verilerinizi istediğiniz zaman dışa aktarma garantisi veren bir sözleşmeyle.", + "hero.cta1": "Canlı demoyu deneyin", + "hero.cta2": "WhatsApp'tan bize ulaşın", + "hero.trust": "Kredi kartı gerekmez · Anında demo, satış çağrısı yok", + "hero.scroll": "Daha fazlasını keşfedin", + "ph.rider.eta": "Varış süresi", + "ph.min": "dk", + "ph.rider.class": "Ekonomi", + "ph.rider.chip": "Rezervasyon öncesi onaylı fiyat", + "ph.rider.btn": "Şimdi iste", + "ph.driver.today": "Bugünkü kazançlar", + "ph.driver.new": "Yeni talep", + "ph.driver.fare": "Ücret", + "ph.driver.accept": "Kabul et", + "stat.since": "Gerçek seferler işletiyor", + "stat.min": "Sefer başı taban — sınıfının en düşüğü", + "stat.days": "gün", + "stat.launch": "sözleşmeden her iki mağazaya", + "stat.lang": "dil, doğru RTL desteği", + "pillars.eyebrow": "Neden Tripz", + "pillars.title": "Mevcut rakibin acı veren her şeyinin tersi", + "pillars.lead": "Pazardaki üç açığı sözleşmenize yazılmış taahhütlere dönüştürdük.", + "pillars.p1.t": "Verileriniz, egemenliğiniz", + "pillars.p1.d": "İstediğiniz zaman tam dışa aktarma, sözleşmede 60 günlük geçiş dönemi ve ülkeniz içinde barındırma seçeneği.", + "pillars.p2.t": "Sürprizsiz maliyet", + "pillars.p2.d": "Oran burada fiyatlandırma sayfasında kamuya açıktır. Gizli harita faturası veya $0.10 tabanı yoktur.", + "pillars.p3.t": "Düşünmek için çok hızlı", + "pillars.p3.d": "2019'dan beri gerçek seferler çalıştıran kanıtlanmış bir sistem — sıfırdan inşa etmiyoruz: markanızı giydiriyoruz ve 30 günde başlatıyoruz.", + "brands.eyebrow": "Bugün işlettiğimiz markalar", + "brands.title": "Aynı platform, farklı markalar — sizinkinin tam olarak nasıl görüneceği", + "brands.siro": "Siro — Mısır ve Ürdün", + "brands.intalaq": "Intalaq — Suriye", + "brands.next": "Sıradaki markanız", + "brands.note": "Her marka, aynı motor üzerinde tamamen bağımsız bir uygulama ve yönetim kimliği alır.", + "prod.eyebrow": "Platform", + "prod.title": "Dört bileşen, tek sistem", + "prod.tab.rider": "Yolcu uygulaması", + "prod.tab.driver": "Sürücü uygulaması", + "prod.tab.dispatch": "Sevk paneli", + "prod.tab.hub": "My Hub", + "prod.rider.h": "İste, fiyatı gör, takip et", + "prod.rider.1": "Onay öncesi kategori bazlı fiyat teklifi ile istek", + "prod.rider.2": "Sefer sırasında canlı sürücü takibi", + "prod.rider.3": "Nakit ödeme ve e-cüzdan", + "prod.rider.m1": "Onaylı fiyat", + "prod.rider.m2": "Varış süresi", + "prod.driver.h": "Cüzdan, abonelikler, canlı kazançlar", + "prod.driver.1": "Cüzdan ve esnek abonelikler (90 / 180 / 360 gün)", + "prod.driver.2": "Mesafe ve ücretli net talep haritası", + "prod.driver.3": "Canlı kazançlar ve sefer geçmişi", + "prod.driver.m1": "Bugünkü kazançlar", + "prod.driver.m2": "Abonelik", + "prod.driver.m3": "Sonraki talep", + "prod.dispatch.h": "Manuel ve otomatik atama, canlı harita", + "prod.dispatch.1": "Talepleri manuel veya otomatik olarak atayın", + "prod.dispatch.2": "Her aracın canlı filo haritası", + "prod.dispatch.3": "Uygulamasız yolcular için telefon rezervasyonları", + "prod.dispatch.m1": "Aktif araçlar", + "prod.hub.h": "Tarifeler, raporlar, sürücüler", + "prod.hub.1": "Kategoriler ve zaman aralıklarıyla tam motor sistemi", + "prod.hub.2": "Tamamen şeffaf raporlar ve finans", + "prod.hub.3": "Yapay zeka doğrulamalı sürücü ve belge yönetimi", + "prod.hub.m1": "Aylık seferler", + "prod.hub.m2": "Toplam GMV", + "calc.eyebrow": "Sessiz satış aracı", + "calc.title": "Tripz ile ne kadar tasarruf edersiniz? Hesaplayın.", + "calc.lead": "Günlük seferlerinizi ve ortalama ücretinizi ayarlayın — faturamızı anında %15 komisyon modeli ve mevcut rakibin tabanıyla karşılaştırın.", + "calc.trips": "Günlük sefer sayısı", + "calc.fare": "Ortalama ücret", + "calc.currency": "Para birimi", + "calc.plan": "Paket", + "calc.r.tripz": "Tripz aylık faturası", + "calc.r.commission": "%15 komisyon modeli", + "calc.r.floor": "$0.10/sefer tabanlı model", + "calc.r.savecap": "Tripz ile yıllık tasarrufunuz", + "calc.r.send": "Bu hesabı WhatsApp'tan bize gönderin", + "how.eyebrow": "Başlangıç yolculuğu", + "how.title": "Sözleşmeden her iki mağazaya 30 günde", + "how.lead": "Beş açık aşama, doğrudan gözetimimiz altında, eski bir sistemden geçiyorsanız sıfır kesintiyle.", + "how.s1.d": "Gün 1–3", + "how.s1.t": "Kapsam belirleme", + "how.s1.p": "Şehrinizi, kategorileri, tarifeyi, dilleri ve para birimlerini birlikte tanımlıyoruz.", + "how.s2.d": "Gün 4–7", + "how.s2.t": "Varlıklar ve lisanslar", + "how.s2.p": "Logoyu, renkleri ve geliştirici hesaplarını gönderirsiniz; görsel kimliği biz hazırlarız.", + "how.s3.d": "Gün 8–14", + "how.s3.t": "İnşa ve göç", + "how.s3.p": "Örneğinizi inşa eder, ödemeyi ve SMS'i bağlar, sürücülerinizi ve bakiyelerinizi kesintisiz olarak taşırız.", + "how.s4.d": "Gün 15–21", + "how.s4.t": "Saha testi", + "how.s4.p": "TestFlight ve Beta kanalına dağıtılır ve sizinle sahada test edilir.", + "how.s5.d": "Gün 22–30", + "how.s5.t": "Canlıya geçiş", + "how.s5.p": "Mağaza incelemesi ve onayı, ardından doğrudan gözetimimiz altında canlıya geçiş.", + "price.eyebrow": "Tamamen kamuya açık fiyatlandırma", + "price.title": "Evet — tüm fiyatlarımız burada. Kamuya açık olarak.", + "price.lead": "Eksiksiz bir fiyatlandırma sayfası, belirsizlik üzerine kurulmuş bir pazarda zaten bir farklılaştırıcıdır. Paketinizi seçin, istediğiniz zaman yükseltin.", + "price.monthly": "Aylık", + "price.yearly": "Yıllık", + "price.save15": "%15 tasarruf edin", + "plan.setup": "Kurulum:", + "plan.popular": "En çok tercih edilen", + "plan.launch.n": "Lansman", + "plan.launch.1": "Her iki mağazada tam uygulamanız — yalnızca bir şehir", + "plan.launch.2": "Yönetim paneli + sevk + canlı harita", + "plan.launch.3": "Tam motor sistemi + ülke paketiniz", + "plan.launch.4": "Doğrudan Arapça destek + mağaza yayını bizde", + "plan.launch.cta": "Lansmanınızı başlatın", + "plan.growth.n": "Büyüme", + "plan.growth.0": "↳ Lansman'daki her şey, artı:", + "plan.growth.1": "Filo Zekası ücretsiz dahil ($149 değer)", + "plan.growth.2": "Fiyatlandırma Zekası ücretsiz dahil ($249 değer)", + "plan.growth.3": "Büyüme Paketi ücretsiz dahil ($129 değer)", + "plan.growth.4": "Gelişmiş sevk + B2B portalı + API + sefer sınırı yok", + "plan.growth.cta": "Büyümeyi ayırtın", + "plan.sov.n": "Sovereign", + "plan.sov.0": "↳ Büyüme'deki her şey, artı:", + "plan.sov.1": "Kendi ülkeniz içinde tamamen izole sunucu", + "plan.sov.2": "Düzenleyici arayüzü + %99,9 SLA", + "plan.sov.3": "Tam veri dışa aktarma garantisi + Escrow seçeneği", + "plan.sov.4": "★ Toplu taşıma tamamen dahil ($299/ay değer)", + "plan.sov.cta": "Kurumsal ekiple konuşun", + "price.gmvnote": "Azalan GMV oranları: büyüdükçe bizim payımız küçülür. (Lansman: %2,5 $50k'ya kadar · Büyüme: %2 $200k'ya kadar · Sovereign: %1)", + "price.c1.t": "Kamuya açık oran", + "price.c1.d": "Sözleşmede yazılı ve sabitlenmiş — sürpriz yok.", + "price.c2.t": "Verilerinizi dışa aktarın", + "price.c2.d": "Tüm verileriniz, istediğiniz zaman dışa aktarılabilir.", + "price.c3.t": "Zarif çıkış", + "price.c3.d": "Ayrılırsanız: anında kesinti yerine 60 günlük geçiş.", + "price.founder.t": "Kurucu Ortak programı", + "price.founder.d": "İlk 3 operatör: yıllık +1 puan karşılığında ücretsiz kurulum + adınıza vaka analizi.", + "price.founder.seats": "Kalan kontenjan", + "consent.t": "Size yardımcı olanı ölçüyoruz — izninizle", + "consent.d": "Hangi reklamın sizi buraya getirdiğini öğrenmek için reklam ölçümü kullanıyoruz. Adınızı veya numaranızı toplamıyoruz, reddetseniz bile siteyi tam olarak kullanmaya devam edebilirsiniz.", + "consent.yes": "Kabul et", + "consent.no": "Reddet", + "addons.eyebrow": "Modüler", + "addons.title": "Üç ücretli modül — ve daha fazlası yok", + "addons.lead": "Güvenliği veya ödemeleri satmıyoruz: her pakete dahildir. Sattığımız şey, gerçekten kârınızı artıran şeydir.", + "addon.badge.now": "Şu anda mevcut", + "addon.badge.soon": "Gelecek çeyrek geliyor", + "core.title": "Her pakette — hiçbir zaman eklenti olarak satılmaz", + "core.lead": "Acil durum düğmesi veya ödeme geçidi olmayan bir operatör eksik bir ürün değil — çalışmayan bir üründür. Bu yüzden bunları fiyatlandırmıyoruz.", + "core.i1.t": "Güvenilirlik ve Emniyet", + "core.i1.d": "Acil durum düğmesi · dolandırıcılık tespiti · sürücü sigortası · yapay zeka belge doğrulama · düzenleyici raporlar", + "core.i2.t": "Yerel ödemeler", + "core.i2.d": "PayMob · CliQ · SyriaTel ve MTN Cash · Sham Cash · cüzdanlar ve ödeme talepleri", + "addons.m1.name": "Yapay Zeka Paketi", + "addons.m1.desc": "Otomatik şikayet triyajı, haftalık operasyon danışmanı, sağlayıcı SMS'lerinden ödeme mutabakatı — asla uyumayan çalışanınız.", + "addons.m1.period": "/ay", + "addons.m2.name": "Fiyatlandırma Zekası", + "addons.m2.desc": "Pazarınızın fiyatlandırma formülünü ve talep esnekliğini çıkaran istatistiksel bir motor, ardından tarifenizi otomatik olarak buna göre ayarlar. Fiyatta %5'lik bir değişiklik kârı %30 hareket ettirir — bu modül o %5'i veriye dayalı olarak, içgüdüyle değil karar verir.", + "addons.m2.period": "/ay", + "addons.m2.setup": "Kurulum $1,000 — yerel pazar kalibrasyonu", + "addons.m3.name": "Büyüme Paketi", + "addons.m3.desc": "Boşta kalan yolcuları yeniden etkinleştirin, WhatsApp kampanyaları, oyunlaştırma, meydan okumalar ve yönlendirmeler — geri dönen bir yolcu, yeni bir yolcudan 10 kat daha ucuza mal olur.", + "addons.m3.period": "/ay", + "addons.note": "Filo Zekası (ısı haritası, tahmine dayalı talep, sağlık raporları) Büyüme ve Sovereign paketlerinde ücretsiz olarak dahildir — ayrıca satılmaz.", + "transit.eyebrow": "Ayrı bir ürün hattı", + "transit.title": "Toplu taşıma — aynı platformda otobüsler", + "transit.lead": "Bir taksi uygulamasına eklenti değil. Tamamen farklı bir alıcı, toplu taşıma ağı işlettiğiniz için satın alır — kendi hunisi, teknik şartnamesi ve sözleşmesiyle.", + "transit.for1": "Belediyeler", + "transit.for2": "Üniversiteler", + "transit.for3": "Personel taşımacılığı", + "transit.for4": "Okullar", + "transit.f1": "Her otobüs için hatlar, tarifeler ve canlı takip", + "transit.f2": "Aylık biletli yolcu ve abone kaydı", + "transit.f3": "Otobüs yaklaşma uyarıları + grup yayınları", + "transit.f4": "Bağımsız denetleyici panosu ve zamanında raporlama", + "transit.period": "/ay", + "transit.setup": "Kurulum $2,500 — hat ve tarife haritalamayı içerir", + "transit.note": "Sovereign paketinde tamamen dahildir. Herhangi bir diğer paketin üzerine liste fiyatıyla eklenir.", + "transit.cta": "Toplu taşıma demosu ayırtın", + "cmp.eyebrow": "Dürüst karşılaştırma", + "cmp.title": "Tripz rakiplere karşı", + "cmp.col.feature": "Kriter", + "cmp.col.other": "Rakip platformlar", + "cmp.col.custom": "Özel geliştirme", + "cmp.badge": "En iyi değer", + "land.eyebrow": "Pazarın durumu", + "land.title": "Sektörün fiyatlandırma manzarası", + "land.lead": "Küresel ulaşım platformlarının kendi sitelerinden kamuya açık fiyatları — Tripz en şeffaf ve sefer başı tabanı en düşüğü olarak.", + "land.col.platform": "Platform", + "land.col.model": "Model", + "land.col.setup": "Kurulum", + "land.col.monthly": "Aylık", + "land.col.pertrip": "Sefer başı", + "land.m.tripz": "Tamamen kamuya açık ve yayınlanmış", + "land.m.onde": "Hibrit + şeffaf olmayan", + "land.m.yelow": "Aylık abonelik", + "land.m.vivo": "Tek seferlik kod lisansı", + "land.m.zoy": "Abonelik + sefer başı", + "land.m.cab": "Filo boyutuna göre sabit", + "land.p.tripz": "$0.02'den başlar · oran yayınlanmış", + "land.p.onde": "$0.10 · gizli oran", + "land.p.zoy": "600 sefer sonra $0.10", + "land.p.cabm": "Filoya göre", + "land.p.cab": "Komisyon yok", + "land.note": "Her sağlayıcının kamuya açık sayfalarından gelen rakamlar (2026), değişikliğe tabidir. Tripz, tam oranını yayınlayan tek platformdur.", + "cmp.r1": "Başlangıç maliyeti", + "cmp.r2": "Canlıya geçiş süresi", + "cmp.r2.us": "30 gün", + "cmp.r2.on": "Hafta–ay", + "cmp.r2.cu": "9–18 ay", + "cmp.r3": "Sefer başı taban", + "cmp.r4": "Oran kamuya açık mı?", + "cmp.r5": "Sözleşmede veri dışa aktarma garantisi", + "cmp.r6": "Ülkeniz içinde barındırma", + "cmp.r6.us": "✓ Sovereign", + "cmp.r7": "Doğru Arapça destek", + "cmp.r7.on": "Kısmi", + "cmp.r7.cu": "Geliştiriciye bağlı", + "case.eyebrow": "Vaka analizi", + "case.title": "Başkalarına satmadan önce kendi şirketimizde çalıştırdık", + "case.p1": "\u201cSiro\u201d, 2019'dan beri bizim bizzat piyasada işlettiğimiz ulaşım uygulamasıdır. Tripz'teki her özellik gerçek operasyonlardan, beyaz tahtadan değil, gelmiştir.", + "case.p2": "Her operatörün kendi markası altında aynı — savaş testinden geçmiş — sisteme sahip olması için çok kiracılı bir bulut platformuna dönüştürdük. Bugün Kahire, İskenderiye ve Şam\u2019da çalışıyor.", + "case.s1": "sefer/ay", + "case.s2": "aktif sürücü", + "case.s3": "şehir", + "case.quote": "\u201cBir pitch deck\u2019i biz yapmadık; çalışan bir şirket kurduk, sonra operatörlere açtık.\u201d", + "case.who": "— Kurucu, Tripz", + "case.d1": "Aylık seferler", + "case.d2": "Toplam GMV", + "case.d3": "Etkin oran", + "case.d4": "Canlı şehirler", + "sec.title": "Dünya standartlarında güvenlik, net uyumluluk", + "sec.b1": "PCI DSS ortakları üzerinden ödemeler (Paymob) — kartımızdan sunucularımıza geçmez", + "sec.b2": "Tam TLS şifreleme", + "sec.b3": "Günlük yedekleme", + "sec.b4": "Net veri işleme anlaşaması", + "faq.eyebrow": "Dürüst cevaplar", + "faq.title": "Diğerlerinin kaçırdığı sorular", + "final.title": "Şehriniz uygulamasını bekliyor. Bugün başlayın.", + "demo.lead": "Bu bir pitch değil — bunlar gerçek Tripz uygulamaları, her iki mağazada şu anda canlı.", + "demo.rider": "Yolcu uygulaması", + "demo.driver": "Sürücü uygulaması", + "demo.appstore": "App Store", + "demo.googleplay": "Google Play", + "foot.tag": "Ulaşım SaaS\u2019ı — uygulamanızı kendi markanızla başlatın, verileriniz sizin kalır.", + "foot.product": "Ürün", + "foot.solutions": "Çözümler", + "foot.fleets": "Taksi ofisleri ve filolar", + "foot.startups": "Girişimciler ve gelişen pazarlar", + "foot.resources": "Kaynaklar", + "foot.case": "Vaka analizi", + "foot.legal": "Yasal", + "foot.privacy": "Gizlilik", + "foot.terms": "Koşullar", + "foot.dpa": "Veri İşleme Anlaşması", + "foot.rights": "Tüm hakları saklıdır.", + "foot.built": "Arapça ve gelişen pazarlar için tasarlanmıştır." +} diff --git a/marketing/index.html b/marketing/index.html index 0f5f1c7..a97e4df 100644 --- a/marketing/index.html +++ b/marketing/index.html @@ -3,765 +3,23 @@ -Tripz — أطلق تطبيق النقل بعلامتك التجارية +Tripz — أطلق تطبيق النقل بعلامتك التجارية + - + + + + + @@ -792,6 +50,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t + + + + + + جرّب الديمو @@ -855,7 +121,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t -
إطلاق منصتك خلال 30 يوماً
+
إطلاق منصتك خلال 30 يوماً
@@ -906,7 +172,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
-
عقد تصدير كود وبيانات مكتوب
+
عقد تصدير كود وبيانات مكتوب

بياناتك سيادتك

@@ -924,7 +190,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
-
أسعار معلنة وحاسبة توفير فائقة
+
أسعار معلنة وحاسبة توفير فائقة
@@ -934,7 +200,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
-
إطلاق جاهز خلال 30 يوماً
+
إطلاق جاهز خلال 30 يوماً

أسرع من أن تتردد

@@ -956,7 +222,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
Tripz - Tripz — العلامة الرئيسية + Tripz — العلامة الرئيسية
Siro @@ -1092,9 +358,8 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
@@ -1147,51 +412,35 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
- +
-

-
$169/mo
-
$2,500
- GMV 3.5% · min $0.05 -
    -
  • ✓
  • -
  • ✓
  • -
  • ✓
  • -
  • ✓
  • -
- -
- - - -
-

+ +
@@ -1338,7 +587,7 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t Tripz - $2,500–13,500$4,500–23,000$150k–500k + $4,900–13,500$4,500–23,000$150k–500k $0.02–0.05$0.10— ✓✕— @@ -1372,21 +621,21 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t Tripz - $2,500–13,500$169–879 + $4,900–13,500$349–879 - المنصات الأجنبية المنافسة + المنصات الأجنبية المنافسة $4,500–23,000 $299–1,500 - التطوير المخصص من الصفر - كود مخصص مستقل + التطوير المخصص من الصفر + كود مخصص مستقل $150,000–500,000 - صيانة وسيرفرات مستقلة - — (تكلفة رأس مال ضخمة) + صيانة وسيرفرات مستقلة + — (تكلفة رأس مال ضخمة) @@ -1517,658 +766,10 @@ footer{background:var(--midnight-900);color:#8A99C2;padding:64px 0 32px;border-t
- + + + + diff --git a/marketing/js/analytics.js b/marketing/js/analytics.js new file mode 100644 index 0000000..09f6507 --- /dev/null +++ b/marketing/js/analytics.js @@ -0,0 +1,132 @@ +/* ============ MEASUREMENT (consent-gated) ============ ------------------ + ⚠️ ضع معرّف البكسل هنا قبل أول دولار إعلاني. ما دام فارغاً لا يُحمَّل شيء. + الأحداث تُسجَّل محلياً دائماً (بلا كوكيز وبلا بيانات شخصية) وتُرسل لميتا + فقط بعد موافقة صريحة — مطلوب لزوّار الاتحاد الأوروبي (الموقع بالفرنسية + والإسبانية). تعريف الأحداث وربطها بأهداف CAC في docs/32 §5. */ +const PIXEL_ID = "1360167306316901"; +const CAPI_TOKEN = "EAAOFgSTx7pUBSGsw30ZBnx40yTbFJSFW3iZCEf0bHqEai6wZAxDsZCD89VsAtWtvytneZAVECx2EH3s4XM9kIN8dcAC8e9gogk4bzAdAZBuaLPtVZC8ZAe66SCu4ptZCZCAPVLSPD0LBU26Ac0QeX0ILf5dh4uFHKrM8ZCtU2ZCjYlMaM9xULe1ou5GUv8SxyYWLugZDZD"; +const CONSENT_KEY = "tripz_consent"; + +const Track = (() => { + const local = []; + let pixelReady = false; + const standardEvents = new Set(["PageView", "Lead", "Contact", "ViewContent", "Schedule"]); + + function sendCAPI(eventName, params = {}){ + if (!CAPI_TOKEN || !PIXEL_ID) return; + try { + const payload = { + data: [{ + event_name: eventName, + event_time: Math.floor(Date.now() / 1000), + event_source_url: location.href, + action_source: "website", + user_data: { + client_user_agent: navigator.userAgent + }, + custom_data: params + }] + }; + fetch(`https://graph.facebook.com/v19.0/${PIXEL_ID}/events?access_token=${CAPI_TOKEN}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload) + }).catch(()=>{}); + } catch(e){} + } + + function loadPixel(){ + if (pixelReady || !PIXEL_ID) return; + pixelReady = true; + /* Meta Pixel base */ + !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? + n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; + n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; + t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)} + (window,document,'script','https://connect.facebook.net/en_US/fbevents.js'); + fbq('init', PIXEL_ID); + fbq('track', 'PageView'); + sendCAPI('PageView'); + local.forEach(([n,p]) => { + if (standardEvents.has(n)) fbq('track', n, p); + else fbq('trackCustom', n, p); + sendCAPI(n, p); + }); + } + + function consented(){ return localStorage.getItem(CONSENT_KEY) !== "no"; } + + return { + init(){ if (consented()) loadPixel(); }, + grant(){ localStorage.setItem(CONSENT_KEY,"yes"); loadPixel(); }, + deny(){ localStorage.setItem(CONSENT_KEY,"no"); }, + ev(name, params = {}){ + const p = Object.assign({ lang: document.documentElement.lang }, params); + local.push([name, p]); + if (pixelReady && window.fbq) { + if (standardEvents.has(name)) fbq('track', name, p); + else fbq('trackCustom', name, p); + } + sendCAPI(name, p); + if (location.protocol === "file:") console.debug("[track]", name, p); + }, + seen: new Set() + }; +})(); + +/* شريط الموافقة */ +(function(){ + const box = document.getElementById("consent"); + if (!box) return; + if (!localStorage.getItem(CONSENT_KEY)) setTimeout(()=>box.classList.add("show"), 1600); + document.getElementById("consentYes").onclick = () => { Track.grant(); box.classList.remove("show"); Track.ev("ConsentGranted"); }; + document.getElementById("consentNo").onclick = () => { Track.deny(); box.classList.remove("show"); }; + Track.init(); +})(); + +/* أحداث القمع — مطابقة لأهداف CAC في docs/32 */ +(function(){ + // عمق التصفّح: أي قسم وصله الزائر + const secs = document.querySelectorAll("section[id]"); + if ("IntersectionObserver" in window){ + const io = new IntersectionObserver(es => es.forEach(e => { + if (e.isIntersecting && !Track.seen.has(e.target.id)){ + Track.seen.add(e.target.id); + Track.ev("SectionView", { section: e.target.id }); + } + }), { threshold: .35 }); + secs.forEach(s => io.observe(s)); + } + + // نية شراء: نقر على باقة / وحدة / مواصلات + document.querySelectorAll("#pricing .plan").forEach(p => p.addEventListener("click", () => { + Track.ev("PlanInterest", { plan: p.querySelector("h3")?.getAttribute("data-i18n") || "?" }); + })); + document.querySelectorAll("#addons .addon-card").forEach(c => c.addEventListener("click", () => { + Track.ev("ModuleInterest", { module: c.querySelector("h3")?.getAttribute("data-i18n") || "?" }); + })); + + // استعمال الحاسبة = أقوى إشارة نية قبل التواصل + let calcTimer; + ["trips","fare","cur","plan"].forEach(id => { + const el = document.getElementById(id); + el && el.addEventListener("change", () => { + clearTimeout(calcTimer); + calcTimer = setTimeout(() => Track.ev("CalculatorUsed", { + plan: document.getElementById("plan")?.value, + currency: document.getElementById("cur")?.value?.split(":")[0] + }), 800); + }); + }); + + // التحويل: كل مسارات الاتصال + document.querySelectorAll('a[href*="wa.me"]').forEach(a => a.addEventListener("click", () => { + Track.ev("Lead", { channel: "whatsapp", where: a.closest("section")?.id || "float" }); + })); + document.querySelectorAll('a[href*="calendly"]').forEach(a => a.addEventListener("click", () => { + Track.ev("Lead", { channel: "calendly", where: a.closest("section")?.id || "?" }); + })); + document.querySelectorAll('a[href*="apps.apple.com"],a[href*="play.google.com"]').forEach(a => a.addEventListener("click", () => { + Track.ev("DemoAppOpened"); + })); +})(); diff --git a/marketing/js/app.js b/marketing/js/app.js new file mode 100644 index 0000000..9ed3fb0 --- /dev/null +++ b/marketing/js/app.js @@ -0,0 +1,80 @@ +/* ============ 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}/mo`; + }); +}); + +/* ============ 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);}); + +/* ============ MOBILE MENU ============ */ +(function(){ + const toggle=$("#menuToggle"),drawer=$("#mobileDrawer"),overlay=$("#mobileOverlay"); + if(!toggle||!drawer)return; + function close(){drawer.classList.remove("open");overlay.classList.remove("show");toggle.setAttribute("aria-expanded","false");} + function open(){drawer.classList.add("open");overlay.classList.add("show");toggle.setAttribute("aria-expanded","true");} + toggle.addEventListener("click",()=>{drawer.classList.contains("open")?close():open();}); + overlay.addEventListener("click",close); + drawer.querySelectorAll("a").forEach(a=>a.addEventListener("click",close)); +})(); + +/* ============ 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 l=localStorage.getItem("tripz_lang")||"ar"; + loadLang(l); + }catch(e){loadLang("ar");} +})(); diff --git a/marketing/js/calculator.js b/marketing/js/calculator.js new file mode 100644 index 0000000..237ebde --- /dev/null +++ b/marketing/js/calculator.js @@ -0,0 +1,75 @@ +/* ============ CALCULATOR (docs/05 formula) ============ */ +function fmt(n){return "$"+Math.round(n).toLocaleString("en-US");} + +const CURS=[ + {val:"JOD:1.41",key:"calc.opt.jod"}, + {val:"EGP:0.021",key:"calc.opt.egp"}, + {val:"SYP:0.00007",key:"calc.opt.syp"}, + {val:"USD:1",key:"calc.opt.usd"}, + {val:"EUR:1.08",key:"calc.opt.eur"}, + {val:"MAD:0.10",key:"calc.opt.mad"}, + {val:"XOF:0.0017",key:"calc.opt.xof"} +]; +const PLANS=[ + {val:"349:0.025:0.04:launch",key:"calc.opt.launch"}, + {val:"599:0.02:0.03:growth",key:"calc.opt.growth"}, + {val:"879:0.01:0.02:sov",key:"calc.opt.sov"} +]; + +function buildCalcDropdowns(){ + const d=I18N[LANG]; + const curSel=$("#cur"),planSel=$("#plan"); + const curVal=curSel.value,planVal=planSel.value; + curSel.innerHTML="";planSel.innerHTML=""; + CURS.forEach(c=>{const o=document.createElement("option");o.value=c.val;o.textContent=d[c.key]||c.val;curSel.appendChild(o);}); + PLANS.forEach(p=>{const o=document.createElement("option");o.value=p.val;o.textContent=d[p.key]||p.val;planSel.appendChild(o);}); + curSel.value=curVal;planSel.value=planVal; +} + +function calc(){ + const trips=+$("#trips").value; + const fare=+$("#fare").value||0; + const [curCode, rate]=$("#cur").value.split(":"); + const [baseVal, gmvVal, minVal, pKey]=$("#plan").value.split(":"); + const base = +baseVal, minRate = +minVal; + const usd = fare * (+rate); + const monthlyTrips = trips * 30; + const gmv = monthlyTrips * usd; + + let gmvFee; + if(pKey === "launch"){ + 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 if(pKey === "growth"){ + if(gmv <= 50000) gmvFee = gmv * 0.02; + else if(gmv <= 200000) gmvFee = 50000 * 0.02 + (gmv - 50000) * 0.015; + else gmvFee = 50000 * 0.02 + 150000 * 0.015 + (gmv - 200000) * 0.01; + } else { + gmvFee = gmv * 0.01; + } + + const minMonthly = monthlyTrips * minRate; + const tripz = base + Math.max(minMonthly, gmvFee); + const commission = monthlyTrips * 0.10; + const floor = monthlyTrips * 0.05; + + $("#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"); + + const pct = ((trips - 50) / (5000 - 50)) * 100; + $("#trips").style.setProperty("--p", pct + "%"); + $("#tripsVal").textContent = trips.toLocaleString("en-US") + " / day"; + + const msg = encodeURIComponent(`Tripz — ${I18N[LANG]["calc.r.savecap"]}: ${bigEl.textContent} | ${trips}/day @ ${fare} ${curCode}`); + $("#waCalc").href = "https://wa.me/201023248456?text=" + msg; +} + +/* ============ CALC INPUTS ============ */ +["trips","fare","cur","plan"].forEach(id=>$("#"+id).addEventListener("input",calc)); diff --git a/marketing/js/i18n.js b/marketing/js/i18n.js new file mode 100644 index 0000000..12bcc2f --- /dev/null +++ b/marketing/js/i18n.js @@ -0,0 +1,266 @@ +/* ============ i18n — inline dictionary (no fetch) ============ */ +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.launch.n":"إطلاق","plan.launch.1":"تطبيقك الكامل على المتجرين — مدينة واحدة فقط","plan.launch.2":"لوحة تحكم + dispatch + خريطة حية","plan.launch.3":"محرك تعرفة كامل + حزمة بلدك","plan.launch.4":"دعم عربي مباشر + نشر المتجر علينا","plan.launch.cta":"ابدأ بإطلاقك", + "plan.growth.n":"نمو","plan.growth.0":"↳ كل مزايا إطلاق، إضافة إلى:","plan.growth.1":"ذكاء الأسطول مشمول مجاناً (قيمة $149)","plan.growth.2":"استخبارات التسعير مشمولة مجاناً (قيمة $249)","plan.growth.3":"حزمة النمو مشمولة مجاناً (قيمة $129)","plan.growth.4":"Dispatch متقدم + B2B + API + بلا سقف رحلات","plan.growth.cta":"احجز نموك", + "plan.sov.n":"سيادة","plan.sov.0":"↳ كل مزايا نمو، إضافة إلى:","plan.sov.1":"سيرفر معزول بالكامل داخل حدود دولتك","plan.sov.2":"واجهة تقارير للمنظّم + SLA 99.9%","plan.sov.3":"ضمان تصدير كامل + خيار Escrow","plan.sov.4":"★ المواصلات مشمولة بالكامل ($299/شهر)","plan.sov.cta":"كلّم فريق المؤسسات", + "price.gmvnote":"نِسب GMV تنازلية: كلما كبر حجم أعمالك، صغرت نسبتنا. (إطلاق: 2.5% حتى $50k · نمو: 2% حتى $200k · سيادة: 1%)","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":"المقاعد المتبقية", + "consent.t":"نقيس ما ينفعك — بعد إذنك","consent.d":"نستخدم قياساً إعلانياً لمعرفة أي إعلان أوصلك إلينا. لا نجمع اسمك ولا رقمك، ويمكنك الرفض والاستمرار في تصفّح الموقع كاملاً.","consent.yes":"أوافق","consent.no":"أرفض", + "addons.eyebrow":"قابلة للتركيب","addons.title":"ثلاث وحدات مدفوعة — لا أكثر","addons.lead":"الأمان والمدفوعات لا تُباع عندنا: مشمولة في كل باقة. ما يُباع هو ما يزيد أرباحك فعلاً.","addon.badge.now":"متاح الآن","addon.badge.soon":"قريباً الربع القادم","core.title":"مشمول في كل باقة — ولا يُباع كإضافة أبداً","core.lead":"مشغّل بلا زر طوارئ أو بلا بوابة دفع ليس منتجاً ناقصاً — هو منتج لا يعمل. لذلك لا نسعّر هذين.","core.i1.t":"الأمان والامتثال","core.i1.d":"زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق بالذكاء الاصطناعي · تقارير المنظّم","core.i2.t":"المدفوعات المحلية","core.i2.d":"PayMob · CliQ · سيرياتيل وMTN كاش · شام كاش · المحافظ وطلبات السحب", + "addons.m1.name":"حزمة الذكاء الاصطناعي","addons.m1.desc":"تدقيق الشكاوى آلياً، مستشار تشغيلي أسبوعي، تسوية المدفوعات من رسائل المزوّد — موظفك الذي لا ينام.","addons.m1.period":"/شهر","addons.m2.name":"استخبارات التسعير","addons.m2.desc":"محرّك إحصائي يستخرج معادلة تسعير سوقك ومرونة الطلب فيه، ويضبط تعرفتك عليها آلياً. تغيير 5% في السعر يغيّر أرباحك 30% — هذه الوحدة تقرّر الـ5% بالبيانات لا بالحدس.","addons.m2.period":"/شهر","addons.m2.setup":"إعداد $1,000 — ضبط السوق المحلي","addons.m3.name":"حزمة النمو","addons.m3.desc":"إعادة تنشيط الركاب الخاملين، حملات واتساب، تلعيب وتحديات وإحالات — راكب عاد أرخص 10 مرات من راكب جديد.","addons.m3.period":"/شهر","addons.note":"«ذكاء الأسطول» (الخريطة الحرارية والطلب التنبؤي وتقارير الصحة) مشمول مجاناً في باقة «نمو» و«سيادة» — لا يُباع منفصلاً.", + "transit.eyebrow":"خط منتج مستقل","transit.title":"المواصلات العامة — الباصات على نفس المنصة","transit.lead":"ليست إضافة على تطبيق تكسي. جمهورها مختلف كلياً، وتُشترى لأنك تدير شبكة نقل جماعي — بقمع بيع ومواصفات وعقد مستقلين.","transit.for1":"بلديات","transit.for2":"جامعات","transit.for3":"نقل موظفين","transit.for4":"مدارس","transit.f1":"خطوط ومواقيت وتتبّع مباشر لكل باص","transit.f2":"تسجيل ركاب ومشتركين واشتراكات شهرية","transit.f3":"تنبيه اقتراب الباص + بث للمجموعات","transit.f4":"لوحة مشرف مستقلة وتقارير الالتزام بالمواعيد","transit.period":"/شهر","transit.setup":"إعداد $2,500 — يشمل رسم الخطوط والمواقيت","transit.note":"مشمولة بالكامل في باقة «سيادة». تُضاف بسعرها فوق أي باقة أخرى.","transit.cta":"احجز عرضاً للمواصلات", + "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.m.yelow":"اشتراك شهري","land.m.vivo":"ترخيص كود لمرة واحدة","land.m.zoy":"اشتراك + الرحلة","land.m.cab":"سعر ثابت حسب حجم الأسطول","land.p.tripz":"من $0.02 · نسبة معلنة","land.p.onde":"$0.10+ · حد أدنى سرّي","land.p.zoy":"$0.10 بعد 600 رحلة","land.p.cabm":"حسب الأسطول","land.p.cab":"بدون عمولة","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":"صُمِّم للأسواق العربية والناشئة.", + "page.title":"Tripz — أطلق تطبيق النقل بعلامتك التجارية","hero.badge":"إطلاق منصتك خلال 30 يوماً","pillar.badge.1":"عقد تصدير كود وبيانات مكتوب","pillar.badge.2":"أسعار معلنة وحاسبة توفير فائقة","pillar.badge.3":"إطلاق جاهز خلال 30 يوماً","brand.label":"Tripz — العلامة الرئيسية", + "calc.opt.jod":"JOD — دينار أردني","calc.opt.egp":"EGP — جنيه مصري","calc.opt.syp":"SYP — ليرة سورية","calc.opt.usd":"USD — دولار","calc.opt.eur":"EUR — يورو","calc.opt.mad":"MAD — درهم مغربي","calc.opt.xof":"XOF — فرنك غرب أفريقيا","calc.opt.launch":"إطلاق — $349/شهر · 2.5%","calc.opt.growth":"نمو — $599/شهر · 2%","calc.opt.sov":"سيادة — $879/شهر · 1%", + "land.c1":"المنصات الأجنبية المنافسة","land.c2":"التطوير المخصص من الصفر","land.c2.m":"كود مخصص مستقل","land.c2.mo":"صيانة وسيرفرات مستقلة","land.c2.pt":"— (تكلفة رأس مال ضخمة)" +}, +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.launch.n":"Launch","plan.launch.1":"Your full app on both stores — one city only","plan.launch.2":"Admin panel + dispatch + live map","plan.launch.3":"Full tariff engine + your country pack","plan.launch.4":"Direct Arabic support + we handle store publishing","plan.launch.cta":"Start your launch", + "plan.growth.n":"Growth","plan.growth.0":"↳ Everything in Launch, plus:","plan.growth.1":"Fleet Intelligence included free ($149 value)","plan.growth.2":"Pricing Intelligence included free ($249 value)","plan.growth.3":"Growth Suite included free ($129 value)","plan.growth.4":"Advanced dispatch + B2B portal + API + no trip cap","plan.growth.cta":"Book your growth", + "plan.sov.n":"Sovereign","plan.sov.0":"↳ Everything in Growth, plus:","plan.sov.1":"Fully isolated server inside your own country","plan.sov.2":"Regulator interface + 99.9% SLA","plan.sov.3":"Full data export guarantee + Escrow option","plan.sov.4":"★ Transit fully included ($299/mo value)","plan.sov.cta":"Talk to enterprise", + "price.gmvnote":"Descending GMV rates: the bigger you get, the smaller our cut. (Launch: 2.5% up to $50k · Growth: 2% up to $200k · Sovereign: 1%)","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", + "consent.t":"We measure what helps you — with your permission","consent.d":"We use advertising measurement to learn which ad brought you here. We do not collect your name or number, and you can decline and still use the whole site.","consent.yes":"Accept","consent.no":"Decline", + "addons.eyebrow":"Composable","addons.title":"Three paid modules — and no more","addons.lead":"We don't sell safety or payments: they're in every plan. What we sell is what actually grows your margin.","addon.badge.now":"Available now","addon.badge.soon":"Coming next quarter","core.title":"In every plan — never sold as an add-on","core.lead":"An operator without a panic button or without a payment gateway isn't a lesser product — it's a product that doesn't work. So we don't price these.","core.i1.t":"Trust & Safety","core.i1.d":"Panic button · fraud detection · driver assurance · AI document verification · regulator reports","core.i2.t":"Local payments","core.i2.d":"PayMob · CliQ · SyriaTel & MTN Cash · Sham Cash · wallets and payout requests", + "addons.m1.name":"AI Suite","addons.m1.desc":"Automated complaint triage, weekly operations advisor, payment reconciliation from provider SMS — your employee who never sleeps.","addons.m1.period":"/month","addons.m2.name":"Pricing Intelligence","addons.m2.desc":"A statistical engine that derives your market's pricing formula and demand elasticity, then tunes your tariff to it automatically. A 5% price change moves profit by 30% — this module decides that 5% from data, not instinct.","addons.m2.period":"/month","addons.m2.setup":"Setup $1,000 — local market calibration","addons.m3.name":"Growth Suite","addons.m3.desc":"Re-engage idle riders, WhatsApp campaigns, gamification, challenges and referrals — a returning rider costs 10× less than a new one.","addons.m3.period":"/month","addons.note":"Fleet Intelligence (heatmap, predictive demand, health reports) is included free in the Growth and Sovereign plans — not sold separately.", + "transit.eyebrow":"A separate product line","transit.title":"Public transit — buses on the same platform","transit.lead":"Not an add-on to a taxi app. A completely different buyer, bought because you run a mass-transit network — with its own funnel, spec and contract.","transit.for1":"Municipalities","transit.for2":"Universities","transit.for3":"Staff transport","transit.for4":"Schools","transit.f1":"Lines, schedules and live tracking for every bus","transit.f2":"Rider and subscriber registration with monthly passes","transit.f3":"Bus-approaching alerts + group broadcasts","transit.f4":"Standalone supervisor dashboard and on-time reports","transit.period":"/month","transit.setup":"Setup $2,500 — includes route and schedule mapping","transit.note":"Fully included in the Sovereign plan. Added at list price on top of any other plan.","transit.cta":"Book a transit demo", + "cmp.eyebrow":"The honest comparison","cmp.title":"Tripz vs the alternatives","cmp.col.feature":"Criterion","cmp.col.other":"Competing platforms","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":"\u201cSiro\u201d 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":"\u201cWe didn\u2019t build a pitch deck; we built a company that works, then opened it to operators.\u201d","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.", + "page.title":"Tripz — Launch ride-hailing under your brand","hero.badge":"Launch your platform in 30 days","pillar.badge.1":"Written code & data export guarantee","pillar.badge.2":"Published rates & powerful savings calculator","pillar.badge.3":"Ready to launch in 30 days","brand.label":"Tripz — Flagship brand", + "calc.opt.jod":"JOD — Jordanian Dinar","calc.opt.egp":"EGP — Egyptian Pound","calc.opt.syp":"SYP — Syrian Pound","calc.opt.usd":"USD — US Dollar","calc.opt.eur":"EUR — Euro","calc.opt.mad":"MAD — Moroccan Dirham","calc.opt.xof":"XOF — West African CFA Franc","calc.opt.launch":"Launch — $349/mo · 2.5%","calc.opt.growth":"Growth — $599/mo · 2%","calc.opt.sov":"Sovereign — $879/mo · 1%", + "land.c1":"Foreign competing platforms","land.c2":"Custom-built from scratch","land.c2.m":"Independent custom code","land.c2.mo":"Maintenance & separate servers","land.c2.pt":"— (massive capital cost)" +}, +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.launch.n":"Lancement","plan.launch.1":"Votre appli complète sur les deux stores — une seule ville","plan.launch.2":"Panneau admin + dispatch + carte en direct","plan.launch.3":"Moteur tarifaire complet + pack pays","plan.launch.4":"Support arabe direct + on gère la publication","plan.launch.cta":"Commencer votre lancement", + "plan.growth.n":"Croissance","plan.growth.0":"↳ Tout Lancement, plus :","plan.growth.1":"Renseignements Flotte inclus (valeur 149 $)","plan.growth.2":"Renseignements Tarifaires inclus (valeur 249 $)","plan.growth.3":"Suite Croissance incluse (valeur 129 $)","plan.growth.4":"Dispatch avancé + B2B + API + sans plafond","plan.growth.cta":"Réserver votre croissance", + "plan.sov.n":"Souveraineté","plan.sov.0":"↳ Tout Croissance, plus :","plan.sov.1":"Serveur entièrement isolé dans votre pays","plan.sov.2":"Interface régulateur + SLA 99,9%","plan.sov.3":"Export complet garanti + Escrow","plan.sov.4":"★ Transport public entièrement inclus (299 $/mois)","plan.sov.cta":"Contacter les entreprises", + "price.gmvnote":"Taux GMV dégressifs : plus vous grandissez, plus notre part diminue. (Lancement : 2,5% jusqu'à 50k$ · Croissance : 2% jusqu'à 200k$ · Souveraineté : 1%)","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", + "consent.t":"Nous mesurons ce qui vous sert — avec votre accord","consent.d":"Nous utilisons une mesure publicitaire pour savoir quelle annonce vous a amené ici. Nous ne collectons ni votre nom ni votre numéro, et vous pouvez refuser tout en utilisant l'intégralité du site.","consent.yes":"Accepter","consent.no":"Refuser", + "addons.eyebrow":"Composable","addons.title":"Trois modules payants — pas un de plus","addons.lead":"Nous ne vendons ni la sécurité ni les paiements : ils sont dans chaque forfait. Ce que nous vendons, c'est ce qui augmente réellement votre marge.","addon.badge.now":"Disponible maintenant","addon.badge.soon":"Prochainement ce trimestre","core.title":"Dans chaque forfait — jamais vendu en option","core.lead":"Un opérateur sans bouton d'urgence ou sans passerelle de paiement n'est pas un produit incomplet — c'est un produit qui ne fonctionne pas. Nous ne les facturons donc pas.","core.i1.t":"Confiance & Sécurité","core.i1.d":"Bouton d'urgence · détection des fraudes · assurance chauffeur · vérification IA des documents · rapports régulateur","core.i2.t":"Paiements locaux","core.i2.d":"PayMob · CliQ · SyriaTel et MTN Cash · Sham Cash · portefeuilles et demandes de retrait", + "addons.m1.name":"Suite IA","addons.m1.desc":"Tri automatique des plaintes, conseiller opérationnel hebdomadaire, rapprochement des paiements depuis les SMS opérateur — votre employé qui ne dort jamais.","addons.m1.period":"/mois","addons.m2.name":"Renseignements Tarifaires","addons.m2.desc":"Un moteur statistique qui extrait la formule tarifaire de votre marché et son élasticité de la demande, puis aligne votre tarif automatiquement. 5% de variation de prix déplacent 30% du profit — ce module décide ces 5% par les données, pas à l'instinct.","addons.m2.period":"/mois","addons.m2.setup":"Mise en place 1 000 $ — calibrage du marché local","addons.m3.name":"Suite Croissance","addons.m3.desc":"Réactivation des passagers inactifs, campagnes WhatsApp, gamification, défis et parrainages — un passager qui revient coûte 10× moins cher qu'un nouveau.","addons.m3.period":"/mois","addons.note":"Renseignements Flotte (carte thermique, demande prédictive, rapports de santé) est inclus gratuitement dans les forfaits Croissance et Souveraineté — pas vendu séparément.", + "transit.eyebrow":"Une ligne de produit distincte","transit.title":"Transport public — les bus sur la même plateforme","transit.lead":"Pas une option d'une app de taxi. Un acheteur totalement différent, qui achète parce qu'il exploite un réseau de transport collectif — avec son propre tunnel, cahier des charges et contrat.","transit.for1":"Municipalités","transit.for2":"Universités","transit.for3":"Transport du personnel","transit.for4":"Écoles","transit.f1":"Lignes, horaires et suivi en direct de chaque bus","transit.f2":"Inscription des passagers et abonnés avec abonnements mensuels","transit.f3":"Alertes d'approche du bus + diffusions de groupe","transit.f4":"Tableau de bord superviseur autonome et rapports de ponctualité","transit.period":"/mois","transit.setup":"Mise en place 2 500 $ — comprend le tracé des lignes et horaires","transit.note":"Entièrement inclus dans le forfait Souveraineté. Ajouté au prix courant sur tout autre forfait.","transit.cta":"Réserver une démo transport", + "cmp.eyebrow":"La comparaison honnête","cmp.title":"Tripz face aux alternatives","cmp.col.feature":"Critère","cmp.col.other":"Concurrents","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":"\u00ab Siro \u00bb 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":"\u00ab Nous n'avons pas fait un pitch deck ; nous avons bâti une société qui fonctionne, puis l'avons ouverte aux opérateurs. \u00bb","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.", + "page.title":"Tripz — Lancez VTC sous votre marque","hero.badge":"Lancez votre plateforme en 30 jours","pillar.badge.1":"Garantie d'export de code et données","pillar.badge.2":"Tarifs publiés & calculateur d'économies","pillar.badge.3":"Prêt au lancement en 30 jours","brand.label":"Tripz — Marque principale", + "calc.opt.jod":"JOD — Dinar jordanien","calc.opt.egp":"EGP — Livre égyptienne","calc.opt.syp":"SYP — Livre syrienne","calc.opt.usd":"USD — Dollar américain","calc.opt.eur":"EUR — Euro","calc.opt.mad":"MAD — Dirham marocain","calc.opt.xof":"XOF — Franc CFA ouest-africain","calc.opt.launch":"Lancement — 349 $/mois · 2,5%","calc.opt.growth":"Croissance — 599 $/mois · 2%","calc.opt.sov":"Souveraineté — 879 $/mois · 1%", + "land.c1":"Plateformes concurrentes étrangères","land.c2":"Développement sur mesure from scratch","land.c2.m":"Code sur mesure indépendant","land.c2.mo":"Maintenance et serveurs séparés","land.c2.pt":"— (coût de capital massif)" +}, +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.launch.n":"Lanzamiento","plan.launch.1":"Tu app completa en ambas tiendas — una sola ciudad","plan.launch.2":"Panel admin + dispatch + mapa en vivo","plan.launch.3":"Motor tarifario completo + paquete país","plan.launch.4":"Soporte árabe directo + manejamos la publicación","plan.launch.cta":"Empezar tu lanzamiento", + "plan.growth.n":"Crecimiento","plan.growth.0":"↳ Todo Lanzamiento, más:","plan.growth.1":"Inteligencia de Flota incluida gratis ($149 de valor)","plan.growth.2":"Inteligencia de Precios incluida gratis ($249 de valor)","plan.growth.3":"Suite de Crecimiento incluida gratis ($129 de valor)","plan.growth.4":"Dispatch avanzado + B2B + API + sin límite de viajes","plan.growth.cta":"Reservar tu crecimiento", + "plan.sov.n":"Soberanía","plan.sov.0":"↳ Todo Crecimiento, más:","plan.sov.1":"Servidor completamente aislado en tu país","plan.sov.2":"Interfaz para el regulador + SLA 99,9%","plan.sov.3":"Garantía de exportación total + opción Escrow","plan.sov.4":"★ Transporte público totalmente incluido ($299/mes de valor)","plan.sov.cta":"Habla con empresas", + "price.gmvnote":"Tasas GMV decrecientes: cuanto más creces, menor es nuestra parte. (Lanzamiento: 2,5% hasta $50k · Crecimiento: 2% hasta $200k · Soberanía: 1%)","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", + "consent.t":"Medimos lo que te sirve — con tu permiso","consent.d":"Usamos medición publicitaria para saber qué anuncio te trajo aquí. No recogemos tu nombre ni tu número, y puedes rechazar y seguir usando todo el sitio.","consent.yes":"Aceptar","consent.no":"Rechazar", + "addons.eyebrow":"Modular","addons.title":"Tres módulos pagados — ni uno más","addons.lead":"No vendemos ni la seguridad ni los pagos: están en todos los planes. Lo que vendemos es lo que realmente aumenta tu margen.","addon.badge.now":"Disponible ahora","addon.badge.soon":"Próximamente este trimestre","core.title":"En todos los planes — nunca se vende como complemento","core.lead":"Un operador sin botón de pánico o sin pasarela de pago no es un producto incompleto — es un producto que no funciona. Por eso no los cobramos.","core.i1.t":"Confianza y Seguridad","core.i1.d":"Botón de pánico · detección de fraude · seguro del conductor · verificación de documentos con IA · reportes regulatorios","core.i2.t":"Pagos locales","core.i2.d":"PayMob · CliQ · SyriaTel y MTN Cash · Sham Cash · billeteras y solicitudes de retiro", + "addons.m1.name":"Suite de IA","addons.m1.desc":"Triaje automático de quejas, asesor operativo semanal, conciliación de pagos desde SMS del proveedor — tu empleado que nunca duerme.","addons.m1.period":"/mes","addons.m2.name":"Inteligencia de Precios","addons.m2.desc":"Un motor estadístico que extrae la fórmula de precios de tu mercado y su elasticidad de demanda, y ajusta tu tarifa automáticamente. Un cambio del 5% en el precio mueve el 30% del beneficio — este módulo decide ese 5% con datos, no por intuición.","addons.m2.period":"/mes","addons.m2.setup":"Configuración $1.000 — calibración del mercado local","addons.m3.name":"Suite de Crecimiento","addons.m3.desc":"Reactivación de pasajeros inactivos, campañas WhatsApp, gamificación, desafíos y referidos — un pasajero que vuelve cuesta 10× menos que uno nuevo.","addons.m3.period":"/mes","addons.note":"Inteligencia de Flota (mapa de calor, demanda predictiva, informes de salud) está incluida gratis en los planes Crecimiento y Soberanía — no se vende por separado.", + "transit.eyebrow":"Línea de producto independiente","transit.title":"Transporte público — autobuses en la misma plataforma","transit.lead":"No es un complemento de una app de taxi. Un comprador completamente distinto, que compra porque opera una red de transporte masivo — con su propio embudo, especificación y contrato.","transit.for1":"Municipios","transit.for2":"Universidades","transit.for3":"Transporte de personal","transit.for4":"Colegios","transit.f1":"Líneas, horarios y seguimiento en vivo de cada autobús","transit.f2":"Registro de pasajeros y abonados con pases mensuales","transit.f3":"Alertas de proximidad del autobús + difusión a grupos","transit.f4":"Panel de supervisor independiente e informes de puntualidad","transit.period":"/mes","transit.setup":"Configuración $2.500 — incluye trazado de rutas y horarios","transit.note":"Totalmente incluido en el plan Soberanía. Se añade a precio de lista sobre cualquier otro plan.","transit.cta":"Reservar demo de transporte", + "cmp.eyebrow":"La comparación honesta","cmp.title":"Tripz frente a las alternativas","cmp.col.feature":"Criterio","cmp.col.other":"Plataformas competidoras","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":"\u00abSiro\u00bb 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":"\u00abNo hicimos un pitch deck; construimos una empresa que funciona y luego la abrimos a los operadores.\u00bb","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.", + "page.title":"Tripz — Lanza transporte con tu marca","hero.badge":"Lanza tu plataforma en 30 días","pillar.badge.1":"Garantía de exportación de código y datos","pillar.badge.2":"Tarifas publicadas y calculadora de ahorro","pillar.badge.3":"Listo para lanzar en 30 días","brand.label":"Tripz — Marca principal", + "calc.opt.jod":"JOD — Dinar jordano","calc.opt.egp":"EGP — Libra egipcia","calc.opt.syp":"SYP — Libra siria","calc.opt.usd":"USD — Dólar estadounidense","calc.opt.eur":"EUR — Euro","calc.opt.mad":"MAD — Dirham marroquí","calc.opt.xof":"XOF — Franco CFA de África Occidental","calc.opt.launch":"Lanzamiento — $349/mes · 2,5%","calc.opt.growth":"Crecimiento — $599/mes · 2%","calc.opt.sov":"Soberanía — $879/mes · 1%", + "land.c1":"Plataformas competidoras extranjeras","land.c2":"Desarrollo a medida desde cero","land.c2.m":"Código personalizado independiente","land.c2.mo":"Mantenimiento y servidores separados","land.c2.pt":"— (enorme costo de capital)" +}, +tr: { + "nav.product":"Ürün","nav.addons":"Eklentiler","nav.savings":"Tasarruf Hesaplayıcı","nav.pricing":"Fiyatlandırma","nav.how":"Nasıl başlıyoruz","nav.faq":"SSS","nav.demo":"Demoyu dene", + "hero.title":"Uygulamanızı [kendi markanızla] başlatın — 30 gün içinde canlıya geçin, verileriniz sizin kalır.","hero.sub":"Her iki mağazada yolcu ve sürücü uygulamaları, yönetim paneli ve sevk sistemi — fiyatlandırma burada kamuya açık ve verilerinizi istediğiniz zaman dışa aktarma garantisi veren bir sözleşmeyle.","hero.cta1":"Canlı demoyu deneyin","hero.cta2":"WhatsApp'tan bize ulaşın","hero.trust":"Kredi kartı gerekmez · Anında demo, satış çağrısı yok","hero.scroll":"Daha fazlasını keşfedin", + "ph.rider.eta":"Varış süresi","ph.min":"dk","ph.rider.class":"Ekonomi","ph.rider.chip":"Rezervasyon öncesi onaylı fiyat","ph.rider.btn":"Şimdi iste","ph.driver.today":"Bugünkü kazançlar","ph.driver.new":"Yeni talep","ph.driver.fare":"Ücret","ph.driver.accept":"Kabul et", + "stat.since":"Gerçek seferler işletiyor","stat.min":"Sefer başı taban — sınıfının en düşüğü","stat.days":"gün","stat.launch":"sözleşmeden her iki mağazaya","stat.lang":"dil, doğru RTL desteği", + "pillars.eyebrow":"Neden Tripz","pillars.title":"Mevcut rakibin acı veren her şeyinin tersi","pillars.lead":"Pazardaki üç açığı sözleşmenize yazılmış taahhütlere dönüştürdük.","pillars.p1.t":"Verileriniz, egemenliğiniz","pillars.p1.d":"İstediğiniz zaman tam dışa aktarma, sözleşmede 60 günlük geçiş dönemi ve ülkeniz içinde barındırma seçeneği.","pillars.p2.t":"Sürprizsiz maliyet","pillars.p2.d":"Oran burada fiyatlandırma sayfasında kamuya açıktır. Gizli harita faturası veya $0.10 tabanı yoktur.","pillars.p3.t":"Düşünmek için çok hızlı","pillars.p3.d":"2019'dan beri gerçek seferler çalıştıran kanıtlanmış bir sistem — sıfırdan inşa etmiyoruz: markanızı giydiriyoruz ve 30 günde başlatıyoruz.", + "brands.eyebrow":"Bugün işlettiğimiz markalar","brands.title":"Aynı platform, farklı markalar — sizinkinin tam olarak nasıl görüneceği","brands.siro":"Siro — Mısır ve Ürdün","brands.intalaq":"Intalaq — Suriye","brands.next":"Sıradaki markanız","brands.note":"Her marka, aynı motor üzerinde tamamen bağımsız bir uygulama ve yönetim kimliği alır.", + "prod.eyebrow":"Platform","prod.title":"Dört bileşen, tek sistem","prod.tab.rider":"Yolcu uygulaması","prod.tab.driver":"Sürücü uygulaması","prod.tab.dispatch":"Sevk paneli","prod.tab.hub":"My Hub", + "prod.rider.h":"İste, fiyatı gör, takip et","prod.rider.1":"Onay öncesi kategori bazlı fiyat teklifi ile istek","prod.rider.2":"Sefer sırasında canlı sürücü takibi","prod.rider.3":"Nakit ödeme ve e-cüzdan","prod.rider.m1":"Onaylı fiyat","prod.rider.m2":"Varış süresi", + "prod.driver.h":"Cüzdan, abonelikler, canlı kazançlar","prod.driver.1":"Cüzdan ve esnek abonelikler (90 / 180 / 360 gün)","prod.driver.2":"Mesafe ve ücretli net talep haritası","prod.driver.3":"Canlı kazançlar ve sefer geçmişi","prod.driver.m1":"Bugünkü kazançlar","prod.driver.m2":"Abonelik","prod.driver.m3":"Sonraki talep", + "prod.dispatch.h":"Manuel ve otomatik atama, canlı harita","prod.dispatch.1":"Talepleri manuel veya otomatik olarak atayın","prod.dispatch.2":"Her aracın canlı filo haritası","prod.dispatch.3":"Uygulamasız yolcular için telefon rezervasyonları","prod.dispatch.m1":"Aktif araçlar", + "prod.hub.h":"Tarifeler, raporlar, sürücüler","prod.hub.1":"Kategoriler ve zaman aralıklarıyla tam motor sistemi","prod.hub.2":"Tamamen şeffaf raporlar ve finans","prod.hub.3":"Yapay zeka doğrulamalı sürücü ve belge yönetimi","prod.hub.m1":"Aylık seferler","prod.hub.m2":"Toplam GMV", + "calc.eyebrow":"Sessiz satış aracı","calc.title":"Tripz ile ne kadar tasarruf edersiniz? Hesaplayın.","calc.lead":"Günlük seferlerinizi ve ortalama ücretinizi ayarlayın — faturamızı anında %15 komisyon modeli ve mevcut rakibin tabanıyla karşılaştırın.","calc.trips":"Günlük sefer sayısı","calc.fare":"Ortalama ücret","calc.currency":"Para birimi","calc.plan":"Paket","calc.r.tripz":"Tripz aylık faturası","calc.r.commission":"%15 komisyon modeli","calc.r.floor":"$0.10/sefer tabanlı model","calc.r.savecap":"Tripz ile yıllık tasarrufunuz","calc.r.send":"Bu hesabı WhatsApp'tan bize gönderin", + "how.eyebrow":"Başlangıç yolculuğu","how.title":"Sözleşmeden her iki mağazaya 30 günde","how.lead":"Beş açık aşama, doğrudan gözetimimiz altında, eski bir sistemden geçiyorsanız sıfır kesintiyle.","how.s1.d":"Gün 1–3","how.s1.t":"Kapsam belirleme","how.s1.p":"Şehrinizi, kategorileri, tarifeyi, dilleri ve para birimlerini birlikte tanımlıyoruz.","how.s2.d":"Gün 4–7","how.s2.t":"Varlıklar ve lisanslar","how.s2.p":"Logoyu, renkleri ve geliştirici hesaplarını gönderirsiniz; görsel kimliği biz hazırlarız.","how.s3.d":"Gün 8–14","how.s3.t":"İnşa ve göç","how.s3.p":"Örneğinizi inşa eder, ödemeyi ve SMS'i bağlar, sürücülerinizi ve bakiyelerinizi kesintisiz olarak taşırız.","how.s4.d":"Gün 15–21","how.s4.t":"Saha testi","how.s4.p":"TestFlight ve Beta kanalına dağıtılır ve sizinle sahada test edilir.","how.s5.d":"Gün 22–30","how.s5.t":"Canlıya geçiş","how.s5.p":"Mağaza incelemesi ve onayı, ardından doğrudan gözetimimiz altında canlıya geçiş.", + "price.eyebrow":"Tamamen kamuya açık fiyatlandırma","price.title":"Evet — tüm fiyatlarımız burada. Kamuya açık olarak.","price.lead":"Eksiksiz bir fiyatlandırma sayfası, belirsizlik üzerine kurulmuş bir pazarda zaten bir farklılaştırıcıdır. Paketinizi seçin, istediğiniz zaman yükseltin.","price.monthly":"Aylık","price.yearly":"Yıllık","price.save15":"%15 tasarruf edin", + "plan.setup":"Kurulum:","plan.popular":"En çok tercih edilen","plan.launch.n":"Lansman","plan.launch.1":"Her iki mağazada tam uygulamanız — yalnızca bir şehir","plan.launch.2":"Yönetim paneli + sevk + canlı harita","plan.launch.3":"Tam motor sistemi + ülke paketiniz","plan.launch.4":"Doğrudan Arapça destek + mağaza yayını bizde","plan.launch.cta":"Lansmanınızı başlatın", + "plan.growth.n":"Büyüme","plan.growth.0":"↳ Lansman'daki her şey, artı:","plan.growth.1":"Filo Zekası ücretsiz dahil ($149 değer)","plan.growth.2":"Fiyatlandırma Zekası ücretsiz dahil ($249 değer)","plan.growth.3":"Büyüme Paketi ücretsiz dahil ($129 değer)","plan.growth.4":"Gelişmiş sevk + B2B portalı + API + sefer sınırı yok","plan.growth.cta":"Büyümeyi ayırtın", + "plan.sov.n":"Sovereign","plan.sov.0":"↳ Büyüme'deki her şey, artı:","plan.sov.1":"Kendi ülkeniz içinde tamamen izole sunucu","plan.sov.2":"Düzenleyici arayüzü + %99,9 SLA","plan.sov.3":"Tam veri dışa aktarma garantisi + Escrow seçeneği","plan.sov.4":"★ Toplu taşıma tamamen dahil ($299/ay değer)","plan.sov.cta":"Kurumsal ekiple konuşun", + "price.gmvnote":"Azalan GMV oranları: büyüdükçe bizim payımız küçülür. (Lansman: %2,5 $50k'ya kadar · Büyüme: %2 $200k'ya kadar · Sovereign: %1)","price.c1.t":"Kamuya açık oran","price.c1.d":"Sözleşmede yazılı ve sabitlenmiş — sürpriz yok.","price.c2.t":"Verilerinizi dışa aktarın","price.c2.d":"Tüm verileriniz, istediğiniz zaman dışa aktarılabilir.","price.c3.t":"Zarif çıkış","price.c3.d":"Ayrılırsanız: anında kesinti yerine 60 günlük geçiş.","price.founder.t":"Kurucu Ortak programı","price.founder.d":"İlk 3 operatör: yıllık +1 puan karşılığında ücretsiz kurulum + adınıza vaka analizi.","price.founder.seats":"Kalan kontenjan", + "consent.t":"Size yardımcı olanı ölçüyoruz — izninizle","consent.d":"Hangi reklamın sizi buraya getirdiğini öğrenmek için reklam ölçümü kullanıyoruz. Adınızı veya numaranızı toplamıyoruz, reddetseniz bile siteyi tam olarak kullanmaya devam edebilirsiniz.","consent.yes":"Kabul et","consent.no":"Reddet", + "addons.eyebrow":"Modüler","addons.title":"Üç ücretli modül — ve daha fazlası yok","addons.lead":"Güvenliği veya ödemeleri satmıyoruz: her pakete dahildir. Sattığımız şey, gerçekten kârınızı artıran şeydir.","addon.badge.now":"Şu anda mevcut","addon.badge.soon":"Gelecek çeyrek geliyor","core.title":"Her pakette — hiçbir zaman eklenti olarak satılmaz","core.lead":"Acil durum düğmesi veya ödeme geçidi olmayan bir operatör eksik bir ürün değil — çalışmayan bir üründür. Bu yüzden bunları fiyatlandırmıyoruz.","core.i1.t":"Güvenilirlik ve Emniyet","core.i1.d":"Acil durum düğmesi · dolandırıcılık tespiti · sürücü sigortası · yapay zeka belge doğrulama · düzenleyici raporlar","core.i2.t":"Yerel ödemeler","core.i2.d":"PayMob · CliQ · SyriaTel ve MTN Cash · Sham Cash · cüzdanlar ve ödeme talepleri", + "addons.m1.name":"Yapay Zeka Paketi","addons.m1.desc":"Otomatik şikayet triyajı, haftalık operasyon danışmanı, sağlayıcı SMS'lerinden ödeme mutabakatı — asla uyumayan çalışanınız.","addons.m1.period":"/ay","addons.m2.name":"Fiyatlandırma Zekası","addons.m2.desc":"Pazarınızın fiyatlandırma formülünü ve talep esnekliğini çıkaran istatistiksel bir motor, ardından tarifenizi otomatik olarak buna göre ayarlar. Fiyatta %5'lik bir değişiklik kârı %30 hareket ettirir — bu modül o %5'i veriye dayalı olarak, içgüdüyle değil karar verir.","addons.m2.period":"/ay","addons.m2.setup":"Kurulum $1,000 — yerel pazar kalibrasyonu","addons.m3.name":"Büyüme Paketi","addons.m3.desc":"Boşta kalan yolcuları yeniden etkinleştirin, WhatsApp kampanyaları, oyunlaştırma, meydan okumalar ve yönlendirmeler — geri dönen bir yolcu, yeni bir yolcudan 10 kat daha ucuza mal olur.","addons.m3.period":"/ay","addons.note":"Filo Zekası (ısı haritası, tahmine dayalı talep, sağlık raporları) Büyüme ve Sovereign paketlerinde ücretsiz olarak dahildir — ayrıca satılmaz.", + "transit.eyebrow":"Ayrı bir ürün hattı","transit.title":"Toplu taşıma — aynı platformda otobüsler","transit.lead":"Bir taksi uygulamasına eklenti değil. Tamamen farklı bir alıcı, toplu taşıma ağı işlettiğiniz için satın alır — kendi hunisi, teknik şartnamesi ve sözleşmesiyle.","transit.for1":"Belediyeler","transit.for2":"Üniversiteler","transit.for3":"Personel taşımacılığı","transit.for4":"Okullar","transit.f1":"Her otobüs için hatlar, tarifeler ve canlı takip","transit.f2":"Aylık biletli yolcu ve abone kaydı","transit.f3":"Otobüs yaklaşma uyarıları + grup yayınları","transit.f4":"Bağımsız denetleyici panosu ve zamanında raporlama","transit.period":"/ay","transit.setup":"Kurulum $2,500 — hat ve tarife haritalamayı içerir","transit.note":"Sovereign paketinde tamamen dahildir. Herhangi bir diğer paketin üzerine liste fiyatıyla eklenir.","transit.cta":"Toplu taşıma demosu ayırtın", + "cmp.eyebrow":"Dürüst karşılaştırma","cmp.title":"Tripz rakiplere karşı","cmp.col.feature":"Kriter","cmp.col.other":"Rakip platformlar","cmp.col.custom":"Özel geliştirme","cmp.badge":"En iyi değer", + "land.eyebrow":"Pazarın durumu","land.title":"Sektörün fiyatlandırma manzarası","land.lead":"Küresel ulaşım platformlarının kendi sitelerinden kamuya açık fiyatları — Tripz en şeffaf ve sefer başı tabanı en düşüğü olarak.","land.col.platform":"Platform","land.col.model":"Model","land.col.setup":"Kurulum","land.col.monthly":"Aylık","land.col.pertrip":"Sefer başı","land.m.tripz":"Tamamen kamuya açık ve yayınlanmış","land.m.onde":"Hibrit + şeffaf olmayan","land.m.yelow":"Aylık abonelik","land.m.vivo":"Tek seferlik kod lisansı","land.m.zoy":"Abonelik + sefer başı","land.m.cab":"Filo boyutuna göre sabit","land.p.tripz":"$0.02'den başlar · oran yayınlanmış","land.p.onde":"$0.10 · gizli oran","land.p.zoy":"600 sefer sonra $0.10","land.p.cabm":"Filoya göre","land.p.cab":"Komisyon yok","land.note":"Her sağlayıcının kamuya açık sayfalarından gelen rakamlar (2026), değişikliğe tabidir. Tripz, tam oranını yayınlayan tek platformdur.", + "cmp.r1":"Başlangıç maliyeti","cmp.r2":"Canlıya geçiş süresi","cmp.r2.us":"30 gün","cmp.r2.on":"Hafta–ay","cmp.r2.cu":"9–18 ay","cmp.r3":"Sefer başı taban","cmp.r4":"Oran kamuya açık mı?","cmp.r5":"Sözleşmede veri dışa aktarma garantisi","cmp.r6":"Ülkeniz içinde barındırma","cmp.r6.us":"✓ Sovereign","cmp.r7":"Doğru Arapça destek","cmp.r7.on":"Kısmi","cmp.r7.cu":"Geliştiriciye bağlı", + "case.eyebrow":"Vaka analizi","case.title":"Başkalarına satmadan önce kendi şirketimizde çalıştırdık","case.p1":"\u201cSiro\u201d, 2019'dan beri bizim bizzat piyasada işlettiğimiz ulaşım uygulamasıdır. Tripz'teki her özellik gerçek operasyonlardan, beyaz tahtadan değil, gelmiştir.","case.p2":"Her operatörün kendi markası altında aynı — savaş testinden geçmiş — sisteme sahip olması için çok kiracılı bir bulut platformuna dönüştürdük. Bugün Kahire, İskenderiye ve Şam\u2019da çalışıyor.","case.s1":"sefer/ay","case.s2":"aktif sürücü","case.s3":"şehir","case.quote":"\u201cBir pitch deck\u2019i biz yapmadık; çalışan bir şirket kurduk, sonra operatörlere açtık.\u201d","case.who":"— Kurucu, Tripz","case.d1":"Aylık seferler","case.d2":"Toplam GMV","case.d3":"Etkin oran","case.d4":"Canlı şehirler", + "sec.title":"Dünya standartlarında güvenlik, net uyumluluk","sec.b1":"PCI DSS ortakları üzerinden ödemeler (Paymob) — kartımızdan sunucularımıza geçmez","sec.b2":"Tam TLS şifreleme","sec.b3":"Günlük yedekleme","sec.b4":"Net veri işleme anlaşaması", + "faq.eyebrow":"Dürüst cevaplar","faq.title":"Diğerlerinin kaçırdığı sorular","final.title":"Şehriniz uygulamasını bekliyor. Bugün başlayın.","demo.lead":"Bu bir pitch değil — bunlar gerçek Tripz uygulamaları, her iki mağazada şu anda canlı.","demo.rider":"Yolcu uygulaması","demo.driver":"Sürücü uygulaması","demo.appstore":"App Store","demo.googleplay":"Google Play", + "foot.tag":"Ulaşım SaaS\u2019ı — uygulamanızı kendi markanızla başlatın, verileriniz sizin kalır.","foot.product":"Ürün","foot.solutions":"Çözümler","foot.fleets":"Taksi ofisleri ve filolar","foot.startups":"Girişimciler ve gelişen pazarlar","foot.resources":"Kaynaklar","foot.case":"Vaka analizi","foot.legal":"Yasal","foot.privacy":"Gizlilik","foot.terms":"Koşullar","foot.dpa":"Veri İşleme Anlaşması","foot.rights":"Tüm hakları saklıdır.", "foot.built":"Arapça ve gelişen pazarlar için tasarlanmıştır.", + "page.title":"Tripz — Uygulamanızı kendi markanızla başlatın","hero.badge":"Platformunuzu 30 günde başlatın","pillar.badge.1":"Yazılı kod ve veri dışa aktarma garantisi","pillar.badge.2":"Kamuya açık oranlar ve güçlü tasarruf hesaplayıcı","pillar.badge.3":"30 günde başlatılmaya hazır","brand.label":"Tripz — Ana marka", + "calc.opt.jod":"JOD — Ürdün Dinarı","calc.opt.egp":"EGP — Mısır Lirası","calc.opt.syp":"SYP — Suriye Lirası","calc.opt.usd":"USD — ABD Doları","calc.opt.eur":"EUR — Euro","calc.opt.mad":"MAD — Fas Dirhemi","calc.opt.xof":"XOF — Batı Afrika CFA Frangı","calc.opt.launch":"Lansman — $349/ay · %2,5","calc.opt.growth":"Büyüme — $599/ay · %2","calc.opt.sov":"Sovereign — $879/ay · %1", + "land.c1":"Yabancı rakip platformlar","land.c2":"Sıfırdan özel geliştirme","land.c2.m":"Bağımsız özel kod","land.c2.mo":"Bakım ve ayrı sunucular","land.c2.pt":"— (devasa sermaye maliyeti)" +} +}; + +/* ============ STATE ============ */ +let LANG="ar"; +const $=(s,e=document)=>e.querySelector(s), $$=(s,e=document)=>[...e.querySelectorAll(s)]; + +function loadLang(lang){ + LANG=lang; + const rtl=lang==="ar"; + document.documentElement.lang=lang; + document.documentElement.dir=rtl?"rtl":"ltr"; + const d=I18N[lang]; + if(!d){console.warn("Language not found:",lang);return;} + $$("[data-i18n]").forEach(el=>{const k=el.getAttribute("data-i18n");if(d[k]!=null)el.textContent=d[k];}); + if(d["page.title"])document.title=d["page.title"]; + $("#heroTitle").innerHTML=buildHeroTitle(d["hero.title"]); + $$(".lang-menu button").forEach(b=>b.classList.toggle("active",b.dataset.lang===lang)); + if(typeof buildCalcDropdowns==="function")buildCalcDropdowns(); + buildFAQ(); + calc(); + try{localStorage.setItem("tripz_lang",lang);}catch(e){} +} + +function applyLang(lang){loadLang(lang);} + +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?`${t}`:t; + if(closeAfter)hl=false; + return `${inner} `; + }).join(""); +} +const FAQ_ICONS=[ + '', + '', + '', + '', + '', + '' +]; + +/* FAQ content per language */ +const FAQS={ + ar:[["من يملك بيانات الركاب والسائقين؟","أنت. تصدّرها كاملة في أي وقت، والعقد يلزمنا بفترة انتقال 60 يوماً إن قررت المغادرة."], + ["ماذا لو أفلستم أو أغلقتم؟","باقة «سيادة» تعمل من خوادم داخل بلدك، ولكل الباقات ضمان تصدير + escrow اختياري للكود."], + ["كم النسبة بالضبط؟","مكتوبة في صفحة التسعير: 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: 2.5% (Launch) · 2% (Growth) · 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 : 2,5% (Lancement) · 2% (Croissance) · 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: 2,5% (Lanzamiento) · 2% (Crecimiento) · 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)."]], + tr:[["Yolcu ve sürücü verileri kime ait?","Sizinkine. Dilediğiniz zaman tamamen dışa aktarabilirsiniz; sözleşme, ayrılmaya karar vermeniz durumunda 60 günlük geçiş süresi tanır."], + ["Iflas eder veya kapanırsanız ne olur?","Egemenlik planı ülkenizdeki sunuculardan çalışır ve tüm planlar dışa aktarım garantisi + isteğe bağlı kaynak kod emaneti içerir."], + ["Oran tam olarak nedir?","Fiyatlandırma sayfasında yazıyor: %2,5 (Başlangıç) · %2 (Büyüme) · %1 (Egemenlik) — GMV büyüdükçe azalan oran."], + ["Teknik bir ekibe ihtiyacım var mı?","Hayır. Yayınlama, güncellemeler ve mağazalar bize ait. Siz Arapça öncelikli bir panelden işletmenizi yönetirsiniz."], + ["Eski bir uygulamam ve aktif sürücülerim var — onları kaybeder miyim?","Hayır: sürücüleri, bakiyeleri ve kayıtları kesintisiz olarak taşıyoruz."], + ["Nakit ödeme destekliyor mu?","Evet, nakit temel varsayılanıdır; cüzdanlar ve kartlar ülkeye göre eklentilerdir (Mısır'da Paymob ve diğer yerel ödeme ağ geçitleri)."]] +}; + +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=`

${a}

`; + 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); + }); +} diff --git a/marketing/styles/base.css b/marketing/styles/base.css new file mode 100644 index 0000000..49282b7 --- /dev/null +++ b/marketing/styles/base.css @@ -0,0 +1,20 @@ +*{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} diff --git a/marketing/styles/components.css b/marketing/styles/components.css new file mode 100644 index 0000000..f0b4957 --- /dev/null +++ b/marketing/styles/components.css @@ -0,0 +1,103 @@ +/* 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;width:44px;height:44px;border-radius:10px;border:1px solid var(--border);background:transparent; + color:var(--text);cursor:pointer;place-items:center;transition:.2s} +.menu-toggle:hover{border-color:var(--brand-500);color:var(--brand-500)} +.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;opacity:0;transition:opacity .3s} +.mobile-overlay.show{display:block;opacity:1} +.mobile-drawer{display:none;position:fixed;top:72px;inset-inline:0;background:var(--card);border-bottom:1px solid var(--border); + box-shadow:var(--shadow-lg);z-index:101;padding:16px 24px 24px;transform:translateY(-10px);opacity:0; + transition:transform .3s var(--ease),opacity .3s;max-height:calc(100svh - 72px);overflow-y:auto} +.mobile-drawer.open{display:block;transform:none;opacity:1} +.mobile-drawer a{display:block;padding:14px 0;font-size:17px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border)} +.mobile-drawer a:last-child{border-bottom:none} +.mobile-drawer .btn{width:100%;justify-content:center;margin-top:12px} + +/* ============ 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; \ No newline at end of file diff --git a/marketing/styles/responsive.css b/marketing/styles/responsive.css new file mode 100644 index 0000000..84f418a --- /dev/null +++ b/marketing/styles/responsive.css @@ -0,0 +1,21 @@ +/* ============ 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} +} \ No newline at end of file diff --git a/marketing/styles/sections.css b/marketing/styles/sections.css new file mode 100644 index 0000000..c7c0b57 --- /dev/null +++ b/marketing/styles/sections.css @@ -0,0 +1,581 @@ +/* ============ 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} +html[dir="rtl"] input[type=range]{background:linear-gradient(to left,var(--brand-500) var(--p,40%),#28345c 0)} +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(3,1fr);gap:20px;align-items:stretch;justify-items:center;justify-content:center;max-width:1100px;margin:0 auto} +.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-incl{color:var(--success-500);font-weight:700} +.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} +} +.addons-grid.three{grid-template-columns:repeat(3,1fr)} +@media(max-width:900px){.addons-grid.three{grid-template-columns:1fr}} +.addons-note{margin-top:28px;text-align:center;color:var(--text-soft);font-size:14.5px;max-width:720px;margin-inline:auto} + +/* شريط النواة — مشمول في كل الباقات */ +.core-band{margin-top:44px;margin-bottom:32px;background:var(--bg-alt);border:1px solid var(--border); + border-inline-start:3px solid var(--success-500);border-radius:var(--radius-card);padding:24px 26px} +.core-band-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px} +.core-lock{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center; + background:rgba(18,183,106,.14);color:var(--success-500)} +.core-band-head h3{font-size:18px;margin-bottom:4px} +.core-band-head p{color:var(--text-soft);font-size:14.5px} +.core-items{display:grid;grid-template-columns:1fr 1fr;gap:16px} +.core-item{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px 16px} +.core-item b{display:block;font-size:15px;margin-bottom:3px} +.core-item span{color:var(--text-soft);font-size:13.5px} +@media(max-width:760px){.core-items{grid-template-columns:1fr}} + +/* المواصلات — منتج مستقل */ +.transit-sec{background:var(--midnight-800);color:#EAF0FF; + background-image:radial-gradient(760px 420px at 12% 0%,rgba(255,179,71,.14),transparent)} +html[dir=ltr] .transit-sec{background-image:radial-gradient(760px 420px at 88% 0%,rgba(255,179,71,.14),transparent)} +.transit-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center} +.transit-sec .sec-lead{margin-bottom:22px} +.transit-for{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px} +.transit-for span{font-size:13px;font-weight:600;padding:6px 13px;border-radius:999px; + background:rgba(255,179,71,.14);color:#FFB347;border:1px solid rgba(255,179,71,.28)} +.transit-sec .feat-list li{color:#C7D3F0;font-size:16px} +.transit-sec .feat-list .ck{background:rgba(255,179,71,.16);color:#FFB347} +.transit-card{position:relative;background:var(--midnight-700);border:1px solid rgba(255,255,255,.12); + border-radius:var(--radius-card);padding:30px 26px;box-shadow:var(--shadow-lg)} +.transit-price{display:flex;align-items:baseline;gap:8px} +.transit-price .num{font-family:var(--font-lat);font-variant-numeric:tabular-nums;font-size:44px;font-weight:700;color:#fff} +.transit-price span:not(.num){color:#9BA8C9;font-size:14px} +.transit-setup{color:#B7C4E6;font-size:14px;margin-top:6px} +.transit-sep{height:1px;background:rgba(255,255,255,.12);margin:20px 0} +.transit-note{color:#9BA8C9;font-size:13.5px;margin-bottom:20px} +@media(max-width:900px){.transit-grid{grid-template-columns:1fr;gap:32px}} + +/* ============ CONSENT + ANALYTICS ============ */ +.consent{position:fixed;inset-inline:16px;bottom:16px;z-index:200;max-width:520px;margin-inline:auto; + background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg); + padding:20px 22px;transform:translateY(140%);transition:transform .45s var(--ease)} +.consent.show{transform:none} +.consent h4{font-size:16px;margin-bottom:6px} +.consent p{font-size:13.5px;color:var(--text-soft);margin-bottom:14px} +.consent-btns{display:flex;gap:10px;flex-wrap:wrap} +.consent-btns .btn{flex:1;justify-content:center;padding:11px 18px;font-size:14px;min-width:120px} +@media(max-width:520px){.consent{inset-inline:10px;bottom:10px;padding:18px}} + +/* ============ 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);white-space:nowrap} +.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}} + +/* ============ VIDEO SHOWCASE STYLING ============ */ +.video-hero { + width: 100%; + max-width: 520px; + border-radius: 24px; + box-shadow: 0 20px 50px rgba(46, 75, 255, 0.4); + border: 1px solid rgba(255, 255, 255, 0.2); + object-fit: cover; + display: block; +} + +.hero-showroom { + position: relative; + width: 100%; + max-width: 620px; + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: center; +} + +.laptop-frame { + width: 100%; + background: #0b0f19; + border-radius: 20px 20px 4px 4px; + border: 2px solid rgba(255, 255, 255, 0.2); + box-shadow: 0 30px 80px rgba(46, 75, 255, 0.4), 0 0 50px rgba(138, 160, 255, 0.2); + overflow: hidden; + position: relative; +} + +.laptop-screen { + position: relative; + width: 100%; + aspect-ratio: 16 / 9; + background: #000; +} + +.video-laptop { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.video-overlay-badge { + position: absolute; + top: 14px; + inset-inline-start: 14px; + background: rgba(11, 15, 25, 0.85); + backdrop-filter: blur(12px); + border: 1px solid rgba(255, 255, 255, 0.25); + color: #fff; + padding: 6px 14px; + border-radius: 20px; + font-size: 13px; + font-weight: 700; + box-shadow: 0 4px 15px rgba(0,0,0,0.4); +} + +.laptop-base { + width: 108%; + height: 12px; + background: linear-gradient(180deg, #2a385c, #131b2e); + border-radius: 0 0 12px 12px; + margin-bottom: 25px; + box-shadow: 0 10px 25px rgba(0,0,0,0.5); +} + +.phone-float { + position: absolute; + width: 140px; + border-radius: 22px; + background: #0b0f19; + border: 3px solid rgba(255, 255, 255, 0.25); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6); + overflow: hidden; + z-index: 10; + transition: transform 0.3s ease; +} + +.phone-float.phone-rider { + bottom: -15px; + inset-inline-start: -40px; + transform: rotate(-8deg); +} + +.phone-float.phone-driver { + bottom: -15px; + inset-inline-end: -40px; + transform: rotate(8deg); +} + +.phone-float:hover { + transform: translateY(-8px) scale(1.05); +} + +@media(max-width: 800px) { + .phone-float { display: none; } +} + +.mock-video { + width: 100%; + border-radius: 20px; + box-shadow: 0 15px 35px rgba(0, 0, 0, 0.4); + border: 1px solid rgba(255, 255, 255, 0.15); + object-fit: cover; + display: block; + max-height: 480px; +} +.transit-video { + width: 100%; + border-radius: 18px; + max-height: 380px; + object-fit: cover; + box-shadow: 0 15px 35px rgba(46, 75, 255, 0.3); + margin-bottom: 20px; +} + +/* ============ RE-DESIGNED PILLAR CARDS ============ */ +.feature-rows { + display: flex; + flex-direction: column; + gap: 3rem; + margin-top: 3rem; +} + +.pillar-card { + background: var(--bg-card, #131b2e); + border: 1px solid rgba(255, 255, 255, 0.14); + border-radius: 28px; + overflow: hidden; + display: grid; + grid-template-columns: 1.2fr 1fr; + align-items: center; + box-shadow: 0 25px 60px rgba(0, 0, 0, 0.35); + transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease; +} + +.pillar-card:hover { + transform: translateY(-6px); + border-color: rgba(59, 130, 246, 0.4); + box-shadow: 0 35px 80px rgba(46, 75, 255, 0.25); +} + +.pillar-card.reverse { + grid-template-columns: 1fr 1.2fr; +} + +.pillar-card-media { + position: relative; + width: 100%; + height: 380px; + overflow: hidden; +} + +.pillar-card-media img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.5s ease; +} + +.pillar-card:hover .pillar-card-media img { + transform: scale(1.04); +} + +.pillar-card-overlay { + position: absolute; + top: 0; left: 0; right: 0; bottom: 0; + background: linear-gradient(180deg, rgba(11, 15, 25, 0.1) 0%, rgba(11, 15, 25, 0.65) 100%); +} + +.pillar-card-badge { + position: absolute; + bottom: 20px; + inset-inline-start: 20px; + background: rgba(11, 15, 25, 0.85); + backdrop-filter: blur(14px); + border: 1px solid rgba(255, 255, 255, 0.25); + color: #fff; + padding: 8px 18px; + border-radius: 24px; + font-size: 14px; + font-weight: 700; + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4); + display: inline-flex; + align-items: center; + gap: 8px; +} + +.pillar-card-content { + padding: 3rem; + display: flex; + flex-direction: column; + gap: 1.2rem; +} + +.pillar-card-content h3 { + font-size: clamp(24px, 3vw, 34px); + font-weight: 800; + color: #fff; + line-height: 1.25; +} + +.pillar-card-content p { + font-size: 1.1rem; + color: #b7c4e6; + line-height: 1.7; +} + +/* ============ 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} +} \ No newline at end of file diff --git a/marketing/styles/tokens.css b/marketing/styles/tokens.css new file mode 100644 index 0000000..5bc68da --- /dev/null +++ b/marketing/styles/tokens.css @@ -0,0 +1,29 @@ +/* ============ 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); +}