{
  "version": 3,
  "sources": ["/cdn/shop/t/8/assets/gb-cart.js?x=14881"],
  "sourcesContent": ["/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   GAGABERRY SHARED CART (2026-10-22)\r\n   One cart for every shop page + the homepage, saved in this browser (\"gb_cart_v1\").\r\n   - Lines: single pieces (\u00C0 La Carte, A Little Christmas: size + quantity)\r\n            and gift sets (fixed price + the pieces chosen for it).\r\n   - Delivery: FREE if the cart is AED 200+ (normal prices, before the offer), otherwise AED 20,\r\n     the same for gift sets (owner's decision, 2026-10-26; before: AED 25, free with any gift set).\r\n   - Website offer: 10% off every line (2026-10-26). Each price is rounded DOWN to whole AED.\r\n     Change the numbers in CONFIG below (discount_percent: 0 turns the offer off).\r\n   - Pay by card (Netlify -> Stripe, every line in one payment) or cash on delivery\r\n     (Shopify contact form email, every line in one message). Both for every cart.\r\n   - Texts: English + Arabic in T below (one place for all pages).\r\n   Pages talk to the cart through window.GBCart (see the end of this file).\r\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\r\n(function(){\r\n  if (window.GBCart) return;\r\n\r\n  var CONFIG = {\r\n    delivery_charge: 20,\r\n    free_delivery_threshold: 200,  /* counted on the normal prices, before the website offer */\r\n    discount_percent: 10,          /* 2026-10-26: website offer (0 = off) */\r\n    checkout_url: \"https://rainbow-sable-94daa8.netlify.app/.netlify/functions/create-checkout\",\r\n    success_url: \"https://gagaberry.com/pages/order-complete?order={CHECKOUT_SESSION_ID}\",\r\n    whatsapp: \"971568177294\",\r\n    instagram: \"https://www.instagram.com/gagaberry.sora\"\r\n  };\r\n  var KEY = \"gb_cart_v1\";             /* the cart */\r\n  var PENDING_KEY = \"gb_cart_pending\"; /* copy of the cart while the customer is on the card payment page */\r\n  var COD_KEY = \"gb_cart_cod\";         /* (this tab) a cash-on-delivery order was just sent */\r\n\r\n  var AR = /^\\/ar(\\/|$)/.test(location.pathname) || /^ar/i.test(document.documentElement.lang || \"\");\r\n  var PREFIX = AR ? \"/ar\" : \"\";\r\n\r\n  var T = AR ? {\r\n    cart: \"\u0627\u0644\u0633\u0644\u0629\",\r\n    your_cart: \"\u0633\u0644\u0629 \u0627\u0644\u062A\u0633\u0648\u0642\",\r\n    open_cart: \"\u0641\u062A\u062D \u0633\u0644\u0629 \u0627\u0644\u062A\u0633\u0648\u0642\",\r\n    items_aria: \"\u0639\u062F\u062F \u0627\u0644\u0642\u0637\u0639 \u0641\u064A \u0627\u0644\u0633\u0644\u0629: {n}\",\r\n    close: \"\u0625\u063A\u0644\u0627\u0642\",\r\n    back: \"\u0631\u062C\u0648\u0639\",\r\n    empty_title: \"\u0633\u0644\u062A\u0643 \u0641\u0627\u0631\u063A\u0629\",\r\n    empty_text: \"\u0623\u0636\u064A\u0641\u064A \u0642\u0637\u0639\u0627\u064B \u0641\u0631\u062F\u064A\u0629 \u0623\u0648 \u0635\u0645\u0651\u0645\u064A \u0637\u0642\u0645 \u0647\u062F\u064A\u0629\u060C \u0648\u0633\u062A\u062C\u062F\u064A\u0646 \u0643\u0644 \u0645\u0627 \u0627\u062E\u062A\u0631\u062A\u0650\u0647 \u0647\u0646\u0627.\",\r\n    shop_pieces: \"\u062A\u0633\u0648\u0651\u0642\u064A \u0627\u0644\u0642\u0637\u0639 \u0627\u0644\u0641\u0631\u062F\u064A\u0629\",\r\n    shop_xmas: \"\u0644\u0645\u0633\u0629 \u0645\u0646 \u0627\u0644\u0643\u0631\u064A\u0633\u0645\u0627\u0633\",\r\n    shop_sets: \"\u0623\u0637\u0642\u0645 \u0648\u0647\u0627\u0645\u0628\u0631\u0627\u062A \u0627\u0644\u0647\u062F\u0627\u064A\u0627\",\r\n    gift_set: \"\u0637\u0642\u0645 \u0647\u062F\u064A\u0629\",\r\n    picks: \"\u0627\u0644\u0642\u0637\u0639 \u0627\u0644\u0645\u062E\u062A\u0627\u0631\u0629 ({n})\",\r\n    size: \"\u0627\u0644\u0645\u0642\u0627\u0633\",\r\n    qty_minus: \"\u062A\u0642\u0644\u064A\u0644 \u0627\u0644\u0643\u0645\u064A\u0629\",\r\n    qty_plus: \"\u0632\u064A\u0627\u062F\u0629 \u0627\u0644\u0643\u0645\u064A\u0629\",\r\n    remove: \"\u0625\u0632\u0627\u0644\u0629\",\r\n    subtotal: \"\u0627\u0644\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0641\u0631\u0639\u064A\",\r\n    delivery: \"\u0627\u0644\u062A\u0648\u0635\u064A\u0644\",\r\n    free: \"\u0645\u062C\u0627\u0646\u064A\",\r\n    total: \"\u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A\",\r\n    note_info: \"\u062A\u0648\u0635\u064A\u0644 \u0645\u062C\u0627\u0646\u064A \u0644\u0644\u0637\u0644\u0628\u0627\u062A \u0628\u0642\u064A\u0645\u0629 200 \u062F\u0631\u0647\u0645 \u0648\u0623\u0643\u062B\u0631\",\r\n    offer: \"\u062D\u0635\u0631\u064A\u0627\u064B \u0639\u0644\u0649 \u0627\u0644\u0645\u0648\u0642\u0639 \u00B7 \u062E\u0635\u0645 {n}%\",\r\n    offer_saved: \"\u0648\u0641\u0651\u0631\u062A\u0650 {n} \u062F\u0631\u0647\u0645 \u0645\u0639 \u0639\u0631\u0636\u0646\u0627 \u0627\u0644\u062D\u0635\u0631\u064A \u0639\u0644\u0649 \u0627\u0644\u0645\u0648\u0642\u0639\",\r\n    offer_kicker: \"\u062D\u0635\u0631\u064A\u0627\u064B \u0639\u0644\u0649 \u0627\u0644\u0645\u0648\u0642\u0639\",\r\n    offer_banner: \"\u0627\u0633\u062A\u0645\u062A\u0639\u064A \u0628\u062E\u0635\u0645 {n}% \u0639\u0644\u0649 \u0643\u0644 \u0637\u0644\u0628 \u0645\u0646 \u0645\u0648\u0642\u0639\u0646\u0627\",\r\n    offer_banner_sub: \"\u062A\u0648\u0635\u064A\u0644 \u0645\u062C\u0627\u0646\u064A \u0641\u064A \u062C\u0645\u064A\u0639 \u0623\u0646\u062D\u0627\u0621 \u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u0644\u0644\u0637\u0644\u0628\u0627\u062A \u0628\u0642\u064A\u0645\u0629 200\u00A0\u062F\u0631\u0647\u0645\u00A0\u0648\u0623\u0643\u062B\u0631\",\r\n    note_free: \"\u0637\u0644\u0628\u0643 \u0645\u0624\u0647\u0644 \u0644\u0644\u062A\u0648\u0635\u064A\u0644 \u0627\u0644\u0645\u062C\u0627\u0646\u064A\",\r\n    note_more: \"\u0623\u0636\u064A\u0641\u064A {n} \u062F\u0631\u0647\u0645 \u0641\u0642\u0637 \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u062A\u0648\u0635\u064A\u0644 \u0645\u062C\u0627\u0646\u064A\",\r\n    delivery_time: \"\u0627\u0644\u062A\u0648\u0635\u064A\u0644 \u0644\u062C\u0645\u064A\u0639 \u0623\u0646\u062D\u0627\u0621 \u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062A \u062E\u0644\u0627\u0644 \u0662\u2013\u0663 \u0623\u064A\u0627\u0645 \u0639\u0645\u0644\",\r\n    checkout: \"\u0625\u062A\u0645\u0627\u0645 \u0627\u0644\u0637\u0644\u0628\",\r\n    continue_shopping: \"\u0645\u062A\u0627\u0628\u0639\u0629 \u0627\u0644\u062A\u0633\u0648\u0642\",\r\n    checking: \"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u062A\u0648\u0641\u0631 \u0627\u0644\u0642\u0637\u0639...\",\r\n    sold_out: \"\u0646\u0641\u062F\u062A \u0627\u0644\u0643\u0645\u064A\u0629 \u2014 \u064A\u0631\u062C\u0649 \u0625\u0632\u0627\u0644\u062A\u0647\u0627\",\r\n    set_sold_out: \"\u0646\u0641\u062F\u062A \u0647\u0630\u0647 \u0627\u0644\u0642\u0637\u0639\u0629: {name} \u2014 \u064A\u0631\u062C\u0649 \u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0637\u0642\u0645 \u0648\u062A\u0635\u0645\u064A\u0645\u0647 \u0645\u0646 \u062C\u062F\u064A\u062F\",\r\n    fix_cart: \"\u0628\u0639\u0636 \u0627\u0644\u0642\u0637\u0639 \u0644\u0645 \u062A\u0639\u062F \u0645\u062A\u0648\u0641\u0631\u0629. \u064A\u0631\u062C\u0649 \u0625\u0632\u0627\u0644\u062A\u0647\u0627 \u0644\u0644\u0645\u062A\u0627\u0628\u0639\u0629.\",\r\n    price_changed: \"\u062A\u0645 \u062A\u062D\u062F\u064A\u062B \u0628\u0639\u0636 \u0627\u0644\u0623\u0633\u0639\u0627\u0631. \u064A\u0631\u062C\u0649 \u0645\u0631\u0627\u062C\u0639\u0629 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A \u062B\u0645 \u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629.\",\r\n    stock_limit: \"\u0645\u062A\u0648\u0641\u0631 {qty} \u0641\u0642\u0637 \u0641\u064A \u0627\u0644\u0645\u062E\u0632\u0648\u0646.\",\r\n    stock_shared: \"\u0645\u062A\u0648\u0641\u0631 {qty} \u0641\u0642\u0637 \u2014 \u0627\u0644\u0628\u0627\u0642\u064A \u0645\u0648\u062C\u0648\u062F \u0641\u064A \u0642\u0637\u0639\u0629 \u0623\u062E\u0631\u0649 \u0641\u064A \u0633\u0644\u062A\u0643.\",\r\n    used_elsewhere: \"\u0646\u0641\u062F\u062A \u0627\u0644\u0643\u0645\u064A\u0629 \u2014 \u0622\u062E\u0631 \u0642\u0637\u0639\u0629 \u0645\u0648\u062C\u0648\u062F\u0629 \u0641\u064A \u0637\u0644\u0628 \u0622\u062E\u0631 \u0641\u064A \u0633\u0644\u062A\u0643. \u064A\u0631\u062C\u0649 \u0625\u0632\u0627\u0644\u062A\u0647\u0627.\",\r\n    only_left: \"\u0645\u062A\u0648\u0641\u0631 {n} \u0641\u0642\u0637 \u2014 \u064A\u0631\u062C\u0649 \u062A\u0642\u0644\u064A\u0644 \u0627\u0644\u0643\u0645\u064A\u0629\",\r\n    taken: \"\u0639\u0630\u0631\u0627\u064B \u2014 \u0622\u062E\u0631 \u0642\u0637\u0639\u0629 \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u062A\u062C \u0645\u0648\u062C\u0648\u062F\u0629 \u0628\u0627\u0644\u0641\u0639\u0644 \u0641\u064A \u0633\u0644\u062A\u0643.\",\r\n    added_set: \"\u062A\u0645\u062A \u0625\u0636\u0627\u0641\u0629 {name} \u0625\u0644\u0649 \u0633\u0644\u062A\u0643\",\r\n    restored: \"\u062A\u0645\u062A \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0633\u0644\u062A\u0643. \u064A\u0645\u0643\u0646\u0643 \u0625\u0643\u0645\u0627\u0644 \u0627\u0644\u0637\u0644\u0628 \u0645\u062A\u0649 \u0634\u0626\u062A\u0650.\",\r\n    restore_offer: \"\u0644\u0645 \u062A\u0643\u0645\u0644\u064A \u0627\u0644\u062F\u0641\u0639\u061F \u064A\u0645\u0643\u0646\u0643 \u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0633\u0644\u062A\u0643.\",\r\n    restore_btn: \"\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0633\u0644\u062A\u064A\",\r\n    pay_title: \"\u0627\u062E\u062A\u0627\u0631\u064A \u0637\u0631\u064A\u0642\u0629 \u0627\u0644\u062F\u0641\u0639\",\r\n    pay_sub: \"\u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u062F\u0641\u0639 \u0628\u0623\u0645\u0627\u0646 \u0639\u0628\u0631 \u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A \u0623\u0648 \u0646\u0642\u062F\u0627\u064B \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\",\r\n    pay_online: \"\u0627\u0644\u062F\u0641\u0639 \u0628\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u0639\u0628\u0631 \u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A\",\r\n    pay_online_note: \"\u062F\u0641\u0639 \u0622\u0645\u0646 \u0628\u0627\u0644\u0628\u0637\u0627\u0642\u0629\",\r\n    pay_cod: \"\u0627\u0644\u062F\u0641\u0639 \u0646\u0642\u062F\u0627\u064B \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\",\r\n    pay_cod_note: \"\u064A\u064F\u0631\u062C\u0649 \u062A\u062C\u0647\u064A\u0632 \u0627\u0644\u0645\u0628\u0644\u063A \u0646\u0642\u062F\u0627\u064B. \u0627\u0644\u062F\u0641\u0639 \u0628\u0627\u0644\u0628\u0637\u0627\u0642\u0629 \u063A\u064A\u0631 \u0645\u062A\u0627\u062D \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645.\",\r\n    processing: \"\u062C\u0627\u0631\u064D \u0627\u0644\u0645\u0639\u0627\u0644\u062C\u0629...\",\r\n    error_checkout: \"\u062D\u062F\u062B \u062E\u0637\u0623 \u0645\u0627. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.\",\r\n    cod_title: \"\u0628\u064A\u0627\u0646\u0627\u062A \u0637\u0644\u0628 \u0627\u0644\u062F\u0641\u0639 \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\",\r\n    cod_sub: \"\u0623\u062F\u062E\u0644\u064A \u0628\u064A\u0627\u0646\u0627\u062A\u0643 \u0648\u0633\u0646\u062A\u0648\u0627\u0635\u0644 \u0645\u0639\u0643 \u0644\u062A\u0623\u0643\u064A\u062F \u0627\u0644\u0637\u0644\u0628. \u064A\u064F\u0631\u062C\u0649 \u062A\u062C\u0647\u064A\u0632 \u0627\u0644\u0645\u0628\u0644\u063A \u0646\u0642\u062F\u0627\u064B \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\u060C \u0641\u0645\u0646\u062F\u0648\u0628 \u0627\u0644\u062A\u0648\u0635\u064A\u0644 \u0644\u0627 \u064A\u062D\u0645\u0644 \u062C\u0647\u0627\u0632 \u062F\u0641\u0639 \u0628\u0627\u0644\u0628\u0637\u0627\u0642\u0629.\",\r\n    cod_name: \"\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0643\u0627\u0645\u0644\",\r\n    cod_phone: \"\u0631\u0642\u0645 \u0627\u0644\u0647\u0627\u062A\u0641\",\r\n    cod_phone_hint: \"\u0623\u062F\u062E\u0644\u064A \u0631\u0642\u0645 \u0645\u0648\u0628\u0627\u064A\u0644 \u0625\u0645\u0627\u0631\u0627\u062A\u064A \u0645\u0646 10 \u0623\u0631\u0642\u0627\u0645 \u064A\u0628\u062F\u0623 \u0628\u0640 05 \u0623\u0648 \u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u062B\u0627\u0628\u062A \u0645\u0646 9 \u0623\u0631\u0642\u0627\u0645 \u064A\u0628\u062F\u0623 \u0628\u0640 02 \u0623\u0648 03 \u0623\u0648 04 \u0623\u0648 06 \u0623\u0648 07 \u0623\u0648 09\",\r\n    cod_email: \"\u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\",\r\n    cod_email_hint: \"\u0623\u062F\u062E\u0644\u064A \u0628\u0631\u064A\u062F\u0627\u064B \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A\u0627\u064B \u0635\u0627\u0644\u062D\u0627\u064B \u0645\u062B\u0644 name@example.com\",\r\n    cod_emirate: \"\u0627\u0644\u0625\u0645\u0627\u0631\u0629\",\r\n    cod_country: \"\u0627\u0644\u062F\u0648\u0644\u0629\",\r\n    cod_address1: \"\u0627\u0644\u0639\u0646\u0648\u0627\u0646\",\r\n    cod_address2: \"\u062A\u0641\u0627\u0635\u064A\u0644 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064A\u0629 (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)\",\r\n    cod_notes: \"\u0645\u0644\u0627\u062D\u0638\u0627\u062A \u0627\u0644\u062A\u0648\u0635\u064A\u0644 (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)\",\r\n    cod_submit: \"\u062A\u0623\u0643\u064A\u062F \u0637\u0644\u0628 \u0627\u0644\u062F\u0641\u0639 \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\",\r\n    cod_sending: \"\u062C\u0627\u0631\u064D \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0637\u0644\u0628...\",\r\n    cod_done_title: \"\u062A\u0645 \u0627\u0633\u062A\u0644\u0627\u0645 \u0637\u0644\u0628\u0643!\",\r\n    cod_done_text: \"\u0633\u0646\u062A\u0648\u0627\u0635\u0644 \u0645\u0639\u0643 \u0639\u0628\u0631 \u0627\u0644\u0647\u0627\u062A\u0641 \u0623\u0648 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u0644\u062A\u0623\u0643\u064A\u062F \u0627\u0644\u0637\u0644\u0628 \u0642\u0628\u0644 \u0627\u0644\u062A\u0648\u0635\u064A\u0644. \u064A\u064F\u0631\u062C\u0649 \u062A\u062C\u0647\u064A\u0632 \u0627\u0644\u0645\u0628\u0644\u063A \u0646\u0642\u062F\u0627\u064B \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645\u060C \u0641\u0645\u0646\u062F\u0648\u0628 \u0627\u0644\u062A\u0648\u0635\u064A\u0644 \u0644\u0627 \u064A\u062D\u0645\u0644 \u062C\u0647\u0627\u0632 \u062F\u0641\u0639 \u0628\u0627\u0644\u0628\u0637\u0627\u0642\u0629.\",\r\n    cod_ref: \"\u0631\u0642\u0645 \u0645\u0631\u062C\u0639 \u0627\u0644\u0637\u0644\u0628\",\r\n    cod_help_title: \"\u0647\u0644 \u062A\u062D\u062A\u0627\u062C\u064A\u0646 \u0625\u0644\u0649 \u0645\u0633\u0627\u0639\u062F\u0629 \u0628\u0634\u0623\u0646 \u0637\u0644\u0628\u0643\u061F\",\r\n    cod_help_text: \"\u062A\u0648\u0627\u0635\u0644\u064A \u0645\u0639\u0646\u0627 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0627\u0644\u062C\u0627\u0647\u0632\u0629 \u0623\u062F\u0646\u0627\u0647 \u0645\u0639 \u0631\u0642\u0645 \u0637\u0644\u0628\u0643.\",\r\n    cod_whatsapp: \"\u0627\u0633\u062A\u0641\u0633\u0631\u064A \u0639\u0628\u0631 \u0648\u0627\u062A\u0633\u0627\u0628\",\r\n    cod_instagram: \"\u0627\u0633\u062A\u0641\u0633\u0631\u064A \u0639\u0628\u0631 \u0625\u0646\u0633\u062A\u063A\u0631\u0627\u0645\",\r\n    cod_inquiry: \"\u0645\u0631\u062D\u0628\u0627\u064B \u063A\u0627\u063A\u0627\u0628\u064A\u0631\u064A\u060C \u0623\u0648\u062F \u0627\u0644\u0627\u0633\u062A\u0641\u0633\u0627\u0631 \u0639\u0646 \u062D\u0627\u0644\u0629 \u0637\u0644\u0628 \u0627\u0644\u062F\u0641\u0639 \u0639\u0646\u062F \u0627\u0644\u0627\u0633\u062A\u0644\u0627\u0645. \u0631\u0642\u0645 \u0637\u0644\u0628\u064A \u0647\u0648 {order_id}. \u0647\u0644 \u064A\u0645\u0643\u0646\u0643\u0645 \u062A\u0632\u0648\u064A\u062F\u064A \u0628\u0622\u062E\u0631 \u062A\u062D\u062F\u064A\u062B\u061F \u0634\u0643\u0631\u0627\u064B \u0644\u0643\u0645.\",\r\n    cod_copied: \"\u062A\u0645 \u0646\u0633\u062E \u0627\u0644\u0631\u0633\u0627\u0644\u0629. \u0627\u0644\u0635\u0642\u064A\u0647\u0627 \u0641\u064A \u0631\u0633\u0627\u0644\u0629 \u0625\u0646\u0633\u062A\u063A\u0631\u0627\u0645.\",\r\n    menu: \"\u0627\u0644\u0642\u0627\u0626\u0645\u0629\",\r\n    open_menu: \"\u0641\u062A\u062D \u0627\u0644\u0642\u0627\u0626\u0645\u0629\",\r\n    home: \"\u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629\",\r\n    shop: \"\u062A\u0633\u0648\u0651\u0642\",\r\n    gift_sets: \"\u0623\u0637\u0642\u0645 \u0648\u0647\u0627\u0645\u0628\u0631\u0627\u062A \u0627\u0644\u0647\u062F\u0627\u064A\u0627\",\r\n    crumb_sets: \"\u0623\u0637\u0642\u0645 \u0627\u0644\u0647\u062F\u0627\u064A\u0627\",\r\n    single: \"\u0627\u0644\u0642\u0637\u0639 \u0627\u0644\u0641\u0631\u062F\u064A\u0629\",\r\n    xmas: \"\u0644\u0645\u0633\u0629 \u0645\u0646 \u0627\u0644\u0643\u0631\u064A\u0633\u0645\u0627\u0633\",\r\n    hello: \"\u0635\u0646\u062F\u0648\u0642 \u0623\u0647\u0644\u0627\u064B \u064A\u0627 \u0635\u063A\u064A\u0631\u064A\",\r\n    sbh: \"\u0647\u0627\u0645\u0628\u0631 \u0643\u064A\u0633 \u0627\u0644\u0646\u0648\u0645\",\r\n    nest: \"\u0639\u0634 \u0627\u0644\u0637\u0641\u0644 \u0627\u0644\u0645\u0631\u064A\u062D\",\r\n    new_tag: \"\u062C\u062F\u064A\u062F\",\r\n    help: \"\u062A\u062D\u062A\u0627\u062C\u064A\u0646 \u0645\u0633\u0627\u0639\u062F\u0629\u061F \u062A\u0648\u0627\u0635\u0644\u064A \u0645\u0639\u0646\u0627 \u0639\u0628\u0631 \u0648\u0627\u062A\u0633\u0627\u0628\",\r\n    you_are_here: \"\u0623\u0646\u062A\u0650 \u0647\u0646\u0627\"\r\n  } : {\r\n    cart: \"Cart\",\r\n    your_cart: \"Your Cart\",\r\n    open_cart: \"Open your cart\",\r\n    items_aria: \"{n} items in your cart\",\r\n    close: \"Close\",\r\n    back: \"Back\",\r\n    empty_title: \"Your cart is empty\",\r\n    empty_text: \"Add single pieces or build a gift set \u2014 everything you choose waits here.\",\r\n    shop_pieces: \"Shop single pieces\",\r\n    shop_xmas: \"A Little Christmas\",\r\n    shop_sets: \"Gift sets & hampers\",\r\n    gift_set: \"Gift set\",\r\n    picks: \"Chosen pieces ({n})\",\r\n    size: \"Size\",\r\n    qty_minus: \"Fewer\",\r\n    qty_plus: \"More\",\r\n    remove: \"Remove\",\r\n    subtotal: \"Subtotal\",\r\n    delivery: \"Delivery\",\r\n    free: \"FREE\",\r\n    total: \"Total\",\r\n    note_info: \"Complimentary delivery on orders of AED\u00A0200 and above\",\r\n    offer: \"Online exclusive \u00B7 {n}% off\",\r\n    offer_saved: \"You save AED {n} with our online exclusive\",\r\n    offer_kicker: \"Online Exclusive\",\r\n    offer_banner: \"Enjoy {n}% off every order placed on our website\",\r\n    offer_banner_sub: \"Complimentary UAE delivery on orders of AED\u00A0200\u00A0and\u00A0above\",\r\n    note_free: \"Your order qualifies for complimentary delivery\",\r\n    note_more: \"You're AED {n} away from complimentary delivery\",\r\n    delivery_time: \"Delivered across the UAE in 2\u20133 working days\",\r\n    checkout: \"Checkout\",\r\n    continue_shopping: \"Continue shopping\",\r\n    checking: \"Checking stock...\",\r\n    sold_out: \"Sold out \u2014 please remove it\",\r\n    set_sold_out: \"Sold out: {name} \u2014 please remove this set and build it again\",\r\n    fix_cart: \"Some pieces are no longer available. Please remove them to continue.\",\r\n    price_changed: \"Some prices were updated. Please check the total, then continue.\",\r\n    stock_limit: \"Only {qty} available in stock.\",\r\n    stock_shared: \"Only {qty} left \u2014 the rest is already in another item in your cart.\",\r\n    used_elsewhere: \"Sold out \u2014 the last one is already in another item in your cart. Please remove it.\",\r\n    only_left: \"Only {n} left \u2014 please lower the quantity\",\r\n    taken: \"Sorry \u2014 the last one of this piece is already in your cart.\",\r\n    added_set: \"{name} is in your cart\",\r\n    restored: \"Your cart is back. You can finish your order any time.\",\r\n    restore_offer: \"Didn't finish paying? You can get your cart back.\",\r\n    restore_btn: \"Restore my cart\",\r\n    pay_title: \"Choose how to pay\",\r\n    pay_sub: \"Pay securely online or pay cash when your order arrives\",\r\n    pay_online: \"Pay by Card Online\",\r\n    pay_online_note: \"Secure card payment\",\r\n    pay_cod: \"Pay Cash on Delivery\",\r\n    pay_cod_note: \"Please have cash ready. No card payments at the door.\",\r\n    processing: \"Processing...\",\r\n    error_checkout: \"Something went wrong. Please try again.\",\r\n    cod_title: \"Cash on Delivery Details\",\r\n    cod_sub: \"Enter your details and we\u2019ll contact you to confirm your order. Please have cash ready when your order arrives, as our delivery drivers do not carry card terminals.\",\r\n    cod_name: \"Full name\",\r\n    cod_phone: \"Phone number\",\r\n    cod_phone_hint: \"Enter a UAE mobile (10 digits starting 05) or home number (9 digits starting 02, 03, 04, 06, 07 or 09)\",\r\n    cod_email: \"Email\",\r\n    cod_email_hint: \"Enter a valid email such as name@example.com\",\r\n    cod_emirate: \"Emirate\",\r\n    cod_country: \"Country\",\r\n    cod_address1: \"Address\",\r\n    cod_address2: \"Additional address details (optional)\",\r\n    cod_notes: \"Delivery notes (optional)\",\r\n    cod_submit: \"Place Cash on Delivery Order\",\r\n    cod_sending: \"Sending your order...\",\r\n    cod_done_title: \"Your order request is received!\",\r\n    cod_done_text: \"We\u2019ll contact you by phone or email to confirm your order before delivery. Please have cash ready when your order arrives, as our delivery drivers do not carry card terminals.\",\r\n    cod_ref: \"Order reference\",\r\n    cod_help_title: \"Need help with your order?\",\r\n    cod_help_text: \"Contact us using the ready-made message below with your order ID.\",\r\n    cod_whatsapp: \"Ask on WhatsApp\",\r\n    cod_instagram: \"Ask on Instagram\",\r\n    cod_inquiry: \"Hi Gagaberry, I would like an update on my Cash on Delivery order. My order ID is {order_id}. Could you please share an update? Thank you.\",\r\n    cod_copied: \"Message copied. Paste it into your Instagram DM.\",\r\n    menu: \"Menu\",\r\n    open_menu: \"Open the menu\",\r\n    home: \"Home\",\r\n    shop: \"Shop\",\r\n    gift_sets: \"Gift Sets & Hampers\",\r\n    crumb_sets: \"Gift Sets\",\r\n    single: \"Single Pieces\",\r\n    xmas: \"A Little Christmas\",\r\n    hello: \"Hello Baby Box\",\r\n    sbh: \"Sleeping Bag Hamper\",\r\n    nest: \"Baby Nest\",\r\n    new_tag: \"New\",\r\n    help: \"Need help? Chat with us on WhatsApp\",\r\n    you_are_here: \"You are here\"\r\n  };\r\n\r\n  /* \u2500\u2500 helpers \u2500\u2500 */\r\n  function esc(s){ return String(s == null ? \"\" : s).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\"); }\r\n  function fmt(n){ return (Math.round((+n || 0) * 100) / 100).toFixed(2); }\r\n  function aed(n){ return \"AED \" + fmt(n); }\r\n  function readRaw(k, session){ try { return (session ? sessionStorage : localStorage).getItem(k); } catch(e){ return null; } }\r\n  function writeRaw(k, v, session){\r\n    try { var s = session ? sessionStorage : localStorage; if (v == null) s.removeItem(k); else s.setItem(k, v); } catch(e){}\r\n  }\r\n  function readJSON(k, session){ try { return JSON.parse(readRaw(k, session) || \"null\"); } catch(e){ return null; } }\r\n  function urlParam(name){ try { return new URLSearchParams(location.search).get(name); } catch(e){ return null; } }\r\n  function withParam(href, name, value){\r\n    try { var u = new URL(href); u.searchParams.set(name, value); return u.toString(); } catch(e){ return href; }\r\n  }\r\n  function dropParam(name){\r\n    try {\r\n      var u = new URL(location.href); if (!u.searchParams.has(name)) return;\r\n      u.searchParams.delete(name);\r\n      history.replaceState(history.state, document.title, u.pathname + u.search + u.hash);\r\n    } catch(e){}\r\n  }\r\n\r\n  /* \u2500\u2500 the cart lines \u2500\u2500 */\r\n  function validLine(l){\r\n    if (!l || typeof l !== \"object\") return false;\r\n    if (l.type === \"piece\") return !!l.variantId && isFinite(l.price) && l.quantity > 0;\r\n    if (l.type === \"set\") {\r\n      if (l.orderName === \"Little Joy Set\" || /^\\/(?:ar\\/)?pages\\/hamper-110\\/?$/.test(l.src || l.url)) return false;\r\n      return isFinite(l.price) && Array.isArray(l.picks);\r\n    }\r\n    return false;\r\n  }\r\n  var mem = [];  /* used when the browser blocks storage (private mode etc.) */\r\n  function load(){\r\n    var d = readJSON(KEY);\r\n    var list = d && Array.isArray(d.lines) ? d.lines : mem;\r\n    return list.filter(validLine);\r\n  }\r\n  var lines = load();\r\n  var listeners = [];\r\n\r\n  function save(){\r\n    mem = lines;\r\n    writeRaw(KEY, lines.length ? JSON.stringify({ v: 1, lines: lines }) : null);\r\n    changed();\r\n  }\r\n  function changed(){\r\n    render();\r\n    listeners.slice().forEach(function(fn){ try { fn(); } catch(e){} });\r\n  }\r\n\r\n  /* the website offer price of one item: 10% off, rounded down to whole AED (never less than 10% off) */\r\n  function offerPrice(p){\r\n    var d = +CONFIG.discount_percent || 0;\r\n    return d ? Math.floor(+p * (100 - d) / 100 + 1e-6) : +p;\r\n  }\r\n  /* items = normal prices, discount = the website offer, subtotal = after the offer (what the pages show) */\r\n  function totals(){\r\n    var items = 0, sub = 0, count = 0;\r\n    lines.forEach(function(l){\r\n      if (l.type === \"set\") { items += +l.price; sub += offerPrice(l.price); count += 1; }\r\n      else { items += l.price * l.quantity; sub += offerPrice(l.price) * l.quantity; count += l.quantity; }\r\n    });\r\n    items = Math.round(items * 100) / 100; sub = Math.round(sub * 100) / 100;\r\n    var free = !count || items >= CONFIG.free_delivery_threshold;\r\n    var delivery = free ? 0 : CONFIG.delivery_charge;\r\n    return { count: count, items: items, discount: Math.round((items - sub) * 100) / 100, subtotal: sub,\r\n             delivery: delivery, total: sub + delivery,\r\n             needed: Math.max(0, CONFIG.free_delivery_threshold - items) };\r\n  }\r\n  function deliveryNote(){\r\n    var t = totals();\r\n    if (!t.count) return { free: false, text: T.note_info };\r\n    if (!t.delivery) return { free: true, text: T.note_free };\r\n    return { free: false, text: T.note_more.replace(\"{n}\", fmt(t.needed)) };\r\n  }\r\n\r\n  function findLine(id){ for (var i = 0; i < lines.length; i++) if (lines[i].id === id) return lines[i]; return null; }\r\n\r\n  /* Single pieces as a map { variantId: item } (the shape the \u00C0 La Carte / Christmas pages use). */\r\n  function pieceMap(){\r\n    var m = {};\r\n    lines.forEach(function(l){ if (l.type === \"piece\") m[l.variantId] = JSON.parse(JSON.stringify(l)); });\r\n    return m;\r\n  }\r\n  function pieceLine(it, old){\r\n    old = old || {};\r\n    return {\r\n      type: \"piece\", id: \"p\" + it.variantId, variantId: String(it.variantId),\r\n      productId: String(it.productId || old.productId || \"\"), handle: it.handle || old.handle || \"\",\r\n      name: it.name || old.name || \"\", size: it.size || \"\", price: +it.price,\r\n      quantity: Math.max(1, parseInt(it.quantity, 10) || 1), maxQty: it.maxQty || old.maxQty || 999,\r\n      catKey: it.catKey || old.catKey || \"\", catName: it.catName || old.catName || \"\",\r\n      img: it.img || old.img || \"\", src: it.src || old.src || \"\", url: it.url || old.url || \"\",\r\n      stock: stockNum(it.stock != null ? it.stock : old.stock),\r\n      soldOut: false, short: 0\r\n    };\r\n  }\r\n  function stockNum(v){ return v == null || v === \"\" || !isFinite(v) ? null : Math.max(0, parseInt(v, 10)); }\r\n\r\n  /* \u2500\u2500 stock shared by the whole cart (2026-10-22) \u2500\u2500\r\n     One variant can sit in several lines: a single piece AND picks inside gift sets (or Romper 1 + Romper 2).\r\n     \"stock\" (saved with each piece / pick by the page that added it) = how many the shop has, null = not limited.\r\n     usedQty = how many of that variant the cart already holds. The pages use both to show \"Out of stock\"\r\n     at the 2nd place when the last one is already in the cart. */\r\n  function usedQty(vid, skipId){\r\n    vid = String(vid); var n = 0;\r\n    lines.forEach(function(l){\r\n      if (l.id === skipId) return;\r\n      if (l.type === \"piece\") { if (l.variantId === vid) n += l.quantity; }\r\n      else l.picks.forEach(function(p){ if (p.variantId === vid) n += 1; });\r\n    });\r\n    return n;\r\n  }\r\n  function stockOf(vid){\r\n    vid = String(vid); var s = null;  /* the newest number wins (lines are in the order they were added) */\r\n    lines.forEach(function(l){\r\n      if (l.type === \"piece\") { if (l.variantId === vid && l.stock != null) s = l.stock; }\r\n      else l.picks.forEach(function(p){ if (p.variantId === vid && p.stock != null) s = p.stock; });\r\n    });\r\n    return s;\r\n  }\r\n  /* Replace every single piece with the given map (keeps gift sets and the order of the lines). */\r\n  function syncPieces(map){\r\n    var seen = {}, out = [];\r\n    lines.forEach(function(l){\r\n      if (l.type !== \"piece\") { out.push(l); return; }\r\n      var it = map[l.variantId];\r\n      if (it) { out.push(pieceLine(it, l)); seen[l.variantId] = 1; }\r\n    });\r\n    Object.keys(map).forEach(function(v){ if (!seen[v] && map[v]) out.push(pieceLine(map[v])); });\r\n    lines = out;\r\n    save();\r\n  }\r\n  function addSet(s){\r\n    var line = {\r\n      type: \"set\", id: \"s\" + Date.now().toString(36) + Math.random().toString(36).slice(2, 6),\r\n      name: s.name || s.orderName || \"\", orderName: s.orderName || s.name || \"\", price: +s.price,\r\n      img: s.img || \"\", src: s.src || \"\", url: s.url || location.pathname, soldOut: \"\",\r\n      picks: (s.picks || []).map(function(p){\r\n        return { cat: p.cat || \"\", name: p.name || \"\", size: p.size || \"\", variantId: String(p.variantId || \"\"),\r\n                 productId: String(p.productId || \"\"), handle: p.handle || \"\", img: p.img || \"\", stock: stockNum(p.stock) };\r\n      })\r\n    };\r\n    lines.push(line);\r\n    save();\r\n    return line;\r\n  }\r\n  function removeLine(id){\r\n    var n = lines.length;\r\n    lines = lines.filter(function(l){ return l.id !== id; });\r\n    if (lines.length !== n) save();\r\n  }\r\n  function setQty(id, q){\r\n    var l = findLine(id);\r\n    if (!l || l.type !== \"piece\") return false;\r\n    if (q < 1) { removeLine(id); return true; }\r\n    if (q > l.quantity) {\r\n      var stock = stockOf(l.variantId), others = usedQty(l.variantId, l.id);\r\n      var allowed = stock == null ? (l.maxQty || 999) : stock - others;\r\n      if (q > allowed) {\r\n        say((others > 0 ? T.stock_shared : T.stock_limit).replace(\"{qty}\", Math.max(0, allowed)), \"error\");\r\n        return false;\r\n      }\r\n    }\r\n    l.quantity = q;\r\n    if (l.short && q <= l.short) l.short = 0;\r\n    save();\r\n    return true;\r\n  }\r\n  function clear(){ lines = []; save(); }\r\n\r\n  /* Move an old page basket (\u00C0 La Carte \"gb_alc_cart_v9\", Christmas \"gb_xmas_cart_v1\") into this cart, once. */\r\n  function importLegacy(key, src, url){\r\n    var old = readJSON(key);\r\n    if (old && typeof old === \"object\") {\r\n      var map = pieceMap(), added = false;\r\n      Object.keys(old).forEach(function(k){\r\n        var it = old[k];\r\n        if (!it || !it.variantId || map[it.variantId] || !isFinite(it.price)) return;\r\n        it.src = src; it.url = url || location.pathname;\r\n        map[it.variantId] = it; added = true;\r\n      });\r\n      if (added) syncPieces(map);\r\n    }\r\n    writeRaw(key, null);\r\n  }\r\n\r\n  /* \u2500\u2500 stock + price check before paying \u2500\u2500\r\n     Live stock numbers come from the theme template \"product.gb-stock\" (/products/<handle>?view=gb-stock, JSON).\r\n     If that can't be read, /products/<handle>.js (available yes/no + price) and the stock numbers saved\r\n     with the lines are used instead. 404 = the product no longer exists. Other errors: don't block the order. */\r\n  function fetchText(url){\r\n    var ctrl = window.AbortController ? new AbortController() : null;\r\n    var timer = setTimeout(function(){ if (ctrl) ctrl.abort(); }, 8000);\r\n    return fetch(url, ctrl ? { signal: ctrl.signal, credentials: \"same-origin\" } : { credentials: \"same-origin\" })\r\n      .then(function(r){ return r.text().then(function(t){ clearTimeout(timer); return { status: r.status, ok: r.ok, text: t }; }); })\r\n      .catch(function(){ clearTimeout(timer); return null; });\r\n  }\r\n  function fetchProduct(handle){\r\n    var base = \"/products/\" + encodeURIComponent(handle);\r\n    return fetchText(base + \"?view=gb-stock\").then(function(r){\r\n      if (r && r.status === 404) return { gone: true };\r\n      if (r && r.ok) { try { var d = JSON.parse(r.text); if (d && d.variants) { d.live = true; return d; } } catch(e){} }\r\n      return fetchText(base + \".js\").then(function(r2){\r\n        if (!r2) return null;\r\n        if (r2.status === 404) return { gone: true };\r\n        if (!r2.ok) return null;\r\n        try { return JSON.parse(r2.text); } catch(e){ return null; }\r\n      });\r\n    });\r\n  }\r\n  function variantOf(p, id){\r\n    if (!p || p.gone || !p.variants) return null;\r\n    for (var i = 0; i < p.variants.length; i++) if (String(p.variants[i].id) === String(id)) return p.variants[i];\r\n    return null;\r\n  }\r\n  /* live stock limit of a variant: a number, or null when the shop doesn't limit it */\r\n  function liveLimit(v){ return v && v.m === \"shopify\" && v.p === \"deny\" ? Math.max(0, parseInt(v.q, 10) || 0) : null; }\r\n\r\n  function checkStock(){\r\n    var handles = {};\r\n    lines.forEach(function(l){\r\n      if (l.type === \"piece\" && l.handle) handles[l.handle] = 1;\r\n      if (l.type === \"set\") l.picks.forEach(function(p){ if (p.handle) handles[p.handle] = 1; });\r\n    });\r\n    var hs = Object.keys(handles);\r\n    return Promise.all(hs.map(fetchProduct)).then(function(res){\r\n      var info = {}; hs.forEach(function(h, i){ info[h] = res[i]; });\r\n      var soldOut = false, priceChanged = false;\r\n      /* 1) refresh availability, price and the saved stock numbers */\r\n      function look(handle, vid, holder){\r\n        var p = info[handle];\r\n        if (!handle || p == null) return { ok: true };           /* unknown: keep what we know */\r\n        var v = variantOf(p, vid);\r\n        if (!v || !v.available) return { ok: false };\r\n        if (p.live) holder.stock = liveLimit(v);\r\n        return { ok: true, v: v };\r\n      }\r\n      /* 2) share the stock between the lines, in the order they were added: the first line keeps it */\r\n      var taken = {};\r\n      function claim(vid, want){\r\n        var stock = stockOf(vid);\r\n        if (stock == null) return want;\r\n        var left = Math.max(0, stock - (taken[vid] || 0));\r\n        var got = Math.min(want, left);\r\n        taken[vid] = (taken[vid] || 0) + got;\r\n        return got;\r\n      }\r\n      lines.forEach(function(l){\r\n        if (l.type === \"piece\") {\r\n          l.soldOut = false; l.short = 0;\r\n          var r = look(l.handle, l.variantId, l);\r\n          if (!r.ok) { l.soldOut = true; soldOut = true; return; }\r\n          if (r.v) {\r\n            var price = r.v.price / 100;\r\n            if (isFinite(price) && price > 0 && Math.abs(price - l.price) > 0.001) { l.price = price; priceChanged = true; }\r\n          }\r\n        } else {\r\n          l.soldOut = \"\";\r\n          l.picks.forEach(function(pk){\r\n            if (!look(pk.handle, pk.variantId, pk).ok && !l.soldOut) { l.soldOut = pk.name; soldOut = true; }\r\n          });\r\n        }\r\n      });\r\n      lines.forEach(function(l){\r\n        if (l.type === \"piece\") {\r\n          if (l.soldOut) return;\r\n          var got = claim(l.variantId, l.quantity);\r\n          if (got === 0) { l.soldOut = \"used\"; soldOut = true; }\r\n          else if (got < l.quantity) { l.short = got; soldOut = true; }\r\n        } else {\r\n          l.picks.forEach(function(pk){\r\n            if (claim(pk.variantId, 1) === 0 && !l.soldOut) { l.soldOut = pk.name; soldOut = true; }\r\n          });\r\n        }\r\n      });\r\n      save();\r\n      return { soldOut: soldOut, priceChanged: priceChanged };\r\n    });\r\n  }\r\n\r\n  /* \u2500\u2500 order text (same wording the pages used before) \u2500\u2500 */\r\n  function sizeText(size){ return size ? \" \u2014 \" + T.size + \" \" + size : \"\"; }\r\n  function pickText(p){ return (p.cat ? p.cat + \" - \" : \"\") + p.name + sizeText(p.size); }\r\n  function orderItems(){\r\n    var items = lines.map(function(l){\r\n      if (l.type === \"set\") return { name: l.orderName + \" (\" + l.picks.map(pickText).join(\" + \") + \")\", price: offerPrice(l.price), quantity: 1 };\r\n      return { name: (l.catName ? l.catName + \" - \" : \"\") + l.name + sizeText(l.size), price: offerPrice(l.price), quantity: l.quantity };\r\n    });\r\n    var t = totals();\r\n    if (t.delivery) items.push({ name: T.delivery, price: t.delivery, quantity: 1 });\r\n    return items;\r\n  }\r\n\r\n  /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 the cart window \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\r\n  var ui = {}, view = \"cart\", busy = false, opener = null, offerRestore = false;\r\n  var BAG = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6 7h12l-1 13H7L6 7Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linejoin=\"round\"/><path d=\"M9 9V6a3 3 0 0 1 6 0v3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg>';\r\n\r\n  function makeButton(cls){\r\n    var b = document.createElement(\"button\");\r\n    b.type = \"button\"; b.className = \"gb-cart-btn \" + cls;\r\n    b.innerHTML = BAG + '<span class=\"gb-cart-btn-label\">' + esc(T.cart) + '</span><span class=\"gb-cart-count\" aria-hidden=\"true\">0</span>';\r\n    b.addEventListener(\"click\", function(){ open(\"cart\"); });\r\n    return b;\r\n  }\r\n\r\n  function buildUI(){\r\n    if (ui.root) return;\r\n    var html = document.documentElement;\r\n    html.classList.add(\"gb-cart-on\");\r\n    /* 1) cart button in the EN / \u0639\u0631\u0628\u064A bar (or fixed at the top when a page has no bar) */\r\n    var bar = document.querySelector(\".hb-lang-bar\");\r\n    ui.dock = makeButton(\"gb-cart-dock\");\r\n    if (bar) {\r\n      if (getComputedStyle(bar).position === \"static\") bar.style.position = \"relative\";\r\n      bar.appendChild(ui.dock);\r\n    } else {\r\n      ui.dock.classList.add(\"gb-cart-fixed\");\r\n      document.body.appendChild(ui.dock);\r\n    }\r\n    /* 2) small floating cart button above WhatsApp, shown once the bar has scrolled away and the cart has items */\r\n    if (bar) {\r\n      var stack = document.querySelector(\".hb-contact-float, .gb-contact-float\");\r\n      ui.float = makeButton(\"gb-cart-float\");\r\n      if (stack) stack.insertBefore(ui.float, stack.firstChild);\r\n      else { ui.float.classList.add(\"gb-cart-float-fixed\"); document.body.appendChild(ui.float); }\r\n      if (window.IntersectionObserver) {\r\n        new IntersectionObserver(function(entries){\r\n          html.classList.toggle(\"gb-cart-away\", !entries[0].isIntersecting);\r\n        }).observe(ui.dock);\r\n      } else html.classList.add(\"gb-cart-away\");\r\n    }\r\n    /* 3) the cart window */\r\n    ui.root = document.createElement(\"div\");\r\n    ui.root.className = \"gb-cart\"; ui.root.id = \"gb-cart\"; ui.root.hidden = true;\r\n    ui.root.setAttribute(\"dir\", AR ? \"rtl\" : \"ltr\");\r\n    ui.root.innerHTML = '<div class=\"gb-cart-overlay\" data-act=\"close\"></div>'\r\n      + '<aside class=\"gb-cart-panel\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"gb-cart-title\">'\r\n      + '<header class=\"gb-cart-head\">'\r\n      + '<button type=\"button\" class=\"gb-cart-icon-btn gb-cart-back\" data-act=\"back\" aria-label=\"' + esc(T.back) + '\" hidden>' + (AR ? '&#8594;' : '&#8592;') + '</button>'\r\n      + '<h2 class=\"gb-cart-title\" id=\"gb-cart-title\">' + esc(T.your_cart) + '</h2>'\r\n      + '<span class=\"gb-cart-head-count\"></span>'\r\n      + '<button type=\"button\" class=\"gb-cart-icon-btn gb-cart-close\" data-act=\"close\" aria-label=\"' + esc(T.close) + '\">&#x2715;</button>'\r\n      + '</header>'\r\n      + '<div class=\"gb-cart-msg\" role=\"status\" aria-live=\"polite\" hidden></div>'\r\n      + '<div class=\"gb-cart-body\"></div>'\r\n      + '<footer class=\"gb-cart-foot\"></footer>'\r\n      + '</aside>';\r\n    document.body.appendChild(ui.root);\r\n    ui.panel = ui.root.querySelector(\".gb-cart-panel\");\r\n    ui.body = ui.root.querySelector(\".gb-cart-body\");\r\n    ui.foot = ui.root.querySelector(\".gb-cart-foot\");\r\n    ui.msg = ui.root.querySelector(\".gb-cart-msg\");\r\n    ui.back = ui.root.querySelector(\".gb-cart-back\");\r\n    ui.headCount = ui.root.querySelector(\".gb-cart-head-count\");\r\n    ui.root.addEventListener(\"click\", onClick);\r\n    ui.root.addEventListener(\"submit\", onCodSubmit);\r\n    document.addEventListener(\"keydown\", function(e){ if (e.key === \"Escape\" && isOpen()) close(); });\r\n    buildOffer(bar);\r\n    buildNav(bar);\r\n    render();\r\n  }\r\n\r\n  /* 2026-10-26: website offer banner, at the very top of every page that loads the cart (above the EN / \u0639\u0631\u0628\u064A bar) */\r\n  function buildOffer(bar){\r\n    if (!CONFIG.discount_percent || document.querySelector(\".gb-offer\")) return;\r\n    var b = document.createElement(\"div\");\r\n    b.className = \"gb-offer\"; b.setAttribute(\"dir\", AR ? \"rtl\" : \"ltr\");\r\n    b.setAttribute(\"role\", \"note\");\r\n    b.innerHTML = '<span class=\"gb-offer-kicker\"><span aria-hidden=\"true\">\u2726</span> ' + esc(T.offer_kicker) + ' <span aria-hidden=\"true\">\u2726</span></span>'\r\n      + '<strong class=\"gb-offer-main\">' + esc(T.offer_banner.replace(\"{n}\", CONFIG.discount_percent)) + '</strong>'\r\n      + '<span class=\"gb-offer-sub\">' + esc(T.offer_banner_sub) + '</span>';\r\n    if (bar && bar.parentNode) bar.parentNode.insertBefore(b, bar);\r\n    else document.body.insertBefore(b, document.body.firstChild);\r\n  }\r\n\r\n  /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 2026-10-23: menu + \"Home \u203A\" breadcrumb on every page \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n     Owner: going back / home was only possible with the logo. Like most shops: a Menu button (\u2630) in the\r\n     EN / \u0639\u0631\u0628\u064A bar (opposite the cart), a side menu with Home + every shop page, a breadcrumb under the bar\r\n     (\"Home \u203A Gift Sets \u203A Hello Baby Box\"), and a round Menu button above WhatsApp once the bar has\r\n     scrolled away. To add / rename a page: PAGES below (+ its texts in T). */\r\n  var PAGES = [\r\n    { key: \"home\",   path: \"/pages/welcome-page\" },\r\n    { key: \"xmas\",   path: \"/pages/a-little-christmas\", isNew: true },\r\n    { key: \"single\", path: \"/pages/al-cartepremium\" },\r\n    { key: \"hello\",  path: \"/pages/hello-baby-box\", set: true },\r\n    { key: \"sbh\",    path: \"/pages/sleeping-bag-hamper\", set: true },\r\n    { key: \"nest\",   path: \"/pages/babynest\", set: true }\r\n  ];\r\n  var LABEL = { home: T.home, xmas: T.xmas, single: T.single, hello: T.hello, sbh: T.sbh, nest: T.nest };\r\n  var SETS_HASH = \"#gift-sets\";\r\n  var HOUSE = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 10.5 12 4l8 6.5V20a1 1 0 0 1-1 1h-5v-6h-4v6H5a1 1 0 0 1-1-1v-9.5Z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linejoin=\"round\"/></svg>';\r\n  var BARS = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4 7h16M4 12h16M4 17h16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"/></svg>';\r\n  var nav = {};\r\n\r\n  function pageUrl(pg){ return PREFIX + pg.path; }\r\n  function currentPage(){\r\n    var p = location.pathname.replace(/^\\/ar(?=\\/|$)/, \"\").replace(/\\/+$/, \"\") || \"/\";\r\n    if (p === \"/\") return PAGES[0];\r\n    for (var i = 0; i < PAGES.length; i++) if (PAGES[i].path === p) return PAGES[i];\r\n    return null;\r\n  }\r\n  function makeNavButton(cls){\r\n    var b = document.createElement(\"button\");\r\n    b.type = \"button\"; b.className = \"gb-cart-btn gb-nav-btn \" + cls;\r\n    b.setAttribute(\"aria-label\", T.open_menu);\r\n    b.innerHTML = BARS + '<span class=\"gb-cart-btn-label\">' + esc(T.menu) + '</span>';\r\n    b.addEventListener(\"click\", openNav);\r\n    return b;\r\n  }\r\n  function navLink(pg, cur){\r\n    var here = cur && cur.key === pg.key;\r\n    return '<a class=\"gb-nav-link' + (here ? ' gb-nav-here' : '') + '\" href=\"' + pageUrl(pg) + '\"' + (here ? ' aria-current=\"page\"' : '') + '>'\r\n      + '<span>' + esc(LABEL[pg.key]) + '</span>'\r\n      + (pg.isNew ? '<span class=\"gb-nav-new\">' + esc(T.new_tag) + '</span>' : '')\r\n      + '</a>';\r\n  }\r\n  function buildNav(bar){\r\n    var cur = currentPage(), html = document.documentElement;\r\n    /* 1) Menu button in the bar + a round one above WhatsApp for when the bar has scrolled away */\r\n    nav.dock = makeNavButton(\"gb-nav-dock\");\r\n    if (bar) bar.appendChild(nav.dock);\r\n    else { nav.dock.classList.add(\"gb-nav-fixed\"); document.body.appendChild(nav.dock); }\r\n    if (bar) {\r\n      var stack = document.querySelector(\".hb-contact-float, .gb-contact-float\");\r\n      nav.float = makeNavButton(\"gb-nav-float\");\r\n      if (stack) stack.insertBefore(nav.float, stack.firstChild);\r\n      else { nav.float.classList.add(\"gb-nav-float-fixed\"); document.body.appendChild(nav.float); }\r\n    }\r\n    /* 2) breadcrumb under the bar (not on the homepage) */\r\n    if (bar && cur && cur.key !== \"home\") {\r\n      var home = PAGES[0];\r\n      var crumbs = document.createElement(\"nav\");\r\n      crumbs.className = \"gb-crumbs\"; crumbs.setAttribute(\"aria-label\", T.you_are_here);\r\n      crumbs.innerHTML = '<ol>'\r\n        + '<li><a href=\"' + pageUrl(home) + '\">' + HOUSE + '<span>' + esc(T.home) + '</span></a></li>'\r\n        + (cur.set ? '<li><a href=\"' + pageUrl(home) + SETS_HASH + '\">' + esc(T.crumb_sets) + '</a></li>' : '')\r\n        + '<li><span aria-current=\"page\">' + esc(LABEL[cur.key]) + '</span></li>'\r\n        + '</ol>';\r\n      /* inside the page box (its cream background) when there is one, else straight under the bar */\r\n      var root = document.getElementById(\"hb-root\");\r\n      if (root) root.insertBefore(crumbs, root.firstChild); else bar.parentNode.insertBefore(crumbs, bar.nextSibling);\r\n    }\r\n    /* 3) the side menu */\r\n    nav.root = document.createElement(\"div\");\r\n    nav.root.className = \"gb-nav\"; nav.root.hidden = true;\r\n    nav.root.setAttribute(\"dir\", AR ? \"rtl\" : \"ltr\");\r\n    nav.root.innerHTML = '<div class=\"gb-nav-overlay\" data-nav=\"close\"></div>'\r\n      + '<nav class=\"gb-nav-panel\" aria-label=\"' + esc(T.menu) + '\" tabindex=\"-1\">'\r\n      + '<header class=\"gb-nav-head\"><span class=\"gb-nav-title\">' + esc(T.menu) + '</span>'\r\n      + '<button type=\"button\" class=\"gb-cart-icon-btn\" data-nav=\"close\" aria-label=\"' + esc(T.close) + '\">&#x2715;</button></header>'\r\n      + '<div class=\"gb-nav-body\">'\r\n      + '<a class=\"gb-nav-home' + (cur && cur.key === \"home\" ? ' gb-nav-here' : '') + '\" href=\"' + pageUrl(PAGES[0]) + '\"' + (cur && cur.key === \"home\" ? ' aria-current=\"page\"' : '') + '>' + HOUSE + '<span>' + esc(T.home) + '</span></a>'\r\n      + '<p class=\"gb-nav-group\">' + esc(T.shop) + '</p>'\r\n      + PAGES.filter(function(pg){ return pg.key !== \"home\" && !pg.set; }).map(function(pg){ return navLink(pg, cur); }).join(\"\")\r\n      + '<p class=\"gb-nav-group\">' + esc(T.gift_sets) + '</p>'\r\n      + PAGES.filter(function(pg){ return pg.set; }).map(function(pg){ return navLink(pg, cur); }).join(\"\")\r\n      + '<button type=\"button\" class=\"gb-nav-link gb-nav-cart\" data-nav=\"cart\">' + BAG + '<span>' + esc(T.your_cart) + '</span><span class=\"gb-nav-count\"></span></button>'\r\n      + '</div>'\r\n      + '<footer class=\"gb-nav-foot\"><a href=\"https://wa.me/' + CONFIG.whatsapp + '\" target=\"_blank\" rel=\"noopener\">' + esc(T.help) + '</a></footer>'\r\n      + '</nav>';\r\n    document.body.appendChild(nav.root);\r\n    nav.root.addEventListener(\"click\", function(e){\r\n      var el = e.target.closest ? e.target.closest(\"[data-nav]\") : null;\r\n      if (!el) return;\r\n      var act = el.getAttribute(\"data-nav\");\r\n      if (act === \"close\") closeNav();\r\n      if (act === \"cart\") { closeNav(); open(\"cart\"); }\r\n    });\r\n    document.addEventListener(\"keydown\", function(e){ if (e.key === \"Escape\" && !nav.root.hidden) closeNav(); });\r\n    /* 4) \"Gift Sets\" link from a breadcrumb: on the homepage, scroll to the Gift Sets & Hampers part */\r\n    if (cur && cur.key === \"home\" && location.hash === SETS_HASH) {\r\n      setTimeout(function(){\r\n        var h = document.querySelector(\".gb-sets-heading\");\r\n        if (!h) return;\r\n        var top = h.getBoundingClientRect().top + window.scrollY - ((bar && bar.offsetHeight) || 0) - 16;\r\n        window.scrollTo({ top: Math.max(0, top), behavior: \"auto\" });\r\n      }, 350);\r\n    }\r\n  }\r\n  function openNav(){\r\n    if (isOpen()) close();\r\n    var c = nav.root.querySelector(\".gb-nav-count\"), n = totals().count;\r\n    if (c) c.textContent = n ? \"(\" + n + \")\" : \"\";\r\n    nav.opener = document.activeElement;\r\n    nav.root.hidden = false;\r\n    document.documentElement.classList.add(\"gb-cart-open\");\r\n    requestAnimationFrame(function(){ nav.root.classList.add(\"gb-nav-show\"); });\r\n    var panel = nav.root.querySelector(\".gb-nav-panel\"); if (panel) panel.focus({ preventScroll: true });\r\n  }\r\n  function closeNav(){\r\n    if (nav.root.hidden) return;\r\n    nav.root.classList.remove(\"gb-nav-show\");\r\n    nav.root.hidden = true;\r\n    if (!isOpen()) document.documentElement.classList.remove(\"gb-cart-open\");\r\n    if (nav.opener && nav.opener.focus) { try { nav.opener.focus({ preventScroll: true }); } catch(e){} }\r\n  }\r\n\r\n  function isOpen(){ return ui.root && !ui.root.hidden; }\r\n\r\n  function open(v, message, type){\r\n    buildUI();\r\n    if (!isOpen()) opener = document.activeElement;\r\n    ui.root.hidden = false;\r\n    document.documentElement.classList.add(\"gb-cart-open\");\r\n    view = v || \"cart\";\r\n    say(message || \"\", type);\r\n    render();\r\n    requestAnimationFrame(function(){ ui.root.classList.add(\"gb-cart-show\"); });\r\n    var c = ui.root.querySelector(\".gb-cart-close\"); if (c) c.focus({ preventScroll: true });\r\n  }\r\n  function close(){\r\n    if (!isOpen() || busy) return;\r\n    ui.root.classList.remove(\"gb-cart-show\");\r\n    ui.root.hidden = true;\r\n    document.documentElement.classList.remove(\"gb-cart-open\");\r\n    if (view === \"done\") view = \"cart\";\r\n    if (opener && opener.focus) { try { opener.focus({ preventScroll: true }); } catch(e){} }\r\n  }\r\n  function say(text, type){\r\n    if (!ui.msg) return;\r\n    ui.msg.textContent = text || \"\";\r\n    ui.msg.className = \"gb-cart-msg\" + (type ? \" gb-cart-msg-\" + type : \"\");\r\n    ui.msg.hidden = !text;\r\n  }\r\n\r\n  /* \u2500\u2500 drawing \u2500\u2500 */\r\n  function render(){\r\n    var t = totals();\r\n    var label = T.items_aria.replace(\"{n}\", t.count);\r\n    var root = document.documentElement;\r\n    root.classList.toggle(\"gb-cart-has\", t.count > 0);\r\n    [ui.dock, ui.float].forEach(function(b){\r\n      if (!b) return;\r\n      var c = b.querySelector(\".gb-cart-count\");\r\n      c.textContent = t.count > 99 ? \"99+\" : t.count;\r\n      b.setAttribute(\"aria-label\", T.open_cart + \" \u2014 \" + label);\r\n    });\r\n    if (!ui.root || !isOpen()) return;\r\n    ui.back.hidden = !(view === \"pay\" || view === \"cod\");\r\n    ui.headCount.textContent = view === \"cart\" && t.count ? \"(\" + t.count + \")\" : \"\";\r\n    if (view === \"pay\") return drawPay(t);\r\n    if (view === \"cod\") return drawCod(t);\r\n    if (view === \"done\") return drawDone();\r\n    drawCart(t);\r\n  }\r\n\r\n  function shopLink(path, text){ return '<a class=\"gb-cart-shop-link\" href=\"' + PREFIX + path + '\">' + esc(text) + '</a>'; }\r\n\r\n  function lineHTML(l){\r\n    var img = l.img ? '<img src=\"' + esc(l.img) + '\" alt=\"\" width=\"72\" height=\"72\" loading=\"lazy\">' : '';\r\n    var media = l.url ? '<a class=\"gb-cl-img\" href=\"' + esc(l.url) + '\" tabindex=\"-1\">' + img + '</a>' : '<span class=\"gb-cl-img\">' + img + '</span>';\r\n    var out = '<li class=\"gb-cl' + (l.soldOut || l.short ? ' gb-cl-oos' : '') + '\">' + media + '<div class=\"gb-cl-info\">';\r\n    if (l.type === \"set\") {\r\n      out += '<p class=\"gb-cl-kicker\">' + esc(T.gift_set) + '</p>'\r\n        + '<p class=\"gb-cl-name\">' + esc(l.name) + '</p>'\r\n        + '<details class=\"gb-cl-picks\"><summary>' + esc(T.picks.replace(\"{n}\", l.picks.length)) + '</summary><ul>'\r\n        + l.picks.map(function(p){\r\n            return '<li><span class=\"gb-cl-pick-cat\">' + esc(p.cat) + '</span> ' + esc(p.name)\r\n              + (p.size ? ' <span class=\"gb-cl-pick-size\">\u00B7 ' + esc(T.size) + ' ' + esc(p.size) + '</span>' : '') + '</li>';\r\n          }).join(\"\")\r\n        + '</ul></details>'\r\n        + '<div class=\"gb-cl-row\"><span></span><span class=\"gb-cl-price\">' + aed(l.price) + '</span></div>'\r\n        + (l.soldOut ? '<p class=\"gb-cl-warn\">' + esc(T.set_sold_out.replace(\"{name}\", l.soldOut)) + '</p>' : '');\r\n    } else {\r\n      out += (l.catName ? '<p class=\"gb-cl-kicker\">' + esc(l.catName) + '</p>' : '')\r\n        + '<p class=\"gb-cl-name\">' + esc(l.name) + '</p>'\r\n        + (l.size ? '<p class=\"gb-cl-meta\">' + esc(T.size) + ': ' + esc(l.size) + '</p>' : '')\r\n        + '<div class=\"gb-cl-row\"><span class=\"gb-cl-qty\">'\r\n        + '<button type=\"button\" data-act=\"minus\" data-id=\"' + esc(l.id) + '\" aria-label=\"' + esc(T.qty_minus) + '\">&minus;</button>'\r\n        + '<span>' + l.quantity + '</span>'\r\n        + '<button type=\"button\" data-act=\"plus\" data-id=\"' + esc(l.id) + '\" aria-label=\"' + esc(T.qty_plus) + '\">+</button>'\r\n        + '</span><span class=\"gb-cl-price\">' + aed(l.price * l.quantity) + '</span></div>'\r\n        + (l.soldOut ? '<p class=\"gb-cl-warn\">' + esc(l.soldOut === \"used\" ? T.used_elsewhere : T.sold_out) + '</p>'\r\n           : l.short ? '<p class=\"gb-cl-warn\">' + esc(T.only_left.replace(\"{n}\", l.short)) + '</p>' : '');\r\n    }\r\n    return out + '</div><button type=\"button\" class=\"gb-cl-rm\" data-act=\"remove\" data-id=\"' + esc(l.id) + '\" aria-label=\"' + esc(T.remove + \" \" + l.name) + '\">&#x2715;</button></li>';\r\n  }\r\n\r\n  function totalsHTML(t){\r\n    var note = deliveryNote();\r\n    return '<div class=\"gb-cart-note' + (note.free ? ' gb-cart-note-free' : '') + '\"><span aria-hidden=\"true\">' + (note.free ? '&#10003;' : '&#128666;') + '</span> ' + esc(note.text) + '</div>'\r\n      + '<div class=\"gb-cart-sum\"><span>' + esc(T.subtotal) + '</span><span>' + aed(t.items) + '</span></div>'\r\n      + offerHTML(t, \"gb-cart-sum\")\r\n      + '<div class=\"gb-cart-sum\"><span>' + esc(T.delivery) + '</span><span' + (t.delivery ? '' : ' class=\"gb-cart-free\"') + '>' + (t.delivery ? aed(t.delivery) : esc(T.free)) + '</span></div>'\r\n      + '<div class=\"gb-cart-sum gb-cart-grand\"><span>' + esc(T.total) + '</span><span>' + aed(t.total) + '</span></div>'\r\n      + (t.discount ? '<p class=\"gb-cart-saved\"><span aria-hidden=\"true\">\u2726</span> ' + esc(T.offer_saved.replace(\"{n}\", fmt(t.discount))) + '</p>' : '');\r\n  }\r\n\r\n  function offerHTML(t, cls){\r\n    if (!t.discount) return \"\";\r\n    return '<div class=\"' + cls + ' gb-cart-offer\"><span>' + esc(T.offer.replace(\"{n}\", CONFIG.discount_percent)) + '</span><span dir=\"ltr\">\u2212' + aed(t.discount) + '</span></div>';\r\n  }\r\n\r\n  function drawCart(t){\r\n    var restore = offerRestore && readJSON(PENDING_KEY)\r\n      ? '<div class=\"gb-cart-restore\"><p>' + esc(T.restore_offer) + '</p><button type=\"button\" class=\"gb-cart-btn-soft\" data-act=\"restore\">' + esc(T.restore_btn) + '</button></div>'\r\n      : '';\r\n    if (!t.count) {\r\n      ui.body.innerHTML = restore + '<div class=\"gb-cart-empty\">'\r\n        + '<div class=\"gb-cart-empty-icon\">' + BAG + '</div>'\r\n        + '<p class=\"gb-cart-empty-title\">' + esc(T.empty_title) + '</p>'\r\n        + '<p class=\"gb-cart-empty-text\">' + esc(T.empty_text) + '</p>'\r\n        + '<div class=\"gb-cart-shop\">'\r\n        + shopLink(\"/pages/al-cartepremium\", T.shop_pieces)\r\n        + shopLink(\"/pages/a-little-christmas\", T.shop_xmas)\r\n        + shopLink(\"/pages/welcome-page\", T.shop_sets)\r\n        + '</div></div>';\r\n      ui.foot.innerHTML = '<p class=\"gb-cart-small\">' + esc(T.note_info) + '</p>';\r\n      return;\r\n    }\r\n    ui.body.innerHTML = restore + '<ul class=\"gb-cart-lines\">' + lines.map(lineHTML).join(\"\") + '</ul>';\r\n    ui.foot.innerHTML = totalsHTML(t)\r\n      + '<button type=\"button\" class=\"gb-cart-cta\" data-act=\"checkout\"' + (busy ? ' disabled' : '') + '>'\r\n      + esc(busy ? T.checking : T.checkout + \" \u2014 \" + aed(t.total)) + '</button>'\r\n      + '<button type=\"button\" class=\"gb-cart-link\" data-act=\"close\">' + esc(T.continue_shopping) + '</button>'\r\n      + '<p class=\"gb-cart-small\">' + esc(T.delivery_time) + '</p>';\r\n  }\r\n\r\n  function summaryHTML(t){\r\n    return '<div class=\"gb-cart-mini\">' + lines.map(function(l){\r\n      var name = l.type === \"set\" ? l.name : (l.quantity > 1 ? l.quantity + \" \u00D7 \" : \"\") + l.name;\r\n      return '<div class=\"gb-cart-mini-row\"><span>' + esc(name) + '</span><span>' + aed(l.type === \"set\" ? l.price : l.price * l.quantity) + '</span></div>';\r\n    }).join(\"\")\r\n    + offerHTML(t, \"gb-cart-mini-row\")\r\n    + '<div class=\"gb-cart-mini-row\"><span>' + esc(T.delivery) + '</span><span>' + (t.delivery ? aed(t.delivery) : esc(T.free)) + '</span></div></div>';\r\n  }\r\n\r\n  function drawPay(t){\r\n    if (!t.count) { view = \"cart\"; return drawCart(t); }\r\n    ui.body.innerHTML = '<div class=\"gb-cart-step\">'\r\n      + '<p class=\"gb-cart-kicker\">' + aed(t.total) + '</p>'\r\n      + '<h3 class=\"gb-cart-step-title\">' + esc(T.pay_title) + '</h3>'\r\n      + '<p class=\"gb-cart-step-sub\">' + esc(T.pay_sub) + '</p>'\r\n      + '<div class=\"gb-cart-pay\">'\r\n      + '<button type=\"button\" class=\"gb-cart-pay-opt\" data-act=\"card\"' + (busy ? ' disabled' : '') + '><span class=\"gb-cart-pay-icon\" aria-hidden=\"true\">&#128179;</span><span><strong>' + esc(busy ? T.processing : T.pay_online) + '</strong><small>' + esc(T.pay_online_note) + '</small></span><span class=\"gb-cart-pay-arrow\" aria-hidden=\"true\">' + (AR ? '&#8592;' : '&#8594;') + '</span></button>'\r\n      + '<button type=\"button\" class=\"gb-cart-pay-opt\" data-act=\"cod\"' + (busy ? ' disabled' : '') + '><span class=\"gb-cart-pay-icon\" aria-hidden=\"true\">&#128666;</span><span><strong>' + esc(T.pay_cod) + '</strong><small>' + esc(T.pay_cod_note) + '</small></span><span class=\"gb-cart-pay-arrow\" aria-hidden=\"true\">' + (AR ? '&#8592;' : '&#8594;') + '</span></button>'\r\n      + '</div>' + summaryHTML(t) + '</div>';\r\n    ui.foot.innerHTML = grandHTML(t);\r\n  }\r\n  function grandHTML(t){\r\n    return '<div class=\"gb-cart-sum gb-cart-grand gb-cart-grand-only\"><span>' + esc(T.total) + '</span><span>' + aed(t.total) + '</span></div>';\r\n  }\r\n\r\n  function field(label, input, wide, hint){\r\n    return '<label class=\"gb-cod-field' + (wide ? ' gb-cod-wide' : '') + '\"><span>' + label + '</span>' + input + (hint ? '<small>' + esc(hint) + '</small>' : '') + '</label>';\r\n  }\r\n  function drawCod(t){\r\n    if (!t.count) { view = \"cart\"; return drawCart(t); }\r\n    if (ui.body.querySelector(\"#gb-cod-form\")) {  /* keep what the customer typed; just refresh the totals */\r\n      var k = ui.body.querySelector(\".gb-cart-kicker\"); if (k) k.textContent = aed(t.total);\r\n      var s = ui.body.querySelector(\".gb-cod-submit\"); if (s && !busy) s.textContent = T.cod_submit + \" \u2014 \" + aed(t.total);\r\n      return;\r\n    }\r\n    var req = ' <em>*</em>';\r\n    var emirates = [\"Dubai\", \"Abu Dhabi\", \"Sharjah\", \"Ajman\", \"Ras Al Khaimah\", \"Fujairah\", \"Umm Al Quwain\"];\r\n    ui.body.innerHTML = '<div class=\"gb-cart-step\">'\r\n      + '<p class=\"gb-cart-kicker\">' + aed(t.total) + '</p>'\r\n      + '<h3 class=\"gb-cart-step-title\">' + esc(T.cod_title) + '</h3>'\r\n      + '<p class=\"gb-cart-step-sub\">' + esc(T.cod_sub) + '</p>'\r\n      + '<form id=\"gb-cod-form\" class=\"gb-cod-form\" method=\"post\" action=\"' + PREFIX + '/contact#gb-cod-form\" accept-charset=\"UTF-8\">'\r\n      + '<input type=\"hidden\" name=\"form_type\" value=\"contact\"><input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">'\r\n      + '<input type=\"hidden\" name=\"return_to\" value=\"' + PREFIX + '/pages/welcome-page?gb_cart=cod\">'\r\n      + '<div class=\"gb-cod-hidden\"></div>'\r\n      + '<div class=\"gb-cod-grid\">'\r\n      + field(esc(T.cod_name) + req, '<input type=\"text\" name=\"contact[name]\" autocomplete=\"name\" minlength=\"2\" maxlength=\"80\" required>')\r\n      + field(esc(T.cod_phone) + req, '<input type=\"tel\" name=\"contact[phone]\" autocomplete=\"tel\" inputmode=\"numeric\" placeholder=\"0501234567 / 043536605\" pattern=\"(?:05[0-9]{8}|0[234679][0-9]{7})\" minlength=\"9\" maxlength=\"10\" required title=\"' + esc(T.cod_phone_hint) + '\">', false, T.cod_phone_hint)\r\n      + field(esc(T.cod_email) + req, '<input type=\"email\" name=\"contact[email]\" autocomplete=\"email\" maxlength=\"120\" pattern=\"^[^@ ]+@[^@ ]+[.][^@ ]{2,}$\" title=\"' + esc(T.cod_email_hint) + '\" required>', true)\r\n      + field(esc(T.cod_emirate) + req, '<select name=\"contact[emirate]\" required><option value=\"\" selected disabled>' + esc(T.cod_emirate) + '</option>'\r\n          + emirates.map(function(e){ return '<option>' + e + '</option>'; }).join(\"\") + '</select>')\r\n      + field(esc(T.cod_country), '<input type=\"text\" name=\"contact[country]\" value=\"United Arab Emirates\" readonly>')\r\n      + field(esc(T.cod_address1) + req, '<input type=\"text\" name=\"contact[address]\" autocomplete=\"street-address\" minlength=\"8\" maxlength=\"200\" required>', true)\r\n      + field(esc(T.cod_address2), '<input type=\"text\" name=\"contact[address_details]\" maxlength=\"200\">', true)\r\n      + field(esc(T.cod_notes), '<textarea name=\"contact[delivery_notes]\" rows=\"2\" maxlength=\"500\"></textarea>', true)\r\n      + '</div>'\r\n      + '<button type=\"submit\" class=\"gb-cart-cta gb-cod-submit\">' + esc(T.cod_submit + \" \u2014 \" + aed(t.total)) + '</button>'\r\n      + '</form>' + summaryHTML(t) + '</div>';\r\n    ui.foot.innerHTML = \"\";  /* the total is on the kicker and on the button */\r\n    var first = ui.body.querySelector('input[name=\"contact[name]\"]');\r\n    if (first) setTimeout(function(){ first.focus({ preventScroll: false }); }, 30);\r\n  }\r\n\r\n  function drawDone(){\r\n    var info = readJSON(COD_KEY, true) || lastCod || {};\r\n    var ref = info.ref || \"\";\r\n    var msg = T.cod_inquiry.replace(\"{order_id}\", ref);\r\n    ui.body.innerHTML = '<div class=\"gb-cart-step gb-cart-done\">'\r\n      + '<div class=\"gb-cart-done-icon\" aria-hidden=\"true\">&#10003;</div>'\r\n      + '<h3 class=\"gb-cart-step-title\">' + esc(T.cod_done_title) + '</h3>'\r\n      + '<p class=\"gb-cart-step-sub\">' + esc(T.cod_done_text) + '</p>'\r\n      + (ref ? '<div class=\"gb-cart-ref\"><span>' + esc(T.cod_ref) + '</span><strong>' + esc(ref) + '</strong></div>' : '')\r\n      + '<div class=\"gb-cart-help\"><p class=\"gb-cart-help-title\">' + esc(T.cod_help_title) + '</p>'\r\n      + '<p class=\"gb-cart-step-sub\">' + esc(T.cod_help_text) + '</p>'\r\n      + '<p class=\"gb-cart-help-msg\">' + esc(msg) + '</p>'\r\n      + '<div class=\"gb-cart-help-links\">'\r\n      + '<a class=\"gb-cart-btn-soft\" href=\"https://wa.me/' + CONFIG.whatsapp + '?text=' + encodeURIComponent(msg) + '\" target=\"_blank\" rel=\"noopener\">' + esc(T.cod_whatsapp) + '</a>'\r\n      + '<a class=\"gb-cart-btn-soft\" href=\"' + CONFIG.instagram + '\" target=\"_blank\" rel=\"noopener\" data-act=\"copy\">' + esc(T.cod_instagram) + '</a>'\r\n      + '</div></div></div>';\r\n    ui.foot.innerHTML = '<button type=\"button\" class=\"gb-cart-cta\" data-act=\"close\">' + esc(T.continue_shopping) + '</button>';\r\n  }\r\n\r\n  /* \u2500\u2500 actions \u2500\u2500 */\r\n  function onClick(e){\r\n    var el = e.target.closest ? e.target.closest(\"[data-act]\") : null;\r\n    if (!el || !ui.root.contains(el)) return;\r\n    var act = el.getAttribute(\"data-act\"), id = el.getAttribute(\"data-id\");\r\n    if (act === \"close\") { e.preventDefault(); close(); return; }\r\n    if (act === \"back\") { say(\"\"); view = view === \"cod\" ? \"pay\" : \"cart\"; render(); return; }\r\n    if (act === \"remove\") { say(\"\"); removeLine(id); return; }\r\n    if (act === \"minus\" || act === \"plus\") {\r\n      var l = findLine(id); if (!l) return;\r\n      say(\"\"); setQty(id, l.quantity + (act === \"plus\" ? 1 : -1)); return;\r\n    }\r\n    if (act === \"restore\") { restorePending(); offerRestore = false; say(T.restored, \"ok\"); render(); return; }\r\n    if (act === \"checkout\") { startCheckout(); return; }\r\n    if (act === \"card\") { payByCard(); return; }\r\n    if (act === \"cod\") { say(\"\"); view = \"cod\"; render(); return; }\r\n    if (act === \"copy\") { copyText(T.cod_inquiry.replace(\"{order_id}\", (readJSON(COD_KEY, true) || lastCod || {}).ref || \"\")); say(T.cod_copied, \"ok\"); return; }\r\n  }\r\n\r\n  function startCheckout(){\r\n    if (busy) return;\r\n    if (!totals().count) { view = \"cart\"; render(); return; }\r\n    busy = true; say(T.checking); render();\r\n    checkStock().then(function(r){\r\n      busy = false;\r\n      if (r.soldOut) {\r\n        view = \"cart\"; say(T.fix_cart, \"error\"); render();\r\n        var first = ui.body.querySelector(\".gb-cl-oos\");\r\n        if (first && first.scrollIntoView) first.scrollIntoView({ block: \"nearest\" });\r\n        return;\r\n      }\r\n      if (r.priceChanged) { view = \"cart\"; say(T.price_changed, \"error\"); render(); return; }\r\n      say(\"\"); view = \"pay\"; render();\r\n    }, function(){ busy = false; say(\"\"); view = \"pay\"; render(); });\r\n  }\r\n\r\n  function payByCard(){\r\n    if (busy || !totals().count) return;\r\n    busy = true; say(\"\"); render();\r\n    var snapshot = JSON.stringify({ at: Date.now(), lines: lines });\r\n    fetch(CONFIG.checkout_url, {\r\n      method: \"POST\",\r\n      headers: { \"Content-Type\": \"application/json\" },\r\n      body: JSON.stringify({\r\n        /* prices are already the website-offer prices (whole AED), so the helper must not discount again */\r\n        items: orderItems(), discount_percent: 0,\r\n        /* 2026-10-23: Arabic customers come back to the Arabic order-complete page */\r\n        success_url: CONFIG.success_url.replace(\"gagaberry.com/pages/\", \"gagaberry.com\" + PREFIX + \"/pages/\"),\r\n        cancel_url: withParam(location.href, \"gb_cart\", \"cancel\")\r\n      })\r\n    })\r\n    .then(function(r){ return r.json(); })\r\n    .then(function(data){\r\n      if (data && data.url) {\r\n        /* keep a copy while the customer pays: \"cancel\" / Back on the payment page brings it back */\r\n        writeRaw(PENDING_KEY, snapshot);\r\n        lines = []; mem = []; writeRaw(KEY, null);\r\n        listeners.slice().forEach(function(fn){ try { fn(); } catch(e){} });\r\n        location.href = data.url;\r\n      } else fail();\r\n    })\r\n    .catch(fail);\r\n    function fail(){ busy = false; say(T.error_checkout, \"error\"); render(); }\r\n  }\r\n\r\n  function createRef(){\r\n    var d = new Date();\r\n    function pad(v){ return String(v).padStart(2, \"0\"); }\r\n    return \"GB-COD-\" + d.getFullYear() + pad(d.getMonth() + 1) + pad(d.getDate()) + \"-\" + Math.random().toString(36).slice(2, 7).toUpperCase();\r\n  }\r\n  function hidden(name, value){ return '<input type=\"hidden\" name=\"' + esc(name) + '\" value=\"' + esc(value) + '\">'; }\r\n\r\n  function onCodSubmit(e){\r\n    var form = e.target;\r\n    if (!form || form.id !== \"gb-cod-form\") return;\r\n    var t = totals();\r\n    if (busy || !t.count) { e.preventDefault(); return; }\r\n    var ref = createRef();\r\n    var detail = lines.map(function(l, i){\r\n      if (l.type === \"set\") {\r\n        return (i + 1) + \". \" + l.orderName + \" \u2014 \" + aed(l.price) + \"\\n\" + l.picks.map(function(p){ return \"   \" + (p.cat ? p.cat + \": \" : \"\") + p.name + sizeText(p.size); }).join(\"\\n\");\r\n      }\r\n      return (i + 1) + \". \" + l.quantity + \" \u00D7 \" + (l.catName ? l.catName + \" - \" : \"\") + l.name + sizeText(l.size) + \" \u2014 \" + aed(l.price * l.quantity);\r\n    });\r\n    var short = lines.map(function(l){\r\n      return l.type === \"set\" ? l.orderName + \" (\" + l.picks.map(pickText).join(\", \") + \")\"\r\n                              : l.quantity + \" \u00D7 \" + (l.catName ? l.catName + \" - \" : \"\") + l.name + sizeText(l.size);\r\n    });\r\n    var ids = [];\r\n    lines.forEach(function(l){\r\n      if (l.type === \"set\") l.picks.forEach(function(p){ if (p.variantId) ids.push(p.variantId); });\r\n      else ids.push(l.variantId + (l.quantity > 1 ? \" x\" + l.quantity : \"\"));\r\n    });\r\n    var names = lines.filter(function(l){ return l.type === \"set\"; }).map(function(l){ return l.orderName; });\r\n    var pieces = lines.filter(function(l){ return l.type === \"piece\"; }).reduce(function(s, l){ return s + l.quantity; }, 0);\r\n    if (pieces) names.push(pieces + \" single piece\" + (pieces > 1 ? \"s\" : \"\"));\r\n    var deliveryText = t.delivery ? aed(t.delivery) : \"Free\";\r\n    form.querySelector(\".gb-cod-hidden\").innerHTML =\r\n        hidden(\"contact[order_type]\", \"Cash on Delivery\")\r\n      + hidden(\"contact[bundle]\", \"Cart: \" + names.join(\" + \"))\r\n      + hidden(\"contact[price]\", aed(t.total))\r\n      + hidden(\"contact[delivery]\", deliveryText)\r\n      + (t.discount ? hidden(\"contact[discount]\", \"Website offer \" + CONFIG.discount_percent + \"%: \u2212\" + aed(t.discount)) : \"\")\r\n      + hidden(\"contact[selected_items]\", short.join(\" | \"))\r\n      + hidden(\"contact[variant_ids]\", ids.join(\", \"))\r\n      + hidden(\"contact[order_reference]\", ref)\r\n      + hidden(\"contact[page_url]\", location.href.split(\"?\")[0])\r\n      + hidden(\"contact[body]\", \"NEW CASH ON DELIVERY ORDER (CART)\\nReference: \" + ref\r\n          + \"\\nTotal: \" + aed(t.total) + \" (items \" + aed(t.items)\r\n          + (t.discount ? \" \u2212 website offer \" + CONFIG.discount_percent + \"% \" + aed(t.discount) : \"\")\r\n          + \" + delivery \" + deliveryText + \")\\n\"\r\n          + detail.join(\"\\n\") + \"\\nPage: \" + location.href.split(\"?\")[0]);\r\n    writeRaw(COD_KEY, JSON.stringify({ ref: ref, at: Date.now() }), true);\r\n    busy = true;\r\n    var b = form.querySelector(\".gb-cod-submit\");\r\n    if (b) { b.disabled = true; b.textContent = T.cod_sending; }\r\n    /* the browser now sends the form to Shopify; Shopify comes back to the homepage with ?gb_cart=cod */\r\n  }\r\n\r\n  function copyText(text){\r\n    try {\r\n      var f = document.createElement(\"textarea\");\r\n      f.value = text; f.setAttribute(\"readonly\", \"\"); f.style.position = \"fixed\"; f.style.opacity = \"0\";\r\n      document.body.appendChild(f); f.select(); document.execCommand(\"copy\"); document.body.removeChild(f);\r\n    } catch(e){}\r\n    if (navigator.clipboard && window.isSecureContext) navigator.clipboard.writeText(text).catch(function(){});\r\n  }\r\n\r\n  /* \u2500\u2500 coming back from the payment page / the cash-on-delivery form \u2500\u2500 */\r\n  function restorePending(){\r\n    var p = readJSON(PENDING_KEY);\r\n    writeRaw(PENDING_KEY, null);\r\n    if (!p || !Array.isArray(p.lines)) return false;\r\n    var have = {}; lines.forEach(function(l){ have[l.id] = 1; });\r\n    var back = p.lines.filter(function(l){ return validLine(l) && !have[l.id]; });\r\n    if (!back.length) return false;\r\n    lines = back.concat(lines);\r\n    save();\r\n    return true;\r\n  }\r\n  var lastCod = null;\r\n  function onArrive(fromHistory){\r\n    var pend = readJSON(PENDING_KEY);\r\n    if (pend && Date.now() - (pend.at || 0) > 6 * 3600 * 1000) { writeRaw(PENDING_KEY, null); pend = null; }\r\n    var flag = urlParam(\"gb_cart\");\r\n    if (flag === \"cancel\") {\r\n      dropParam(\"gb_cart\");\r\n      if (restorePending()) open(\"cart\", T.restored, \"ok\");\r\n      return;\r\n    }\r\n    if (flag === \"cod\") {\r\n      dropParam(\"gb_cart\");\r\n      var cod = readJSON(COD_KEY, true);\r\n      if (cod) {\r\n        lastCod = cod;\r\n        writeRaw(COD_KEY, null, true);\r\n        lines = []; save();\r\n        open(\"done\");\r\n      }\r\n      return;\r\n    }\r\n    /* Back button from the payment page: offer to bring the cart back (they may not have paid) */\r\n    if (fromHistory && pend) { offerRestore = true; open(\"cart\"); }\r\n  }\r\n\r\n  function navType(){\r\n    try { var n = performance.getEntriesByType(\"navigation\")[0]; return n ? n.type : \"\"; } catch(e){ return \"\"; }\r\n  }\r\n\r\n  function start(){\r\n    buildUI();\r\n    onArrive(navType() === \"back_forward\");\r\n  }\r\n  /* other tabs changed the cart */\r\n  window.addEventListener(\"storage\", function(e){\r\n    if (e.key !== KEY && e.key !== null) return;\r\n    lines = load(); changed();\r\n  });\r\n  /* page shown again from the browser's back/forward memory */\r\n  window.addEventListener(\"pageshow\", function(e){\r\n    if (!e.persisted) return;\r\n    busy = false; lines = load(); changed();\r\n    onArrive(true);\r\n  });\r\n\r\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", start);\r\n  else start();\r\n\r\n  /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 what the pages can use \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\r\n  window.GBCart = {\r\n    config: CONFIG, t: T, ar: AR, fmt: fmt,\r\n    lines: function(){ return JSON.parse(JSON.stringify(lines)); },\r\n    sets: function(){ return JSON.parse(JSON.stringify(lines.filter(function(l){ return l.type === \"set\"; }))); },\r\n    pieceMap: pieceMap,\r\n    syncPieces: syncPieces,\r\n    importLegacy: importLegacy,\r\n    addSet: function(s){ var l = addSet(s); open(\"cart\", T.added_set.replace(\"{name}\", l.name), \"ok\"); return l; },\r\n    removeLine: removeLine,\r\n    setQty: setQty,\r\n    usedQty: usedQty,   /* how many of a variant the cart holds (pieces + gift-set picks) */\r\n    stockOf: stockOf,\r\n    clear: clear,\r\n    totals: totals,\r\n    deliveryNote: deliveryNote,\r\n    open: function(){ open(\"cart\"); },\r\n    checkout: function(){ open(\"cart\"); startCheckout(); },\r\n    close: close,\r\n    onChange: function(fn){ if (typeof fn === \"function\") listeners.push(fn); }\r\n  };\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
