{"status":200,"features":{"exp-EXPABCD60A4":{"defaultValue":""},"exp-EXP7FF5E7B6":{"defaultValue":"","rules":[{"id":"winner-deployed-1765192409818","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  const CONFIG = {\n    selectors: {\n      descriptionBlock: '.product-info__description',\n      descriptionContent: '.product-info__description .prose',\n      buyButtonsSection: '.product-info__buy-buttons'\n    },\n    styles: {\n      primary: '#272727',\n      secondary: '#f2f2f2',\n      border: '#f2f2f8',\n      accent: '#e9a9a9'\n    }\n  };\n\n  function initAccordion() {\n    const descriptionBlock = document.querySelector(CONFIG.selectors.descriptionBlock);\n    const descriptionContent = document.querySelector(CONFIG.selectors.descriptionContent);\n    const buyButtonsSection = document.querySelector(CONFIG.selectors.buyButtonsSection);\n\n    if (!descriptionBlock || !descriptionContent || !buyButtonsSection) {\n      return;\n    }\n\n    if (document.querySelector('.product-accordion')) {\n      return;\n    }\n\n    const paragraphs = descriptionContent.querySelectorAll('p, div[style*=\"direction\"]');\n    if (paragraphs.length === 0) {\n      return;\n    }\n\n    const allTexts = Array.from(paragraphs)\n      .map(p => {\n        const text = p.textContent.trim();\n        return text.replace(/[\\u00A0\\s]+/g, ' ').trim();\n      })\n      .filter(text => text.length > 0 && text !== 'undefined');\n\n    if (allTexts.length === 0) {\n      return;\n    }\n\n    const detailKeywords = ['פרטים:', 'פרטים', 'מידות:', 'מידות'];\n\n    let splitIndex = -1;\n    for (let i = 0; i < allTexts.length; i++) {\n      const text = allTexts[i].trim();\n      const startsWithKeyword = detailKeywords.some(keyword => \n        text === keyword || text.startsWith(keyword + ' ') || text.startsWith(keyword)\n      );\n      if (startsWithKeyword) {\n        splitIndex = i;\n        break;\n      }\n    }\n\n    let descriptionTexts = [];\n    let detailTexts = [];\n    let hasDetails = false;\n\n    if (splitIndex !== -1) {\n      descriptionTexts = allTexts.slice(0, splitIndex);\n      detailTexts = allTexts.slice(splitIndex);\n      hasDetails = true;\n    } else {\n      descriptionTexts = allTexts;\n      hasDetails = false;\n    }\n\n    console.log('=== Accordion Debug ===');\n    console.log('Total paragraphs:', allTexts.length);\n    console.log('Split index:', splitIndex);\n    console.log('Description paragraphs:', descriptionTexts.length);\n    console.log('Detail paragraphs:', detailTexts.length);\n    console.log('Has details tab?:', hasDetails);\n\n    const fullDescriptionHTML = descriptionTexts.map(text => `\n      <p style=\"\n        margin: 0 0 12px 0;\n        line-height: 1.6;\n        color: ${CONFIG.styles.primary};\n        font-size: 14px;\n      \">${text}</p>\n    `).join('');\n\n    const productDetailsHTML = detailTexts.map(text => `\n      <p style=\"\n        margin: 0 0 12px 0;\n        line-height: 1.6;\n        color: ${CONFIG.styles.primary};\n        font-size: 14px;\n      \">${text}</p>\n    `).join('');\n\n    descriptionBlock.style.display = 'none';\n\n    const accordionHTML = `\n      <div class=\"product-accordion\" style=\"\n        font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n        direction: rtl;\n        margin-top: 16px;\n        background: transparent;\n      \">\n        <div class=\"accordion-item\" style=\"\n          border-top: 1px solid rgb(220, 220, 220);\n          border-bottom: 1px solid rgb(220, 220, 220);\n          border-left: none;\n          border-right: none;\n          margin-bottom: 0;\n          margin-left: -20px;\n          margin-right: -20px;\n          padding-left: 0;\n          padding-right: 0;\n          overflow: hidden;\n          background: transparent;\n        \">\n          <button class=\"accordion-header\" data-tab=\"description\" style=\"\n            width: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 16px 20px;\n            background: transparent;\n            border: none;\n            cursor: pointer;\n            font-size: 16px;\n            font-weight: 600;\n            color: ${CONFIG.styles.primary};\n            text-align: right;\n            transition: background-color 0.2s ease;\n          \" type=\"button\">\n            <span>תיאור המוצר</span>\n            <svg class=\"accordion-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" style=\"\n              transition: transform 0.3s ease;\n              flex-shrink: 0;\n            \">\n              <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"${CONFIG.styles.primary}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n            </svg>\n          </button>\n          <div class=\"accordion-content\" data-content=\"description\" style=\"\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.3s ease, padding 0.3s ease;\n            padding: 0 20px;\n            margin-bottom: 5px;\n          \">\n            <div style=\"padding-bottom: 16px;\">\n              ${fullDescriptionHTML}\n            </div>\n          </div>\n        </div>\n\n        ${hasDetails ? `\n        <div class=\"accordion-item\" style=\"\n          border-top: 1px solid rgb(220, 220, 220);\n          border-bottom: 1px solid rgb(220, 220, 220);\n          border-left: none;\n          border-right: none;\n          margin-left: -20px;\n          margin-right: -20px;\n          padding-left: 0;\n          padding-right: 0;\n          overflow: hidden;\n          background: transparent;\n        \">\n          <button class=\"accordion-header\" data-tab=\"details\" style=\"\n            width: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 16px 20px;\n            background: transparent;\n            border: none;\n            cursor: pointer;\n            font-size: 16px;\n            font-weight: 600;\n            color: ${CONFIG.styles.primary};\n            text-align: right;\n            transition: background-color 0.2s ease;\n          \" type=\"button\">\n            <span>פרטי מוצר</span>\n            <svg class=\"accordion-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" style=\"\n              transition: transform 0.3s ease;\n              flex-shrink: 0;\n            \">\n              <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"${CONFIG.styles.primary}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n            </svg>\n          </button>\n          <div class=\"accordion-content\" data-content=\"details\" style=\"\n            max-height: 0;\n            overflow: hidden;\n            transition: max-height 0.3s ease, padding 0.3s ease;\n            padding: 0 20px;\n            margin-bottom: 5px;\n          \">\n            <div style=\"padding-bottom: 16px;\">\n              ${productDetailsHTML}\n            </div>\n          </div>\n        </div>\n        ` : ''}\n      </div>\n    `;\n\n    const accordionContainer = document.createElement('div');\n    accordionContainer.className = 'product-accordion-wrapper';\n    accordionContainer.innerHTML = accordionHTML;\n\n    const buyButtonsParent = buyButtonsSection.parentElement;\n\n    if (buyButtonsParent) {\n      buyButtonsParent.insertAdjacentElement('afterend', accordionContainer);\n    }\n\n    addAccordionHandlers();\n  }\n\n  function addAccordionHandlers() {\n    const headers = document.querySelectorAll('.accordion-header');\n\n    headers.forEach(header => {\n      header.addEventListener('click', function() {\n        const content = this.nextElementSibling;\n        const icon = this.querySelector('.accordion-icon');\n        const isOpen = content.style.maxHeight && content.style.maxHeight !== '0px';\n\n        if (isOpen) {\n          content.style.maxHeight = '0';\n          content.style.paddingTop = '0';\n          content.style.paddingBottom = '0';\n          icon.style.transform = 'rotate(0deg)';\n          this.style.backgroundColor = 'transparent';\n        } else {\n          content.style.maxHeight = content.scrollHeight + 'px';\n          content.style.paddingTop = '16px';\n          icon.style.transform = 'rotate(180deg)';\n          this.style.backgroundColor = 'transparent';\n        }\n      });\n\n      header.addEventListener('mouseenter', function() {\n        const content = this.nextElementSibling;\n        const isOpen = content.style.maxHeight && content.style.maxHeight !== '0px';\n        if (!isOpen) {\n          this.style.backgroundColor = CONFIG.styles.secondary;\n        }\n      });\n\n      header.addEventListener('mouseleave', function() {\n        const content = this.nextElementSibling;\n        const isOpen = content.style.maxHeight && content.style.maxHeight !== '0px';\n        if (!isOpen) {\n          this.style.backgroundColor = 'transparent';\n        }\n      });\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAccordion);\n  } else {\n    initAccordion();\n  }\n\n  const mainObserver = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.type === 'childList') {\n        if (!document.querySelector('.product-accordion')) {\n          initAccordion();\n        }\n      }\n    });\n  });\n\n  const productInfo = document.querySelector('.product-info');\n  if (productInfo) {\n    mainObserver.observe(productInfo, {\n      childList: true,\n      subtree: true\n    });\n  }\n\n})();"}]},"exp-EXPC2D9C797":{"defaultValue":""},"exp-EXP992229A5":{"defaultValue":"","rules":[{"id":"winner-deployed-1765797837272","force":"(function() {\n  'use strict';\n\n  // Navigation data structure - EXACT categories and subcategories from the original site\n  const navigationData = {\n    mainTitle: 'תפריט ראשי',\n    items: [\n      {\n        title: 'לבית',\n        url: '#',\n        children: [\n          {\n            title: 'עיצוב לבית',\n            children: [\n              {title: 'ואזות ועציצים', url: '/collections/plants'},\n              {title: 'כלי השרשה והנבטה', url: '/collections/%D7%9B%D7%9C%D7%99-%D7%94%D7%A9%D7%A8%D7%A9%D7%94-%D7%95%D7%94%D7%A0%D7%91%D7%98%D7%94'},\n              {title: 'כלי בית ודקורציה', url: '/collections/%D7%9B%D7%9C%D7%99-%D7%91%D7%99%D7%AA-%D7%95%D7%93%D7%A7%D7%95%D7%A8%D7%A6%D7%99%D7%94'}\n            ]\n          },\n          {\n            title: 'לקיר',\n            children: [\n              {title: 'שעונים', url: '/collections/%D7%A9%D7%A2%D7%95%D7%A0%D7%99%D7%9D'},\n              {title: 'תמונות רקומות', url: '/collections/%D7%AA%D7%9E%D7%95%D7%A0%D7%95%D7%AA-%D7%A8%D7%A7%D7%95%D7%9E%D7%95%D7%AA'},\n              {title: 'אגרטלים לקיר', url: '/collections/%D7%90%D7%92%D7%A8%D7%98%D7%9C%D7%99-%D7%A7%D7%99%D7%A8'},\n              {title: 'עבודות חוט ברזל', url: '/collections/%D7%A2%D7%91%D7%95%D7%93%D7%95%D7%AA-%D7%91%D7%97%D7%95%D7%98-%D7%91%D7%A8%D7%96%D7%9C'},\n              {title: 'חמסות', url: '/collections/%D7%97%D7%9E%D7%A1%D7%95%D7%AA'},\n              {title: 'צלחות מאויירות לתליה', url: '/collections/%D7%A6%D7%9C%D7%97%D7%95%D7%AA-%D7%9E%D7%90%D7%95%D7%99%D7%99%D7%A8%D7%95%D7%AA-%D7%9C%D7%AA%D7%9C%D7%99%D7%94'}\n            ]\n          },\n          {\n            title: 'למטבח',\n            children: [\n              {title: 'אביזרים לבישול', url: '/collections/%D7%9C%D7%91%D7%99%D7%A9%D7%95%D7%9C'},\n              {title: 'כוסות וספלים', url: '/collections/%D7%9B%D7%95%D7%A1%D7%95%D7%AA-%D7%95%D7%A1%D7%A4%D7%9C%D7%99%D7%9D'},\n              {title: 'מלח פלפל', url: '/collections/%D7%9E%D7%9C%D7%97-%D7%A4%D7%9C%D7%A4%D7%9C'},\n              {title: 'מגשים, צלחות וקערות', url: '/collections/%D7%9E%D7%92%D7%A9%D7%99%D7%9D-%D7%A6%D7%9C%D7%97%D7%95%D7%AA-%D7%95%D7%A7%D7%A2%D7%A8%D7%95%D7%AA'}\n            ]\n          },\n          {\n            title: 'לגעת בחומר',\n            children: [\n              {title: 'עיצוב קרמיקה', url: '/collections/%D7%A7%D7%A8%D7%9E%D7%99%D7%A7%D7%94'},\n              {title: 'עיצוב מבטון', url: '/collections/%D7%9E%D7%95%D7%A6%D7%A8%D7%99%D7%9D-%D7%9E%D7%91%D7%98%D7%95%D7%9F'},\n              {title: 'עיצוב מזכוכית', url: '/collections/%D7%A2%D7%91%D7%95%D7%93%D7%95%D7%AA-%D7%9E%D7%96%D7%9B%D7%95%D7%9B%D7%99%D7%AA'},\n              {title: 'הדפסת תלת מימד', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%94-%D7%91%D7%AA%D7%9C%D7%AA-%D7%9E%D7%99%D7%9E%D7%93'}\n            ]\n          }\n        ]\n      },\n      {\n        title: 'אסופה',\n        url: '#',\n        children: [\n          {\n            title: 'מה ששלנו, שלנו',\n            children: [\n              {title: 'בסט סלרס', url: '/collections/bestsellers'},\n              {title: 'מוצרי חובה', url: '/collections/must-have-%F0%9F%8E%81'},\n              {title: 'מוצרים נפלאים בהנחה', url: '/collections/%D7%A1%D7%99%D7%99%D7%9C-%D7%95%D7%95%D7%90%D7%98'},\n              {title: 'גיפט קארד', url: 'https://valuecard.co.il/GiftCards/Asufa#Welcome'},\n              {title: 'כל המוצרים שלנו', url: '/collections'}\n            ]\n          },\n          {\n            title: 'הפרוייקטים שלנו',\n            children: [\n              {title: 'הגדה שלנו לפסח', url: '/pages/%D7%94%D7%94%D7%92%D7%93%D7%94-%D7%A9%D7%9C%D7%A0%D7%95-%D7%9C%D7%A4%D7%A1%D7%97'},\n              {title: 'תוצרת', url: '/collections/%D7%AA%D7%95%D7%A6%D7%A8%D7%AA'},\n              {title: 'נייברהודס', url: '/collections/%D7%A2%D7%95%D7%A9%D7%99%D7%9D-%D7%A9%D7%9B%D7%95%D7%A0%D7%94'}\n            ]\n          },\n          {\n            title: 'מתנות ישראליות',\n            children: [\n              {title: 'מזכרות ישראליות', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99%D7%95%D7%AA'},\n              {title: 'תל אביב', url: '/collections/%D7%AA%D7%9C-%D7%90%D7%91%D7%99%D7%91'},\n              {title: 'מתנות שימושיות', url: '/collections'},\n              {title: 'יודאיקה', url: '/collections/judaica'},\n              {title: 'הדפסים ישראלים', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99%D7%9D'},\n              {title: 'מארזי קלפים', url: '/collections/%D7%A0%D7%95%D7%A2%D7%94-%D7%94%D7%93%D7%A8%D7%99-ask-q'},\n              {title: 'בובות מנהיגים', url: '/collections/%D7%91%D7%95%D7%91%D7%95%D7%AA-%D7%9E%D7%A0%D7%94%D7%99%D7%92%D7%99%D7%9D'}\n            ]\n          },\n          {\n            title: 'מתנות ילדים',\n            children: [\n              {title: 'צעצועים', url: '/collections/%D7%A6%D7%A2%D7%A6%D7%95%D7%A2%D7%99%D7%9D'},\n              {title: 'ספרי ילדים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%99%D7%9C%D7%93%D7%99%D7%9D'}\n            ]\n          },\n          {\n            title: 'מתנות מקומיות',\n            url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99%D7%95%D7%AA',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/3_dfc095f1-4030-4050-a0a4-8f479394fa31.png?v=1732825283&width=400'\n          },\n          {\n            title: 'שובר המתנה המושלם',\n            url: 'https://valuecard.co.il/GiftCards/Asufa#Welcome',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/Gift_Card_c24fb59d-a3b0-4af8-9f6e-d50007ddcb13.jpg?v=1732825450&width=400'\n          }\n        ]\n      },\n      {\n        title: 'לייפסטייל',\n        url: '#',\n        children: [\n          {\n            title: 'ספרים',\n            children: [\n              {title: 'ספרי ילדים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%99%D7%9C%D7%93%D7%99%D7%9D'},\n              {title: 'ספרי עיצוב', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D'},\n              {title: 'ספרי מיינדפולנס', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%9E%D7%99%D7%99%D7%A0%D7%93%D7%A4%D7%95%D7%9C%D7%A0%D7%A1'},\n              {title: 'ספרי מתנה', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%9E%D7%AA%D7%A0%D7%94'},\n              {title: 'ספרים מנגנים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D-%D7%9E%D7%A0%D7%92%D7%A0%D7%99%D7%9D'},\n              {title: 'הגדה של פסח', url: '/collections/%D7%94%D7%92%D7%93%D7%94-%D7%A9%D7%9C-%D7%A4%D7%A1%D7%97'}\n            ]\n          },\n          {\n            title: 'לייפסטייל',\n            children: [\n              {title: 'כובעים', url: '/collections/%D7%9B%D7%95%D7%91%D7%A2%D7%99%D7%9D'},\n              {title: 'נרות וסבונים', url: '/collections/%D7%A0%D7%A8%D7%95%D7%AA-%D7%95%D7%A1%D7%91%D7%95%D7%A0%D7%99%D7%9D'},\n              {title: 'מושמושים ישראליים', url: '/collections/%D7%9E%D7%95%D7%A9%D7%9E%D7%95%D7%A9%D7%99%D7%9D'},\n              {title: 'שכונות בתל אביב', url: '/collections/%D7%94%D7%9B%D7%95%D7%91%D7%A2%D7%99%D7%9D-%D7%94%D7%94%D7%95%D7%A8%D7%A1%D7%99%D7%9D-%D7%A9%D7%9C-%D7%93%D7%9F-%D7%9E%D7%99%D7%9B%D7%9E%D7%9F'}\n            ]\n          },\n          {\n            title: 'מוצרי נייר',\n            children: [\n              {title: 'פלנרים וארגונית', url: '/collections/%D7%A4%D7%9C%D7%A0%D7%A8%D7%99%D7%9D-%D7%95%D7%90%D7%A8%D7%92%D7%95%D7%A0%D7%99%D7%95%D7%AA-1'},\n              {title: 'יומנים ולוחות שנה', url: '/collections/%D7%99%D7%95%D7%9E%D7%A0%D7%99%D7%9D-%D7%95%D7%9C%D7%95%D7%97%D7%95%D7%AA-%D7%A9%D7%A0%D7%94-2023-2024'},\n              {title: 'מחברות', url: '/collections/%D7%9E%D7%97%D7%91%D7%A8%D7%95%D7%AA-1'},\n              {title: 'למשרד', url: '/collections/%D7%90%D7%91%D7%99%D7%96%D7%A8%D7%99%D7%9D-%D7%9C%D7%9E%D7%A9%D7%A8%D7%93'},\n              {title: 'כרטיסי ברכה וגלויות', url: '/collections/%D7%9B%D7%A8%D7%98%D7%99%D7%A1%D7%99-%D7%91%D7%A8%D7%9B%D7%94-%D7%95%D7%92%D7%9C%D7%95%D7%99%D7%95%D7%AA'}\n            ]\n          },\n          {\n            title: 'נרות ומפיצי ריח',\n            url: '/collections/%D7%A0%D7%A8%D7%95%D7%AA-%D7%95%D7%A1%D7%91%D7%95%D7%A0%D7%99%D7%9D',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/52_Aya_Wind_copy_Medium_40d335b5-14bc-4365-a41c-63fd29022ad5.jpg?v=1751122194&width=400'\n          },\n          {\n            title: 'מחברות \"תוצרת\"',\n            url: '/collections/%D7%AA%D7%95%D7%A6%D7%A8%D7%AA',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/IMG_9137.heic?v=1748530757&width=400'\n          }\n        ]\n      },\n      {\n        title: 'יודאיקה',\n        url: '#',\n        children: [\n          {\n            title: 'יודאיקה',\n            children: [\n              {title: 'מזוזות', url: '/collections/%D7%9E%D7%96%D7%95%D7%96%D7%95%D7%AA'},\n              {title: 'חמסות', url: '/collections/%D7%97%D7%9E%D7%A1%D7%95%D7%AA'},\n              {title: 'חנוכיות', url: '/collections/%D7%97%D7%A0%D7%95%D7%9B%D7%94'},\n              {title: 'פמוטים', url: '/collections/%D7%A4%D7%9E%D7%95%D7%98%D7%99%D7%9D'}\n            ]\n          },\n          {\n            title: 'חגים',\n            children: [\n              {title: 'הגדה של פסח', url: '/collections/%D7%94%D7%92%D7%93%D7%94-%D7%A9%D7%9C-%D7%A4%D7%A1%D7%97'},\n              {title: 'מתנות לפסח', url: '/collections/%D7%A4%D7%A1%D7%97-%D7%A9%D7%9E%D7%97'},\n              {title: 'חנוכה', url: '/collections/%D7%97%D7%A0%D7%95%D7%9B%D7%94'},\n              {title: 'חגי תשרי', url: '/collections/%D7%97%D7%92%D7%99-%D7%AA%D7%A9%D7%A8%D7%99'}\n            ]\n          },\n          {\n            title: 'הגדה של פסח עברית-אנגלית',\n            url: '/products/%D7%94%D7%96%D7%9E%D7%A0%D7%94-%D7%9E%D7%95%D7%A7%D7%93%D7%9E%D7%AA-%D7%94%D7%92%D7%93%D7%94-%D7%A9%D7%9C-%D7%A4%D7%A1%D7%97-%D7%9E%D7%94%D7%93%D7%95%D7%A8%D7%94-%D7%93%D7%95-%D7%9C%D7%A9%D7%95%D7%A0%D7%99%D7%AA-%D7%97%D7%93%D7%A9%D7%94-%D7%A2%D7%91%D7%A8%D7%99%D7%AA-%D7%95%D7%90%D7%A0%D7%92%D7%9C%D7%99%D7%AA',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/98_Aya_Wind_copy_websize.jpg?v=1743412328&width=400'\n          },\n          {\n            title: 'חמסה עליך',\n            url: '/collections/%D7%97%D7%9E%D7%A1%D7%95%D7%AA',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/7_7bba1cda-fbfc-4106-a49a-83f9d193baa7.jpg?v=1692526666&width=400'\n          }\n        ]\n      },\n      {\n        title: 'ילדים',\n        url: '#',\n        children: [\n          {\n            title: 'מתנות לילדים',\n            children: [\n              {title: 'משחקים וצעצועים', url: '/collections/%D7%9E%D7%A9%D7%97%D7%A7%D7%99%D7%9D-%D7%95%D7%A6%D7%A2%D7%A6%D7%95%D7%A2%D7%99%D7%9D'},\n              {title: 'ספרי ילדים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%99%D7%9C%D7%93%D7%99%D7%9D'}\n            ]\n          },\n          {\n            title: 'חדרי ילדים',\n            children: [\n              {title: 'הדפסים לילדים', url: '/'},\n              {title: 'הדפסי א ב', url: '/'},\n              {title: 'אקססוריז לחדרי ילדים', url: '/'}\n            ]\n          }\n        ]\n      },\n      {\n        title: 'הדפסים',\n        url: '#',\n        children: [\n          {\n            title: 'חדרים',\n            children: [\n              {title: 'למטבח', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%9C%D7%9E%D7%98%D7%91%D7%97'},\n              {title: 'לסלון', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%9C%D7%A1%D7%9C%D7%95%D7%9F-%D7%95%D7%A4%D7%99%D7%A0%D7%AA-%D7%90%D7%95%D7%9B%D7%9C'},\n              {title: 'ילדים', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%9C%D7%97%D7%93%D7%A8%D7%99-%D7%99%D7%9C%D7%93%D7%99%D7%9D-1'},\n              {title: 'חדר שינה', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%9C%D7%97%D7%93%D7%A8-%D7%94%D7%A9%D7%99%D7%A0%D7%94'}\n            ]\n          },\n          {\n            title: 'נושא',\n            children: [\n              {title: 'אנשים ודמויות', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%A4%D7%99%D7%92%D7%95%D7%A8%D7%98%D7%99%D7%91%D7%99%D7%9D'},\n              {title: 'עירוני ותל אביבי', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%A2%D7%99%D7%A8%D7%95%D7%A0%D7%99%D7%99%D7%9D-%D7%90%D7%95%D7%A8%D7%91%D7%A0%D7%99%D7%99%D7%9D'},\n              {title: 'טבע דומם', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99-%D7%98%D7%91%D7%A2-%D7%93%D7%95%D7%9E%D7%9D'},\n              {title: 'צמחים', url: '/'}\n            ]\n          },\n          {\n            title: 'סגנון',\n            children: [\n              {title: 'צבעוני', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%A6%D7%91%D7%A2%D7%95%D7%A0%D7%99%D7%99%D7%9D'},\n              {title: 'שחור לבן', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1-%D7%A9%D7%97%D7%95%D7%A8-%D7%9C%D7%91%D7%9F'},\n              {title: 'נורדי', url: '/collections/%D7%A4%D7%95%D7%A1%D7%98%D7%A8%D7%99%D7%9D-%D7%A0%D7%95%D7%A8%D7%93%D7%99%D7%99%D7%9D'},\n              {title: 'אמנות רחוב', url: '/collections/%D7%90%D7%9E%D7%A0%D7%95%D7%AA-%D7%A8%D7%97%D7%95%D7%91'},\n              {title: 'פיגורטיבי', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D-%D7%A4%D7%99%D7%92%D7%95%D7%A8%D7%98%D7%99%D7%91%D7%99%D7%9D'},\n              {title: 'אבסטרקט', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1%D7%99-%D7%90%D7%91%D7%A1%D7%98%D7%A8%D7%A7%D7%98'}\n            ]\n          },\n          {\n            title: 'עוד בעולם הפרינטים שלנו',\n            children: [\n              {title: 'הצעות הגשה', url: '/collections/%D7%9E%D7%90%D7%A8%D7%96%D7%99-%D7%94%D7%93%D7%A4%D7%A1%D7%99%D7%9D'},\n              {title: 'מתלים מגנטים', url: '/collections/%D7%9E%D7%AA%D7%9C%D7%99%D7%9D-%D7%9E%D7%92%D7%A0%D7%98%D7%99%D7%9D'},\n              {title: 'מהדורות מוגבלות', url: '/collections/%D7%A2%D7%91%D7%95%D7%93%D7%95%D7%AA-%D7%9E%D7%A7%D7%95%D7%A8-%D7%95%D7%A2%D7%91%D7%95%D7%93%D7%AA-%D7%99%D7%93'},\n              {title: 'הדפסה ידנית', url: '/collections/%D7%94%D7%93%D7%A4%D7%A1-%D7%91%D7%A2%D7%91%D7%95%D7%93%D7%AA-%D7%99%D7%93'}\n            ]\n          },\n          {\n            title: 'הזמינו את ההדפסים של מיכוש!',\n            url: '/collections/%D7%9E%D7%99%D7%9B%D7%95%D7%A9',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/sea_life_print__micush.jpg?v=1643376597&width=400'\n          },\n          {\n            title: 'סדרת תוצרת',\n            url: '/collections/%D7%AA%D7%95%D7%A6%D7%A8%D7%AA',\n            isBanner: true,\n            image: '//asufadesign.co.il/cdn/shop/files/01_4f12ae40-a4de-45b1-b22f-a7af9147c40c.jpg?v=1706187508&width=400'\n          }\n        ]\n      }\n    ]\n  };\n\n  function createNavigationDrawer() {\n    try {\n      const existingDrawer = document.querySelector('#header-sidebar-menu');\n      if (!existingDrawer) {\n        return;\n      }\n\n      // Store reference to parent and original state\n      const parent = existingDrawer.parentNode;\n      const wasOpen = existingDrawer.hasAttribute('open');\n\n      // Create new navigation drawer HTML\n      const drawerHTML = `\n        <div class=\"mobile-navigation-drawer\" style=\"\n          position: fixed;\n          top: 0;\n          right: 0;\n          width: 100%;\n          height: 100%;\n          background: #ffffff;\n          z-index: 9999;\n          transform: translateX(${wasOpen ? '0' : '100%'});\n          transition: transform 0.3s ease-in-out;\n          overflow-y: auto;\n          box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);\n          direction: rtl;\n          display: flex;\n          flex-direction: column;\n        \">\n          <div class=\"navigation navigation--main\" role=\"navigation\" aria-label=\"ניווט ראשי\" style=\"\n            display: flex;\n            flex-direction: column;\n            height: 100%;\n          \">\n            <div class=\"navigation__tier-1-container\" style=\"\n              flex: 1;\n              display: flex;\n              flex-direction: column;\n              overflow-y: auto;\n            \">\n              <!-- Mobile Header -->\n              <div class=\"mobile-only-flex navigation__mobile-header\" style=\"\n                display: flex;\n                align-items: center;\n                justify-content: space-between;\n                padding: 16px 20px;\n                border-bottom: 1px solid #f2f2f8;\n                background: #ffffff;\n                position: sticky;\n                top: 0;\n                z-index: 10;\n              \">\n                <a href=\"#\" class=\"mobile-nav-back\" style=\"\n                  display: none;\n                  color: #272727;\n                  cursor: pointer;\n                  padding: 8px;\n                  margin: -8px;\n                \" aria-label=\"חזרה\">\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <polyline points=\"9 18 15 12 9 6\"></polyline>\n                  </svg>\n                </a>\n                <span class=\"mobile-nav-title\" style=\"\n                  font-size: 18px;\n                  font-weight: 700;\n                  color: #272727;\n                  flex: 1;\n                  text-align: center;\n                \">${navigationData.mainTitle}</span>\n                <a href=\"#\" class=\"mobile-nav-toggle\" style=\"\n                  color: #272727;\n                  cursor: pointer;\n                  padding: 8px;\n                  margin: -8px;\n                \" aria-label=\"סגור תפריט\">\n                  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n                    <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n                  </svg>\n                </a>\n              </div>\n\n              <!-- Main Navigation List -->\n              <ul class=\"navigation__tier-1\" style=\"\n                list-style: none;\n                margin: 0;\n                padding: 20px 0;\n              \">\n                ${navigationData.items.map((item, index) => createNavigationItem(item, index)).join('')}\n              </ul>\n            </div>\n          </div>\n\n          <!-- Footer Section -->\n          <div class=\"mobile-navigation-drawer__footer\" style=\"\n            padding: 20px;\n            border-top: 1px solid #f2f2f8;\n            margin-top: auto;\n          \">\n            <!-- Social Links -->\n            <div class=\"social-links\" style=\"margin-bottom: 20px;\">\n              <ul class=\"social-links__list\" style=\"\n                display: flex;\n                gap: 20px;\n                list-style: none;\n                padding: 0;\n                margin: 0;\n                justify-content: center;\n              \">\n                <li>\n                  <a aria-label=\"Instagram\" target=\"_blank\" rel=\"noopener\" href=\"https://www.instagram.com/asufadesign/\" style=\"\n                    color: #272727;\n                    display: inline-flex;\n                    align-items: center;\n                    justify-content: center;\n                    width: 44px;\n                    height: 44px;\n                    transition: opacity 0.2s;\n                  \">\n                    <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                      <path d=\"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"/>\n                    </svg>\n                  </a>\n                </li>\n                <li>\n                  <a aria-label=\"Facebook\" target=\"_blank\" rel=\"noopener\" href=\"https://www.facebook.com/search/top?q=asufa\" style=\"\n                    color: #272727;\n                    display: inline-flex;\n                    align-items: center;\n                    justify-content: center;\n                    width: 44px;\n                    height: 44px;\n                    transition: opacity 0.2s;\n                  \">\n                    <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n                      <path d=\"M9.198 21.5h4v-8.01h3.604l.396-3.98h-4V7.5a1 1 0 0 1 1-1h3v-4h-3a5 5 0 0 0-5 5v2.01h-2l-.396 3.98h2.396v8.01Z\"/>\n                    </svg>\n                  </a>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </div>\n      `;\n\n      // Create container div\n      const container = document.createElement('div');\n      container.innerHTML = drawerHTML;\n      const newDrawer = container.firstElementChild;\n\n      // Add data attribute to identify our drawer\n      newDrawer.setAttribute('data-variant-drawer', 'true');\n\n      // Replace old drawer\n      parent.replaceChild(newDrawer, existingDrawer);\n\n      // Set up event listeners\n      setupDrawerEventListeners(newDrawer);\n\n      // If it was open, open the new drawer\n      if (wasOpen) {\n        setTimeout(() => {\n          newDrawer.style.transform = 'translateX(0)';\n        }, 50);\n      }\n\n    } catch (error) {\n      console.error('Error creating navigation drawer:', error);\n    }\n  }\n\n  function createNavigationItem(item, index) {\n    const hasChildren = item.children && item.children.length > 0;\n\n    if (hasChildren) {\n      // For items with children, create button that opens submenu\n      return `\n        <li class=\"navigation__item navigation__item--with-children\" style=\"\n          border-bottom: 1px solid #f2f2f8;\n          position: relative;\n        \">\n          <button class=\"navigation__link navigation__trigger\" data-submenu-id=\"submenu-${index}\" style=\"\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 18px 20px;\n            color: #272727;\n            font-size: 20px;\n            font-weight: 400;\n            text-decoration: none;\n            background: none;\n            border: none;\n            width: 100%;\n            cursor: pointer;\n            transition: background-color 0.2s;\n            text-align: right;\n          \">\n            <span>${item.title}</span>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"opacity: 0.5; flex-shrink: 0;\">\n              <polyline points=\"15 18 9 12 15 6\"></polyline>\n            </svg>\n          </button>\n          ${createSubmenu(item, index)}\n        </li>\n      `;\n    } else {\n      // For items without children, create direct link\n      return `\n        <li class=\"navigation__item\" style=\"\n          border-bottom: 1px solid #f2f2f8;\n          position: relative;\n        \">\n          <a href=\"${item.url}\" class=\"navigation__link\" style=\"\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 18px 20px;\n            color: #272727;\n            font-size: 20px;\n            font-weight: 400;\n            text-decoration: none;\n            transition: background-color 0.2s;\n          \">\n            <span>${item.title}</span>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"opacity: 0.5; flex-shrink: 0;\">\n              <polyline points=\"15 18 9 12 15 6\"></polyline>\n            </svg>\n          </a>\n        </li>\n      `;\n    }\n  }\n\n  function createSubSubmenuItem(subItem, parentIndex, subIndex) {\n    const hasChildren = subItem.children && subItem.children.length > 0;\n    const isBanner = subItem.isBanner === true;\n\n    if (isBanner) {\n      // Promotional banner item\n      return `\n        <li style=\"border-bottom: 1px solid #f2f2f8; margin: 8px 0;\">\n          <a href=\"${subItem.url}\" style=\"\n            display: block;\n            padding: 20px;\n            background: linear-gradient(135deg, #5297c0 0%, #4a89ad 100%);\n            color: #ffffff;\n            font-size: 17px;\n            font-weight: 600;\n            text-align: center;\n            text-decoration: none;\n            border-radius: 8px;\n            margin: 0 12px;\n            box-shadow: 0 2px 8px rgba(82, 151, 192, 0.3);\n            transition: transform 0.2s, box-shadow 0.2s;\n          \" onmouseover=\"this.style.transform='translateY(-2px)'; this.style.boxShadow='0 4px 12px rgba(82, 151, 192, 0.4)'\" onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 2px 8px rgba(82, 151, 192, 0.3)'\">${subItem.title}</a>\n        </li>\n      `;\n    } else if (hasChildren) {\n      // Subcategory has further children - create button that opens sub-submenu\n      return `\n        <li style=\"border-bottom: 1px solid #f2f2f8;\">\n          <button class=\"navigation__trigger\" data-submenu-id=\"sub-submenu-${parentIndex}-${subIndex}\" style=\"\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 16px 20px;\n            color: #272727;\n            font-size: 16px;\n            text-decoration: none;\n            background: none;\n            border: none;\n            width: 100%;\n            cursor: pointer;\n            transition: background-color 0.2s;\n            text-align: right;\n          \">\n            <span>${subItem.title}</span>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"opacity: 0.5; flex-shrink: 0;\">\n              <polyline points=\"15 18 9 12 15 6\"></polyline>\n            </svg>\n          </button>\n          ${createSubSubmenu(subItem, parentIndex, subIndex)}\n        </li>\n      `;\n    } else {\n      // Direct link\n      return `\n        <li style=\"border-bottom: 1px solid #f2f2f8;\">\n          <a href=\"${subItem.url}\" style=\"\n            display: block;\n            padding: 16px 20px;\n            color: #272727;\n            font-size: 16px;\n            text-decoration: none;\n            transition: background-color 0.2s;\n          \">${subItem.title}</a>\n        </li>\n      `;\n    }\n  }\n\n  function createBannersSection(bannerItems) {\n    return `\n      <li style=\"padding: 12px 16px; margin-top: 16px;\">\n        <div style=\"\n          display: grid;\n          grid-template-columns: 1fr 1fr;\n          gap: 12px;\n        \">\n          ${bannerItems.map(banner => `\n            <a href=\"${banner.url}\" style=\"\n              display: block;\n              position: relative;\n              border-radius: 8px;\n              overflow: hidden;\n              box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n              transition: transform 0.2s, box-shadow 0.2s;\n              text-decoration: none;\n            \" onmouseover=\"this.style.transform='translateY(-4px)'; this.style.boxShadow='0 4px 16px rgba(0, 0, 0, 0.15)'\" onmouseout=\"this.style.transform='translateY(0)'; this.style.boxShadow='0 2px 8px rgba(0, 0, 0, 0.1)'\">\n              <img src=\"${banner.image}\" alt=\"${banner.title}\" style=\"\n                width: 100%;\n                height: 160px;\n                object-fit: cover;\n                display: block;\n              \">\n              <div style=\"\n                position: absolute;\n                bottom: 0;\n                left: 0;\n                right: 0;\n                padding: 12px 8px;\n                background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%);\n                color: #ffffff;\n                font-size: 14px;\n                font-weight: 600;\n                text-align: center;\n                line-height: 1.3;\n              \">\n                ${banner.title}\n              </div>\n            </a>\n          `).join('')}\n        </div>\n      </li>\n    `;\n  }\n\n  function createSubSubmenu(subItem, parentIndex, subIndex) {\n    return `\n      <div id=\"sub-submenu-${parentIndex}-${subIndex}\" class=\"navigation__submenu navigation__sub-submenu\" style=\"\n        position: fixed;\n        top: 0;\n        right: 0;\n        width: 100%;\n        height: 100%;\n        background: #ffffff;\n        transform: translateX(100%);\n        transition: transform 0.3s ease-in-out;\n        z-index: 11;\n        display: flex;\n        flex-direction: column;\n        overflow-y: auto;\n      \">\n        <!-- Sub-submenu Header -->\n        <div class=\"navigation__submenu-header\" style=\"\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          padding: 16px 20px;\n          border-bottom: 1px solid #f2f2f8;\n          background: #ffffff;\n          position: sticky;\n          top: 0;\n          z-index: 10;\n        \">\n          <button class=\"navigation__back-btn\" data-back-from=\"sub-submenu-${parentIndex}-${subIndex}\" style=\"\n            background: none;\n            border: none;\n            color: #272727;\n            cursor: pointer;\n            padding: 8px;\n            margin: -8px;\n            display: flex;\n            align-items: center;\n          \" aria-label=\"חזרה\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"9 18 15 12 9 6\"></polyline>\n            </svg>\n          </button>\n          <span style=\"\n            font-size: 18px;\n            font-weight: 700;\n            color: #272727;\n            flex: 1;\n            text-align: center;\n          \">${subItem.title}</span>\n          <button class=\"mobile-nav-toggle\" style=\"\n            background: none;\n            border: none;\n            color: #272727;\n            cursor: pointer;\n            padding: 8px;\n            margin: -8px;\n          \" aria-label=\"סגור תפריט\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n              <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n            </svg>\n          </button>\n        </div>\n\n        <!-- Sub-submenu Content -->\n        <ul style=\"\n          list-style: none;\n          margin: 0;\n          padding: 20px 0;\n          flex: 1;\n        \">\n          ${subItem.children.map(link => `\n            <li style=\"border-bottom: 1px solid #f2f2f8;\">\n              <a href=\"${link.url}\" style=\"\n                display: block;\n                padding: 16px 20px;\n                color: #272727;\n                font-size: 16px;\n                text-decoration: none;\n                transition: background-color 0.2s;\n              \">${link.title}</a>\n            </li>\n          `).join('')}\n        </ul>\n      </div>\n    `;\n  }\n\n  function createSubmenu(item, index) {\n    // Separate banners from regular items\n    const regularItems = item.children.filter(child => !child.isBanner);\n    const bannerItems = item.children.filter(child => child.isBanner);\n\n    return `\n      <div id=\"submenu-${index}\" class=\"navigation__submenu\" style=\"\n        position: fixed;\n        top: 0;\n        right: 0;\n        width: 100%;\n        height: 100%;\n        background: #ffffff;\n        transform: translateX(100%);\n        transition: transform 0.3s ease-in-out;\n        z-index: 10;\n        display: flex;\n        flex-direction: column;\n        overflow-y: auto;\n      \">\n        <!-- Submenu Header -->\n        <div class=\"navigation__submenu-header\" style=\"\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          padding: 16px 20px;\n          border-bottom: 1px solid #f2f2f8;\n          background: #ffffff;\n          position: sticky;\n          top: 0;\n          z-index: 10;\n        \">\n          <button class=\"navigation__back-btn\" data-back-from=\"submenu-${index}\" style=\"\n            background: none;\n            border: none;\n            color: #272727;\n            cursor: pointer;\n            padding: 8px;\n            margin: -8px;\n            display: flex;\n            align-items: center;\n          \" aria-label=\"חזרה\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <polyline points=\"9 18 15 12 9 6\"></polyline>\n            </svg>\n          </button>\n          <span style=\"\n            font-size: 18px;\n            font-weight: 700;\n            color: #272727;\n            flex: 1;\n            text-align: center;\n          \">${item.title}</span>\n          <button class=\"mobile-nav-toggle\" style=\"\n            background: none;\n            border: none;\n            color: #272727;\n            cursor: pointer;\n            padding: 8px;\n            margin: -8px;\n          \" aria-label=\"סגור תפריט\">\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n              <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n              <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n            </svg>\n          </button>\n        </div>\n\n        <!-- Submenu Content -->\n        <ul style=\"\n          list-style: none;\n          margin: 0;\n          padding: 20px 0;\n          flex: 1;\n        \">\n          ${regularItems.map((child, childIndex) => createSubSubmenuItem(child, index, childIndex)).join('')}\n          ${bannerItems.length > 0 ? createBannersSection(bannerItems) : ''}\n        </ul>\n      </div>\n    `;\n  }\n\n  function setupDrawerEventListeners(drawer) {\n    try {\n      // Close button\n      const closeButtons = drawer.querySelectorAll('.mobile-nav-toggle');\n      closeButtons.forEach(btn => {\n        btn.addEventListener('click', (e) => {\n          e.preventDefault();\n          closeDrawer(drawer);\n        });\n      });\n\n      // Submenu trigger buttons (for items with children)\n      const submenuTriggers = drawer.querySelectorAll('.navigation__trigger');\n      submenuTriggers.forEach(trigger => {\n        trigger.addEventListener('click', (e) => {\n          e.preventDefault();\n          const submenuId = trigger.getAttribute('data-submenu-id');\n          const submenu = drawer.querySelector(`#${submenuId}`);\n          if (submenu) {\n            openSubmenu(submenu);\n          }\n        });\n      });\n\n      // Back buttons in submenus\n      const backButtons = drawer.querySelectorAll('.navigation__back-btn');\n      backButtons.forEach(btn => {\n        btn.addEventListener('click', (e) => {\n          e.preventDefault();\n          const submenuId = btn.getAttribute('data-back-from');\n          const submenu = drawer.querySelector(`#${submenuId}`);\n          if (submenu) {\n            closeSubmenu(submenu);\n          }\n        });\n      });\n\n      // Hover effects for main menu links\n      const mainLinks = drawer.querySelectorAll('.navigation__tier-1 .navigation__link');\n      mainLinks.forEach(link => {\n        link.addEventListener('mouseenter', () => {\n          link.style.backgroundColor = '#f8f9fc';\n        });\n        link.addEventListener('mouseleave', () => {\n          link.style.backgroundColor = 'transparent';\n        });\n      });\n\n      // Hover effects for submenu links and buttons\n      const submenuLinks = drawer.querySelectorAll('.navigation__submenu a, .navigation__submenu button.navigation__trigger');\n      submenuLinks.forEach(link => {\n        link.addEventListener('mouseenter', () => {\n          link.style.backgroundColor = '#f8f9fc';\n        });\n        link.addEventListener('mouseleave', () => {\n          link.style.backgroundColor = 'transparent';\n        });\n      });\n\n      // Social link hover effects\n      const socialLinks = drawer.querySelectorAll('.social-links__list a');\n      socialLinks.forEach(link => {\n        link.addEventListener('mouseenter', () => {\n          link.style.opacity = '0.7';\n        });\n        link.addEventListener('mouseleave', () => {\n          link.style.opacity = '1';\n        });\n      });\n\n    } catch (error) {\n      console.error('Error setting up drawer event listeners:', error);\n    }\n  }\n\n  function openSubmenu(submenu) {\n    if (submenu) {\n      submenu.style.transform = 'translateX(0)';\n    }\n  }\n\n  function closeSubmenu(submenu) {\n    if (submenu) {\n      submenu.style.transform = 'translateX(100%)';\n    }\n  }\n\n  function closeDrawer(drawer) {\n    drawer.style.transform = 'translateX(100%)';\n\n    // Close all open submenus and sub-submenus\n    const openSubmenus = drawer.querySelectorAll('.navigation__submenu, .navigation__sub-submenu');\n    openSubmenus.forEach(submenu => {\n      submenu.style.transform = 'translateX(100%)';\n    });\n\n    // Also close the menu button state\n    const menuButton = document.querySelector('button[aria-controls=\"header-sidebar-menu\"]');\n    if (menuButton) {\n      menuButton.setAttribute('aria-expanded', 'false');\n    }\n  }\n\n  function setupMenuButton() {\n    try {\n      const menuButton = document.querySelector('button[aria-controls=\"header-sidebar-menu\"]');\n      if (!menuButton) {\n        return;\n      }\n\n      // Remove old event listeners by cloning\n      const newButton = menuButton.cloneNode(true);\n      menuButton.parentNode.replaceChild(newButton, menuButton);\n\n      newButton.addEventListener('click', (e) => {\n        e.preventDefault();\n        const drawer = document.querySelector('[data-variant-drawer=\"true\"]');\n        if (drawer) {\n          const isOpen = drawer.style.transform === 'translateX(0px)';\n          if (isOpen) {\n            closeDrawer(drawer);\n            newButton.setAttribute('aria-expanded', 'false');\n          } else {\n            drawer.style.transform = 'translateX(0)';\n            newButton.setAttribute('aria-expanded', 'true');\n          }\n        }\n      });\n\n    } catch (error) {\n      console.error('Error setting up menu button:', error);\n    }\n  }\n\n  // Initialize\n  function init() {\n    try {\n      // Wait for DOM to be ready\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', () => {\n          createNavigationDrawer();\n          setupMenuButton();\n        });\n      } else {\n        createNavigationDrawer();\n        setupMenuButton();\n      }\n\n      // Handle dynamic content changes\n      const observer = new MutationObserver((mutations) => {\n        const drawer = document.querySelector('[data-variant-drawer=\"true\"]');\n        const oldDrawer = document.querySelector('#header-sidebar-menu:not([data-variant-drawer])');\n\n        if (oldDrawer && !drawer) {\n          createNavigationDrawer();\n          setupMenuButton();\n        }\n      });\n\n      observer.observe(document.body, {\n        childList: true,\n        subtree: true\n      });\n\n    } catch (error) {\n      console.error('Error initializing navigation drawer:', error);\n    }\n  }\n\n  init();\n})();\n"}]},"exp-EXPEA2F2DAC":{"defaultValue":""},"exp-EXPC9612D5E":{"defaultValue":"","rules":[{"id":"winner-deployed-1765801353973","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  /**\n   * Hide the top site bar on mobile devices\n   * Targets the bar containing the Israeli design message and store links\n   */\n  function hideTopSiteBar() {\n    try {\n      // Find the top site bar element\n      const topSiteBar = document.querySelector('.top-site-bar-flex');\n\n      if (topSiteBar) {\n        // Hide the element\n        topSiteBar.style.display = 'none';\n      }\n    } catch (error) {\n      // Silently handle any errors to prevent breaking the page\n    }\n  }\n\n  // Execute immediately if DOM is ready\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', hideTopSiteBar);\n  } else {\n    hideTopSiteBar();\n  }\n\n  // Also observe for dynamic content changes\n  const observer = new MutationObserver(function(mutations) {\n    const topSiteBar = document.querySelector('.top-site-bar-flex');\n    if (topSiteBar && topSiteBar.style.display !== 'none') {\n      hideTopSiteBar();\n    }\n  });\n\n  // Start observing when document is ready\n  if (document.body) {\n    observer.observe(document.body, {\n      childList: true,\n      subtree: true\n    });\n  }\n})();\n"}]},"exp-EXP5C4ECFCC":{"defaultValue":""},"exp-EXPE87F84E1":{"defaultValue":""},"exp-EXP8D68061F":{"defaultValue":"","rules":[{"id":"winner-deployed-1765801209553","condition":{"deviceType":"mobile"},"force":"(function() {\n  'use strict';\n\n  function moveRecentlyViewedToTop() {\n    try {\n      const recentlyViewedSection = document.querySelector('recently-viewed-products.section');\n      if (!recentlyViewedSection) return;\n\n      const slideshowSection = document.querySelector('.shopify-section--slideshow');\n      if (!slideshowSection) return;\n\n      const mainContent = document.querySelector('main#main');\n      if (!mainContent) return;\n\n      // Hide the original parent section to prevent duplicate display\n      const parentSection = recentlyViewedSection.closest('.shopify-section--recently-viewed-products');\n      if (parentSection) {\n        parentSection.style.display = 'none';\n      }\n\n      // Clone the element instead of moving it to avoid removing it from original location\n      const clonedSection = recentlyViewedSection.cloneNode(true);\n\n      // Add a unique identifier to the cloned section\n      clonedSection.setAttribute('data-variant-moved', 'true');\n\n      // Insert the cloned section after the slideshow\n      if (slideshowSection.nextSibling) {\n        mainContent.insertBefore(clonedSection, slideshowSection.nextSibling);\n      } else {\n        mainContent.appendChild(clonedSection);\n      }\n\n      applySliderStyles();\n    } catch (error) {\n      // Error handling without console.log\n    }\n  }\n\n  function applySliderStyles() {\n    const styleId = 'variant-rv-slider-styles';\n    if (document.getElementById(styleId)) return;\n\n    const style = document.createElement('style');\n    style.id = styleId;\n    style.textContent = `\n      /* Hide the original recently viewed section */\n      .shopify-section--recently-viewed-products {\n        display: none !important;\n      }\n\n      /* Show only our moved version */\n      recently-viewed-products[data-variant-moved=\"true\"] {\n        display: block !important;\n      }\n\n      /* Reset any conflicting styles on the section */\n      recently-viewed-products.section {\n        display: block !important;\n        overflow: visible !important;\n      }\n\n      /* Target the product-list to make it a horizontal scroller */\n      recently-viewed-products product-list,\n      recently-viewed-products .product-list {\n        display: flex !important;\n        flex-wrap: nowrap !important;\n        overflow-x: auto !important;\n        overflow-y: hidden !important;\n        scroll-snap-type: x mandatory !important;\n        -webkit-overflow-scrolling: touch !important;\n        scrollbar-width: none !important;\n        gap: var(--grid-gutter, 20px) !important;\n        padding-bottom: 8px !important;\n      }\n\n      recently-viewed-products product-list::-webkit-scrollbar,\n      recently-viewed-products .product-list::-webkit-scrollbar {\n        display: none !important;\n      }\n\n      /* Each product card in the slider */\n      recently-viewed-products product-list > product-card,\n      recently-viewed-products .product-list > .product-card {\n        flex: 0 0 auto !important;\n        width: 160px !important;\n        min-width: 160px !important;\n        max-width: 160px !important;\n        scroll-snap-align: start !important;\n      }\n\n      /* Ensure product card displays correctly */\n      recently-viewed-products .product-card {\n        display: flex !important;\n        flex-direction: column !important;\n        height: auto !important;\n      }\n\n      /* Product card figure (image container) */\n      recently-viewed-products .product-card__figure {\n        position: relative !important;\n        width: 100% !important;\n        overflow: hidden !important;\n      }\n\n      /* Product images - square aspect ratio */\n      recently-viewed-products .product-card__image {\n        width: 100% !important;\n        height: auto !important;\n        aspect-ratio: 1 / 1 !important;\n        object-fit: cover !important;\n        display: block !important;\n      }\n\n      /* Hide secondary image by default */\n      recently-viewed-products .product-card__image--secondary {\n        display: none !important;\n      }\n\n      /* Product info section */\n      recently-viewed-products .product-card__info {\n        display: flex !important;\n        flex-direction: column !important;\n        gap: 4px !important;\n        padding: 8px 0 !important;\n        text-align: start !important;\n      }\n\n      /* Vendor link */\n      recently-viewed-products .product-card__info .text-xs,\n      recently-viewed-products .product-card__info .link-faded {\n        font-size: 11px !important;\n        color: rgba(39, 39, 39, 0.65) !important;\n      }\n\n      /* Product title */\n      recently-viewed-products .product-card__title {\n        font-size: 12px !important;\n        line-height: 1.3 !important;\n      }\n\n      recently-viewed-products .product-card__title a {\n        color: rgb(39, 39, 39) !important;\n        text-decoration: none !important;\n      }\n\n      /* Price */\n      recently-viewed-products .price-list {\n        font-size: 12px !important;\n      }\n\n      /* Mobile adjustments */\n      @media (max-width: 699px) {\n        recently-viewed-products product-list > product-card,\n        recently-viewed-products .product-list > .product-card {\n          width: 140px !important;\n          min-width: 140px !important;\n          max-width: 140px !important;\n        }\n      }\n\n      /* Tablet */\n      @media (min-width: 700px) and (max-width: 999px) {\n        recently-viewed-products product-list > product-card,\n        recently-viewed-products .product-list > .product-card {\n          width: 180px !important;\n          min-width: 180px !important;\n          max-width: 180px !important;\n        }\n      }\n\n      /* Desktop */\n      @media (min-width: 1000px) {\n        recently-viewed-products product-list > product-card,\n        recently-viewed-products .product-list > .product-card {\n          width: 220px !important;\n          min-width: 220px !important;\n          max-width: 220px !important;\n        }\n      }\n    `;\n    document.head.appendChild(style);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', moveRecentlyViewedToTop);\n  } else {\n    moveRecentlyViewedToTop();\n  }\n\n  const rvObserver = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.addedNodes.length) {\n        mutation.addedNodes.forEach(function(node) {\n          if (node.tagName === 'RECENTLY-VIEWED-PRODUCTS') {\n            moveRecentlyViewedToTop();\n            rvObserver.disconnect();\n          }\n        });\n      }\n    });\n  });\n\n  rvObserver.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n\n})();\n"}]},"exp-EXP1F651B65":{"defaultValue":""},"exp-EXPC40C7B2C":{"defaultValue":"","rules":[{"id":"winner-deployed-1768821455984","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  /* =============================================\n   * VARIANT IMAGE SWATCHES EXPERIENCE\n   * Transforms text-based variant options to image swatches with color titles\n   * Experiment ID: EXP617DC457 | Variant ID: 1\n   * ============================================= */\n\n  const CONFIG = {\n    swatchSize: 60,\n    imageSize: 200\n  };\n\n  /**\n   * Gets the product handle from the current URL\n   * URL format: /products/[handle] or /products/[handle]?variant=xxx\n   */\n  function getProductHandle() {\n    const path = window.location.pathname;\n    const match = path.match(/\\/products\\/([^\\/\\?]+)/);\n    return match ? match[1] : null;\n  }\n\n  // Global state - prevent any duplicate execution\n  let cachedProduct = null;\n  let isInitialized = false;\n  let isBuilding = false; // Flag to prevent concurrent builds\n\n  const STYLES = `\n    /* Our custom swatches container - FIXED position outside all dynamic content */\n    #variant-swatches-exp617dc457 {\n      width: 100%;\n      max-width: 350px;\n      overflow: hidden;\n      margin-bottom: 8px;\n    }\n\n    #variant-swatches-exp617dc457 .swatches-container {\n      display: flex;\n      flex-direction: row;\n      flex-wrap: nowrap;\n      gap: 10px;\n      margin-top: 8px;\n      overflow-x: auto;\n      overflow-y: hidden;\n      padding-bottom: 8px;\n      -webkit-overflow-scrolling: touch;\n      max-width: 100%;\n    }\n\n    #variant-swatches-exp617dc457 .swatches-container::-webkit-scrollbar {\n      height: 4px;\n    }\n\n    #variant-swatches-exp617dc457 .swatches-container::-webkit-scrollbar-track {\n      background: #f2f2f2;\n      border-radius: 2px;\n    }\n\n    #variant-swatches-exp617dc457 .swatches-container::-webkit-scrollbar-thumb {\n      background: #e9a9a9;\n      border-radius: 2px;\n    }\n\n    #variant-swatches-exp617dc457 .swatch-item {\n      display: flex;\n      flex-direction: column;\n      align-items: stretch;\n      cursor: pointer;\n      border: 2px solid transparent;\n      border-radius: 4px;\n      padding: 0;\n      transition: all 0.2s ease;\n      background: #ffffff;\n      width: 80px;\n      min-width: 80px;\n      height: 120px;\n      min-height: 120px;\n      flex-shrink: 0;\n      position: relative;\n      box-sizing: border-box;\n      overflow: hidden;\n      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n    }\n\n    #variant-swatches-exp617dc457 .swatch-item:hover {\n      border-color: rgba(39, 39, 39, 0.3);\n      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n      transform: translateY(-2px);\n    }\n\n    #variant-swatches-exp617dc457 .swatch-item.selected {\n      border-color: #e9a9a9;\n      box-shadow: 0 4px 16px rgba(233, 169, 169, 0.3);\n    }\n\n    #variant-swatches-exp617dc457 .swatch-item.disabled {\n      opacity: 0.5;\n      cursor: not-allowed;\n      pointer-events: none;\n    }\n\n    #variant-swatches-exp617dc457 .swatch-item.disabled::before {\n      content: '';\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background-color: rgba(255, 255, 255, 0.4);\n      border-radius: 4px;\n      z-index: 1;\n    }\n\n    #variant-swatches-exp617dc457 .swatch-img {\n      width: 100%;\n      height: 80px;\n      object-fit: cover;\n      border-radius: 0;\n      background-color: #f2f2f2;\n      flex-shrink: 0;\n    }\n\n    #variant-swatches-exp617dc457 .swatch-title {\n      font-size: 10px;\n      color: rgb(39, 39, 39);\n      text-align: center;\n      margin: 0;\n      line-height: 1.3;\n      width: 100%;\n      height: 40px;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      display: -webkit-box;\n      -webkit-line-clamp: 2;\n      -webkit-box-orient: vertical;\n      direction: rtl;\n      background-color: #ffffff;\n      padding: 8px 6px;\n      box-sizing: border-box;\n      flex-shrink: 0;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-weight: 500;\n    }\n\n    /* Hide the ENTIRE original variant picker section */\n    fieldset.variant-picker__option {\n      position: absolute !important;\n      width: 1px !important;\n      height: 1px !important;\n      padding: 0 !important;\n      margin: -1px !important;\n      overflow: hidden !important;\n      clip: rect(0, 0, 0, 0) !important;\n      white-space: nowrap !important;\n      border: 0 !important;\n      opacity: 0 !important;\n      pointer-events: none !important;\n    }\n  `;\n\n  /**\n   * Fetches product data dynamically based on current URL\n   */\n  async function getProductData() {\n    if (cachedProduct) return cachedProduct;\n\n    const handle = getProductHandle();\n    if (!handle) return null;\n\n    try {\n      const response = await fetch('/products/' + handle + '.json');\n      const data = await response.json();\n      cachedProduct = data.product;\n      return cachedProduct;\n    } catch (e) {\n      return null;\n    }\n  }\n\n  /**\n   * Gets current variant ID from URL\n   */\n  function getCurrentVariantId() {\n    const params = new URLSearchParams(window.location.search);\n    return params.get('variant');\n  }\n\n  /**\n   * Navigate to variant using URL change (safest method)\n   */\n  function selectVariant(variantId) {\n    const url = new URL(window.location.href);\n    url.searchParams.set('variant', variantId);\n    // Navigate to the new URL - this is the safest way to change variant\n    window.location.href = url.toString();\n  }\n\n  /**\n   * Updates swatch selection visual state\n   */\n  function updateSelection(selectedId) {\n    const swatches = document.querySelectorAll('#variant-swatches-exp617dc457 .swatch-item');\n    swatches.forEach(function(swatch) {\n      if (swatch.dataset.variantId === String(selectedId)) {\n        swatch.classList.add('selected');\n      } else {\n        swatch.classList.remove('selected');\n      }\n    });\n  }\n\n  /**\n   * Injects styles\n   */\n  function injectStyles() {\n    if (document.getElementById('variant-swatches-styles-exp617dc457')) return;\n    const style = document.createElement('style');\n    style.id = 'variant-swatches-styles-exp617dc457';\n    style.textContent = STYLES;\n    document.head.appendChild(style);\n  }\n\n  /**\n   * Build the swatches UI\n   */\n  async function buildSwatches() {\n    // STRICT: Prevent ANY concurrent or duplicate execution\n    if (isBuilding) {\n      return;\n    }\n\n    // Check if element already exists anywhere on page\n    if (document.getElementById('variant-swatches-exp617dc457')) {\n      return;\n    }\n\n    // Check if we're already initialized\n    if (isInitialized) {\n      return;\n    }\n\n    // Set building flag immediately\n    isBuilding = true;\n\n    try {\n      const product = await getProductData();\n      if (!product || !product.variants) {\n        isBuilding = false;\n        return;\n      }\n\n    // Create image map\n    const imageMap = {};\n    if (product.images) {\n      product.images.forEach(function(img) {\n        imageMap[img.id] = img.src;\n      });\n    }\n\n    // Check Shopify's original labels for disabled state\n    const disabledVariants = new Set();\n    const originalLabels = document.querySelectorAll('fieldset.variant-picker__option label.block-swatch.is-disabled');\n    originalLabels.forEach(function(label) {\n      const variantName = label.textContent.trim();\n      disabledVariants.add(variantName);\n    });\n\n    // Build variant data with images\n    const variantsWithImages = [];\n    product.variants.forEach(function(v) {\n      if (v.image_id && imageMap[v.image_id]) {\n        const isDisabled = disabledVariants.has(v.title) || v.available === false;\n        variantsWithImages.push({\n          id: v.id,\n          title: v.title,\n          imageUrl: imageMap[v.image_id],\n          available: !isDisabled\n        });\n      }\n    });\n\n    if (variantsWithImages.length === 0) return;\n\n    // Sort: available first\n    variantsWithImages.sort(function(a, b) {\n      if (a.available && !b.available) return -1;\n      if (!a.available && b.available) return 1;\n      return 0;\n    });\n\n    // Inject styles\n    injectStyles();\n\n    // Get current selection\n    const currentId = getCurrentVariantId();\n\n    // Create container\n    const root = document.createElement('div');\n    root.id = 'variant-swatches-exp617dc457';\n\n    const container = document.createElement('div');\n    container.className = 'swatches-container';\n\n    variantsWithImages.forEach(function(variant) {\n      const swatch = document.createElement('div');\n      swatch.className = 'swatch-item';\n      swatch.dataset.variantId = variant.id;\n\n      if (String(variant.id) === String(currentId)) {\n        swatch.classList.add('selected');\n      }\n      if (!variant.available) {\n        swatch.classList.add('disabled');\n      }\n\n      const img = document.createElement('img');\n      img.className = 'swatch-img';\n      img.src = variant.imageUrl + (variant.imageUrl.indexOf('?') > -1 ? '&' : '?') + 'width=' + CONFIG.imageSize;\n      img.alt = variant.title;\n      img.loading = 'lazy';\n\n      const title = document.createElement('span');\n      title.className = 'swatch-title';\n      title.textContent = variant.title;\n\n      swatch.appendChild(img);\n      swatch.appendChild(title);\n\n      // Click handler - only if available\n      if (variant.available) {\n        swatch.addEventListener('click', function(e) {\n          e.preventDefault();\n          e.stopPropagation();\n          selectVariant(variant.id);\n        });\n      }\n\n      container.appendChild(swatch);\n    });\n\n    root.appendChild(container);\n\n    // Find a STABLE insertion point - look for product-info or similar stable container\n    const insertionPoints = [\n      '.product-info__variant-picker',\n      '.product-info variant-picker',\n      'variant-picker',\n      '.product-form__variants',\n      '.product__info-wrapper'\n    ];\n\n    let inserted = false;\n    for (let i = 0; i < insertionPoints.length; i++) {\n      const target = document.querySelector(insertionPoints[i]);\n      if (target) {\n        // Insert at the BEGINNING of this container\n        target.insertBefore(root, target.firstChild);\n        inserted = true;\n        isInitialized = true;\n        break;\n      }\n    }\n\n    // Fallback: insert before any fieldset we find\n    if (!inserted) {\n      const fieldset = document.querySelector('fieldset.variant-picker__option');\n      if (fieldset && fieldset.parentNode) {\n        fieldset.parentNode.insertBefore(root, fieldset);\n        isInitialized = true;\n      }\n    }\n\n    // Successfully completed\n    isBuilding = false;\n\n    } catch (error) {\n      // Reset flag on error\n      isBuilding = false;\n      console.error('Variant swatches error:', error);\n    }\n  }\n\n  /**\n   * Initialize\n   */\n  function init() {\n    // Build swatches when DOM is ready\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', buildSwatches);\n    } else {\n      buildSwatches();\n    }\n\n    // Single delayed retry only if initial attempt fails\n    setTimeout(function() {\n      if (!document.getElementById('variant-swatches-exp617dc457')) {\n        buildSwatches();\n      }\n    }, 1000);\n  }\n\n  init();\n\n})();\n"}]},"exp-EXP307E355A":{"defaultValue":""},"exp-EXPE791D210":{"defaultValue":""},"exp-EXPDBB1837C":{"defaultValue":""},"exp-EXPC6941952":{"defaultValue":"","rules":[{"id":"winner-deployed-1767628515452","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  // Configuration - Using real testimonials from the site\n  const CONFIG = {\n    sectionTitle: 'מה אתם אומרים',\n    reviews: [\n      {\n        name: 'In Chu',\n        rating: 5,\n        text: 'מקום מלא מתנות מהממות ומקוריות בטווח מחירים הוגן מאוד בין דברים לכל כיס לדברים היותר יקרים. מאיה המוכרת היא לבבית ועזרה לי מאוד ובסובלנות רבה. בהחלט אחזור - מקום נפלא!'\n      },\n      {\n        name: 'Lilach Vidal',\n        rating: 5,\n        text: 'חנות מקסימה ומשמחת. מגוון פריטים. חובה להכנס כשמגיעים לשוק הפשפשים.'\n      },\n      {\n        name: 'Daniel Kleinberg',\n        rating: 5,\n        text: 'החנות הכי שווה בעיר!!'\n      }\n    ]\n  };\n\n  // Create star rating HTML using Shopify's existing star icon\n  function createStarRating(rating) {\n    const stars = [];\n    const starSVG = `<svg role=\"presentation\" fill=\"none\" focusable=\"false\" width=\"15\" height=\"15\" class=\"rating__star rating__star--full icon icon-rating-star\" viewBox=\"0 0 15 15\">\n      <path d=\"M7.5 0L9.58587 5.2731L15 5.72949L10.875 9.44483L12.1353 15L7.5 12.0231L2.86475 15L4.125 9.44483L0 5.72949L5.41414 5.2731L7.5 0Z\" fill=\"currentColor\"></path>\n    </svg>`;\n\n    for (let i = 0; i < rating; i++) {\n      stars.push(starSVG);\n    }\n    return stars.join('');\n  }\n\n  // Create review card HTML matching Shopify testimonial structure\n  function createReviewCard(review) {\n    return `\n      <div class=\"testimonial rounded-sm bg-secondary\">\n        <div class=\"h-stack align-start gap-4 sm:gap-6\">\n          <div class=\"v-stack gap-2 sm:gap-2.5\">\n            <div class=\"rating\">\n              <div class=\"rating__stars\" role=\"img\" aria-label=\"${review.rating} מתוך 5 כוכבים\">\n                ${createStarRating(review.rating)}\n              </div>\n            </div>\n            <p class=\"text-subdued\">${review.name}</p>\n          </div>\n        </div>\n        <div class=\"v-stack gap-2 sm:gap-2.5\">\n          <p>${review.text}</p>\n        </div>\n      </div>\n    `;\n  }\n\n  // Create reviews section HTML matching Shopify structure\n  function createReviewsSection() {\n    const reviewsHTML = CONFIG.reviews.map(review => createReviewCard(review)).join('');\n\n    return `\n      <section class=\"shopify-section shopify-section--product-testimonials\" id=\"product-reviews-section\">\n        <style>\n          #product-reviews-section {\n            --section-background-hash: 0;\n            --testimonial-list-items-per-row: 1;\n            --testimonial-list-carousel-item-width: 74vw;\n            --testimonial-list-grid: auto / repeat(var(--testimonial-list-items-per-row), minmax(0, 1fr));\n          }\n\n          #product-reviews-section + * {\n            --previous-section-background-hash: 0;\n          }\n\n          @media screen and (min-width: 700px) {\n            #product-reviews-section {\n              --testimonial-list-items-per-row: 2;\n              --testimonial-list-carousel-item-width: 52vw;\n            }\n          }\n\n          @media screen and (min-width: 1000px) {\n            #product-reviews-section {\n              --testimonial-list-carousel-item-width: 36vw;\n            }\n          }\n\n          @media screen and (min-width: 1150px) {\n            #product-reviews-section {\n              --testimonial-list-items-per-row: 3;\n              --testimonial-list-carousel-item-width: calc(100% / 3 - (var(--grid-gutter) / 3 * 2));\n            }\n          }\n        </style>\n\n        <div class=\"section section-blends section-full\">\n          <div class=\"section-stack\">\n            <section-header class=\"section-header\">\n              <div class=\"prose\">\n                <h2 class=\"h2\" reveal-on-scroll=\"true\">\n                  <split-lines>${CONFIG.sectionTitle}</split-lines>\n                </h2>\n              </div>\n            </section-header>\n\n            <div class=\"scrollable-with-controls\">\n              <scroll-carousel id=\"product-testimonials-carousel\" class=\"testimonial-list scroll-area bleed\">\n                ${reviewsHTML}\n              </scroll-carousel>\n            </div>\n          </div>\n        </div>\n      </section>\n    `;\n  }\n\n  // Initialize reviews section\n  function initReviewsSection() {\n    try {\n      // Find the product recommendations section\n      const productRecommendationsSection = document.querySelector('.shopify-section--product-recommendations');\n\n      if (!productRecommendationsSection) {\n        return;\n      }\n\n      // Check if reviews section already exists\n      if (document.getElementById('product-reviews-section')) {\n        return;\n      }\n\n      // Create and insert reviews section\n      const reviewsHTML = createReviewsSection();\n      productRecommendationsSection.insertAdjacentHTML('afterend', reviewsHTML);\n\n    } catch (error) {\n      // Silent error handling\n    }\n  }\n\n  // Run initialization\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initReviewsSection);\n  } else {\n    initReviewsSection();\n  }\n\n})();\n"}]},"exp-EXP0FB3752C":{"defaultValue":"","rules":[{"id":"winner-deployed-1767628454934","condition":{"$and":[{"deviceType":"desktop"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  function moveDescriptionBelowBuyButtons() {\n    try {\n      const descriptionBlock = document.querySelector('div.product-info__block-item > div.product-info__description');\n      const buyButtonsContainer = document.querySelector('div.product-info__buy-buttons');\n\n      if (!descriptionBlock || !buyButtonsContainer) {\n        return;\n      }\n\n      const buyButtonsParent = buyButtonsContainer.parentElement;\n\n      if (!buyButtonsParent) {\n        return;\n      }\n\n      const nextSibling = buyButtonsContainer.nextSibling;\n\n      if (nextSibling) {\n        buyButtonsParent.insertBefore(descriptionBlock, nextSibling);\n      } else {\n        buyButtonsParent.appendChild(descriptionBlock);\n      }\n\n      descriptionBlock.style.marginTop = '24px';\n\n    } catch (error) {\n      // Silent error handling\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', moveDescriptionBelowBuyButtons);\n  } else {\n    moveDescriptionBelowBuyButtons();\n  }\n\n})();\n"}]},"exp-EXP7A468A12":{"defaultValue":""},"exp-EXPBAE148C5":{"defaultValue":"","rules":[{"id":"winner-deployed-1769519071827","condition":{"$and":[{"segment_id":"043da002-77b2-4f59-9245-f72c6e921ecf"},{"deviceType":"mobile"}]},"force":"(function() {\n  'use strict';\n\n  var EXPERIMENT_ID = 'EXPBAE148C5';\n  var VARIATION_ID = '1';\n  var SESSION_KEY = 'variant_popup_shown_' + EXPERIMENT_ID;\n  var RECENTLY_VIEWED_KEY = 'variant:recently_viewed_products';\n\n  // ========================================\n  // DISCOUNT FILTERING FOR RECENTLY VIEWED\n  // ========================================\n\n  /**\n   * Read recently viewed products from localStorage\n   */\n  function getRecentlyViewedProducts() {\n    try {\n      var stored = localStorage.getItem(RECENTLY_VIEWED_KEY);\n      return stored ? JSON.parse(stored) : [];\n    } catch (e) {\n      return [];\n    }\n  }\n\n  /**\n   * Check if a product is already on discount based on stored data.\n   * Returns true if the product has a compare-at price higher than its current price.\n   */\n  function isProductOnDiscount(product) {\n    if (!product) return false;\n\n    if (product.hasDiscount === true) return true;\n\n    var compareAt = parseFloat(product.compareAtPrice || product.compare_at_price || 0);\n    var price = parseFloat(product.price || 0);\n    if (typeof product.price === 'string') {\n      price = parseFloat(product.price.replace(/[^\\d.]/g, '')) || 0;\n    }\n    if (typeof product.compareAtPrice === 'string' && product.compareAtPrice !== '') {\n      compareAt = parseFloat(product.compareAtPrice.replace(/[^\\d.]/g, '')) || 0;\n    }\n\n    if (compareAt > 0 && price > 0 && compareAt > price) return true;\n\n    return false;\n  }\n\n  /**\n   * Filter out discounted products from localStorage so any carousel\n   * reading from it won't show sale items (no double discount).\n   * Also updates the hasDiscount flag for future reads.\n   */\n  function filterDiscountedFromStorage() {\n    try {\n      var products = getRecentlyViewedProducts();\n      if (!products.length) return;\n\n      var changed = false;\n      var filtered = products.filter(function(p) {\n        if (isProductOnDiscount(p)) {\n          changed = true;\n          return false;\n        }\n        return true;\n      });\n\n      if (changed) {\n        localStorage.setItem(RECENTLY_VIEWED_KEY, JSON.stringify(filtered));\n      }\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  /**\n   * Live-check each product via Shopify JSON API to verify current discount status.\n   * Removes any that are currently on sale from localStorage.\n   */\n  function liveFilterDiscountedProducts() {\n    try {\n      var products = getRecentlyViewedProducts();\n      if (!products.length) return;\n\n      var handles = products.map(function(p) {\n        var handle = p.handle || '';\n        if (!handle && p.url) {\n          var parts = (p.url || '').split('/products/');\n          if (parts.length > 1) handle = parts[1].split('?')[0].split('#')[0];\n        }\n        return { product: p, handle: handle };\n      }).filter(function(item) {\n        return item.handle && item.handle.length > 0;\n      });\n\n      if (!handles.length) return;\n\n      var idsToRemove = [];\n\n      var checks = handles.map(function(item) {\n        return fetch('/products/' + item.handle + '.json')\n          .then(function(res) {\n            if (!res.ok) return null;\n            return res.json();\n          })\n          .then(function(data) {\n            if (!data || !data.product || !data.product.variants || !data.product.variants.length) return;\n            var variant = data.product.variants[0];\n            var compareAt = parseFloat(variant.compare_at_price);\n            var currentPrice = parseFloat(variant.price);\n            if (compareAt && currentPrice && compareAt > currentPrice) {\n              var pid = item.product.id || item.product.productId || item.product.product_id;\n              if (pid) idsToRemove.push(String(pid));\n            }\n          })\n          .catch(function() {\n            // On error, keep the product\n          });\n      });\n\n      Promise.all(checks).then(function() {\n        if (!idsToRemove.length) return;\n\n        var current = getRecentlyViewedProducts();\n        var cleaned = current.filter(function(p) {\n          var pid = String(p.id || p.productId || p.product_id || '');\n          return idsToRemove.indexOf(pid) === -1;\n        });\n\n        if (cleaned.length !== current.length) {\n          localStorage.setItem(RECENTLY_VIEWED_KEY, JSON.stringify(cleaned));\n        }\n      });\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  /**\n   * Observe the popup DOM and remove any product cards that are on sale\n   * after the carousel has been rendered (safety net for the other variant's code).\n   */\n  function removeDiscountedCardsFromPopup() {\n    try {\n      var selector = document.querySelector('.variant-product-selector');\n      if (!selector) return;\n\n      var cards = selector.querySelectorAll('.variant-product-card');\n      if (!cards.length) return;\n\n      var products = getRecentlyViewedProducts();\n      var validIds = {};\n      products.forEach(function(p) {\n        var pid = String(p.id || p.productId || p.product_id || '');\n        if (pid) validIds[pid] = true;\n      });\n\n      cards.forEach(function(card) {\n        var productId = card.getAttribute('data-product-id');\n        if (productId && !validIds[productId]) {\n          card.remove();\n        }\n      });\n\n      // If no cards remain, hide the entire section\n      var remainingCards = selector.querySelectorAll('.variant-product-card');\n      if (!remainingCards.length) {\n        selector.style.display = 'none';\n      }\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  // ========================================\n  // POPUP TEXT MODIFICATIONS\n  // ========================================\n\n  function addDiscountText() {\n    try {\n      var checkPopup = setInterval(function() {\n        var popup = document.querySelector('.popbox-wrapper.register-window.vcm-popup.open');\n        var form = document.querySelector('form.provide-cell-enter');\n\n        if (popup && form) {\n          clearInterval(checkPopup);\n\n          var paragraphs = form.querySelectorAll('p');\n          paragraphs.forEach(function(p) {\n            var text = p.textContent || p.innerText;\n            if (text.indexOf('\\u05E2\\u05D3\\u05D9\\u05D9\\u05DF \\u05DC\\u05D0 \\u05D1\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF') !== -1 || text.indexOf('\\u05D7\\u05D1\\u05E8\\u05D9 \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF \\u05E9\\u05DC\\u05E0\\u05D5 \\u05E0\\u05D4\\u05E0\\u05D9\\u05DD') !== -1) {\n              p.innerHTML = '<br>\\u05E2\\u05D3\\u05D9\\u05D9\\u05DF \\u05DC\\u05D0 \\u05D1\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF?&nbsp; \\u05D6\\u05D4 \\u05D1\\u05D3\\u05D9\\u05D5\\u05E7 \\u05D4\\u05D6\\u05DE\\u05DF \\u05DC\\u05D4\\u05E6\\u05D8\\u05E8\\u05E3!<br>\\u05D7\\u05D1\\u05E8\\u05D9 \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF \\u05E9\\u05DC\\u05E0\\u05D5 \\u05E0\\u05D4\\u05E0\\u05D9\\u05DD \\u05DE\\u05DE\\u05D1\\u05E6\\u05E2\\u05D9\\u05DD \\u05D5\\u05D4\\u05D8\\u05D1\\u05D5\\u05EA \\u05D1\\u05DC\\u05E2\\u05D3\\u05D9\\u05D5\\u05EA, <strong style=\"color: #fda39c;\">\\u05D4\\u05E0\\u05D7\\u05D4 \\u05E9\\u05DC 10%</strong>, \\u05D5\\u05D4\\u05E6\\u05E6\\u05D4 \\u05E8\\u05D0\\u05E9\\u05D5\\u05E0\\u05D4 \\u05DC\\u05E2\\u05D9\\u05E6\\u05D5\\u05D1\\u05D9\\u05DD \\u05D7\\u05D3\\u05E9\\u05D9\\u05DD.';\n              p.style.textAlign = 'center';\n            }\n          });\n\n          // After carousel renders, clean up any discounted cards\n          setTimeout(removeDiscountedCardsFromPopup, 800);\n          setTimeout(removeDiscountedCardsFromPopup, 2000);\n        }\n      }, 300);\n\n      setTimeout(function() {\n        clearInterval(checkPopup);\n      }, 30000);\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  // ========================================\n  // AUTO-TRIGGER POPUP\n  // ========================================\n\n  function autoClickMembersClub() {\n    try {\n      if (sessionStorage.getItem(SESSION_KEY)) return;\n\n      setTimeout(function() {\n        var membersClubButton = document.querySelector('#vcPlugin');\n        if (membersClubButton) {\n          sessionStorage.setItem(SESSION_KEY, 'true');\n          membersClubButton.click();\n          setTimeout(addDiscountText, 500);\n        }\n      }, 10000);\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  // ========================================\n  // INITIALIZATION\n  // ========================================\n\n  function init() {\n    // Step 1: Immediately filter out discounted products from localStorage\n    filterDiscountedFromStorage();\n\n    // Step 2: Live-check products via API and remove any currently on sale\n    liveFilterDiscountedProducts();\n\n    // Step 3: Auto-trigger popup (once per session)\n    autoClickMembersClub();\n\n    // Step 4: Watch for popup opening to clean up discounted cards\n    var popupObserver = new MutationObserver(function(mutations) {\n      for (var i = 0; i < mutations.length; i++) {\n        var mutation = mutations[i];\n        if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n          var target = mutation.target;\n          if (target.classList && target.classList.contains('vcm-popup') && target.classList.contains('open')) {\n            setTimeout(removeDiscountedCardsFromPopup, 500);\n            setTimeout(removeDiscountedCardsFromPopup, 1500);\n            setTimeout(removeDiscountedCardsFromPopup, 3000);\n          }\n        }\n      }\n    });\n\n    popupObserver.observe(document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class']\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n\n})();"}]},"exp-EXP71BA8748":{"defaultValue":""},"exp-EXP7044BB8B":{"defaultValue":""},"exp-EXP179DF37F":{"defaultValue":""},"exp-EXPDD427F40":{"defaultValue":""},"exp-EXP705C6A41":{"defaultValue":""},"exp-EXP0D1110CD":{"defaultValue":""},"exp-EXPE3CFDC99":{"defaultValue":"","rules":[{"id":"winner-deployed-1769519119678","condition":{"$and":[{"segment_id":"bea1125b-1345-4635-8545-6c11bbecba49"},{"deviceType":"mobile"}]},"force":"(function() {\n  'use strict';\n\n  // ========================================\n  // CONFIGURATION\n  // ========================================\n  const CONFIG = {\n    dataSource: {\n      type: 'localStorage',\n      // Try multiple possible keys that might be used\n      possibleKeys: [\n        'variant:recently_viewed_products', // Primary key\n        'theme:recently-viewed-products',\n        'recently-viewed-products',\n        'recentlyViewedProducts',\n        'shopify-recently-viewed',\n        'asufa_recently_viewed_products',\n        'recently_viewed'\n      ],\n      key: 'variant:recently_viewed_products', // Set to the correct key\n      maxProducts: 8\n    },\n    analytics: {\n      experimentId: 'EXPE3CFDC99',\n      variationId: '1'\n    },\n    display: {\n      title: '\\u05E6\\u05E4\\u05D9\\u05EA \\u05DC\\u05D0\\u05D7\\u05E8\\u05D5\\u05E0\\u05D4 - \\u05D4\\u05D8\\u05D1\\u05EA \\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF!',\n      cardWidthPercentage: 36, // Show 2.5 products: (100 / 2.5) = 40, minus gap = ~36%\n      gap: 12\n    },\n    pricing: {\n      discountPercent: 0.10,\n      showOriginalPrice: true,\n      currencySymbol: '\\u20AA'\n    },\n    styling: {\n      primaryColor: '#fda39c',\n      textColor: '#272727',\n      secondaryTextColor: '#69727b',\n      backgroundColor: '#fff',\n      borderColor: 'rgba(39, 39, 39, 0.12)',\n      fontFamily: 'Heebo, sans-serif'\n    },\n    autoTrigger: {\n      enabled: true,\n      delay: 5000\n    }\n  };\n\n  // ========================================\n  // DEMO PRODUCTS (FALLBACK) - DISABLED\n  // ========================================\n  const DEMO_PRODUCTS = [];\n\n  // ========================================\n  // LOCALSTORAGE KEY DETECTION\n  // ========================================\n  function detectLocalStorageKey() {\n    // Try each possible key and return the first one that has data\n    for (var i = 0; i < CONFIG.dataSource.possibleKeys.length; i++) {\n      var key = CONFIG.dataSource.possibleKeys[i];\n      try {\n        var data = localStorage.getItem(key);\n        if (data) {\n          var parsed = JSON.parse(data);\n          if (Array.isArray(parsed) && parsed.length > 0) {\n            CONFIG.dataSource.key = key;\n            console.log('[Variant] Found recently viewed products in key:', key, 'with', parsed.length, 'products');\n            return key;\n          }\n        }\n      } catch (e) {\n        // Try next key\n      }\n    }\n    // Default to first key if none found\n    CONFIG.dataSource.key = CONFIG.dataSource.possibleKeys[0];\n    console.log('[Variant] No existing recently viewed found, using default key:', CONFIG.dataSource.key);\n    return CONFIG.dataSource.key;\n  }\n\n  // ========================================\n  // PRODUCT TRACKING\n  // ========================================\n  function trackRecentlyViewedProducts() {\n    try {\n      // Only track on product pages\n      if (!window.location.pathname.includes('/products/')) {\n        return;\n      }\n\n      // Method 1: Try ShopifyAnalytics\n      if (window.ShopifyAnalytics && window.ShopifyAnalytics.meta && window.ShopifyAnalytics.meta.product) {\n        const product = window.ShopifyAnalytics.meta.product;\n        const productData = {\n          id: String(product.id),\n          title: product.title || '',\n          price: product.price ? parseFloat(product.price) / 100 : 0,\n          compareAtPrice: '',\n          hasDiscount: false,\n          url: window.location.pathname,\n          image: product.image || '',\n          timestamp: Date.now()\n        };\n\n        // Fetch full product data including discount info\n        fetch(window.location.pathname + '.json')\n          .then(function(response) { return response.json(); })\n          .then(function(data) {\n            if (data && data.product) {\n              productData.title = data.product.title || productData.title;\n\n              var variant = data.product.variants && data.product.variants[0];\n              if (variant) {\n                productData.price = parseFloat(variant.price) || productData.price;\n                var compareAt = parseFloat(variant.compare_at_price);\n                if (compareAt && compareAt > productData.price) {\n                  productData.compareAtPrice = String(compareAt);\n                  productData.hasDiscount = true;\n                }\n              } else if (data.product.price) {\n                productData.price = parseFloat(data.product.price) / 100 || productData.price;\n              }\n\n              if (data.product.images && data.product.images.length > 0) {\n                productData.image = data.product.images[0].src || productData.image;\n              } else if (data.product.image && data.product.image.src) {\n                productData.image = data.product.image.src;\n              }\n            }\n\n            saveProduct(productData);\n          })\n          .catch(function() {\n            saveProduct(productData);\n          });\n\n        return;\n      }\n\n      // Method 2: Try meta tags\n      var metaProduct = document.querySelector('meta[property=\"og:type\"][content=\"product\"]');\n      if (metaProduct) {\n        var productData = {\n          id: 'product-' + Date.now(),\n          title: '',\n          price: 0,\n          compareAtPrice: '',\n          hasDiscount: false,\n          url: window.location.pathname,\n          image: '',\n          timestamp: Date.now()\n        };\n\n        var titleMeta = document.querySelector('meta[property=\"og:title\"]');\n        if (titleMeta) productData.title = titleMeta.getAttribute('content') || '';\n\n        var imageMeta = document.querySelector('meta[property=\"og:image\"]');\n        if (imageMeta) productData.image = imageMeta.getAttribute('content') || '';\n\n        var priceMeta = document.querySelector('meta[property=\"product:price:amount\"]');\n        if (priceMeta) productData.price = parseFloat(priceMeta.getAttribute('content')) || 0;\n\n        // Try to get product ID and discount info from JSON-LD\n        var jsonLd = document.querySelector('script[type=\"application/ld+json\"]');\n        if (jsonLd) {\n          try {\n            var ldData = JSON.parse(jsonLd.textContent);\n            if (ldData && ldData.productID) {\n              productData.id = String(ldData.productID);\n            }\n          } catch (e) {\n            // Ignore JSON parse errors\n          }\n        }\n\n        // Fetch product JSON to check for discount\n        var handle = window.location.pathname.split('/products/')[1];\n        if (handle) {\n          handle = handle.split('?')[0];\n          fetch('/products/' + handle + '.json')\n            .then(function(response) { return response.json(); })\n            .then(function(data) {\n              if (data && data.product && data.product.variants && data.product.variants[0]) {\n                var variant = data.product.variants[0];\n                var compareAt = parseFloat(variant.compare_at_price);\n                var currentPrice = parseFloat(variant.price);\n                if (compareAt && currentPrice && compareAt > currentPrice) {\n                  productData.compareAtPrice = String(compareAt);\n                  productData.hasDiscount = true;\n                }\n                if (currentPrice) {\n                  productData.price = currentPrice;\n                }\n              }\n              if (productData.title) {\n                saveProduct(productData);\n              }\n            })\n            .catch(function() {\n              if (productData.title) {\n                saveProduct(productData);\n              }\n            });\n        } else if (productData.title) {\n          saveProduct(productData);\n        }\n      }\n\n    } catch (error) {\n      // Silent fail\n    }\n  }\n\n  function saveProduct(productData) {\n    try {\n      if (!productData || !productData.price || productData.price <= 0) {\n        return;\n      }\n\n      // Ensure discount fields are present\n      if (productData.hasDiscount === undefined) {\n        productData.hasDiscount = false;\n      }\n      if (productData.compareAtPrice === undefined) {\n        productData.compareAtPrice = '';\n      }\n\n      // Extract handle from URL if not present\n      if (!productData.handle && productData.url) {\n        var urlParts = productData.url.split('/products/');\n        if (urlParts.length > 1) {\n          productData.handle = urlParts[1].split('?')[0];\n        }\n      }\n\n      var stored = localStorage.getItem(CONFIG.dataSource.key);\n      var existingProducts = stored ? JSON.parse(stored) : [];\n\n      existingProducts = existingProducts.filter(function(p) {\n        return p && p.price && p.price > 0;\n      });\n\n      var filtered = existingProducts.filter(function(p) {\n        return p.id !== productData.id;\n      });\n\n      filtered.unshift(productData);\n\n      var limited = filtered.slice(0, CONFIG.dataSource.maxProducts);\n\n      localStorage.setItem(CONFIG.dataSource.key, JSON.stringify(limited));\n    } catch (error) {\n      // Silent fail\n    }\n  }\n\n  function getRecentlyViewedProducts() {\n    try {\n      const stored = localStorage.getItem(CONFIG.dataSource.key);\n      console.log('[Variant] localStorage data:', stored);\n\n      if (!stored) {\n        console.log('[Variant] No data found in localStorage key:', CONFIG.dataSource.key);\n        return [];\n      }\n\n      const storedProducts = JSON.parse(stored);\n      console.log('[Variant] Parsed products:', storedProducts);\n\n      if (!Array.isArray(storedProducts)) {\n        console.log('[Variant] Data is not an array:', typeof storedProducts);\n        return [];\n      }\n\n      if (storedProducts.length === 0) {\n        console.log('[Variant] Array is empty');\n        return [];\n      }\n\n      // Normalize product data to ensure required fields\n      const normalized = storedProducts.map(function(p) {\n        if (!p) return null;\n\n        // Detect discount: check hasDiscount flag or compareAtPrice field\n        var hasDiscount = p.hasDiscount === true;\n        if (!hasDiscount && p.compareAtPrice) {\n          var compareAt = parseFloat(p.compareAtPrice) || parseFloat(p.compare_at_price) || 0;\n          var currentPrice = parseFloat(p.price || p.product_price || 0);\n          if (compareAt > 0 && currentPrice > 0 && compareAt > currentPrice) {\n            hasDiscount = true;\n          }\n        }\n\n        return {\n          id: p.id || p.product_id || p.productId || ('product-' + Date.now()),\n          title: p.title || p.name || p.product_title || 'Product',\n          price: parseFloat(p.price || p.product_price || 0),\n          url: p.url || p.link || p.product_url || '#',\n          image: p.image || p.img || p.product_image || p.featured_image || '',\n          timestamp: p.timestamp || p.time || Date.now(),\n          hasDiscount: hasDiscount,\n          handle: p.handle || ''\n        };\n      }).filter(function(p) {\n        // Exclude products already on discount (no double discount)\n        if (p && p.hasDiscount) {\n          return false;\n        }\n        return p && p.id && p.title;\n      });\n\n      console.log('[Variant] Normalized products:', normalized);\n\n      // Filter out current page\n      const currentPath = window.location.pathname;\n      const filtered = normalized.filter(function(p) {\n        return p.url !== currentPath;\n      });\n\n      // Sort by timestamp (most recent first)\n      filtered.sort(function(a, b) {\n        return (b.timestamp || 0) - (a.timestamp || 0);\n      });\n\n      var displayLimit = 4;\n      const result = filtered.slice(0, displayLimit);\n\n      return result;\n    } catch (error) {\n      console.error('[Variant] Error getting products:', error);\n      return [];\n    }\n  }\n\n  // ========================================\n  // LIVE DISCOUNT CHECK VIA PRODUCT JSON\n  // ========================================\n  function validateProductsNotOnSale(products) {\n    if (!products || products.length === 0) {\n      return Promise.resolve([]);\n    }\n\n    var checks = products.map(function(product) {\n      // If we already know it has a discount, skip it\n      if (product.hasDiscount) {\n        return Promise.resolve(null);\n      }\n\n      // Extract handle from URL for API check\n      var handle = product.handle || '';\n      if (!handle && product.url) {\n        var urlParts = product.url.split('/products/');\n        if (urlParts.length > 1) {\n          handle = urlParts[1].split('?')[0];\n        }\n      }\n\n      if (!handle) {\n        return Promise.resolve(product);\n      }\n\n      return fetch('/products/' + handle + '.json')\n        .then(function(response) {\n          if (!response.ok) return product;\n          return response.json();\n        })\n        .then(function(data) {\n          if (data && data.product && data.product.variants && data.product.variants[0]) {\n            var variant = data.product.variants[0];\n            var compareAt = parseFloat(variant.compare_at_price);\n            var currentPrice = parseFloat(variant.price);\n            if (compareAt && currentPrice && compareAt > currentPrice) {\n              return null; // Product is on sale, exclude it\n            }\n            // Update price to latest\n            product.price = currentPrice || product.price;\n          }\n          return product;\n        })\n        .catch(function() {\n          return product; // On error, keep the product\n        });\n    });\n\n    return Promise.all(checks).then(function(results) {\n      return results.filter(function(p) { return p !== null; });\n    });\n  }\n\n  // ========================================\n  // PRODUCT SELECTOR COMPONENT\n  // ========================================\n  function ProductSelectorComponent() {\n    var self = this;\n\n    this.config = CONFIG;\n    this.products = [];\n\n    this.init = function() {\n      self.products = getRecentlyViewedProducts();\n      return self;\n    };\n\n    this.render = function() {\n      console.log('[Variant] Rendering product selector with', self.products.length, 'products');\n\n      if (self.products.length === 0) {\n        console.log('[Variant] No products to display, returning null');\n        return null;\n      }\n\n      var container = document.createElement('div');\n      container.className = 'variant-product-selector';\n      container.style.cssText =\n        'width: 100%;' +\n        'padding: 20px 0;' +\n        'margin-top: 20px;' +\n        'border-top: 1px solid ' + self.config.styling.borderColor + ';';\n\n      var title = document.createElement('h3');\n      title.textContent = self.config.display.title;\n      title.style.cssText =\n        'font-size: 16px;' +\n        'font-weight: 600;' +\n        'margin: 0 0 12px 0;' +\n        'color: ' + self.config.styling.textColor + ';' +\n        'text-align: center;' +\n        'font-family: ' + self.config.styling.fontFamily + ';';\n      container.appendChild(title);\n\n      var carouselWrapper = document.createElement('div');\n      carouselWrapper.style.cssText =\n        'width: 100%;' +\n        'overflow: hidden;' +\n        'position: relative;';\n\n      var carousel = document.createElement('div');\n      carousel.className = 'variant-product-carousel';\n      carousel.style.cssText =\n        'display: flex;' +\n        'gap: ' + self.config.display.gap + 'px;' +\n        'overflow-x: auto;' +\n        'scroll-behavior: smooth;' +\n        'padding: 5px 0 10px 0;' +\n        'direction: rtl;' +\n        '-webkit-overflow-scrolling: touch;' +\n        'scrollbar-width: thin;' +\n        'scrollbar-color: rgba(39, 39, 39, 0.3) transparent;' +\n        'scroll-snap-type: x mandatory;';\n\n      if (!document.getElementById('variant-product-selector-styles')) {\n        var styleSheet = document.createElement('style');\n        styleSheet.id = 'variant-product-selector-styles';\n        styleSheet.textContent =\n          '.variant-product-carousel::-webkit-scrollbar { height: 6px; }' +\n          '.variant-product-carousel::-webkit-scrollbar-track { background: transparent; }' +\n          '.variant-product-carousel::-webkit-scrollbar-thumb { background: rgba(39, 39, 39, 0.3); border-radius: 3px; }' +\n          '.variant-product-carousel::-webkit-scrollbar-thumb:hover { background: rgba(39, 39, 39, 0.5); }';\n        document.head.appendChild(styleSheet);\n      }\n\n      for (var i = 0; i < self.products.length; i++) {\n        var product = self.products[i];\n        // NEVER RENDER PRODUCTS WITH NO PRICE!\n        if (!product || !product.price || product.price <= 0) {\n          console.log('[Variant] Skipping render for product with no price:', product);\n          continue;\n        }\n        var productCard = self.createProductCard(product);\n        carousel.appendChild(productCard);\n      }\n\n      carouselWrapper.appendChild(carousel);\n      container.appendChild(carouselWrapper);\n\n      return container;\n    };\n\n    this.createProductCard = function(product) {\n      var card = document.createElement('a');\n      card.href = product.url;\n      card.className = 'variant-product-card';\n      card.setAttribute('data-product-id', product.id);\n      card.style.cssText =\n        'display: flex;' +\n        'flex-direction: column;' +\n        'background: ' + self.config.styling.backgroundColor + ';' +\n        'border: 1px solid ' + self.config.styling.borderColor + ';' +\n        'border-radius: 6px;' +\n        'overflow: hidden;' +\n        'text-decoration: none;' +\n        'color: inherit;' +\n        'transition: transform 0.2s ease, box-shadow 0.2s ease;' +\n        'cursor: pointer;' +\n        'width: ' + self.config.display.cardWidthPercentage + '%;' +\n        'flex-shrink: 0;' +\n        'scroll-snap-align: start;';\n\n      card.addEventListener('mouseenter', function() {\n        this.style.transform = 'translateY(-2px)';\n        this.style.boxShadow = '0 4px 12px rgba(0, 0, 0, 0.1)';\n      });\n\n      card.addEventListener('mouseleave', function() {\n        this.style.transform = 'translateY(0)';\n        this.style.boxShadow = 'none';\n      });\n\n      card.addEventListener('click', function(e) {\n        self.trackProductClick(product);\n      });\n\n      var imageContainer = document.createElement('div');\n      imageContainer.style.cssText =\n        'width: 100%;' +\n        'padding-top: 100%;' +\n        'position: relative;' +\n        'background: #f2f2f2;' +\n        'overflow: hidden;';\n\n      if (product.image) {\n        var img = document.createElement('img');\n        img.src = product.image;\n        img.alt = product.title;\n        img.style.cssText =\n          'position: absolute;' +\n          'top: 0;' +\n          'left: 0;' +\n          'width: 100%;' +\n          'height: 100%;' +\n          'object-fit: cover;';\n\n        img.onerror = function() {\n          this.style.display = 'none';\n        };\n\n        imageContainer.appendChild(img);\n      }\n\n      card.appendChild(imageContainer);\n\n      var info = document.createElement('div');\n      info.style.cssText =\n        'padding: 8px;' +\n        'display: flex;' +\n        'flex-direction: column;' +\n        'gap: 4px;';\n\n      var titleEl = document.createElement('div');\n      titleEl.textContent = product.title;\n      titleEl.style.cssText =\n        'font-size: 11px;' +\n        'font-weight: 500;' +\n        'color: ' + self.config.styling.textColor + ';' +\n        'line-height: 1.3;' +\n        'overflow: hidden;' +\n        'text-overflow: ellipsis;' +\n        'display: -webkit-box;' +\n        '-webkit-line-clamp: 2;' +\n        '-webkit-box-orient: vertical;' +\n        'font-family: ' + self.config.styling.fontFamily + ';' +\n        'text-align: right;' +\n        'min-height: 28px;';\n      info.appendChild(titleEl);\n\n      var pricesContainer = document.createElement('div');\n      pricesContainer.style.cssText =\n        'display: flex;' +\n        'flex-direction: column;' +\n        'gap: 2px;' +\n        'align-items: flex-start;';\n\n      if (self.config.pricing.showOriginalPrice) {\n        var originalPrice = document.createElement('div');\n        originalPrice.textContent = self.formatPrice(product.price);\n        originalPrice.style.cssText =\n          'font-size: 11px;' +\n          'color: ' + self.config.styling.secondaryTextColor + ';' +\n          'text-decoration: line-through;' +\n          'font-family: ' + self.config.styling.fontFamily + ';';\n        pricesContainer.appendChild(originalPrice);\n      }\n\n      var discountedPrice = self.calculateDiscountedPrice(product.price);\n\n      var newPrice = document.createElement('div');\n      newPrice.style.cssText =\n        'display: flex;' +\n        'align-items: center;' +\n        'gap: 4px;' +\n        'flex-direction: row-reverse;';\n\n      var priceText = document.createElement('span');\n      priceText.textContent = self.formatPrice(discountedPrice);\n      priceText.style.cssText =\n        'font-size: 13px;' +\n        'font-weight: 700;' +\n        'color: ' + self.config.styling.textColor + ';' +\n        'font-family: ' + self.config.styling.fontFamily + ';';\n\n      var badge = document.createElement('span');\n      badge.textContent = '10%-';\n      badge.style.cssText =\n        'background: ' + self.config.styling.primaryColor + ';' +\n        'color: #fff;' +\n        'font-size: 9px;' +\n        'font-weight: 600;' +\n        'padding: 2px 4px;' +\n        'border-radius: 3px;' +\n        'font-family: ' + self.config.styling.fontFamily + ';';\n\n      newPrice.appendChild(priceText);\n      newPrice.appendChild(badge);\n      pricesContainer.appendChild(newPrice);\n\n      info.appendChild(pricesContainer);\n      card.appendChild(info);\n\n      return card;\n    };\n\n    this.calculateDiscountedPrice = function(price) {\n      return price * (1 - self.config.pricing.discountPercent);\n    };\n\n    this.formatPrice = function(price) {\n      return price.toFixed(2) + ' ' + self.config.pricing.currencySymbol;\n    };\n\n    this.trackProductClick = function(product) {\n      try {\n        if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n          Variant.publishCustomEvent('product-clicked-attribution', {\n            experiment_id: self.config.analytics.experimentId,\n            variation_id: self.config.analytics.variationId,\n            product_id: product.id\n          });\n        }\n      } catch (error) {\n        // Silent fail\n      }\n    };\n\n    return this.init();\n  }\n\n  // ========================================\n  // POPUP MODIFICATIONS\n  // ========================================\n  function insertProductSelectorIntoPopup() {\n    try {\n      var checkPopup = setInterval(function() {\n        var popup = document.querySelector('.popbox-wrapper.register-window.vcm-popup');\n        var form = document.querySelector('form.provide-cell-enter');\n        var submitButton = document.querySelector('.btn-verify-phonenumber');\n\n        if (popup && form && submitButton && popup.classList.contains('open')) {\n          clearInterval(checkPopup);\n\n          // Check if already inserted\n          if (form.querySelector('.variant-product-selector')) {\n            console.log('[Variant] Product selector already inserted');\n            return;\n          }\n\n          // Check if close button already exists\n          if (form.querySelector('.vc-close-popup-btn')) {\n            console.log('[Variant] Close button already exists');\n            return;\n          }\n\n          console.log('[Variant] Inserting product selector into popup');\n\n          var popupInner = popup.querySelector('.popbox-inner');\n\n          if (popup) {\n            popup.style.setProperty('width', '720px', 'important');\n            popup.style.setProperty('max-width', '95vw', 'important');\n            popup.style.setProperty('height', 'auto', 'important');\n            popup.style.setProperty('max-height', '90vh', 'important');\n            popup.style.setProperty('overflow', 'hidden', 'important');\n            popup.style.setProperty('display', 'flex', 'important');\n            popup.style.setProperty('flex-direction', 'column', 'important');\n          }\n\n          if (popupInner) {\n            popupInner.style.setProperty('height', '100%', 'important');\n            popupInner.style.setProperty('max-height', '100%', 'important');\n            popupInner.style.setProperty('overflow-y', 'auto', 'important');\n            popupInner.style.setProperty('overflow-x', 'hidden', 'important');\n            popupInner.style.setProperty('-webkit-overflow-scrolling', 'touch', 'important');\n            popupInner.style.setProperty('scroll-behavior', 'smooth', 'important');\n            popupInner.style.setProperty('flex', '1', 'important');\n            popupInner.style.setProperty('min-height', '0', 'important');\n          }\n\n          if (form) {\n            form.style.setProperty('max-height', 'none', 'important');\n            form.style.setProperty('height', 'auto', 'important');\n            form.style.setProperty('overflow-y', 'visible', 'important');\n            form.style.setProperty('display', 'flex', 'important');\n            form.style.setProperty('flex-direction', 'column', 'important');\n            form.style.setProperty('position', 'relative', 'important');\n          }\n\n          var formParagraph = form.querySelector('p:nth-child(2)');\n          if (formParagraph) {\n            formParagraph.style.setProperty('margin', '-5px', 'important');\n          }\n\n          var existingCloseIcon = popup.querySelector('.popbox-close.far.fa-times.floating-close');\n          if (existingCloseIcon) {\n            existingCloseIcon.style.setProperty('top', '7px', 'important');\n            existingCloseIcon.style.setProperty('right', '7px', 'important');\n          }\n\n          var productSelector = new ProductSelectorComponent();\n          var candidateProducts = productSelector.products;\n\n          // Live-validate products are not on sale before rendering\n          validateProductsNotOnSale(candidateProducts).then(function(validProducts) {\n            productSelector.products = validProducts;\n            var selectorElement = productSelector.render();\n\n            if (selectorElement) {\n              var buttonWrapper = submitButton.closest('.cell-auth-wrapper');\n              if (buttonWrapper) {\n                buttonWrapper.parentNode.insertBefore(selectorElement, buttonWrapper.nextSibling);\n              }\n            }\n          }).catch(function() {\n            // Fallback: render with locally filtered products (no live check)\n            var selectorElement = productSelector.render();\n            if (selectorElement) {\n              var buttonWrapper = submitButton.closest('.cell-auth-wrapper');\n              if (buttonWrapper) {\n                buttonWrapper.parentNode.insertBefore(selectorElement, buttonWrapper.nextSibling);\n              }\n            }\n          });\n\n          var bottomCloseBtn = createCloseButton();\n          form.appendChild(bottomCloseBtn);\n        }\n      }, 300);\n\n      setTimeout(function() {\n        clearInterval(checkPopup);\n      }, 30000);\n\n    } catch (error) {\n      // Silent fail\n    }\n  }\n\n  function createCloseButton() {\n    var closeBtn = document.createElement('button');\n    closeBtn.className = 'vc-close-popup-btn';\n    closeBtn.innerHTML = '\\u05E1\\u05D2\\u05D9\\u05E8\\u05D4';\n    closeBtn.style.cssText =\n      'background: #fff;' +\n      'border: 1px solid rgba(39, 39, 39, 0.2);' +\n      'border-radius: 20px;' +\n      'padding: 10px 24px;' +\n      'display: flex;' +\n      'align-items: center;' +\n      'justify-content: center;' +\n      'font-size: 15px;' +\n      'font-weight: 500;' +\n      'color: #272727;' +\n      'cursor: pointer;' +\n      'transition: all 0.2s ease;' +\n      'font-family: Heebo, sans-serif;' +\n      'line-height: 1;' +\n      'position: static;' +\n      'margin: 16px auto 0px;';\n\n    closeBtn.addEventListener('mouseenter', function() {\n      this.style.background = '#f5f5f5';\n      this.style.transform = 'translateY(-2px)';\n    });\n\n    closeBtn.addEventListener('mouseleave', function() {\n      this.style.background = '#fff';\n      this.style.transform = 'translateY(0)';\n    });\n\n    closeBtn.addEventListener('click', function(e) {\n      e.preventDefault();\n      e.stopPropagation();\n\n      // Find and trigger the actual close button\n      var originalCloseBtn = document.querySelector('.popbox-close.far.fa-times.floating-close');\n      if (originalCloseBtn) {\n        // Trigger click on the original close button\n        originalCloseBtn.click();\n      } else {\n        // Fallback: manually close everything\n        var popupToClose = document.querySelector('.popbox-wrapper.register-window.vcm-popup.open');\n        if (popupToClose) {\n          popupToClose.classList.remove('open');\n        }\n\n        var overlay = document.querySelector('.popbox-overlay.open');\n        if (overlay) {\n          overlay.classList.remove('open');\n        }\n\n        var body = document.body;\n        if (body.classList.contains('popbox-open')) {\n          body.classList.remove('popbox-open');\n        }\n\n        // Remove any additional classes\n        var vcmPopup = document.querySelector('.vcm-popup.open');\n        if (vcmPopup) {\n          vcmPopup.classList.remove('open');\n        }\n      }\n    });\n\n    return closeBtn;\n  }\n\n  function addDiscountText() {\n    try {\n      var checkPopup = setInterval(function() {\n        var popup = document.querySelector('.popbox-wrapper.register-window.vcm-popup.open');\n        var form = document.querySelector('form.provide-cell-enter');\n\n        if (popup && form) {\n          clearInterval(checkPopup);\n\n          // Add main title if it doesn't exist\n          var existingTitle = form.querySelector('p strong span[style*=\"font-size:24px\"]');\n          if (!existingTitle) {\n            var firstParagraph = form.querySelector('p');\n            if (firstParagraph) {\n              var mainTitle = document.createElement('p');\n              mainTitle.style.cssText = 'text-align: center; margin-top: 207px;';\n              mainTitle.innerHTML = '<strong><span style=\"font-size:24px;\">\\u05D4\\u05D7\\u05D1\\u05E8\\u05D9\\u05DD \\u05E9\\u05DC \\u05D0\\u05E1\\u05D5\\u05E4\\u05D4 \\u05EA\\u05DE\\u05D9\\u05D3 \\u05DE\\u05E7\\u05D1\\u05DC\\u05D9\\u05DD \\u05D9\\u05D5\\u05EA\\u05E8</span></strong>';\n              form.insertBefore(mainTitle, firstParagraph);\n            }\n          }\n\n          // Also set margin-top on first paragraph if it already exists\n          var firstP = form.querySelector('p:nth-child(1)');\n          if (firstP) {\n            firstP.style.setProperty('margin-top', '207px', 'important');\n          }\n\n          var paragraphs = form.querySelectorAll('p');\n          paragraphs.forEach(function(p) {\n            var text = p.textContent || p.innerText;\n            if (text.includes('\\u05E2\\u05D3\\u05D9\\u05D9\\u05DF \\u05DC\\u05D0 \\u05D1\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF') || text.includes('\\u05D7\\u05D1\\u05E8\\u05D9 \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF \\u05E9\\u05DC\\u05E0\\u05D5 \\u05E0\\u05D4\\u05E0\\u05D9\\u05DD')) {\n              p.innerHTML = '<br>\\u05E2\\u05D3\\u05D9\\u05D9\\u05DF \\u05DC\\u05D0 \\u05D1\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF?&nbsp; \\u05D6\\u05D4 \\u05D1\\u05D3\\u05D9\\u05D5\\u05E7 \\u05D4\\u05D6\\u05DE\\u05DF \\u05DC\\u05D4\\u05E6\\u05D8\\u05E8\\u05E3!<br>\\u05D7\\u05D1\\u05E8\\u05D9 \\u05D4\\u05DE\\u05D5\\u05E2\\u05D3\\u05D5\\u05DF \\u05E9\\u05DC\\u05E0\\u05D5 \\u05E0\\u05D4\\u05E0\\u05D9\\u05DD \\u05DE\\u05DE\\u05D1\\u05E6\\u05E2\\u05D9\\u05DD \\u05D5\\u05D4\\u05D8\\u05D1\\u05D5\\u05EA \\u05D1\\u05DC\\u05E2\\u05D3\\u05D9\\u05D5\\u05EA, <strong style=\"color: #fda39c;\">\\u05D4\\u05E0\\u05D7\\u05D4 \\u05E9\\u05DC 10%</strong>, \\u05D5\\u05D4\\u05E6\\u05E6\\u05D4 \\u05E8\\u05D0\\u05E9\\u05D5\\u05E0\\u05D4 \\u05DC\\u05E2\\u05D9\\u05E6\\u05D5\\u05D1\\u05D9\\u05DD \\u05D7\\u05D3\\u05E9\\u05D9\\u05DD.';\n              p.style.textAlign = 'center';\n            }\n          });\n        }\n      }, 300);\n\n      setTimeout(function() {\n        clearInterval(checkPopup);\n      }, 30000);\n\n    } catch (error) {\n      // Silent fail\n    }\n  }\n\n  function autoClickMembersClub() {\n    try {\n      // Session storage key to track if popup was already shown\n      var SESSION_KEY = 'variant_popup_shown_EXPE3CFDC99';\n\n      // Check if popup was already shown this session\n      if (sessionStorage.getItem(SESSION_KEY)) {\n        console.log('[Variant] Popup already shown this session, skipping');\n        return;\n      }\n\n      setTimeout(function() {\n        var membersClubButton = document.querySelector('#vcPlugin');\n        if (membersClubButton) {\n          // Mark as shown in session storage\n          sessionStorage.setItem(SESSION_KEY, 'true');\n          console.log('[Variant] Marking popup as shown for this session');\n\n          membersClubButton.click();\n          setTimeout(addDiscountText, 500);\n        }\n      }, CONFIG.autoTrigger.delay);\n    } catch (error) {\n      // Silent fail\n    }\n  }\n\n  // ========================================\n  // INITIALIZATION\n  // ========================================\n  function init() {\n    console.log('[Variant] Initializing variant EXPE3CFDC99 variant 1');\n\n    // First, detect which localStorage key to use\n    detectLocalStorageKey();\n\n    // Track products on product pages\n    trackRecentlyViewedProducts();\n\n    // Set up auto-trigger for popup\n    if (CONFIG.autoTrigger.enabled) {\n      autoClickMembersClub();\n    }\n\n    // Set up observer for popup opening\n    var popupObserver = new MutationObserver(function(mutations) {\n      mutations.forEach(function(mutation) {\n        mutation.addedNodes.forEach(function(node) {\n          if (node.nodeType === 1) {\n            if (node.classList && node.classList.contains('vcm-popup')) {\n              insertProductSelectorIntoPopup();\n            }\n          }\n        });\n\n        if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n          var target = mutation.target;\n          if (target.classList && target.classList.contains('vcm-popup') && target.classList.contains('open')) {\n            insertProductSelectorIntoPopup();\n          }\n        }\n      });\n    });\n\n    popupObserver.observe(document.body, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['class']\n    });\n\n    // Try to insert immediately if popup is already open\n    setTimeout(function() {\n      insertProductSelectorIntoPopup();\n    }, 100);\n\n    console.log('[Variant] Variant initialization complete');\n  }\n\n  // Multiple initialization strategies to ensure the code runs\n  function safeInit() {\n    try {\n      init();\n    } catch (error) {\n      console.error('[Variant] Error during initialization:', error);\n    }\n  }\n\n  // Strategy 1: DOMContentLoaded\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', safeInit);\n  } else {\n    // Strategy 2: DOM already loaded, run immediately\n    safeInit();\n  }\n\n  // Strategy 3: Backup - run after a short delay\n  setTimeout(safeInit, 500);\n\n})();"}]},"exp-EXPD48DA4A9":{"defaultValue":"","rules":[{"id":"winner-deployed-1769519084798","condition":{"$and":[{"segment_id":"98853edc-b5e9-4a16-92b9-e4fcea0c6a0d"},{"deviceType":"mobile"}]},"force":"(function() {\n  'use strict';\n\n  function isVIPClubActive() {\n    const vcPlugin = document.getElementById('vcPlugin');\n    if (!vcPlugin) return false;\n\n    const isDisabled = vcPlugin.getAttribute('data-disabled');\n    if (isDisabled !== 'false' && isDisabled !== null) return false;\n\n    const spanText = vcPlugin.querySelector('span');\n    if (spanText) {\n      const text = spanText.textContent.trim();\n      if (text === 'מועדון חברים' || text === 'המועדון שלנו') {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function createWelcomeBanner() {\n    try {\n      const slideshow = document.querySelector('x-slideshow.slideshow');\n      if (!slideshow) {\n        console.warn('Slideshow element not found');\n        return;\n      }\n\n      if (document.getElementById('vip-welcome-banner')) {\n        return;\n      }\n\n      const banner = document.createElement('div');\n      banner.id = 'vip-welcome-banner';\n      banner.style.cssText = `\n        color: #272727;\n        text-align: right;\n        font-size: 15px;\n        font-weight: 500;\n        line-height: 1.5;\n        margin-top: 10px;\n        margin-right: 15px;\n        font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif;\n        direction: rtl;\n        animation: slideDown 0.4s ease-out;\n      `;\n\n      banner.innerHTML = '\\u05D0\\u05DC \\u05EA\\u05E9\\u05DB\\u05D7\\u05D5 \\u05DC\\u05D4\\u05E9\\u05EA\\u05DE\\u05E9 <a href=\"#\" id=\"vip-benefits-link\" style=\"color: #3c619e; text-decoration: underline; font-weight: 600; cursor: pointer; transition: color 0.2s ease;\">\\u05D1\\u05D4\\u05D8\\u05D1\\u05D5\\u05EA \\u05E9\\u05DC\\u05DB\\u05DD</a>!';\n\n      const link = banner.querySelector('#vip-benefits-link');\n      if (link) {\n        link.addEventListener('click', function(e) {\n          e.preventDefault();\n\n          let benefitsTab = document.querySelector('a[data-href=\"promos\"].promo-tabs.btn-show-benifits');\n\n          if (benefitsTab) {\n            benefitsTab.click();\n\n            setTimeout(function() {\n              benefitsTab = document.querySelector('a[data-href=\"promos\"].promo-tabs.btn-show-benifits');\n              if (benefitsTab && !benefitsTab.classList.contains('active')) {\n                benefitsTab.click();\n              }\n            }, 50);\n          } else {\n            const vcWidget = document.querySelector('#vcPlugin');\n\n            if (vcWidget) {\n              vcWidget.click();\n\n              const intervals = [50, 150, 300];\n              intervals.forEach(function(delay) {\n                setTimeout(function() {\n                  const tab = document.querySelector('a[data-href=\"promos\"].promo-tabs.btn-show-benifits');\n                  if (tab) {\n                    tab.click();\n                  }\n                }, delay);\n              });\n            } else {\n              setTimeout(function() {\n                const tab = document.querySelector('.btn-show-benifits') ||\n                           document.querySelector('[data-href=\"promos\"]') ||\n                           document.querySelector('.promo-tabs.btn-show-benifits');\n                if (tab) {\n                  tab.click();\n                }\n              }, 100);\n            }\n          }\n        });\n\n        link.addEventListener('mouseenter', function() {\n          this.style.color = '#5297c0';\n        });\n\n        link.addEventListener('mouseleave', function() {\n          this.style.color = '#3c619e';\n        });\n      }\n\n      slideshow.parentNode.insertBefore(banner, slideshow);\n\n      if (!document.getElementById('vip-banner-animation')) {\n        const style = document.createElement('style');\n        style.id = 'vip-banner-animation';\n        style.textContent = `\n          @keyframes slideDown {\n            from {\n              opacity: 0;\n              transform: translateY(-10px);\n            }\n            to {\n              opacity: 1;\n              transform: translateY(0);\n            }\n          }\n        `;\n        document.head.appendChild(style);\n      }\n\n    } catch (error) {\n      console.error('Error creating welcome banner:', error);\n    }\n  }\n\n  function init() {\n    if (isVIPClubActive()) {\n      createWelcomeBanner();\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n\n  const bannerObserver = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.type === 'childList' || mutation.type === 'attributes') {\n        const vcPlugin = document.getElementById('vcPlugin');\n        if (vcPlugin && !document.getElementById('vip-welcome-banner')) {\n          if (isVIPClubActive()) {\n            createWelcomeBanner();\n          }\n        }\n      }\n    });\n  });\n\n  bannerObserver.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['data-disabled']\n  });\n\n  const popupTabObserver = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.type === 'childList') {\n        const addedNodes = Array.from(mutation.addedNodes);\n        \n        addedNodes.forEach(function(node) {\n          if (node.nodeType === 1) {\n            const tabsContainer = node.querySelector ? node.querySelector('.tabs') : null;\n            const isTabsContainer = node.classList && node.classList.contains('tabs');\n            \n            if (tabsContainer || isTabsContainer) {\n              setTimeout(function() {\n                const benefitsTab = document.querySelector('a[data-href=\"promos\"].promo-tabs.btn-show-benifits');\n                if (benefitsTab && !benefitsTab.classList.contains('active')) {\n                  benefitsTab.click();\n                }\n              }, 100);\n            }\n            \n            const popboxInner = node.querySelector ? node.querySelector('.popbox-inner') : null;\n            const isPopboxInner = node.classList && node.classList.contains('popbox-inner');\n            \n            if (popboxInner || isPopboxInner) {\n              setTimeout(function() {\n                const benefitsTab = document.querySelector('a[data-href=\"promos\"].promo-tabs.btn-show-benifits');\n                if (benefitsTab && !benefitsTab.classList.contains('active')) {\n                  benefitsTab.click();\n                }\n              }, 150);\n            }\n          }\n        });\n      }\n    });\n  });\n\n  popupTabObserver.observe(document.body, {\n    childList: true,\n    subtree: true\n  });\n\n  function addBenefitsReminderToPopup() {\n    try {\n      const checkPopup = setInterval(function() {\n        const popup = document.querySelector('.popbox-wrapper.register-window.vcm-popup.open');\n        const form = document.querySelector('form.provide-cell-enter');\n\n        if (popup && form) {\n          clearInterval(checkPopup);\n\n          // Check if reminder already exists\n          if (form.querySelector('#benefits-reminder-text')) {\n            return;\n          }\n\n          // Find the paragraph with the club description\n          const paragraphs = form.querySelectorAll('p');\n          paragraphs.forEach(function(p) {\n            const text = p.textContent || p.innerText;\n            if (text.includes('עדיין לא במועדון') || text.includes('חברי המועדון שלנו נהנים')) {\n              // Create reminder message\n              const reminderDiv = document.createElement('div');\n              reminderDiv.id = 'benefits-reminder-text';\n              reminderDiv.style.cssText = `\n                background: linear-gradient(135deg, #fda39c 0%, #fd8b83 100%);\n                color: #fff;\n                padding: 12px 16px;\n                margin: 15px 0;\n                border-radius: 8px;\n                text-align: center;\n                font-family: Heebo, sans-serif;\n                font-size: 14px;\n                font-weight: 600;\n                box-shadow: 0 2px 8px rgba(253, 163, 156, 0.3);\n                animation: pulse 2s ease-in-out infinite;\n              `;\n              reminderDiv.innerHTML = '💫 אל תשכחו להשתמש בהטבות שלכם!';\n\n              // Add animation\n              if (!document.getElementById('benefits-reminder-animation')) {\n                const style = document.createElement('style');\n                style.id = 'benefits-reminder-animation';\n                style.textContent = `\n                  @keyframes pulse {\n                    0%, 100% {\n                      transform: scale(1);\n                      box-shadow: 0 2px 8px rgba(253, 163, 156, 0.3);\n                    }\n                    50% {\n                      transform: scale(1.02);\n                      box-shadow: 0 4px 12px rgba(253, 163, 156, 0.5);\n                    }\n                  }\n                `;\n                document.head.appendChild(style);\n              }\n\n              // Insert after the paragraph\n              p.parentNode.insertBefore(reminderDiv, p.nextSibling);\n            }\n          });\n        }\n      }, 300);\n\n      // Clear interval after 30 seconds\n      setTimeout(function() {\n        clearInterval(checkPopup);\n      }, 30000);\n\n    } catch (error) {\n      console.error('Error adding benefits reminder:', error);\n    }\n  }\n\n  // Add observer to detect popup opening\n  const popupOpenObserver = new MutationObserver(function(mutations) {\n    mutations.forEach(function(mutation) {\n      if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n        const target = mutation.target;\n        if (target.classList && target.classList.contains('vcm-popup') && target.classList.contains('open')) {\n          addBenefitsReminderToPopup();\n        }\n      }\n    });\n  });\n\n  popupOpenObserver.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['class']\n  });\n\n  // ========================================\n  // EXCLUDE DISCOUNTED PRODUCTS (NO DOUBLE DISCOUNT)\n  // ========================================\n\n  var RV_KEY = 'variant:recently_viewed_products';\n\n  function getStoredProducts() {\n    try {\n      var stored = localStorage.getItem(RV_KEY);\n      return stored ? JSON.parse(stored) : [];\n    } catch (e) {\n      return [];\n    }\n  }\n\n  function isOnDiscount(product) {\n    if (!product) return false;\n    if (product.hasDiscount === true) return true;\n\n    var compareAt = 0;\n    var price = 0;\n\n    if (typeof product.compareAtPrice === 'string' && product.compareAtPrice !== '') {\n      compareAt = parseFloat(product.compareAtPrice.replace(/[^\\d.]/g, '')) || 0;\n    } else if (typeof product.compare_at_price === 'string' && product.compare_at_price !== '') {\n      compareAt = parseFloat(product.compare_at_price.replace(/[^\\d.]/g, '')) || 0;\n    }\n\n    if (typeof product.price === 'string') {\n      price = parseFloat(product.price.replace(/[^\\d.]/g, '')) || 0;\n    } else {\n      price = parseFloat(product.price) || 0;\n    }\n\n    return compareAt > 0 && price > 0 && compareAt > price;\n  }\n\n  /**\n   * Remove discounted products from localStorage so the carousel\n   * won't render them (prevents double discount).\n   */\n  function filterDiscountedFromStorage() {\n    try {\n      var products = getStoredProducts();\n      if (!products.length) return;\n\n      var cleaned = products.filter(function(p) {\n        return !isOnDiscount(p);\n      });\n\n      if (cleaned.length !== products.length) {\n        localStorage.setItem(RV_KEY, JSON.stringify(cleaned));\n      }\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  /**\n   * Live-check each stored product via Shopify product JSON to catch\n   * items that went on sale after being viewed.\n   */\n  function liveCheckDiscountedProducts() {\n    try {\n      var products = getStoredProducts();\n      if (!products.length) return;\n\n      var idsToRemove = [];\n\n      var checks = products.map(function(p) {\n        var handle = p.handle || '';\n        if (!handle && p.url) {\n          var parts = (p.url || '').split('/products/');\n          if (parts.length > 1) handle = parts[1].split('?')[0].split('#')[0];\n        }\n        if (!handle) return Promise.resolve();\n\n        return fetch('/products/' + handle + '.json')\n          .then(function(res) { return res.ok ? res.json() : null; })\n          .then(function(data) {\n            if (!data || !data.product || !data.product.variants || !data.product.variants.length) return;\n            var v = data.product.variants[0];\n            var cap = parseFloat(v.compare_at_price);\n            var cp = parseFloat(v.price);\n            if (cap && cp && cap > cp) {\n              var pid = String(p.id || p.productId || p.product_id || '');\n              if (pid) idsToRemove.push(pid);\n            }\n          })\n          .catch(function() {});\n      });\n\n      Promise.all(checks).then(function() {\n        if (!idsToRemove.length) return;\n        var current = getStoredProducts();\n        var filtered = current.filter(function(p) {\n          var pid = String(p.id || p.productId || p.product_id || '');\n          return idsToRemove.indexOf(pid) === -1;\n        });\n        if (filtered.length !== current.length) {\n          localStorage.setItem(RV_KEY, JSON.stringify(filtered));\n          removeDiscountedCardsFromDOM();\n        }\n      });\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  /**\n   * DOM-level safety net: after the carousel renders, remove any\n   * product cards whose IDs are no longer in the cleaned localStorage list.\n   */\n  function removeDiscountedCardsFromDOM() {\n    try {\n      var selector = document.querySelector('.variant-product-selector');\n      if (!selector) return;\n\n      var cards = selector.querySelectorAll('.variant-product-card');\n      if (!cards.length) return;\n\n      var validProducts = getStoredProducts();\n      var validIds = {};\n      validProducts.forEach(function(p) {\n        var pid = String(p.id || p.productId || p.product_id || '');\n        if (pid) validIds[pid] = true;\n      });\n\n      cards.forEach(function(card) {\n        var productId = card.getAttribute('data-product-id');\n        if (productId && !validIds[productId]) {\n          card.remove();\n        }\n      });\n\n      var remaining = selector.querySelectorAll('.variant-product-card');\n      if (!remaining.length) {\n        selector.style.display = 'none';\n      }\n    } catch (e) {\n      // Silent fail\n    }\n  }\n\n  // Run immediately on load\n  filterDiscountedFromStorage();\n  liveCheckDiscountedProducts();\n\n  // Also clean up after popup opens (carousel renders with a delay)\n  var discountObserver = new MutationObserver(function(mutations) {\n    for (var i = 0; i < mutations.length; i++) {\n      var mutation = mutations[i];\n      if (mutation.type === 'childList') {\n        for (var j = 0; j < mutation.addedNodes.length; j++) {\n          var node = mutation.addedNodes[j];\n          if (node.nodeType === 1) {\n            if ((node.classList && node.classList.contains('variant-product-selector')) ||\n                (node.querySelector && node.querySelector('.variant-product-selector'))) {\n              setTimeout(removeDiscountedCardsFromDOM, 100);\n              setTimeout(removeDiscountedCardsFromDOM, 500);\n              setTimeout(removeDiscountedCardsFromDOM, 1500);\n            }\n          }\n        }\n      }\n      if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n        var target = mutation.target;\n        if (target.classList && target.classList.contains('vcm-popup') && target.classList.contains('open')) {\n          setTimeout(removeDiscountedCardsFromDOM, 300);\n          setTimeout(removeDiscountedCardsFromDOM, 1000);\n          setTimeout(removeDiscountedCardsFromDOM, 2500);\n        }\n      }\n    }\n  });\n\n  discountObserver.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['class']\n  });\n\n})();"}]},"exp-EXPFE94E295":{"defaultValue":""},"exp-EXP531B613C":{"defaultValue":""},"exp-EXPB1029205":{"defaultValue":""},"exp-EXPD68145DB":{"defaultValue":""},"exp-EXP06CB2169":{"defaultValue":""},"exp-EXPF320908D":{"defaultValue":""},"exp-EXPFDD90328":{"defaultValue":""},"exp-EXP617DC457":{"defaultValue":""},"exp-EXP6ED26BB7":{"defaultValue":""},"exp-EXP3A2C2FF6":{"defaultValue":""},"exp-EXP84F5113D":{"defaultValue":""},"exp-EXP06F9ACB7":{"defaultValue":""},"exp-EXP81BB0D9F":{"defaultValue":"","rules":[{"id":"winner-deployed-1771925483076","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"product"}]},"force":"(function() {\n  'use strict';\n\n  // Configuration\n  const CONFIG = {\n    stickyFormId: 'product-form-7173861572775-template--19459362291879__main-sticky-bar',\n    priceUpdateDelay: 100,\n    maxRetries: 50,\n    retryDelay: 100\n  };\n\n  // Get the current product price from the main product info area\n  function getCurrentPrice() {\n    try {\n      // Try to find the sale price element in the main product info\n      const salePriceElement = document.querySelector('sale-price');\n      \n      if (salePriceElement) {\n        // Extract the price text (e.g., \"240.00 ₪\")\n        const priceText = salePriceElement.textContent.trim();\n        // Remove any screen reader text like \"מחיר מבצע\"\n        const cleanPrice = priceText.replace(/מחיר מבצע|מחיר רגיל/g, '').trim();\n        return cleanPrice;\n      }\n      \n      // Fallback: try to find price-list element\n      const priceListElement = document.querySelector('price-list sale-price');\n      if (priceListElement) {\n        const priceText = priceListElement.textContent.trim();\n        const cleanPrice = priceText.replace(/מחיר מבצע|מחיר רגיל/g, '').trim();\n        return cleanPrice;\n      }\n      \n      return null;\n    } catch (error) {\n      return null;\n    }\n  }\n\n  // Update the sticky button with the price\n  function updateStickyButtonWithPrice() {\n    try {\n      // Find the sticky form\n      const stickyForm = document.getElementById(CONFIG.stickyFormId);\n      if (!stickyForm) {\n        return false;\n      }\n\n      // Find the button text div within the sticky bar\n      const buttonTextDiv = stickyForm.querySelector('buy-buttons button > div');\n      if (!buttonTextDiv) {\n        return false;\n      }\n\n      // Get the current price\n      const price = getCurrentPrice();\n      if (!price) {\n        return false;\n      }\n\n      // Get the original button text (without price if already added)\n      const originalText = 'הוסף לעגלה';\n      \n      // Check if price is already added to avoid duplicates\n      const currentText = buttonTextDiv.textContent.trim();\n      if (currentText.includes('-') && currentText.includes('₪')) {\n        // Already has price, just update it\n        buttonTextDiv.textContent = `${originalText} - ${price}`;\n      } else {\n        // First time adding price\n        buttonTextDiv.textContent = `${originalText} - ${price}`;\n      }\n\n      // Ensure the button parent has proper styling for the new content\n      const button = buttonTextDiv.closest('button');\n      if (button) {\n        button.style.display = 'flex';\n        button.style.alignItems = 'center';\n        button.style.justifyContent = 'center';\n        button.style.gap = '8px';\n      }\n\n      return true;\n    } catch (error) {\n      return false;\n    }\n  }\n\n  // Initialize with retry logic\n  function initializeWithRetry(attempt = 0) {\n    if (attempt >= CONFIG.maxRetries) {\n      return;\n    }\n\n    const success = updateStickyButtonWithPrice();\n    \n    if (!success) {\n      setTimeout(() => initializeWithRetry(attempt + 1), CONFIG.retryDelay);\n    } else {\n      // Successfully initialized, now set up observers\n      setupObservers();\n    }\n  }\n\n  // Set up observers to watch for price changes (variant changes)\n  function setupObservers() {\n    try {\n      // Watch for changes in the main product info area (where prices update)\n      const productInfo = document.querySelector('safe-sticky.product-info');\n      if (productInfo) {\n        const observer = new MutationObserver((mutations) => {\n          // Debounce the update\n          clearTimeout(window.variantPriceUpdateTimeout);\n          window.variantPriceUpdateTimeout = setTimeout(() => {\n            updateStickyButtonWithPrice();\n          }, CONFIG.priceUpdateDelay);\n        });\n\n        observer.observe(productInfo, {\n          childList: true,\n          subtree: true,\n          characterData: true\n        });\n      }\n\n      // Also watch the sticky button itself in case it gets re-rendered\n      const stickyForm = document.getElementById(CONFIG.stickyFormId);\n      if (stickyForm) {\n        const stickyObserver = new MutationObserver((mutations) => {\n          // Check if the button text was reset (no price)\n          const buttonTextDiv = stickyForm.querySelector('buy-buttons button > div');\n          if (buttonTextDiv && !buttonTextDiv.textContent.includes('-')) {\n            clearTimeout(window.variantPriceUpdateTimeout);\n            window.variantPriceUpdateTimeout = setTimeout(() => {\n              updateStickyButtonWithPrice();\n            }, CONFIG.priceUpdateDelay);\n          }\n        });\n\n        stickyObserver.observe(stickyForm, {\n          childList: true,\n          subtree: true,\n          characterData: true\n        });\n      }\n\n      // Listen for variant change events (Shopify specific)\n      document.addEventListener('variant:change', () => {\n        setTimeout(() => {\n          updateStickyButtonWithPrice();\n        }, CONFIG.priceUpdateDelay);\n      });\n\n    } catch (error) {\n      // Silent fail for observers\n    }\n  }\n\n  // Start initialization when DOM is ready\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () => {\n      setTimeout(() => initializeWithRetry(), 500);\n    });\n  } else {\n    setTimeout(() => initializeWithRetry(), 500);\n  }\n\n})();"}]},"exp-EXP63AF98E6":{"defaultValue":""},"exp-EXP444E3D8E":{"defaultValue":""},"exp-EXPEAE8DFC6":{"defaultValue":"","rules":[{"id":"winner-deployed-1774962209548","condition":{"$and":[{"deviceType":"mobile"},{"pageType":"collection"}]},"force":"(function() {\n  'use strict';\n\n  if (!window.location.pathname.includes('/collections/')) return;\n\n  /* ═══════════════════════════════════════════════════════\n     SECTION 1: CATEGORY CAROUSEL (bottom of page)\n     ═══════════════════════════════════════════════════════ */\n\n  var CAROUSEL_ID = 'vr-category-carousel';\n\n  var categories = [\n    { name: 'קרמיקה', handle: '%D7%A7%D7%A8%D7%9E%D7%99%D7%A7%D7%94', image: '//asufadesign.co.il/cdn/shop/files/icons_web9_6c3aeba3-4bba-4f9a-9156-05b899fe0c08.jpg?v=1732560369&width=400' },\n    { name: 'יודאיקה', handle: 'judaica', image: '//asufadesign.co.il/cdn/shop/files/icons_web6.jpg?v=1732560589&width=400' },\n    { name: 'ספרים', handle: 'books', image: '//asufadesign.co.il/cdn/shop/files/icons_web7_48bcc667-00d4-4cb7-a923-a2203c0b4655.jpg?v=1732560622&width=400' },\n    { name: 'מוצרי נייר', handle: 'papergoods', image: '//asufadesign.co.il/cdn/shop/files/icons_web8_f59ff7c0-7e5f-4141-b350-d8ab5de11a3a.jpg?v=1732560668&width=400' },\n    { name: 'ואזות ועציצים', handle: 'plants', image: '//asufadesign.co.il/cdn/shop/files/icons_web_1a8e19a6-b97c-447c-9924-40ea2335ea45.jpg?v=1732561011&width=400' },\n    { name: 'ילדים', handle: 'kids', image: '//asufadesign.co.il/cdn/shop/files/icons_web2.jpg?v=1732561109&width=400' },\n    { name: 'הדפסים', handle: 'prints', image: '//asufadesign.co.il/cdn/shop/files/icons_web4_494f22ea-ec4a-4ab0-805c-d3212b08b7e2.jpg?v=1732561077&width=400' },\n    { name: 'לבית', handle: 'home', image: '//asufadesign.co.il/cdn/shop/files/icons_web5_659aced3-9639-4e93-b60b-dcd80f6a9a3b.jpg?v=1732561124&width=400' },\n    { name: 'לקיר', handle: 'wall', image: '//asufadesign.co.il/cdn/shop/files/icons_web13_9b40a733-2f06-4196-a046-d88145fddb1f.jpg?v=1732561132&width=400' },\n    { name: 'בסט סלרס', handle: 'bestsellers', image: '//asufadesign.co.il/cdn/shop/files/icons_web10_e672d131-0012-40f9-929a-9fd9778a0eb6.jpg?v=1732561152&width=400' }\n  ];\n\n  /* ═══════════════════════════════════════════════════════\n     SECTION 2: CATEGORY HEADER + DESCRIPTION DATA\n     ═══════════════════════════════════════════════════════ */\n\n  var collectionData = {\n    'all': {\n      title: 'כל המוצרים',\n      description: 'כל מוצרי העיצוב הישראלי שלנו במקום אחד – גלו יצירות ייחודיות מהמעצבים המובילים בארץ.'\n    },\n    'קרמיקה': {\n      title: 'קרמיקה',\n      description: 'כלי קרמיקה בעבודת יד, כל פריט הוא יצירה ייחודית שמשלבת מלאכת יד מסורתית עם עיצוב עכשווי.'\n    },\n    'judaica': {\n      title: 'יודאיקה',\n      description: 'פריטי יודאיקה מעוצבים בקו מודרני – חנוכיות, מזוזות, קידוש ועוד, בעבודת יד ישראלית.'\n    },\n    'books': {\n      title: 'ספרים',\n      description: 'אוסף ספרים ישראליים מיוחדים – עיצוב, אמנות, אוכל ותרבות, מתנה מושלמת לכל אוהב קריאה.'\n    },\n    'papergoods': {\n      title: 'מוצרי נייר',\n      description: 'גלויות, מחברות, פוסטרים ועוד – מוצרי נייר מאוירים ומעוצבים ביד אמן ישראלית.'\n    },\n    'plants': {\n      title: 'ואזות ועציצים',\n      description: 'עציצים ואגרטלים מעוצבים לצמחי הבית שלכם – קרמיקה, בטון וזכוכית בעיצוב ישראלי.'\n    },\n    'kids': {\n      title: 'ילדים',\n      description: 'מוצרי עיצוב מקוריים לילדים – משחקים, ספרים ואקססוריז שמעוררים דמיון ויצירתיות.'\n    },\n    'prints': {\n      title: 'הדפסים',\n      description: 'הדפסים ופוסטרים מאוירים של אמנים ישראליים – להוסיף צבע ואופי לכל קיר בבית.'\n    },\n    'home': {\n      title: 'לבית',\n      description: 'פריטי עיצוב לבית בסגנון ישראלי – דקורציה, כלי בית ואקססוריז שהופכים כל חלל למיוחד.'\n    },\n    'wall': {\n      title: 'לקיר',\n      description: 'שעונים, תמונות, אגרטלים לקיר וחמסות – פריטי קיר מעוצבים שנותנים אופי לכל חדר.'\n    },\n    'bestsellers': {\n      title: 'הנמכרים ביותר',\n      description: 'המוצרים הכי אהובים על הלקוחות שלנו – הפריטים שכולם בוחרים, שוב ושוב.'\n    },\n    'sozo': {\n      title: 'SOZO',\n      description: 'קולקציית SOZO – עיצובים יפניים-ישראליים ייחודיים המשלבים אסתטיקה מזרחית עם נגיעה מקומית.'\n    },\n    'מתנות-ישראליות': {\n      title: 'מתנות ישראליות',\n      description: 'מתנות מעוצבות עם נשמה ישראלית – הבחירה המושלמת לכל אירוע, חג או סתם כי בא לכם.'\n    },\n    'משהו-לבית': {\n      title: 'עיצוב לבית',\n      description: 'פריטי עיצוב מיוחדים לכל פינה בבית – מהסלון ועד המטבח, בסגנון ישראלי ייחודי.'\n    },\n    'מטבח-ושולחן': {\n      title: 'למטבח',\n      description: 'כלי מטבח ושולחן בעיצוב ישראלי – אביזרי בישול, כוסות, צלחות ומגשים שמייפים כל ארוחה.'\n    },\n    'מוצרים-בעבודת-יד': {\n      title: 'לגעת בחומר',\n      description: 'מוצרים בעבודת יד מקרמיקה, בטון, זכוכית ותלת מימד – כשהחומר מדבר בעד עצמו.'\n    }\n  };\n\n  /* ═══════════════════════════════════════════════════════\n     SECTION 3: SORT OPTIONS (Hebrew labels)\n     ═══════════════════════════════════════════════════════ */\n\n  var sortOptions = [\n    { value: 'manual', label: 'מומלצים' },\n    { value: 'best-selling', label: 'נמכרים ביותר' },\n    { value: 'price-ascending', label: 'מחיר: נמוך לגבוה' },\n    { value: 'price-descending', label: 'מחיר: גבוה לנמוך' },\n    { value: 'created-descending', label: 'חדש לישן' },\n    { value: 'created-ascending', label: 'ישן לחדש' },\n    { value: 'title-ascending', label: 'א-ת' },\n    { value: 'title-descending', label: 'ת-א' }\n  ];\n\n  /* ═══════════════════════════════════════════════════════\n     HELPERS\n     ═══════════════════════════════════════════════════════ */\n\n  function getCurrentCollectionHandle() {\n    var path = window.location.pathname;\n    var match = path.match(/\\/collections\\/([^/?#]+)/);\n    if (!match) return null;\n    try {\n      return decodeURIComponent(match[1]).toLowerCase();\n    } catch(e) {\n      return match[1].toLowerCase();\n    }\n  }\n\n  function getCollectionInfo() {\n    var handle = getCurrentCollectionHandle();\n    if (!handle) return null;\n\n    if (collectionData[handle]) return collectionData[handle];\n\n    var found = categories.find(function(cat) {\n      try {\n        return decodeURIComponent(cat.handle).toLowerCase() === handle;\n      } catch(e) {\n        return cat.handle.toLowerCase() === handle;\n      }\n    });\n\n    if (found) return { title: found.name, description: '' };\n\n    return null;\n  }\n\n  function getCurrentSortBy() {\n    var params = new URLSearchParams(window.location.search);\n    return params.get('sort_by') || 'manual';\n  }\n\n  function getFilteredCategories() {\n    var currentHandle = getCurrentCollectionHandle();\n    if (!currentHandle) return categories;\n\n    return categories.filter(function(cat) {\n      try {\n        var decoded = decodeURIComponent(cat.handle).toLowerCase();\n        return decoded !== currentHandle;\n      } catch(e) {\n        return cat.handle.toLowerCase() !== currentHandle;\n      }\n    });\n  }\n\n  /** Reads active filter values from the current URL */\n  function getActiveFilters() {\n    var params = new URLSearchParams(window.location.search);\n    var active = {};\n    params.forEach(function(value, key) {\n      if (key.indexOf('filter.') === 0) {\n        if (!active[key]) active[key] = [];\n        active[key].push(value);\n      }\n    });\n    return active;\n  }\n\n  /** Reads filter groups from the Shopify facet form on the page */\n  function readFilterGroups() {\n    var groups = [];\n    var form = document.querySelector('#facet-form');\n    if (!form) return groups;\n\n    var accordions = form.querySelectorAll('details[id^=\"accordion-filter\"]');\n    accordions.forEach(function(acc) {\n      var titleEl = acc.querySelector('summary .accordion__toggle > span:first-child');\n      var title = titleEl ? titleEl.textContent.trim() : '';\n      if (!title) return;\n\n      var checkboxes = acc.querySelectorAll('.checkbox-list input[type=\"checkbox\"]');\n      if (checkboxes.length > 0) {\n        var options = [];\n        checkboxes.forEach(function(cb) {\n          var label = acc.querySelector('label[for=\"' + cb.id + '\"]');\n          var labelText = label ? label.textContent.trim() : cb.value;\n          options.push({\n            name: cb.name,\n            value: cb.value,\n            label: labelText\n          });\n        });\n        if (options.length > 0) {\n          groups.push({ title: title, type: 'checkbox', options: options });\n        }\n      }\n    });\n\n    return groups;\n  }\n\n  /** Count total active filter params in URL */\n  function countActiveFilters() {\n    var params = new URLSearchParams(window.location.search);\n    var count = 0;\n    params.forEach(function(_, key) {\n      if (key.indexOf('filter.') === 0) count++;\n    });\n    return count;\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     ANALYTICS: INFLUENCED REVENUE TRACKING\n     ═══════════════════════════════════════════════════════ */\n\n  var VR_EXPERIMENT_ID = 'EXPEAE8DFC6';\n  var VR_VARIATION_ID = '1';\n  var vrTrackedEvents = {};\n\n  /** Fire an influenced-revenue event once per interaction type per page view */\n  function trackInfluencedRevenue(interactionType) {\n    if (vrTrackedEvents[interactionType]) return;\n    vrTrackedEvents[interactionType] = true;\n    try {\n      if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n        Variant.publishCustomEvent('influenced-revenue', {\n          experiment_id: VR_EXPERIMENT_ID,\n          variation_id: VR_VARIATION_ID\n        });\n      }\n    } catch(e) { /* fail silently */ }\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     STYLES\n     ═══════════════════════════════════════════════════════ */\n\n  function injectStyles() {\n    if (document.getElementById('vr-collection-styles')) return;\n\n    var css = [\n      'facet-floating-filter { display: none !important; }',\n\n      '#vr-collection-header {',\n      '  direction: rtl;',\n      '  padding: 1.5rem 1.25rem 0;',\n      '  font-family: var(--heading-font-family, \"system_ui\", -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif);',\n      '}',\n      '#vr-collection-header .vr-coll-title {',\n      '  font-size: 1.75rem;',\n      '  font-weight: 400;',\n      '  color: rgb(39, 39, 39);',\n      '  margin: 0 0 0.5rem;',\n      '  line-height: 1.3;',\n      '}',\n      '#vr-collection-header .vr-coll-desc {',\n      '  font-size: 0.875rem;',\n      '  font-weight: 400;',\n      '  color: rgb(105, 114, 123);',\n      '  margin: 0;',\n      '  line-height: 1.6;',\n      '  max-width: 600px;',\n      '}',\n\n      '#vr-sort-filter-bar {',\n      '  direction: rtl;',\n      '  padding: 0.75rem var(--container-gutter, 1.25rem);',\n      '  font-family: var(--text-font-family, inherit);',\n      '}',\n      '#vr-sort-filter-bar .vr-bar-row {',\n      '  display: flex;',\n      '  align-items: center;',\n      '  justify-content: space-between;',\n      '}',\n      '#vr-sort-filter-bar .vr-bar-actions {',\n      '  display: flex;',\n      '  align-items: center;',\n      '  gap: 8px;',\n      '}',\n\n      /* Shared pill button base */\n      '#vr-sort-filter-bar .vr-filter-pill,',\n      '#vr-sort-filter-bar .vr-sort-trigger {',\n      '  display: inline-flex;',\n      '  align-items: center;',\n      '  gap: 5px;',\n      '  padding: 7px 14px;',\n      '  border: 1px solid rgba(39, 39, 39, 0.12);',\n      '  border-radius: var(--rounded-button, 3.75rem);',\n      '  background: none;',\n      '  color: rgb(39, 39, 39);',\n      '  font-size: var(--text-xs, 0.6875rem);',\n      '  font-weight: 400;',\n      '  font-family: inherit;',\n      '  cursor: pointer;',\n      '  white-space: nowrap;',\n      '  line-height: 1;',\n      '  transition: all 0.2s ease;',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-pill:active,',\n      '#vr-sort-filter-bar .vr-sort-trigger:active {',\n      '  background: rgba(39, 39, 39, 0.05);',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-pill svg,',\n      '#vr-sort-filter-bar .vr-sort-trigger svg {',\n      '  width: 12px;',\n      '  height: 12px;',\n      '  flex-shrink: 0;',\n      '}',\n\n      /* Active filter count badge */\n      '#vr-sort-filter-bar .vr-filter-badge {',\n      '  display: inline-flex;',\n      '  align-items: center;',\n      '  justify-content: center;',\n      '  min-width: 16px;',\n      '  height: 16px;',\n      '  border-radius: 50%;',\n      '  background: rgb(39, 39, 39);',\n      '  color: rgb(255, 255, 255);',\n      '  font-size: 9px;',\n      '  font-weight: 700;',\n      '  line-height: 1;',\n      '  padding: 0 4px;',\n      '}',\n\n      /* Dropdown wrapper (shared for both sort and filter) */\n      '#vr-sort-filter-bar .vr-dropdown-wrap {',\n      '  position: relative;',\n      '}',\n\n      /* Dropdown panel (shared design) */\n      '#vr-sort-filter-bar .vr-dropdown {',\n      '  position: absolute;',\n      '  top: calc(100% + 6px);',\n      '  right: 0;',\n      '  background: rgb(255, 255, 255);',\n      '  border-radius: var(--rounded, 0.75rem);',\n      '  box-shadow: var(--shadow-md, 0 5px 30px rgba(39, 39, 39, 0.1));',\n      '  min-width: 200px;',\n      '  z-index: 50;',\n      '  overflow: hidden;',\n      '  opacity: 0;',\n      '  transform: translateY(-4px);',\n      '  pointer-events: none;',\n      '  transition: opacity 0.18s ease, transform 0.18s ease;',\n      '}',\n      '#vr-sort-filter-bar .vr-dropdown[data-visible=\"true\"] {',\n      '  opacity: 1;',\n      '  transform: translateY(0);',\n      '  pointer-events: auto;',\n      '}',\n\n      /* Dropdown items (shared for sort options and filter options) */\n      '#vr-sort-filter-bar .vr-dropdown-option {',\n      '  display: flex;',\n      '  align-items: center;',\n      '  justify-content: space-between;',\n      '  width: 100%;',\n      '  padding: 10px 16px;',\n      '  border: none;',\n      '  background: none;',\n      '  color: rgb(39, 39, 39);',\n      '  font-size: var(--text-xs, 0.6875rem);',\n      '  font-weight: 400;',\n      '  font-family: inherit;',\n      '  cursor: pointer;',\n      '  text-align: right;',\n      '  direction: rtl;',\n      '  transition: background-color 0.12s ease;',\n      '}',\n      '#vr-sort-filter-bar .vr-dropdown-option:active {',\n      '  background: rgba(39, 39, 39, 0.04);',\n      '}',\n      '#vr-sort-filter-bar .vr-dropdown-option[data-active=\"true\"] {',\n      '  font-weight: 700;',\n      '}',\n      '#vr-sort-filter-bar .vr-dropdown-option[data-active=\"true\"]::after {',\n      '  content: \"\";',\n      '  width: 6px;',\n      '  height: 6px;',\n      '  border-radius: 50%;',\n      '  background: rgb(39, 39, 39);',\n      '  flex-shrink: 0;',\n      '}',\n\n      /* Filter dropdown specifics */\n      '#vr-sort-filter-bar .vr-filter-dropdown {',\n      '  max-height: 320px;',\n      '  overflow-y: auto;',\n      '  -webkit-overflow-scrolling: touch;',\n      '  scrollbar-width: thin;',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-group-title {',\n      '  display: block;',\n      '  padding: 10px 16px 4px;',\n      '  font-size: var(--text-xs, 0.6875rem);',\n      '  font-weight: 700;',\n      '  color: rgba(39, 39, 39, 0.45);',\n      '  text-transform: uppercase;',\n      '  letter-spacing: 0.04em;',\n      '  direction: rtl;',\n      '  text-align: right;',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-group-title:not(:first-child) {',\n      '  border-top: 1px solid rgba(39, 39, 39, 0.06);',\n      '  margin-top: 4px;',\n      '  padding-top: 12px;',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-clear {',\n      '  display: flex;',\n      '  align-items: center;',\n      '  justify-content: center;',\n      '  width: 100%;',\n      '  padding: 10px 16px;',\n      '  border: none;',\n      '  border-top: 1px solid rgba(39, 39, 39, 0.06);',\n      '  background: none;',\n      '  color: rgba(39, 39, 39, 0.5);',\n      '  font-size: var(--text-xs, 0.6875rem);',\n      '  font-weight: 400;',\n      '  font-family: inherit;',\n      '  cursor: pointer;',\n      '  text-align: center;',\n      '  direction: rtl;',\n      '  transition: color 0.15s ease;',\n      '}',\n      '#vr-sort-filter-bar .vr-filter-clear:active {',\n      '  color: rgb(39, 39, 39);',\n      '}',\n\n      /* Product count */\n      '.collection__results > .v-stack > .v-stack.md\\\\:hidden > p.text-center { display: none; }',\n      '#vr-sort-filter-bar .vr-product-count {',\n      '  font-size: var(--text-xs, 0.6875rem);',\n      '  color: rgba(39, 39, 39, 0.4);',\n      '  font-weight: 400;',\n      '  margin: 0;',\n      '  line-height: 1;',\n      '}',\n\n      /* Carousel styles */\n      '#' + CAROUSEL_ID + ' {',\n      '  padding: 2rem 0 2.5rem;',\n      '  direction: rtl;',\n      '  font-family: var(--text-font-family, \"system_ui\", -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif);',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-title {',\n      '  font-size: 1.5rem;',\n      '  font-weight: 400;',\n      '  color: rgb(39, 39, 39);',\n      '  margin: 0 0 1.25rem;',\n      '  padding: 0 1.25rem;',\n      '  line-height: 1.3;',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-scroll {',\n      '  display: flex;',\n      '  gap: 12px;',\n      '  overflow-x: auto;',\n      '  scroll-snap-type: x mandatory;',\n      '  -webkit-overflow-scrolling: touch;',\n      '  padding: 0 1.25rem 8px;',\n      '  scrollbar-width: none;',\n      '  -ms-overflow-style: none;',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-scroll::-webkit-scrollbar {',\n      '  display: none;',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-item {',\n      '  flex: 0 0 auto;',\n      '  width: 120px;',\n      '  scroll-snap-align: start;',\n      '  text-decoration: none;',\n      '  display: flex;',\n      '  flex-direction: column;',\n      '  align-items: center;',\n      '  gap: 8px;',\n      '  transition: transform 0.2s ease;',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-item:active {',\n      '  transform: scale(0.96);',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-img-wrap {',\n      '  width: 100px;',\n      '  height: 100px;',\n      '  border-radius: 0.75rem;',\n      '  overflow: hidden;',\n      '  position: relative;',\n      '  background: rgb(242, 242, 242);',\n      '  box-shadow: 0 2px 8px rgba(39, 39, 39, 0.08);',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-img-wrap img {',\n      '  width: 100%;',\n      '  height: 100%;',\n      '  object-fit: cover;',\n      '  display: block;',\n      '  transition: transform 0.3s ease;',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-item:hover .vr-cat-img-wrap img {',\n      '  transform: scale(1.05);',\n      '}',\n      '#' + CAROUSEL_ID + ' .vr-cat-name {',\n      '  font-size: 0.75rem;',\n      '  font-weight: 700;',\n      '  color: rgb(39, 39, 39);',\n      '  text-align: center;',\n      '  line-height: 1.3;',\n      '  max-width: 100%;',\n      '  overflow: hidden;',\n      '  text-overflow: ellipsis;',\n      '  white-space: nowrap;',\n      '}',\n      '@media screen and (min-width: 700px) {',\n      '  #vr-collection-header { padding: 2rem 2rem 0; }',\n      '  #vr-collection-header .vr-coll-title { font-size: 2rem; }',\n      '  #vr-sort-filter-bar { padding: 0.75rem 2rem; }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-scroll {',\n      '    gap: 16px;',\n      '    padding: 0 2rem 8px;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-title {',\n      '    padding: 0 2rem;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-item {',\n      '    width: 140px;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-img-wrap {',\n      '    width: 120px;',\n      '    height: 120px;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-name {',\n      '    font-size: 0.875rem;',\n      '  }',\n      '}',\n      '@media screen and (min-width: 1150px) {',\n      '  #' + CAROUSEL_ID + ' .vr-cat-scroll {',\n      '    gap: 20px;',\n      '    justify-content: center;',\n      '    flex-wrap: wrap;',\n      '    overflow-x: visible;',\n      '    padding: 0 2rem 8px;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-title {',\n      '    text-align: center;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-item {',\n      '    width: 150px;',\n      '  }',\n      '  #' + CAROUSEL_ID + ' .vr-cat-img-wrap {',\n      '    width: 130px;',\n      '    height: 130px;',\n      '  }',\n      '}'\n    ].join('\\n');\n\n    var style = document.createElement('style');\n    style.id = 'vr-collection-styles';\n    style.textContent = css;\n    document.head.appendChild(style);\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     COLLECTION HEADER (title + description)\n     ═══════════════════════════════════════════════════════ */\n\n  function buildCollectionHeader() {\n    if (document.getElementById('vr-collection-header')) return;\n\n    var info = getCollectionInfo();\n    if (!info) return;\n\n    var headerHTML = '<div id=\"vr-collection-header\">' +\n      '<h1 class=\"vr-coll-title\">' + info.title + '</h1>' +\n      (info.description ? '<p class=\"vr-coll-desc\">' + info.description + '</p>' : '') +\n      '</div>';\n\n    var collectionResults = document.querySelector('.collection__results');\n    if (collectionResults) {\n      collectionResults.insertAdjacentHTML('beforebegin', headerHTML);\n    }\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     INLINE SORT / FILTER BAR\n     ═══════════════════════════════════════════════════════ */\n\n  function buildSortFilterBar() {\n    if (document.getElementById('vr-sort-filter-bar')) return;\n\n    var currentSort = getCurrentSortBy();\n    var activeFilters = getActiveFilters();\n    var filterCount = countActiveFilters();\n\n    var productCountEl = document.querySelector('.collection__results .text-center');\n    var productCountText = productCountEl ? productCountEl.textContent.trim() : '';\n\n    var filterIcon = '<svg fill=\"none\" focusable=\"false\" width=\"12\" height=\"12\" viewBox=\"0 0 20 14\">' +\n      '<path d=\"M1 2C0.447715 2 0 2.44772 0 3C0 3.55228 0.447715 4 1 4V2ZM1 4H5V2H1V4Z\" fill=\"currentColor\"/>' +\n      '<path d=\"M1 10C0.447715 10 0 10.4477 0 11C0 11.5523 0.447715 12 1 12V10ZM1 12H11V10H1V12Z\" fill=\"currentColor\"/>' +\n      '<path d=\"M10 2H9V4H10V2ZM19 4C19.5523 4 20 3.55228 20 3C20 2.44772 19.5523 2 19 2V4ZM10 4H19V2H10V4Z\" fill=\"currentColor\"/>' +\n      '<path d=\"M16 10H15V12H16V10ZM19 12C19.5523 12 20 11.5523 20 11C20 10.4477 19.5523 10 19 10V12ZM16 12H19V10H16V12Z\" fill=\"currentColor\"/>' +\n      '<circle cx=\"7\" cy=\"3\" r=\"2\" stroke=\"currentColor\"/>' +\n      '<circle cx=\"13\" cy=\"11\" r=\"2\" stroke=\"currentColor\"/>' +\n      '</svg>';\n\n    var sortIcon = '<svg fill=\"none\" focusable=\"false\" width=\"12\" height=\"12\" viewBox=\"0 0 14 14\">' +\n      '<path d=\"M4 1v10M4 1L1.5 3.5M4 1l2.5 2.5\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>' +\n      '<path d=\"M10 13V3M10 13l2.5-2.5M10 13L7.5 10.5\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>' +\n      '</svg>';\n\n    /* Build filter dropdown content dynamically from the facet form */\n    var filterGroups = readFilterGroups();\n    var filterDropdownHTML = '';\n\n    filterGroups.forEach(function(group) {\n      filterDropdownHTML += '<span class=\"vr-filter-group-title\">' + group.title + '</span>';\n      group.options.forEach(function(opt) {\n        var isActive = activeFilters[opt.name] && activeFilters[opt.name].indexOf(opt.value) !== -1;\n        filterDropdownHTML += '<button type=\"button\" class=\"vr-dropdown-option vr-filter-option\" ' +\n          'data-filter-name=\"' + opt.name + '\" ' +\n          'data-filter-value=\"' + opt.value.replace(/\"/g, '&quot;') + '\"' +\n          (isActive ? ' data-active=\"true\"' : '') + '>' +\n          opt.label + '</button>';\n      });\n    });\n\n    if (filterCount > 0) {\n      filterDropdownHTML += '<button type=\"button\" class=\"vr-filter-clear\" id=\"vr-filter-clear\">נקה הכל</button>';\n    }\n\n    /* Build sort dropdown */\n    var sortOptionsHTML = sortOptions.map(function(opt) {\n      var isActive = opt.value === currentSort ? ' data-active=\"true\"' : '';\n      return '<button type=\"button\" class=\"vr-dropdown-option vr-sort-option\" data-sort=\"' + opt.value + '\"' + isActive + '>' + opt.label + '</button>';\n    }).join('');\n\n    var filterBadge = filterCount > 0 ? '<span class=\"vr-filter-badge\">' + filterCount + '</span>' : '';\n\n    var barHTML = '<div id=\"vr-sort-filter-bar\">' +\n      '<div class=\"vr-bar-row\">' +\n        '<div class=\"vr-bar-actions\">' +\n\n          /* Filter dropdown */\n          '<div class=\"vr-dropdown-wrap\">' +\n            '<button type=\"button\" class=\"vr-filter-pill\" id=\"vr-filter-trigger\">' +\n              filterIcon +\n              '<span>סינון</span>' +\n              filterBadge +\n            '</button>' +\n            '<div class=\"vr-dropdown vr-filter-dropdown\" id=\"vr-filter-dropdown\">' +\n              filterDropdownHTML +\n            '</div>' +\n          '</div>' +\n\n          /* Sort dropdown */\n          '<div class=\"vr-dropdown-wrap\">' +\n            '<button type=\"button\" class=\"vr-sort-trigger\" id=\"vr-sort-trigger\">' +\n              sortIcon +\n              '<span>מיון</span>' +\n            '</button>' +\n            '<div class=\"vr-dropdown\" id=\"vr-sort-dropdown\">' +\n              sortOptionsHTML +\n            '</div>' +\n          '</div>' +\n\n        '</div>' +\n        (productCountText ? '<p class=\"vr-product-count\">' + productCountText + '</p>' : '') +\n      '</div>' +\n      '</div>';\n\n    var collectionResults = document.querySelector('.collection__results');\n    if (collectionResults) {\n      collectionResults.insertAdjacentHTML('beforebegin', barHTML);\n    }\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     EVENT WIRING\n     ═══════════════════════════════════════════════════════ */\n\n  /** Closes all open dropdowns */\n  function closeAllDropdowns() {\n    document.querySelectorAll('#vr-sort-filter-bar .vr-dropdown').forEach(function(dd) {\n      dd.setAttribute('data-visible', 'false');\n    });\n  }\n\n  /** Sets up toggle behavior for a trigger + dropdown pair */\n  function setupDropdownToggle(triggerId, dropdownId) {\n    var trigger = document.getElementById(triggerId);\n    var dropdown = document.getElementById(dropdownId);\n    if (!trigger || !dropdown) return;\n\n    trigger.addEventListener('click', function(e) {\n      e.stopPropagation();\n      var isOpen = dropdown.getAttribute('data-visible') === 'true';\n      closeAllDropdowns();\n      if (!isOpen) {\n        dropdown.setAttribute('data-visible', 'true');\n      }\n    });\n  }\n\n  function wireEvents() {\n    /* Sort dropdown toggle */\n    setupDropdownToggle('vr-sort-trigger', 'vr-sort-dropdown');\n\n    /* Filter dropdown toggle */\n    setupDropdownToggle('vr-filter-trigger', 'vr-filter-dropdown');\n\n    /* Close dropdowns on outside click */\n    document.addEventListener('click', function(e) {\n      var bar = document.getElementById('vr-sort-filter-bar');\n      if (bar && !bar.contains(e.target)) {\n        closeAllDropdowns();\n      }\n    });\n\n    /* Sort option clicks */\n    var sortDropdown = document.getElementById('vr-sort-dropdown');\n    if (sortDropdown) {\n      sortDropdown.querySelectorAll('.vr-sort-option').forEach(function(option) {\n        option.addEventListener('click', function() {\n          var sortValue = this.getAttribute('data-sort');\n          if (!sortValue) return;\n\n          trackInfluencedRevenue('sort-click');\n\n          var url = new URL(window.location.href);\n          if (sortValue === 'manual') {\n            url.searchParams.delete('sort_by');\n          } else {\n            url.searchParams.set('sort_by', sortValue);\n          }\n          url.searchParams.delete('page');\n          window.location.href = url.toString();\n        });\n      });\n    }\n\n    /* Filter option clicks (toggle filter param and reload) */\n    var filterDropdown = document.getElementById('vr-filter-dropdown');\n    if (filterDropdown) {\n      filterDropdown.querySelectorAll('.vr-filter-option').forEach(function(option) {\n        option.addEventListener('click', function() {\n          var filterName = this.getAttribute('data-filter-name');\n          var filterValue = this.getAttribute('data-filter-value');\n          if (!filterName || !filterValue) return;\n\n          trackInfluencedRevenue('filter-click');\n\n          var url = new URL(window.location.href);\n          var params = url.searchParams;\n          var allValues = params.getAll(filterName);\n          var isActive = allValues.indexOf(filterValue) !== -1;\n\n          params.delete(filterName);\n\n          if (isActive) {\n            allValues.forEach(function(v) {\n              if (v !== filterValue) params.append(filterName, v);\n            });\n          } else {\n            allValues.forEach(function(v) { params.append(filterName, v); });\n            params.append(filterName, filterValue);\n          }\n\n          params.delete('page');\n          window.location.href = url.toString();\n        });\n      });\n\n      /* Clear all filters */\n      var clearBtn = document.getElementById('vr-filter-clear');\n      if (clearBtn) {\n        clearBtn.addEventListener('click', function() {\n          var url = new URL(window.location.href);\n          var keysToDelete = [];\n          url.searchParams.forEach(function(_, key) {\n            if (key.indexOf('filter.') === 0) keysToDelete.push(key);\n          });\n          keysToDelete.forEach(function(key) { url.searchParams.delete(key); });\n          url.searchParams.delete('page');\n          window.location.href = url.toString();\n        });\n      }\n    }\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     CATEGORY CAROUSEL (bottom of page)\n     ═══════════════════════════════════════════════════════ */\n\n  function buildCarousel() {\n    if (document.getElementById(CAROUSEL_ID)) return;\n\n    var filtered = getFilteredCategories();\n    if (filtered.length === 0) return;\n\n    var itemsHTML = filtered.map(function(cat) {\n      var url = '/collections/' + cat.handle;\n      return '<a href=\"' + url + '\" class=\"vr-cat-item\">' +\n        '<div class=\"vr-cat-img-wrap\">' +\n          '<img src=\"' + cat.image + '\" alt=\"' + cat.name + '\" loading=\"lazy\" width=\"400\" height=\"400\">' +\n        '</div>' +\n        '<span class=\"vr-cat-name\">' + cat.name + '</span>' +\n      '</a>';\n    }).join('');\n\n    var html = '<div id=\"' + CAROUSEL_ID + '\">' +\n      '<h2 class=\"vr-cat-title\">גלו עוד קטגוריות</h2>' +\n      '<div class=\"vr-cat-scroll\">' + itemsHTML + '</div>' +\n    '</div>';\n\n    var insertionPoint = document.querySelector('.collection__pagination');\n    if (insertionPoint) {\n      insertionPoint.insertAdjacentHTML('afterend', html);\n      return;\n    }\n\n    var productList = document.querySelector('product-list');\n    if (productList) {\n      var parent = productList.closest('.collection__results') || productList.parentElement;\n      if (parent) {\n        parent.insertAdjacentHTML('beforeend', html);\n        return;\n      }\n    }\n\n    var collectionSection = document.querySelector('.shopify-section--main-collection');\n    if (collectionSection) {\n      collectionSection.insertAdjacentHTML('beforeend', html);\n    }\n  }\n\n  /** Tracks carousel category clicks and carousel scroll for influenced revenue */\n  function wireCarouselTracking() {\n    /* Category card clicks — uses preventDefault pattern since links navigate */\n    var cards = document.querySelectorAll('#' + CAROUSEL_ID + ' .vr-cat-item');\n    cards.forEach(function(card) {\n      card.addEventListener('click', function(e) {\n        e.preventDefault();\n        var destinationUrl = card.href;\n\n        var safetyTimeout = setTimeout(function() {\n          window.location.href = destinationUrl;\n        }, 2000);\n\n        trackInfluencedRevenue('carousel-click');\n\n        clearTimeout(safetyTimeout);\n        window.location.href = destinationUrl;\n      });\n    });\n\n    /* Scroll interaction — fires once when user scrolls the carousel */\n    var scrollEl = document.querySelector('#' + CAROUSEL_ID + ' .vr-cat-scroll');\n    if (scrollEl) {\n      scrollEl.addEventListener('scroll', function() {\n        trackInfluencedRevenue('carousel-scroll');\n      }, { passive: true });\n    }\n  }\n\n  /* ═══════════════════════════════════════════════════════\n     INIT\n     ═══════════════════════════════════════════════════════ */\n\n  function init() {\n    try {\n      injectStyles();\n      buildCollectionHeader();\n      buildSortFilterBar();\n      wireEvents();\n      buildCarousel();\n      wireCarouselTracking();\n    } catch(e) {\n      /* fail silently */\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();"}]},"exp-EXP49AF79A0":{"defaultValue":"","rules":[{"id":"winner-deployed-1776680745789","condition":{"deviceType":"mobile"},"force":"(function () {\n  'use strict';\n\n  // ============================================================\n  // PART 1: Category Swatch Carousel\n  // ============================================================\n\n  var SWATCH_ID = 'vrt-category-swatches';\n  var SWATCH_STYLE_ID = 'vrt-category-swatches-styles';\n\n  var CATEGORIES = [\n    { name: 'בסט סלרס', url: '/collections/bestsellers', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web10_e672d131-0012-40f9-929a-9fd9778a0eb6.jpg?v=1732561152&width=200' },\n    { name: 'קרמיקה', url: '/collections/%D7%A7%D7%A8%D7%9E%D7%99%D7%A7%D7%94', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web9_6c3aeba3-4bba-4f9a-9156-05b899fe0c08.jpg?v=1732560369&width=200' },\n    { name: 'יודאיקה', url: '/collections/judaica', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web6.jpg?v=1732560589&width=200' },\n    { name: 'ספרים', url: '/collections/books', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web7_48bcc667-00d4-4cb7-a923-a2203c0b4655.jpg?v=1732560622&width=200' },\n    { name: 'מוצרי נייר', url: '/collections/papergoods', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web8_f59ff7c0-7e5f-4141-b350-d8ab5de11a3a.jpg?v=1732560668&width=200' },\n    { name: 'ילדים', url: '/collections/kids', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web2.jpg?v=1732561109&width=200' },\n    { name: 'הדפסים', url: '/collections/prints', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web4_494f22ea-ec4a-4ab0-805c-d3212b08b7e2.jpg?v=1732561077&width=200' },\n    { name: 'לבית', url: '/collections/%D7%9E%D7%A9%D7%94%D7%95-%D7%9C%D7%91%D7%99%D7%AA', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web_1a8e19a6-b97c-447c-9924-40ea2335ea45.jpg?v=1732561011&width=200' },\n    { name: 'לקיר', url: '/collections/wall', image: 'https://asufadesign.co.il/cdn/shop/files/icons_web5_659aced3-9639-4e93-b60b-dcd80f6a9a3b.jpg?v=1732561124&width=200' }\n  ];\n\n  function injectSwatchStyles() {\n    if (document.getElementById(SWATCH_STYLE_ID)) return;\n    var style = document.createElement('style');\n    style.id = SWATCH_STYLE_ID;\n    style.textContent =\n      '#' + SWATCH_ID + '{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding:18px 16px 14px;border-bottom:1px solid #f2f2f8;direction:rtl;gap:0 13px;background:#fff;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}' +\n      '#' + SWATCH_ID + '::-webkit-scrollbar{display:none}' +\n      '#' + SWATCH_ID + ' .vrt-sw-item{flex:0 0 calc((100vw - 84px) / 4.333);display:flex;flex-direction:column;align-items:center;text-decoration:none;gap:6px;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}' +\n      '#' + SWATCH_ID + ' .vrt-sw-img{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:transparent;transition:transform .15s ease;will-change:transform;box-shadow:none}' +\n      '#' + SWATCH_ID + ' .vrt-sw-item:active .vrt-sw-img{transform:scale(.9)}' +\n      '#' + SWATCH_ID + ' .vrt-sw-img img{width:100%;height:100%;object-fit:cover;display:block}' +\n      '#' + SWATCH_ID + ' .vrt-sw-label{font-size:12px;font-weight:500;color:#272727;text-align:center;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif}';\n    document.head.appendChild(style);\n  }\n\n  function createSwatchCarousel() {\n    var carousel = document.createElement('div');\n    carousel.id = SWATCH_ID;\n    CATEGORIES.forEach(function (cat) {\n      var link = document.createElement('a');\n      link.href = cat.url;\n      link.className = 'vrt-sw-item';\n      link.setAttribute('aria-label', cat.name);\n      var imgWrap = document.createElement('div');\n      imgWrap.className = 'vrt-sw-img';\n      var img = document.createElement('img');\n      img.src = cat.image;\n      img.alt = cat.name;\n      img.loading = 'eager';\n      img.width = 75;\n      img.height = 75;\n      imgWrap.appendChild(img);\n      var label = document.createElement('span');\n      label.className = 'vrt-sw-label';\n      label.textContent = cat.name;\n      link.appendChild(imgWrap);\n      link.appendChild(label);\n      carousel.appendChild(link);\n    });\n    return carousel;\n  }\n\n  function initCarousel() {\n    if (document.getElementById(SWATCH_ID)) return true;\n    var navList = document.querySelector('.navigation__tier-1');\n    if (!navList || !navList.parentElement) return false;\n    try {\n      injectSwatchStyles();\n      var carousel = createSwatchCarousel();\n      navList.parentElement.insertBefore(carousel, navList);\n      navList.style.paddingTop = '12px';\n    } catch (e) {\n      return false;\n    }\n    return true;\n  }\n\n  // ============================================================\n  // PART 2: Rebuild Mobile Menu to Match Desktop Navigation\n  // ============================================================\n\n  var MENU_REBUILD_FLAG = 'vrt-menu-rebuilt';\n  var MENU_STYLE_ID = 'vrt-mobile-menu-styles';\n\n  // Desktop menu structure mapped to mobile format\n  var DESKTOP_MENU = [\n    {\n      label: 'מתנות',\n      url: '/collections/%D7%97%D7%93%D7%A9-copy',\n      subgroups: [\n        {\n          title: 'לפי המקבל',\n          titleUrl: '/',\n          items: [\n            { text: 'מתנות לאישה', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%90%D7%99%D7%A9%D7%94' },\n            { text: 'מתנות לגבר', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%92%D7%91%D7%A8-1' },\n            { text: 'מתנות לנוער', url: '/' },\n            { text: 'מתנות לילדים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%A0%D7%95%D7%A2%D7%A8-copy' },\n            { text: 'מתנות לכל המשפחה', url: '/' },\n            { text: 'מתנות לחברים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%97%D7%91%D7%A8%D7%99%D7%9D' }\n          ]\n        },\n        {\n          title: 'לפי אירוע',\n          titleUrl: '/',\n          items: [\n            { text: 'יום הולדת', url: '/collections/%D7%97%D7%95%D7%95%D7%99%D7%95%D7%AA-%D7%95%D7%A1%D7%93%D7%A0%D7%90%D7%95%D7%AA-copy' },\n            { text: 'יום נישואין', url: '/collections/%D7%99%D7%95%D7%9D-%D7%A0%D7%99%D7%A9%D7%95%D7%90%D7%99%D7%9F' },\n            { text: 'יום האם', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-copy' },\n            { text: 'יום המשפחה', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%9E%D7%A9%D7%A4%D7%97%D7%94' },\n            { text: 'אירוסין וחתונה', url: '/collections/%D7%9C%D7%90%D7%99%D7%A8%D7%95%D7%A1%D7%99%D7%9F-%D7%95%D7%97%D7%AA%D7%95%D7%A0%D7%94' },\n            { text: 'לאירוע', url: '/collections/%D7%90%D7%99%D7%A8%D7%95%D7%A1%D7%99%D7%9F-%D7%95%D7%97%D7%AA%D7%95%D7%A0%D7%94-copy' },\n            { text: 'סיום לימודים', url: '/collections/%D7%9C%D7%90%D7%99%D7%A8%D7%95%D7%A1%D7%99%D7%9F-%D7%95%D7%97%D7%AA%D7%95%D7%A0%D7%94-copy' },\n            { text: 'מתנות לידה', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%99%D7%93%D7%94' },\n            { text: 'חנוכת בית', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%99%D7%93%D7%94-copy' },\n            { text: 'מתנות תודה', url: '/collections/%D7%97%D7%A0%D7%95%D7%9B%D7%AA-%D7%91%D7%99%D7%AA-copy' }\n          ]\n        },\n        {\n          title: 'לפי תחומי עניין',\n          titleUrl: '/',\n          items: [\n            { text: 'ספרים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%A1%D7%A4%D7%A8%D7%99%D7%9D' },\n            { text: 'הכי ישראלי', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%94%D7%9B%D7%99-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99' },\n            { text: 'אוכל ובישול', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%90%D7%95%D7%9B%D7%9C-%D7%95%D7%91%D7%99%D7%A9%D7%95%D7%9C' },\n            { text: 'משחקים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9E%D7%A9%D7%97%D7%A7%D7%99%D7%9D' },\n            { text: 'diy', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-diy' },\n            { text: 'ספורט ותנועה', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%A1%D7%A4%D7%95%D7%A8%D7%98-%D7%95%D7%AA%D7%A0%D7%95%D7%A2%D7%94' },\n            { text: 'בריאות וחיים טובים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%91%D7%A8%D7%99%D7%90%D7%95%D7%AA-%D7%95%D7%97%D7%99%D7%99%D7%9D-%D7%98%D7%95%D7%91%D7%99%D7%9D' },\n            { text: 'עולם המוזיקה', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%A2%D7%95%D7%9C%D7%9D-%D7%94%D7%9E%D7%95%D7%96%D7%99%D7%A7%D7%94' },\n            { text: 'אנשים של בעלי חיים', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%90%D7%A0%D7%A9%D7%99%D7%9D-%D7%A9%D7%9C-%D7%91%D7%A2%D7%9C%D7%99-%D7%97%D7%99%D7%99%D7%9D' }\n          ]\n        },\n        {\n          title: 'לפי מחיר',\n          titleUrl: '/',\n          items: [\n            { text: 'מתנות עד 200', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%9C%D7%97%D7%91%D7%A8%D7%99%D7%9D-copy' },\n            { text: 'מתנות בין 200-300', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%A2%D7%93-200-copy' },\n            { text: 'מתנות בין 300-500', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%91%D7%99%D7%9F-200-300-copy' },\n            { text: 'מתנות מעל 500', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%91%D7%99%D7%9F-300-500-copy' }\n          ]\n        },\n        {\n          title: 'כל המתנות',\n          titleUrl: '/collections/%D7%97%D7%93%D7%A9-copy',\n          items: [\n            { text: 'בסט סלרס', url: '/collections/%D7%97%D7%96%D7%A8-%D7%9C%D7%9E%D7%9C%D7%90%D7%99-copy' },\n            { text: 'מיוצר בישראל', url: '/collections/%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%A1%D7%A4%D7%99%D7%99%D7%A9%D7%9C-copy' },\n            { text: 'גיפט קארד', url: 'https://valuecard.co.il/GiftCards/Asufa#Welcome' }\n          ]\n        }\n      ]\n    },\n    {\n      label: 'יום הולדת',\n      url: '/collections/%D7%97%D7%95%D7%95%D7%99%D7%95%D7%AA-%D7%95%D7%A1%D7%93%D7%A0%D7%90%D7%95%D7%AA-copy',\n      subgroups: [\n        {\n          title: 'לפי תחומי עניין',\n          titleUrl: '/',\n          items: [\n            { text: 'ספרים', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%A1%D7%A4%D7%A8%D7%99%D7%9D' },\n            { text: 'מוצרי טיפוח', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9E%D7%95%D7%A6%D7%A8%D7%99-%D7%98%D7%99%D7%A4%D7%95%D7%97' },\n            { text: 'הכי ישראלי', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%94%D7%9B%D7%99-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99' },\n            { text: 'אוכל ובישול', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%90%D7%95%D7%9B%D7%9C-%D7%95%D7%91%D7%99%D7%A9%D7%95%D7%9C' },\n            { text: 'משחקים', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9E%D7%A9%D7%97%D7%A7%D7%99%D7%9D' },\n            { text: 'diy', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%A2%D7%91%D7%95%D7%93%D7%AA-%D7%99%D7%93' }\n          ]\n        },\n        {\n          title: 'לפי המקבל',\n          titleUrl: '/',\n          items: [\n            { text: 'אמא', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%90%D7%9E%D7%90' },\n            { text: 'אבא', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%90%D7%91%D7%90' },\n            { text: 'אישה', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9C%D7%90%D7%99%D7%A9%D7%94' },\n            { text: 'גבר', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9C%D7%92%D7%91%D7%A8' },\n            { text: 'נוער', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9C%D7%A0%D7%A2%D7%A8-%D7%94' },\n            { text: 'ילדים', url: '/collections/%D7%99%D7%95%D7%9D-%D7%94%D7%95%D7%9C%D7%93%D7%AA-%D7%9C%D7%99%D7%9C%D7%93-%D7%94' },\n            { text: 'תינוק חדש', url: '/collections/%D7%AA%D7%99%D7%A0%D7%95%D7%A7-%D7%97%D7%93%D7%A9' }\n          ]\n        },\n        {\n          title: 'המתנות הכי נמכרות',\n          titleUrl: '/collections/%D7%94%D7%9E%D7%AA%D7%A0%D7%95%D7%AA-%D7%94%D7%9B%D7%99-%D7%A0%D7%9E%D7%9B%D7%A8%D7%95%D7%AA',\n          items: []\n        }\n      ]\n    },\n    {\n      label: 'תחומי עניין',\n      url: '/',\n      subgroups: [\n        {\n          title: 'ספרים',\n          titleUrl: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D-1',\n          items: [\n            { text: 'ספרים לילדים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'ספרי עיצוב', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D' },\n            { text: 'ספרי בישול', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%91%D7%99%D7%A9%D7%95%D7%9C' },\n            { text: 'ספרי מתנה', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99-%D7%9E%D7%AA%D7%A0%D7%94' }\n          ]\n        },\n        {\n          title: 'מוצרי נייר',\n          titleUrl: '/collections/%D7%9E%D7%95%D7%A6%D7%A8%D7%99-%D7%A0%D7%99%D7%99%D7%A8',\n          items: [\n            { text: 'מוצרי נייר', url: '/collections/%D7%9E%D7%95%D7%A6%D7%A8%D7%99-%D7%A0%D7%99%D7%99%D7%A8' },\n            { text: 'מחברות וניירות', url: '/collections/%D7%9E%D7%97%D7%91%D7%A8%D7%95%D7%AA-%D7%95%D7%A0%D7%99%D7%99%D7%A8%D7%95%D7%AA' },\n            { text: 'כלי כתיבה', url: '/collections/%D7%9B%D7%9C%D7%99-%D7%9B%D7%AA%D7%99%D7%91%D7%94' }\n          ]\n        },\n        {\n          title: 'כל מיני',\n          titleUrl: '/',\n          items: [\n            { text: 'מוצרי טיפוח', url: '/collections/%D7%9E%D7%95%D7%A6%D7%A8%D7%99-%D7%98%D7%99%D7%A4%D7%95%D7%97' },\n            { text: 'הכי ישראלי', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D-copy' },\n            { text: 'אוכל ובישול', url: '/collections/%D7%94%D7%9B%D7%99-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99-copy' },\n            { text: 'משחקים', url: '/collections/%D7%90%D7%95%D7%9B%D7%9C-%D7%95%D7%91%D7%99%D7%A9%D7%95%D7%9C-copy' },\n            { text: 'diy', url: '/collections/%D7%9E%D7%A9%D7%97%D7%A7%D7%99%D7%9D-copy' }\n          ]\n        }\n      ]\n    },\n    {\n      label: 'בשבילה',\n      url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D',\n      subgroups: [\n        {\n          title: 'לפי תחומי עניין',\n          titleUrl: '/',\n          items: [\n            { text: 'טיפוח ובריאות', url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D-%D7%98%D7%99%D7%A4%D7%95%D7%97-%D7%95%D7%91%D7%A8%D7%99%D7%90%D7%95%D7%AA' },\n            { text: 'ארומתרפיה', url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D-%D7%90%D7%A8%D7%95%D7%9E%D7%AA%D7%A8%D7%A4%D7%99%D7%94' },\n            { text: 'ספורט ותנועה', url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D-%D7%A1%D7%A4%D7%95%D7%A8%D7%98-%D7%95%D7%AA%D7%A0%D7%95%D7%A2%D7%94' },\n            { text: 'diy', url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D-diy' },\n            { text: 'ספרים', url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D-%D7%A1%D7%A4%D7%A8%D7%99%D7%9D' }\n          ]\n        },\n        {\n          title: 'לפי המקבלת',\n          titleUrl: '/',\n          items: [\n            { text: 'אמא', url: '/collections/%D7%90%D7%9E%D7%90' },\n            { text: 'בת זוג', url: '/collections/%D7%91%D7%AA-%D7%96%D7%95%D7%92' },\n            { text: 'חברה', url: '/collections/%D7%97%D7%91%D7%A8%D7%94' },\n            { text: 'סבתא', url: '/collections/%D7%A1%D7%91%D7%AA%D7%90' }\n          ]\n        }\n      ]\n    },\n    {\n      label: 'בשבילו',\n      url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D',\n      subgroups: [\n        {\n          title: 'לפי תחומי עניין',\n          titleUrl: '/',\n          items: [\n            { text: 'בריאות וטיפוח', url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D-%D7%91%D7%A8%D7%99%D7%90%D7%95%D7%AA-%D7%95%D7%98%D7%99%D7%A4%D7%95%D7%97' },\n            { text: 'ארומתרפיה', url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D-%D7%90%D7%A8%D7%95%D7%9E%D7%AA%D7%A8%D7%A4%D7%99%D7%94' },\n            { text: 'ספורט ותנועה', url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D-%D7%A1%D7%A4%D7%95%D7%A8%D7%98-%D7%95%D7%AA%D7%A0%D7%95%D7%A2%D7%94' },\n            { text: 'ספרים', url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D-%D7%A1%D7%A4%D7%A8%D7%99%D7%9D' }\n          ]\n        },\n        {\n          title: 'לפי המקבל',\n          titleUrl: '/',\n          items: [\n            { text: 'אבא', url: '/collections/%D7%90%D7%91%D7%90' },\n            { text: 'בן זוג', url: '/collections/%D7%91%D7%9F-%D7%96%D7%95%D7%92' },\n            { text: 'חבר', url: '/collections/%D7%97%D7%91%D7%A8' },\n            { text: 'סבא', url: '/collections/%D7%A1%D7%91%D7%90' }\n          ]\n        }\n      ]\n    },\n    {\n      label: 'ילדים',\n      url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D',\n      subgroups: [\n        {\n          title: 'לפי תחומי עניין',\n          titleUrl: '/',\n          items: [\n            { text: 'מוזיקה', url: '/collections/%D7%9E%D7%95%D7%96%D7%99%D7%A7%D7%94-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'מדע וטכנולוגיה', url: '/collections/%D7%9E%D7%93%D7%A2-%D7%95%D7%98%D7%9B%D7%A0%D7%95%D7%9C%D7%95%D7%92%D7%99%D7%94-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'ספורט ומשחקי חוץ', url: '/collections/%D7%A1%D7%A4%D7%95%D7%A8%D7%98-%D7%95%D7%9E%D7%A9%D7%97%D7%A7%D7%99-%D7%97%D7%95%D7%A5-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'בעלי חיים', url: '/collections/%D7%91%D7%A2%D7%9C%D7%99-%D7%97%D7%99%D7%99%D7%9D-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'ספרים', url: '/collections/%D7%A1%D7%A4%D7%A8%D7%99%D7%9D-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'diy', url: '/collections/%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D-diy' }\n          ]\n        },\n        {\n          title: 'לפי המקבל',\n          titleUrl: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D',\n          items: [\n            { text: 'הכל לילדים', url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D' },\n            { text: 'הכל לנוער', url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%A0%D7%95%D7%A2%D7%A8' },\n            { text: 'תינוקות', url: '/' },\n            { text: 'פעוטות', url: '/' },\n            { text: 'גיל הגן', url: '/' },\n            { text: 'בית ספר', url: '/' }\n          ]\n        },\n        {\n          title: 'בנים',\n          titleUrl: '/collections/%D7%91%D7%A0%D7%99%D7%9D',\n          items: []\n        },\n        {\n          title: 'בנות',\n          titleUrl: '/collections/%D7%91%D7%A0%D7%95%D7%AA',\n          items: []\n        }\n      ]\n    },\n    {\n      label: 'עיצוב הבית',\n      url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%91%D7%99%D7%AA-%D7%95%D7%9C%D7%92%D7%99%D7%A0%D7%94',\n      subgroups: [\n        {\n          title: 'עיצוב הבית',\n          titleUrl: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%91%D7%99%D7%AA-%D7%95%D7%9C%D7%92%D7%99%D7%A0%D7%94',\n          items: [\n            { text: 'שעונים', url: '/collections/%D7%A9%D7%A2%D7%95%D7%A0%D7%99%D7%9D-1' },\n            { text: 'דקורציה לבית', url: '/collections/%D7%93%D7%A7%D7%95%D7%A8%D7%A6%D7%99%D7%94-%D7%9C%D7%91%D7%99%D7%AA' },\n            { text: 'אגרטלים וצמחים', url: '/collections/%D7%90%D7%92%D7%A8%D7%98%D7%9C%D7%99%D7%9D-%D7%95%D7%A6%D7%9E%D7%97%D7%99%D7%9D' },\n            { text: 'אומנות לקיר', url: '/collections/%D7%90%D7%95%D7%9E%D7%A0%D7%95%D7%AA-%D7%9C%D7%A7%D7%99%D7%A8' },\n            { text: 'מוביילים', url: '/collections/%D7%9E%D7%95%D7%91%D7%99%D7%99%D7%9C%D7%99%D7%9D' },\n            { text: 'נרות ומפיצים', url: '/collections/%D7%A0%D7%A8%D7%95%D7%AA-%D7%95%D7%9E%D7%A4%D7%99%D7%A6%D7%99%D7%9D' }\n          ]\n        }\n      ]\n    }\n  ];\n\n  var CHEVRON_LEFT_SVG = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"opacity: 0.5; flex-shrink: 0;\"><polyline points=\"15 18 9 12 15 6\"></polyline></svg>';\n  var CHEVRON_RIGHT_SVG = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"></polyline></svg>';\n  var CLOSE_SVG = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>';\n\n  function injectMenuStyles() {\n    if (document.getElementById(MENU_STYLE_ID)) return;\n    var s = document.createElement('style');\n    s.id = MENU_STYLE_ID;\n    s.textContent =\n      '.vrt-mn-item{border-bottom:1px solid #f2f2f8;position:relative}' +\n      '.vrt-mn-trigger{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;color:#272727;font-size:17px;font-weight:400;text-decoration:none;background:none;border:none;width:100%;cursor:pointer;transition:background-color .2s;text-align:right;letter-spacing:.01em;line-height:1.4;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif}' +\n      '.vrt-mn-trigger:active{background:rgba(39,39,39,.03)}' +\n      '.vrt-mn-sub{position:fixed;top:0;right:0;width:100%;height:100%;background:#fff;transform:translateX(-100%);transition:transform .3s ease-in-out;z-index:10;display:flex;flex-direction:column;overflow:hidden}' +\n      '.vrt-mn-sub.is-open{transform:translateX(0)}' +\n      '.vrt-mn-sub-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:none;background:#fff;flex-shrink:0;z-index:10}' +\n      '.vrt-mn-back,.vrt-mn-close{background:none;border:none;color:#272727;cursor:pointer;padding:8px;margin:-8px;display:flex;align-items:center}' +\n      '.vrt-mn-sub-title{font-size:18px;font-weight:700;color:#272727;flex:1;text-align:center}' +\n      '.vrt-mn-tabs{display:flex;overflow-x:auto;gap:0;padding:0 16px;border-bottom:1px solid #f2f2f8;background:#fff;flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;direction:rtl}' +\n      '.vrt-mn-tabs::-webkit-scrollbar{display:none}' +\n      '.vrt-mn-tab{flex:0 0 auto;padding:12px 14px;font-size:14px;font-weight:400;color:#69727b;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .2s,border-color .2s;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;-webkit-tap-highlight-color:transparent}' +\n      '.vrt-mn-tab.is-active{color:#272727;font-weight:600;border-bottom-color:#272727}' +\n      '.vrt-mn-tab-content{display:none}' +\n      '.vrt-mn-tab-content.is-active{display:block}' +\n      '.vrt-mn-content-wrap{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}' +\n      '.vrt-mn-sub-list{list-style:none;margin:0;padding:12px 0}' +\n      '.vrt-mn-sub-link{display:block;padding:14px 20px;color:#272727;font-size:16px;font-weight:400;text-decoration:none;transition:background-color .2s;text-align:right;border-bottom:1px solid #f2f2f8;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif}' +\n      '.vrt-mn-sub-link:active{background:rgba(39,39,39,.04)}' +\n      '.vrt-mn-sub-link.vrt-mn-view-all{font-weight:600;color:#272727}' +\n      '.vrt-mn-no-tabs .vrt-mn-tabs{display:none}' +\n      '.vrt-mn-no-tabs .vrt-mn-tab-content{display:block}';\n    document.head.appendChild(s);\n  }\n\n  function closeAllMenuPanels() {\n    var panels = document.querySelectorAll('.vrt-mn-sub.is-open');\n    for (var i = 0; i < panels.length; i++) {\n      panels[i].classList.remove('is-open');\n    }\n    // Also close the sidebar drawer\n    try {\n      var sidebar = document.getElementById('header-sidebar-menu');\n      if (sidebar && sidebar.hasAttribute('open')) {\n        sidebar.removeAttribute('open');\n      }\n      var drawerEl = document.querySelector('.mobile-navigation-drawer[data-variant-drawer=\"true\"]');\n      if (drawerEl) {\n        drawerEl.style.transform = '';\n        drawerEl.style.visibility = '';\n      }\n    } catch (e) {}\n  }\n\n  function buildSubmenuPanel(menuItem, index) {\n    var panel = document.createElement('div');\n    panel.className = 'vrt-mn-sub';\n    panel.id = 'vrt-submenu-' + index;\n\n    // Stop all clicks inside the panel from bubbling to parent navigation handlers\n    panel.addEventListener('click', function (e) {\n      e.stopPropagation();\n    });\n\n    var tabGroups = menuItem.subgroups.filter(function (g) {\n      return g.items.length > 0;\n    });\n    var linkOnlyGroups = menuItem.subgroups.filter(function (g) {\n      return g.items.length === 0 && g.titleUrl && g.titleUrl !== '/';\n    });\n\n    var hasTabs = tabGroups.length > 1;\n    if (!hasTabs) {\n      panel.classList.add('vrt-mn-no-tabs');\n    }\n\n    // Header\n    var hdr = document.createElement('div');\n    hdr.className = 'vrt-mn-sub-hdr';\n\n    var backBtn = document.createElement('button');\n    backBtn.className = 'vrt-mn-back';\n    backBtn.type = 'button';\n    backBtn.setAttribute('aria-label', 'חזרה');\n    backBtn.innerHTML = CHEVRON_RIGHT_SVG;\n    backBtn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      panel.classList.remove('is-open');\n    });\n\n    var title = document.createElement('span');\n    title.className = 'vrt-mn-sub-title';\n    title.textContent = menuItem.label;\n\n    var closeBtn = document.createElement('button');\n    closeBtn.className = 'vrt-mn-close';\n    closeBtn.type = 'button';\n    closeBtn.setAttribute('aria-label', 'סגור תפריט');\n    closeBtn.innerHTML = CLOSE_SVG;\n    closeBtn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      closeAllMenuPanels();\n    });\n\n    hdr.appendChild(backBtn);\n    hdr.appendChild(title);\n    hdr.appendChild(closeBtn);\n    panel.appendChild(hdr);\n\n    // Tabs bar\n    var tabsBar = document.createElement('div');\n    tabsBar.className = 'vrt-mn-tabs';\n    var tabButtons = [];\n    var tabPanels = [];\n\n    for (var g = 0; g < tabGroups.length; g++) {\n      var group = tabGroups[g];\n\n      // Tab button\n      var tabBtn = document.createElement('button');\n      tabBtn.className = 'vrt-mn-tab' + (g === 0 ? ' is-active' : '');\n      tabBtn.type = 'button';\n      tabBtn.textContent = group.title;\n      tabsBar.appendChild(tabBtn);\n      tabButtons.push(tabBtn);\n\n      // Tab content panel\n      var tabPanel = document.createElement('div');\n      tabPanel.className = 'vrt-mn-tab-content' + (g === 0 ? ' is-active' : '');\n\n      var list = document.createElement('ul');\n      list.className = 'vrt-mn-sub-list';\n\n      for (var i = 0; i < group.items.length; i++) {\n        var item = group.items[i];\n        var li = document.createElement('li');\n        var link = document.createElement('a');\n        link.className = 'vrt-mn-sub-link';\n        link.href = item.url;\n        link.textContent = item.text;\n        li.appendChild(link);\n        list.appendChild(li);\n      }\n\n      // \"View all\" link for groups with a real URL\n      if (group.titleUrl && group.titleUrl !== '/') {\n        var viewAllLi = document.createElement('li');\n        var viewAllLink = document.createElement('a');\n        viewAllLink.className = 'vrt-mn-sub-link vrt-mn-view-all';\n        viewAllLink.href = group.titleUrl;\n        viewAllLink.textContent = 'הכל ב' + group.title;\n        viewAllLi.appendChild(viewAllLink);\n        list.appendChild(viewAllLi);\n      }\n\n      tabPanel.appendChild(list);\n      tabPanels.push(tabPanel);\n    }\n\n    // Wire up tab switching with proper event isolation\n    for (var t = 0; t < tabButtons.length; t++) {\n      (function (idx) {\n        tabButtons[idx].addEventListener('click', function (e) {\n          e.preventDefault();\n          e.stopPropagation();\n          e.stopImmediatePropagation();\n          for (var k = 0; k < tabButtons.length; k++) {\n            tabButtons[k].classList.remove('is-active');\n            tabPanels[k].classList.remove('is-active');\n          }\n          tabButtons[idx].classList.add('is-active');\n          tabPanels[idx].classList.add('is-active');\n          // Scroll the active tab into view within tabs bar (RTL-safe)\n          try {\n            var tabsContainer = tabButtons[idx].parentElement;\n            var tabEl = tabButtons[idx];\n            var scrollPos = tabEl.offsetLeft - (tabsContainer.offsetWidth / 2) + (tabEl.offsetWidth / 2);\n            tabsContainer.scrollTo({ left: scrollPos, behavior: 'smooth' });\n          } catch (scrollErr) {}\n        });\n      })(t);\n    }\n\n    panel.appendChild(tabsBar);\n\n    // Scrollable content area\n    var contentWrap = document.createElement('div');\n    contentWrap.className = 'vrt-mn-content-wrap';\n\n    for (var p = 0; p < tabPanels.length; p++) {\n      contentWrap.appendChild(tabPanels[p]);\n    }\n\n    // Link-only groups as direct links\n    if (linkOnlyGroups.length > 0) {\n      var extraList = document.createElement('ul');\n      extraList.className = 'vrt-mn-sub-list';\n      extraList.style.borderTop = '1px solid #f2f2f8';\n      extraList.style.paddingTop = '8px';\n      for (var lg = 0; lg < linkOnlyGroups.length; lg++) {\n        var extraLi = document.createElement('li');\n        var extraLink = document.createElement('a');\n        extraLink.className = 'vrt-mn-sub-link vrt-mn-view-all';\n        extraLink.href = linkOnlyGroups[lg].titleUrl;\n        extraLink.textContent = linkOnlyGroups[lg].title;\n        extraLi.appendChild(extraLink);\n        extraList.appendChild(extraLi);\n      }\n      contentWrap.appendChild(extraList);\n    }\n\n    // \"View all\" for the entire category\n    if (menuItem.url && menuItem.url !== '/') {\n      var allList = document.createElement('ul');\n      allList.className = 'vrt-mn-sub-list';\n      allList.style.paddingTop = '0';\n      allList.style.borderTop = '1px solid #f2f2f8';\n      var allLi = document.createElement('li');\n      var allLink = document.createElement('a');\n      allLink.className = 'vrt-mn-sub-link vrt-mn-view-all';\n      allLink.href = menuItem.url;\n      allLink.textContent = 'כל ה' + menuItem.label;\n      allLi.appendChild(allLink);\n      allList.appendChild(allLi);\n      contentWrap.appendChild(allList);\n    }\n\n    panel.appendChild(contentWrap);\n    return panel;\n  }\n\n  function buildMenuItems(container) {\n    for (var i = 0; i < DESKTOP_MENU.length; i++) {\n      var menuData = DESKTOP_MENU[i];\n\n      var li = document.createElement('li');\n      li.className = 'vrt-mn-item';\n\n      var trigger = document.createElement('button');\n      trigger.className = 'vrt-mn-trigger';\n      trigger.type = 'button';\n      trigger.innerHTML = '<span>' + menuData.label + '</span>' + CHEVRON_LEFT_SVG;\n\n      var panel = buildSubmenuPanel(menuData, i);\n\n      (function (p) {\n        trigger.addEventListener('click', function (e) {\n          e.preventDefault();\n          e.stopPropagation();\n          p.classList.add('is-open');\n        });\n      })(panel);\n\n      li.appendChild(trigger);\n      li.appendChild(panel);\n      container.appendChild(li);\n    }\n  }\n\n  function initMenuRebuild() {\n    if (document.querySelector('.' + MENU_REBUILD_FLAG)) return true;\n\n    var navList = document.querySelector('.navigation__tier-1');\n    if (!navList) return false;\n\n    try {\n      injectMenuStyles();\n\n      // Hide all existing menu items\n      var existingItems = navList.querySelectorAll(':scope > .navigation__item');\n      for (var i = 0; i < existingItems.length; i++) {\n        existingItems[i].style.display = 'none';\n      }\n\n      // Build the new menu items\n      buildMenuItems(navList);\n\n      // Mark as done\n      var marker = document.createElement('span');\n      marker.className = MENU_REBUILD_FLAG;\n      marker.style.display = 'none';\n      document.body.appendChild(marker);\n    } catch (e) {\n      return false;\n    }\n\n    return true;\n  }\n\n  // ============================================================\n  // PART 3: Typography normalization across all menu levels\n  // ============================================================\n\n  var TYPO_STYLE_ID = 'vrt-menu-typography';\n\n  function injectTypographyStyles() {\n    if (document.getElementById(TYPO_STYLE_ID)) return;\n    var s = document.createElement('style');\n    s.id = TYPO_STYLE_ID;\n    s.textContent =\n      '.navigation__tier-1 > .navigation__item > .navigation__link{font-size:17px!important;font-weight:400!important;padding:16px 20px!important;letter-spacing:0.01em!important;line-height:1.4!important}' +\n      '.navigation__submenu-header span:not(.sr-only){font-size:17px!important;font-weight:400!important;letter-spacing:0.01em!important}' +\n      '.navigation__submenu[id^=\"submenu-\"] > ul > li > button{font-size:17px!important;font-weight:400!important;padding:16px 20px!important;line-height:1.4!important;letter-spacing:0.01em!important}' +\n      '.navigation__submenu[id^=\"submenu-\"] > ul > li > a{font-size:17px!important;font-weight:400!important;padding:16px 20px!important;line-height:1.4!important;letter-spacing:0.01em!important}' +\n      '.navigation__sub-submenu .navigation__submenu-header span:not(.sr-only){font-size:16px!important;font-weight:400!important}' +\n      '.navigation__sub-submenu ul > li > a{font-size:14px!important;font-weight:400!important;padding:13px 20px!important;line-height:1.4!important}';\n    document.head.appendChild(s);\n  }\n\n  // ============================================================\n  // PART 4: Product Carousel — \"Recommended for you\"\n  // Uses Variant Brain API (similarFromRecentlyViewed)\n  // ============================================================\n\n  var RECO_STYLE_ID = 'vrt-reco-styles';\n  var RECO_CONTAINER_ID = 'vrt-reco-carousel';\n  var RECO_SHOP_ID = 'e269a315-27cb-4ddf-9680-c127efde3da7';\n  var RECO_LS_KEY = 'variant:recently_viewed_products';\n  var RECO_BRAIN_URL = 'https://brain.variantnow.com/product-recommendations/similar';\n  var SF_TOKEN = 'e3da6fce0475e9a1cc4e99d88ae3bde1';\n  var SF_API = '/api/2025-01/graphql.json';\n\n  var CART_ICON_SVG = '<svg fill=\"none\" focusable=\"false\" height=\"14\" role=\"presentation\" stroke-width=\"2\" viewBox=\"0 0 16 14\" width=\"16\"><path d=\"M7.75 4.75H2.283a1 1 0 0 0-.97 1.244l1.574 6.25a1 1 0 0 0 .97.756h7.787a1 1 0 0 0 .97-.756l1.573-6.25a1 1 0 0 0-.97-1.244H7.75Zm0 0V1\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>';\n\n  function injectRecoStyles() {\n    if (document.getElementById(RECO_STYLE_ID)) return;\n    var s = document.createElement('style');\n    s.id = RECO_STYLE_ID;\n    s.textContent =\n      '#' + RECO_CONTAINER_ID + '{padding:16px 0 20px;border-top:1px solid #f2f2f8;background:#fff}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-title{padding:0 20px 10px;font-size:17px;font-weight:400;color:#272727;text-align:right;direction:rtl;line-height:1.4;letter-spacing:0.01em;font-family:var(--text-font-family,system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif)}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-scroll{direction:rtl;overflow-x:auto;overflow-y:hidden;display:flex;flex-wrap:nowrap;gap:10px;padding:0 0 8px;padding-inline-start:20px;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-scroll::-webkit-scrollbar{display:none}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-card{flex:0 0 calc((100vw - 60px) / 3.25);display:flex;flex-direction:column;text-decoration:none;color:#272727;position:relative;-webkit-tap-highlight-color:transparent}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-img-wrap{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:rgb(var(--product-card-background,242 242 242));border-radius:var(--rounded-sm,0.375rem)}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-img{width:100%;height:100%;object-fit:cover;display:block}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-atc{position:absolute;bottom:6px;left:6px;width:30px;height:30px;border-radius:50%;background:rgb(var(--button-background-primary,39 39 39));color:rgb(var(--button-text-primary,255 255 255));border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0;z-index:2;box-shadow:0 1px 4px rgba(0,0,0,.12);transition:transform .15s ease}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-atc:active{transform:scale(.85)}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-atc svg{width:14px;height:14px}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-info{padding:6px 2px 0;display:flex;flex-direction:column;gap:2px;text-align:right}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-name{font-size:12px;font-weight:400;color:#272727;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word;font-family:var(--text-font-family,system-ui)}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-price{font-size:12px;font-weight:400;color:#272727;direction:rtl;font-family:var(--text-font-family,system-ui)}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-sale{color:rgb(var(--on-sale-text,227 79 79))}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-was{text-decoration:line-through;color:#69727b;margin-inline-start:4px;font-size:11px}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-loading{display:flex;align-items:center;justify-content:center;padding:24px}' +\n      '#' + RECO_CONTAINER_ID + ' .vrt-reco-spin{width:20px;height:20px;border:2px solid rgba(39,39,39,.12);border-top-color:#272727;border-radius:50%;animation:vrt-reco-spin .6s linear infinite}' +\n      '.vrt-reco-btn-spin{width:12px;height:12px;border:1.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:vrt-reco-spin .6s linear infinite}' +\n      '@keyframes vrt-reco-spin{to{transform:rotate(360deg)}}';\n    document.head.appendChild(s);\n  }\n\n  function fetchBrainSimilar(handle, limit) {\n    var url = RECO_BRAIN_URL + '?shop_id=' + RECO_SHOP_ID + '&handle=' + encodeURIComponent(handle) + '&limit=' + limit;\n    return fetch(url)\n      .then(function(r) { return r.ok ? r.json() : Promise.reject(r.status); })\n      .then(function(data) {\n        return (data && data.similar_products) ? data.similar_products : [];\n      })\n      .catch(function() { return []; });\n  }\n\n  function fetchBestsellers() {\n    var query = 'query($h:String!){collection(handle:$h){products(first:15,sortKey:BEST_SELLING){nodes{id title handle availableForSale featuredImage{url(transform:{maxWidth:400,maxHeight:400}) altText}priceRange{minVariantPrice{amount currencyCode}}compareAtPriceRange{minVariantPrice{amount currencyCode}}variants(first:1){nodes{id availableForSale}}}}}}';\n    return fetch(SF_API, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': SF_TOKEN },\n      body: JSON.stringify({ query: query, variables: { h: 'bestsellers' } })\n    })\n    .then(function(r) { return r.json(); })\n    .then(function(data) {\n      var products = [];\n      if (data && data.data && data.data.collection && data.data.collection.products) {\n        products = data.data.collection.products.nodes.filter(function(p) {\n          return p.availableForSale && p.featuredImage;\n        });\n      }\n      return products.map(function(p) {\n        var minP = parseFloat(p.priceRange.minVariantPrice.amount);\n        var compP = p.compareAtPriceRange && p.compareAtPriceRange.minVariantPrice\n          ? parseFloat(p.compareAtPriceRange.minVariantPrice.amount) : 0;\n        return {\n          product_id: p.id.split('/').pop(),\n          handle: p.handle,\n          title: p.title,\n          featured_image_url: p.featuredImage.url,\n          price: minP.toString(),\n          compare_at_price: (compP > minP && compP > 0) ? compP.toString() : ''\n        };\n      });\n    })\n    .catch(function() { return []; });\n  }\n\n  var variantCache = {};\n  function fetchFirstVariantId(handle) {\n    if (variantCache[handle]) return Promise.resolve(variantCache[handle]);\n    var query = 'query($h:String!){product(handle:$h){variants(first:1){nodes{id availableForSale}}}}';\n    return fetch(SF_API, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': SF_TOKEN },\n      body: JSON.stringify({ query: query, variables: { h: handle } })\n    })\n    .then(function(r) { return r.json(); })\n    .then(function(data) {\n      var nodes = data && data.data && data.data.product && data.data.product.variants && data.data.product.variants.nodes;\n      if (nodes && nodes.length && nodes[0].availableForSale) {\n        var vid = nodes[0].id.split('/').pop();\n        variantCache[handle] = vid;\n        return vid;\n      }\n      return null;\n    })\n    .catch(function() { return null; });\n  }\n\n  function shuffleArr(arr) {\n    var a = arr.slice();\n    for (var i = a.length - 1; i > 0; i--) {\n      var j = Math.floor(Math.random() * (i + 1));\n      var t = a[i]; a[i] = a[j]; a[j] = t;\n    }\n    return a;\n  }\n\n  function fmtPrice(amount) {\n    if (!amount) return '';\n    var n = parseFloat(amount);\n    if (isNaN(n)) return '';\n    return (n % 1 === 0 ? n.toFixed(0) : n.toFixed(2)) + ' \\u20AA';\n  }\n\n  function recoQuickAdd(variantId, btn) {\n    var orig = btn.innerHTML;\n    btn.disabled = true;\n    btn.innerHTML = '<span class=\"vrt-reco-btn-spin\"></span>';\n    fetch('/cart/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json' },\n      body: JSON.stringify({ items: [{ id: parseInt(variantId, 10), quantity: 1 }] })\n    })\n    .then(function(r) { if (!r.ok) throw new Error(); return r.json(); })\n    .then(function() {\n      btn.innerHTML = '<svg viewBox=\"0 0 14 14\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" style=\"width:12px;height:12px\"><path d=\"M2 7l3.5 3.5L12 4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>';\n      try { document.documentElement.dispatchEvent(new CustomEvent('cart:change', { bubbles: true })); } catch(e) {}\n      setTimeout(function() {\n        try {\n          var toggle = document.querySelector('a[aria-controls=\"cart-drawer\"]');\n          if (toggle) toggle.click();\n        } catch(e) {}\n      }, 300);\n      setTimeout(function() { btn.disabled = false; btn.innerHTML = orig; }, 1500);\n    })\n    .catch(function() { btn.disabled = false; btn.innerHTML = orig; });\n  }\n\n  function buildRecoCard(product) {\n    var card = document.createElement('a');\n    card.className = 'vrt-reco-card';\n    card.href = '/products/' + encodeURIComponent(product.handle);\n    card.setAttribute('data-vrt-pid', product.product_id);\n\n    var imgWrap = document.createElement('div');\n    imgWrap.className = 'vrt-reco-img-wrap';\n    var img = document.createElement('img');\n    img.className = 'vrt-reco-img';\n    img.src = product.featured_image_url;\n    img.alt = product.title || '';\n    img.loading = 'lazy';\n    imgWrap.appendChild(img);\n\n    var atcBtn = document.createElement('button');\n    atcBtn.className = 'vrt-reco-atc';\n    atcBtn.type = 'button';\n    atcBtn.setAttribute('aria-label', '\\u05d4\\u05d5\\u05e1\\u05e4\\u05d4 \\u05de\\u05d4\\u05d9\\u05e8\\u05d4');\n    atcBtn.innerHTML = CART_ICON_SVG;\n    (function(handle, el) {\n      el.addEventListener('click', function(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        var origHTML = el.innerHTML;\n        el.disabled = true;\n        el.innerHTML = '<span class=\"vrt-reco-btn-spin\"></span>';\n        fetchFirstVariantId(handle).then(function(vid) {\n          if (vid) {\n            recoQuickAdd(vid, el);\n          } else {\n            el.disabled = false;\n            el.innerHTML = origHTML;\n            window.location.href = '/products/' + encodeURIComponent(handle);\n          }\n        });\n      });\n    })(product.handle, atcBtn);\n    imgWrap.appendChild(atcBtn);\n    card.appendChild(imgWrap);\n\n    var info = document.createElement('div');\n    info.className = 'vrt-reco-info';\n    var name = document.createElement('span');\n    name.className = 'vrt-reco-name';\n    name.textContent = product.title;\n    info.appendChild(name);\n\n    var priceWrap = document.createElement('div');\n    priceWrap.className = 'vrt-reco-price';\n    var price = parseFloat(product.price || 0);\n    var comp = parseFloat(product.compare_at_price || 0);\n    if (comp > price && comp > 0) {\n      priceWrap.innerHTML = '<span class=\"vrt-reco-sale\">' + fmtPrice(price) + '</span><span class=\"vrt-reco-was\">' + fmtPrice(comp) + '</span>';\n    } else {\n      priceWrap.textContent = fmtPrice(price);\n    }\n    info.appendChild(priceWrap);\n    card.appendChild(info);\n\n    return card;\n  }\n\n  function renderRecoProducts(container, loadingEl, products) {\n    if (!products.length) {\n      container.remove();\n      return;\n    }\n    loadingEl.remove();\n    var scroll = document.createElement('div');\n    scroll.className = 'vrt-reco-scroll';\n    for (var i = 0; i < products.length; i++) {\n      scroll.appendChild(buildRecoCard(products[i]));\n    }\n    container.appendChild(scroll);\n  }\n\n  function initRecoCarousel() {\n    if (document.getElementById(RECO_CONTAINER_ID)) return true;\n    var navList = document.querySelector('.navigation__tier-1');\n    if (!navList) return false;\n\n    injectRecoStyles();\n\n    var container = document.createElement('div');\n    container.id = RECO_CONTAINER_ID;\n    var title = document.createElement('div');\n    title.className = 'vrt-reco-title';\n    title.textContent = '\\u05de\\u05d5\\u05de\\u05dc\\u05e6\\u05d9\\u05dd \\u05e2\\u05d1\\u05d5\\u05e8\\u05da';\n    container.appendChild(title);\n    var loading = document.createElement('div');\n    loading.className = 'vrt-reco-loading';\n    loading.innerHTML = '<div class=\"vrt-reco-spin\"></div>';\n    container.appendChild(loading);\n\n    navList.parentElement.insertBefore(container, navList.nextSibling);\n\n    var recentlyViewed = null;\n    try {\n      var stored = localStorage.getItem(RECO_LS_KEY);\n      if (stored) recentlyViewed = JSON.parse(stored);\n    } catch(e) {}\n\n    var hasRecent = recentlyViewed && recentlyViewed.length > 0;\n    var toQuery = hasRecent ? recentlyViewed.slice(0, 3).filter(function(p) { return p.handle; }) : [];\n\n    if (toQuery.length > 0) {\n      var promises = toQuery.map(function(p) {\n        return fetchBrainSimilar(p.handle, 10);\n      });\n\n      Promise.all(promises).then(function(results) {\n        var all = [];\n        for (var i = 0; i < results.length; i++) all = all.concat(results[i]);\n\n        var rvHandles = {};\n        for (var k = 0; k < recentlyViewed.length; k++) {\n          if (recentlyViewed[k].handle) rvHandles[recentlyViewed[k].handle] = true;\n        }\n        var seen = {};\n        var unique = [];\n        for (var j = 0; j < all.length; j++) {\n          var p = all[j];\n          if (!p.product_id || seen[p.product_id] || rvHandles[p.handle]) continue;\n          if (!p.featured_image_url) continue;\n          seen[p.product_id] = true;\n          unique.push(p);\n        }\n\n        var shuffled = shuffleArr(unique).slice(0, 15);\n\n        if (shuffled.length > 0) {\n          renderRecoProducts(container, loading, shuffled);\n        } else {\n          fetchBestsellers().then(function(products) {\n            renderRecoProducts(container, loading, products);\n          }).catch(function() { container.remove(); });\n        }\n      }).catch(function() {\n        fetchBestsellers().then(function(products) {\n          renderRecoProducts(container, loading, products);\n        }).catch(function() { container.remove(); });\n      });\n    } else {\n      fetchBestsellers().then(function(products) {\n        renderRecoProducts(container, loading, products);\n      }).catch(function() { container.remove(); });\n    }\n\n    return true;\n  }\n\n  // ============================================================\n  // PART 5: Influenced Revenue Tracking\n  // ============================================================\n\n  var EXP_ID = 'EXP49AF79A0';\n  var VAR_ID = '1';\n\n  function fireInfluencedRevenue() {\n    try {\n      if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n        Variant.publishCustomEvent('influenced-revenue', {\n          experiment_id: EXP_ID,\n          variation_id: VAR_ID,\n        });\n      }\n    } catch (e) {}\n  }\n\n  var influencedTrackingDone = false;\n  var influencedFired = false;\n\n  function fireInfluencedRevenueOnce() {\n    if (influencedFired) return;\n    influencedFired = true;\n    fireInfluencedRevenue();\n  }\n\n  function initInfluencedTracking() {\n    if (influencedTrackingDone) return true;\n\n    var menuToggle = document.querySelector('button[aria-controls=\"header-sidebar-menu\"]');\n    if (!menuToggle) return false;\n\n    menuToggle.addEventListener('click', function () {\n      fireInfluencedRevenueOnce();\n      try {\n        if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n          Variant.publishCustomEvent('menu_opened', {\n            experiment_id: EXP_ID,\n            variation_id: VAR_ID,\n          });\n        }\n      } catch (e) {}\n    });\n\n    document.addEventListener('click', function (e) {\n      var item = e.target.closest('#' + SWATCH_ID + ' .vrt-sw-item');\n      if (item) {\n        fireInfluencedRevenueOnce();\n      }\n    });\n\n    var sidebarMenu = document.getElementById('header-sidebar-menu');\n    if (sidebarMenu) {\n      sidebarMenu.addEventListener('click', function (e) {\n        var link = e.target.closest('a[href], button');\n        if (link) {\n          fireInfluencedRevenueOnce();\n        }\n      });\n    }\n\n    influencedTrackingDone = true;\n    return true;\n  }\n\n  // ============================================================\n  // INITIALIZATION\n  // ============================================================\n\n  function initAll() {\n    var carouselOk = initCarousel();\n    var menuOk = initMenuRebuild();\n    var recoOk = initRecoCarousel();\n    injectTypographyStyles();\n    initInfluencedTracking();\n    return carouselOk && menuOk && recoOk;\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () {\n      if (!initAll()) {\n        var attempts = 0;\n        var interval = setInterval(function () {\n          attempts++;\n          if (initAll() || attempts >= 30) {\n            clearInterval(interval);\n          }\n        }, 300);\n      }\n    });\n  } else {\n    if (!initAll()) {\n      var attempts = 0;\n      var interval = setInterval(function () {\n        attempts++;\n        if (initAll() || attempts >= 30) {\n          clearInterval(interval);\n        }\n      }, 300);\n    }\n  }\n})();"}]},"exp-EXP6EF6EB0B":{"defaultValue":""},"exp-EXP9D019069":{"defaultValue":""},"exp-EXP8C9C7449":{"defaultValue":"","rules":[{"id":"exp-ref-rule-EXP8C9C7449","condition":{"$and":[{"deviceType":"mobile"},{"$or":[{"pageType":"collection"},{"pageType":{"$in":["homepage","home","index"]}}]}]},"coverage":1,"hashAttribute":"id","seed":"1fc07dc1-df5b-4633-bcca-86fbc06a87ab","hashVersion":2,"variations":["","(function () {\n  'use strict';\n\n  try {\n    var BUBBLE_ID = 'variant-collection-bubbles';\n    var STYLE_ID = 'variant-collection-bubbles-css';\n\n    // Remove any previous instance so we always get clean inline styles\n    var oldEl = document.getElementById(BUBBLE_ID);\n    if (oldEl) oldEl.parentNode.removeChild(oldEl);\n    var oldStyle = document.getElementById(STYLE_ID);\n    if (oldStyle) oldStyle.parentNode.removeChild(oldStyle);\n\n    var categories = [\n      {\n        name: '\\u05DC\\u05D1\\u05D9\\u05EA',\n        url: '/collections/home',\n        handle: 'home',\n        img: '//asufadesign.co.il/cdn/shop/products/GarlicOvenWhiteFront.jpg?v=1673177588&width=200'\n      },\n      {\n        name: '\\u05D0\\u05E1\\u05D5\\u05E4\\u05D4',\n        url: '/collections',\n        handle: 'bestsellers',\n        img: '//asufadesign.co.il/cdn/shop/files/MG_3825.jpg?v=1742918226&width=200'\n      },\n      {\n        name: '\\u05DC\\u05D9\\u05D9\\u05E4\\u05E1\\u05D8\\u05D9\\u05D9\\u05DC',\n        url: '/collections/%D7%9C%D7%99%D7%99%D7%A4%D7%A1%D7%98%D7%99%D7%99%D7%9C',\n        handle: 'lifestyle',\n        img: '//asufadesign.co.il/cdn/shop/files/11-086s_2_1800x1800_daa9ae89-5ce1-4c4b-b3e9-4e42698f821c.webp?v=1752774269&width=200'\n      },\n      {\n        name: '\\u05D9\\u05D5\\u05D3\\u05D0\\u05D9\\u05E7\\u05D4',\n        url: '/collections/judaica',\n        handle: 'judaica',\n        img: '//asufadesign.co.il/cdn/shop/products/625a8d_967e081acf234ee398e025aa90bca60a_mv2.jpg?v=1675067511&width=200'\n      },\n      {\n        name: '\\u05D9\\u05DC\\u05D3\\u05D9\\u05DD',\n        url: '/collections/kids',\n        handle: 'kids',\n        img: '//asufadesign.co.il/cdn/shop/files/1Jewelry_Pack.jpg?v=1760214581&width=200'\n      },\n      {\n        name: '\\u05D4\\u05D3\\u05E4\\u05E1\\u05D9\\u05DD',\n        url: '/collections/prints',\n        handle: 'prints',\n        img: '//asufadesign.co.il/cdn/shop/products/Oranges_in_net-bag.jpg?v=1658397056&width=200'\n      },\n      {\n        name: '\\u05DB\\u05E8\\u05D6\\u05D5\\u05EA \\u05EA\\u05E7\\u05D5\\u05D5\\u05D4',\n        url: '/collections/%D7%9B%D7%A8%D7%96%D7%95%D7%AA-%D7%A9%D7%9C-%D7%AA%D7%A7%D7%95%D7%95%D7%94-2-0',\n        handle: 'posters',\n        img: '//asufadesign.co.il/cdn/shop/products/WONDERFUL11.jpg?v=1624477466&width=200'\n      }\n    ];\n\n    var RING_SIZE = 62;\n    var RING_SIZE_DESKTOP = 79;\n    var ITEM_WIDTH = 78;\n    var ITEM_WIDTH_DESKTOP = 96;\n\n    var css = [\n      '@keyframes varBubbleFadeIn {',\n      '  from { opacity: 0; transform: translateY(-8px); }',\n      '  to { opacity: 1; transform: translateY(0); }',\n      '}',\n      '@keyframes varBubblePop {',\n      '  0% { transform: scale(0.6); opacity: 0; }',\n      '  70% { transform: scale(1.04); }',\n      '  100% { transform: scale(1); opacity: 1; }',\n      '}',\n\n      '#' + BUBBLE_ID + ' {',\n      '  position: sticky;',\n      '  top: var(--header-height, 58px);',\n      '  z-index: 9;',\n      '  background: rgba(255, 255, 255, 0.34);',\n      '  backdrop-filter: blur(2px);',\n      '  -webkit-backdrop-filter: blur(2px);',\n      '  animation: varBubbleFadeIn 0.4s ease forwards;',\n      '  padding: 2px 0 4px 0 !important;',\n      '  margin: 0 !important;',\n      '  direction: rtl;',\n      '  width: 100%;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubbles-track {',\n      '  display: flex;',\n      '  align-items: flex-start;',\n      '  gap: 2px;',\n      '  overflow-x: auto;',\n      '  overflow-y: hidden;',\n      '  -webkit-overflow-scrolling: touch;',\n      '  scrollbar-width: none;',\n      '  padding: 2px 16px 4px 0 !important;',\n      '  margin: 0 !important;',\n      '  min-height: 84px;',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubbles-track::-webkit-scrollbar {',\n      '  display: none;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item {',\n      '  display: flex;',\n      '  flex-direction: column;',\n      '  align-items: center;',\n      '  gap: 4px;',\n      '  text-decoration: none;',\n      '  flex-shrink: 0;',\n      '  width: ' + ITEM_WIDTH + 'px;',\n      '  animation: varBubblePop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) both;',\n      '  cursor: pointer;',\n      '  -webkit-tap-highlight-color: transparent;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-ring {',\n      '  width: ' + RING_SIZE + 'px;',\n      '  height: ' + RING_SIZE + 'px;',\n      '  border-radius: 50%;',\n      '  padding: 3px;',\n      '  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);',\n      '  position: relative;',\n      '  flex-shrink: 0;',\n      '  transition: transform 0.2s ease, box-shadow 0.2s ease;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item:active .var-bubble-ring {',\n      '  transform: scale(0.93);',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-inner {',\n      '  width: 100%;',\n      '  height: 100%;',\n      '  border-radius: 50%;',\n      '  border: 2px solid rgba(255, 255, 255, 0.85);',\n      '  box-sizing: border-box;',\n      '  overflow: hidden;',\n      '  background: #e8e8e8;',\n      '  position: relative;',\n      '  display: flex;',\n      '  align-items: center;',\n      '  justify-content: center;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-inner img {',\n      '  width: 100%;',\n      '  height: 100%;',\n      '  object-fit: cover;',\n      '  border-radius: 50%;',\n      '  opacity: 0;',\n      '  transition: opacity 0.3s ease;',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubble-inner img.is-loaded {',\n      '  opacity: 1;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-label {',\n      '  font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif;',\n      '  font-size: 11px;',\n      '  font-weight: 400;',\n      '  line-height: 1.2;',\n      '  color: #272727;',\n      '  text-align: center;',\n      '  white-space: nowrap;',\n      '  overflow: hidden;',\n      '  text-overflow: ellipsis;',\n      '  max-width: ' + ITEM_WIDTH + 'px;',\n      '  direction: rtl;',\n      '}',\n\n      '@media (hover: hover) and (pointer: fine) {',\n      '  #' + BUBBLE_ID + ' .var-bubble-item:hover .var-bubble-ring {',\n      '    transform: scale(1.08);',\n      '    box-shadow: 0 3px 12px rgba(220, 39, 67, 0.25);',\n      '  }',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item.is-active .var-bubble-ring {',\n      '  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);',\n      '  box-shadow: 0 2px 10px rgba(220, 39, 67, 0.3);',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubble-item.is-active .var-bubble-label {',\n      '  font-weight: 700;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dots {',\n      '  display: flex;',\n      '  justify-content: center;',\n      '  align-items: center;',\n      '  gap: 5px;',\n      '  padding: 2px 0 0;',\n      '  margin: 0 !important;',\n      '  transition: opacity 0.4s ease;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dots.is-hidden {',\n      '  opacity: 0;',\n      '  pointer-events: none;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dot {',\n      '  width: 5px;',\n      '  height: 5px;',\n      '  border-radius: 50%;',\n      '  background: rgba(0, 0, 0, 0.13);',\n      '  transition: background 0.3s ease, transform 0.3s ease;',\n      '  flex-shrink: 0;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dot.is-active {',\n      '  background: rgba(0, 0, 0, 0.4);',\n      '  transform: scale(1.35);',\n      '}',\n\n      '@media (min-width: 700px) {',\n      '  #' + BUBBLE_ID + ' .var-bubbles-track {',\n      '    justify-content: center;',\n      '    gap: 6px;',\n      '    padding: 4px 24px 8px;',\n      '    min-height: auto;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-ring {',\n      '    width: ' + RING_SIZE_DESKTOP + 'px;',\n      '    height: ' + RING_SIZE_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-item {',\n      '    width: ' + ITEM_WIDTH_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-label {',\n      '    font-size: 13px;',\n      '    max-width: ' + ITEM_WIDTH_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-scroll-dots {',\n      '    display: none;',\n      '  }',\n      '}'\n    ].join('\\n');\n\n    var styleEl = document.createElement('style');\n    styleEl.id = STYLE_ID;\n    styleEl.textContent = css;\n    document.head.appendChild(styleEl);\n\n    var container = document.createElement('div');\n    container.id = BUBBLE_ID;\n    container.setAttribute('role', 'navigation');\n    container.setAttribute('aria-label', '\\u05E7\\u05D8\\u05D2\\u05D5\\u05E8\\u05D9\\u05D5\\u05EA');\n\n    var track = document.createElement('div');\n    track.className = 'var-bubbles-track';\n\n    var currentPath = window.location.pathname;\n\n    categories.forEach(function (cat, index) {\n      var link = document.createElement('a');\n      link.className = 'var-bubble-item';\n      link.href = cat.url;\n      link.setAttribute('aria-label', cat.name);\n      link.style.animationDelay = (index * 0.05) + 's';\n\n      try {\n        var decodedUrl = decodeURIComponent(cat.url);\n        if (cat.url !== '/collections' && currentPath.indexOf(decodedUrl) !== -1) {\n          link.classList.add('is-active');\n        }\n      } catch (e) { /* safe */ }\n\n      var ring = document.createElement('div');\n      ring.className = 'var-bubble-ring';\n\n      var inner = document.createElement('div');\n      inner.className = 'var-bubble-inner';\n\n      var img = document.createElement('img');\n      img.alt = cat.name;\n      img.loading = 'eager';\n      img.src = cat.img;\n      img.onload = function () { img.classList.add('is-loaded'); };\n      img.onerror = function () {\n        tryDomFallback(cat, inner);\n      };\n\n      inner.appendChild(img);\n      ring.appendChild(inner);\n\n      var label = document.createElement('span');\n      label.className = 'var-bubble-label';\n      label.textContent = cat.name;\n\n      link.appendChild(ring);\n      link.appendChild(label);\n\n      (function (bubbleLink, category) {\n        bubbleLink.addEventListener('click', function (e) {\n          e.preventDefault();\n          var destinationUrl = bubbleLink.href;\n\n          var safetyTimeout = setTimeout(function () {\n            window.location.href = destinationUrl;\n          }, 2000);\n\n          try {\n            if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n              Variant.publishCustomEvent('product-clicked-attribution', {\n                experiment_id: 'EXP8C9C7449',\n                variation_id: '1',\n                product_id: category.handle\n              });\n            }\n          } catch (err) {\n            /* Safety timeout handles redirect */\n          }\n\n          clearTimeout(safetyTimeout);\n          window.location.href = destinationUrl;\n        });\n      })(link, cat);\n\n      track.appendChild(link);\n    });\n\n    var dotsContainer = document.createElement('div');\n    dotsContainer.className = 'var-scroll-dots';\n    var dotEls = [];\n\n    container.appendChild(track);\n    container.appendChild(dotsContainer);\n\n    function buildDots() {\n      try {\n        var scrollW = track.scrollWidth;\n        var clientW = track.clientWidth;\n        var maxScroll = scrollW - clientW;\n\n        if (maxScroll <= 0) {\n          dotsContainer.classList.add('is-hidden');\n          return;\n        }\n        dotsContainer.classList.remove('is-hidden');\n\n        var numPages = Math.max(Math.round(scrollW / clientW), 2);\n        if (numPages === dotEls.length) return;\n\n        dotsContainer.innerHTML = '';\n        dotEls = [];\n        for (var i = 0; i < numPages; i++) {\n          var dot = document.createElement('span');\n          dot.className = 'var-scroll-dot';\n          if (i === 0) dot.classList.add('is-active');\n          dotsContainer.appendChild(dot);\n          dotEls.push(dot);\n        }\n      } catch (e) { /* safe */ }\n    }\n\n    function updateActiveDot() {\n      try {\n        var scrollW = track.scrollWidth;\n        var clientW = track.clientWidth;\n        var maxScroll = scrollW - clientW;\n\n        if (maxScroll <= 0 || dotEls.length === 0) return;\n\n        var scrollRatio = Math.abs(track.scrollLeft) / maxScroll;\n        var activeIdx = Math.round(scrollRatio * (dotEls.length - 1));\n        activeIdx = Math.max(0, Math.min(activeIdx, dotEls.length - 1));\n\n        for (var i = 0; i < dotEls.length; i++) {\n          if (i === activeIdx) {\n            dotEls[i].classList.add('is-active');\n          } else {\n            dotEls[i].classList.remove('is-active');\n          }\n        }\n      } catch (e) { /* safe */ }\n    }\n\n    function updateScrollIndicator() {\n      buildDots();\n      updateActiveDot();\n    }\n\n    track.addEventListener('scroll', updateActiveDot, { passive: true });\n\n    function applyPeekPadding() {\n      try {\n        var vw = window.innerWidth || document.documentElement.clientWidth;\n        if (vw >= 700) {\n          track.style.paddingRight = '';\n          track.style.paddingLeft = '';\n          return;\n        }\n\n        var gap = 2;\n        var peekAmount = Math.round(ITEM_WIDTH * 0.5);\n        var neededForFullAndPeek = function (n) {\n          return n * ITEM_WIDTH + (n > 0 ? n * gap : 0) + peekAmount;\n        };\n\n        var fullSlots = 1;\n        while (neededForFullAndPeek(fullSlots + 1) <= vw) {\n          fullSlots++;\n        }\n\n        var startPad = vw - neededForFullAndPeek(fullSlots);\n        startPad = Math.max(Math.round(startPad), 6);\n\n        track.style.paddingRight = startPad + 'px';\n        track.style.paddingLeft = '0px';\n      } catch (e) { /* keep default */ }\n    }\n\n    function tryDomFallback(cat, innerEl) {\n      try {\n        var sel = 'a[href*=\"' + cat.url.split('/').pop() + '\"] img';\n        var found = document.querySelector(sel);\n        if (found && found.src) {\n          var fallback = document.createElement('img');\n          fallback.alt = cat.name;\n          fallback.src = found.src.replace(/width=\\d+/, 'width=200');\n          fallback.onload = function () { fallback.classList.add('is-loaded'); };\n          innerEl.innerHTML = '';\n          innerEl.appendChild(fallback);\n        }\n      } catch (e) { /* keep placeholder */ }\n    }\n\n    function insertBar() {\n      if (document.getElementById(BUBBLE_ID) && document.getElementById(BUBBLE_ID).parentNode) return true;\n\n      var mainEl = document.getElementById('main') || document.querySelector('main');\n      if (mainEl && mainEl.parentNode) {\n        mainEl.parentNode.insertBefore(container, mainEl);\n        applyPeekPadding();\n        updateScrollIndicator();\n        return true;\n      }\n\n      var headerSection = document.querySelector('.shopify-section--header');\n      if (headerSection) {\n        var parent = headerSection.parentNode;\n        if (parent && parent.nextElementSibling) {\n          parent.parentNode.insertBefore(container, parent.nextElementSibling);\n        } else {\n          document.body.insertBefore(container, document.body.firstChild);\n        }\n        applyPeekPadding();\n        updateScrollIndicator();\n        return true;\n      }\n\n      return false;\n    }\n\n    function syncStickyTop() {\n      try {\n        var headerEl = document.querySelector('store-header, .shopify-section--header');\n        if (!headerEl) return;\n\n        function updateTop() {\n          var h = headerEl.getBoundingClientRect().height;\n          if (h > 0) {\n            container.style.top = h + 'px';\n          }\n        }\n\n        updateTop();\n\n        if (typeof ResizeObserver !== 'undefined') {\n          var ro = new ResizeObserver(function () { updateTop(); });\n          ro.observe(headerEl);\n        }\n      } catch (e) { /* keep working without sync */ }\n    }\n\n    function tryInsert() {\n      if (insertBar()) {\n        syncStickyTop();\n        return;\n      }\n      var obs = new MutationObserver(function (_, o) {\n        if (insertBar()) {\n          o.disconnect();\n          syncStickyTop();\n        }\n      });\n      obs.observe(document.documentElement, { childList: true, subtree: true });\n      setTimeout(function () { obs.disconnect(); }, 10000);\n    }\n\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', tryInsert);\n    } else {\n      tryInsert();\n    }\n\n  } catch (err) {\n    /* Silent fail */\n  }\n})();\n\n/////// visual editor changes start //////\n(function() {\n  'use strict';\n\n// Visual Editor: div : #variant-collection-bubbles > div : לביתאסופהלייפסטייליודאיקהילדים...\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div');\n      if (element) {\n        element.style.marginBottom = '-20px';\n        element.style.setProperty('margin-bottom', '-20px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }// Visual Editor: div : #variant-collection-bubbles > div:nth-child(1) : לביתאסופהלייפסטייליודאיקהילדים...\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div:nth-child(1)');\n      if (element) {\n        element.style.paddingBottom = '0px';\n        element.style.setProperty('padding-bottom', '0px', 'important');\n        element.style.marginBottom = '0px';\n        element.style.setProperty('margin-bottom', '0px', 'important');\n        element.style.paddingTop = '0px';\n        element.style.setProperty('padding-top', '0px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n\n    // Visual Editor: div : #variant-collection-bubbles#variant-collection-bubbles\n    try {\n      const element = document.getElementById('variant-collection-bubbles');\n      if (element) {\n        element.style.paddingBottom = '0px';\n        element.style.setProperty('padding-bottom', '0px', 'important');\n        element.style.paddingTop = '0px';\n        element.style.setProperty('padding-top', '0px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n\n    // Visual Editor: div : #variant-collection-bubbles > div:nth-child(2)\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div:nth-child(2)');\n      if (element) {\n        element.style.paddingBottom = '4px';\n        element.style.setProperty('padding-bottom', '4px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n})();\n/////// visual editor changes end //////","(function () {\n  'use strict';\n\n  try {\n    var BUBBLE_ID = 'variant-collection-bubbles';\n    var STYLE_ID = 'variant-collection-bubbles-css';\n\n    // Remove any previous instance so we always get clean inline styles\n    var oldEl = document.getElementById(BUBBLE_ID);\n    if (oldEl) oldEl.parentNode.removeChild(oldEl);\n    var oldStyle = document.getElementById(STYLE_ID);\n    if (oldStyle) oldStyle.parentNode.removeChild(oldStyle);\n\n    var categories = [\n      {\n        name: '\\u05D7\\u05D3\\u05E9',\n        url: '/collections/%D7%97%D7%93%D7%A9',\n        handle: 'new',\n        img: '//asufadesign.co.il/cdn/shop/files/01_eec8259c-ae21-4737-a2e6-25fe3f6902ae.jpg?v=1772102242&width=200'\n      },\n      {\n        name: '\\u05DE\\u05EA\\u05E0\\u05D5\\u05EA',\n        url: '/collections/%D7%97%D7%93%D7%A9-copy',\n        handle: 'gifts',\n        img: '//asufadesign.co.il/cdn/shop/products/103083486_2799806203575553_9135428060668888862_n.jpg?v=1639557016&width=200'\n      },\n      {\n        name: '\\u05D9\\u05D5\\u05DD \\u05D4\\u05D5\\u05DC\\u05D3\\u05EA',\n        url: '/collections/%D7%97%D7%95%D7%95%D7%99%D7%95%D7%AA-%D7%95%D7%A1%D7%93%D7%A0%D7%90%D7%95%D7%AA-copy',\n        handle: 'birthday',\n        img: '//asufadesign.co.il/cdn/shop/files/26_Aya_Wind_copy.jpg?v=1749737000&width=200'\n      },\n      {\n        name: '\\u05EA\\u05D7\\u05D5\\u05DE\\u05D9 \\u05E2\\u05E0\\u05D9\\u05D9\\u05DF',\n        url: '/',\n        handle: 'interests',\n        img: '//asufadesign.co.il/cdn/shop/products/grouphertzel.jpg?v=1651392198&width=200'\n      },\n      {\n        name: '\\u05D1\\u05E9\\u05D1\\u05D9\\u05DC\\u05D4',\n        url: '/collections/%D7%A0%D7%A9%D7%99%D7%9D',\n        handle: 'for-her',\n        img: '//asufadesign.co.il/cdn/shop/files/7a27a72608e3cbc8602e7472f57d45b0.jpg?v=1772978180&width=200'\n      },\n      {\n        name: '\\u05D1\\u05E9\\u05D1\\u05D9\\u05DC\\u05D5',\n        url: '/collections/%D7%92%D7%91%D7%A8%D7%99%D7%9D',\n        handle: 'for-him',\n        img: '//asufadesign.co.il/cdn/shop/files/WhatsAppImage2023-07-27at10.40.56.jpg?v=1715264410&width=200'\n      },\n      {\n        name: '\\u05D9\\u05DC\\u05D3\\u05D9\\u05DD',\n        url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%99%D7%9C%D7%93%D7%99%D7%9D',\n        handle: 'kids',\n        img: '//asufadesign.co.il/cdn/shop/files/6_ba758be4-9cd9-4eef-aa29-6398d99cc6aa.png?v=1715254383&width=200'\n      },\n      {\n        name: '\\u05E2\\u05D9\\u05E6\\u05D5\\u05D1 \\u05D4\\u05D1\\u05D9\\u05EA',\n        url: '/collections/%D7%94%D7%9B%D7%9C-%D7%9C%D7%91%D7%99%D7%AA-%D7%95%D7%9C%D7%92%D7%99%D7%A0%D7%94',\n        handle: 'home-design',\n        img: '//asufadesign.co.il/cdn/shop/files/DSCF7917-2.jpg?v=1743929064&width=200'\n      },\n      {\n        name: '\\u05DB\\u05E8\\u05D8\\u05D9\\u05E1 \\u05DE\\u05EA\\u05E0\\u05D4',\n        url: 'https://valuecard.co.il/GiftCards/Asufa#Welcome',\n        handle: 'gift-card',\n        img: '//asufadesign.co.il/cdn/shop/files/MG_3825.jpg?v=1742918226&width=200'\n      }\n    ];\n\n    var RING_SIZE = 62;\n    var RING_SIZE_DESKTOP = 79;\n    var ITEM_WIDTH = 78;\n    var ITEM_WIDTH_DESKTOP = 96;\n\n    var css = [\n      '@keyframes varBubbleFadeIn {',\n      '  from { opacity: 0; transform: translateY(-8px); }',\n      '  to { opacity: 1; transform: translateY(0); }',\n      '}',\n      '@keyframes varBubblePop {',\n      '  0% { transform: scale(0.6); opacity: 0; }',\n      '  70% { transform: scale(1.04); }',\n      '  100% { transform: scale(1); opacity: 1; }',\n      '}',\n\n      '#' + BUBBLE_ID + ' {',\n      '  position: sticky;',\n      '  top: var(--header-height, 58px);',\n      '  z-index: 9;',\n      '  background: rgba(255, 255, 255, 0.34);',\n      '  backdrop-filter: blur(2px);',\n      '  -webkit-backdrop-filter: blur(2px);',\n      '  animation: varBubbleFadeIn 0.4s ease forwards;',\n      '  padding: 2px 0 4px 0 !important;',\n      '  margin: 0 !important;',\n      '  direction: rtl;',\n      '  width: 100%;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubbles-track {',\n      '  display: flex;',\n      '  align-items: flex-start;',\n      '  gap: 2px;',\n      '  overflow-x: auto;',\n      '  overflow-y: hidden;',\n      '  -webkit-overflow-scrolling: touch;',\n      '  scrollbar-width: none;',\n      '  padding: 2px 16px 4px 0 !important;',\n      '  margin: 0 !important;',\n      '  min-height: 84px;',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubbles-track::-webkit-scrollbar {',\n      '  display: none;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item {',\n      '  display: flex;',\n      '  flex-direction: column;',\n      '  align-items: center;',\n      '  gap: 4px;',\n      '  text-decoration: none;',\n      '  flex-shrink: 0;',\n      '  width: ' + ITEM_WIDTH + 'px;',\n      '  animation: varBubblePop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) both;',\n      '  cursor: pointer;',\n      '  -webkit-tap-highlight-color: transparent;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-ring {',\n      '  width: ' + RING_SIZE + 'px;',\n      '  height: ' + RING_SIZE + 'px;',\n      '  border-radius: 50%;',\n      '  padding: 3px;',\n      '  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);',\n      '  position: relative;',\n      '  flex-shrink: 0;',\n      '  transition: transform 0.2s ease, box-shadow 0.2s ease;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item:active .var-bubble-ring {',\n      '  transform: scale(0.93);',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-inner {',\n      '  width: 100%;',\n      '  height: 100%;',\n      '  border-radius: 50%;',\n      '  border: 2px solid rgba(255, 255, 255, 0.85);',\n      '  box-sizing: border-box;',\n      '  overflow: hidden;',\n      '  background: #e8e8e8;',\n      '  position: relative;',\n      '  display: flex;',\n      '  align-items: center;',\n      '  justify-content: center;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-inner img {',\n      '  width: 100%;',\n      '  height: 100%;',\n      '  object-fit: cover;',\n      '  border-radius: 50%;',\n      '  opacity: 0;',\n      '  transition: opacity 0.3s ease;',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubble-inner img.is-loaded {',\n      '  opacity: 1;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-label {',\n      '  font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif;',\n      '  font-size: 11px;',\n      '  font-weight: 400;',\n      '  line-height: 1.2;',\n      '  color: #272727;',\n      '  text-align: center;',\n      '  white-space: nowrap;',\n      '  overflow: hidden;',\n      '  text-overflow: ellipsis;',\n      '  max-width: ' + ITEM_WIDTH + 'px;',\n      '  direction: rtl;',\n      '}',\n\n      '@media (hover: hover) and (pointer: fine) {',\n      '  #' + BUBBLE_ID + ' .var-bubble-item:hover .var-bubble-ring {',\n      '    transform: scale(1.08);',\n      '    box-shadow: 0 3px 12px rgba(220, 39, 67, 0.25);',\n      '  }',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-bubble-item.is-active .var-bubble-ring {',\n      '  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);',\n      '  box-shadow: 0 2px 10px rgba(220, 39, 67, 0.3);',\n      '}',\n      '#' + BUBBLE_ID + ' .var-bubble-item.is-active .var-bubble-label {',\n      '  font-weight: 700;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dots {',\n      '  display: flex;',\n      '  justify-content: center;',\n      '  align-items: center;',\n      '  gap: 5px;',\n      '  padding: 2px 0 0;',\n      '  margin: 0 !important;',\n      '  transition: opacity 0.4s ease;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dots.is-hidden {',\n      '  opacity: 0;',\n      '  pointer-events: none;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dot {',\n      '  width: 5px;',\n      '  height: 5px;',\n      '  border-radius: 50%;',\n      '  background: rgba(0, 0, 0, 0.13);',\n      '  transition: background 0.3s ease, transform 0.3s ease;',\n      '  flex-shrink: 0;',\n      '}',\n\n      '#' + BUBBLE_ID + ' .var-scroll-dot.is-active {',\n      '  background: rgba(0, 0, 0, 0.4);',\n      '  transform: scale(1.35);',\n      '}',\n\n      '@media (min-width: 700px) {',\n      '  #' + BUBBLE_ID + ' .var-bubbles-track {',\n      '    justify-content: center;',\n      '    gap: 6px;',\n      '    padding: 4px 24px 8px;',\n      '    min-height: auto;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-ring {',\n      '    width: ' + RING_SIZE_DESKTOP + 'px;',\n      '    height: ' + RING_SIZE_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-item {',\n      '    width: ' + ITEM_WIDTH_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-bubble-label {',\n      '    font-size: 13px;',\n      '    max-width: ' + ITEM_WIDTH_DESKTOP + 'px;',\n      '  }',\n      '  #' + BUBBLE_ID + ' .var-scroll-dots {',\n      '    display: none;',\n      '  }',\n      '}'\n    ].join('\\n');\n\n    var styleEl = document.createElement('style');\n    styleEl.id = STYLE_ID;\n    styleEl.textContent = css;\n    document.head.appendChild(styleEl);\n\n    var container = document.createElement('div');\n    container.id = BUBBLE_ID;\n    container.setAttribute('role', 'navigation');\n    container.setAttribute('aria-label', '\\u05E7\\u05D8\\u05D2\\u05D5\\u05E8\\u05D9\\u05D5\\u05EA');\n\n    var track = document.createElement('div');\n    track.className = 'var-bubbles-track';\n\n    var currentPath = window.location.pathname;\n\n    categories.forEach(function (cat, index) {\n      var link = document.createElement('a');\n      link.className = 'var-bubble-item';\n      link.href = cat.url;\n      link.setAttribute('aria-label', cat.name);\n      link.style.animationDelay = (index * 0.05) + 's';\n\n      try {\n        var decodedUrl = decodeURIComponent(cat.url);\n        var isGenericPath = cat.url === '/' || cat.url.indexOf('http') === 0;\n        if (!isGenericPath && currentPath.indexOf(decodedUrl) !== -1) {\n          link.classList.add('is-active');\n        }\n      } catch (e) { /* safe */ }\n\n      var ring = document.createElement('div');\n      ring.className = 'var-bubble-ring';\n\n      var inner = document.createElement('div');\n      inner.className = 'var-bubble-inner';\n\n      var img = document.createElement('img');\n      img.alt = cat.name;\n      img.loading = 'eager';\n      img.src = cat.img;\n      img.onload = function () { img.classList.add('is-loaded'); };\n      img.onerror = function () {\n        tryDomFallback(cat, inner);\n      };\n\n      inner.appendChild(img);\n      ring.appendChild(inner);\n\n      var label = document.createElement('span');\n      label.className = 'var-bubble-label';\n      label.textContent = cat.name;\n\n      link.appendChild(ring);\n      link.appendChild(label);\n\n      (function (bubbleLink, category) {\n        bubbleLink.addEventListener('click', function (e) {\n          e.preventDefault();\n          var destinationUrl = bubbleLink.href;\n\n          var safetyTimeout = setTimeout(function () {\n            window.location.href = destinationUrl;\n          }, 2000);\n\n          try {\n            if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n              Variant.publishCustomEvent('product-clicked-attribution', {\n                experiment_id: 'EXP8C9C7449',\n                variation_id: '2',\n                product_id: category.handle\n              });\n            }\n          } catch (err) {\n            /* Safety timeout handles redirect */\n          }\n\n          clearTimeout(safetyTimeout);\n          window.location.href = destinationUrl;\n        });\n      })(link, cat);\n\n      track.appendChild(link);\n    });\n\n    var dotsContainer = document.createElement('div');\n    dotsContainer.className = 'var-scroll-dots';\n    var dotEls = [];\n\n    container.appendChild(track);\n    container.appendChild(dotsContainer);\n\n    function buildDots() {\n      try {\n        var scrollW = track.scrollWidth;\n        var clientW = track.clientWidth;\n        var maxScroll = scrollW - clientW;\n\n        if (maxScroll <= 0) {\n          dotsContainer.classList.add('is-hidden');\n          return;\n        }\n        dotsContainer.classList.remove('is-hidden');\n\n        var numPages = Math.max(Math.round(scrollW / clientW), 2);\n        if (numPages === dotEls.length) return;\n\n        dotsContainer.innerHTML = '';\n        dotEls = [];\n        for (var i = 0; i < numPages; i++) {\n          var dot = document.createElement('span');\n          dot.className = 'var-scroll-dot';\n          if (i === 0) dot.classList.add('is-active');\n          dotsContainer.appendChild(dot);\n          dotEls.push(dot);\n        }\n      } catch (e) { /* safe */ }\n    }\n\n    function updateActiveDot() {\n      try {\n        var scrollW = track.scrollWidth;\n        var clientW = track.clientWidth;\n        var maxScroll = scrollW - clientW;\n\n        if (maxScroll <= 0 || dotEls.length === 0) return;\n\n        var scrollRatio = Math.abs(track.scrollLeft) / maxScroll;\n        var activeIdx = Math.round(scrollRatio * (dotEls.length - 1));\n        activeIdx = Math.max(0, Math.min(activeIdx, dotEls.length - 1));\n\n        for (var i = 0; i < dotEls.length; i++) {\n          if (i === activeIdx) {\n            dotEls[i].classList.add('is-active');\n          } else {\n            dotEls[i].classList.remove('is-active');\n          }\n        }\n      } catch (e) { /* safe */ }\n    }\n\n    function updateScrollIndicator() {\n      buildDots();\n      updateActiveDot();\n    }\n\n    track.addEventListener('scroll', updateActiveDot, { passive: true });\n\n    function applyPeekPadding() {\n      try {\n        var vw = window.innerWidth || document.documentElement.clientWidth;\n        if (vw >= 700) {\n          track.style.paddingRight = '';\n          track.style.paddingLeft = '';\n          return;\n        }\n\n        var gap = 2;\n        var peekAmount = Math.round(ITEM_WIDTH * 0.5);\n        var neededForFullAndPeek = function (n) {\n          return n * ITEM_WIDTH + (n > 0 ? n * gap : 0) + peekAmount;\n        };\n\n        var fullSlots = 1;\n        while (neededForFullAndPeek(fullSlots + 1) <= vw) {\n          fullSlots++;\n        }\n\n        var startPad = vw - neededForFullAndPeek(fullSlots);\n        startPad = Math.max(Math.round(startPad), 6);\n\n        track.style.paddingRight = startPad + 'px';\n        track.style.paddingLeft = '0px';\n      } catch (e) { /* keep default */ }\n    }\n\n    function tryDomFallback(cat, innerEl) {\n      try {\n        var sel = 'a[href*=\"' + cat.url.split('/').pop() + '\"] img';\n        var found = document.querySelector(sel);\n        if (found && found.src) {\n          var fallback = document.createElement('img');\n          fallback.alt = cat.name;\n          fallback.src = found.src.replace(/width=\\d+/, 'width=200');\n          fallback.onload = function () { fallback.classList.add('is-loaded'); };\n          innerEl.innerHTML = '';\n          innerEl.appendChild(fallback);\n        }\n      } catch (e) { /* keep placeholder */ }\n    }\n\n    function insertBar() {\n      if (document.getElementById(BUBBLE_ID) && document.getElementById(BUBBLE_ID).parentNode) return true;\n\n      var mainEl = document.getElementById('main') || document.querySelector('main');\n      if (mainEl && mainEl.parentNode) {\n        mainEl.parentNode.insertBefore(container, mainEl);\n        applyPeekPadding();\n        updateScrollIndicator();\n        return true;\n      }\n\n      var headerSection = document.querySelector('.shopify-section--header');\n      if (headerSection) {\n        var parent = headerSection.parentNode;\n        if (parent && parent.nextElementSibling) {\n          parent.parentNode.insertBefore(container, parent.nextElementSibling);\n        } else {\n          document.body.insertBefore(container, document.body.firstChild);\n        }\n        applyPeekPadding();\n        updateScrollIndicator();\n        return true;\n      }\n\n      return false;\n    }\n\n    function syncStickyTop() {\n      try {\n        var headerEl = document.querySelector('store-header, .shopify-section--header');\n        if (!headerEl) return;\n\n        function updateTop() {\n          var h = headerEl.getBoundingClientRect().height;\n          if (h > 0) {\n            container.style.top = h + 'px';\n          }\n        }\n\n        updateTop();\n\n        if (typeof ResizeObserver !== 'undefined') {\n          var ro = new ResizeObserver(function () { updateTop(); });\n          ro.observe(headerEl);\n        }\n      } catch (e) { /* keep working without sync */ }\n    }\n\n    function tryInsert() {\n      if (insertBar()) {\n        syncStickyTop();\n        return;\n      }\n      var obs = new MutationObserver(function (_, o) {\n        if (insertBar()) {\n          o.disconnect();\n          syncStickyTop();\n        }\n      });\n      obs.observe(document.documentElement, { childList: true, subtree: true });\n      setTimeout(function () { obs.disconnect(); }, 10000);\n    }\n\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', tryInsert);\n    } else {\n      tryInsert();\n    }\n\n  } catch (err) {\n    /* Silent fail */\n  }\n})();\n\n/////// visual editor changes start //////\n(function() {\n  'use strict';\n\n// Visual Editor: div : #variant-collection-bubbles > div : לביתאסופהלייפסטייליודאיקהילדים...\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div');\n      if (element) {\n        element.style.marginBottom = '-20px';\n        element.style.setProperty('margin-bottom', '-20px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }// Visual Editor: div : #variant-collection-bubbles > div:nth-child(1) : לביתאסופהלייפסטייליודאיקהילדים...\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div:nth-child(1)');\n      if (element) {\n        element.style.paddingBottom = '0px';\n        element.style.setProperty('padding-bottom', '0px', 'important');\n        element.style.marginBottom = '0px';\n        element.style.setProperty('margin-bottom', '0px', 'important');\n        element.style.paddingTop = '0px';\n        element.style.setProperty('padding-top', '0px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n\n    // Visual Editor: div : #variant-collection-bubbles#variant-collection-bubbles\n    try {\n      const element = document.getElementById('variant-collection-bubbles');\n      if (element) {\n        element.style.paddingBottom = '0px';\n        element.style.setProperty('padding-bottom', '0px', 'important');\n        element.style.paddingTop = '0px';\n        element.style.setProperty('padding-top', '0px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n\n    // Visual Editor: div : #variant-collection-bubbles > div:nth-child(2)\n    try {\n      const element = document.querySelector('#variant-collection-bubbles > div:nth-child(2)');\n      if (element) {\n        element.style.paddingBottom = '4px';\n        element.style.setProperty('padding-bottom', '4px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n})();\n/////// visual editor changes end //////"],"weights":[0.34,0.33,0.33],"key":"EXP8C9C7449","meta":[{"key":"control","name":"Control"},{"key":"variant-1","name":"Variant 1"},{"key":"variant-2","name":"Variant 2"}],"phase":"0","name":"Mobile - Sticky Collection Bubbles"}]},"exp-EXPEF7D9CD4":{"defaultValue":""},"exp-EXPB4CBCBBC":{"defaultValue":""},"exp-EXP61BD7996":{"defaultValue":"","rules":[{"id":"exp-ref-rule-EXP61BD7996","condition":{"deviceType":"mobile"},"coverage":1,"hashAttribute":"id","seed":"affac20b-4410-4def-aa4e-b147733e8822","hashVersion":2,"variations":["","(function () {\n  'use strict';\n\n  const CONFIG = {\n    experimentId: 'EXP61BD7996',\n    variationId: '1',\n    shopDomain: 'asufa-co-il.myshopify.com',\n    storefrontAccessToken: 'ac691a2161b6844b779eb6b2ed3cb231',\n    collectionHandle: 'bestsellers',\n    maxProducts: 20,\n    topSearches: [\n      { text: 'לבית', url: '/collections/home' },\n      { text: 'אסופה', url: '/' },\n      { text: 'לייפסטייל', url: '/' },\n      { text: 'יודאיקה', url: '/collections/judaica' },\n      { text: 'ילדים', url: '/collections/kids' },\n      { text: 'הדפסים', url: '/collections/prints' },\n      { text: 'המעצבים שלנו', url: '/pages/%D7%94%D7%9E%D7%A2%D7%A6%D7%91%D7%99%D7%9D-%D7%A9%D7%9C%D7%A0%D7%95' },\n      { text: 'הגדה של פסח', url: '/' },\n    ],\n  };\n\n  let overlayEl = null;\n  let productsLoaded = false;\n  let productsData = [];\n  let recommendedLoaded = false;\n\n  // ============================================\n  // STYLES\n  // ============================================\n\n  function injectStyles() {\n    if (document.getElementById('variant-search-overlay-styles')) return;\n    const style = document.createElement('style');\n    style.id = 'variant-search-overlay-styles';\n    style.textContent = `\n      .vso-overlay {\n        position: fixed;\n        inset: 0;\n        z-index: 999999;\n        background: #f2f2f2;\n        display: flex;\n        flex-direction: column;\n        opacity: 0;\n        visibility: hidden;\n        transition: opacity 0.3s ease, visibility 0.3s ease;\n        direction: rtl;\n        font-family: \"system_ui\", -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif;\n        overflow-y: auto;\n        -webkit-overflow-scrolling: touch;\n      }\n\n      .vso-overlay.vso-open {\n        opacity: 1;\n        visibility: visible;\n      }\n\n      .vso-header {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n        padding: 12px 16px;\n        border-bottom: 1px solid rgba(39, 39, 39, 0.12);\n        position: sticky;\n        top: 0;\n        background: #fff;\n        z-index: 2;\n      }\n\n      .vso-search-wrapper {\n        flex: 1;\n        position: relative;\n        display: flex;\n        align-items: center;\n      }\n\n      .vso-search-icon {\n        position: absolute;\n        right: 12px;\n        pointer-events: none;\n        color: #69727b;\n      }\n\n      .vso-search-input {\n        width: 100%;\n        height: 42px;\n        border: 1px solid rgba(39, 39, 39, 0.12);\n        border-radius: 0.5rem;\n        padding: 0 40px 0 12px;\n        font-size: 14px;\n        font-family: inherit;\n        color: #272727;\n        background: #fff;\n        outline: none;\n        direction: rtl;\n        -webkit-appearance: none;\n        appearance: none;\n      }\n\n      .vso-search-input:focus {\n        border-color: #272727;\n        background: #fff;\n      }\n\n      .vso-search-input::placeholder {\n        color: #69727b;\n      }\n\n      .vso-close-btn {\n        background: none;\n        border: none;\n        padding: 8px;\n        cursor: pointer;\n        color: #272727;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n      }\n\n      .vso-body {\n        padding: 20px 16px;\n        flex: 1;\n      }\n\n      .vso-section-title {\n        font-size: 14px;\n        font-weight: 700;\n        color: #272727;\n        margin-bottom: 12px;\n      }\n\n      /* Top searches pills */\n      .vso-pills {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 8px;\n        margin-bottom: 28px;\n      }\n\n      .vso-pill {\n        display: inline-flex;\n        align-items: center;\n        padding: 6px 14px;\n        border-radius: 60px;\n        border: 1px solid rgba(39, 39, 39, 0.12);\n        background: #fff;\n        color: #272727;\n        font-size: 13px;\n        font-weight: 400;\n        font-family: inherit;\n        text-decoration: none;\n        transition: background-color 0.15s ease, color 0.15s ease;\n        white-space: nowrap;\n        cursor: pointer;\n        -webkit-appearance: none;\n        appearance: none;\n        line-height: 1.4;\n      }\n\n      .vso-pill:hover,\n      .vso-pill:active {\n        background: #272727;\n        color: #fff;\n        border-color: #272727;\n      }\n\n      /* Products carousel */\n      .vso-carousel-wrapper {\n        margin-bottom: 20px;\n      }\n\n      .vso-carousel {\n        display: flex;\n        gap: 12px;\n        overflow-x: auto;\n        overflow-y: hidden;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: none;\n        -ms-overflow-style: none;\n        scroll-behavior: smooth;\n        padding-bottom: 4px;\n      }\n\n      .vso-carousel::-webkit-scrollbar {\n        display: none;\n      }\n\n      .vso-product-card {\n        flex: 0 0 140px;\n        min-width: 140px;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n        text-decoration: none;\n        color: inherit;\n        position: relative;\n      }\n\n      .vso-product-img-wrap {\n        width: 100%;\n        aspect-ratio: 1;\n        border-radius: 0;\n        overflow: hidden;\n        background: rgb(242, 242, 242);\n        position: relative;\n      }\n\n      .vso-product-img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n      }\n\n      .vso-quick-add-btn {\n        position: absolute;\n        bottom: 8px;\n        left: 8px;\n        width: 32px;\n        height: 32px;\n        background: rgb(39, 39, 39);\n        color: #fff;\n        border: none;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 2;\n        transition: background-color 0.2s ease;\n        opacity: 1;\n      }\n\n      .vso-quick-add-btn:active {\n        background: #333;\n      }\n\n      .vso-product-info {\n        display: flex;\n        flex-direction: column;\n        gap: 2px;\n        padding: 0 2px;\n      }\n\n      .vso-product-title {\n        font-size: 12px;\n        line-height: 1.4;\n        color: #272727;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n        text-decoration: none;\n      }\n\n      .vso-product-title a {\n        color: inherit;\n        text-decoration: none;\n      }\n\n      .vso-product-prices {\n        display: flex;\n        align-items: baseline;\n        gap: 6px;\n        flex-wrap: wrap;\n      }\n\n      .vso-price {\n        font-size: 13px;\n        font-weight: 400;\n        color: #272727;\n      }\n\n      .vso-price--sale {\n        color: rgb(227, 79, 79);\n      }\n\n      .vso-price--compare {\n        font-size: 11px;\n        color: #69727b;\n        text-decoration: line-through;\n      }\n\n      /* Predictive search results area */\n      .vso-predictive-area {\n        display: none;\n      }\n\n      .vso-predictive-area.vso-show {\n        display: block;\n      }\n\n      .vso-idle-content.vso-hide {\n        display: none;\n      }\n\n      /* Search results list */\n      .vso-results-list {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n      }\n\n      .vso-result-item {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        padding: 10px 0;\n        border-bottom: 1px solid rgba(39, 39, 39, 0.08);\n        text-decoration: none;\n        color: #272727;\n        transition: background-color 0.1s ease;\n      }\n\n      .vso-result-item:active {\n        background-color: rgba(255, 255, 255, 0.6);\n      }\n\n      .vso-result-thumb {\n        width: 56px;\n        height: 56px;\n        border-radius: 0.5rem;\n        overflow: hidden;\n        background: #f2f2f2;\n        flex-shrink: 0;\n      }\n\n      .vso-result-thumb img {\n        width: 100%;\n        height: 100%;\n        object-fit: cover;\n        display: block;\n      }\n\n      .vso-result-details {\n        flex: 1;\n        min-width: 0;\n        display: flex;\n        flex-direction: column;\n        gap: 2px;\n      }\n\n      .vso-result-name {\n        font-size: 13px;\n        font-weight: 400;\n        color: #272727;\n        line-height: 1.3;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n      }\n\n      .vso-result-price-row {\n        display: flex;\n        align-items: baseline;\n        gap: 6px;\n      }\n\n      .vso-result-price {\n        font-size: 13px;\n        font-weight: 400;\n        color: #272727;\n      }\n\n      .vso-result-price--sale {\n        color: rgb(227, 79, 79);\n      }\n\n      .vso-result-price--compare {\n        font-size: 11px;\n        color: #69727b;\n        text-decoration: line-through;\n      }\n\n      /* Search result add-to-cart button */\n      .vso-result-add-btn {\n        flex-shrink: 0;\n        width: 34px;\n        height: 34px;\n        border-radius: 50%;\n        border: 1px solid rgba(39, 39, 39, 0.15);\n        background: #fff;\n        color: #272727;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        transition: background 0.15s, border-color 0.15s, transform 0.1s;\n        padding: 0;\n      }\n\n      .vso-result-add-btn:active {\n        transform: scale(0.92);\n      }\n\n      .vso-result-add-btn.vso-added {\n        background: #272727;\n        color: #fff;\n        border-color: #272727;\n      }\n\n      /* Inline variant picker */\n      .vso-result-item-wrap {\n        border-bottom: 1px solid rgba(39, 39, 39, 0.08);\n      }\n\n      .vso-result-item-wrap .vso-result-item {\n        border-bottom: none;\n      }\n\n      .vso-variant-picker {\n        max-height: 0;\n        overflow: hidden;\n        transition: max-height 0.3s ease, padding 0.3s ease;\n        padding: 0 0 0 0;\n      }\n\n      .vso-variant-picker.vso-picker-open {\n        max-height: 260px;\n        padding: 0 0 12px 0;\n      }\n\n      .vso-option-group {\n        margin-bottom: 8px;\n      }\n\n      .vso-option-group:last-child {\n        margin-bottom: 0;\n      }\n\n      .vso-option-label {\n        font-size: 11px;\n        color: #69727b;\n        margin-bottom: 6px;\n        font-weight: 500;\n      }\n\n      .vso-option-pills {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 6px;\n      }\n\n      .vso-option-pill {\n        padding: 5px 12px;\n        border-radius: 20px;\n        border: 1px solid rgba(39, 39, 39, 0.2);\n        background: #fff;\n        color: #272727;\n        font-size: 12px;\n        cursor: pointer;\n        transition: all 0.15s;\n        font-family: inherit;\n        line-height: 1.3;\n      }\n\n      .vso-option-pill:active {\n        transform: scale(0.95);\n      }\n\n      .vso-option-pill.vso-pill-selected {\n        background: #fababa;\n        border-color: #fababa;\n        color: #272727;\n        font-weight: 600;\n      }\n\n      .vso-option-pill.vso-pill-unavailable {\n        opacity: 0.35;\n        cursor: default;\n        text-decoration: line-through;\n      }\n\n      .vso-picker-add-row {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        margin-top: 8px;\n        gap: 8px;\n      }\n\n      .vso-picker-price {\n        font-size: 13px;\n        font-weight: 600;\n        color: #272727;\n      }\n\n      .vso-picker-add-btn {\n        padding: 7px 18px;\n        border-radius: 20px;\n        border: none;\n        background: #272727;\n        color: #fff;\n        font-size: 13px;\n        font-weight: 600;\n        cursor: pointer;\n        transition: opacity 0.15s, transform 0.1s;\n        font-family: inherit;\n        display: flex;\n        align-items: center;\n        gap: 6px;\n      }\n\n      .vso-picker-add-btn:active {\n        transform: scale(0.95);\n      }\n\n      .vso-picker-add-btn:disabled {\n        opacity: 0.4;\n        cursor: default;\n      }\n\n      .vso-view-all {\n        display: block;\n        text-align: center;\n        padding: 14px 0;\n        margin-top: 4px;\n        color: #272727;\n        font-size: 14px;\n        font-weight: 700;\n        text-decoration: none;\n        border-top: 1px solid rgba(39, 39, 39, 0.12);\n      }\n\n      .vso-view-all:active {\n        opacity: 0.7;\n      }\n\n      .vso-no-results {\n        padding: 24px 0;\n        text-align: center;\n        color: #69727b;\n        font-size: 14px;\n      }\n\n      .vso-search-loading {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n      }\n\n      .vso-search-loading-item {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        padding: 10px 0;\n      }\n\n      .vso-skel-thumb {\n        width: 56px;\n        height: 56px;\n        border-radius: 0.5rem;\n        background: linear-gradient(110deg, #f2f2f2 8%, #e8e8e8 18%, #f2f2f2 33%);\n        background-size: 200% 100%;\n        animation: vsoShimmer 1.5s linear infinite;\n        flex-shrink: 0;\n      }\n\n      .vso-skel-lines {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n      }\n\n      /* Loading skeleton */\n      .vso-loading {\n        display: flex;\n        gap: 12px;\n        overflow: hidden;\n      }\n\n      .vso-skel-card {\n        flex: 0 0 140px;\n        display: flex;\n        flex-direction: column;\n        gap: 8px;\n      }\n\n      .vso-skel-img {\n        width: 100%;\n        aspect-ratio: 1;\n        border-radius: 0;\n        background: linear-gradient(110deg, #f2f2f2 8%, #e8e8e8 18%, #f2f2f2 33%);\n        background-size: 200% 100%;\n        animation: vsoShimmer 1.5s linear infinite;\n      }\n\n      .vso-skel-text {\n        height: 12px;\n        border-radius: 4px;\n        background: linear-gradient(110deg, #f2f2f2 8%, #e8e8e8 18%, #f2f2f2 33%);\n        background-size: 200% 100%;\n        animation: vsoShimmer 1.5s linear infinite;\n      }\n\n      .vso-skel-text--short {\n        width: 60%;\n      }\n\n      .vso-skel-text--long {\n        width: 85%;\n      }\n\n      @keyframes vsoShimmer {\n        0% { background-position: 200% 0; }\n        100% { background-position: -200% 0; }\n      }\n\n      /* Prevent body scroll when overlay is open */\n      body.vso-no-scroll {\n        overflow: hidden !important;\n        position: fixed;\n        width: 100%;\n      }\n    `;\n    document.head.appendChild(style);\n  }\n\n  // ============================================\n  // STOREFRONT API — FETCH BESTSELLER PRODUCTS\n  // ============================================\n\n  async function fetchBestsellerProducts() {\n    const query = `{\n      collection(handle: \"${CONFIG.collectionHandle}\") {\n        products(first: ${CONFIG.maxProducts}, sortKey: BEST_SELLING) {\n          edges {\n            node {\n              id\n              handle\n              title\n              availableForSale\n              priceRange {\n                minVariantPrice {\n                  amount\n                  currencyCode\n                }\n              }\n              compareAtPriceRange {\n                minVariantPrice {\n                  amount\n                  currencyCode\n                }\n              }\n              featuredImage {\n                url\n                altText\n              }\n              variants(first: 1) {\n                edges {\n                  node {\n                    id\n                    availableForSale\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }`;\n\n    try {\n      const response = await fetch(\n        `https://${CONFIG.shopDomain}/api/2025-01/graphql.json`,\n        {\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            'X-Shopify-Storefront-Access-Token': CONFIG.storefrontAccessToken,\n          },\n          body: JSON.stringify({ query }),\n        }\n      );\n\n      const data = await response.json();\n\n      if (data.errors) {\n        return [];\n      }\n\n      const products = data.data?.collection?.products?.edges?.map(edge => edge.node) || [];\n\n      return products.filter(p => p.availableForSale).map(product => {\n        const price = parseFloat(product.priceRange.minVariantPrice.amount);\n        const compareAt = parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount || 0);\n        const hasDiscount = compareAt > 0 && compareAt > price;\n        const productId = product.id.split('/').pop();\n        const variantGid = product.variants?.edges?.[0]?.node?.id || '';\n        const variantId = variantGid.split('/').pop();\n\n        return {\n          productId,\n          variantId,\n          handle: product.handle,\n          title: product.title,\n          url: `/products/${product.handle}`,\n          image: product.featuredImage?.url || '',\n          imageAlt: product.featuredImage?.altText || product.title,\n          price: price.toFixed(2) + ' ₪',\n          compareAtPrice: hasDiscount ? compareAt.toFixed(2) + ' ₪' : '',\n          hasDiscount,\n        };\n      });\n    } catch (error) {\n      return [];\n    }\n  }\n\n  // ============================================\n  // ACCESSORY PRODUCT FILTER\n  // ============================================\n\n  const EXCLUDED_KEYWORDS = ['מסגור', 'מסגרת', 'framing', 'frame'];\n\n  function isAccessoryProduct(product) {\n    const handle = (product.handle || '').toLowerCase();\n    const title = (product.title || '').toLowerCase();\n    return EXCLUDED_KEYWORDS.some(kw => handle.includes(kw) || title.includes(kw));\n  }\n\n  // ============================================\n  // VARIANT BRAIN API — SIMILAR FROM RECENTLY VIEWED\n  // ============================================\n\n  function getRecentlyViewedProducts() {\n    try {\n      const stored = localStorage.getItem('variant:recently_viewed_products');\n      if (!stored) return [];\n      const products = JSON.parse(stored);\n      return Array.isArray(products) && products.length > 0 ? products : [];\n    } catch (e) {\n      return [];\n    }\n  }\n\n  async function fetchSimilarFromRecentlyViewed() {\n    const shopId = 'e269a315-27cb-4ddf-9680-c127efde3da7';\n    const recentlyViewed = getRecentlyViewedProducts();\n\n    if (recentlyViewed.length === 0) return [];\n\n    const productsToQuery = recentlyViewed.slice(0, 3).filter(p => p.handle);\n    if (productsToQuery.length === 0) return [];\n\n    try {\n      const requests = productsToQuery.map(p =>\n        fetch(`https://brain.variantnow.com/product-recommendations/similar?shop_id=${shopId}&handle=${encodeURIComponent(p.handle)}&limit=15`)\n          .then(r => r.ok ? r.json() : { similar_products: [] })\n          .catch(() => ({ similar_products: [] }))\n      );\n\n      const results = await Promise.all(requests);\n      const allProducts = results.flatMap(r => r.similar_products || []);\n\n      // Deduplicate and exclude recently viewed products\n      const recentHandles = new Set(recentlyViewed.map(p => p.handle));\n      const seenIds = new Set();\n      const unique = [];\n\n      for (const product of allProducts) {\n        if (!seenIds.has(product.product_id) && !recentHandles.has(product.handle) && !isAccessoryProduct(product)) {\n          seenIds.add(product.product_id);\n          unique.push(product);\n        }\n      }\n\n      // Shuffle for diversity\n      for (let i = unique.length - 1; i > 0; i--) {\n        const j = Math.floor(Math.random() * (i + 1));\n        [unique[i], unique[j]] = [unique[j], unique[i]];\n      }\n\n      return unique.slice(0, 20).map(p => {\n        const price = parseFloat(p.price || 0);\n        const compareAt = parseFloat(p.compare_at_price || 0);\n        const hasDiscount = compareAt > 0 && compareAt > price;\n\n        return {\n          productId: p.product_id,\n          variantId: '',\n          handle: p.handle,\n          title: p.title || '',\n          url: `/products/${p.handle}`,\n          image: p.featured_image_url || '',\n          imageAlt: p.title || '',\n          price: price.toFixed(2) + ' ₪',\n          compareAtPrice: hasDiscount ? compareAt.toFixed(2) + ' ₪' : '',\n          hasDiscount,\n        };\n      });\n    } catch (e) {\n      return [];\n    }\n  }\n\n  // ============================================\n  // STOREFRONT API — FETCH NEW ARRIVALS (FALLBACK)\n  // ============================================\n\n  async function fetchNewArrivals() {\n    const query = `{\n      products(first: 30, sortKey: CREATED_AT, reverse: true) {\n        edges {\n          node {\n            id\n            handle\n            title\n            availableForSale\n            priceRange {\n              minVariantPrice {\n                amount\n                currencyCode\n              }\n            }\n            compareAtPriceRange {\n              minVariantPrice {\n                amount\n                currencyCode\n              }\n            }\n            featuredImage {\n              url\n              altText\n            }\n            variants(first: 1) {\n              edges {\n                node {\n                  id\n                  availableForSale\n                }\n              }\n            }\n          }\n        }\n      }\n    }`;\n\n    try {\n      const response = await fetch(\n        `https://${CONFIG.shopDomain}/api/2025-01/graphql.json`,\n        {\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            'X-Shopify-Storefront-Access-Token': CONFIG.storefrontAccessToken,\n          },\n          body: JSON.stringify({ query }),\n        }\n      );\n\n      const data = await response.json();\n      if (data.errors) return [];\n\n      const products = data.data?.products?.edges?.map(edge => edge.node) || [];\n\n      return products\n        .filter(p => p.availableForSale && !isAccessoryProduct(p))\n        .slice(0, 20)\n        .map(product => {\n          const price = parseFloat(product.priceRange.minVariantPrice.amount);\n          const compareAt = parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount || 0);\n          const hasDiscount = compareAt > 0 && compareAt > price;\n          const productId = product.id.split('/').pop();\n          const variantGid = product.variants?.edges?.[0]?.node?.id || '';\n          const variantId = variantGid.split('/').pop();\n\n          return {\n            productId,\n            variantId,\n            handle: product.handle,\n            title: product.title,\n            url: `/products/${product.handle}`,\n            image: product.featuredImage?.url || '',\n            imageAlt: product.featuredImage?.altText || product.title,\n            price: price.toFixed(2) + ' ₪',\n            compareAtPrice: hasDiscount ? compareAt.toFixed(2) + ' ₪' : '',\n            hasDiscount,\n          };\n        });\n    } catch (e) {\n      return [];\n    }\n  }\n\n  // ============================================\n  // BUILD THE OVERLAY\n  // ============================================\n\n  function buildOverlay() {\n    const el = document.createElement('div');\n    el.className = 'vso-overlay';\n    el.setAttribute('role', 'dialog');\n    el.setAttribute('aria-modal', 'true');\n    el.setAttribute('aria-label', 'חיפוש');\n\n    el.innerHTML = `\n      <div class=\"vso-header\">\n        <div class=\"vso-search-wrapper\">\n          <span class=\"vso-search-icon\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 22 22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n              <circle cx=\"11\" cy=\"10\" r=\"7\"></circle>\n              <path d=\"m16 15 3 3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n            </svg>\n          </span>\n          <input type=\"search\" class=\"vso-search-input\" placeholder=\"חפש את...\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" aria-label=\"חיפוש\" />\n        </div>\n        <button class=\"vso-close-btn\" type=\"button\" aria-label=\"סגור\">\n          <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n            <path d=\"M17.658 6.343 6.344 17.657M17.658 17.657 6.344 6.343\"></path>\n          </svg>\n        </button>\n      </div>\n\n      <div class=\"vso-body\">\n        <div class=\"vso-idle-content\">\n          <div class=\"vso-section-title\">חיפושים פופולריים</div>\n          <div class=\"vso-pills\" id=\"vso-pills\"></div>\n\n          <div class=\"vso-carousel-wrapper\" id=\"vso-recommended-wrapper\">\n            <div class=\"vso-section-title\" id=\"vso-recommended-title\"></div>\n            <div class=\"vso-carousel\" id=\"vso-recommended-carousel\">\n              ${buildSkeletons()}\n            </div>\n          </div>\n\n          <div class=\"vso-carousel-wrapper\">\n            <div class=\"vso-section-title\">בסט סלרס</div>\n            <div class=\"vso-carousel\" id=\"vso-carousel\">\n              ${buildSkeletons()}\n            </div>\n          </div>\n        </div>\n\n        <div class=\"vso-predictive-area\" id=\"vso-predictive-area\"></div>\n      </div>\n    `;\n\n    // Populate pills as buttons that trigger in-overlay search\n    const pillsContainer = el.querySelector('#vso-pills');\n    CONFIG.topSearches.forEach(item => {\n      const pill = document.createElement('button');\n      pill.type = 'button';\n      pill.className = 'vso-pill';\n      pill.setAttribute('data-search-term', item.text);\n      pill.textContent = item.text;\n      pillsContainer.appendChild(pill);\n    });\n\n    return el;\n  }\n\n  function buildSkeletons() {\n    let html = '';\n    for (let i = 0; i < 4; i++) {\n      html += `\n        <div class=\"vso-skel-card\">\n          <div class=\"vso-skel-img\"></div>\n          <div class=\"vso-skel-text vso-skel-text--long\"></div>\n          <div class=\"vso-skel-text vso-skel-text--short\"></div>\n        </div>`;\n    }\n    return html;\n  }\n\n  // ============================================\n  // RENDER PRODUCTS INTO CAROUSEL\n  // ============================================\n\n  function renderRecommendedCarousel(products, title) {\n    const wrapper = overlayEl.querySelector('#vso-recommended-wrapper');\n    const titleEl = overlayEl.querySelector('#vso-recommended-title');\n    const carousel = overlayEl.querySelector('#vso-recommended-carousel');\n    if (!wrapper || !carousel || !titleEl) return;\n\n    if (products.length === 0) {\n      wrapper.style.display = 'none';\n      return;\n    }\n\n    titleEl.textContent = title;\n    carousel.innerHTML = products.map(product => {\n      const priceHTML = product.hasDiscount\n        ? `<span class=\"vso-price vso-price--sale\">${product.price}</span>\n           <span class=\"vso-price vso-price--compare\">${product.compareAtPrice}</span>`\n        : `<span class=\"vso-price\">${product.price}</span>`;\n\n      const quickAddSvg = `<svg fill=\"none\" width=\"14\" height=\"14\" viewBox=\"0 0 16 14\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7.75 4.75H2.283a1 1 0 0 0-.97 1.244l1.574 6.25a1 1 0 0 0 .97.756h7.787a1 1 0 0 0 .97-.756l1.573-6.25a1 1 0 0 0-.97-1.244H7.75Zm0 0V1\"></path></svg>`;\n\n      const hasVariant = product.variantId && product.variantId !== '';\n      const quickAddBtn = hasVariant\n        ? `<button type=\"button\" class=\"vso-quick-add-btn\" aria-label=\"הוספה מהירה\" data-variant-id=\"${product.variantId}\" data-product-id=\"${product.productId}\">${quickAddSvg}</button>`\n        : '';\n\n      return `\n        <div class=\"vso-product-card\" data-product-id=\"${product.productId}\" data-handle=\"${product.handle}\" data-variant-id=\"${product.variantId || ''}\">\n          <div class=\"vso-product-img-wrap\">\n            <a href=\"${product.url}\" class=\"vso-product-link\" draggable=\"false\">\n              <img src=\"${product.image}\" alt=\"${(product.imageAlt || product.title).replace(/\"/g, '&quot;')}\" class=\"vso-product-img\" loading=\"lazy\" draggable=\"false\" />\n            </a>\n            ${quickAddBtn}\n          </div>\n          <div class=\"vso-product-info\">\n            <div class=\"vso-product-title\"><a href=\"${product.url}\">${product.title}</a></div>\n            <div class=\"vso-product-prices\">${priceHTML}</div>\n          </div>\n        </div>`;\n    }).join('');\n\n    attachProductTracking();\n    attachQuickAddHandlers();\n  }\n\n  function renderProducts(products) {\n    const carousel = overlayEl.querySelector('#vso-carousel');\n    if (!carousel) return;\n\n    if (products.length === 0) {\n      carousel.innerHTML = '<div style=\"padding:12px;color:#69727b;font-size:13px;\">אין מוצרים להצגה</div>';\n      return;\n    }\n\n    carousel.innerHTML = products.map(product => {\n      const priceHTML = product.hasDiscount\n        ? `<span class=\"vso-price vso-price--sale\">${product.price}</span>\n           <span class=\"vso-price vso-price--compare\">${product.compareAtPrice}</span>`\n        : `<span class=\"vso-price\">${product.price}</span>`;\n\n      const quickAddSvg = `<svg fill=\"none\" width=\"14\" height=\"14\" viewBox=\"0 0 16 14\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7.75 4.75H2.283a1 1 0 0 0-.97 1.244l1.574 6.25a1 1 0 0 0 .97.756h7.787a1 1 0 0 0 .97-.756l1.573-6.25a1 1 0 0 0-.97-1.244H7.75Zm0 0V1\"></path></svg>`;\n\n      return `\n        <div class=\"vso-product-card\" data-product-id=\"${product.productId}\" data-handle=\"${product.handle}\" data-variant-id=\"${product.variantId}\">\n          <div class=\"vso-product-img-wrap\">\n            <a href=\"${product.url}\" class=\"vso-product-link\" draggable=\"false\">\n              <img src=\"${product.image}\" alt=\"${product.imageAlt}\" class=\"vso-product-img\" loading=\"lazy\" draggable=\"false\" />\n            </a>\n            <button type=\"button\" class=\"vso-quick-add-btn\" aria-label=\"הוספה מהירה\" data-variant-id=\"${product.variantId}\" data-product-id=\"${product.productId}\">\n              ${quickAddSvg}\n            </button>\n          </div>\n          <div class=\"vso-product-info\">\n            <div class=\"vso-product-title\"><a href=\"${product.url}\">${product.title}</a></div>\n            <div class=\"vso-product-prices\">${priceHTML}</div>\n          </div>\n        </div>`;\n    }).join('');\n\n    attachProductTracking();\n    attachQuickAddHandlers();\n  }\n\n  // ============================================\n  // QUICK ADD TO CART (native form submission)\n  // ============================================\n\n  function attachQuickAddHandlers() {\n    const buttons = overlayEl.querySelectorAll('.vso-quick-add-btn');\n    buttons.forEach(btn => {\n      btn.addEventListener('click', async function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        const variantId = this.getAttribute('data-variant-id');\n        const productId = this.getAttribute('data-product-id');\n        if (!variantId) return;\n\n        const originalHTML = this.innerHTML;\n        this.innerHTML = '<span style=\"width:14px;height:14px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;display:inline-block;animation:vsoSpin 0.6s linear infinite\"></span>';\n        this.disabled = true;\n\n        if (!document.getElementById('vso-spin-style')) {\n          const spinStyle = document.createElement('style');\n          spinStyle.id = 'vso-spin-style';\n          spinStyle.textContent = '@keyframes vsoSpin { to { transform: rotate(360deg); } }';\n          document.head.appendChild(spinStyle);\n        }\n\n        try {\n          const rootUrl = window.Shopify?.routes?.root || '/';\n\n          const drawerSectionEl = document.querySelector('[id*=\"cart-drawer\"].shopify-section');\n          const headerSectionEl = document.querySelector('[id*=\"header\"].shopify-section');\n          const sections = [];\n          if (drawerSectionEl) sections.push(drawerSectionEl.id.replace('shopify-section-', ''));\n          if (headerSectionEl) sections.push(headerSectionEl.id.replace('shopify-section-', ''));\n\n          const body = {\n            items: [{ id: parseInt(variantId), quantity: 1 }],\n          };\n          if (sections.length > 0) {\n            body.sections = sections.join(',');\n            body.sections_url = window.location.pathname;\n          }\n\n          const response = await fetch(rootUrl + 'cart/add.js', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application/json' },\n            body: JSON.stringify(body),\n          });\n\n          const result = await response.json();\n\n          if (!response.ok || result.status) {\n            throw new Error(result.description || 'Failed to add');\n          }\n\n          // Update cart sections\n          if (result.sections) {\n            Object.entries(result.sections).forEach(([sectionId, html]) => {\n              if (html === null || html === undefined) return;\n              const el = document.getElementById('shopify-section-' + sectionId);\n              if (el) {\n                el.outerHTML = html;\n                document.dispatchEvent(new CustomEvent('shopify:section:load', {\n                  detail: { sectionId },\n                }));\n              }\n            });\n          }\n\n          // Fire influenced-revenue event\n          if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n            Variant.publishCustomEvent('influenced-revenue', {\n              experiment_id: CONFIG.experimentId,\n              variation_id: CONFIG.variationId,\n            });\n          }\n\n          // Show success state\n          this.innerHTML = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg>';\n          setTimeout(() => {\n            this.innerHTML = originalHTML;\n            this.disabled = false;\n          }, 1500);\n\n          // Close overlay and open cart drawer\n          closeOverlay();\n          setTimeout(() => {\n            requestAnimationFrame(() => {\n              const cartDrawer = document.querySelector('cart-drawer');\n              if (cartDrawer) {\n                cartDrawer.removeAttribute('inert');\n                cartDrawer.setAttribute('open', '');\n              }\n            });\n          }, 100);\n\n        } catch (err) {\n          this.innerHTML = originalHTML;\n          this.disabled = false;\n        }\n      });\n    });\n  }\n\n  // ============================================\n  // PRODUCT CLICK TRACKING\n  // ============================================\n\n  function attachProductTracking() {\n    const cards = overlayEl.querySelectorAll('.vso-product-card');\n    cards.forEach(card => {\n      const productId = card.getAttribute('data-product-id');\n      const links = card.querySelectorAll('a');\n\n      links.forEach(link => {\n        link.addEventListener('click', function (e) {\n          e.preventDefault();\n          const destinationUrl = this.href;\n\n          const safetyTimeout = setTimeout(() => {\n            window.location.href = destinationUrl;\n          }, 2000);\n\n          try {\n            if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n              if (productId) {\n                Variant.publishCustomEvent('product-clicked-attribution', {\n                  experiment_id: CONFIG.experimentId,\n                  variation_id: CONFIG.variationId,\n                  product_id: productId,\n                });\n              }\n              Variant.publishCustomEvent('influenced-revenue', {\n                experiment_id: CONFIG.experimentId,\n                variation_id: CONFIG.variationId,\n              });\n            }\n          } catch (err) {\n            // Safety timeout will handle redirect\n          }\n\n          clearTimeout(safetyTimeout);\n          window.location.href = destinationUrl;\n        });\n      });\n    });\n  }\n\n  // ============================================\n  // SEARCH VIA STOREFRONT API\n  // ============================================\n\n  let searchDebounceTimer = null;\n  let currentSearchId = 0;\n\n  function showSearchLoading(container) {\n    let skeletons = '';\n    for (let i = 0; i < 4; i++) {\n      skeletons += `\n        <div class=\"vso-search-loading-item\">\n          <div class=\"vso-skel-thumb\"></div>\n          <div class=\"vso-skel-lines\">\n            <div class=\"vso-skel-text vso-skel-text--long\"></div>\n            <div class=\"vso-skel-text vso-skel-text--short\"></div>\n          </div>\n        </div>`;\n    }\n    container.innerHTML = '<div class=\"vso-search-loading\">' + skeletons + '</div>';\n  }\n\n  function setupSearchInput() {\n    const input = overlayEl.querySelector('.vso-search-input');\n    const idleContent = overlayEl.querySelector('.vso-idle-content');\n    const predictiveArea = overlayEl.querySelector('#vso-predictive-area');\n\n    if (!input) return;\n\n    input.addEventListener('input', function () {\n      const query = this.value.trim();\n\n      clearTimeout(searchDebounceTimer);\n\n      if (query.length === 0) {\n        currentSearchId++;\n        idleContent.classList.remove('vso-hide');\n        predictiveArea.classList.remove('vso-show');\n        predictiveArea.innerHTML = '';\n        return;\n      }\n\n      idleContent.classList.add('vso-hide');\n      predictiveArea.classList.add('vso-show');\n      showSearchLoading(predictiveArea);\n\n      searchDebounceTimer = setTimeout(() => {\n        fetchSearchResults(query, predictiveArea);\n      }, 150);\n    });\n\n    input.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter') {\n        e.preventDefault();\n        const query = this.value.trim();\n        if (query) {\n          window.location.href = '/search?q=' + encodeURIComponent(query);\n        }\n      }\n    });\n\n    overlayEl.addEventListener('click', function (e) {\n      const pill = e.target.closest('.vso-pill');\n      if (!pill) return;\n      e.preventDefault();\n      e.stopPropagation();\n\n      const term = pill.getAttribute('data-search-term');\n      if (!term) return;\n\n      input.value = term;\n      input.focus();\n\n      idleContent.classList.add('vso-hide');\n      predictiveArea.classList.add('vso-show');\n      showSearchLoading(predictiveArea);\n\n      clearTimeout(searchDebounceTimer);\n      fetchSearchResults(term, predictiveArea);\n    });\n  }\n\n  async function fetchSearchResults(query, container) {\n    const thisSearchId = ++currentSearchId;\n\n    const gql = `{\n      search(query: \"${query.replace(/\"/g, '\\\\\"')}\", types: PRODUCT, first: 8) {\n        edges {\n          node {\n            ... on Product {\n              id\n              handle\n              title\n              availableForSale\n              options { name values }\n              featuredImage {\n                url\n                altText\n              }\n              priceRange {\n                minVariantPrice {\n                  amount\n                  currencyCode\n                }\n              }\n              compareAtPriceRange {\n                minVariantPrice {\n                  amount\n                  currencyCode\n                }\n              }\n              variants(first: 30) {\n                edges {\n                  node {\n                    id\n                    title\n                    availableForSale\n                    price { amount }\n                    compareAtPrice { amount }\n                    selectedOptions { name value }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }`;\n\n    try {\n      const response = await fetch(\n        `https://${CONFIG.shopDomain}/api/2025-01/graphql.json`,\n        {\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            'X-Shopify-Storefront-Access-Token': CONFIG.storefrontAccessToken,\n          },\n          body: JSON.stringify({ query: gql }),\n        }\n      );\n\n      if (thisSearchId !== currentSearchId) return;\n\n      const data = await response.json();\n      const products = (data.data?.search?.edges || [])\n        .map(e => e.node)\n        .filter(p => p.id && p.availableForSale);\n\n      if (thisSearchId !== currentSearchId) return;\n\n      if (products.length === 0) {\n        container.innerHTML = `\n          <div class=\"vso-no-results\">לא נמצאו תוצאות עבור \"${query}\"</div>\n          <a href=\"/search?q=${encodeURIComponent(query)}\" class=\"vso-view-all\">חפש \"${query}\" בכל האתר</a>`;\n        return;\n      }\n\n      let html = '<div class=\"vso-results-list\">';\n      products.forEach(product => {\n        const price = parseFloat(product.priceRange.minVariantPrice.amount);\n        const compareAt = parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount || 0);\n        const hasDiscount = compareAt > 0 && compareAt > price;\n        const productId = product.id.split('/').pop();\n        const imgUrl = product.featuredImage?.url\n          ? product.featuredImage.url.replace(/(\\?|&)width=\\d+/g, '') + (product.featuredImage.url.includes('?') ? '&' : '?') + 'width=120'\n          : '';\n\n        const variants = (product.variants?.edges || []).map(e => e.node);\n        const isSimple = variants.length <= 1;\n        const firstVariantId = variants[0]?.id?.split('/').pop() || '';\n\n        let priceHTML;\n        if (hasDiscount) {\n          priceHTML = `<span class=\"vso-result-price vso-result-price--sale\">${price.toFixed(2)} ₪</span>\n                       <span class=\"vso-result-price vso-result-price--compare\">${compareAt.toFixed(2)} ₪</span>`;\n        } else {\n          priceHTML = `<span class=\"vso-result-price\">${price.toFixed(2)} ₪</span>`;\n        }\n\n        const addBtnSvg = `<svg fill=\"none\" width=\"14\" height=\"14\" viewBox=\"0 0 16 14\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7.75 4.75H2.283a1 1 0 0 0-.97 1.244l1.574 6.25a1 1 0 0 0 .97.756h7.787a1 1 0 0 0 .97-.756l1.573-6.25a1 1 0 0 0-.97-1.244H7.75Zm0 0V1\"></path></svg>`;\n\n        // Build variant picker HTML for complex products\n        let variantPickerHTML = '';\n        if (!isSimple) {\n          const options = product.options || [];\n          // Only show options that have real values (not \"Default Title\")\n          const realOptions = options.filter(o => !(o.values.length === 1 && o.values[0] === 'Default Title'));\n\n          if (realOptions.length > 0) {\n            // Encode variant data as JSON for JS to use\n            const variantDataEncoded = encodeURIComponent(JSON.stringify(variants.map(v => ({\n              id: v.id.split('/').pop(),\n              available: v.availableForSale,\n              price: parseFloat(v.price?.amount || 0),\n              compareAt: parseFloat(v.compareAtPrice?.amount || 0),\n              options: (v.selectedOptions || []).reduce((acc, o) => { acc[o.name] = o.value; return acc; }, {}),\n            }))));\n\n            let optionsHTML = '';\n            realOptions.forEach(opt => {\n              optionsHTML += `<div class=\"vso-option-group\"><div class=\"vso-option-label\">${opt.name}</div><div class=\"vso-option-pills\">`;\n              opt.values.forEach(val => {\n                optionsHTML += `<button type=\"button\" class=\"vso-option-pill\" data-option-name=\"${opt.name}\" data-option-value=\"${val.replace(/\"/g, '&quot;')}\">${val}</button>`;\n              });\n              optionsHTML += '</div></div>';\n            });\n\n            variantPickerHTML = `\n              <div class=\"vso-variant-picker\" data-variants=\"${variantDataEncoded}\" data-product-id=\"${productId}\">\n                ${optionsHTML}\n                <div class=\"vso-picker-add-row\">\n                  <div class=\"vso-picker-price\"></div>\n                  <button type=\"button\" class=\"vso-picker-add-btn\" disabled>הוסף לסל</button>\n                </div>\n              </div>`;\n          }\n        }\n\n        const hasComplexPicker = variantPickerHTML !== '';\n\n        html += `\n          <div class=\"vso-result-item-wrap\">\n            <a href=\"/products/${product.handle}\" class=\"vso-result-item\" data-product-id=\"${productId}\">\n              <div class=\"vso-result-thumb\">\n                ${imgUrl ? `<img src=\"${imgUrl}\" alt=\"${(product.featuredImage?.altText || product.title).replace(/\"/g, '&quot;')}\" loading=\"lazy\" />` : ''}\n              </div>\n              <div class=\"vso-result-details\">\n                <div class=\"vso-result-name\">${product.title}</div>\n                <div class=\"vso-result-price-row\">${priceHTML}</div>\n              </div>\n              <button type=\"button\" class=\"vso-result-add-btn\" data-variant-id=\"${firstVariantId}\" data-product-id=\"${productId}\" data-is-simple=\"${isSimple && !hasComplexPicker}\" aria-label=\"הוספה מהירה\">${addBtnSvg}</button>\n            </a>\n            ${variantPickerHTML}\n          </div>`;\n      });\n      html += '</div>';\n      html += `<a href=\"/search?q=${encodeURIComponent(query)}\" class=\"vso-view-all\">הצג את כל התוצאות</a>`;\n\n      container.innerHTML = html;\n\n      attachSearchResultHandlers(container);\n\n    } catch (err) {\n      if (thisSearchId !== currentSearchId) return;\n      container.innerHTML = `\n        <a href=\"/search?q=${encodeURIComponent(query)}\" class=\"vso-view-all\">חפש \"${query}\" בכל האתר</a>`;\n    }\n  }\n\n  // ============================================\n  // SEARCH RESULT: ADD-TO-CART + VARIANT PICKER\n  // ============================================\n\n  function attachSearchResultHandlers(container) {\n    // Track clicks on product links (navigate to PDP)\n    container.querySelectorAll('.vso-result-item').forEach(item => {\n      item.addEventListener('click', function (e) {\n        // If click was on the add-to-cart button, don't navigate\n        if (e.target.closest('.vso-result-add-btn')) return;\n\n        e.preventDefault();\n        const dest = this.href;\n        const pid = this.getAttribute('data-product-id');\n\n        const safetyTimeout = setTimeout(() => {\n          window.location.href = dest;\n        }, 2000);\n\n        try {\n          if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n            if (pid) {\n              Variant.publishCustomEvent('product-clicked-attribution', {\n                experiment_id: CONFIG.experimentId,\n                variation_id: CONFIG.variationId,\n                product_id: pid,\n              });\n            }\n            Variant.publishCustomEvent('influenced-revenue', {\n              experiment_id: CONFIG.experimentId,\n              variation_id: CONFIG.variationId,\n            });\n          }\n        } catch (err) {}\n\n        clearTimeout(safetyTimeout);\n        window.location.href = dest;\n      });\n    });\n\n    // Handle add-to-cart button clicks\n    container.querySelectorAll('.vso-result-add-btn').forEach(btn => {\n      btn.addEventListener('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        const isSimple = this.getAttribute('data-is-simple') === 'true';\n\n        if (isSimple) {\n          // Simple product — add directly\n          addSearchResultToCart(this, this.getAttribute('data-variant-id'));\n        } else {\n          // Complex product — toggle variant picker\n          const wrap = this.closest('.vso-result-item-wrap');\n          const picker = wrap?.querySelector('.vso-variant-picker');\n          if (!picker) return;\n\n          // Close any other open pickers first\n          container.querySelectorAll('.vso-variant-picker.vso-picker-open').forEach(p => {\n            if (p !== picker) p.classList.remove('vso-picker-open');\n          });\n\n          picker.classList.toggle('vso-picker-open');\n        }\n      });\n    });\n\n    // Handle option pill clicks inside variant pickers\n    container.querySelectorAll('.vso-option-pill').forEach(pill => {\n      pill.addEventListener('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        const optName = this.getAttribute('data-option-name');\n        const group = this.closest('.vso-option-group');\n\n        // Select this pill, deselect siblings\n        group.querySelectorAll('.vso-option-pill').forEach(p => p.classList.remove('vso-pill-selected'));\n        this.classList.add('vso-pill-selected');\n\n        // Update variant matching\n        const picker = this.closest('.vso-variant-picker');\n        updateVariantPicker(picker);\n      });\n    });\n\n    // Handle picker add-to-cart button clicks\n    container.querySelectorAll('.vso-picker-add-btn').forEach(btn => {\n      btn.addEventListener('click', function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        const variantId = this.getAttribute('data-selected-variant');\n        if (!variantId) return;\n        addSearchResultToCart(this, variantId);\n      });\n    });\n  }\n\n  function updateVariantPicker(picker) {\n    if (!picker) return;\n\n    const variantData = JSON.parse(decodeURIComponent(picker.getAttribute('data-variants') || '[]'));\n    const selectedOptions = {};\n\n    // Gather selected option values\n    picker.querySelectorAll('.vso-option-pill.vso-pill-selected').forEach(p => {\n      selectedOptions[p.getAttribute('data-option-name')] = p.getAttribute('data-option-value');\n    });\n\n    const optionNames = [...new Set(picker.querySelectorAll('.vso-option-pill').length > 0\n      ? [...picker.querySelectorAll('[data-option-name]')].map(el => el.getAttribute('data-option-name'))\n      : [])];\n    const uniqueNames = [...new Set(optionNames)];\n\n    // Mark unavailable pills based on current selections\n    uniqueNames.forEach(name => {\n      const pills = picker.querySelectorAll(`.vso-option-pill[data-option-name=\"${name}\"]`);\n      pills.forEach(pill => {\n        const testVal = pill.getAttribute('data-option-value');\n        const testOptions = { ...selectedOptions, [name]: testVal };\n\n        // Check if any variant matches these options and is available\n        const hasAvailable = variantData.some(v => {\n          return v.available && Object.entries(testOptions).every(([k, val]) => v.options[k] === val);\n        });\n\n        pill.classList.toggle('vso-pill-unavailable', !hasAvailable);\n      });\n    });\n\n    // Find the matched variant\n    const allSelected = uniqueNames.every(n => selectedOptions[n]);\n    const addBtn = picker.querySelector('.vso-picker-add-btn');\n    const priceEl = picker.querySelector('.vso-picker-price');\n\n    if (allSelected) {\n      const match = variantData.find(v =>\n        Object.entries(selectedOptions).every(([k, val]) => v.options[k] === val)\n      );\n\n      if (match && match.available) {\n        addBtn.disabled = false;\n        addBtn.setAttribute('data-selected-variant', match.id);\n        const hasDiscount = match.compareAt > 0 && match.compareAt > match.price;\n        priceEl.innerHTML = hasDiscount\n          ? `<span style=\"color:rgb(227,79,79)\">${match.price.toFixed(2)} ₪</span> <span style=\"text-decoration:line-through;color:#69727b;font-size:11px\">${match.compareAt.toFixed(2)} ₪</span>`\n          : `${match.price.toFixed(2)} ₪`;\n      } else {\n        addBtn.disabled = true;\n        addBtn.removeAttribute('data-selected-variant');\n        priceEl.textContent = match ? 'אזל מהמלאי' : '';\n      }\n    } else {\n      addBtn.disabled = true;\n      addBtn.removeAttribute('data-selected-variant');\n      priceEl.textContent = '';\n    }\n  }\n\n  async function addSearchResultToCart(btnEl, variantId) {\n    if (!variantId) return;\n\n    const originalHTML = btnEl.innerHTML;\n    btnEl.innerHTML = '<span style=\"width:14px;height:14px;border:2px solid rgba(39,39,39,0.2);border-top-color:#272727;border-radius:50%;display:inline-block;animation:vsoSpin 0.6s linear infinite\"></span>';\n    btnEl.disabled = true;\n\n    if (!document.getElementById('vso-spin-style')) {\n      const spinStyle = document.createElement('style');\n      spinStyle.id = 'vso-spin-style';\n      spinStyle.textContent = '@keyframes vsoSpin { to { transform: rotate(360deg); } }';\n      document.head.appendChild(spinStyle);\n    }\n\n    try {\n      const rootUrl = window.Shopify?.routes?.root || '/';\n\n      const drawerSectionEl = document.querySelector('[id*=\"cart-drawer\"].shopify-section');\n      const headerSectionEl = document.querySelector('[id*=\"header\"].shopify-section');\n      const sections = [];\n      if (drawerSectionEl) sections.push(drawerSectionEl.id.replace('shopify-section-', ''));\n      if (headerSectionEl) sections.push(headerSectionEl.id.replace('shopify-section-', ''));\n\n      const body = {\n        items: [{ id: parseInt(variantId), quantity: 1 }],\n      };\n      if (sections.length > 0) {\n        body.sections = sections.join(',');\n        body.sections_url = window.location.pathname;\n      }\n\n      const response = await fetch(rootUrl + 'cart/add.js', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify(body),\n      });\n\n      const result = await response.json();\n\n      if (!response.ok || result.status) {\n        throw new Error(result.description || 'Failed to add');\n      }\n\n      if (result.sections) {\n        Object.entries(result.sections).forEach(([sectionId, sectionHtml]) => {\n          if (sectionHtml === null || sectionHtml === undefined) return;\n          const el = document.getElementById('shopify-section-' + sectionId);\n          if (el) {\n            el.outerHTML = sectionHtml;\n            document.dispatchEvent(new CustomEvent('shopify:section:load', {\n              detail: { sectionId },\n            }));\n          }\n        });\n      }\n\n      if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n        const productId = btnEl.getAttribute('data-product-id')\n          || btnEl.closest('[data-product-id]')?.getAttribute('data-product-id')\n          || '';\n        if (productId) {\n          Variant.publishCustomEvent('product-clicked-attribution', {\n            experiment_id: CONFIG.experimentId,\n            variation_id: CONFIG.variationId,\n            product_id: productId,\n          });\n        }\n        Variant.publishCustomEvent('influenced-revenue', {\n          experiment_id: CONFIG.experimentId,\n          variation_id: CONFIG.variationId,\n        });\n      }\n\n      // Success — close overlay and open cart drawer\n      closeOverlay();\n      setTimeout(() => {\n        requestAnimationFrame(() => {\n          const cartDrawer = document.querySelector('cart-drawer');\n          if (cartDrawer) {\n            cartDrawer.removeAttribute('inert');\n            cartDrawer.setAttribute('open', '');\n          }\n        });\n      }, 100);\n\n    } catch (err) {\n      btnEl.innerHTML = originalHTML;\n      btnEl.disabled = false;\n    }\n  }\n\n  // ============================================\n  // RECOMMENDED CAROUSEL LOADING LOGIC\n  // ============================================\n\n  // Convert recently viewed localStorage products into carousel card format\n  function formatRecentlyViewedForCarousel(recentlyViewed) {\n    const currencyToSymbol = (text) => {\n      if (!text) return text;\n      return text.replace(/\\s?ILS\\s?$/i, ' ₪').trim();\n    };\n\n    return recentlyViewed\n      .filter(p => p.handle && p.image && !isAccessoryProduct(p))\n      .slice(0, 8)\n      .map(p => ({\n        productId: String(p.productId || ''),\n        variantId: '',\n        handle: p.handle,\n        title: p.title || '',\n        url: `/products/${p.handle}`,\n        image: p.image,\n        imageAlt: p.title || '',\n        price: currencyToSymbol(p.price || ''),\n        compareAtPrice: p.hasDiscount ? currencyToSymbol(p.compareAtPrice || '') : '',\n        hasDiscount: p.hasDiscount || false,\n      }));\n  }\n\n  // Fetch similar products via Storefront API search using recently viewed product titles\n  async function fetchSimilarViaSearch(recentlyViewed, excludeIds) {\n    const recentTitles = recentlyViewed.slice(0, 5).map(p => p.title).filter(Boolean);\n    if (recentTitles.length === 0) return [];\n\n    const keywords = recentTitles\n      .map(t => t.split(/[\\s|,\\-–]+/).filter(w => w.length > 2)[0])\n      .filter(Boolean);\n    if (keywords.length === 0) return [];\n\n    const recentHandles = new Set(recentlyViewed.map(p => p.handle));\n    const seenIds = new Set(excludeIds);\n    const allProducts = [];\n\n    const searchRequests = keywords.map(async (keyword) => {\n      const gql = `{\n        search(query: \"${keyword.replace(/\"/g, '\\\\\"')}\", types: PRODUCT, first: 10) {\n          edges {\n            node {\n              ... on Product {\n                id\n                handle\n                title\n                availableForSale\n                featuredImage { url altText }\n                priceRange { minVariantPrice { amount currencyCode } }\n                compareAtPriceRange { minVariantPrice { amount currencyCode } }\n                variants(first: 1) { edges { node { id } } }\n              }\n            }\n          }\n        }\n      }`;\n\n      try {\n        const response = await fetch(\n          `https://${CONFIG.shopDomain}/api/2025-01/graphql.json`,\n          {\n            method: 'POST',\n            headers: {\n              'Content-Type': 'application/json',\n              'X-Shopify-Storefront-Access-Token': CONFIG.storefrontAccessToken,\n            },\n            body: JSON.stringify({ query: gql }),\n          }\n        );\n        const data = await response.json();\n        return (data.data?.search?.edges || []).map(e => e.node).filter(p => p.id && p.availableForSale);\n      } catch (e) {\n        return [];\n      }\n    });\n\n    const results = await Promise.all(searchRequests);\n\n    for (const products of results) {\n      for (const product of products) {\n        const productId = product.id.split('/').pop();\n        if (!seenIds.has(productId) && !recentHandles.has(product.handle) && !isAccessoryProduct(product)) {\n          seenIds.add(productId);\n          const price = parseFloat(product.priceRange.minVariantPrice.amount);\n          const compareAt = parseFloat(product.compareAtPriceRange?.minVariantPrice?.amount || 0);\n          const hasDiscount = compareAt > 0 && compareAt > price;\n          const variantGid = product.variants?.edges?.[0]?.node?.id || '';\n          const variantId = variantGid.split('/').pop();\n\n          allProducts.push({\n            productId,\n            variantId,\n            handle: product.handle,\n            title: product.title,\n            url: `/products/${product.handle}`,\n            image: product.featuredImage?.url || '',\n            imageAlt: product.featuredImage?.altText || product.title,\n            price: price.toFixed(2) + ' ₪',\n            compareAtPrice: hasDiscount ? compareAt.toFixed(2) + ' ₪' : '',\n            hasDiscount,\n          });\n        }\n      }\n    }\n\n    for (let i = allProducts.length - 1; i > 0; i--) {\n      const j = Math.floor(Math.random() * (i + 1));\n      [allProducts[i], allProducts[j]] = [allProducts[j], allProducts[i]];\n    }\n\n    return allProducts;\n  }\n\n  async function loadRecommendedCarousel() {\n    const recentlyViewed = getRecentlyViewedProducts();\n    const hasUserData = recentlyViewed.length > 0;\n\n    try {\n      if (hasUserData) {\n        const recentCards = formatRecentlyViewedForCarousel(recentlyViewed);\n        const recentIds = new Set(recentCards.map(p => String(p.productId)));\n\n        let similarCards = [];\n        try {\n          similarCards = await fetchSimilarFromRecentlyViewed();\n        } catch (_) { similarCards = []; }\n\n        if (similarCards.length === 0) {\n          try {\n            similarCards = await fetchSimilarViaSearch(recentlyViewed, recentIds);\n          } catch (_) { similarCards = []; }\n        } else {\n          similarCards = similarCards.filter(p => !recentIds.has(String(p.productId)));\n        }\n\n        const merged = [...recentCards, ...similarCards].slice(0, 20);\n\n        if (merged.length > 0) {\n          renderRecommendedCarousel(merged, 'אולי יעניין אותך גם');\n          return;\n        }\n      }\n    } catch (_) {\n      // If personalized carousel fails, fall through to new arrivals\n    }\n\n    // Fallback: new arrivals (always attempted if personalized carousel didn't render)\n    try {\n      const newProducts = await fetchNewArrivals();\n      if (newProducts.length > 0) {\n        renderRecommendedCarousel(newProducts, 'מוצרים חדשים');\n      } else {\n        const wrapper = overlayEl.querySelector('#vso-recommended-wrapper');\n        if (wrapper) wrapper.style.display = 'none';\n      }\n    } catch (_) {\n      const wrapper = overlayEl.querySelector('#vso-recommended-wrapper');\n      if (wrapper) wrapper.style.display = 'none';\n    }\n  }\n\n  // ============================================\n  // OPEN / CLOSE\n  // ============================================\n\n  let savedScrollY = 0;\n\n  function openOverlay() {\n    if (!overlayEl) return;\n\n    // Prevent native search drawer from opening\n    const nativeDrawer = document.querySelector('#search-drawer');\n    if (nativeDrawer) {\n      nativeDrawer.setAttribute('inert', '');\n      nativeDrawer.style.visibility = 'hidden';\n      nativeDrawer.style.opacity = '0';\n    }\n\n    savedScrollY = window.scrollY;\n    document.body.classList.add('vso-no-scroll');\n    document.body.style.top = `-${savedScrollY}px`;\n\n    overlayEl.classList.add('vso-open');\n\n    // Load recommended carousel (Brain API or new arrivals fallback)\n    if (!recommendedLoaded) {\n      recommendedLoaded = true;\n      loadRecommendedCarousel();\n    }\n\n    // Load bestseller products\n    if (!productsLoaded) {\n      productsLoaded = true;\n      fetchBestsellerProducts().then(products => {\n        productsData = products;\n        renderProducts(products);\n      });\n    }\n\n    setTimeout(() => {\n      const input = overlayEl.querySelector('.vso-search-input');\n      if (input) input.focus();\n    }, 100);\n  }\n\n  function closeOverlay() {\n    if (!overlayEl) return;\n\n    overlayEl.classList.remove('vso-open');\n    document.body.classList.remove('vso-no-scroll');\n    document.body.style.top = '';\n    window.scrollTo(0, savedScrollY);\n\n    // Reset search state\n    const input = overlayEl.querySelector('.vso-search-input');\n    if (input) input.value = '';\n    const idle = overlayEl.querySelector('.vso-idle-content');\n    const pred = overlayEl.querySelector('#vso-predictive-area');\n    if (idle) idle.classList.remove('vso-hide');\n    if (pred) {\n      pred.classList.remove('vso-show');\n      pred.innerHTML = '';\n    }\n\n    // Allow recommended carousel to reload on next open (user may have viewed new products)\n    recommendedLoaded = false;\n  }\n\n  // ============================================\n  // INTERCEPT NATIVE SEARCH TRIGGERS\n  // ============================================\n\n  function fireSearchClickEvent() {\n    try {\n      if (typeof Variant !== 'undefined' && Variant.publishCustomEvent) {\n        Variant.publishCustomEvent('Search Click', {\n          experiment_id: CONFIG.experimentId,\n          variation_id: CONFIG.variationId,\n        });\n      }\n    } catch (err) {}\n  }\n\n  function interceptSearchTriggers() {\n    // Intercept all clicks on elements that control the native search drawer\n    document.addEventListener('click', function (e) {\n      const trigger = e.target.closest('a[aria-controls=\"search-drawer\"], button[aria-controls=\"search-drawer\"]');\n      if (trigger) {\n        e.preventDefault();\n        e.stopPropagation();\n        fireSearchClickEvent();\n        openOverlay();\n        return;\n      }\n    }, true);\n\n    // Also prevent the native drawer from showing via MutationObserver\n    const nativeDrawer = document.querySelector('#search-drawer');\n    if (nativeDrawer) {\n      const observer = new MutationObserver(mutations => {\n        mutations.forEach(mutation => {\n          if (mutation.type === 'attributes') {\n            const style = nativeDrawer.style;\n            if (style.visibility === 'visible' || style.opacity === '1') {\n              style.visibility = 'hidden';\n              style.opacity = '0';\n              nativeDrawer.setAttribute('inert', '');\n              fireSearchClickEvent();\n              openOverlay();\n            }\n          }\n        });\n      });\n      observer.observe(nativeDrawer, { attributes: true, attributeFilter: ['style', 'class'] });\n    }\n  }\n\n  // ============================================\n  // CLOSE BUTTON & OVERLAY EVENTS\n  // ============================================\n\n  function setupOverlayEvents() {\n    const closeBtn = overlayEl.querySelector('.vso-close-btn');\n    if (closeBtn) {\n      closeBtn.addEventListener('click', closeOverlay);\n    }\n\n    // Close on Escape key\n    document.addEventListener('keydown', function (e) {\n      if (e.key === 'Escape' && overlayEl.classList.contains('vso-open')) {\n        closeOverlay();\n      }\n    });\n  }\n\n  // ============================================\n  // INIT\n  // ============================================\n\n  function init() {\n    try {\n      if (document.querySelector('.vso-overlay')) return;\n\n      injectStyles();\n\n      overlayEl = buildOverlay();\n      document.body.appendChild(overlayEl);\n\n      setupOverlayEvents();\n      setupSearchInput();\n      interceptSearchTriggers();\n\n      // Hide native drawer permanently\n      const nativeDrawer = document.querySelector('#search-drawer');\n      if (nativeDrawer) {\n        nativeDrawer.style.visibility = 'hidden';\n        nativeDrawer.style.opacity = '0';\n        nativeDrawer.setAttribute('inert', '');\n      }\n\n    } catch (err) {\n      // Fail silently\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\n/////// visual editor changes start //////\n(function() {\n  'use strict';\n\n// Visual Editor: div : #vso-recommended-wrapper#vso-recommended-wrapper\n    try {\n      const element = document.getElementById('vso-recommended-wrapper');\n      if (element) {\n        element.style.marginTop = '0px';\n        element.style.setProperty('margin-top', '0px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n\n    // Visual Editor: div : html > body > div:nth-child(34) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4) : בסט סלרס...\n    try {\n      const element = document.querySelector('html > body > div:nth-child(34) > div:nth-child(2) > div:nth-child(1) > div:nth-child(4)');\n      if (element) {\n        element.style.marginTop = '-20px';\n        element.style.setProperty('margin-top', '-20px', 'important');\n        element.style.marginBottom = '20px';\n        element.style.setProperty('margin-bottom', '20px', 'important');\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n})();\n/////// visual editor changes end //////"],"weights":[0.5,0.5],"key":"EXP61BD7996","meta":[{"key":"control","name":"Control"},{"key":"variant-1","name":"Variant 1"}],"phase":"0","name":"Smart Search Overlay"}]},"exp-EXP8070F735":{"defaultValue":""},"exp-EXP9F2C0935":{"defaultValue":""},"exp-EXP72BD5D42":{"defaultValue":""},"exp-EXPE8AF972F":{"defaultValue":""},"exp-EXP945BD46D":{"defaultValue":""},"exp-EXP1AB9ED2E":{"defaultValue":""},"exp-EXPE742DC0D":{"defaultValue":""},"exp-EXP2440B550":{"defaultValue":"","rules":[{"id":"exp-ref-rule-EXP2440B550","coverage":1,"hashAttribute":"id","seed":"21bb2c71-39d0-4ef5-bcd7-eb8a85f4ef1f","hashVersion":2,"variations":["","(function () {\n  /* ══════════════════════════════════════════════════════════════════\n   *  Frame Upsell Popup — intercepts Add-to-Cart via fetch patch\n   * ══════════════════════════════════════════════════════════════════ */\n\n  var PREFIX = 'afu';\n  var SF_URL = 'https://asufadesign.co.il/api/2024-01/graphql.json';\n  var SF_TOKEN = 'ac691a2161b6844b779eb6b2ed3cb231';\n  var FRAMES_HANDLE = 'המסגרות-של-אסופה';\n  var COUPON_CODE = 'VariantFrames';\n  var DISCOUNT_PCT = 0.20;\n\n  var popupOpen = false;\n  var debouncing = false;\n  var cachedFrames = null;\n  var sfOptions = [];\n  var sfVariants = [];\n  var tagCheckDone = false;\n  var tagCheckResult = false;\n  var isSetup = false;\n\n  /* ────── 1. Capture original fetch IMMEDIATELY ────── */\n  var _realFetch = window.fetch;\n\n  /* ────── 2. Storefront GraphQL via XHR (proxy-safe) ────── */\n  function sfQuery(query, vars, cb) {\n    try {\n      var x = new XMLHttpRequest();\n      x._afuFromUs = true;\n      x.open('POST', SF_URL, true);\n      x.setRequestHeader('Content-Type', 'application/json');\n      x.setRequestHeader('X-Shopify-Storefront-Access-Token', SF_TOKEN);\n      x.onreadystatechange = function () {\n        if (x.readyState !== 4) return;\n        if (x.status >= 200 && x.status < 300) {\n          try { cb(null, JSON.parse(x.responseText).data); } catch (e) { cb(e); }\n        } else { cb(new Error('sf ' + x.status)); }\n      };\n      x.send(JSON.stringify({ query: query, variables: vars || {} }));\n    } catch (e) { cb(e); }\n  }\n\n  /* ────── 3. Helpers ────── */\n  function getHandle() {\n    var vp = document.querySelector('variant-picker[handle]');\n    if (vp) return vp.getAttribute('handle');\n    try { if (window.ShopifyAnalytics && window.ShopifyAnalytics.meta && window.ShopifyAnalytics.meta.product) return window.ShopifyAnalytics.meta.product.handle; } catch (e) {}\n    var c = document.querySelector('link[rel=\"canonical\"]');\n    if (c) { var m = c.href.match(/\\/products\\/([^/?#]+)/); if (m) return decodeURIComponent(m[1]); }\n    return null;\n  }\n\n  function getSelectedVariantId() {\n    var forms = document.querySelectorAll('form[is=\"product-form\"], form.shopify-product-form');\n    for (var i = 0; i < forms.length; i++) {\n      var id = forms[i].id || '';\n      if (id.indexOf('installment') !== -1 || id.indexOf('quick-buy') !== -1) continue;\n      var inp = forms[i].querySelector('input[name=\"id\"]');\n      if (inp) return parseInt(inp.value, 10);\n    }\n    return null;\n  }\n\n  function variantHasFrame(vid) {\n    if (!sfOptions.length) return false;\n    var fo = null;\n    for (var i = 0; i < sfOptions.length; i++) {\n      var n = sfOptions[i].name.toLowerCase();\n      if (n.indexOf('\\u05DE\\u05E1\\u05D2\\u05D5\\u05E8') !== -1 || n.indexOf('frame') !== -1 || n.indexOf('\\u05DE\\u05E1\\u05D2\\u05E8\\u05EA') !== -1) { fo = sfOptions[i].name; break; }\n    }\n    if (!fo) return false;\n    var gid = 'gid://shopify/ProductVariant/' + vid;\n    for (var j = 0; j < sfVariants.length; j++) {\n      if (sfVariants[j].id === gid) {\n        var so = sfVariants[j].selectedOptions || [];\n        for (var k = 0; k < so.length; k++) { if (so[k].name === fo) return so[k].value.indexOf('\\u05DC\\u05DC\\u05D0') === -1; }\n      }\n    }\n    return false;\n  }\n\n  function getSizeInfo(vid) {\n    if (!sfOptions.length) return { idx: 0, label: '' };\n    var so2 = null;\n    for (var i = 0; i < sfOptions.length; i++) {\n      var n = sfOptions[i].name.toLowerCase();\n      if (n.indexOf('\\u05DE\\u05E1\\u05D2\\u05D5\\u05E8') === -1 && n.indexOf('frame') === -1 && n.indexOf('\\u05DE\\u05E1\\u05D2\\u05E8\\u05EA') === -1) { so2 = sfOptions[i]; break; }\n    }\n    if (!so2) return { idx: 0, label: '' };\n    var gid = 'gid://shopify/ProductVariant/' + vid;\n    for (var j = 0; j < sfVariants.length; j++) {\n      if (sfVariants[j].id === gid) {\n        var opts = sfVariants[j].selectedOptions || [];\n        for (var k = 0; k < opts.length; k++) {\n          if (opts[k].name === so2.name) {\n            var idx = so2.values.indexOf(opts[k].value);\n            return { idx: idx >= 0 ? idx : 0, label: opts[k].value || '' };\n          }\n        }\n      }\n    }\n    return { idx: 0, label: '' };\n  }\n\n  function fmt(p) { var n = parseFloat(p); return isNaN(n) ? '' : '\\u20AA' + n.toFixed(2).replace(/\\.00$/, ''); }\n\n  function isMobile() { return window.innerWidth <= 600; }\n\n  /* ────── 4. Cart drawer helpers ────── */\n  var _closingDrawer = false;\n\n  function closeDrawer() {\n    if (_closingDrawer) return;\n    _closingDrawer = true;\n    try {\n      var dr = document.querySelector('cart-drawer');\n      if (dr) { dr.removeAttribute('open'); dr.setAttribute('aria-hidden', 'true'); }\n    } catch (e) {}\n    _closingDrawer = false;\n  }\n\n  function openDrawer() {\n    requestAnimationFrame(function () {\n      var dr = document.querySelector('cart-drawer');\n      if (dr) { dr.setAttribute('open', ''); dr.removeAttribute('aria-hidden'); }\n    });\n  }\n\n  var _drawerObserver = null;\n  function blockDrawer() {\n    var dr = document.querySelector('cart-drawer');\n    if (!dr) return;\n    closeDrawer();\n    if (_drawerObserver) _drawerObserver.disconnect();\n    _drawerObserver = new MutationObserver(function () {\n      if (popupOpen && !_closingDrawer) closeDrawer();\n    });\n    _drawerObserver.observe(dr, { attributes: true, attributeFilter: ['open'] });\n  }\n  function unblockDrawer() {\n    if (_drawerObserver) { _drawerObserver.disconnect(); _drawerObserver = null; }\n  }\n\n  /* ────── 4b. Cart add via XHR ────── */\n  function addToCart(items, cb) {\n    var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\n    var dSec = document.querySelector('[id*=\"cart-drawer\"].shopify-section');\n    var hSec = document.querySelector('[id*=\"header\"].shopify-section');\n    var secs = [dSec, hSec].map(function (e) { return e ? e.id.replace('shopify-section-', '') : null; }).filter(Boolean).join(',');\n    var body = { items: items };\n    if (secs) { body.sections = secs; body.sections_url = window.location.pathname; }\n    var x = new XMLHttpRequest();\n    x._afuFromUs = true;\n    x.open('POST', root + 'cart/add.js', true);\n    x.setRequestHeader('Content-Type', 'application/json');\n    x.onreadystatechange = function () {\n      if (x.readyState !== 4) return;\n      try {\n        var r = JSON.parse(x.responseText);\n        if (r.sections) {\n          var keys = Object.keys(r.sections);\n          for (var i = 0; i < keys.length; i++) {\n            var html = r.sections[keys[i]];\n            if (!html) continue;\n            var el = document.getElementById('shopify-section-' + keys[i]);\n            if (el) el.outerHTML = html;\n          }\n        }\n        document.dispatchEvent(new CustomEvent('cart:refresh'));\n        document.dispatchEvent(new CustomEvent('cart:added', { detail: r }));\n        if (cb) cb(true);\n      } catch (e) { if (cb) cb(false); }\n    };\n    x.send(JSON.stringify(body));\n  }\n\n  /* ────── 4c. Apply coupon code via XHR ────── */\n  function applyCoupon(code, cb) {\n    var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\n    var x = new XMLHttpRequest();\n    x._afuFromUs = true;\n    x.open('POST', root + 'cart/update.js', true);\n    x.setRequestHeader('Content-Type', 'application/json');\n    x.onreadystatechange = function () {\n      if (x.readyState !== 4) return;\n      if (cb) cb(x.status >= 200 && x.status < 300);\n    };\n    x.send(JSON.stringify({ discount: code }));\n  }\n\n  /* ────── 5. Fetch frames collection ────── */\n  function fetchFrames(cb) {\n    if (cachedFrames) return cb(cachedFrames);\n    sfQuery(\n      'query($h:String!){collection(handle:$h){products(first:20){nodes{title variants(first:10){nodes{id title price{amount}}}images(first:1){nodes{url}}}}}}',\n      { h: FRAMES_HANDLE },\n      function (err, data) {\n        if (err || !data || !data.collection || !data.collection.products) return cb(null);\n        var ns = data.collection.products.nodes;\n        if (!ns.length) return cb(null);\n        cachedFrames = ns.map(function (p) {\n          return {\n            title: p.title,\n            image: p.images.nodes.length ? p.images.nodes[0].url : '',\n            variants: p.variants.nodes.map(function (v) {\n              return { id: parseInt(v.id.replace('gid://shopify/ProductVariant/', ''), 10), title: v.title, price: parseFloat(v.price.amount) };\n            })\n          };\n        });\n        cb(cachedFrames);\n      }\n    );\n  }\n\n  /* ────── 6. CSS ────── */\n  function injectStyles() {\n    if (document.getElementById(PREFIX + '-css')) return;\n    var s = document.createElement('style');\n    s.id = PREFIX + '-css';\n    s.textContent =\n      '.' + PREFIX + '-ov{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.55);z-index:999999;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity .3s;direction:rtl;font-family:system-ui,-apple-system,sans-serif}' +\n      '.' + PREFIX + '-ov.v{opacity:1}' +\n      '.' + PREFIX + '-ov *{box-sizing:border-box}' +\n      '.' + PREFIX + '-m{background:#fff;border-radius:12px;width:725px;max-width:94vw;max-height:90vh;overflow-y:auto;position:relative;padding:36px 34px 32px;box-shadow:0 18px 50px rgba(39,39,39,.15)}' +\n      '.' + PREFIX + '-x{position:absolute;top:14px;left:14px;width:32px;height:32px;background:0 0;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#272727;z-index:2}' +\n      '.' + PREFIX + '-x svg{width:20px;height:20px}' +\n      '.' + PREFIX + '-hd{text-align:center;margin-bottom:28px}' +\n      '.' + PREFIX + '-hd h2{font-size:1.65rem;font-weight:700;color:#272727;margin:0}' +\n      '.' + PREFIX + '-g{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:28px}' +\n      '.' + PREFIX + '-c{border:2px solid rgba(39,39,39,.12);border-radius:10px;cursor:pointer;overflow:hidden;transition:border-color .2s;background:#fff;text-align:center;position:relative}' +\n      '.' + PREFIX + '-c:hover{border-color:rgba(39,39,39,.3)}' +\n      '.' + PREFIX + '-c.sel{border-color:#e9a9a9;box-shadow:0 0 0 1px #e9a9a9}' +\n      '.' + PREFIX + '-ci{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f2f2f2}' +\n      '.' + PREFIX + '-badge{position:absolute;top:8px;left:8px;background:#c0392b;color:#fff;font-size:.6rem;font-weight:700;padding:3px 6px;border-radius:4px;line-height:1;z-index:1;letter-spacing:.02em;direction:ltr;unicode-bidi:isolate}' +\n      '.' + PREFIX + '-cn{padding:10px 8px 12px;min-height:68px;display:flex;flex-direction:column;justify-content:center}' +\n      '.' + PREFIX + '-ct{font-size:.85rem;color:#272727;margin:0 0 2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}' +\n      '.' + PREFIX + '-sz{font-size:.7rem;color:#888;margin:0 0 4px;font-weight:400}' +\n      '.' + PREFIX + '-prices{margin:0;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}' +\n      '.' + PREFIX + '-op{font-size:.75rem;color:#999;text-decoration:line-through;font-weight:400}' +\n      '.' + PREFIX + '-dp{font-size:.9rem;font-weight:700;color:#c0392b}' +\n      '.' + PREFIX + '-a{display:flex;flex-direction:column;align-items:center;gap:10px}' +\n      '.' + PREFIX + '-p1{width:auto;min-width:280px;padding:12px 32px;border:none;border-radius:60px;background:#e9a9a9;color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;text-align:center}' +\n      '.' + PREFIX + '-p1:disabled{opacity:.4;cursor:not-allowed}' +\n      '.' + PREFIX + '-p1.ld{pointer-events:none;opacity:.6}' +\n      '.' + PREFIX + '-p1.bn{background:rgb(60,97,158)}' +\n      '.' + PREFIX + '-p2{background:0 0;border:none;color:#69727b;font-size:.8rem;cursor:pointer;text-decoration:underline;font-family:inherit;padding:4px 0}' +\n      '.' + PREFIX + '-p2.ld{pointer-events:none;opacity:.6}' +\n      /* ── \"Added to cart\" confirmation animation ── */\n      '.' + PREFIX + '-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);background:#272727;color:#fff;padding:16px 28px;border-radius:12px;font-size:.95rem;font-weight:600;z-index:1000001;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;direction:rtl;text-align:center;display:flex;align-items:center;gap:8px}' +\n      '.' + PREFIX + '-toast.v{opacity:1;transform:translate(-50%,-50%) scale(1)}' +\n      '.' + PREFIX + '-toast svg{width:22px;height:22px;flex-shrink:0}' +\n      /* ── Mobile: bottom sheet + sticky footer + floating X ── */\n      '@media(max-width:600px){' +\n        '.' + PREFIX + '-ov{align-items:flex-end}' +\n        '.' + PREFIX + '-m{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:85vh;padding:20px 16px 0;animation:' + PREFIX + '-u .35s ease-out;padding-bottom:140px}' +\n        '.' + PREFIX + '-g{grid-template-columns:repeat(2,1fr);gap:12px}' +\n        '.' + PREFIX + '-hd h2{font-size:1.35rem}' +\n        '.' + PREFIX + '-x{position:sticky;top:0;left:0;z-index:10;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-radius:50%;margin-bottom:-32px;align-self:flex-start}' +\n        '.' + PREFIX + '-a{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:14px 16px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px rgba(0,0,0,.1);z-index:1000000;border-top:1px solid rgba(0,0,0,.06)}' +\n        '.' + PREFIX + '-p1{width:100%;min-width:0}' +\n      '}' +\n      '@keyframes ' + PREFIX + '-u{from{transform:translateY(100%)}to{transform:translateY(0)}}';\n    document.head.appendChild(s);\n  }\n\n  /* ────── 6b. Toast confirmation ────── */\n  function showToast(text) {\n    var t = document.createElement('div');\n    t.className = PREFIX + '-toast';\n    t.innerHTML = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#4caf50\" stroke-width=\"2.5\"><path d=\"M20 6L9 17l-5-5\"/></svg><span>' + text + '</span>';\n    document.body.appendChild(t);\n    requestAnimationFrame(function () { t.classList.add('v'); });\n    setTimeout(function () {\n      t.classList.remove('v');\n      setTimeout(function () { try { t.remove(); } catch (e) {} }, 300);\n    }, 1800);\n  }\n\n  /* ────── 7. Popup UI ────── */\n  function showPopup(printVid, sizeIdx, szLbl, frames, isBuyNow) {\n    if (popupOpen) return;\n    popupOpen = true;\n    injectStyles();\n    var selFid = null;\n    var cards = '';\n    for (var i = 0; i < frames.length; i++) {\n      var fr = frames[i];\n      var mv = fr.variants[0];\n      if (fr.variants.length > sizeIdx) mv = fr.variants[sizeIdx];\n      var img = fr.image ? fr.image.split('?')[0] + '?width=500' : '';\n      var origPrice = mv.price;\n      var discPrice = Math.round(origPrice * (1 - DISCOUNT_PCT));\n      cards += '<div class=\"' + PREFIX + '-c\" data-fv=\"' + mv.id + '\">' +\n        '<span class=\"' + PREFIX + '-badge\">20% off</span>' +\n        '<img class=\"' + PREFIX + '-ci\" src=\"' + img + '\" alt=\"\" loading=\"lazy\">' +\n        '<div class=\"' + PREFIX + '-cn\">' +\n        '<p class=\"' + PREFIX + '-ct\">' + fr.title + '</p>' +\n        (szLbl ? '<p class=\"' + PREFIX + '-sz\">' + szLbl + '</p>' : '') +\n        '<div class=\"' + PREFIX + '-prices\"><span class=\"' + PREFIX + '-op\">' + fmt(origPrice) + '</span><span class=\"' + PREFIX + '-dp\">' + fmt(discPrice) + '</span></div>' +\n        '</div></div>';\n    }\n\n    var btnClass = PREFIX + '-p1' + (isBuyNow ? ' bn' : '');\n    var btnText = isBuyNow\n      ? '\\u05E7\\u05E0\\u05D4 \\u05E2\\u05DB\\u05E9\\u05D9\\u05D5 \\u05E2\\u05DD \\u05DE\\u05E1\\u05D2\\u05E8\\u05EA'\n      : '\\u05D4\\u05D5\\u05E1\\u05E3 \\u05D4\\u05D3\\u05E4\\u05E1 + \\u05DE\\u05E1\\u05D2\\u05E8\\u05EA \\u05DC\\u05E1\\u05DC';\n    var btnTextOnly = isBuyNow\n      ? '\\u05E7\\u05E0\\u05D4 \\u05E2\\u05DB\\u05E9\\u05D9\\u05D5'\n      : '\\u05DC\\u05D0 \\u05EA\\u05D5\\u05D3\\u05D4, \\u05E8\\u05E7 \\u05D0\\u05EA \\u05D4\\u05D4\\u05D3\\u05E4\\u05E1';\n\n    var el = document.createElement('div');\n    el.className = PREFIX + '-ov';\n    el.innerHTML =\n      '<div class=\"' + PREFIX + '-m\">' +\n      '<button class=\"' + PREFIX + '-x\" aria-label=\"\\u05E1\\u05D2\\u05D5\\u05E8\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg></button>' +\n      '<div class=\"' + PREFIX + '-hd\"><h2>\\u05E8\\u05D5\\u05E6\\u05D4 \\u05DC\\u05D4\\u05D5\\u05E1\\u05D9\\u05E3 \\u05DE\\u05E1\\u05D2\\u05E8\\u05EA \\u05DC\\u05D4\\u05D3\\u05E4\\u05E1?</h2></div>' +\n      '<div class=\"' + PREFIX + '-g\">' + cards + '</div>' +\n      '<div class=\"' + PREFIX + '-a\">' +\n      '<button class=\"' + btnClass + '\" disabled>' + btnText + '</button>' +\n      '<button class=\"' + PREFIX + '-p2\">' + btnTextOnly + '</button>' +\n      '</div></div>';\n    document.body.appendChild(el);\n    document.body.style.overflow = 'hidden';\n    blockDrawer();\n    requestAnimationFrame(function () { el.classList.add('v'); });\n\n    var p1 = el.querySelector('.' + PREFIX + '-p1');\n    var p2 = el.querySelector('.' + PREFIX + '-p2');\n    var cds = el.querySelectorAll('.' + PREFIX + '-c');\n    var didAdd = false;\n\n    for (var ci = 0; ci < cds.length; ci++) {\n      (function (cd) {\n        cd.addEventListener('click', function () {\n          for (var j = 0; j < cds.length; j++) cds[j].classList.remove('sel');\n          cd.classList.add('sel');\n          selFid = parseInt(cd.getAttribute('data-fv'), 10);\n          p1.disabled = false;\n        });\n      })(cds[ci]);\n    }\n\n    var closing = false;\n    function close() {\n      if (closing) return;\n      closing = true;\n      el.classList.remove('v');\n      setTimeout(function () {\n        try { el.remove(); } catch (e) {}\n        document.body.style.overflow = '';\n        popupOpen = false;\n        unblockDrawer();\n        if (didAdd) {\n          if (isBuyNow) {\n            window.location.href = '/checkout';\n          } else {\n            openDrawer();\n          }\n        }\n      }, 300);\n    }\n\n    /* X button — adds only the print, shows toast, then closes */\n    el.querySelector('.' + PREFIX + '-x').addEventListener('click', function (e) {\n      e.preventDefault();\n      var xBtn = this;\n      xBtn.style.pointerEvents = 'none';\n      xBtn.style.opacity = '.5';\n      addToCart([{ id: printVid, quantity: 1 }], function (ok) {\n        if (ok) {\n          didAdd = true;\n          showToast('\\u05D4\\u05D4\\u05D3\\u05E4\\u05E1 \\u05E0\\u05D5\\u05E1\\u05E3 \\u05DC\\u05E1\\u05DC \\u2714');\n          close();\n        } else {\n          xBtn.style.pointerEvents = '';\n          xBtn.style.opacity = '';\n        }\n      });\n    });\n\n    /* Overlay background click — same as X: add print only */\n    el.addEventListener('click', function (e) {\n      if (e.target === el) {\n        addToCart([{ id: printVid, quantity: 1 }], function (ok) {\n          if (ok) {\n            didAdd = true;\n            showToast('\\u05D4\\u05D4\\u05D3\\u05E4\\u05E1 \\u05E0\\u05D5\\u05E1\\u05E3 \\u05DC\\u05E1\\u05DC \\u2714');\n            close();\n          }\n        });\n      }\n    });\n\n    /* Escape key — same as X: add print only */\n    document.addEventListener('keydown', function esc(e) {\n      if (e.key === 'Escape') {\n        document.removeEventListener('keydown', esc);\n        addToCart([{ id: printVid, quantity: 1 }], function (ok) {\n          if (ok) {\n            didAdd = true;\n            showToast('\\u05D4\\u05D4\\u05D3\\u05E4\\u05E1 \\u05E0\\u05D5\\u05E1\\u05E3 \\u05DC\\u05E1\\u05DC \\u2714');\n            close();\n          }\n        });\n      }\n    });\n\n    /* Primary button — add print + selected frame + coupon */\n    p1.addEventListener('click', function () {\n      if (!selFid || p1.disabled) return;\n      p1.classList.add('ld');\n      p1.textContent = '...\\u05DE\\u05D5\\u05E1\\u05D9\\u05E3 \\u05DC\\u05E1\\u05DC';\n      addToCart([{ id: printVid, quantity: 1 }, { id: selFid, quantity: 1 }], function (ok) {\n        if (ok) {\n          applyCoupon(COUPON_CODE, function () {\n            p1.classList.remove('ld');\n            didAdd = true;\n            close();\n          });\n        } else {\n          p1.classList.remove('ld');\n          p1.textContent = btnText;\n        }\n      });\n    });\n\n    /* Secondary button — add print only */\n    p2.addEventListener('click', function () {\n      p2.classList.add('ld');\n      p2.textContent = '...\\u05DE\\u05D5\\u05E1\\u05D9\\u05E3';\n      addToCart([{ id: printVid, quantity: 1 }], function (ok) {\n        p2.classList.remove('ld');\n        if (ok) { didAdd = true; close(); }\n        else p2.textContent = btnTextOnly;\n      });\n    });\n  }\n\n  /* ────── 8. Reset the ATC button loading state ────── */\n  function resetATCButtons() {\n    setTimeout(function () {\n      var btns = document.querySelectorAll('button[type=\"submit\"][is=\"custom-button\"]');\n      for (var i = 0; i < btns.length; i++) {\n        btns[i].removeAttribute('aria-busy');\n        btns[i].classList.remove('is-loading');\n        var d = btns[i].querySelector('div');\n        if (d) { d.style.cssText = ''; }\n        var ld = btns[i].querySelector('.button__loader');\n        if (ld) { ld.style.cssText = ''; }\n      }\n    }, 150);\n  }\n\n  /* ────── 9. Extract variant ID from fetch body ────── */\n  function extractVariantFromBody(body) {\n    if (!body) return null;\n    if (body instanceof FormData) {\n      var idVal = body.get('id');\n      return idVal ? parseInt(idVal, 10) : null;\n    }\n    if (body instanceof URLSearchParams) {\n      var uVal = body.get('id');\n      return uVal ? parseInt(uVal, 10) : null;\n    }\n    var str = typeof body === 'string' ? body : null;\n    if (!str) {\n      try { str = JSON.stringify(body); } catch (e) { return null; }\n    }\n    if (!str) return null;\n    var m = str.match(/\"id\"\\s*:\\s*\"?(\\d+)\"?/);\n    if (m) return parseInt(m[1], 10);\n    m = str.match(/\\bid=(\\d+)/);\n    if (m) return parseInt(m[1], 10);\n    return null;\n  }\n\n  /* ────── 10. Determine if this call should be intercepted ────── */\n  function shouldIntercept(vid) {\n    if (!tagCheckResult) return false;\n    if (popupOpen) return false;\n    if (debouncing) return false;\n    if (variantHasFrame(vid)) return false;\n    return true;\n  }\n\n  /* ────── 11. Build fake response for the theme ────── */\n  function fakeCartResponse() {\n    var fakeBody = JSON.stringify({ items: [], sections: {} });\n    return new Response(fakeBody, {\n      status: 200,\n      statusText: 'OK',\n      headers: { 'Content-Type': 'application/json' }\n    });\n  }\n\n  /* ────── 12. Trigger popup from any source ────── */\n  function triggerPopup(vid, isBuyNow) {\n    debouncing = true;\n    setTimeout(function () { debouncing = false; }, 1500);\n\n    resetATCButtons();\n    closeDrawer();\n\n    var capturedVid = vid;\n    var sInfo = getSizeInfo(capturedVid);\n    fetchFrames(function (frames) {\n      if (!frames || !frames.length) {\n        addToCart([{ id: capturedVid, quantity: 1 }], function () {\n          if (isBuyNow) { window.location.href = '/checkout'; }\n          else { openDrawer(); }\n        });\n        return;\n      }\n      showPopup(capturedVid, sInfo.idx, sInfo.label, frames, isBuyNow);\n    });\n  }\n\n  /* ────── 13. THE FETCH INTERCEPTOR ────── */\n  window.fetch = function (input, init) {\n    try {\n      var url = typeof input === 'string' ? input : (input && input.url ? input.url : String(input));\n\n      if (url.indexOf('cart/add') !== -1 && tagCheckResult && !popupOpen && !debouncing) {\n        var bodySource = (init && init.body) ? init.body : null;\n        if (input && typeof input === 'object' && input.body) bodySource = input.body;\n\n        var vid = extractVariantFromBody(bodySource);\n        if (!vid) vid = getSelectedVariantId();\n\n        if (vid && shouldIntercept(vid)) {\n          triggerPopup(vid, false);\n          return Promise.resolve(fakeCartResponse());\n        }\n      }\n    } catch (e) {}\n\n    return _realFetch.apply(this, arguments);\n  };\n\n  /* ────── 13b. XHR interceptor for Buy Now / checkout flows ────── */\n  var _realXhrOpen = XMLHttpRequest.prototype.open;\n  var _realXhrSend = XMLHttpRequest.prototype.send;\n\n  XMLHttpRequest.prototype.open = function (method, url) {\n    this._afuUrl = url;\n    this._afuMethod = method;\n    return _realXhrOpen.apply(this, arguments);\n  };\n\n  XMLHttpRequest.prototype.send = function (body) {\n    if (this._afuUrl && tagCheckResult && !popupOpen && !debouncing) {\n      var url = this._afuUrl;\n      if (url.indexOf('cart/add') !== -1 && !this._afuFromUs) {\n        var vid = extractVariantFromBody(body);\n        if (!vid) vid = getSelectedVariantId();\n        if (vid && shouldIntercept(vid)) {\n          triggerPopup(vid, true);\n          this.abort();\n          return;\n        }\n      }\n    }\n    return _realXhrSend.apply(this, arguments);\n  };\n\n  /* ────── 14. Buy Now button interception ────── */\n  var _buyNowWired = false;\n\n  function findBuyNowButtons() {\n    var results = [];\n    var hosts = document.querySelectorAll('shopify-buy-it-now-button, shopify-accelerated-checkout');\n    for (var i = 0; i < hosts.length; i++) {\n      var root = hosts[i].shadowRoot;\n      if (root) {\n        var btn = root.querySelector('.shopify-payment-button__button--unbranded');\n        if (btn) results.push(btn);\n      }\n    }\n    if (!results.length) {\n      var fallback = document.querySelectorAll('.shopify-payment-button__button--unbranded');\n      for (var j = 0; j < fallback.length; j++) results.push(fallback[j]);\n    }\n    return results;\n  }\n\n  function wireBuyNowButton(btn) {\n    if (btn._afuWired) return;\n    btn._afuWired = true;\n    btn.addEventListener('click', function (e) {\n      if (!tagCheckResult || popupOpen || debouncing) return;\n      var vid = getSelectedVariantId();\n      if (!vid || !shouldIntercept(vid)) return;\n      e.preventDefault();\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n      triggerPopup(vid, true);\n    }, true);\n  }\n\n  function setupBuyNowIntercept() {\n    function tryWire() {\n      var btns = findBuyNowButtons();\n      for (var i = 0; i < btns.length; i++) wireBuyNowButton(btns[i]);\n      if (btns.length) _buyNowWired = true;\n    }\n    tryWire();\n    if (!_buyNowWired) {\n      var attempts = 0;\n      var poll = setInterval(function () {\n        tryWire();\n        attempts++;\n        if (_buyNowWired || attempts > 30) clearInterval(poll);\n      }, 500);\n    }\n\n    document.addEventListener('click', function (e) {\n      if (!tagCheckResult || popupOpen || debouncing) return;\n      var t = e.target;\n      if (!t || !t.classList) return;\n      if (t.classList.contains('shopify-payment-button__button--unbranded') ||\n          (t.closest && t.closest('.shopify-payment-button__button--unbranded'))) {\n        var vid = getSelectedVariantId();\n        if (!vid || !shouldIntercept(vid)) return;\n        e.preventDefault();\n        e.stopPropagation();\n        e.stopImmediatePropagation();\n        triggerPopup(vid, true);\n      }\n    }, true);\n\n    document.addEventListener('submit', function (e) {\n      if (!tagCheckResult || popupOpen || debouncing) return;\n      var form = e.target;\n      if (!form || !form.action) return;\n      var action = typeof form.action === 'string' ? form.action : '';\n      if (action.indexOf('/checkout') === -1 && action.indexOf('/cart') === -1) return;\n      var isPaymentForm = form.closest && (form.closest('[data-shopify=\"payment-button\"]') || form.closest('.shopify-payment-button'));\n      if (!isPaymentForm) return;\n      var vid = getSelectedVariantId();\n      if (!vid || !shouldIntercept(vid)) return;\n      e.preventDefault();\n      e.stopImmediatePropagation();\n      triggerPopup(vid, true);\n    }, true);\n\n    var _realFormSubmit = HTMLFormElement.prototype.submit;\n    HTMLFormElement.prototype.submit = function () {\n      if (tagCheckResult && !popupOpen && !debouncing) {\n        var action = this.action || '';\n        if ((action.indexOf('/checkout') !== -1 || action.indexOf('/cart') !== -1) &&\n            !this._afuFromUs) {\n          var vid = getSelectedVariantId();\n          if (vid && shouldIntercept(vid)) {\n            triggerPopup(vid, true);\n            return;\n          }\n        }\n      }\n      return _realFormSubmit.apply(this, arguments);\n    };\n  }\n\n  /* ────── 15. SETUP — activation checks ────── */\n  function setup() {\n    if (isSetup) return;\n\n    var path = window.location.pathname;\n    var can = document.querySelector('link[rel=\"canonical\"]');\n    var ogUrl = document.querySelector('meta[property=\"og:url\"]');\n    var isProduct = path.indexOf('/products/') !== -1 ||\n      (can && can.href.indexOf('/products/') !== -1) ||\n      (ogUrl && ogUrl.content.indexOf('/products/') !== -1);\n    if (!isProduct) return;\n\n    var titleEl = document.querySelector('h1');\n    var title = titleEl ? titleEl.textContent.trim() : '';\n    if (title.indexOf('\\u05E1\\u05D8') !== -1 || title.indexOf('\\u05DE\\u05D0\\u05E8\\u05D6') !== -1) return;\n\n    isSetup = true;\n\n    var handle = getHandle();\n    if (!handle) return;\n\n    sfQuery(\n      'query($h:String!){product(handle:$h){tags options{name values}variants(first:50){nodes{id title selectedOptions{name value}}}}}',\n      { h: handle },\n      function (err, data) {\n        tagCheckDone = true;\n        if (err || !data || !data.product) return;\n        var p = data.product;\n        var tags = p.tags || [];\n        var ok = false;\n        for (var i = 0; i < tags.length; i++) {\n          if (tags[i].toLowerCase() === 'print') { ok = true; break; }\n        }\n        if (!ok) return;\n        tagCheckResult = true;\n        sfOptions = p.options || [];\n        sfVariants = (p.variants && p.variants.nodes) || [];\n      }\n    );\n\n    fetchFrames(function () {});\n    setupBuyNowIntercept();\n  }\n\n  /* ────── 16. Run setup as early as possible ────── */\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () { setup(); });\n  } else {\n    setup();\n  }\n  setTimeout(setup, 500);\n  setTimeout(setup, 1500);\n})();\n\n/////// visual editor changes start //////\n(function() {\n  'use strict';\n\n    // Visual Editor: h2 : html > body > div:nth-child(32) > div > div:nth-child(2) > h2 : רוצה להוסיף מסגרת להדפס?\n    try {\n      const element = document.querySelector('html > body > div:nth-child(32) > div > div:nth-child(2) > h2');\n      if (element) {\n\n        element.textContent = 'רוצים להוסיף מסגרת להדפס?';\n      }\n    } catch (error) {\n      // Silently handle any errors\n    }\n})();\n/////// visual editor changes end //////"],"weights":[0.5,0.5],"key":"EXP2440B550","meta":[{"key":"control","name":"Control"},{"key":"variant-1","name":"Variant 1"}],"phase":"0","name":"Frame Suggestion 2.0"}]},"exp-EXP3A0C8609":{"defaultValue":""},"exp-EXP0CC73039":{"defaultValue":""},"exp-EXPAAAABA86":{"defaultValue":""},"exp-EXP889AE6BC":{"defaultValue":""},"exp-EXPEDAA66B9":{"defaultValue":""}},"experiments":[],"dateUpdated":"2026-05-25T09:58:36.984Z"}