/* Ordenax landing — EN/AR i18n, scroll animations, mobile nav and forms. */ const STRINGS = { en: { // Nav "nav.shoppers": "Shoppers", "nav.stores": "Stores", "nav.wholesale": "Wholesale", "nav.contact": "Contact", "nav.cta": "Get started", "common.learnMore": "Learn more", "common.seeHow": "See how it works", "common.seePricing": "See pricing", // Footer "footer.tag": "Marketplace · POS · Wholesale — bilingual by construction.", "footer.product": "Product", "footer.company": "Company", "footer.privacy": "Privacy", "footer.terms": "Terms", "footer.legal": "© 2026 Ordenax. Made in Saudi Arabia.", // Home "home.hero.eyebrow": "Saudi grocery platform", "home.hero.title": "Groceries from your local stores, delivered.", "home.hero.lede": "Shop, sell, and restock on one platform — in Arabic and English, online or offline.", "home.hero.cta1": "Start shopping", "home.hero.cta2": "Run your store", "home.hero.badge1": "Bilingual EN / AR", "home.hero.badge2": "Works without internet", "home.hero.badge3": "SAR · VAT included", "home.pillars.eyebrow": "One platform, three wins", "home.pillars.title": "Built for every side of grocery", "home.pillars.m.title": "Shop local", "home.pillars.m.body": "Fresh groceries from nearby stores, same-day delivery, and stock you can actually trust.", "home.pillars.p.title": "Sell smarter", "home.pillars.p.body": "One simple POS for counter sales, app orders, and uninterrupted selling — even when the internet drops.", "home.pillars.w.title": "Restock wholesale", "home.pillars.w.body": "Refill shelves straight from suppliers with clear invoices, real-time catalogs, and no inventory traps.", "home.how.eyebrow": "How it works", "home.how.title": "From shelf to doorstep in three steps", "home.how.s1.title": "Order", "home.how.s1.body": "A shopper picks products from a nearby store — in English or Arabic.", "home.how.s2.title": "Prepare", "home.how.s2.body": "The store receives, packs and confirms the order on the Ordenax system.", "home.how.s3.title": "Deliver", "home.how.s3.body": "A delivery partner drops it at the door. The store keeps the payment directly.", "home.stats.s1": "partner stores", "home.stats.s2": "monthly orders", "home.stats.s3": "average delivery", "home.stats.s3suffix": " min", "home.stats.s4": "languages", "home.testimonials.eyebrow": "What partners say", "home.testimonials.title": "Loved by stores. Trusted by shoppers.", "home.testimonials.t1.body": "\"We doubled our weekly orders within two months. The system is simple and our customers love ordering in Arabic.\"", "home.testimonials.t1.name": "Abdullah, Al-Salam Market", "home.testimonials.t2.body": "\"I can shop from the same grocer I visit every week, but now it comes to my door. Same quality, less hassle.\"", "home.testimonials.t2.name": "Noura, Riyadh", "home.testimonials.t3.body": "\"Restocking used to take three phone calls. Now we order once and the invoice is ready before delivery.\"", "home.testimonials.t3.name": "Fahad, Green Cart", "home.cta.title": "Ready to shop, sell, or supply?", "home.cta.lede": "Join the grocery platform built for the Kingdom.", "home.cta.button": "Request a demo", // Home — deeper content "home.why.eyebrow": "Why Ordenax", "home.why.title": "Grocery made simple for everyone.", "home.why.lede": "We built Ordenax around one idea: your neighborhood store should be as easy to reach as a global app — and just as reliable.", "home.shoppers.eyebrow": "For shoppers", "home.shoppers.title": "Your weekly shop, done in minutes.", "home.shoppers.lede": "No more crowded aisles, sold-out shelves, or wondering when your order will arrive.", "home.shoppers.b1.title": "Shop stores you already trust", "home.shoppers.b1.body": "Your favorite neighborhood grocer, bakery, and produce stand — all in one place.", "home.shoppers.b2.title": "Get it fast", "home.shoppers.b2.body": "Same-day delivery in as little as 25 minutes, because fresh shouldn't mean waiting.", "home.shoppers.b3.title": "Never guess stock again", "home.shoppers.b3.body": "If it's on the app, it's on the shelf. No substitutions you didn't ask for.", "home.shoppers.b4.title": "Reorder in one tap", "home.shoppers.b4.body": "Save your weekly basket and repeat it whenever life gets busy.", "home.owners.eyebrow": "For store owners", "home.owners.title": "Run your store, not your paperwork.", "home.owners.lede": "Everything you need to sell more, stress less, and keep every riyal in your account.", "home.owners.b1.title": "Keep every sale", "home.owners.b1.body": "No commission. No withheld funds. Customer payments go straight to you.", "home.owners.b2.title": "One screen, every channel", "home.owners.b2.body": "Counter sales, app orders, and wholesale restocking — all flowing into one simple system.", "home.owners.b3.title": "Sell even when offline", "home.owners.b3.body": "The internet drops. Your sales don't. Everything syncs automatically once you're back online.", "home.owners.b4.title": "Grow without the guesswork", "home.owners.b4.body": "Real-time inventory, clear reports, and a direct line to nearby shoppers who want what you sell.", // Shoppers "shoppers.hero.eyebrow": "For shoppers", "shoppers.hero.title": "Your neighborhood store, now in your pocket.", "shoppers.hero.lede": "Order fresh groceries from trusted local stores and get same-day delivery — in Arabic or English.", "shoppers.hero.cta": "Download the app", "shoppers.benefits.eyebrow": "Why shop on Ordenax", "shoppers.benefits.title": "Fresh, fast and familiar", "shoppers.benefits.b1.title": "Same-day delivery", "shoppers.benefits.b1.body": "Get your groceries in as little as 25 minutes from stores you already know.", "shoppers.benefits.b2.title": "Real stock", "shoppers.benefits.b2.body": "If it's on the app, it's on the shelf — no more canceled items after checkout.", "shoppers.benefits.b3.title": "Bilingual by design", "shoppers.benefits.b3.body": "Switch between Arabic and English anytime. Product names, search and checkout follow you.", "shoppers.benefits.b4.title": "Support local", "shoppers.benefits.b4.body": "Every order goes directly to a store in your community — your money stays in the neighborhood.", "shoppers.benefits.b5.title": "Easy reorder", "shoppers.benefits.b5.body": "Repeat your weekly list in one tap. Save favorites and scheduled baskets for busy days.", "shoppers.benefits.b6.title": "Pay with confidence", "shoppers.benefits.b6.body": "Choose cash on delivery or trusted local payment options. The store handles your payment directly.", "shoppers.categories.eyebrow": "Everything you need", "shoppers.categories.title": "From pantry to produce", "shoppers.categories.lede": "Browse thousands of products across the categories your family uses every day.", "shoppers.categories.l1": "Fresh fruit and vegetables", "shoppers.categories.l2": "Dairy, eggs and chilled goods", "shoppers.categories.l3": "Rice, oil, spices and staples", "shoppers.categories.l4": "Household and personal care", "shoppers.categories.l5": "Beverages, snacks and bakery", "shoppers.faq.title": "Common questions", "shoppers.faq.q1": "Who delivers my order?", "shoppers.faq.a1": "Your chosen store prepares the order and a local delivery partner brings it to you. You can track the status in the app.", "shoppers.faq.q2": "Can I pay with cash?", "shoppers.faq.a2": "Yes. The store collects your payment directly — cash on delivery or local digital payments, whichever you prefer.", "shoppers.faq.q3": "What if an item is out of stock?", "shoppers.faq.a3": "Stores update availability in real time. If something changes, they will contact you to suggest a replacement or refund.", "shoppers.cta.title": "Your first order is waiting", "shoppers.cta.lede": "Download the app and shop the stores you already trust.", "shoppers.cta.button": "Get the app", // Stores "stores.hero.eyebrow": "For store owners", "stores.hero.title": "Turn your counter into a modern grocery business.", "stores.hero.lede": "Get more orders, simplify daily work, and keep every payment in your own hands.", "stores.hero.cta": "Request a demo", "stores.benefits.eyebrow": "Why stores choose Ordenax", "stores.benefits.title": "Everything you need to grow", "stores.benefits.b1.title": "More orders", "stores.benefits.b1.body": "Reach nearby shoppers through the app and turn your store into a local online brand.", "stores.benefits.b2.title": "Your money, your account", "stores.benefits.b2.body": "You collect customer payments directly. We never hold your funds or take a slice of every sale.", "stores.benefits.b3.title": "One simple screen", "stores.benefits.b3.body": "Counter sales and app orders flow into one place — no switching between apps and notebooks.", "stores.benefits.b4.title": "Works without internet", "stores.benefits.b4.body": "Keep ringing sales even when the connection drops. Everything syncs automatically once you're back online.", "stores.benefits.b5.title": "Bilingual for your team", "stores.benefits.b5.body": "Your staff can use Arabic or English — labels, receipts, and reports switch instantly.", "stores.benefits.b6.title": "Restock in minutes", "stores.benefits.b6.body": "Order wholesale supplies straight from the app, with clear invoices and predictable delivery.", "stores.pricing.eyebrow": "Pricing", "stores.pricing.title": "Simple subscriptions, no hidden cuts", "stores.pricing.lede": "No marketplace commission. Just pick the POS plan that fits your store.", "stores.pricing.period": "/month", "stores.pricing.badge": "Most popular", "stores.pricing.p1.title": "Starter", "stores.pricing.p1.f1": "1 store location", "stores.pricing.p1.f2": "Counter POS", "stores.pricing.p1.f3": "Basic reports", "stores.pricing.p1.f4": "Email support", "stores.pricing.p2.title": "Growth", "stores.pricing.p2.f1": "Up to 3 staff devices", "stores.pricing.p2.f2": "Counter + app orders", "stores.pricing.p2.f3": "Live inventory", "stores.pricing.p2.f4": "Priority support", "stores.pricing.p3.title": "Enterprise", "stores.pricing.p3.f1": "Multiple branches", "stores.pricing.p3.f2": "Advanced analytics", "stores.pricing.p3.f3": "Wholesale integrations", "stores.pricing.p3.f4": "Dedicated account manager", "stores.pricing.cta": "Choose plan", "stores.testimonials.eyebrow": "Store stories", "stores.testimonials.title": "Built for Saudi stores", "stores.testimonials.t1.body": "\"We used to write every order by hand. Now we manage counter, app and wholesale orders in one place.\"", "stores.testimonials.t1.name": "Khalid, Al-Andalus Market", "stores.testimonials.t2.body": "\"The bilingual interface made training our staff effortless. Sales kept flowing even during network issues.\"", "stores.testimonials.t2.name": "Sara, Fresh Corner", "stores.testimonials.t3.body": "\"Our customers pay us directly, and the subscription is predictable. No surprises at the end of the month.\"", "stores.testimonials.t3.name": "Omar, Daily Mart", "stores.cta.title": "Ready to upgrade your store?", "stores.cta.lede": "Book a 15-minute demo and see how Ordenax fits your counter.", "stores.cta.button": "Book a demo", // Wholesale "wholesale.hero.eyebrow": "For suppliers and distributors", "wholesale.hero.title": "Supply the stores that feed the Kingdom.", "wholesale.hero.lede": "A digital wholesale channel that connects your products to neighborhood stores across Saudi Arabia.", "wholesale.hero.cta": "Become a supplier", "wholesale.hero.cta2": "For stores", "wholesale.suppliers.eyebrow": "Why suppliers partner with us", "wholesale.suppliers.title": "Reach more stores with less overhead", "wholesale.suppliers.b1.title": "Ready store network", "wholesale.suppliers.b1.body": "Access hundreds of active grocery stores already ordering through Ordenax.", "wholesale.suppliers.b2.title": "Demand insights", "wholesale.suppliers.b2.body": "See what stores are buying, when they restock, and which products move fastest.", "wholesale.suppliers.b3.title": "Reliable logistics", "wholesale.suppliers.b3.body": "Coordinate deliveries through your own fleet or our trusted logistics partners.", "wholesale.suppliers.b4.title": "Clear invoices", "wholesale.suppliers.b4.body": "Every order generates an invoice with correct VAT breakdown and payment status.", "wholesale.suppliers.b5.title": "Digital catalog", "wholesale.suppliers.b5.body": "Publish SKUs, photos and prices once. Stores see updates in real time.", "wholesale.suppliers.b6.title": "Local support", "wholesale.suppliers.b6.body": "Work with a Saudi-based team that understands retail, seasons and supply cycles.", "wholesale.stores.eyebrow": "For stores", "wholesale.stores.title": "Restock without the runaround", "wholesale.stores.lede": "Find what you need, compare suppliers, and keep your shelves full — all from one screen.", "wholesale.stores.f1": "Wide catalog of groceries, household and chilled goods", "wholesale.stores.f2": "Competitive wholesale prices updated daily", "wholesale.stores.f3": "Predictable delivery windows you can plan around", "wholesale.stores.f4": "One invoice per order with clear VAT", "wholesale.stores.cta": "See store plans", "wholesale.stores.panel.eyebrow": "How wholesale works", "wholesale.stores.panel.l1": "Browse catalog", "wholesale.stores.panel.v1": "1", "wholesale.stores.panel.l2": "Place order", "wholesale.stores.panel.v2": "2", "wholesale.stores.panel.l3": "Receive delivery", "wholesale.stores.panel.v3": "3", "wholesale.stores.panel.l4": "Pay invoice", "wholesale.stores.panel.v4": "4", "wholesale.faq.title": "Wholesale questions", "wholesale.faq.q1": "Who can become a supplier?", "wholesale.faq.a1": "Licensed distributors, manufacturers and importers of food, beverages, household or personal-care products in Saudi Arabia.", "wholesale.faq.q2": "How do stores pay?", "wholesale.faq.a2": "Stores pay against the supplier's invoice through agreed payment terms — bank transfer, credit or cash on delivery.", "wholesale.faq.q3": "Do I need to list my whole catalog?", "wholesale.faq.a3": "No. Start with your best-moving items and expand as you see demand from the network.", "wholesale.cta.title": "Grow your wholesale reach", "wholesale.cta.lede": "Talk to our partnerships team and see how Ordenax fits your distribution business.", "wholesale.cta.button": "Talk to sales", // Contact "contact.hero.eyebrow": "Contact", "contact.hero.title": "Let's talk grocery.", "contact.hero.lede": "Request a demo, become a partner store, or join our supplier network.", "contact.form.eyebrow": "Get in touch", "contact.form.title": "Send us a message", "contact.form.lede": "Fill in the form and our team will reply within one business day.", "contact.form.nameLabel": "Name", "contact.form.namePlaceholder": "Your name", "contact.form.emailLabel": "Email", "contact.form.emailPlaceholder": "you@example.com", "contact.form.phoneLabel": "Phone", "contact.form.phonePlaceholder": "+966 50 000 0000", "contact.form.interestLabel": "I'm interested in", "contact.form.interest.default": "Select an option", "contact.form.interest.store": "Running my store on Ordenax", "contact.form.interest.shopper": "Shopping as a consumer", "contact.form.interest.supplier": "Supplying products wholesale", "contact.form.interest.other": "Something else", "contact.form.messageLabel": "Message", "contact.form.messagePlaceholder": "Tell us about your business", "contact.form.submit": "Send message", "contact.form.success": "Thank you — we'll be in touch soon.", "contact.form.invalidEmail": "Please enter a valid email address.", "contact.form.required": "Please fill in all required fields.", "contact.info.office.title": "Headquarters", "contact.info.office.body": "Riyadh, Kingdom of Saudi Arabia", "contact.info.email.title": "Email", "contact.info.phone.title": "Phone", "contact.info.hours.title": "Business hours", "contact.info.hours.body": "Sunday to Thursday, 9:00 AM – 6:00 PM KSA", "contact.cta.title": "Prefer to talk now?", "contact.cta.lede": "Call us during business hours or request a callback.", "contact.cta.button": "Call +966 9200 123 45", }, ar: { "nav.shoppers": "المتسوّقون", "nav.stores": "المتاجر", "nav.wholesale": "الجملة", "nav.contact": "تواصل", "nav.cta": "ابدأ الآن", "common.learnMore": "اعرف المزيد", "common.seeHow": "كيف تعمل", "common.seePricing": "الأسعار", "footer.tag": "السوق · نقاط البيع · الجملة — ثنائية اللغة من الأساس.", "footer.product": "المنتج", "footer.company": "الشركة", "footer.privacy": "الخصوصية", "footer.terms": "الشروط", "footer.legal": "© 2026 أورديناكس. صُنع في المملكة العربية السعودية.", "home.hero.eyebrow": "منصة بقالة سعودية", "home.hero.title": "بقالتك من متاجر حيّك، حتى باب البيت.", "home.hero.lede": "تسوّق، بيع، ووردّد المخزون على منصة واحدة — بالعربية والإنجليزية، متصل أو غير متصل.", "home.hero.cta1": "ابدأ التسوّق", "home.hero.cta2": "أدِر متجرك", "home.hero.badge1": "ثنائية اللغة EN / AR", "home.hero.badge2": "تعمل دون اتصال", "home.hero.badge3": "ريال سعودي · الضريبة مشمولة", "home.trust.label": "ثقة متاجر الأحياء في", "home.pillars.eyebrow": "منصة واحدة، ثلاثة مكاسب", "home.pillars.title": "مبنية لكل جانب من البقالة", "home.pillars.m.title": "تسوّق محليًا", "home.pillars.m.body": "بقالة طازجة من متاجر قريبة، توصيل في نفس اليوم، ومخزون يمكنك الوثوق به فعلًا.", "home.pillars.p.title": "بيع بذكاء", "home.pillars.p.body": "نقطة بيع واحدة تجمع مبيعات الكاشير والطلبات الإلكترونية — تستمر حتى عند انقطاع الإنترنت.", "home.pillars.w.title": "أعِد التخزين بالجملة", "home.pillars.w.body": "أعِد ملء الرفوف مباشرة من المورّدين، بفواتير واضحة، كتالوجات لحظية، وبدون تعقيدات المخزون.", "home.how.eyebrow": "كيف تعمل", "home.how.title": "من الرف إلى باب البيت في ثلاث خطوات", "home.how.s1.title": "اطلب", "home.how.s1.body": "يختار المتسوّق منتجات من متجر قريب — بالعربية أو الإنجليزية.", "home.how.s2.title": "جهّز", "home.how.s2.body": "يتلقّى المتجر الطلب ويغلّفه ويؤكّده عبر نظام أورديناكس.", "home.how.s3.title": "وصّل", "home.how.s3.body": "يوصل شريك التوصيل الطلب إلى الباب، ويحتفظ المتجر بالمدفوعات مباشرة.", "home.stats.s1": "متجر شريك", "home.stats.s2": "طلب شهريًا", "home.stats.s3": "متوسط التوصيل", "home.stats.s3suffix": " دقيقة", "home.stats.s4": "لغات", "home.testimonials.eyebrow": "ماذا يقول الشركاء", "home.testimonials.title": "يحبّه المتاجر. ويثق به المتسوّقون.", "home.testimonials.t1.body": "\"ضاعفنا طلباتنا الأسبوعية في شهرين. النظام بسيط وعملاؤنا يحبّون الطلب بالعربية.\"", "home.testimonials.t1.name": "عبدالله، سوق السلام", "home.testimonials.t2.body": "\"أستطيع التسوّق من نفس البقال الذي أزوره كل أسبوع، لكن الآن يصل إلى باب بيتي. نفس الجودة، أقل جهد.\"", "home.testimonials.t2.name": "نورة، الرياض", "home.testimonials.t3.body": "\"كان إعادة التخزين يتطلّب ثلاث مكالمات هاتفية. الآن نطلب مرة واحدة والفاتورة جاهزة قبل التوصيل.\"", "home.testimonials.t3.name": "فهد، العربة الخضراء", "home.cta.title": "جاهز للتسوّق، البيع، أو التوريد؟", "home.cta.lede": "انضم إلى منصة البقالة المصممة للمملكة.", "home.cta.button": "اطلب عرضًا", // Home — deeper content "home.why.eyebrow": "لمَ أورديناكس", "home.why.title": "البقالة أصبحت سهلة للجميع.", "home.why.lede": "بنينا أورديناكس على فكرة واحدة: متجر حيك يجب أن يكون سهل الوصول كأي تطبيق عالمي — وموثوق مثله.", "home.shoppers.eyebrow": "للمتسوّقين", "home.shoppers.title": "تسوّقك الأسبوعي، ينتهي في دقائق.", "home.shoppers.lede": "لا ممرات مزدحمة، لا رفوف فارغة، ولا تساؤل عن موعد وصول طلبك.", "home.shoppers.b1.title": "تسوّق من متاجر تثق بها", "home.shoppers.b1.body": "بقالتك المفضلة، المخبوزات، ومحل الخضروات — كلها في مكان واحد.", "home.shoppers.b2.title": "احصل عليها بسرعة", "home.shoppers.b2.body": "توصيل في نفس اليوم خلال 25 دقيقة، لأن الطازج لا يجب أن يعني الانتظار.", "home.shoppers.b3.title": "لا تخمّن المخزون بعد الآن", "home.shoppers.b3.body": "إذا كان المنتج في التطبيق فهو على الرف. لا بدائل لم تطلبها.", "home.shoppers.b4.title": "أعِد الطلب بنقرة واحدة", "home.shoppers.b4.body": "احفظ سلتك الأسبوعية وكرّرها كلما ازدحم الوقت.", "home.owners.eyebrow": "لأصحاب المتاجر", "home.owners.title": "أدِر متجرك، لا أوراقك.", "home.owners.lede": "كل ما تحتاجه لبيع المزيد، والتوتر الأقل، والحفاظ على كل ريال في حسابك.", "home.owners.b1.title": "احتفظ بكل بيعة", "home.owners.b1.body": "لا عمولة. لا أموال محجوزة. مدفوعات العملاء تصل إليك مباشرة.", "home.owners.b2.title": "شاشة واحدة، كل القنوات", "home.owners.b2.body": "مبيعات الكاشير، طلبات التطبيق، وإعادة التخزين بالجملة — كلها في نظام واحد بسيط.", "home.owners.b3.title": "بيع حتى دون اتصال", "home.owners.b3.body": "الإنترنت ينقطع. المبيعات لا. كل شيء يتزامن تلقائيًا بمجرد عودة الاتصال.", "home.owners.b4.title": "نمُ دون تخمين", "home.owners.b4.body": "مخزون لحظي، تقارير واضحة، وخط مباشر مع المتسوّقين القريبين الذين يريدون ما تبيعه.", "shoppers.hero.eyebrow": "للمتسوّقين", "shoppers.hero.title": "متجر حيك، الآن في جيبك.", "shoppers.hero.lede": "اطلب البقالة الطازجة من متاجر محلية موثوقة واحصل على توصيل في نفس اليوم — بالعربية أو الإنجليزية.", "shoppers.hero.cta": "حمّل التطبيق", "shoppers.benefits.eyebrow": "لمَ التسوّق عبر أورديناكس", "shoppers.benefits.title": "طازج، سريع ومألوف", "shoppers.benefits.b1.title": "توصيل في نفس اليوم", "shoppers.benefits.b1.body": "احصل على بقالتك في 25 دقيقة فقط من المتاجر التي تعرفها.", "shoppers.benefits.b2.title": "مخزون حقيقي", "shoppers.benefits.b2.body": "إذا كان المنتج في التطبيق فهو على الرف — لا مزيد من إلغاء العناصر بعد الدفع.", "shoppers.benefits.b3.title": "ثنائي اللغة من الأساس", "shoppers.benefits.b3.body": "بدّل بين العربية والإنجليزية في أي وقت. أسماء المنتجات والبحث والدفع يتبعانك.", "shoppers.benefits.b4.title": "ادعم المحلي", "shoppers.benefits.b4.body": "كل طلب يذهب مباشرة إلى متجر في مجتمعك — مالك يبقى في الحي.", "shoppers.benefits.b5.title": "إعادة الطلب بسهولة", "shoppers.benefits.b5.body": "كرّر قائمتك الأسبوعية بنقرة واحدة. احفظ المفضلات والسلال المجدولة للأيام المزدحمة.", "shoppers.benefits.b6.title": "ادفع بثقة", "shoppers.benefits.b6.body": "اختر الدفع عند الاستلام أو خيارات دفع محلية موثوقة. المتجر يتولّى الدفع مباشرة.", "shoppers.categories.eyebrow": "كل ما تحتاجه", "shoppers.categories.title": "من المخزن إلى الخضروات", "shoppers.categories.lede": "تصفّح آلاف المنتجات في الفئات التي تستخدمها عائلتك يوميًا.", "shoppers.categories.l1": "فاكهة وخضروات طازجة", "shoppers.categories.l2": "ألبان، بيض ومنتجات مبردة", "shoppers.categories.l3": "أرز، زيت، بهارات ومواد أساسية", "shoppers.categories.l4": "منتجات المنزل والعناية الشخصية", "shoppers.categories.l5": "مشروبات، خفائف ومخبوزات", "shoppers.faq.title": "أسئلة شائعة", "shoppers.faq.q1": "من يوصّل طلبي؟", "shoppers.faq.a1": "المتجر الذي اخترته يجهّز الطلب وشريك توصيل محلي يأتيك به. يمكنك تتبّع الحالة في التطبيق.", "shoppers.faq.q2": "هل يمكن الدفع نقدًا؟", "shoppers.faq.a2": "نعم. يحصّل المتجر المدفوعات مباشرة — الدفع عند الاستلام أو الدفع الرقمي المحلي، حسب رغبتك.", "shoppers.faq.q3": "ماذا إذا نفذ المنتج من المخزون؟", "shoppers.faq.a3": "تُحدّث المتاجر التوفر لحظيًا. إذا تغيّر شيء، سيتواصلون معك لاقتراح بديل أو استرداد.", "shoppers.cta.title": "طلبك الأول بانتظارك", "shoppers.cta.lede": "حمّل التطبيق وتسوّق من المتاجر التي تثق بها.", "shoppers.cta.button": "احصل على التطبيق", "stores.hero.eyebrow": "لأصحاب المتاجر", "stores.hero.title": "حوّل كاشيرك إلى أعمال بقالة عصرية.", "stores.hero.lede": "احصل على مزيد من الطلبات، بسّط العمل اليومي، وابقَ المدفوعات في يدك.", "stores.hero.cta": "اطلب عرضًا", "stores.benefits.eyebrow": "لمَ تختار المتاجر أورديناكس", "stores.benefits.title": "كل ما تحتاجه للنمو", "stores.benefits.b1.title": "مزيد من الطلبات", "stores.benefits.b1.body": "وصل إلى المتسوّقين القريبين عبر التطبيق وحوّل متجرك إلى علامة محلية إلكترونية.", "stores.benefits.b2.title": "مالك، حسابك", "stores.benefits.b2.body": "تحصّل مدفوعات العملاء مباشرة. لا نحتفظ بأموالك ولا نأخذ نسبة من كل بيعة.", "stores.benefits.b3.title": "شاشة واحدة بسيطة", "stores.benefits.b3.body": "تتدفق مبيعات الكاشير وطلبات التطبيق في مكان واحد — لا حاجة للتنقل بين التطبيقات والدفاتر.", "stores.benefits.b4.title": "تعمل دون اتصال", "stores.benefits.b4.body": "واصل البيع حتى عند انقطاع الاتصال. كل شيء يتزامن تلقائيًا بمجرد عودة الاتصال.", "stores.benefits.b5.title": "ثنائية اللغة لفريقك", "stores.benefits.b5.body": "يمكن لموظفيك استخدام العربية أو الإنجليزية — الملصقات والفواتير والتقارير تتبدّل فورًا.", "stores.benefits.b6.title": "أعِد التخزين في دقائق", "stores.benefits.b6.body": "اطلب مستلزمات الجملة مباشرة من التطبيق، بفواتير واضحة وتوصيل متوقع.", "stores.pricing.eyebrow": "الأسعار", "stores.pricing.title": "اشتراكات بسيطة، بدون عمولات خفية", "stores.pricing.lede": "لا توجد عمولة سوق. اختر خطة نقاط البيع التي تناسب متجرك.", "stores.pricing.period": "/شهر", "stores.pricing.badge": "الأكثر شيوعًا", "stores.pricing.p1.title": "البداية", "stores.pricing.p1.f1": "موقع متجر واحد", "stores.pricing.p1.f2": "نقطة بيع للكاشير", "stores.pricing.p1.f3": "تقارير أساسية", "stores.pricing.p1.f4": "دعم عبر البريد", "stores.pricing.p2.title": "النمو", "stores.pricing.p2.f1": "حتى 3 أجهزة موظفين", "stores.pricing.p2.f2": "كاشير + طلبات التطبيق", "stores.pricing.p2.f3": "مخزون مباشر", "stores.pricing.p2.f4": "دعم أولوي", "stores.pricing.p3.title": "المؤسسات", "stores.pricing.p3.f1": "فروع متعددة", "stores.pricing.p3.f2": "تحليلات متقدمة", "stores.pricing.p3.f3": "تكاملات الجملة", "stores.pricing.p3.f4": "مدير حساب مخصص", "stores.pricing.cta": "اختر الخطة", "stores.testimonials.eyebrow": "قصص المتاجر", "stores.testimonials.title": "مبنية للمتاجر السعودية", "stores.testimonials.t1.body": "\"كنّا نكتب كل طلب يدويًا. الآن ندير طلبات الكاشير والتطبيق والجملة في مكان واحد.\"", "stores.testimonials.t1.name": "خالد، سوق الأندلس", "stores.testimonials.t2.body": "\"الواجهة الثنائية اللغة جعلت تدريب موظفينا سهلًا. المبيعات استمرت حتى أثناء مشاكل الشبكة.\"", "stores.testimonials.t2.name": "سارة، فريش كورنر", "stores.testimonials.t3.body": "\"عملاؤنا يدفعون لنا مباشرة، والاشتراك متوقع. لا مفاجآت في نهاية الشهر.\"", "stores.testimonials.t3.name": "عمر، دايلي مارت", "stores.cta.title": "جاهز لترقية متجرك؟", "stores.cta.lede": "احجز عرضًا مدته 15 دقيقة وشاهد كيف تناسب أورديناكس كاشيرك.", "stores.cta.button": "احجز عرضًا", "wholesale.hero.eyebrow": "للمورّدين والموزعين", "wholesale.hero.title": "زوّد المتاجر التي تغذّي المملكة.", "wholesale.hero.lede": "قناة جملة رقمية تربط منتجاتك بمتاجر الأحياء في جميع أنحاء المملكة العربية السعودية.", "wholesale.hero.cta": "كن مورّدًا", "wholesale.hero.cta2": "للمتاجر", "wholesale.suppliers.eyebrow": "لمَ يتعاون المورّدون معنا", "wholesale.suppliers.title": "وصل إلى مزيد من المتاجر بتكاليف أقل", "wholesale.suppliers.b1.title": "شبكة متاجر جاهزة", "wholesale.suppliers.b1.body": "وصول إلى مئات المتاجر النشطة التي تطلب بالفعل عبر أورديناكس.", "wholesale.suppliers.b2.title": "رؤى الطلب", "wholesale.suppliers.b2.body": "اعرف ما تشتريه المتاجر، ومتى تعيد التخزين، والمنتجات الأسرع مبيعًا.", "wholesale.suppliers.b3.title": "خدمات لوجستية موثوقة", "wholesale.suppliers.b3.body": "نسّق التوصيلات عبر أسطولك الخاص أو شركائنا اللوجستيين الموثوقين.", "wholesale.suppliers.b4.title": "فواتير واضحة", "wholesale.suppliers.b4.body": "يولّد كل طلب فاتورة بتوضيح الضريبة وحالة الدفع.", "wholesale.suppliers.b5.title": "كتالوج رقمي", "wholesale.suppliers.b5.body": "انشر الأصناف والصور والأسعار مرة واحدة. ترى المتاجر التحديثات لحظيًا.", "wholesale.suppliers.b6.title": "دعم محلي", "wholesale.suppliers.b6.body": "اعمل مع فريق سعودي يفهم التجزئة والمواسم ودورات التوريد.", "wholesale.stores.eyebrow": "للمتاجر", "wholesale.stores.title": "أعِد التخزين دون عناء", "wholesale.stores.lede": "اعثر على ما تحتاجه، قارن بين المورّدين، وابقَ رفوفك ممتلئة — كل ذلك من شاشة واحدة.", "wholesale.stores.f1": "كتالوج واسع من البقالة والمنزل والمنتجات المبردة", "wholesale.stores.f2": "أسعار جملة تنافسية تُحدّث يوميًا", "wholesale.stores.f3": "نوافذ توصيل متوقعة يمكنك التخطيط حولها", "wholesale.stores.f4": "فاتورة واحدة لكل طلب بضريبة واضحة", "wholesale.stores.cta": "انظر خطط المتاجر", "wholesale.stores.panel.eyebrow": "كيف تعمل الجملة", "wholesale.stores.panel.l1": "تصفّح الكتالوج", "wholesale.stores.panel.v1": "1", "wholesale.stores.panel.l2": "قدّم الطلب", "wholesale.stores.panel.v2": "2", "wholesale.stores.panel.l3": "استلم التوصيل", "wholesale.stores.panel.v3": "3", "wholesale.stores.panel.l4": "ادفع الفاتورة", "wholesale.stores.panel.v4": "4", "wholesale.faq.title": "أسئلة الجملة", "wholesale.faq.q1": "من يمكنه أن يصبح مورّدًا؟", "wholesale.faq.a1": "موزّعون ومصنّعون ومستوردون مرخّصون لمنتجات غذائية أو مشروبات أو منزلية أو عناية شخصية في المملكة العربية السعودية.", "wholesale.faq.q2": "كيف تدفع المتاجر؟", "wholesale.faq.a2": "تدفع المتاجر بناءً على فاتورة المورّد وفق شروط دفع متفق عليها — تحويل بنكي أو ائتمان أو دفع عند الاستلام.", "wholesale.faq.q3": "هل عليّ إدراج كامل كتالوجي؟", "wholesale.faq.a3": "لا. ابدأ بأكثر منتجاتك مبيعًا ووسّع مع رؤية الطلب من الشبكة.", "wholesale.cta.title": "وسّع نطاق جملتك", "wholesale.cta.lede": "تحدث إلى فريق الشراكات وشاهد كيف تناسب أورديناكس أعمال التوزيع لديك.", "wholesale.cta.button": "تحدث إلى المبيعات", "contact.hero.eyebrow": "تواصل", "contact.hero.title": "لنتحدث عن البقالة.", "contact.hero.lede": "اطلب عرضًا، كن متجرًا شريكًا، أو انضم إلى شبكة مورّدينا.", "contact.form.eyebrow": "تواصل معنا", "contact.form.title": "أرسل لنا رسالة", "contact.form.lede": "املأ النموذج وسيردّ فريقنا خلال يوم عمل واحد.", "contact.form.nameLabel": "الاسم", "contact.form.namePlaceholder": "اسمك", "contact.form.emailLabel": "البريد الإلكتروني", "contact.form.emailPlaceholder": "you@example.com", "contact.form.phoneLabel": "الهاتف", "contact.form.phonePlaceholder": "+966 50 000 0000", "contact.form.interestLabel": "أنا مهتم بـ", "contact.form.interest.default": "اختر خيارًا", "contact.form.interest.store": "تشغيل متجري على أورديناكس", "contact.form.interest.shopper": "التسوّق كمستهلك", "contact.form.interest.supplier": "توريد منتجات بالجملة", "contact.form.interest.other": "شيء آخر", "contact.form.messageLabel": "الرسالة", "contact.form.messagePlaceholder": "أخبرنا عن عملك", "contact.form.submit": "إرسال الرسالة", "contact.form.success": "شكرًا لك — سنتواصل معك قريبًا.", "contact.form.invalidEmail": "يرجى إدخال بريد إلكتروني صحيح.", "contact.form.required": "يرجى ملء جميع الحقول المطلوبة.", "contact.info.office.title": "المقر الرئيسي", "contact.info.office.body": "الرياض، المملكة العربية السعودية", "contact.info.email.title": "البريد الإلكتروني", "contact.info.phone.title": "الهاتف", "contact.info.hours.title": "ساعات العمل", "contact.info.hours.body": "من الأحد إلى الخميس، 9:00 ص – 6:00 م بتوقيت السعودية", "contact.cta.title": "تفضّل التحدث الآن؟", "contact.cta.lede": "اتصل بنا خلال ساعات العمل أو اطلب معاودة الاتصال.", "contact.cta.button": "اتصل +966 9200 123 45", }, }; const TITLES = { home: { en: "Ordenax — Groceries from your local stores, delivered", ar: "أورديناكس — بقالتك من متاجر حيّك، حتى باب البيت" }, shoppers: { en: "For shoppers — Ordenax", ar: "للمتسوّقين — أورديناكس" }, stores: { en: "For stores — Ordenax", ar: "للمتاجر — أورديناكس" }, wholesale: { en: "Wholesale supply — Ordenax", ar: "التوريد بالجملة — أورديناكس" }, contact: { en: "Contact — Ordenax", ar: "تواصل — أورديناكس" }, }; const html = document.documentElement; const body = document.body; const toggle = document.getElementById("lang-toggle"); const header = document.querySelector(".site-header"); const menuToggle = document.querySelector(".menu-toggle"); const mobileNav = document.getElementById("mobile-nav"); const page = body.dataset.page || "home"; function applyLang(lang) { const dict = STRINGS[lang]; html.lang = lang; html.dir = lang === "ar" ? "rtl" : "ltr"; document.title = (TITLES[page] && TITLES[page][lang]) || TITLES.home[lang]; document.querySelectorAll("[data-i18n]").forEach((el) => { const key = el.getAttribute("data-i18n"); if (dict[key] !== undefined) el.textContent = dict[key]; }); document.querySelectorAll("[data-i18n-placeholder]").forEach((el) => { const key = el.getAttribute("data-i18n-placeholder"); if (dict[key] !== undefined) el.setAttribute("placeholder", dict[key]); }); toggle.textContent = lang === "ar" ? "English" : "العربية"; localStorage.setItem("ordenax-lang", lang); } let lang = localStorage.getItem("ordenax-lang") || "ar"; applyLang(lang); function refreshHeroReveal() { if (!heroTitle || page !== "home") return; heroTitle.classList.remove("text-reveal"); const text = heroTitle.textContent; heroTitle.innerHTML = text .split(/(\s+)/) .map((word, i) => (word.trim() ? `${word}` : word)) .join(""); heroTitle.classList.add("text-reveal"); } toggle.addEventListener("click", () => { body.classList.add("is-switching-lang"); setTimeout(() => { lang = html.lang === "ar" ? "en" : "ar"; applyLang(lang); refreshHeroReveal(); body.classList.remove("is-switching-lang"); }, 120); }); /* Current page nav highlight */ document.querySelectorAll('.nav a[href], .mobile-nav a[href]').forEach((a) => { const href = a.getAttribute("href").replace('.html', ''); if (href === page || (page === 'home' && href === 'index')) { a.setAttribute("aria-current", "page"); } }); /* Mobile nav */ function closeMobileNav() { mobileNav.classList.remove("is-open"); menuToggle.setAttribute("aria-expanded", "false"); mobileNav.setAttribute("aria-hidden", "true"); body.style.overflow = ""; } menuToggle.addEventListener("click", () => { const open = !mobileNav.classList.contains("is-open"); if (open) { mobileNav.classList.add("is-open"); menuToggle.setAttribute("aria-expanded", "true"); mobileNav.setAttribute("aria-hidden", "false"); body.style.overflow = "hidden"; } else { closeMobileNav(); } }); mobileNav.querySelectorAll("a").forEach((a) => a.addEventListener("click", closeMobileNav)); /* Header show/hide on scroll */ let lastScrollY = 0; let ticking = false; function onScroll() { const y = window.scrollY; if (y > 20) header.classList.add("is-scrolled"); else header.classList.remove("is-scrolled"); if (y > lastScrollY && y > 120) header.classList.add("is-hidden"); else header.classList.remove("is-hidden"); lastScrollY = y; ticking = false; } window.addEventListener("scroll", () => { if (!ticking) { window.requestAnimationFrame(onScroll); ticking = true; } }, { passive: true }); /* Hero entrance */ document.querySelectorAll(".hero").forEach((hero) => { hero.classList.add("is-ready"); }); /* Scroll reveal */ const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("is-visible"); if (entry.target.dataset.animate === "stat") animateCounter(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.15, rootMargin: "0px 0px -40px 0px" }); document.querySelectorAll('[data-animate="card"], [data-animate="step"], [data-animate="fade"], [data-animate="stat"]').forEach((el) => { observer.observe(el); }); /* Stagger cards within grids */ document.querySelectorAll(".grid").forEach((grid) => { grid.querySelectorAll(".reveal").forEach((el, i) => { el.style.transitionDelay = `${i * 80}ms`; }); }); /* Counter animation */ function animateCounter(stat) { const numEl = stat.querySelector(".stat-number"); const target = parseInt(numEl.dataset.target, 10); if (Number.isNaN(target)) return; let start = 0; const duration = 1600; const startTime = performance.now(); function step(now) { const progress = Math.min((now - startTime) / duration, 1); const ease = 1 - Math.pow(1 - progress, 3); numEl.textContent = Math.floor(start + (target - start) * ease).toString(); if (progress < 1) requestAnimationFrame(step); } requestAnimationFrame(step); } /* Contact form */ const contactForm = document.getElementById("contact-form"); if (contactForm) { const note = document.getElementById("form-note"); contactForm.addEventListener("submit", (event) => { event.preventDefault(); const dict = STRINGS[html.lang]; const email = contactForm.email.value.trim(); const name = contactForm.name.value.trim(); const interest = contactForm.interest.value; if (!name || !email || !interest) { note.textContent = dict["contact.form.required"]; return; } if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { note.textContent = dict["contact.form.invalidEmail"]; contactForm.email.focus(); return; } note.textContent = dict["contact.form.success"]; contactForm.reset(); }); } /* Parallax scroll */ const parallaxElements = document.querySelectorAll("[data-parallax]"); if (parallaxElements.length && !window.matchMedia("(prefers-reduced-motion: reduce)").matches) { let parallaxTicking = false; function updateParallax() { const y = window.scrollY; parallaxElements.forEach((el) => { const speed = parseFloat(el.dataset.parallax) || 0.1; const offset = y * speed; el.style.transform = `translate3d(0, ${offset}px, 0)`; }); parallaxTicking = false; } window.addEventListener("scroll", () => { if (!parallaxTicking) { window.requestAnimationFrame(updateParallax); parallaxTicking = true; } }, { passive: true }); } /* Hero word-by-word reveal on home */ const heroTitle = document.querySelector(".hero-apple .hero-title"); refreshHeroReveal();