{"id":2581,"date":"2021-09-08T12:42:06","date_gmt":"2021-09-08T12:42:06","guid":{"rendered":"http:\/\/dummy.xtemos.com\/woodmart2\/elementor\/?page_id=2581"},"modified":"2026-08-08T17:42:13","modified_gmt":"2026-08-08T15:42:13","slug":"home-handmade","status":"publish","type":"page","link":"https:\/\/tipsi.pl\/uk\/home-handmade\/","title":{"rendered":"\u0413\u043e\u043b\u043e\u0432\u043d\u0430 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0430"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2581\" class=\"elementor elementor-2581\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-76d625c e-flex e-con-boxed e-con e-parent\" data-id=\"76d625c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-04e554c elementor-widget elementor-widget-html\" data-id=\"04e554c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Tipsi Shop: szeroki asystent AI v19 (PL + UA + RU + EN, wsparcie bez losowych produkt\u00f3w) -->\r\n<section id=\"tipsi-wide-ai\" aria-labelledby=\"tipsi-wide-ai-title\">\r\n  <div class=\"twai-badge\">\r\n    <span class=\"twai-badge-dot\" aria-hidden=\"true\"><\/span>\r\n    Asystent Tipsi Shop\r\n  <\/div>\r\n\r\n  <h2 id=\"tipsi-wide-ai-title\">Cze\u015b\u0107! Czego dzi\u015b szukasz?<\/h2>\r\n  <p class=\"twai-lead\">\r\n    Opisz efekt, kolor, bud\u017cet lub rodzaj produktu, a nasz asystent pomo\u017ce Ci wybra\u0107.\r\n    <span class=\"twai-language-hint\">\r\n      \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u044e: \u043d\u0430\u043f\u0438\u0448\u0438, \u0449\u043e \u0448\u0443\u043a\u0430\u0454\u0448.\r\n    <\/span>\r\n  <\/p>\r\n\r\n  <form class=\"twai-form\">\r\n    <div class=\"twai-input-box\">\r\n      <textarea\r\n        class=\"twai-input\"\r\n        rows=\"3\"\r\n        aria-label=\"Napisz, jakiego produktu szukasz\"\r\n        placeholder=\"Napisz, czego szukasz, np. r\u00f3\u017cowa baza do 50 z\u0142\"\r\n      ><\/textarea>\r\n      <button class=\"twai-send\" type=\"submit\" aria-label=\"Wy\u015blij wiadomo\u015b\u0107\">\r\n        <svg width=\"25\" height=\"25\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n          <path d=\"M22 2 11 13M22 2l-7 20-4-9-9-4 20-7Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n        <\/svg>\r\n      <\/button>\r\n    <\/div>\r\n  <\/form>\r\n\r\n  <div class=\"twai-suggestions\" aria-label=\"Przyk\u0142adowe pytania\">\r\n    <button type=\"button\" data-prompt=\"Szukam r\u00f3\u017cowej bazy do paznokci do 50 z\u0142. Co polecasz?\">R\u00f3\u017cowa baza do 50 z\u0142<\/button>\r\n    <button type=\"button\" data-prompt=\"Jaki \u017cel polecasz do przed\u0142u\u017cania paznokci?\">\u017bel do przed\u0142u\u017cania<\/button>\r\n    <button type=\"button\" data-prompt=\"Poka\u017c mi czerwone lakiery hybrydowe.\">Czerwone lakiery<\/button>\r\n    <button type=\"button\" data-prompt=\"Szukam frezu do sk\u00f3rek. Co wybra\u0107?\">Frez do sk\u00f3rek<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"twai-thread-tools\" hidden>\r\n    <button class=\"twai-reset\" type=\"button\" aria-label=\"Rozpocznij now\u0105 rozmow\u0119\">\r\n      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n        <path d=\"M3 12a9 9 0 1 0 3-6.7L3 8\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n        <path d=\"M3 3v5h5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\r\n      <\/svg>\r\n      <span>Nowa rozmowa<\/span>\r\n    <\/button>\r\n  <\/div>\r\n\r\n  <div class=\"twai-thread\" aria-live=\"polite\" hidden><\/div>\r\n<\/section>\r\n\r\n<style>\r\n  #tipsi-wide-ai,\r\n  #tipsi-wide-ai * {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  #tipsi-wide-ai {\r\n    --twai-main: #151587;\r\n    --twai-second: #3535b8;\r\n    width: 100%;\r\n    max-width: 1180px;\r\n    margin: 34px auto 48px;\r\n    padding: 44px;\r\n    border: 1px solid #e7e7ef;\r\n    border-radius: 28px;\r\n    background:\r\n      radial-gradient(circle at 10% 0%, rgba(53, 53, 184, 0.09), transparent 31%),\r\n      linear-gradient(145deg, #fafaff 0%, #f5f5f9 100%);\r\n    box-shadow: 0 18px 55px rgba(21, 21, 135, 0.09);\r\n    font-family: inherit;\r\n    color: #242532;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-badge {\r\n    display: flex;\r\n    width: max-content;\r\n    align-items: center;\r\n    gap: 8px;\r\n    margin: 0 auto 14px;\r\n    padding: 8px 13px;\r\n    border: 1px solid rgba(21, 21, 135, 0.12);\r\n    border-radius: 999px;\r\n    background: rgba(255, 255, 255, 0.78);\r\n    color: var(--twai-main);\r\n    font-size: 13px;\r\n    font-weight: 700;\r\n    letter-spacing: 0.02em;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-badge-dot {\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius: 50%;\r\n    background: #26b15d;\r\n    box-shadow: 0 0 0 4px rgba(38, 177, 93, 0.12);\r\n  }\r\n\r\n  #tipsi-wide-ai h2 {\r\n    margin: 0 auto 12px;\r\n    color: var(--twai-main);\r\n    font-size: clamp(31px, 4vw, 52px);\r\n    font-weight: 600;\r\n    line-height: 1.12;\r\n    letter-spacing: -0.025em;\r\n    text-align: center;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-lead {\r\n    max-width: 760px;\r\n    margin: 0 auto 25px;\r\n    color: #616373;\r\n    font-size: 17px;\r\n    line-height: 1.55;\r\n    text-align: center;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-language-hint {\r\n    display: block;\r\n    margin-top: 6px;\r\n    color: var(--twai-main);\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-answer a {\r\n    color: var(--twai-main);\r\n    font-weight: 600;\r\n    text-decoration: underline;\r\n    text-underline-offset: 2px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-form {\r\n    margin: 0;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-input-box {\r\n    position: relative;\r\n    min-height: 132px;\r\n    overflow: hidden;\r\n    border: 1px solid #dedfe8;\r\n    border-radius: 24px;\r\n    background: #fff;\r\n    box-shadow: 0 9px 30px rgba(30, 31, 63, 0.08);\r\n    transition: border-color 0.2s ease, box-shadow 0.2s ease;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-input-box:focus-within {\r\n    border-color: var(--twai-main);\r\n    box-shadow: 0 12px 34px rgba(21, 21, 135, 0.15);\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-input {\r\n    display: block;\r\n    width: 100%;\r\n    min-height: 130px;\r\n    margin: 0;\r\n    padding: 22px 84px 24px 24px;\r\n    border: 0 !important;\r\n    border-radius: 24px;\r\n    outline: 0;\r\n    background: transparent;\r\n    box-shadow: none !important;\r\n    color: #242532;\r\n    font: inherit;\r\n    font-size: 18px;\r\n    line-height: 1.5;\r\n    resize: vertical;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-input::placeholder {\r\n    color: #7a7c89;\r\n    opacity: 1;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-send {\r\n    position: absolute;\r\n    right: 18px;\r\n    bottom: 18px;\r\n    display: flex;\r\n    width: 52px;\r\n    height: 52px;\r\n    min-height: 0;\r\n    align-items: center;\r\n    justify-content: center;\r\n    margin: 0;\r\n    padding: 0;\r\n    border: 0;\r\n    border-radius: 50%;\r\n    background: linear-gradient(135deg, var(--twai-main), var(--twai-second));\r\n    box-shadow: 0 9px 23px rgba(21, 21, 135, 0.27);\r\n    color: #fff;\r\n    cursor: pointer;\r\n    transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-send:hover {\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 12px 27px rgba(21, 21, 135, 0.34);\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-send:disabled {\r\n    opacity: 0.55;\r\n    cursor: wait;\r\n    transform: none;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-suggestions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    justify-content: center;\r\n    gap: 10px;\r\n    margin-top: 16px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-suggestions button {\r\n    min-height: 40px;\r\n    margin: 0;\r\n    padding: 9px 16px;\r\n    border: 1px solid #e0e1e8;\r\n    border-radius: 999px;\r\n    background: #fff;\r\n    box-shadow: 0 4px 13px rgba(27, 28, 53, 0.05);\r\n    color: #292a35;\r\n    font: inherit;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    line-height: 1.4;\r\n    text-transform: none;\r\n    cursor: pointer;\r\n    transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-suggestions button:hover {\r\n    border-color: var(--twai-main);\r\n    color: var(--twai-main);\r\n    transform: translateY(-1px);\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-thread-tools {\r\n    display: flex;\r\n    justify-content: flex-end;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-thread-tools[hidden] {\r\n    display: none;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-reset {\r\n    display: inline-flex;\r\n    min-height: 40px;\r\n    align-items: center;\r\n    gap: 8px;\r\n    margin: 0;\r\n    padding: 9px 14px;\r\n    border: 1px solid rgba(21, 21, 135, 0.18);\r\n    border-radius: 999px;\r\n    background: #fff;\r\n    color: var(--twai-main);\r\n    font: inherit;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    line-height: 1;\r\n    text-transform: none;\r\n    cursor: pointer;\r\n    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-reset:hover {\r\n    border-color: var(--twai-main);\r\n    background: rgba(21, 21, 135, 0.05);\r\n    transform: translateY(-1px);\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-reset:disabled {\r\n    opacity: 0.55;\r\n    cursor: wait;\r\n    transform: none;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-thread {\r\n    max-height: 720px;\r\n    overflow-y: auto;\r\n    scrollbar-gutter: stable;\r\n    margin-top: 10px;\r\n    padding: 22px;\r\n    border: 1px solid #e2e3ea;\r\n    border-radius: 22px;\r\n    background: #fff;\r\n    scroll-behavior: auto;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-thread[hidden] {\r\n    display: none;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-message {\r\n    display: flex;\r\n    margin-bottom: 18px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-message:last-child {\r\n    margin-bottom: 0;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-message-user {\r\n    justify-content: flex-end;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-bubble {\r\n    max-width: 100%;\r\n    padding: 17px;\r\n    border-radius: 18px;\r\n    background: #f5f5f8;\r\n    color: #30313b;\r\n    font-size: 15px;\r\n    line-height: 1.62;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-message-user .twai-bubble {\r\n    max-width: 78%;\r\n    padding: 12px 17px;\r\n    border-radius: 18px 18px 4px 18px;\r\n    background: linear-gradient(135deg, var(--twai-main), var(--twai-second));\r\n    color: #fff;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-products {\r\n    display: grid;\r\n    grid-template-columns: repeat(4, minmax(0, 1fr));\r\n    gap: 14px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product {\r\n    display: flex;\r\n    min-width: 0;\r\n    flex-direction: column;\r\n    padding: 13px;\r\n    border: 1px solid #e3e4eb;\r\n    border-radius: 15px;\r\n    background: #fff;\r\n    color: inherit;\r\n    text-decoration: none;\r\n    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product:hover {\r\n    border-color: var(--twai-main);\r\n    box-shadow: 0 8px 20px rgba(21, 21, 135, 0.1);\r\n    color: inherit;\r\n    text-decoration: none;\r\n    transform: translateY(-2px);\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product img {\r\n    width: 100%;\r\n    height: 130px;\r\n    margin-bottom: 10px;\r\n    border-radius: 10px;\r\n    background: #fff;\r\n    object-fit: contain;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product-name {\r\n    margin: 0 0 7px;\r\n    color: #252631;\r\n    font-size: 14px;\r\n    font-weight: 700;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product-price {\r\n    margin: auto 0 5px;\r\n    color: var(--twai-main);\r\n    font-size: 16px;\r\n    font-weight: 700;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-product-category {\r\n    margin: 0;\r\n    color: #777986;\r\n    font-size: 12px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-loader {\r\n    display: inline-flex;\r\n    gap: 5px;\r\n    align-items: center;\r\n    min-width: 62px;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-loader span {\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius: 50%;\r\n    background: var(--twai-main);\r\n    animation: twai-pulse 1.2s infinite ease-in-out;\r\n  }\r\n\r\n  #tipsi-wide-ai .twai-loader span:nth-child(2) { animation-delay: 0.15s; }\r\n  #tipsi-wide-ai .twai-loader span:nth-child(3) { animation-delay: 0.3s; }\r\n\r\n  @keyframes twai-pulse {\r\n    0%, 70%, 100% { opacity: 0.28; transform: scale(0.75); }\r\n    35% { opacity: 1; transform: scale(1); }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    #tipsi-wide-ai {\r\n      margin: 20px auto 30px;\r\n      padding: 26px 18px;\r\n      border-radius: 21px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-lead {\r\n      font-size: 15px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-input-box,\r\n    #tipsi-wide-ai .twai-input {\r\n      min-height: 118px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-input {\r\n      padding: 18px 70px 20px 18px;\r\n      font-size: 16px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-send {\r\n      right: 14px;\r\n      bottom: 14px;\r\n      width: 47px;\r\n      height: 47px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-thread {\r\n      padding: 14px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-products {\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    }\r\n  }\r\n\r\n  @media (max-width: 520px) {\r\n    #tipsi-wide-ai .twai-message-user .twai-bubble {\r\n      max-width: 92%;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-product {\r\n      padding: 10px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-product img {\r\n      height: 105px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-product-name {\r\n      font-size: 12.5px;\r\n    }\r\n\r\n    #tipsi-wide-ai .twai-product-price {\r\n      font-size: 14px;\r\n    }\r\n  }\r\n\r\n  \/* Na stronie z szerokim asystentem pozostaw ma\u0142y, okr\u0105g\u0142y przycisk wid\u017cetu. *\/\r\n  body:has(#tipsi-wide-ai) #ai-chat-toggle,\r\n  body:has(#tipsi-wide-ai) #ai-chat-toggle:hover {\r\n    width: 58px !important;\r\n    min-width: 58px !important;\r\n    height: 58px !important;\r\n    padding: 0 !important;\r\n  }\r\n\r\n  body:has(#tipsi-wide-ai) #ai-chat-toggle .ai-chat-toggle-label {\r\n    display: none !important;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  (function () {\r\n    function startTipsiWideAI() {\r\n      var root = document.getElementById('tipsi-wide-ai');\r\n      if (!root || root.dataset.ready === '1') return;\r\n      root.dataset.ready = '1';\r\n\r\n      var form = root.querySelector('.twai-form');\r\n      var input = root.querySelector('.twai-input');\r\n      var sendButton = root.querySelector('.twai-send');\r\n      var threadTools = root.querySelector('.twai-thread-tools');\r\n      var resetButton = root.querySelector('.twai-reset');\r\n      var thread = root.querySelector('.twai-thread');\r\n      var busy = false;\r\n      var threadStorageKey = 'tipsiWideAIThreadV2';\r\n      var catalogStateStorageKey = 'tipsiWideAICatalogStateV1';\r\n      var starterStateStorageKey = 'tipsiWideAIStarterStateV1';\r\n      var catalogResultCache = {};\r\n      var catalogCacheKeys = [];\r\n      var lastCatalogState = readCatalogState();\r\n      var starterState = readStarterState();\r\n\r\n      function escapeHtml(value) {\r\n        return String(value == null ? '' : value)\r\n          .replace(\/&\/g, '&amp;')\r\n          .replace(\/<\/g, '&lt;')\r\n          .replace(\/>\/g, '&gt;')\r\n          .replace(\/\"\/g, '&quot;')\r\n          .replace(\/'\/g, '&#039;');\r\n      }\r\n\r\n      function formatMessage(value) {\r\n        return escapeHtml(value)\r\n          .replace(\/\\[([^\\]]+)\\]\\(((?:https?:\\\/\\\/|mailto:|tel:)[^)]+)\\)\/gi, '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1<\/a>')\r\n          .replace(\/\\*\\*(.+?)\\*\\*\/g, '<strong>$1<\/strong>')\r\n          .replace(\/\\n\/g, '<br>');\r\n      }\r\n\r\n      function linkProductNames(root, products) {\r\n        if (!root || !Array.isArray(products) || !products.length) return;\r\n\r\n        var links = products.map(function (product) {\r\n          return {\r\n            name: String(product.name || '').trim(),\r\n            url: String(product.url || '').trim()\r\n          };\r\n        }).filter(function (product) {\r\n          return product.name && product.url && product.url !== '#';\r\n        }).sort(function (left, right) {\r\n          return right.name.length - left.name.length;\r\n        });\r\n        if (!links.length) return;\r\n\r\n        var nodes = [];\r\n        var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);\r\n        while (walker.nextNode()) {\r\n          if (walker.currentNode.parentElement && walker.currentNode.parentElement.tagName !== 'A') {\r\n            nodes.push(walker.currentNode);\r\n          }\r\n        }\r\n\r\n        nodes.forEach(function (node) {\r\n          var value = node.nodeValue || '';\r\n          var lower = value.toLocaleLowerCase();\r\n          var matches = [];\r\n\r\n          links.forEach(function (product) {\r\n            var needle = product.name.toLocaleLowerCase();\r\n            var from = 0;\r\n            var index;\r\n            while ((index = lower.indexOf(needle, from)) !== -1) {\r\n              matches.push({ start: index, end: index + needle.length, product: product });\r\n              from = index + needle.length;\r\n            }\r\n          });\r\n\r\n          matches.sort(function (left, right) {\r\n            return left.start - right.start || right.end - left.end;\r\n          });\r\n          var selected = [];\r\n          var cursor = -1;\r\n          matches.forEach(function (match) {\r\n            if (match.start >= cursor) {\r\n              selected.push(match);\r\n              cursor = match.end;\r\n            }\r\n          });\r\n          if (!selected.length) return;\r\n\r\n          var fragment = document.createDocumentFragment();\r\n          var last = 0;\r\n          selected.forEach(function (match) {\r\n            fragment.appendChild(document.createTextNode(value.slice(last, match.start)));\r\n            var link = document.createElement('a');\r\n            link.textContent = value.slice(match.start, match.end);\r\n            link.href = match.product.url;\r\n            link.target = '_blank';\r\n            link.rel = 'noopener noreferrer';\r\n            fragment.appendChild(link);\r\n            last = match.end;\r\n          });\r\n          fragment.appendChild(document.createTextNode(value.slice(last)));\r\n          node.parentNode.replaceChild(fragment, node);\r\n        });\r\n      }\r\n\r\n      function plainText(value) {\r\n        var temp = document.createElement('div');\r\n        temp.innerHTML = String(value == null ? '' : value);\r\n        return temp.textContent || temp.innerText || '';\r\n      }\r\n\r\n      function normalizeText(value) {\r\n        return plainText(value)\r\n          .toLowerCase()\r\n          .normalize('NFD')\r\n          .replace(\/[\\u0300-\\u036f]\/g, '')\r\n          .replace(\/\u0142\/g, 'l')\r\n          .replace(\/[^a-z\u0430-\u044f\u0456\u0457\u0454\u04910-9]+\/gi, ' ')\r\n          .replace(\/\\s+\/g, ' ')\r\n          .trim();\r\n      }\r\n\r\n      function revealThread() {\r\n        threadTools.hidden = false;\r\n        thread.hidden = false;\r\n      }\r\n\r\n      function scrollThread() {\r\n        thread.scrollTop = thread.scrollHeight;\r\n      }\r\n\r\n      function readSavedThread() {\r\n        try {\r\n          var saved = JSON.parse(window.sessionStorage.getItem(threadStorageKey) || '[]');\r\n          return Array.isArray(saved) ? saved : [];\r\n        } catch (error) {\r\n          return [];\r\n        }\r\n      }\r\n\r\n      function rememberThreadItem(item) {\r\n        try {\r\n          var saved = readSavedThread();\r\n          saved.push(item);\r\n          if (saved.length > 24) saved = saved.slice(-24);\r\n          window.sessionStorage.setItem(threadStorageKey, JSON.stringify(saved));\r\n        } catch (error) {\r\n          \/* Bot nadal dzia\u0142a, nawet gdy przegl\u0105darka blokuje sessionStorage. *\/\r\n        }\r\n      }\r\n\r\n      function forgetSavedThread() {\r\n        try {\r\n          window.sessionStorage.removeItem(threadStorageKey);\r\n        } catch (error) {\r\n          \/* Brak dost\u0119pu do sessionStorage nie mo\u017ce blokowa\u0107 resetu rozmowy. *\/\r\n        }\r\n      }\r\n\r\n      function readCatalogState() {\r\n        try {\r\n          var saved = JSON.parse(window.sessionStorage.getItem(catalogStateStorageKey) || 'null');\r\n          return saved && typeof saved === 'object' ? saved : null;\r\n        } catch (error) {\r\n          return null;\r\n        }\r\n      }\r\n\r\n      function rememberCatalogState(state) {\r\n        lastCatalogState = state;\r\n        try {\r\n          window.sessionStorage.setItem(catalogStateStorageKey, JSON.stringify(state));\r\n        } catch (error) {\r\n          \/* Paginacja nadal dzia\u0142a do czasu od\u015bwie\u017cenia strony. *\/\r\n        }\r\n      }\r\n\r\n      function forgetCatalogState() {\r\n        lastCatalogState = null;\r\n        catalogResultCache = {};\r\n        catalogCacheKeys = [];\r\n        try {\r\n          window.sessionStorage.removeItem(catalogStateStorageKey);\r\n        } catch (error) {\r\n          \/* Brak dost\u0119pu do sessionStorage nie mo\u017ce blokowa\u0107 resetu. *\/\r\n        }\r\n      }\r\n\r\n      function readStarterState() {\r\n        try {\r\n          var saved = JSON.parse(window.sessionStorage.getItem(starterStateStorageKey) || 'null');\r\n          return saved && typeof saved === 'object' ? saved : null;\r\n        } catch (error) {\r\n          return null;\r\n        }\r\n      }\r\n\r\n      function rememberStarterState(state) {\r\n        starterState = state;\r\n        try {\r\n          window.sessionStorage.setItem(starterStateStorageKey, JSON.stringify(state));\r\n        } catch (error) {\r\n          \/* Scenariusz nadal dzia\u0142a do czasu od\u015bwie\u017cenia strony. *\/\r\n        }\r\n      }\r\n\r\n      function forgetStarterState() {\r\n        starterState = null;\r\n        try {\r\n          window.sessionStorage.removeItem(starterStateStorageKey);\r\n        } catch (error) {\r\n          \/* Brak sessionStorage nie mo\u017ce blokowa\u0107 resetu. *\/\r\n        }\r\n      }\r\n\r\n      function addUserMessage(message, skipRemember) {\r\n        revealThread();\r\n        var item = document.createElement('div');\r\n        item.className = 'twai-message twai-message-user';\r\n        item.innerHTML = '<div class=\"twai-bubble\">' + formatMessage(message) + '<\/div>';\r\n        thread.appendChild(item);\r\n        if (!skipRemember) {\r\n          rememberThreadItem({ role: 'user', message: String(message || '') });\r\n        }\r\n        scrollThread();\r\n      }\r\n\r\n      function addLoading() {\r\n        revealThread();\r\n        var item = document.createElement('div');\r\n        item.className = 'twai-message twai-message-assistant twai-loading-message';\r\n        item.innerHTML = '<div class=\"twai-bubble\"><span class=\"twai-loader\"><span><\/span><span><\/span><span><\/span><\/span><\/div>';\r\n        thread.appendChild(item);\r\n        scrollThread();\r\n      }\r\n\r\n      function removeLoading() {\r\n        var loading = thread.querySelector('.twai-loading-message');\r\n        if (loading) loading.remove();\r\n      }\r\n\r\n      function addAssistantMessage(message, products, skipRemember) {\r\n        revealThread();\r\n        var item = document.createElement('div');\r\n        item.className = 'twai-message twai-message-assistant';\r\n\r\n        var bubble = document.createElement('div');\r\n        bubble.className = 'twai-bubble';\r\n        bubble.innerHTML = '<div class=\"twai-answer\">' + formatMessage(message) + '<\/div>';\r\n        linkProductNames(bubble.querySelector('.twai-answer'), products);\r\n\r\n        if (Array.isArray(products) && products.length) {\r\n          var grid = document.createElement('div');\r\n          grid.className = 'twai-products';\r\n\r\n          products.forEach(function (product) {\r\n            var link = document.createElement('a');\r\n            link.className = 'twai-product';\r\n            link.href = product.url || '#';\r\n            link.target = '_blank';\r\n            link.rel = 'noopener noreferrer';\r\n\r\n            if (product.image_url) {\r\n              var image = document.createElement('img');\r\n              image.src = product.image_url;\r\n              image.alt = product.name || 'Produkt';\r\n              image.loading = 'lazy';\r\n              link.appendChild(image);\r\n            }\r\n\r\n            var name = document.createElement('p');\r\n            name.className = 'twai-product-name';\r\n            name.textContent = product.name || '';\r\n            link.appendChild(name);\r\n\r\n            var price = document.createElement('p');\r\n            price.className = 'twai-product-price';\r\n            price.textContent = plainText(product.formatted_price || product.price || '');\r\n            link.appendChild(price);\r\n\r\n            if (product.category) {\r\n              var category = document.createElement('p');\r\n              category.className = 'twai-product-category';\r\n              category.textContent = product.category;\r\n              link.appendChild(category);\r\n            }\r\n\r\n            grid.appendChild(link);\r\n          });\r\n\r\n          bubble.appendChild(grid);\r\n        }\r\n\r\n        item.appendChild(bubble);\r\n        thread.appendChild(item);\r\n        if (!skipRemember) {\r\n          rememberThreadItem({\r\n            role: 'assistant',\r\n            message: String(message || ''),\r\n            products: Array.isArray(products) ? products : []\r\n          });\r\n        }\r\n        scrollThread();\r\n      }\r\n\r\n      function restoreSavedThread() {\r\n        var saved = readSavedThread();\r\n        if (!saved.length) return;\r\n\r\n        saved.forEach(function (item) {\r\n          if (!item || !item.role) return;\r\n\r\n          if (item.role === 'user') {\r\n            addUserMessage(item.message || '', true);\r\n          } else if (item.role === 'assistant') {\r\n            addAssistantMessage(item.message || '', item.products || [], true);\r\n          }\r\n        });\r\n\r\n        scrollThread();\r\n      }\r\n\r\n      function setBusy(state) {\r\n        busy = state;\r\n        sendButton.disabled = state;\r\n        input.disabled = state;\r\n      }\r\n\r\n      function catalogRule(id, triggers, categories, productTerms) {\r\n        return {\r\n          id: id,\r\n          triggers: triggers,\r\n          categories: categories,\r\n          productTerms: productTerms || []\r\n        };\r\n      }\r\n\r\n      var catalogRules = [\r\n        catalogRule('bazy_folia', ['bazy kamuflujace z folia', 'baza kamuflujaca z folia', 'baza z folia', '\u043a\u0430\u043c\u0443\u0444\u043b\u044f\u0436\u043d\u0430 \u0431\u0430\u0437\u0430 \u0437 \u0444\u043e\u043b\u044c\u0433\u043e\u044e', '\u0431\u0430\u0437\u0430 \u0437 \u0444\u043e\u043b\u044c\u0433\u043e\u044e', '\u0431\u0430\u0437\u0443 \u0437 \u0444\u043e\u043b\u044c\u0433\u043e\u044e', '\u043a\u0430\u043c\u0443\u0444\u043b\u044f\u0436\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0441 \u0444\u043e\u043b\u044c\u0433\u043e\u0439', '\u0431\u0430\u0437\u0430 \u0441 \u0444\u043e\u043b\u044c\u0433\u043e\u0439', '\u0431\u0430\u0437\u0443 \u0441 \u0444\u043e\u043b\u044c\u0433\u043e\u0439'], ['bazy kamuflujace z folia', 'bazy kamuflujace z foli\u0105']),\r\n        catalogRule('bazy_shimmer', ['bazy kamuflujace z shimmera', 'bazy kamuflujace z shimmerem', 'baza z shimmerem', 'shimmer base', '\u043a\u0430\u043c\u0443\u0444\u043b\u044f\u0436\u043d\u0430 \u0431\u0430\u0437\u0430 \u0437 \u0448\u0438\u043c\u0435\u0440\u043e\u043c', '\u0431\u0430\u0437\u0430 \u0437 \u0448\u0438\u043c\u043c\u0435\u0440\u043e\u043c', '\u0431\u0430\u0437\u0443 \u0437 \u0448\u0438\u043c\u043c\u0435\u0440\u043e\u043c', '\u043a\u0430\u043c\u0443\u0444\u043b\u044f\u0436\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0441 \u0448\u0438\u043c\u043c\u0435\u0440\u043e\u043c', '\u0431\u0430\u0437\u0430 \u0441 \u0448\u0438\u043c\u043c\u0435\u0440\u043e\u043c', '\u0431\u0430\u0437\u0443 \u0441 \u0448\u0438\u043c\u043c\u0435\u0440\u043e\u043c'], ['bazy kamuflujace z shimmera', 'bazy kamuflujace z shimmer\u0105', 'bazy kamuflujace z shimmerem']),\r\n        catalogRule('cover_base_perla', ['cover base perla', 'cover base per\u0142a', 'baza perla', '\u043f\u0435\u0440\u043b\u043e\u0432\u0430 \u0431\u0430\u0437\u0430', '\u043f\u0435\u0440\u043b\u043e\u0432\u0443 \u0431\u0430\u0437\u0443', '\u0431\u0430\u0437\u0430 \u043f\u0435\u0440\u043b\u0438\u043d\u0430', '\u0436\u0435\u043c\u0447\u0443\u0436\u043d\u0430\u044f \u0431\u0430\u0437\u0430', '\u0436\u0435\u043c\u0447\u0443\u0436\u043d\u0443\u044e \u0431\u0430\u0437\u0443', '\u0431\u0430\u0437\u0430 \u0436\u0435\u043c\u0447\u0443\u0433'], ['cover base perla', 'cover base per\u0142a']),\r\n        catalogRule('termo_base', ['termo base', 'termobaza', 'baza termiczna', '\u0442\u0435\u0440\u043c\u043e \u0431\u0430\u0437\u0430', '\u0442\u0435\u0440\u043c\u043e \u0431\u0430\u0437\u0443', '\u0442\u0435\u0440\u043c\u043e\u0431\u0430\u0437\u0430', '\u0442\u0435\u0440\u043c\u043e-\u0431\u0430\u0437\u0430', '\u0442\u0435\u0440\u043c\u043e-\u0431\u0430\u0437\u0443'], ['termo base']),\r\n        catalogRule('bazy_kamuflujace', ['bazy kamuflujace', 'baza kamuflujaca', 'baza cover', '\u043a\u0430\u043c\u0443\u0444\u043b\u044f\u0436\u043d\u0456 \u0431\u0430\u0437\u0438', '\u043a\u0430\u043c\u0443\u0444\u043b\u044e\u044e\u0447\u0430 \u0431\u0430\u0437\u0430', '\u043a\u0430\u043c\u0443\u0444\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0431\u0430\u0437\u044b', '\u043a\u0430\u043c\u0443\u0444\u043b\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u0431\u0430\u0437\u0430'], ['bazy kamuflujace', 'bazy kamufluj\u0105ce']),\r\n        catalogRule('bazy_kolorowe', ['bazy kolorowe', 'baza kolorowa', 'kolorowa baza', '\u043a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0456 \u0431\u0430\u0437\u0438', '\u043a\u043e\u043b\u044c\u043e\u0440\u043e\u0432\u0430 \u0431\u0430\u0437\u0430', '\u0446\u0432\u0435\u0442\u043d\u044b\u0435 \u0431\u0430\u0437\u044b', '\u0446\u0432\u0435\u0442\u043d\u0430\u044f \u0431\u0430\u0437\u0430'], ['bazy kolorowe']),\r\n        catalogRule('bazy_przezroczyste', ['bazy przezroczyste', 'baza przezroczysta', 'bezbarwna baza', '\u043f\u0440\u043e\u0437\u043e\u0440\u0456 \u0431\u0430\u0437\u0438', '\u043f\u0440\u043e\u0437\u043e\u0440\u0430 \u0431\u0430\u0437\u0430', '\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0431\u0430\u0437\u044b', '\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u0430\u044f \u0431\u0430\u0437\u0430'], ['bazy przezroczyste']),\r\n        catalogRule('farba_zelowa', ['farba zelowa do zdobien', 'farba \u017celowa do zdobie\u0144', 'farbe zelowa do zdobien', 'farb\u0119 \u017celow\u0105 do zdobie\u0144', 'farba zelowa', '\u0433\u0435\u043b\u044c \u0444\u0430\u0440\u0431\u0430 \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0443', '\u0433\u0435\u043b\u044c-\u0444\u0430\u0440\u0431\u0430', '\u0433\u0435\u043b\u044c \u0444\u0430\u0440\u0431\u0443', '\u0433\u0435\u043b\u044c \u043a\u0440\u0430\u0441\u043a\u0430 \u0434\u043b\u044f \u0434\u0438\u0437\u0430\u0439\u043d\u0430', '\u0433\u0435\u043b\u044c-\u043a\u0440\u0430\u0441\u043a\u0430', '\u0433\u0435\u043b\u044c \u043a\u0440\u0430\u0441\u043a\u0443'], ['farba zelowa do zdobien', 'farba \u017celowa do zdobie\u0144']),\r\n        catalogRule('formy_moldy', ['gorne formy', 'g\u00f3rne formy', 'formy gorne', 'formy do paznokci', 'moldy silikonowe', 'mold silikonowy', '\u0432\u0435\u0440\u0445\u043d\u0456 \u0444\u043e\u0440\u043c\u0438', '\u0444\u043e\u0440\u043c\u0438 \u0434\u043b\u044f \u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f', '\u0441\u0438\u043b\u0456\u043a\u043e\u043d\u043e\u0432\u0456 \u043c\u043e\u043b\u0434\u0438', '\u0432\u0435\u0440\u0445\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u044b', '\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f', '\u0441\u0438\u043b\u0438\u043a\u043e\u043d\u043e\u0432\u044b\u0435 \u043c\u043e\u043b\u0434\u044b'], ['gorne formy', 'g\u00f3rne formy', 'moldy silikonowe', 'gorne formy moldy silikonowe', 'g\u00f3rne formy moldy silikonowe']),\r\n        catalogRule('jednorazowe', ['artykuly jednorazowe', 'artyku\u0142y jednorazowe', 'jednorazowki', 'jednorazowe akcesoria', '\u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0456 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b\u0438', '\u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u0456 \u0430\u043a\u0441\u0435\u0441\u0443\u0430\u0440\u0438', '\u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b', '\u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b'], ['artykuly jednorazowe', 'artyku\u0142y jednorazowe']),\r\n        catalogRule('pilnik', ['pilniki i nakladki scierne', 'pilniki i nak\u0142adki \u015bcierne', 'pilnik', 'pilniki', 'pilniczek', 'nakladki scierne', '\u043f\u0438\u043b\u043a\u0430', '\u043f\u0438\u043b\u043a\u0443', '\u043f\u0438\u043b\u043a\u0438', '\u043f\u0438\u043b\u043e\u0447\u043a\u0438', '\u0448\u043b\u0456\u0444\u0443\u0432\u0430\u043b\u044c\u043d\u0456 \u043a\u043e\u0432\u043f\u0430\u0447\u043a\u0438', '\u0448\u043b\u0438\u0444\u043e\u0432\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043f\u0430\u0447\u043a\u0438'], ['pilniki i nakladki scierne', 'pilniki i nak\u0142adki \u015bcierne']),\r\n        catalogRule('pedzel', ['pedzelki', 'p\u0119dzelki', 'pedzel', 'pedzle', 'p\u0119dzel', 'p\u0119dzle', 'brush', '\u043f\u0435\u043d\u0437\u0435\u043b\u044c', '\u043f\u0435\u043d\u0437\u043b\u0456', '\u043a\u0438\u0441\u0442\u044c', '\u043a\u0438\u0441\u0442\u0438'], ['pedzelki', 'p\u0119dzelki']),\r\n        catalogRule('olejek', ['olejek do skorek', 'olejek do sk\u00f3rek', 'oliwka do skorek', 'olejek', '\u043e\u043b\u0456\u044f \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u0438', '\u043e\u043b\u0456\u044e \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u0438', '\u043e\u043b\u0456\u0439\u043a\u0430 \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u0438', '\u043c\u0430\u0441\u043b\u043e \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u044b'], ['olejek do skorek', 'olejek do sk\u00f3rek']),\r\n        catalogRule('plyny', ['plyny do paznokci', 'p\u0142yny do paznokci', 'plyny', 'p\u0142yny', '\u0440\u0456\u0434\u0438\u043d\u0438 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u0440\u0456\u0434\u0438\u043d\u0438 \u0434\u043b\u044f \u043d\u0456\u0433\u0442\u0456\u0432', '\u0436\u0438\u0434\u043a\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u0436\u0438\u0434\u043a\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043d\u043e\u0433\u0442\u0435\u0439'], ['plyny', 'p\u0142yny']),\r\n        catalogRule('tipsy', ['tipsy do przedluzania', 'tipsy do przed\u0142u\u017cania', 'tipsy', 'tipy', '\u0442\u0456\u043f\u0441\u0438 \u0434\u043b\u044f \u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f', '\u0442\u0456\u043f\u0441\u0438', '\u0442\u0438\u043f\u0441\u044b \u0434\u043b\u044f \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f', '\u0442\u0438\u043f\u0441\u044b'], ['tipsy do przedluzania', 'tipsy do przed\u0142u\u017cania']),\r\n        catalogRule('frezarka', ['frezarki do paznokci', 'frezarka do paznokci', 'frezarka', 'frezarki', '\u0430\u043f\u0430\u0440\u0430\u0442 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u0444\u0440\u0435\u0437\u0435\u0440 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u0444\u0440\u0435\u0437\u0435\u0440', '\u0444\u0440\u0435\u0437\u0435\u0440\u043a\u0430', '\u0430\u043f\u043f\u0430\u0440\u0430\u0442 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430'], ['frezarki do paznokci']),\r\n        catalogRule('pochlaniacz', ['pochlaniacz pylu', 'poch\u0142aniacz py\u0142u', 'pochlaniacze pylu', 'poch\u0142aniacze py\u0142u', 'pochlaniacz', 'poch\u0142aniacz', '\u0432\u0438\u0442\u044f\u0436\u043a\u0430 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u0432\u0438\u0442\u044f\u0436\u043a\u0443 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u043f\u0438\u043b\u043e\u0437\u0431\u0456\u0440\u043d\u0438\u043a', '\u0432\u044b\u0442\u044f\u0436\u043a\u0430 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u0432\u044b\u0442\u044f\u0436\u043a\u0443 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u043f\u044b\u043b\u0435\u0441\u043e\u0441 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430'], ['pochlaniacze', 'pochlaniacze pylu do manicure', 'poch\u0142aniacze py\u0142u do manicure']),\r\n        catalogRule('myjka', ['myjki', 'myjka', 'myjka ultradzwiekowa', 'myjka ultrad\u017awi\u0119kowa', '\u0443\u043b\u044c\u0442\u0440\u0430\u0437\u0432\u0443\u043a\u043e\u0432\u0430 \u043c\u0438\u0439\u043a\u0430', '\u0443\u043b\u044c\u0442\u0440\u0430\u0437\u0432\u0443\u043a\u043e\u0432\u0443 \u043c\u0438\u0439\u043a\u0443', '\u043c\u0438\u0439\u043a\u0430 \u0434\u043b\u044f \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432', '\u0443\u043b\u044c\u0442\u0440\u0430\u0437\u0432\u0443\u043a\u043e\u0432\u0430\u044f \u043c\u043e\u0439\u043a\u0430', '\u0443\u043b\u044c\u0442\u0440\u0430\u0437\u0432\u0443\u043a\u043e\u0432\u0443\u044e \u043c\u043e\u0439\u043a\u0443', '\u043c\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432'], ['myjki']),\r\n        catalogRule('podlokietnik', ['podlokietnik akri', 'pod\u0142okietnik akri', 'podlokietnik', 'pod\u0142okietnik', 'podporka pod dlonie', 'podp\u00f3rka pod d\u0142onie', 'podporka do manicure', '\u043f\u0456\u0434\u043b\u043e\u043a\u0456\u0442\u043d\u0438\u043a', '\u043f\u0456\u0434\u043b\u043e\u043a\u043e\u0442\u043d\u0438\u043a', '\u043f\u0456\u0434\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u0456\u0434 \u0440\u0443\u043a\u0443', '\u043e\u043f\u043e\u0440\u0430 \u043f\u0456\u0434 \u0440\u0443\u043a\u0443', '\u043f\u043e\u0434\u043b\u043e\u043a\u043e\u0442\u043d\u0438\u043a', '\u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0430 \u043f\u043e\u0434 \u0440\u0443\u043a\u0443', '\u043e\u043f\u043e\u0440\u0430 \u0434\u043b\u044f \u0440\u0443\u043a\u0438'], ['podlokietnik akri', 'pod\u0142okietnik akri']),\r\n        catalogRule('frez', ['frezy', 'frez do', 'frezu', 'frez', '\u0444\u0440\u0435\u0437\u0430', '\u0444\u0440\u0435\u0437\u0438', '\u0444\u0440\u0435\u0437\u0443', '\u0444\u0440\u0435\u0437\u044b', '\u0444\u0440\u0435\u0437'], ['frezy']),\r\n        catalogRule('lampa', ['lampy do paznokci', 'lampa do paznokci', 'lampa uv', 'lampa led', 'lampy', 'lampa', '\u043b\u0430\u043c\u043f\u0430 \u0434\u043b\u044f \u043d\u0456\u0433\u0442\u0456\u0432', '\u043b\u0430\u043c\u043f\u0430 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u043b\u0430\u043c\u043f\u0443 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u043b\u0430\u043c\u043f\u0438', '\u043b\u0430\u043c\u043f\u0430 \u0434\u043b\u044f \u043d\u043e\u0433\u0442\u0435\u0439', '\u043b\u0430\u043c\u043f\u0430 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u043b\u0430\u043c\u043f\u0443 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u043b\u0430\u043c\u043f\u044b', '\u043b\u0430\u043c\u043f\u0430', '\u043b\u0430\u043c\u043f\u0443'], ['lampy']),\r\n        catalogRule('flora_liquid_polygel', ['flora liquid polygel', 'flora polygel', '\u0444\u043b\u043e\u0440\u0430 liquid polygel'], ['flora liquid polygel']),\r\n        catalogRule('liquid_acrylgel', ['liquid acrylgel', 'liquid acrigel', '\u043b\u0456\u043a\u0432\u0456\u0434 \u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c', '\u043b\u0438\u043a\u0432\u0438\u0434 \u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c'], ['liquid acrylgel']),\r\n        catalogRule('acrylgel_w_plynie', ['acrylgel w plynie', 'acrylgel w p\u0142ynie', '\u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c w plynie', '\u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c \u0443 \u0440\u0456\u0434\u043a\u043e\u043c\u0443 \u0432\u0438\u0433\u043b\u044f\u0434\u0456', '\u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c \u0432 \u0436\u0438\u0434\u043a\u043e\u043c \u0432\u0438\u0434\u0435'], ['acrylgel w plynie', 'acrylgel w p\u0142ynie']),\r\n        catalogRule('bottle_gel', ['bottle gel', '\u0433\u0435\u043b\u044c \u0443 \u043f\u043b\u044f\u0448\u0435\u0447\u0446\u0456', '\u0433\u0435\u043b\u044c \u0432 \u0431\u0443\u0442\u044b\u043b\u043e\u0447\u043a\u0435'], ['bottle gel']),\r\n        catalogRule('build_gel_flower', ['build gel flower', 'flower build gel', '\u0433\u0435\u043b\u044c flower'], ['build gel flower']),\r\n        catalogRule('build_gel_petal', ['build gel petal', 'build gel potal', 'petal build gel', 'potal build gel', '\u0433\u0435\u043b\u044c petal', '\u0433\u0435\u043b\u044c potal'], ['build gel petal', 'build gel potal']),\r\n        catalogRule('builder_liquid', ['builder liquid', 'liquid builder', '\u0440\u0456\u0434\u043a\u0438\u0439 builder', '\u0436\u0438\u0434\u043a\u0438\u0439 builder'], ['builder liquid']),\r\n        catalogRule('opal_builder_gel', ['opal builder gel', 'builder gel opal', '\u043e\u043f\u0430\u043b\u043e\u0432\u0438\u0439 builder gel', '\u043e\u043f\u0430\u043b\u043e\u0432\u044b\u0439 builder gel'], ['opal builder gel']),\r\n        catalogRule('premium_gel', ['premium gel', 'zel premium', '\u017cel premium', '\u043f\u0440\u0435\u043c\u0456\u0443\u043c \u0433\u0435\u043b\u044c', '\u043f\u0440\u0435\u043c\u0438\u0443\u043c \u0433\u0435\u043b\u044c'], ['premium gel']),\r\n        catalogRule('zel_galaretka', ['zel galaretka', '\u017cel-galaretka', 'zel galaretke', '\u017cel-galaretk\u0119', 'zel jelly', '\u0436\u0435\u043b\u0435 \u0433\u0435\u043b\u044c', '\u0433\u0435\u043b\u044c \u0436\u0435\u043b\u0435', '\u0433\u0435\u043b\u044c-\u0436\u0435\u043b\u0435'], ['zel galaretka', '\u017cel-galaretka']),\r\n        catalogRule('builder_gel_dream', ['builder gel dream', 'dream builder gel', '\u0433\u0435\u043b\u044c dream'], ['builder gel dream']),\r\n        catalogRule('builder_gel_magic', ['builder gel magic', 'magic builder gel', '\u0433\u0435\u043b\u044c magic'], ['builder gel magic']),\r\n        catalogRule('liquid_polygel', ['liquid polygel', 'liquid poly gel', '\u0440\u0456\u0434\u043a\u0438\u0439 \u043f\u043e\u043b\u0456\u0433\u0435\u043b\u044c', '\u0436\u0438\u0434\u043a\u0438\u0439 \u043f\u043e\u043b\u0438\u0433\u0435\u043b\u044c'], ['liquid polygel']),\r\n        catalogRule('liquid_gel', ['liquid gel', '\u0440\u0456\u0434\u043a\u0438\u0439 \u0433\u0435\u043b\u044c', '\u0436\u0438\u0434\u043a\u0438\u0439 \u0433\u0435\u043b\u044c'], ['liquid gel']),\r\n        catalogRule('builder_gel', ['builder gel', 'zel budujacy', '\u017cel buduj\u0105cy', '\u0431\u0443\u0434\u0456\u0432\u0435\u043b\u044c\u043d\u0438\u0439 \u0433\u0435\u043b\u044c', '\u043c\u043e\u0434\u0435\u043b\u044e\u044e\u0447\u0438\u0439 \u0433\u0435\u043b\u044c', '\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043b\u044c', '\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0433\u0435\u043b\u044c'], ['builder gel']),\r\n        catalogRule('akcesoria', ['akcesoria', 'akcesoria do paznokci', '\u0430\u043a\u0441\u0435\u0441\u0443\u0430\u0440\u0438', '\u0430\u043a\u0441\u0435\u0441\u0443\u0430\u0440\u0438 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b', '\u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430'], ['akcesoria']),\r\n        catalogRule('baza', ['baza', 'bazy', 'bazie', 'base coat', 'rubber base', 'cover base', '\u0431\u0430\u0437\u0430', '\u0431\u0430\u0437\u0438', '\u0431\u0430\u0437\u0443', '\u0431\u0430\u0437\u044b', '\u0431\u0430\u0437\u0435'], ['bazy']),\r\n        catalogRule('lakier', ['lakier', 'lakiery', 'lakieru', 'hybryda', 'hybrydowe', 'gel polish', '\u0433\u0435\u043b\u044c \u043b\u0430\u043a', '\u0433\u0435\u043b\u044c-\u043b\u0430\u043a', '\u043b\u0430\u043a', '\u043b\u0430\u043a\u0438', '\u043b\u0430\u043a\u0456\u0432', '\u043b\u0430\u043a\u043e\u0432'], ['lakiery hybrydowe']),\r\n        catalogRule('podology', ['podology plus', 'podology+', 'podologia', 'produkty podologiczne', '\u043f\u043e\u0434\u043e\u043b\u043e\u0433\u0456\u044f', '\u043f\u043e\u0434\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0456 \u0442\u043e\u0432\u0430\u0440\u0438', '\u043f\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u044f', '\u043f\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b'], ['podology plus', 'podology+', 'podology']),\r\n        catalogRule('top', ['top', 'topy', 'top coat', '\u0442\u043e\u043f', '\u0442\u043e\u043f\u0438', '\u0442\u043e\u043f\u044b'], ['topy']),\r\n        catalogRule('urzadzenia', ['urzadzenia', 'urz\u0105dzenia', 'sprzet do manicure', 'sprz\u0119t do manicure', '\u043e\u0431\u043b\u0430\u0434\u043d\u0430\u043d\u043d\u044f \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u043f\u0440\u0438\u0441\u0442\u0440\u043e\u0457 \u0434\u043b\u044f \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443', '\u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430', '\u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430'], ['urzadzenia', 'urz\u0105dzenia']),\r\n        catalogRule('zel', ['zele', '\u017cele', 'zel do paznokci', '\u017cel do paznokci', 'zel', '\u017cel', '\u0433\u0435\u043b\u044c \u0434\u043b\u044f \u043d\u0456\u0433\u0442\u0456\u0432', '\u0433\u0435\u043b\u0456 \u0434\u043b\u044f \u043d\u0456\u0433\u0442\u0456\u0432', '\u0433\u0435\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0433\u0442\u0435\u0439', '\u0433\u0435\u043b\u0438 \u0434\u043b\u044f \u043d\u043e\u0433\u0442\u0435\u0439', '\u0433\u0435\u043b\u044c', '\u0433\u0435\u043b\u0456', '\u0433\u0435\u043b\u0438'], ['zele', '\u017cele']),\r\n        catalogRule('primer', ['primer', '\u043f\u0440\u0430\u0439\u043c\u0435\u0440'], ['plyny', 'p\u0142yny'], ['primer', '\u043f\u0440\u0430\u0439\u043c\u0435\u0440']),\r\n        catalogRule('dehydrator', ['dehydrator', 'nail prep', '\u0434\u0435\u0433\u0456\u0434\u0440\u0430\u0442\u043e\u0440', '\u0434\u0435\u0433\u0438\u0434\u0440\u0430\u0442\u043e\u0440'], ['plyny', 'p\u0142yny'], ['dehydrator', 'nail prep', '\u0434\u0435\u0433\u0456\u0434\u0440\u0430\u0442\u043e\u0440', '\u0434\u0435\u0433\u0438\u0434\u0440\u0430\u0442\u043e\u0440']),\r\n        catalogRule('cleaner', ['cleaner', 'odtluszczacz', 'odt\u0142uszczacz', '\u043e\u0431\u0435\u0437\u0436\u0438\u0440\u044e\u0432\u0430\u0447', '\u043e\u0431\u0435\u0437\u0436\u0438\u0440\u0438\u0432\u0430\u0442\u0435\u043b\u044c'], ['plyny', 'p\u0142yny'], ['cleaner', 'odtluszcz', '\u043e\u0431\u0435\u0437\u0436\u0438\u0440']),\r\n        catalogRule('remover', ['remover', 'aceton', 'zmywacz', '\u0440\u0456\u0434\u0438\u043d\u0430 \u0434\u043b\u044f \u0437\u043d\u044f\u0442\u0442\u044f', '\u0436\u0438\u0434\u043a\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0441\u043d\u044f\u0442\u0438\u044f', '\u0430\u0446\u0435\u0442\u043e\u043d'], ['plyny', 'p\u0142yny'], ['remover', 'aceton', 'zmywacz', '\u0437\u043d\u044f\u0442\u0442\u044f', '\u0441\u043d\u044f\u0442\u0438\u044f', '\u0430\u0446\u0435\u0442\u043e\u043d'])\r\n      ];\r\n\r\n      var englishCatalogTriggers = {\r\n        bazy_folia: ['camouflage base with foil', 'foil camouflage base', 'base with foil'],\r\n        bazy_shimmer: ['camouflage base with shimmer', 'shimmer camouflage base'],\r\n        cover_base_perla: ['pearl cover base', 'pearl base'],\r\n        termo_base: ['thermal base', 'temperature changing base'],\r\n        bazy_kamuflujace: ['camouflage bases', 'camouflage base', 'cover bases'],\r\n        bazy_kolorowe: ['coloured bases', 'colored bases', 'colour base', 'color base'],\r\n        bazy_przezroczyste: ['clear bases', 'clear base', 'transparent base'],\r\n        farba_zelowa: ['gel paint for nail art', 'nail art gel paint', 'gel paint'],\r\n        formy_moldy: ['upper nail forms', 'upper forms', 'dual forms', 'silicone moulds', 'silicone molds'],\r\n        jednorazowe: ['disposable articles', 'disposable accessories', 'disposable supplies'],\r\n        pilnik: ['nail files', 'nail file', 'sanding caps', 'abrasive caps'],\r\n        pedzel: ['nail brushes', 'gel brush'],\r\n        olejek: ['cuticle oil', 'nail oil'],\r\n        plyny: ['nail liquids', 'manicure liquids', 'nail fluids'],\r\n        tipsy: ['nail extension tips', 'nail tips', 'extension tips'],\r\n        frezarka: ['nail drill machines', 'nail drill machine', 'nail drill', 'electric nail file'],\r\n        pochlaniacz: ['nail dust collectors', 'nail dust collector', 'dust extractor', 'manicure vacuum'],\r\n        myjka: ['ultrasonic cleaners', 'ultrasonic cleaner', 'instrument cleaner'],\r\n        podlokietnik: ['manicure armrest', 'nail armrest', 'hand rest', 'arm rest'],\r\n        frez: ['nail drill bits', 'drill bits', 'nail bits', 'router bits'],\r\n        lampa: ['nail lamps', 'nail lamp', 'uv lamp', 'led lamp', 'curing lamp'],\r\n        acrylgel_w_plynie: ['acrylgel in liquid form'],\r\n        zel_galaretka: ['jelly gel', 'nail jelly gel'],\r\n        akcesoria: ['nail accessories', 'manicure accessories', 'accessories'],\r\n        baza: ['nail bases', 'nail base'],\r\n        lakier: ['gel polishes', 'hybrid polish', 'nail polish'],\r\n        podology: ['podology products', 'foot care products', 'podiatry products'],\r\n        top: ['top coats', 'nail top'],\r\n        urzadzenia: ['manicure devices', 'nail equipment', 'manicure equipment', 'nail devices'],\r\n        zel: ['nail gels', 'nail gel', 'gels for nails']\r\n      };\r\n\r\n      catalogRules.forEach(function (rule) {\r\n        if (englishCatalogTriggers[rule.id]) {\r\n          rule.triggers = rule.triggers.concat(englishCatalogTriggers[rule.id]);\r\n        }\r\n      });\r\n\r\n      var starterKitPhrases = {\r\n        starter: [\r\n          'zestaw startowy', 'zestaw dla poczatkujacej', 'zestaw dla pocz\u0105tkuj\u0105cej',\r\n          'starter kit', 'beginner kit', 'beginner nail kit', 'starter set',\r\n          '\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0438\u0439 \u043d\u0430\u0431\u0456\u0440', '\u043d\u0430\u0431\u0456\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0430\u0447\u043a\u0430',\r\n          '\u043d\u0430\u0431\u0456\u0440 \u0434\u043b\u044f \u043f\u043e\u0447\u0430\u0442\u043a\u0456\u0432\u0446\u044f', '\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440', '\u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430',\r\n          '\u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e'\r\n        ],\r\n        hybrid: [\r\n          'manicure hybrydowy', 'manicure hybrydowego', 'hybrydowy',\r\n          'hybrydowego', 'hybryda', 'hybrydy', 'gel polish manicure',\r\n          'hybrid manicure', 'for gel polish', 'gel polish',\r\n          '\u0433\u0456\u0431\u0440\u0438\u0434\u043d\u0438\u0439 \u043c\u0430\u043d\u0456\u043a\u044e\u0440', '\u0434\u043b\u044f \u0433\u0456\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e', '\u0433\u0456\u0431\u0440\u0438\u0434\u043d\u0438\u0439',\r\n          '\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u043c\u0430\u043d\u0438\u043a\u044e\u0440', '\u0434\u043b\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e', '\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439'\r\n        ],\r\n        extension: [\r\n          'przedluzanie', 'przed\u0142u\u017canie', 'przedluzania', 'przed\u0142u\u017cania',\r\n          'budowanie paznokci',\r\n          'zelowe przedluzanie', '\u017celowe przed\u0142u\u017canie', 'polygel', 'acrylgel',\r\n          'nail extensions', 'gel extensions', 'nail extension', 'extensions',\r\n          '\u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f', '\u0434\u043b\u044f \u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f', '\u043f\u043e\u043b\u0456\u0433\u0435\u043b\u044c', '\u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c',\r\n          '\u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u0435', '\u0434\u043b\u044f \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f', '\u043f\u043e\u043b\u0438\u0433\u0435\u043b\u044c', '\u0430\u043a\u0440\u0438\u0433\u0435\u043b\u044c'\r\n        ]\r\n      };\r\n\r\n      \/*\r\n       * Kolory s\u0105 rozpoznawane po rdzeniach s\u0142\u00f3w, dlatego dzia\u0142aj\u0105 r\u00f3\u017cne\r\n       * odmiany, potoczne formy, angielski, ukrai\u0144ski, rosyjski, sur\u017cyk i cz\u0119ste liter\u00f3wki.\r\n       * storeSlugs musz\u0105 odpowiada\u0107 warto\u015bciom atrybutu Color w WooCommerce.\r\n       *\/\r\n      var colorRules = [\r\n        {\r\n          id: 'burgundy',\r\n          storeSlugs: ['burgundy'],\r\n          triggers: ['bordow', 'bordo', 'burgund', 'winny', 'wisni', 'wine', 'marsal', 'merlot', '\u0431\u043e\u0440\u0434\u043e\u0432', '\u0431\u043e\u0440\u0434\u043e', '\u0431\u0443\u0440\u0433\u0443\u043d\u0434', '\u0432\u0438\u043d\u043d', '\u0432\u0438\u0448\u043d', '\u043c\u0430\u0440\u0441\u0430\u043b', '\u043c\u0435\u0440\u043b\u043e']\r\n        },\r\n        {\r\n          id: 'red',\r\n          storeSlugs: ['red', 'burgundy'],\r\n          triggers: ['czerwon', 'czerwien', 'red', 'karmin', 'rubin', 'scarlet', 'krwist', 'pomidor', 'ceglast', '\u0447\u0435\u0440\u0432\u043e\u043d', '\u043a\u0440\u0430\u0441\u043d', '\u0430\u043b\u044b\u0439', '\u0430\u043b\u0430\u044f', '\u0430\u043b\u043e\u0433\u043e', '\u0430\u043b\u0443\u044e', '\u043a\u0430\u0440\u043c\u0456\u043d', '\u043a\u0430\u0440\u043c\u0438\u043d', '\u0440\u0443\u0431\u0456\u043d', '\u0440\u0443\u0431\u0438\u043d', '\u0442\u043e\u043c\u0430\u0442', '\u0446\u0435\u0433\u043b\u044f\u043d', '\u043a\u0438\u0440\u043f\u0438\u0447']\r\n        },\r\n        {\r\n          id: 'pink',\r\n          storeSlugs: ['pink'],\r\n          triggers: ['rozow', 'pink', 'pudrow', 'powder pink', 'baby pink', 'fuksj', 'fuchsi', 'losos', 'salmon', 'malin', 'raspberry', 'ruspberry', 'barbie', 'guma balonowa', '\u0440\u043e\u0436\u0435\u0432', '\u0440\u043e\u0437\u043e\u0432', '\u043f\u0443\u0434\u0440\u043e\u0432', '\u0444\u0443\u043a\u0441\u0438', '\u043b\u043e\u0441\u043e\u0441', '\u043c\u0430\u043b\u0438\u043d', '\u0431\u0430\u0440\u0431\u0456', '\u0431\u0430\u0440\u0431\u0438']\r\n        },\r\n        {\r\n          id: 'white',\r\n          storeSlugs: ['white'],\r\n          triggers: ['bial', 'white', 'mleczn', 'milk', 'ivory', 'kosc sloniowa', '\u0431\u0456\u043b', '\u0431\u0435\u043b', '\u043c\u043e\u043b\u043e\u0447\u043d', '\u0430\u0439\u0432\u043e\u0440', '\u0441\u043b\u043e\u043d\u043e\u0432']\r\n        },\r\n        {\r\n          id: 'black',\r\n          storeSlugs: ['black'],\r\n          triggers: ['czarn', 'black', '\u0447\u043e\u0440\u043d', '\u0447\u0435\u0440\u043d']\r\n        },\r\n        {\r\n          id: 'blue',\r\n          storeSlugs: ['blue'],\r\n          triggers: ['niebiesk', 'blekit', 'blue', 'granat', 'navy', 'jeans', 'dzins', 'denim', 'turkus', 'cyan', 'indigo', 'kobalt', 'ultramaryn', 'lazurow', 'morski', '\u0441\u0438\u043d', '\u0431\u043b\u0430\u043a\u0438\u0442', '\u0433\u043e\u043b\u0443\u0431', '\u043d\u0435\u0431\u0435\u0441\u043d', '\u0431\u0456\u0440\u044e\u0437', '\u0431\u0438\u0440\u044e\u0437', '\u0434\u0436\u0438\u043d\u0441', '\u0434\u0435\u043d\u0456\u043c', '\u0434\u0435\u043d\u0438\u043c', '\u0430\u043a\u0432\u0430\u043c\u0430\u0440\u0438\u043d', '\u0456\u043d\u0434\u0438\u0433\u043e', '\u0438\u043d\u0434\u0438\u0433\u043e', '\u0432\u0430\u0441\u0438\u043b\u044c\u043a', '\u043a\u043e\u0431\u0430\u043b\u044c\u0442', '\u0443\u043b\u044c\u0442\u0440\u0430\u043c\u0430\u0440\u0438\u043d', '\u043b\u0430\u0437\u0443\u0440', '\u043c\u043e\u0440\u0441\u044c\u043a', '\u043c\u043e\u0440\u0441\u043a']\r\n        },\r\n        {\r\n          id: 'brown',\r\n          storeSlugs: ['brown'],\r\n          triggers: ['brazow', 'brown', 'czekolad', 'kawow', 'kawa', 'karmel', 'mokka', 'mocha', 'kakao', 'kasztan', 'orzech', 'taupe', '\u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432', '\u0448\u043e\u043a\u043e\u043b\u0430\u0434', '\u043a\u0430\u0432\u043e\u0432', '\u043a\u043e\u0444\u0435\u0439\u043d', '\u043a\u043e\u0444\u0435\u0439', '\u043a\u0430\u0440\u0430\u043c\u0435\u043b', '\u043c\u043e\u043a\u043a\u043e', '\u043c\u043e\u043a\u0430', '\u043a\u0430\u043a\u0430\u043e', '\u043a\u0430\u0448\u0442\u0430\u043d', '\u0433\u043e\u0440\u0456\u0445', '\u043e\u0440\u0435\u0445', '\u0442\u0430\u0443\u043f']\r\n        },\r\n        {\r\n          id: 'mint',\r\n          storeSlugs: ['mint'],\r\n          triggers: ['mietow', 'mint', '\u043c\u044f\u0442\u043d', '\u044f\u0442\u043d', '\u043c\u0435\u043d\u0442\u043e\u043b']\r\n        },\r\n        {\r\n          id: 'green',\r\n          storeSlugs: ['green'],\r\n          triggers: ['zielon', 'green', 'oliwk', 'khaki', 'seledyn', 'limonk', 'emerald', 'pistacj', 'szalwi', 'trawiast', 'butelkow', 'lesn', '\u0437\u0435\u043b\u0435\u043d', '\u043e\u043b\u0438\u0432\u043a', '\u0445\u0430\u043a\u0456', '\u0445\u0430\u043a\u0438', '\u0441\u0430\u043b\u0430\u0442\u043e\u0432', '\u043b\u0430\u0439\u043c', '\u0441\u043c\u0430\u0440\u0430\u0433\u0434', '\u0438\u0437\u0443\u043c\u0440\u0443\u0434', '\u0444\u0456\u0441\u0442\u0430\u0448', '\u0444\u0438\u0441\u0442\u0430\u0448', '\u0448\u0430\u0432\u043b\u0456', '\u0448\u0430\u043b\u0444\u0435', '\u0442\u0440\u0430\u0432\u044f\u043d', '\u043f\u043b\u044f\u0448\u043a\u043e\u0432', '\u0431\u0443\u0442\u044b\u043b\u043e\u0447', '\u043b\u0456\u0441\u043e\u0432', '\u043b\u0435\u0441\u043d']\r\n        },\r\n        {\r\n          id: 'grey',\r\n          storeSlugs: ['grey'],\r\n          triggers: ['szar', 'grey', 'gray', 'stalow', 'grafit', 'popiel', '\u0441\u0456\u0440', '\u0441\u0435\u0440\u044b\u0439', '\u0441\u0435\u0440\u0430\u044f', '\u0441\u0435\u0440\u043e\u0435', '\u0441\u0435\u0440\u044b\u0435', '\u0441\u0435\u0440\u043e\u0433\u043e', '\u0441\u0435\u0440\u0443\u044e', '\u0441\u0435\u0440\u0435\u043d\u044c\u043a', '\u0433\u0440\u0430\u0444\u0456\u0442', '\u0433\u0440\u0430\u0444\u0438\u0442', '\u0441\u0442\u0430\u043b\u0435\u0432', '\u0441\u0442\u0430\u043b\u044c\u043d', '\u043f\u043e\u043f\u0435\u043b\u044f\u0441\u0442', '\u043f\u0435\u043f\u0435\u043b\u044c\u043d']\r\n        },\r\n        {\r\n          id: 'lavender',\r\n          storeSlugs: ['lavender'],\r\n          triggers: ['lawend', 'lavender', '\u043b\u0430\u0432\u0430\u043d\u0434']\r\n        },\r\n        {\r\n          id: 'purple',\r\n          storeSlugs: ['purple'],\r\n          triggers: ['fiolet', 'purple', 'purpurow', 'liliow', 'lilac', 'sliwk', 'wrzos', 'mauve', '\u0444\u0456\u043e\u043b\u0435\u0442', '\u0444\u0438\u043e\u043b\u0435\u0442', '\u043f\u0443\u0440\u043f\u0443\u0440', '\u043b\u0456\u043b\u043e\u0432', '\u043b\u0438\u043b\u043e\u0432', '\u0441\u043b\u0438\u0432\u043e\u0432', '\u0431\u0443\u0437\u043a\u043e\u0432', '\u0441\u0438\u0440\u0435\u043d\u0435\u0432']\r\n        },\r\n        {\r\n          id: 'beige',\r\n          storeSlugs: ['beige'],\r\n          triggers: ['bezow', 'beige', 'nude', 'kremow', 'cielist', 'piaskow', 'waniliow', 'latte', 'cappuccino', 'capuccino', '\u0431\u0435\u0436', '\u043d\u044e\u0434', '\u043a\u0440\u0435\u043c\u043e\u0432', '\u0442\u0456\u043b\u0435\u0441\u043d', '\u0442\u0435\u043b\u0435\u0441\u043d', '\u043f\u0456\u0441\u043e\u0447\u043d', '\u043f\u0435\u0441\u043e\u0447\u043d', '\u0432\u0430\u043d\u0456\u043b\u044c\u043d', '\u0432\u0430\u043d\u0438\u043b\u044c\u043d', '\u043b\u0430\u0442\u0435', '\u043a\u0430\u043f\u0443\u0447\u0438\u043d']\r\n        },\r\n        {\r\n          id: 'orange',\r\n          storeSlugs: ['orange'],\r\n          triggers: ['pomarancz', 'orange', 'koral', 'brzoskwiniow', 'peach', 'terakot', 'miedzian', '\u043f\u043e\u043c\u0430\u0440\u0430\u043d\u0447', '\u043e\u0440\u0430\u043d\u0436', '\u043a\u043e\u0440\u0430\u043b', '\u043f\u0435\u0440\u0441\u0438\u043a', '\u0442\u0435\u0440\u0430\u043a\u043e\u0442', '\u043c\u0456\u0434\u043d', '\u043c\u0435\u0434\u043d']\r\n        },\r\n        {\r\n          id: 'yellow',\r\n          storeSlugs: ['yellow'],\r\n          triggers: ['zolty', 'zolta', 'zolte', 'yellow', 'cytryn', 'lemon', 'banan', 'musztard', 'miodow', 'bursztyn', '\u0436\u043e\u0432\u0442', '\u0436\u0435\u043b\u0442', '\u043b\u0438\u043c\u043e\u043d', '\u0431\u0430\u043d\u0430\u043d', '\u0433\u0456\u0440\u0447\u0438\u0447', '\u0433\u043e\u0440\u0447\u0438\u0447', '\u043c\u0435\u0434\u043e\u0432', '\u0431\u0443\u0440\u0448\u0442\u0438\u043d', '\u044f\u043d\u0442\u0430\u0440']\r\n        },\r\n        {\r\n          id: 'silver',\r\n          storeSlugs: ['silver'],\r\n          triggers: ['srebr', 'silver', 'platyn', '\u0441\u0440\u0456\u0431', '\u0441\u0435\u0440\u0435\u0431\u0440', '\u043f\u043b\u0430\u0442\u0438\u043d']\r\n        },\r\n        {\r\n          id: 'gold',\r\n          storeSlugs: ['gold'],\r\n          triggers: ['zlot', 'gold', 'golden', 'champagne', 'szampan', '\u0437\u043e\u043b\u043e\u0442', '\u0437\u043e\u043b\u043e\u0442\u0438\u0441\u0442', '\u0437\u043b\u043e\u0442', '\u0448\u0430\u043c\u043f\u0430\u043d\u044c', '\u0448\u0430\u043c\u043f\u0430\u043d']\r\n        },\r\n        {\r\n          id: 'transparent',\r\n          storeSlugs: ['transparent'],\r\n          triggers: ['przezrocz', 'transparent', 'clear', 'bezbarwn', '\u043f\u0440\u043e\u0437\u043e\u0440', '\u043f\u0440\u043e\u0437\u0440\u0430\u0447', '\u0431\u0435\u0437\u0431\u0430\u0440\u0432', '\u0431\u0435\u0441\u0446\u0432\u0435\u0442']\r\n        },\r\n        {\r\n          id: 'glitter',\r\n          storeSlugs: ['glitter'],\r\n          triggers: ['brokat', 'glitter', 'shimmer', 'swiec', 'blysk', '\u0431\u043b\u0438\u0441\u043a', '\u0431\u043b\u0435\u0441\u0442', '\u0433\u043b\u0456\u0442\u0435\u0440', '\u0433\u043b\u0438\u0442\u0442\u0435\u0440', '\u0448\u0438\u043c\u0435\u0440', '\u0448\u0438\u043c\u043c\u0435\u0440', '\u0441\u044f\u0439\u0432', '\u0441\u0438\u044f']\r\n        },\r\n        {\r\n          id: 'neon',\r\n          storeSlugs: ['neon'],\r\n          triggers: ['neon', 'fluoresc', 'acid', '\u043d\u0435\u043e\u043d', '\u043a\u0438\u0441\u043b\u043e\u0442\u043d', '\u0444\u043b\u0443\u043e\u0440\u0435\u0441\u0446']\r\n        },\r\n        {\r\n          id: 'chameleon',\r\n          storeSlugs: ['chameleon'],\r\n          triggers: ['kameleon', 'chameleon', '\u0445\u0430\u043c\u0435\u043b\u0435\u043e\u043d']\r\n        }\r\n      ];\r\n\r\n      colorRules.forEach(function (rule) {\r\n        rule.terms = rule.triggers.slice();\r\n      });\r\n\r\n      function containsTrigger(text, trigger) {\r\n        return text.indexOf(normalizeText(trigger)) !== -1;\r\n      }\r\n\r\n      function detectCatalogIntent(message) {\r\n        var normalized = ' ' + normalizeText(message) + ' ';\r\n        var bestRule = null;\r\n        var bestLength = -1;\r\n\r\n        for (var i = 0; i < catalogRules.length; i += 1) {\r\n          catalogRules[i].triggers.forEach(function (trigger) {\r\n            var normalizedTrigger = normalizeText(trigger);\r\n            if (normalized.indexOf(' ' + normalizedTrigger + ' ') !== -1 &&\r\n                normalizedTrigger.length > bestLength) {\r\n              bestRule = catalogRules[i];\r\n              bestLength = normalizedTrigger.length;\r\n            }\r\n          });\r\n        }\r\n\r\n        return bestRule;\r\n      }\r\n\r\n      function detectColor(message) {\r\n        var normalized = normalizeText(message);\r\n\r\n        for (var i = 0; i < colorRules.length; i += 1) {\r\n          if (colorRules[i].triggers.some(function (trigger) {\r\n            return containsTrigger(normalized, trigger);\r\n          })) {\r\n            return colorRules[i];\r\n          }\r\n        }\r\n\r\n        return null;\r\n      }\r\n\r\n      function detectExplicitProductColor(product) {\r\n        \/*\r\n         * Nazwa i kr\u00f3tki opis maj\u0105 pierwsze\u0144stwo przed atrybutem Color.\r\n         * W katalogu zdarzaj\u0105 si\u0119 stare, b\u0142\u0119dne atrybuty (np. be\u017cowy lakier\r\n         * oznaczony jako BURGUNDY), podczas gdy nazwa opisuje kolor poprawnie.\r\n         *\/\r\n        var nameColor = detectColor(product && product.name ? product.name : '');\r\n        if (nameColor) return nameColor;\r\n\r\n        var descriptionColor = detectColor(\r\n          product && product.short_description ? product.short_description : ''\r\n        );\r\n        if (descriptionColor) return descriptionColor;\r\n\r\n        return detectColor(storeProductColorText(product));\r\n      }\r\n\r\n      function colorsCompatible(requested, explicit) {\r\n        if (!requested || !explicit) return true;\r\n        if (requested.id === explicit.id) return true;\r\n\r\n        var redFamily = ['red', 'burgundy'];\r\n        return redFamily.indexOf(requested.id) !== -1 &&\r\n          redFamily.indexOf(explicit.id) !== -1;\r\n      }\r\n\r\n      function detectBudget(message) {\r\n        var match = normalizeText(message).match(\/(?:do|max|maksymalnie|budget|budzet|\u0434\u043e)\\s*(\\d+(?:[.,]\\d+)?)\/i);\r\n        if (!match) return null;\r\n\r\n        var amount = Number(String(match[1]).replace(',', '.'));\r\n        return Number.isFinite(amount) && amount > 0 ? amount : null;\r\n      }\r\n\r\n      function storeProductAmount(product) {\r\n        if (!product || !product.prices) return null;\r\n        var minor = Number(product.prices.currency_minor_unit);\r\n        var raw = Number(product.prices.price);\r\n        if (!Number.isFinite(minor)) minor = 2;\r\n        if (!Number.isFinite(raw)) return null;\r\n        return raw \/ Math.pow(10, minor);\r\n      }\r\n\r\n      function formatStorePrice(product) {\r\n        var amount = storeProductAmount(product);\r\n        if (amount == null) return '';\r\n\r\n        var prices = product.prices || {};\r\n        var minor = Number(prices.currency_minor_unit);\r\n        if (!Number.isFinite(minor)) minor = 2;\r\n\r\n        var currency = plainText(prices.currency_symbol || prices.currency_code || 'z\u0142');\r\n        return amount.toLocaleString('pl-PL', {\r\n          minimumFractionDigits: minor,\r\n          maximumFractionDigits: minor\r\n        }) + ' ' + currency;\r\n      }\r\n\r\n      function storeProductText(product) {\r\n        var categories = Array.isArray(product.categories)\r\n          ? product.categories.map(function (category) { return category.name || ''; })\r\n          : [];\r\n        var attributes = Array.isArray(product.attributes)\r\n          ? product.attributes.reduce(function (all, attribute) {\r\n              all.push(attribute.name || '');\r\n              if (Array.isArray(attribute.terms)) {\r\n                attribute.terms.forEach(function (term) { all.push(term.name || ''); });\r\n              }\r\n              return all;\r\n            }, [])\r\n          : [];\r\n\r\n        return normalizeText([\r\n          product.name || '',\r\n          product.short_description || '',\r\n          product.description || '',\r\n          categories.join(' '),\r\n          attributes.join(' ')\r\n        ].join(' '));\r\n      }\r\n\r\n      function storeProductColorText(product) {\r\n        var colorTerms = [];\r\n\r\n        if (Array.isArray(product.attributes)) {\r\n          product.attributes.forEach(function (attribute) {\r\n            var attributeName = normalizeText([\r\n              attribute.name || '',\r\n              attribute.taxonomy || ''\r\n            ].join(' '));\r\n\r\n            if (attributeName.indexOf('kolor') === -1 &&\r\n                attributeName.indexOf('color') === -1 &&\r\n                attributeName.indexOf('filter color') === -1) return;\r\n\r\n            if (Array.isArray(attribute.terms)) {\r\n              attribute.terms.forEach(function (term) {\r\n                colorTerms.push(term.name || '');\r\n                colorTerms.push(term.slug || '');\r\n              });\r\n            }\r\n          });\r\n        }\r\n\r\n        return normalizeText(colorTerms.join(' '));\r\n      }\r\n\r\n      function hasRequiredDetail(message, productText) {\r\n        var normalized = normalizeText(message);\r\n        var requirements = [\r\n          { triggers: ['diament'], terms: ['diament'] },\r\n          { triggers: ['ceramic'], terms: ['ceramic'] },\r\n          { triggers: ['weglik', 'karbid'], terms: ['weglik', 'karbid'] },\r\n          { triggers: ['plomyk', 'p\u0142omyk'], terms: ['plomyk'] },\r\n          { triggers: ['kulka', 'kula'], terms: ['kulka', 'kula'] },\r\n          { triggers: ['tornado'], terms: ['tornado'] }\r\n        ];\r\n\r\n        for (var i = 0; i < requirements.length; i += 1) {\r\n          var requested = requirements[i].triggers.some(function (trigger) {\r\n            return containsTrigger(normalized, trigger);\r\n          });\r\n          if (requested && !requirements[i].terms.some(function (term) {\r\n            return productText.indexOf(term) !== -1;\r\n          })) return false;\r\n        }\r\n\r\n        var asksForCuticleBit = \/(frez|\u0444\u0440\u0435\u0437)\/.test(normalized) &&\r\n          \/(skorek|skorki|kutykul|\u043a\u0443\u0442\u0438\u043a\u0443\u043b)\/.test(normalized);\r\n        if (asksForCuticleBit &&\r\n            !\/(skorek|skorki|walow|okolopaznokci|kutykul)\/.test(productText)) {\r\n          return false;\r\n        }\r\n\r\n        return true;\r\n      }\r\n\r\n      function relevanceScore(message, intent, product) {\r\n        var normalized = normalizeText(message);\r\n        var text = storeProductText(product);\r\n        var ignored = ['szukam', 'pokaz', 'prosze', 'produkt', 'produkty', 'ktory', 'ktore', 'jakie', 'chce', 'mnie', 'oraz', 'tylko', 'dostepne', '\u043f\u043e\u043a\u0430\u0436\u0438', '\u0448\u0443\u043a\u0430\u044e', '\u0442\u043e\u0432\u0430\u0440', '\u0442\u043e\u0432\u0430\u0440\u0438', '\u044f\u043a\u0438\u0439', '\u044f\u043a\u0456', '\u043c\u0435\u043d\u0456'];\r\n        var tokens = normalized.split(' ').filter(function (word) {\r\n          return word.length >= 4 && ignored.indexOf(word) === -1;\r\n        });\r\n        var score = 0;\r\n\r\n        tokens.forEach(function (word) {\r\n          if (text.indexOf(word) !== -1) score += 2;\r\n        });\r\n\r\n        if (intent.id === 'frez' && \/(skorek|skorki|kutykul|\u043a\u0443\u0442\u0438\u043a\u0443\u043b|\u0448\u043a\u0456\u0440)\/.test(normalized)) {\r\n          ['diament', 'plomyk', 'kulka', 'kula'].forEach(function (term) {\r\n            if (text.indexOf(term) !== -1) score += 2;\r\n          });\r\n        }\r\n\r\n        if (intent.id === 'frez' &&\r\n            \/(poczatkuj|nowicjus|\u043d\u043e\u0432\u0430\u0447|\u043f\u043e\u0447\u0430\u0442\u043a\u0456\u0432|\u043d\u043e\u0432\u0438\u0447|\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449)\/.test(normalized)) {\r\n          if (\/(czerwon|delikatn)\/.test(text)) score += 6;\r\n          if (\/(karbid|weglik|tunel)\/.test(text)) score -= 6;\r\n        }\r\n\r\n        return score;\r\n      }\r\n\r\n      function mapStoreProduct(product) {\r\n        var image = Array.isArray(product.images) && product.images[0] ? product.images[0] : {};\r\n        var category = Array.isArray(product.categories) && product.categories[0]\r\n          ? product.categories[0].name || ''\r\n          : '';\r\n\r\n        return {\r\n          url: product.permalink || '#',\r\n          image_url: image.thumbnail || image.src || '',\r\n          name: product.name || '',\r\n          formatted_price: formatStorePrice(product),\r\n          category: category\r\n        };\r\n      }\r\n\r\n      var storeColorTaxonomyPromise = null;\r\n      var storeCategoriesPromise = null;\r\n\r\n      function getStoreColorTaxonomy() {\r\n        if (storeColorTaxonomyPromise) return storeColorTaxonomyPromise;\r\n\r\n        var endpoint = new URL('\/wp-json\/wc\/store\/v1\/products\/attributes', window.location.origin);\r\n        storeColorTaxonomyPromise = fetch(endpoint.toString(), {\r\n          method: 'GET',\r\n          credentials: 'same-origin',\r\n          headers: { 'Accept': 'application\/json' }\r\n        })\r\n          .then(function (response) {\r\n            if (!response.ok) throw new Error('Attribute request failed');\r\n            return response.json();\r\n          })\r\n          .then(function (attributes) {\r\n            if (!Array.isArray(attributes)) return 'pa_color';\r\n\r\n            var colorAttribute = attributes.find(function (attribute) {\r\n              var label = normalizeText([\r\n                attribute.name || '',\r\n                attribute.taxonomy || ''\r\n              ].join(' '));\r\n\r\n              return label.indexOf('color') !== -1 || label.indexOf('kolor') !== -1;\r\n            });\r\n\r\n            return colorAttribute && colorAttribute.taxonomy\r\n              ? colorAttribute.taxonomy\r\n              : 'pa_color';\r\n          })\r\n          .catch(function () {\r\n            return 'pa_color';\r\n          });\r\n\r\n        return storeColorTaxonomyPromise;\r\n      }\r\n\r\n      function fetchStoreCategories(page, collected) {\r\n        page = Number(page) || 1;\r\n        collected = Array.isArray(collected) ? collected : [];\r\n\r\n        var endpoint = new URL('\/wp-json\/wc\/store\/v1\/products\/categories', window.location.origin);\r\n        endpoint.searchParams.set('per_page', '100');\r\n        endpoint.searchParams.set('page', String(page));\r\n\r\n        return fetch(endpoint.toString(), {\r\n          method: 'GET',\r\n          credentials: 'same-origin',\r\n          headers: { 'Accept': 'application\/json' }\r\n        }).then(function (response) {\r\n          if (!response.ok) throw new Error('Category request failed');\r\n          var totalPages = Number(response.headers.get('X-WP-TotalPages')) || 0;\r\n          return response.json().then(function (categories) {\r\n            categories = Array.isArray(categories) ? categories : [];\r\n            var allCategories = collected.concat(categories);\r\n            var hasNextPage = totalPages ? page < totalPages : categories.length === 100;\r\n            if (hasNextPage && page < 20) {\r\n              return fetchStoreCategories(page + 1, allCategories);\r\n            }\r\n            return allCategories;\r\n          });\r\n        });\r\n      }\r\n\r\n      function getStoreCategories() {\r\n        if (!storeCategoriesPromise) {\r\n          storeCategoriesPromise = fetchStoreCategories(1, []).catch(function () { return []; });\r\n        }\r\n        return storeCategoriesPromise;\r\n      }\r\n\r\n      function resolveIntentCategoryIds(intent) {\r\n        return getStoreCategories().then(function (categories) {\r\n          var aliases = (intent.categories || []).map(normalizeText);\r\n          var ids = [];\r\n\r\n          categories.forEach(function (category) {\r\n            var name = normalizeText(category.name || '');\r\n            var slug = normalizeText(String(category.slug || '').replace(\/-\/g, ' '));\r\n            if (aliases.indexOf(name) !== -1 || aliases.indexOf(slug) !== -1) {\r\n              ids.push(Number(category.id));\r\n            }\r\n          });\r\n\r\n          var changed = true;\r\n          while (changed) {\r\n            changed = false;\r\n            categories.forEach(function (category) {\r\n              var id = Number(category.id);\r\n              var parent = Number(category.parent);\r\n              if (parent && ids.indexOf(parent) !== -1 && ids.indexOf(id) === -1) {\r\n                ids.push(id);\r\n                changed = true;\r\n              }\r\n            });\r\n          }\r\n\r\n          return ids.filter(function (id, index, all) {\r\n            return id > 0 && all.indexOf(id) === index;\r\n          });\r\n        });\r\n      }\r\n\r\n      function productHasResolvedCategory(product, categoryIds) {\r\n        if (!Array.isArray(product.categories) || !categoryIds.length) return false;\r\n        return product.categories.some(function (category) {\r\n          return categoryIds.indexOf(Number(category.id)) !== -1;\r\n        });\r\n      }\r\n\r\n      function productMatchesRequiredTerms(product, intent) {\r\n        if (!Array.isArray(intent.productTerms) || !intent.productTerms.length) return true;\r\n        var text = storeProductText(product);\r\n        return intent.productTerms.some(function (term) {\r\n          return text.indexOf(normalizeText(term)) !== -1;\r\n        });\r\n      }\r\n\r\n      function fetchStoreSearch(categoryIds, budget, colorSlug, page, collected) {\r\n        page = Number(page) || 1;\r\n        collected = Array.isArray(collected) ? collected : [];\r\n\r\n        return getStoreColorTaxonomy().then(function (colorTaxonomy) {\r\n          var endpoint = new URL('\/wp-json\/wc\/store\/v1\/products', window.location.origin);\r\n          endpoint.searchParams.set('category', categoryIds.join(','));\r\n          endpoint.searchParams.set('category_operator', 'in');\r\n          endpoint.searchParams.set('per_page', '100');\r\n          endpoint.searchParams.set('page', String(page));\r\n          endpoint.searchParams.append('stock_status[]', 'instock');\r\n          if (budget != null) endpoint.searchParams.set('max_price', String(Math.round(budget * 100)));\r\n          if (colorSlug) {\r\n            endpoint.searchParams.set('attributes[0][attribute]', colorTaxonomy);\r\n            endpoint.searchParams.set('attributes[0][slug]', colorSlug);\r\n            endpoint.searchParams.set('attributes[0][operator]', 'in');\r\n          }\r\n\r\n          return fetch(endpoint.toString(), {\r\n            method: 'GET',\r\n            credentials: 'same-origin',\r\n            headers: { 'Accept': 'application\/json' }\r\n          }).then(function (response) {\r\n            if (!response.ok) throw new Error('Catalog request failed');\r\n            var totalPages = Number(response.headers.get('X-WP-TotalPages')) || 0;\r\n            return response.json().then(function (products) {\r\n              products = Array.isArray(products) ? products : [];\r\n              var allProducts = collected.concat(products);\r\n              var hasNextPage = totalPages\r\n                ? page < totalPages\r\n                : products.length === 100;\r\n\r\n              if (hasNextPage && page < 20) {\r\n                return fetchStoreSearch(categoryIds, budget, colorSlug, page + 1, allProducts)\r\n                  .catch(function () { return allProducts; });\r\n              }\r\n\r\n              return allProducts;\r\n            });\r\n          });\r\n        });\r\n      }\r\n\r\n      function cacheCatalogResult(key, products) {\r\n        catalogResultCache[key] = products;\r\n        catalogCacheKeys = catalogCacheKeys.filter(function (savedKey) {\r\n          return savedKey !== key;\r\n        });\r\n        catalogCacheKeys.push(key);\r\n\r\n        while (catalogCacheKeys.length > 6) {\r\n          delete catalogResultCache[catalogCacheKeys.shift()];\r\n        }\r\n      }\r\n\r\n      function catalogPage(products, offset) {\r\n        offset = Math.max(0, Number(offset) || 0);\r\n        var pageProducts = products.slice(offset, offset + 8);\r\n        return {\r\n          products: pageProducts,\r\n          total: products.length,\r\n          offset: offset,\r\n          from: pageProducts.length ? offset + 1 : 0,\r\n          to: offset + pageProducts.length,\r\n          hasMore: offset + pageProducts.length < products.length\r\n        };\r\n      }\r\n\r\n      function requestCatalogProducts(message, intent, offset) {\r\n        var budget = detectBudget(message);\r\n        var color = detectColor(message);\r\n        var cacheKey = [\r\n          intent.id,\r\n          color ? color.id : '',\r\n          budget == null ? '' : String(budget),\r\n          normalizeText(message)\r\n        ].join('|');\r\n\r\n        if (Array.isArray(catalogResultCache[cacheKey])) {\r\n          return Promise.resolve(catalogPage(catalogResultCache[cacheKey], offset));\r\n        }\r\n\r\n        var colorSlugs = color && Array.isArray(color.storeSlugs) && color.storeSlugs.length\r\n          ? color.storeSlugs.concat([null])\r\n          : [null];\r\n        return resolveIntentCategoryIds(intent).then(function (categoryIds) {\r\n          if (!categoryIds.length) return [];\r\n          return Promise.all(colorSlugs.map(function (colorSlug) {\r\n            return fetchStoreSearch(categoryIds, budget, colorSlug)\r\n              .catch(function () { return []; });\r\n          })).then(function (groups) {\r\n          var unique = {};\r\n          groups.forEach(function (products) {\r\n            products.forEach(function (product) {\r\n              unique[String(product.id)] = product;\r\n            });\r\n          });\r\n\r\n          var products = Object.keys(unique).map(function (id) { return unique[id]; });\r\n          products = products.filter(function (product) {\r\n            var text = storeProductText(product);\r\n            var explicitColor = detectExplicitProductColor(product);\r\n            var amount = storeProductAmount(product);\r\n\r\n            if (!productHasResolvedCategory(product, categoryIds)) return false;\r\n            if (!productMatchesRequiredTerms(product, intent)) return false;\r\n            if (product.is_in_stock !== true) return false;\r\n            if (budget != null && amount != null && amount > budget) return false;\r\n            if (!hasRequiredDetail(message, text)) return false;\r\n            if (color && !explicitColor) return false;\r\n            if (color && !colorsCompatible(color, explicitColor)) return false;\r\n            return true;\r\n          });\r\n\r\n          var normalizedQuery = normalizeText(message);\r\n          var beginnerCuticleQuery = intent.id === 'frez' &&\r\n            \/(skorek|skorki|kutykul|\u043a\u0443\u0442\u0438\u043a\u0443\u043b)\/.test(normalizedQuery) &&\r\n            \/(poczatkuj|nowicjus|\u043d\u043e\u0432\u0430\u0447|\u043f\u043e\u0447\u0430\u0442\u043a\u0456\u0432|\u043d\u043e\u0432\u0438\u0447|\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449)\/.test(normalizedQuery);\r\n\r\n          products.sort(function (a, b) {\r\n            if (beginnerCuticleQuery) {\r\n              var aGentle = \/(czerwon|delikatn)\/.test(storeProductText(a));\r\n              var bGentle = \/(czerwon|delikatn)\/.test(storeProductText(b));\r\n              if (aGentle !== bGentle) return aGentle ? -1 : 1;\r\n            }\r\n            return relevanceScore(message, intent, b) - relevanceScore(message, intent, a);\r\n          });\r\n\r\n          var mappedProducts = products.map(mapStoreProduct);\r\n          if (beginnerCuticleQuery) {\r\n            mappedProducts.sort(function (a, b) {\r\n              var aGentleName = \/(czerwon|delikatn)\/.test(normalizeText(a.name || ''));\r\n              var bGentleName = \/(czerwon|delikatn)\/.test(normalizeText(b.name || ''));\r\n              if (aGentleName !== bGentleName) return aGentleName ? -1 : 1;\r\n              return 0;\r\n            });\r\n          }\r\n          cacheCatalogResult(cacheKey, mappedProducts);\r\n          return catalogPage(mappedProducts, offset);\r\n          });\r\n        }).then(function (result) {\r\n          return result && result.products ? result : catalogPage([], offset);\r\n        });\r\n      }\r\n\r\n      function starterComponents(type) {\r\n        if (type === 'extension') {\r\n          return [\r\n            { intents: ['lampa'], limit: 1 },\r\n            { intents: ['baza'], limit: 1 },\r\n            { intents: ['builder_gel', 'premium_gel'], limit: 1 },\r\n            { intents: ['top'], limit: 1 },\r\n            { intents: ['pedzel'], limit: 1 },\r\n            { intents: ['formy_moldy', 'tipsy'], limit: 1 },\r\n            { intents: ['pilnik'], limit: 1 },\r\n            { intents: ['cleaner', 'dehydrator'], limit: 1 }\r\n          ];\r\n        }\r\n\r\n        return [\r\n          { intents: ['lampa'], limit: 1 },\r\n          { intents: ['baza'], limit: 1 },\r\n          { intents: ['top'], limit: 1 },\r\n          { intents: ['lakier'], limit: 2 },\r\n          { intents: ['pilnik'], limit: 1 },\r\n          { intents: ['cleaner', 'dehydrator'], limit: 1 },\r\n          { intents: ['olejek'], limit: 1 }\r\n        ];\r\n      }\r\n\r\n      function requestStarterComponent(component, type, intentIndex) {\r\n        intentIndex = Number(intentIndex) || 0;\r\n        var intent = getCatalogIntentById(component.intents[intentIndex]);\r\n        if (!intent) return Promise.resolve([]);\r\n\r\n        return requestCatalogProducts('starter kit ' + type, intent, 0)\r\n          .then(function (page) {\r\n            var products = page.products.slice(0, component.limit);\r\n            if (products.length || intentIndex + 1 >= component.intents.length) {\r\n              return products;\r\n            }\r\n            return requestStarterComponent(component, type, intentIndex + 1);\r\n          });\r\n      }\r\n\r\n      function requestStarterKitProducts(type) {\r\n        return Promise.all(starterComponents(type).map(function (component) {\r\n          return requestStarterComponent(component, type, 0);\r\n        })).then(function (groups) {\r\n          var used = {};\r\n          var products = [];\r\n          groups.forEach(function (group) {\r\n            group.forEach(function (product) {\r\n              var key = product.url || product.name;\r\n              if (!key || used[key] || products.length >= 8) return;\r\n              used[key] = true;\r\n              products.push(product);\r\n            });\r\n          });\r\n          return products;\r\n        });\r\n      }\r\n\r\n      function detectLanguage(message) {\r\n        var raw = String(message || '').toLowerCase();\r\n        var normalized = normalizeText(raw);\r\n\r\n        if (\/[\u0456\u0457\u0454\u0491]\/i.test(raw)) return 'uk';\r\n        if (\/[\u044b\u044d\u044a\u0451]\/i.test(raw)) return 'ru';\r\n\r\n        var russianMarkers = [\r\n          '\u043f\u0440\u0438\u0432\u0435\u0442', '\u0438\u0449\u0443', '\u043d\u0443\u0436\u0435\u043d', '\u043d\u0443\u0436\u043d\u0430', '\u043d\u0443\u0436\u043d\u043e', '\u043f\u043e\u043a\u0430\u0436\u0438', '\u043f\u043e\u0441\u043e\u0432\u0435\u0442', '\u043f\u043e\u043c\u043e\u0433\u0438',\r\n          '\u043a\u0440\u0430\u0441\u043d', '\u0440\u043e\u0437\u043e\u0432', '\u0433\u043e\u043b\u0443\u0431', '\u0441\u0438\u043d\u0438\u0439', '\u0431\u0435\u043b\u044b\u0439', '\u0447\u0435\u0440\u043d\u044b\u0439', '\u0444\u0438\u043e\u043b\u0435\u0442',\r\n          '\u0441\u0435\u0440\u044b\u0439', '\u043a\u043e\u0440\u0438\u0447\u043d\u0435\u0432', '\u0440\u0443\u0441\u0441\u043a', '\u043d\u0430\u0440\u0430\u0449', '\u0433\u0438\u0431\u0440\u0438\u0434', '\u043f\u043e\u043b\u0438\u0433\u0435\u043b'\r\n        ];\r\n        if (russianMarkers.some(function (marker) {\r\n          return normalized.indexOf(marker) !== -1;\r\n        })) return 'ru';\r\n\r\n        var ukrainianMarkers = [\r\n          '\u043f\u0440\u0438\u0432\u0456\u0442', '\u0448\u0443\u043a\u0430\u044e', '\u043f\u043e\u0442\u0440\u0456\u0431', '\u043f\u043e\u0440\u0430\u0434\u044c', '\u0434\u043e\u043f\u043e\u043c\u043e\u0436', '\u0447\u0435\u0440\u0432\u043e\u043d',\r\n          '\u0440\u043e\u0436\u0435\u0432', '\u0431\u043b\u0430\u043a\u0438\u0442', '\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a'\r\n        ];\r\n        if (ukrainianMarkers.some(function (marker) {\r\n          return normalized.indexOf(marker) !== -1;\r\n        })) return 'uk';\r\n\r\n        if (\/[\u0430-\u044f]\/i.test(raw)) return 'uk';\r\n\r\n        if (\/[\u0105\u0107\u0119\u0142\u0144\u00f3\u015b\u017a\u017c]\/i.test(raw)) return 'pl';\r\n\r\n        var polishMarkers = [\r\n          'poka\u017c', 'pokaz', 'szukam', 'znajd\u017a', 'znajdz', 'pole\u0107', 'polec',\r\n          'potrzebuj\u0119', 'potrzebuje', 'czy macie', 'jak u\u017cywa\u0107', 'jak uzywac',\r\n          'dostawa', 'wysy\u0142ka', 'platnosc', 'p\u0142atno\u015b\u0107', 'zwrot'\r\n        ];\r\n        if (polishMarkers.some(function (marker) {\r\n          return raw.indexOf(marker) !== -1;\r\n        })) return 'pl';\r\n\r\n        var englishMarkers = [\r\n          'hello', 'good morning', 'good afternoon', 'good evening',\r\n          'please', 'show me', 'find me', 'i am looking', 'i m looking',\r\n          'i need', 'do you have', 'recommend', 'which one', 'how to',\r\n          'how long', 'how many', 'shipping', 'delivery', 'payment',\r\n          'refund', 'return', 'my order', 'customer support', 'in english',\r\n          'speak english', 'reply in english', 'answer in english', 'english language',\r\n          'starter kit', 'beginner kit', 'gel polish', 'nail extensions', 'extensions',\r\n          'nail lamp', 'nail file', 'cuticle oil', 'nail accessories',\r\n          'nail gel', 'top coat', 'base coat', 'builder gel', 'nail drill',\r\n          'dust collector', 'ultrasonic cleaner', 'armrest'\r\n        ];\r\n        if (englishMarkers.some(function (marker) {\r\n          return normalized.indexOf(marker) !== -1;\r\n        })) return 'en';\r\n\r\n        return 'pl';\r\n      }\r\n\r\n      function containsAnyPhrase(message, phrases) {\r\n        var normalized = normalizeText(message);\r\n        return phrases.some(function (phrase) {\r\n          return normalized.indexOf(normalizeText(phrase)) !== -1;\r\n        });\r\n      }\r\n\r\n      function containsWholePhrase(message, phrases) {\r\n        var normalized = ' ' + normalizeText(message) + ' ';\r\n        return phrases.some(function (phrase) {\r\n          return normalized.indexOf(' ' + normalizeText(phrase) + ' ') !== -1;\r\n        });\r\n      }\r\n\r\n      function wantsProductRecommendations(message) {\r\n        var searchPhrases = [\r\n          'szukam', 'pokaz', 'polec', 'doradz', 'chce kupic', 'potrzebuje',\r\n          'czy macie', 'co macie', 'najlepsz', 'do zl', 'w cenie',\r\n          '\u0448\u0443\u043a\u0430\u044e', '\u043f\u043e\u043a\u0430\u0436\u0438', '\u043f\u043e\u0440\u0430\u0434\u044c', '\u043f\u0456\u0434\u0431\u0435\u0440\u0438', '\u0445\u043e\u0447\u0443 \u043a\u0443\u043f\u0438\u0442\u0438', '\u043f\u043e\u0442\u0440\u0456\u0431\u0435\u043d',\r\n          '\u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0430', '\u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0456', '\u0447\u0438 \u0454 \u0443 \u0432\u0430\u0441', '\u0449\u043e \u043c\u0430\u0454\u0442\u0435', '\u044f\u043a\u0438\u0439 \u043a\u0440\u0430\u0449',\r\n          '\u044f\u043a\u0430 \u043a\u0440\u0430\u0449', '\u044f\u043a\u0456 \u043a\u0440\u0430\u0449', '\u0434\u043e \u0437\u043b\u043e\u0442',\r\n          '\u0438\u0449\u0443', '\u043f\u043e\u043a\u0430\u0436\u0438', '\u043f\u043e\u0441\u043e\u0432\u0435\u0442', '\u043f\u043e\u0434\u0431\u0435\u0440\u0438', '\u0445\u043e\u0447\u0443 \u043a\u0443\u043f\u0438\u0442\u044c', '\u043d\u0443\u0436\u0435\u043d',\r\n          '\u043d\u0443\u0436\u043d\u0430', '\u043d\u0443\u0436\u043d\u044b', '\u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u0432\u0430\u0441', '\u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c', '\u043a\u0430\u043a\u043e\u0439 \u043b\u0443\u0447\u0448\u0435',\r\n          '\u043a\u0430\u043a\u0430\u044f \u043b\u0443\u0447\u0448\u0435', '\u043a\u0430\u043a\u0438\u0435 \u043b\u0443\u0447\u0448\u0435', '\u0434\u043e \u0437\u043b\u043e\u0442',\r\n          'show me', 'show', 'find me', 'find', 'looking for', 'recommend',\r\n          'i need', 'do you have', 'what do you have', 'which is best'\r\n        ];\r\n        var advicePhrases = [\r\n          'jak uzywac', 'jak stosowac', 'jak nakladac', 'ile suszyc',\r\n          'ile utwardzac', 'ile sekund', 'jaka lampa jest potrzebna',\r\n          'czym sie rozni', 'jaka jest roznica',\r\n          '\u044f\u043a \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0442\u0438', '\u044f\u043a \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0432\u0430\u0442\u0438', '\u044f\u043a \u043d\u0430\u043d\u043e\u0441\u0438\u0442\u0438', '\u044f\u043a \u0437\u043d\u0456\u043c\u0430\u0442\u0438',\r\n          '\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0441\u0443\u0448\u0438\u0442\u0438', '\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0441\u0435\u043a\u0443\u043d\u0434', '\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u043f\u043e\u043b\u0456\u043c\u0435\u0440\u0438\u0437\u0443\u0432\u0430\u0442\u0438',\r\n          '\u044f\u043a\u0430 \u043b\u0430\u043c\u043f\u0430 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0430', '\u0447\u0438\u043c \u0432\u0456\u0434\u0440\u0456\u0437\u043d\u044f', '\u044f\u043a\u0430 \u0440\u0456\u0437\u043d\u0438\u0446\u044f',\r\n          '\u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f', '\u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c', '\u043a\u0430\u043a \u043d\u0430\u043d\u043e\u0441\u0438\u0442\u044c', '\u043a\u0430\u043a \u0441\u043d\u0438\u043c\u0430\u0442\u044c',\r\n          '\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0448\u0438\u0442\u044c', '\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434', '\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0438\u043c\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c',\r\n          '\u043a\u0430\u043a\u0430\u044f \u043b\u0430\u043c\u043f\u0430 \u043d\u0443\u0436\u043d\u0430', '\u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f', '\u043a\u0430\u043a\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430',\r\n          'how to use', 'how to apply', 'how to remove', 'how long to cure',\r\n          'how many seconds', 'which lamp', 'what lamp',\r\n          'what is the difference', 'what is different'\r\n        ];\r\n\r\n        if (containsAnyPhrase(message, advicePhrases)) return false;\r\n\r\n        var normalized = normalizeText(message);\r\n        var curingQuestion =\r\n          \/(ile|skiles|\u0441\u043a\u0456\u043b\u044c\u043a\u0438|\u0441\u043a\u043e\u043b\u044c\u043a\u043e|how long|how many).{0,35}(susz|utward|sekund|\u0441\u0443\u0448|\u043f\u043e\u043b\u0456\u043c\u0435\u0440|\u043f\u043e\u043b\u0438\u043c\u0435\u0440|cure|second)\/.test(normalized) ||\r\n          \/(jaka|\u044f\u043a\u0430|\u043a\u0430\u043a\u0430\u044f|which|what).{0,25}(lampa|\u043b\u0430\u043c\u043f\u0430|lamp).{0,25}(potrzeb|\u043f\u043e\u0442\u0440\u0456\u0431|\u043d\u0443\u0436\u043d|need|required)\/.test(normalized);\r\n        if (curingQuestion) return false;\r\n\r\n        if (containsAnyPhrase(message, searchPhrases)) return true;\r\n\r\n        var intent = detectCatalogIntent(message);\r\n        if (!intent) return false;\r\n        if (detectColor(message) || detectBudget(message) != null) return true;\r\n        return normalizeText(message).split(' ').length <= 4;\r\n      }\r\n\r\n      function getCatalogIntentById(id) {\r\n        for (var i = 0; i < catalogRules.length; i += 1) {\r\n          if (catalogRules[i].id === id) return catalogRules[i];\r\n        }\r\n        return null;\r\n      }\r\n\r\n      function isMoreCatalogRequest(message) {\r\n        return containsWholePhrase(message, [\r\n          'pokaz wiecej', 'jeszcze', 'nastepne', 'kolejne', 'inne',\r\n          'czy to wszystkie', 'to juz wszystkie', 'wiecej produktow',\r\n          '\u043f\u043e\u043a\u0430\u0436\u0438 \u0449\u0435', '\u0449\u0435', '\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0456', '\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443', '\u0456\u043d\u0448\u0456',\r\n          '\u0447\u0438 \u0446\u0435 \u0432\u0441\u0456', '\u0446\u0435 \u0432\u0436\u0435 \u0432\u0441\u0456', '\u0431\u0456\u043b\u044c\u0448\u0435 \u0442\u043e\u0432\u0430\u0440\u0456\u0432',\r\n          '\u043f\u043e\u043a\u0430\u0436\u0438 \u0435\u0449\u0435', '\u043f\u043e\u043a\u0430\u0436\u0438 \u0435\u0449\u0451', '\u0435\u0449\u0435', '\u0435\u0449\u0451', '\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435',\r\n          '\u0434\u0440\u0443\u0433\u0438\u0435', '\u044d\u0442\u043e \u0432\u0441\u0435', '\u044d\u0442\u043e \u0443\u0436\u0435 \u0432\u0441\u0435', '\u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u043e\u0432\u0430\u0440\u043e\u0432',\r\n          'show more', 'more', 'next', 'next products', 'more products',\r\n          'are these all', 'is that all'\r\n        ]);\r\n      }\r\n\r\n      function catalogSearchMatchesState(message, state) {\r\n        var currentIntent = detectCatalogIntent(message);\r\n        var currentColor = detectColor(message);\r\n        var currentBudget = detectBudget(message);\r\n\r\n        if (currentIntent && currentIntent.id !== state.intentId) return false;\r\n        if (currentColor && currentColor.id !== state.colorId) return false;\r\n        if (currentBudget != null && currentBudget !== state.budget) return false;\r\n        return true;\r\n      }\r\n\r\n      function getCatalogContext(message) {\r\n        if (isMoreCatalogRequest(message) && lastCatalogState &&\r\n            catalogSearchMatchesState(message, lastCatalogState)) {\r\n          var storedIntent = getCatalogIntentById(lastCatalogState.intentId);\r\n          if (storedIntent) {\r\n            return {\r\n              query: lastCatalogState.query,\r\n              intent: storedIntent,\r\n              offset: Number(lastCatalogState.nextOffset) || 0,\r\n              language: lastCatalogState.language || detectLanguage(message),\r\n              continuation: true\r\n            };\r\n          }\r\n        }\r\n\r\n        var intent = detectCatalogIntent(message);\r\n        if (intent && wantsProductRecommendations(message)) {\r\n          return {\r\n            query: message,\r\n            intent: intent,\r\n            offset: 0,\r\n            language: detectLanguage(message),\r\n            continuation: false\r\n          };\r\n        }\r\n\r\n        return null;\r\n      }\r\n\r\n      function starterRequestType(message) {\r\n        var isStarter = containsAnyPhrase(message, starterKitPhrases.starter);\r\n        var isHybrid = containsAnyPhrase(message, starterKitPhrases.hybrid);\r\n        var isExtension = containsAnyPhrase(message, starterKitPhrases.extension);\r\n        var pending = Boolean(starterState && starterState.pending);\r\n\r\n        if ((isStarter || pending) && isExtension) return 'extension';\r\n        if ((isStarter || pending) && isHybrid) return 'hybrid';\r\n        if (isStarter) return 'ask';\r\n        if (isMoreCatalogRequest(message) && starterState && starterState.shownType) return 'finished';\r\n        return '';\r\n      }\r\n\r\n      function starterQuestion(message) {\r\n        var language = detectLanguage(message);\r\n        if (language === 'en') {\r\n          return 'Of course \u2014 I can help you build a beginner kit. Is it for gel polish manicure or gel nail extensions? Reply \u201cgel polish\u201d or \u201cextensions\u201d, and I will show specific products that are in stock.';\r\n        }\r\n        if (language === 'uk') {\r\n          return '\u0417\u0432\u0456\u0441\u043d\u043e, \u0434\u043e\u043f\u043e\u043c\u043e\u0436\u0443 \u0437\u0456\u0431\u0440\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0438\u0439 \u043d\u0430\u0431\u0456\u0440. \u0423\u0442\u043e\u0447\u043d\u0438, \u0431\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430: \u0432\u0456\u043d \u043f\u043e\u0442\u0440\u0456\u0431\u0435\u043d \u0434\u043b\u044f \u0433\u0456\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443 \u0447\u0438 \u0434\u043b\u044f \u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f \u0433\u0435\u043b\u0435\u043c? \u041d\u0430\u043f\u0438\u0448\u0438 \u00ab\u0433\u0456\u0431\u0440\u0438\u0434\u043d\u0438\u0439\u00bb \u0430\u0431\u043e \u00ab\u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f\u00bb \u2014 \u0456 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0456 \u0442\u043e\u0432\u0430\u0440\u0438 \u0432 \u043d\u0430\u044f\u0432\u043d\u043e\u0441\u0442\u0456.';\r\n        }\r\n        if (language === 'ru') {\r\n          return '\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0443 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440. \u0423\u0442\u043e\u0447\u043d\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430: \u043e\u043d \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430 \u0438\u043b\u0438 \u0434\u043b\u044f \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043b\u0435\u043c? \u041d\u0430\u043f\u0438\u0448\u0438 \u00ab\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439\u00bb \u0438\u043b\u0438 \u00ab\u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u0435\u00bb \u2014 \u0438 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438.';\r\n        }\r\n        return 'Jasne, pomog\u0119 skompletowa\u0107 zestaw startowy. Doprecyzuj prosz\u0119: ma by\u0107 do manicure hybrydowego czy do przed\u0142u\u017cania \u017celem? Napisz \u201ehybrydowy\u201d albo \u201eprzed\u0142u\u017canie\u201d, a poka\u017c\u0119 konkretne dost\u0119pne produkty.';\r\n      }\r\n\r\n      function starterKitMessage(message, type, count, languageOverride) {\r\n        var language = languageOverride || detectLanguage(message);\r\n        if (!count) return supportContactMessage(message, language);\r\n\r\n        if (language === 'en') {\r\n          if (type === 'extension') {\r\n            return 'Here is a basic beginner kit for gel nail extensions: lamp, base, builder gel, top coat, brush, forms, nail file and preparation liquid. I am showing ' + count + ' real in-stock products \u2014 one required component each, with no random items.';\r\n          }\r\n          return 'Here is a basic beginner kit for gel polish manicure: lamp, base, top coat, two gel polishes, nail file, preparation liquid and cuticle oil. I am showing ' + count + ' real in-stock products, with no random items.';\r\n        }\r\n\r\n        if (language === 'uk') {\r\n          if (type === 'extension') {\r\n            return '\u041e\u0441\u044c \u0431\u0430\u0437\u043e\u0432\u0438\u0439 \u043d\u0430\u0431\u0456\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0430\u0447\u043a\u0430 \u0434\u043e \u043d\u0430\u0440\u043e\u0449\u0443\u0432\u0430\u043d\u043d\u044f \u0433\u0435\u043b\u0435\u043c: \u043b\u0430\u043c\u043f\u0430, \u0431\u0430\u0437\u0430, \u0431\u0443\u0434\u0456\u0432\u0435\u043b\u044c\u043d\u0438\u0439 \u0433\u0435\u043b\u044c, \u0442\u043e\u043f, \u043f\u0435\u043d\u0437\u043b\u0438\u043a, \u0444\u043e\u0440\u043c\u0438, \u043f\u0438\u043b\u043e\u0447\u043a\u0430 \u0442\u0430 \u043f\u0456\u0434\u0433\u043e\u0442\u043e\u0432\u0447\u0430 \u0440\u0456\u0434\u0438\u043d\u0430. \u041f\u043e\u043a\u0430\u0437\u0443\u044e ' + count + ' \u0440\u0435\u0430\u043b\u044c\u043d\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u0456\u0432 \u0443 \u043d\u0430\u044f\u0432\u043d\u043e\u0441\u0442\u0456 \u2014 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e\u043c\u0443 \u0441\u043a\u043b\u0430\u0434\u043d\u0438\u043a\u0443, \u0431\u0435\u0437 \u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0456\u0439.';\r\n          }\r\n          return '\u041e\u0441\u044c \u0431\u0430\u0437\u043e\u0432\u0438\u0439 \u043d\u0430\u0431\u0456\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0430\u0447\u043a\u0430 \u0434\u043e \u0433\u0456\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u043d\u0456\u043a\u044e\u0440\u0443: \u043b\u0430\u043c\u043f\u0430, \u0431\u0430\u0437\u0430, \u0442\u043e\u043f, \u0434\u0432\u0430 \u0433\u0435\u043b\u044c-\u043b\u0430\u043a\u0438, \u043f\u0438\u043b\u043e\u0447\u043a\u0430, \u043f\u0456\u0434\u0433\u043e\u0442\u043e\u0432\u0447\u0430 \u0440\u0456\u0434\u0438\u043d\u0430 \u0442\u0430 \u043e\u043b\u0456\u0439\u043a\u0430 \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u0438. \u041f\u043e\u043a\u0430\u0437\u0443\u044e ' + count + ' \u0440\u0435\u0430\u043b\u044c\u043d\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u0456\u0432 \u0443 \u043d\u0430\u044f\u0432\u043d\u043e\u0441\u0442\u0456, \u0431\u0435\u0437 \u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0456\u0439.';\r\n        }\r\n        if (language === 'ru') {\r\n          if (type === 'extension') {\r\n            return '\u0412\u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u0434\u043b\u044f \u043d\u0430\u0440\u0430\u0449\u0438\u0432\u0430\u043d\u0438\u044f \u0433\u0435\u043b\u0435\u043c: \u043b\u0430\u043c\u043f\u0430, \u0431\u0430\u0437\u0430, \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043b\u044c, \u0442\u043e\u043f, \u043a\u0438\u0441\u0442\u044c, \u0444\u043e\u0440\u043c\u044b, \u043f\u0438\u043b\u043e\u0447\u043a\u0430 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0436\u0438\u0434\u043a\u043e\u0441\u0442\u044c. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e ' + count + ' \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u2014 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443, \u0431\u0435\u0437 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439.';\r\n          }\r\n          return '\u0412\u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u0430 \u0434\u043b\u044f \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u043d\u0438\u043a\u044e\u0440\u0430: \u043b\u0430\u043c\u043f\u0430, \u0431\u0430\u0437\u0430, \u0442\u043e\u043f, \u0434\u0432\u0430 \u0433\u0435\u043b\u044c-\u043b\u0430\u043a\u0430, \u043f\u0438\u043b\u043e\u0447\u043a\u0430, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0436\u0438\u0434\u043a\u043e\u0441\u0442\u044c \u0438 \u043c\u0430\u0441\u043b\u043e \u0434\u043b\u044f \u043a\u0443\u0442\u0438\u043a\u0443\u043b\u044b. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e ' + count + ' \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u0431\u0435\u0437 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439.';\r\n        }\r\n        if (type === 'extension') {\r\n          return 'Oto podstawowy zestaw dla pocz\u0105tkuj\u0105cej do przed\u0142u\u017cania \u017celem: lampa, baza, \u017cel buduj\u0105cy, top, p\u0119dzelek, formy, pilnik i p\u0142yn przygotowuj\u0105cy. Pokazuj\u0119 ' + count + ' realnie dost\u0119pnych produkt\u00f3w \u2014 po jednym potrzebnym sk\u0142adniku, bez przypadkowych pozycji.';\r\n        }\r\n        return 'Oto podstawowy zestaw dla pocz\u0105tkuj\u0105cej do manicure hybrydowego: lampa, baza, top, dwa lakiery hybrydowe, pilnik, p\u0142yn przygotowuj\u0105cy i olejek do sk\u00f3rek. Pokazuj\u0119 ' + count + ' realnie dost\u0119pnych produkt\u00f3w, bez przypadkowych pozycji.';\r\n      }\r\n\r\n      function starterFinishedMessage(message, languageOverride) {\r\n        var language = languageOverride || detectLanguage(message);\r\n        if (language === 'en') return 'This is the complete basic starter kit: every required component has already been shown without duplicates.';\r\n        if (language === 'uk') return '\u0426\u0435 \u0432\u0435\u0441\u044c \u0431\u0430\u0437\u043e\u0432\u0438\u0439 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0438\u0439 \u043d\u0430\u0431\u0456\u0440: \u043a\u043e\u0436\u0435\u043d \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u0438\u0439 \u0441\u043a\u043b\u0430\u0434\u043d\u0438\u043a \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u0456\u0432.';\r\n        if (language === 'ru') return '\u042d\u0442\u043e \u0432\u0435\u0441\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440: \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0443\u0436\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0431\u0435\u0437 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u0432.';\r\n        return 'To ca\u0142y podstawowy zestaw startowy: ka\u017cdy potrzebny sk\u0142adnik zosta\u0142 ju\u017c pokazany bez powt\u00f3rek.';\r\n      }\r\n\r\n      function serviceAnswer(message) {\r\n        var language = detectLanguage(message);\r\n        var normalizedServiceMessage = normalizeText(message);\r\n\r\n        var asksCuringDetails =\r\n          \/(ile|\u0441\u043a\u0456\u043b\u044c\u043a\u0438|\u0441\u043a\u043e\u043b\u044c\u043a\u043e|how long|how many).{0,35}(susz|utward|sekund|\u0441\u0443\u0448|\u043f\u043e\u043b\u0456\u043c\u0435\u0440|\u043f\u043e\u043b\u0438\u043c\u0435\u0440|cure|second)\/.test(normalizedServiceMessage) ||\r\n          \/(jaka|\u044f\u043a\u0430|\u043a\u0430\u043a\u0430\u044f|which|what).{0,25}(lampa|\u043b\u0430\u043c\u043f\u0430|lamp).{0,25}(potrzeb|\u043f\u043e\u0442\u0440\u0456\u0431|\u043d\u0443\u0436\u043d|need|required)\/.test(normalizedServiceMessage);\r\n\r\n        if (asksCuringDetails) {\r\n          if (language === 'en') {\r\n            return 'The exact curing time depends on the specific product and lamp parameters, so I do not want to invent a number of seconds. Send the full product name or a link to its product page. If the instructions are not listed there, confirm them with [Tipsi Shop support](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u0422\u043e\u0447\u043d\u0438\u0439 \u0447\u0430\u0441 \u043f\u043e\u043b\u0456\u043c\u0435\u0440\u0438\u0437\u0430\u0446\u0456\u0457 \u0437\u0430\u043b\u0435\u0436\u0438\u0442\u044c \u0432\u0456\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0457 \u0431\u0430\u0437\u0438 TOUCH \u0456 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0456\u0432 \u043b\u0430\u043c\u043f\u0438, \u0442\u043e\u043c\u0443 \u043d\u0435 \u0445\u043e\u0447\u0443 \u043d\u0430\u0437\u0438\u0432\u0430\u0442\u0438 \u0432\u0438\u043f\u0430\u0434\u043a\u043e\u0432\u0456 \u0441\u0435\u043a\u0443\u043d\u0434\u0438. \u041d\u0430\u043f\u0438\u0448\u0438 \u043f\u043e\u0432\u043d\u0443 \u043d\u0430\u0437\u0432\u0443 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0443 \u0430\u0431\u043e \u043d\u0430\u0434\u0456\u0448\u043b\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0439\u043e\u0433\u043e \u043a\u0430\u0440\u0442\u043a\u0443 \u2014 \u0442\u043e\u0434\u0456 \u044f \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0456 \u0434\u0430\u043d\u0456. \u042f\u043a\u0449\u043e \u0432 \u043a\u0430\u0440\u0442\u0446\u0456 \u043d\u0435\u043c\u0430\u0454 \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457, \u0443\u0442\u043e\u0447\u043d\u0438 \u0457\u0457 \u0443 [\u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0438 Tipsi Shop](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u0422\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0438\u043c\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u044b TOUCH \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043b\u0430\u043c\u043f\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0445\u043e\u0447\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0435\u043a\u0443\u043d\u0434. \u041d\u0430\u043f\u0438\u0448\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438\u043b\u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0435\u0433\u043e \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443 \u2014 \u0442\u043e\u0433\u0434\u0430 \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 \u043d\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0443\u0442\u043e\u0447\u043d\u0438 \u0435\u0451 \u0443 [\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Tipsi Shop](mailto:support@tipsi.pl).';\r\n          }\r\n          return 'Dok\u0142adny czas utwardzania zale\u017cy od konkretnej bazy TOUCH i parametr\u00f3w lampy, dlatego nie chc\u0119 podawa\u0107 przypadkowej liczby sekund. Podaj pe\u0142n\u0105 nazw\u0119 produktu lub link do jego karty \u2014 wtedy sprawdz\u0119 dost\u0119pne dane. Je\u015bli instrukcji nie ma na karcie, potwierd\u017a j\u0105 z [obs\u0142ug\u0105 Tipsi Shop](mailto:support@tipsi.pl).';\r\n        }\r\n\r\n        var asksReturn = containsAnyPhrase(message, [\r\n          'zwrot', 'oddac produkt', 'odstapienie', 'zwr\u00f3ci\u0107',\r\n          '\u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d', '\u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u0442\u043e\u0432\u0430\u0440', '\u0432\u0456\u0434\u043c\u043e\u0432\u0430 \u0432\u0456\u0434 \u043f\u043e\u043a\u0443\u043f\u043a\u0438',\r\n          '\u0432\u043e\u0437\u0432\u0440\u0430\u0442', '\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e\u0432\u0430\u0440', '\u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438',\r\n          'return', 'refund', 'send back', 'return a product'\r\n        ]);\r\n        var asksShipping = containsAnyPhrase(message, [\r\n          'dostaw', 'wysyl', 'przesyl', 'kurier', 'paczkomat',\r\n          '\u0434\u043e\u0441\u0442\u0430\u0432', '\u0432\u0456\u0434\u043f\u0440\u0430\u0432', '\u043f\u043e\u0441\u0438\u043b\u043a', '\u043a\u0443\u0440\u0454\u0440', '\u043a\u0443\u0440\\'\u0454\u0440',\r\n          '\u043e\u0442\u043f\u0440\u0430\u0432', '\u043f\u043e\u0441\u044b\u043b\u043a', '\u043a\u0443\u0440\u044c\u0435\u0440',\r\n          'shipping', 'delivery', 'courier', 'parcel', 'dispatch'\r\n        ]);\r\n        var asksPayment = containsAnyPhrase(message, [\r\n          'platn', 'blik', 'przelew', 'karta', 'google pay', 'paypal',\r\n          '\u043e\u043f\u043b\u0430\u0442', '\u0431\u043b\u0456\u043a', '\u043a\u0430\u0440\u0442\u043a\u043e\u044e', '\u043f\u043b\u0430\u0442\u0456\u0436', '\u043e\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c',\r\n          '\u043a\u0430\u0440\u0442\u043e\u0439', '\u043f\u043b\u0430\u0442\u0435\u0436', '\u043e\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442',\r\n          'payment', 'pay by card', 'card payment', 'payment failed'\r\n        ]);\r\n        var storeTopicCount = Number(asksReturn) + Number(asksShipping) + Number(asksPayment);\r\n\r\n        if (storeTopicCount > 1) {\r\n          var parts = [];\r\n          if (language === 'en') {\r\n            if (asksShipping) parts.push('Shipping: free for orders from 250 z\u0142. Orders are usually dispatched within 24 hours; the price below that amount and available delivery methods are shown at checkout.');\r\n            if (asksPayment) parts.push('Payment: currently available methods are shown at checkout. If a payment fails, take a screenshot of the error and contact [support@tipsi.pl](mailto:support@tipsi.pl).');\r\n            if (asksReturn) parts.push('Returns: you can request a return within 14 days of receiving the order. Before sending anything back, use the [returns page](https:\/\/tipsi.pl\/zwroty\/) or contact support.');\r\n          } else if (language === 'uk') {\r\n            if (asksShipping) parts.push('\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430: \u0431\u0435\u0437\u043a\u043e\u0448\u0442\u043e\u0432\u043d\u0430 \u0432\u0456\u0434 250 z\u0142. \u0417\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0437\u0430\u0437\u0432\u0438\u0447\u0430\u0439 \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u044f\u0454\u043c\u043e \u043f\u0440\u043e\u0442\u044f\u0433\u043e\u043c 24 \u0433\u043e\u0434\u0438\u043d; \u0432\u0430\u0440\u0442\u0456\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u0448\u043e\u0457 \u0441\u0443\u043c\u0438 \u0442\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0456 \u0441\u043f\u043e\u0441\u043e\u0431\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0443\u044e\u0442\u044c\u0441\u044f \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044f.');\r\n            if (asksPayment) parts.push('\u041e\u043f\u043b\u0430\u0442\u0430: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0456 \u0441\u043f\u043e\u0441\u043e\u0431\u0438 \u043e\u043f\u043b\u0430\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u044c\u0441\u044f \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f. \u042f\u043a\u0449\u043e \u043f\u043b\u0430\u0442\u0456\u0436 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c, \u0437\u0440\u043e\u0431\u0438 \u0441\u043a\u0440\u0456\u043d \u043f\u043e\u043c\u0438\u043b\u043a\u0438 \u0442\u0430 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).');\r\n            if (asksReturn) parts.push('\u041f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f: \u0439\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u044f\u0432\u0438\u0442\u0438 \u043f\u0440\u043e\u0442\u044f\u0433\u043e\u043c 14 \u0434\u043d\u0456\u0432 \u043f\u0456\u0441\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f. \u041f\u0435\u0440\u0435\u0434 \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f\u043c \u0441\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u0439\u0441\u044f [\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u043e\u044e \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u044c](https:\/\/tipsi.pl\/zwroty\/) \u0430\u0431\u043e \u043d\u0430\u043f\u0438\u0448\u0438 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0446\u0456.');\r\n          } else if (language === 'ru') {\r\n            if (asksShipping) parts.push('\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430: \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u043e\u0442 250 z\u0142. \u0417\u0430\u043a\u0430\u0437\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 24 \u0447\u0430\u0441\u043e\u0432; \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0438.');\r\n            if (asksPayment) parts.push('\u041e\u043f\u043b\u0430\u0442\u0430: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u043f\u043b\u0430\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043a\u0430\u0437\u0430. \u0415\u0441\u043b\u0438 \u043f\u043b\u0430\u0442\u0451\u0436 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442, \u0441\u0434\u0435\u043b\u0430\u0439 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).');\r\n            if (asksReturn) parts.push('\u0412\u043e\u0437\u0432\u0440\u0430\u0442: \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u044f\u0432\u0438\u0442\u044c \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 14 \u0434\u043d\u0435\u0439 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f. \u041f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0441\u044f [\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430](https:\/\/tipsi.pl\/zwroty\/) \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0448\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435.');\r\n          } else {\r\n            if (asksShipping) parts.push('Dostawa: bezp\u0142atna od 250 z\u0142. Zam\u00f3wienia zwykle wysy\u0142amy w ci\u0105gu 24 godzin; koszt dla ni\u017cszej kwoty i dost\u0119pne metody dostawy s\u0105 widoczne podczas sk\u0142adania zam\u00f3wienia.');\r\n            if (asksPayment) parts.push('P\u0142atno\u015b\u0107: aktualne metody s\u0105 widoczne podczas sk\u0142adania zam\u00f3wienia. Je\u015bli p\u0142atno\u015b\u0107 nie przechodzi, zr\u00f3b zrzut b\u0142\u0119du i napisz na [support@tipsi.pl](mailto:support@tipsi.pl).');\r\n            if (asksReturn) parts.push('Zwrot: mo\u017cna go zg\u0142osi\u0107 w ci\u0105gu 14 dni od otrzymania zam\u00f3wienia. Przed wys\u0142aniem skorzystaj ze [strony zwrot\u00f3w](https:\/\/tipsi.pl\/zwroty\/) lub napisz do obs\u0142ugi.');\r\n          }\r\n          return parts.join('\\n\\n');\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'kontakt', 'support', 'obsluga klienta', 'pomoc techniczna', 'telefon',\r\n          'email', 'e mail', 'facebook', 'insta' + 'gram', 'telegram',\r\n          '\u043a\u043e\u043d\u0442\u0430\u043a\u0442', '\u043f\u0456\u0434\u0442\u0440\u0438\u043c', '\u0442\u0435\u0445\u043f\u0456\u0434\u0442\u0440\u0438\u043c', '\u0442\u0435\u0445\u043d\u0456\u0447\u043d\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0430', '\u0442\u0435\u043b\u0435\u0444\u043e\u043d',\r\n          '\u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430 \u043f\u043e\u0448\u0442\u0430', '\u0441\u043e\u0446\u043c\u0435\u0440\u0435\u0436', '\u043f\u043e\u0434\u0434\u0435\u0440\u0436', '\u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436',\r\n          '\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u043c\u043e\u0449\u044c', '\u043f\u043e\u0447\u0442\u0430', '\u0441\u043e\u0446\u0441\u0435\u0442',\r\n          'customer support', 'technical support', 'help desk', 'phone number',\r\n          'email address', 'social media'\r\n        ])) {\r\n          var contacts = [\r\n            '[+48 883 128 719](tel:+48883128719)',\r\n            '[support@tipsi.pl](mailto:support@tipsi.pl)',\r\n            '[Facebook](https:\/\/www.facebook.com\/profile.php?id=61575558458963)',\r\n            '[' + 'Insta' + 'gram](https:\/\/www.insta' + 'gram.com\/tipsi_shop_\/)',\r\n            '[Telegram](https:\/\/t.me\/tipsi_shop)'\r\n          ].join('\\n');\r\n\r\n          if (language === 'en') return 'Here are the Tipsi Shop support contacts:\\n\\n' + contacts;\r\n          if (language === 'uk') return '\u0422\u0430\u043a, \u043e\u0441\u044c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0438 Tipsi Shop:\\n\\n' + contacts;\r\n          if (language === 'ru') return '\u0414\u0430, \u0432\u043e\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Tipsi Shop:\\n\\n' + contacts;\r\n          return 'Tak, oto dane kontaktowe obs\u0142ugi Tipsi Shop:\\n\\n' + contacts;\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'gdzie moje zamowienie', 'status zamowienia', 'numer zamowienia',\r\n          'kiedy przyjdzie zamowienie', 'sledzenie zamowienia',\r\n          '\u0434\u0435 \u043c\u043e\u0454 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f', '\u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f', '\u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f',\r\n          '\u043a\u043e\u043b\u0438 \u043f\u0440\u0438\u0439\u0434\u0435 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f', '\u0432\u0456\u0434\u0441\u0442\u0435\u0436\u0438\u0442\u0438 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f',\r\n          '\u0433\u0434\u0435 \u043c\u043e\u0439 \u0437\u0430\u043a\u0430\u0437', '\u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430', '\u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043a\u0430\u0437\u0430',\r\n          '\u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u0434\u0435\u0442 \u0437\u0430\u043a\u0430\u0437', '\u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430\u043a\u0430\u0437',\r\n          'where is my order', 'order status', 'order number',\r\n          'when will my order arrive', 'track my order', 'order tracking'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'I do not have access to an individual order status. Prepare your order number and contact [support@tipsi.pl](mailto:support@tipsi.pl) or [Telegram](https:\/\/t.me\/tipsi_shop) \u2014 support will check it.';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u042f \u043d\u0435 \u043c\u0430\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u043e\u0441\u043e\u0431\u0438\u0441\u0442\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f. \u041f\u0456\u0434\u0433\u043e\u0442\u0443\u0439 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0442\u0430 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl) \u0430\u0431\u043e \u0432 [Telegram](https:\/\/t.me\/tipsi_shop) \u2014 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u044c \u0439\u043e\u0433\u043e.';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u0423 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043b\u0438\u0447\u043d\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u0437\u0430\u043a\u0430\u0437\u0430. \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u044c \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043a\u0430\u0437\u0430 \u0438 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl) \u0438\u043b\u0438 \u0432 [Telegram](https:\/\/t.me\/tipsi_shop) \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0435\u0433\u043e.';\r\n          }\r\n          return 'Nie mam dost\u0119pu do indywidualnego statusu zam\u00f3wienia. Przygotuj numer zam\u00f3wienia i napisz na [support@tipsi.pl](mailto:support@tipsi.pl) lub przez [Telegram](https:\/\/t.me\/tipsi_shop) \u2014 obs\u0142uga je sprawdzi.';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'reklamacj', 'uszkodzon', 'wadliw', 'brak w paczce', 'zly produkt',\r\n          '\u043f\u043e\u0448\u043a\u043e\u0434\u0436\u0435\u043d', '\u0431\u0440\u0430\u043a\u043e\u0432\u0430\u043d', '\u043d\u0435 \u0432\u0438\u0441\u0442\u0430\u0447\u0430\u0454 \u0432 \u043f\u043e\u0441\u0438\u043b\u0446\u0456', '\u043d\u0435 \u0442\u043e\u0439 \u0442\u043e\u0432\u0430\u0440',\r\n          '\u0440\u0435\u043a\u043b\u0430\u043c\u0430\u0446', '\u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d', '\u0431\u0440\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439', '\u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432 \u043f\u043e\u0441\u044b\u043b\u043a\u0435',\r\n          '\u043d\u0435 \u0442\u043e\u0442 \u0442\u043e\u0432\u0430\u0440', 'complaint', 'damaged product', 'faulty product',\r\n          'missing from parcel', 'missing item', 'wrong product'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'I am sorry there is a problem. Do not use a damaged product. Take photos of the product and packaging, then send your order number to [support@tipsi.pl](mailto:support@tipsi.pl). Support will help with the complaint.';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u041c\u0435\u043d\u0456 \u0448\u043a\u043e\u0434\u0430, \u0449\u043e \u0432\u0438\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041d\u0435 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439 \u043f\u043e\u0448\u043a\u043e\u0434\u0436\u0435\u043d\u0438\u0439 \u0442\u043e\u0432\u0430\u0440, \u0437\u0440\u043e\u0431\u0438 \u0444\u043e\u0442\u043e \u0442\u043e\u0432\u0430\u0440\u0443 \u0439 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0442\u0430 \u043d\u0430\u0434\u0456\u0448\u043b\u0438 \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl). \u041f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0436\u0435 \u0437 \u0440\u0435\u043a\u043b\u0430\u043c\u0430\u0446\u0456\u0454\u044e.';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u041c\u043d\u0435 \u0436\u0430\u043b\u044c, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440, \u0441\u0434\u0435\u043b\u0430\u0439 \u0444\u043e\u0442\u043e \u0442\u043e\u0432\u0430\u0440\u0430 \u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u044c \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043a\u0430\u0437\u0430 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl). \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0441 \u0440\u0435\u043a\u043b\u0430\u043c\u0430\u0446\u0438\u0435\u0439.';\r\n          }\r\n          return 'Przykro mi, \u017ce wyst\u0105pi\u0142 problem. Nie u\u017cywaj uszkodzonego produktu, zr\u00f3b zdj\u0119cia produktu i opakowania oraz wy\u015blij numer zam\u00f3wienia na [support@tipsi.pl](mailto:support@tipsi.pl). Obs\u0142uga pomo\u017ce w reklamacji.';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'zwrot', 'oddac produkt', 'odstapienie', 'zwr\u00f3ci\u0107',\r\n          '\u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d', '\u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u0442\u043e\u0432\u0430\u0440', '\u0432\u0456\u0434\u043c\u043e\u0432\u0430 \u0432\u0456\u0434 \u043f\u043e\u043a\u0443\u043f\u043a\u0438',\r\n          '\u0432\u043e\u0437\u0432\u0440\u0430\u0442', '\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e\u0432\u0430\u0440', '\u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438',\r\n          'return', 'refund', 'send back', 'return a product'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'You can request a return within 14 days of receiving the order. Before sending the product back, use the [returns page](https:\/\/tipsi.pl\/zwroty\/) or contact [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u041f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f \u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u044f\u0432\u0438\u0442\u0438 \u043f\u0440\u043e\u0442\u044f\u0433\u043e\u043c 14 \u0434\u043d\u0456\u0432 \u043f\u0456\u0441\u043b\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u043d\u043d\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f. \u041f\u0435\u0440\u0435\u0434 \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f\u043c \u0442\u043e\u0432\u0430\u0440\u0443 \u0441\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u0439\u0441\u044f [\u0441\u0442\u043e\u0440\u0456\u043d\u043a\u043e\u044e \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u044c](https:\/\/tipsi.pl\/zwroty\/) \u0430\u0431\u043e \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u044f\u0432\u0438\u0442\u044c \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 14 \u0434\u043d\u0435\u0439 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0430. \u041f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0442\u043e\u0432\u0430\u0440\u0430 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0441\u044f [\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430](https:\/\/tipsi.pl\/zwroty\/) \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          return 'Zwrot mo\u017cna zg\u0142osi\u0107 w ci\u0105gu 14 dni od otrzymania zam\u00f3wienia. Przed odes\u0142aniem produktu skorzystaj ze [strony zwrot\u00f3w](https:\/\/tipsi.pl\/zwroty\/) lub napisz na [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'platn', 'blik', 'przelew', 'karta', 'google pay', 'paypal',\r\n          '\u043e\u043f\u043b\u0430\u0442', '\u0431\u043b\u0456\u043a', '\u043a\u0430\u0440\u0442\u043a\u043e\u044e', '\u043f\u043b\u0430\u0442\u0456\u0436', '\u043e\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c',\r\n          '\u043e\u043f\u043b\u0430\u0442', '\u043a\u0430\u0440\u0442\u043e\u0439', '\u043f\u043b\u0430\u0442\u0435\u0436', '\u043e\u043f\u043b\u0430\u0442\u0430 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442',\r\n          'payment', 'pay by card', 'card payment', 'payment failed'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'Currently available payment methods are shown at checkout. If a payment fails, do not repeat it many times \u2014 take a screenshot of the error and contact [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0456 \u0437\u0430\u0440\u0430\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u0438 \u043e\u043f\u043b\u0430\u0442\u0438 \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u044c\u0441\u044f \u043f\u0456\u0434 \u0447\u0430\u0441 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f. \u042f\u043a\u0449\u043e \u043f\u043b\u0430\u0442\u0456\u0436 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c, \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044e\u0439 \u0439\u043e\u0433\u043e \u0431\u0430\u0433\u0430\u0442\u043e \u0440\u0430\u0437\u0456\u0432 \u2014 \u0437\u0440\u043e\u0431\u0438 \u0441\u043a\u0440\u0456\u043d \u043f\u043e\u043c\u0438\u043b\u043a\u0438 \u0442\u0430 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u043f\u043b\u0430\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043a\u0430\u0437\u0430. \u0415\u0441\u043b\u0438 \u043f\u043b\u0430\u0442\u0451\u0436 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442, \u043d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439 \u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u2014 \u0441\u0434\u0435\u043b\u0430\u0439 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0430\u043f\u0438\u0448\u0438 \u043d\u0430 [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n          }\r\n          return 'Aktualnie dost\u0119pne metody p\u0142atno\u015bci s\u0105 widoczne podczas sk\u0142adania zam\u00f3wienia. Je\u015bli p\u0142atno\u015b\u0107 nie przechodzi, nie ponawiaj jej wiele razy \u2014 zr\u00f3b zrzut b\u0142\u0119du i napisz na [support@tipsi.pl](mailto:support@tipsi.pl).';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'dostaw', 'wysyl', 'przesyl', 'kurier', 'paczkomat',\r\n          '\u0434\u043e\u0441\u0442\u0430\u0432', '\u0432\u0456\u0434\u043f\u0440\u0430\u0432', '\u043f\u043e\u0441\u0438\u043b\u043a', '\u043a\u0443\u0440\u0454\u0440', '\u043a\u0443\u0440\\'\u0454\u0440',\r\n          '\u043e\u0442\u043f\u0440\u0430\u0432', '\u043f\u043e\u0441\u044b\u043b\u043a', '\u043a\u0443\u0440\u044c\u0435\u0440',\r\n          'shipping', 'delivery', 'courier', 'parcel', 'dispatch'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'Free shipping applies to orders from 250 z\u0142. Orders are usually dispatched within 24 hours, and the exact delivery time depends on the carrier.';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u0411\u0435\u0437\u043a\u043e\u0448\u0442\u043e\u0432\u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0456\u0454 \u0434\u043b\u044f \u0437\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u044c \u0432\u0456\u0434 250 z\u0142. \u0417\u0430\u043c\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u0437\u0430\u0437\u0432\u0438\u0447\u0430\u0439 \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0442\u044f\u0433\u043e\u043c 24 \u0433\u043e\u0434\u0438\u043d, \u0430 \u0442\u043e\u0447\u043d\u0438\u0439 \u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430\u043b\u0435\u0436\u0438\u0442\u044c \u0432\u0456\u0434 \u043f\u0435\u0440\u0435\u0432\u0456\u0437\u043d\u0438\u043a\u0430.';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043b\u044f \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u043e\u0442 250 z\u0142. \u0417\u0430\u043a\u0430\u0437\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 24 \u0447\u0430\u0441\u043e\u0432, \u0430 \u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0437\u0447\u0438\u043a\u0430.';\r\n          }\r\n          return 'Darmowa dostawa obowi\u0105zuje od 250 z\u0142. Zam\u00f3wienia s\u0105 zwykle wysy\u0142ane w ci\u0105gu 24 godzin, a dok\u0142adny czas dor\u0119czenia zale\u017cy od przewo\u017anika.';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'rabat', 'promoc', 'kod rabat', 'kupon',\r\n          '\u0437\u043d\u0438\u0436', '\u0430\u043a\u0446\u0456', '\u043f\u0440\u043e\u043c\u043e\u043a\u043e\u0434', '\u043a\u0443\u043f\u043e\u043d',\r\n          '\u0441\u043a\u0438\u0434', '\u0430\u043a\u0446\u0438', '\u043f\u0440\u043e\u043c\u043e\u043a\u043e\u0434', '\u043a\u0443\u043f\u043e\u043d',\r\n          'discount', 'promotion', 'promo code', 'coupon'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'I do not want to invent an outdated promotion or code. Check the current banners on tipsi.pl or ask support on [Telegram](https:\/\/t.me\/tipsi_shop).';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u042f \u043d\u0435 \u0445\u043e\u0447\u0443 \u0432\u0438\u0433\u0430\u0434\u0443\u0432\u0430\u0442\u0438 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443 \u0430\u043a\u0446\u0456\u044e \u0430\u0431\u043e \u043f\u0440\u043e\u043c\u043e\u043a\u043e\u0434. \u041f\u0435\u0440\u0435\u0432\u0456\u0440 \u043f\u043e\u0442\u043e\u0447\u043d\u0456 \u0431\u0430\u043d\u0435\u0440\u0438 \u043d\u0430 tipsi.pl \u0430\u0431\u043e \u0437\u0430\u043f\u0438\u0442\u0430\u0439 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0443 \u0432 [Telegram](https:\/\/t.me\/tipsi_shop).';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u042f \u043d\u0435 \u0445\u043e\u0447\u0443 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0430\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u043f\u0440\u043e\u043c\u043e\u043a\u043e\u0434. \u041f\u0440\u043e\u0432\u0435\u0440\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0431\u0430\u043d\u043d\u0435\u0440\u044b \u043d\u0430 tipsi.pl \u0438\u043b\u0438 \u0441\u043f\u0440\u043e\u0441\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 [Telegram](https:\/\/t.me\/tipsi_shop).';\r\n          }\r\n          return 'Nie chc\u0119 podawa\u0107 nieaktualnej promocji ani kodu. Sprawd\u017a bie\u017c\u0105ce banery na tipsi.pl lub zapytaj obs\u0142ug\u0119 przez [Telegram](https:\/\/t.me\/tipsi_shop).';\r\n        }\r\n\r\n        if (containsAnyPhrase(message, [\r\n          'co potrafisz', 'w czym mozesz pomoc', 'jakie pytania',\r\n          '\u0449\u043e \u0442\u0438 \u0432\u043c\u0456\u0454\u0448', '\u0447\u0438\u043c \u043c\u043e\u0436\u0435\u0448 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0442\u0438', '\u0449\u043e \u043c\u043e\u0436\u0435\u0448',\r\n          '\u0447\u0442\u043e \u0442\u044b \u0443\u043c\u0435\u0435\u0448\u044c', '\u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0448\u044c \u043f\u043e\u043c\u043e\u0447\u044c', '\u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0448\u044c',\r\n          'what can you do', 'how can you help', 'what can i ask'\r\n        ])) {\r\n          if (language === 'en') {\r\n            return 'I can help you choose Tipsi Shop products, compare bases, gels, gel polishes, top coats, drill bits and accessories, explain how to use them, and answer questions about shipping, payments, returns, complaints and support. You can write in Polish, Ukrainian, Russian or English.';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u042f \u0434\u043e\u043f\u043e\u043c\u043e\u0436\u0443 \u043f\u0456\u0434\u0456\u0431\u0440\u0430\u0442\u0438 \u0442\u043e\u0432\u0430\u0440\u0438 Tipsi Shop, \u043f\u043e\u0440\u0456\u0432\u043d\u044f\u0442\u0438 \u0431\u0430\u0437\u0438, \u0433\u0435\u043b\u0456, \u043b\u0430\u043a\u0438, \u0442\u043e\u043f\u0438, \u0444\u0440\u0435\u0437\u0438 \u0439 \u0430\u043a\u0441\u0435\u0441\u0443\u0430\u0440\u0438, \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u0438 \u0457\u0445 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u044f, \u0430 \u0442\u0430\u043a\u043e\u0436 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0441\u0442\u0438 \u043f\u0440\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443, \u043e\u043f\u043b\u0430\u0442\u0443, \u043f\u043e\u0432\u0435\u0440\u043d\u0435\u043d\u043d\u044f, \u0440\u0435\u043a\u043b\u0430\u043c\u0430\u0446\u0456\u0457 \u0442\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438. \u041c\u043e\u0436\u0435\u0448 \u043f\u0438\u0441\u0430\u0442\u0438 \u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u044e, \u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u043e\u044e, \u043f\u043e\u043b\u044c\u0441\u044c\u043a\u043e\u044e \u0430\u0431\u043e \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u043e\u044e.';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u042f \u043f\u043e\u043c\u043e\u0433\u0443 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0432\u0430\u0440\u044b Tipsi Shop, \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0431\u0430\u0437\u044b, \u0433\u0435\u043b\u0438, \u043b\u0430\u043a\u0438, \u0442\u043e\u043f\u044b, \u0444\u0440\u0435\u0437\u044b \u0438 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b, \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0435, \u043e\u043f\u043b\u0430\u0442\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435, \u0440\u0435\u043a\u043b\u0430\u043c\u0430\u0446\u0438\u044f\u0445 \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u0445. \u041c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e-\u0440\u0443\u0441\u0441\u043a\u0438, \u043f\u043e-\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438, \u043f\u043e-\u043f\u043e\u043b\u044c\u0441\u043a\u0438 \u0438\u043b\u0438 \u043f\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438.';\r\n          }\r\n          return 'Pomog\u0119 dobra\u0107 produkty Tipsi Shop, por\u00f3wna\u0107 bazy, \u017cele, lakiery, topy, frezy i akcesoria, wyja\u015bni\u0107 ich u\u017cycie oraz odpowiedzie\u0107 na pytania o dostaw\u0119, p\u0142atno\u015bci, zwroty, reklamacje i kontakt. Mo\u017cesz pisa\u0107 po polsku, ukrai\u0144sku, rosyjsku lub angielsku.';\r\n        }\r\n\r\n        return null;\r\n      }\r\n\r\n      function supportContactMessage(message, languageOverride) {\r\n        var language = languageOverride || detectLanguage(message);\r\n        var contacts = [\r\n          '[+48 883 128 719](tel:+48883128719)',\r\n          '[support@tipsi.pl](mailto:support@tipsi.pl)',\r\n          '[Facebook](https:\/\/www.facebook.com\/profile.php?id=61575558458963)',\r\n          '[' + 'Insta' + 'gram](https:\/\/www.insta' + 'gram.com\/tipsi_shop_\/)',\r\n          '[Telegram](https:\/\/t.me\/tipsi_shop)'\r\n        ].join('\\n');\r\n\r\n        if (language === 'en') {\r\n          return 'I could not find a reliable answer or a matching product. Please contact Tipsi Shop support \u2014 we will help you personally.\\n\\n' + contacts;\r\n        }\r\n\r\n        if (language === 'uk') {\r\n          return '\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043d\u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c \u0430\u0431\u043e \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u0439 \u0442\u043e\u0432\u0430\u0440. \u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0437\u0432\u2019\u044f\u0436\u0456\u0442\u044c\u0441\u044f \u0437 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u043e\u044e Tipsi Shop \u2014 \u043c\u0438 \u0434\u043e\u043f\u043e\u043c\u043e\u0436\u0435\u043c\u043e \u043e\u0441\u043e\u0431\u0438\u0441\u0442\u043e.\\n\\n' + contacts;\r\n        }\r\n\r\n        if (language === 'ru') {\r\n          return '\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0442\u043e\u0447\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0438\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0442\u043e\u0432\u0430\u0440. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Tipsi Shop \u2014 \u043c\u044b \u043f\u043e\u043c\u043e\u0436\u0435\u043c \u043b\u0438\u0447\u043d\u043e.\\n\\n' + contacts;\r\n        }\r\n\r\n        return 'Nie uda\u0142o si\u0119 znale\u017a\u0107 dok\u0142adnej odpowiedzi lub odpowiedniego produktu. Skontaktuj si\u0119 z obs\u0142ug\u0105 Tipsi Shop \u2014 pomo\u017cemy osobi\u015bcie.\\n\\n' + contacts;\r\n      }\r\n\r\n      function messageNeedsSupport(message) {\r\n        var normalized = normalizeText(message);\r\n        var uncertaintyMarkers = [\r\n          'nie wiem', 'nie mam informacji', 'nie moge odpowiedziec', 'nie moge pomoc',\r\n          'nie znalaz', 'brak informacji', 'brak danych', 'niestety nie mamy',\r\n          'nie mamy konkret', 'moge polecic kilka',\r\n          '\u043d\u0435 \u0437\u043d\u0430\u044e', '\u043d\u0435 \u043c\u0430\u044e \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446', '\u043d\u0435 \u043c\u043e\u0436\u0443 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0441\u0442\u0438', '\u043d\u0435 \u043c\u043e\u0436\u0443 \u0434\u043e\u043f\u043e\u043c\u043e\u0433',\r\n          '\u043d\u0435 \u0437\u043d\u0430\u0439\u0448', '\u043d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f', '\u043d\u0435\u043c\u0430\u0454 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446', '\u043d\u0430 \u0436\u0430\u043b\u044c \u0443 \u043d\u0430\u0441 \u043d\u0435\u043c\u0430\u0454',\r\n          '\u043d\u0435\u043c\u0430\u0454 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d', '\u043c\u043e\u0436\u0443 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0432\u0430\u0442\u0438 \u043a\u0456\u043b\u044c\u043a\u0430',\r\n          '\u043d\u0435 \u043c\u043e\u0433\u0443 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c', '\u043d\u0435 \u043c\u043e\u0433\u0443 \u043f\u043e\u043c\u043e\u0447\u044c', '\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c', '\u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446',\r\n          '\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0443 \u043d\u0430\u0441 \u043d\u0435\u0442', '\u043d\u0435\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d', '\u043c\u043e\u0433\u0443 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e',\r\n          'i do not know', 'i don t know', 'cannot answer', 'could not find',\r\n          'no information', 'unfortunately we do not have', 'we do not have a specific',\r\n          'i can recommend a few'\r\n        ];\r\n\r\n        return uncertaintyMarkers.some(function (marker) {\r\n          return normalized.indexOf(normalizeText(marker)) !== -1;\r\n        });\r\n      }\r\n\r\n      function looksPolish(message) {\r\n        var normalized = normalizeText(message);\r\n        var markers = [\r\n          'czesc', 'jak moge', 'szukasz', 'potrzebujesz', 'oczywiscie',\r\n          'oto kilka', 'ktory', 'ktore', 'czy chcesz', 'czy masz', 'czy moze',\r\n          'moge ci', 'pomoge ci', 'twojego', 'twoich', 'ciebie', 'chetnie pomoge',\r\n          'w magazynie', 'kazdy z tych', 'znalazlem', 'produktow', 'pasuja',\r\n          'polecam', 'dostepny', 'dostepne', 'wybrac', 'zapytania'\r\n        ];\r\n        return markers.some(function (marker) {\r\n          return normalized.indexOf(normalizeText(marker)) !== -1;\r\n        });\r\n      }\r\n\r\n      function isGreetingOrLanguageRequest(message) {\r\n        var normalized = normalizeText(message);\r\n        var greetings = [\r\n          '\u043f\u0440\u0438\u0432\u0456\u0442', '\u043f\u0440\u0438\u0432\u0435\u0442', '\u0432\u0456\u0442\u0430\u044e', '\u0434\u043e\u0431\u0440\u0438\u0439 \u0434\u0435\u043d\u044c', '\u0434\u043e\u0431\u0440\u043e\u0433\u043e \u0434\u043d\u044f',\r\n          '\u0434\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c', '\u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435', '\u0437\u0434\u0440\u0430\u0441\u0442\u0435', 'cze\u015b\u0107', 'czesc',\r\n          'dzie\u0144 dobry', 'dzien dobry', 'hej', 'hello', 'hi'\r\n        ];\r\n\r\n        if (greetings.indexOf(normalized) !== -1) return true;\r\n\r\n        if (\/^(please )?(speak|reply|answer|write) (to me )?(in )?english$\/.test(normalized)) {\r\n          return true;\r\n        }\r\n\r\n        return \/^(\u043f\u0438\u0448\u0438|\u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u0439|\u043e\u0442\u0432\u0435\u0442\u044c|\u043f\u0438\u0448\u0438 \u043c\u043d\u0435|\u0440\u043e\u0437\u043c\u043e\u0432\u043b\u044f\u0439|\u0433\u043e\u0432\u043e\u0440\u0438) \/.test(normalized) &&\r\n          \/(\u0443\u043a\u0440\u0430\u0457\u043d|\u0443\u043a\u0440\u0430\u0438\u043d|\u0440\u043e\u0441\u0456\u0439|\u0440\u0443\u0441\u0441\u043a|\u043f\u043e\u043b\u044c\u0441\u043a|polsk|\u0430\u043d\u0433\u043b\u0456\u0439|\u0430\u043d\u0433\u043b\u0438\u0439)\/.test(normalized);\r\n      }\r\n\r\n      function answerUsesExpectedLanguage(answer, language) {\r\n        var raw = String(answer || '');\r\n        if (language === 'pl') return true;\r\n        if (language === 'en') {\r\n          return \/[a-z]\/i.test(raw) && !\/[\u0430-\u044f\u0456\u0457\u0454\u0491\u0451]\/i.test(raw) && !looksPolish(raw);\r\n        }\r\n        if (!\/[\u0430-\u044f\u0456\u0457\u0454\u0491\u0451]\/i.test(raw)) return false;\r\n        if (looksPolish(raw)) return false;\r\n        if (language === 'ru' && \/[\u0456\u0457\u0454\u0491]\/i.test(raw)) return false;\r\n        if (language === 'uk' && \/[\u044b\u044d\u044a\u0451]\/i.test(raw)) return false;\r\n        return true;\r\n      }\r\n\r\n      function localizedGreeting(message) {\r\n        var language = detectLanguage(message);\r\n        if (language === 'en') {\r\n          return 'Hello! Tell me what product you are looking for, and I will help you find matching items in the Tipsi Shop catalogue.';\r\n        }\r\n        if (language === 'uk') {\r\n          return '\u041f\u0440\u0438\u0432\u0456\u0442! \u041d\u0430\u043f\u0438\u0448\u0438, \u044f\u043a\u0438\u0439 \u0442\u043e\u0432\u0430\u0440 \u0442\u0438 \u0448\u0443\u043a\u0430\u0454\u0448, \u2014 \u044f \u0434\u043e\u043f\u043e\u043c\u043e\u0436\u0443 \u0437\u043d\u0430\u0439\u0442\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u043d\u0456 \u043f\u043e\u0437\u0438\u0446\u0456\u0457 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0437\u0456 Tipsi Shop.';\r\n        }\r\n        if (language === 'ru') {\r\n          return '\u041f\u0440\u0438\u0432\u0435\u0442! \u041d\u0430\u043f\u0438\u0448\u0438, \u043a\u0430\u043a\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0442\u044b \u0438\u0449\u0435\u0448\u044c, \u2014 \u044f \u043f\u043e\u043c\u043e\u0433\u0443 \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 Tipsi Shop.';\r\n        }\r\n        return 'Cze\u015b\u0107! Napisz, jakiego produktu szukasz, a pomog\u0119 znale\u017a\u0107 odpowiednie pozycje w katalogu Tipsi Shop.';\r\n      }\r\n\r\n      function catalogMessage(message, products) {\r\n        var language = detectLanguage(message);\r\n\r\n        if (!products.length) return supportContactMessage(message);\r\n\r\n        if (language === 'en') {\r\n          return 'I found ' + products.length + ' in-stock products that match your request. I am showing only verified catalogue items \u2014 click a card to open the product page.';\r\n        }\r\n\r\n        if (language === 'uk') {\r\n          return '\u0417\u043d\u0430\u0439\u0448\u043e\u0432 ' + products.length + ' \u043d\u0430\u044f\u0432\u043d\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u0456\u0432, \u044f\u043a\u0456 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u044e\u0442\u044c \u0437\u0430\u043f\u0438\u0442\u0443. \u041f\u043e\u043a\u0430\u0437\u0443\u044e \u043b\u0438\u0448\u0435 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043d\u0456 \u043f\u043e\u0437\u0438\u0446\u0456\u0457 \u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0443 \u2014 \u043d\u0430\u0442\u0438\u0441\u043d\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u043a\u0443, \u0449\u043e\u0431 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0442\u043e\u0432\u0430\u0440.';\r\n        }\r\n\r\n        if (language === 'ru') {\r\n          return '\u041d\u0430\u0448\u0451\u043b ' + products.length + ' \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0443. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u2014 \u043d\u0430\u0436\u043c\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0442\u043e\u0432\u0430\u0440.';\r\n        }\r\n\r\n        return 'Znalaz\u0142em ' + products.length + ' dost\u0119pnych produkt\u00f3w pasuj\u0105cych do zapytania. Pokazuj\u0119 wy\u0142\u0105cznie zweryfikowane pozycje z katalogu \u2014 kliknij kart\u0119, aby otworzy\u0107 produkt.';\r\n      }\r\n\r\n      function catalogPageMessage(message, page, languageOverride) {\r\n        var language = languageOverride || detectLanguage(message);\r\n\r\n        if (!page.total) return supportContactMessage(message);\r\n\r\n        if (!page.products.length) {\r\n          if (language === 'en') {\r\n            return 'These are all the in-stock products from this search \u2014 ' + page.total + ' in total. There are no new items to show.';\r\n          }\r\n          if (language === 'uk') {\r\n            return '\u0426\u0435 \u0432\u0436\u0435 \u0432\u0441\u0456 \u043d\u0430\u044f\u0432\u043d\u0456 \u0442\u043e\u0432\u0430\u0440\u0438 \u0437 \u0446\u044c\u043e\u0433\u043e \u043f\u043e\u0448\u0443\u043a\u0443 \u2014 \u0437\u0430\u0433\u0430\u043b\u043e\u043c ' + page.total + '. \u041d\u043e\u0432\u0438\u0445 \u043f\u043e\u0437\u0438\u0446\u0456\u0439 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0443 \u0431\u0456\u043b\u044c\u0448\u0435 \u043d\u0435\u043c\u0430\u0454.';\r\n          }\r\n          if (language === 'ru') {\r\n            return '\u042d\u0442\u043e \u0443\u0436\u0435 \u0432\u0441\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443 \u2014 \u0432\u0441\u0435\u0433\u043e ' + page.total + '. \u041d\u043e\u0432\u044b\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043a\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442.';\r\n          }\r\n          return 'To ju\u017c wszystkie dost\u0119pne produkty z tego wyszukiwania \u2014 \u0142\u0105cznie ' + page.total + '. Nie ma kolejnych pozycji do pokazania.';\r\n        }\r\n\r\n        var beginnerCuticleTip = '';\r\n        var normalized = normalizeText(message);\r\n        if (\/(frez|\u0444\u0440\u0435\u0437|drill bit|nail bit)\/.test(normalized) &&\r\n            \/(skorek|skorki|kutykul|\u043a\u0443\u0442\u0438\u043a\u0443\u043b|cuticle|skin)\/.test(normalized) &&\r\n            \/(poczatkuj|nowicjus|\u043d\u043e\u0432\u0430\u0447|\u043f\u043e\u0447\u0430\u0442\u043a\u0456\u0432|\u043d\u043e\u0432\u0438\u0447|\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449|beginner|new to)\/.test(normalized)) {\r\n          if (language === 'en') beginnerCuticleTip = 'For a beginner, start with a gentle red-grit bit, work without pressure and do not hold the bit in one place. ';\r\n          else if (language === 'uk') beginnerCuticleTip = '\u0414\u043b\u044f \u043d\u043e\u0432\u0430\u0447\u043a\u0430 \u043f\u043e\u0447\u0438\u043d\u0430\u0439 \u0437 \u0434\u0435\u043b\u0456\u043a\u0430\u0442\u043d\u043e\u0457 \u0447\u0435\u0440\u0432\u043e\u043d\u043e\u0457 \u043d\u0430\u0441\u0456\u0447\u043a\u0438, \u043f\u0440\u0430\u0446\u044e\u0439 \u0431\u0435\u0437 \u043d\u0430\u0442\u0438\u0441\u043a\u0443 \u0442\u0430 \u043d\u0435 \u0437\u0430\u0442\u0440\u0438\u043c\u0443\u0439 \u0444\u0440\u0435\u0437\u0443 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c\u0443 \u043c\u0456\u0441\u0446\u0456. ';\r\n          else if (language === 'ru') beginnerCuticleTip = '\u0414\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0435\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0434\u0435\u043b\u0438\u043a\u0430\u0442\u043d\u043e\u0439 \u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u043d\u0430\u0441\u0435\u0447\u043a\u0438, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043d\u0430\u0436\u0438\u043c\u0430 \u0438 \u043d\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0444\u0440\u0435\u0437\u0443 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435. ';\r\n          else beginnerCuticleTip = 'Dla pocz\u0105tkuj\u0105cej osoby bezpieczniej zacz\u0105\u0107 od delikatnej czerwonej gradacji, pracowa\u0107 bez nacisku i nie zatrzymywa\u0107 frezu w jednym miejscu. ';\r\n        }\r\n\r\n        if (language === 'en') {\r\n          return beginnerCuticleTip + 'I found ' + page.total + ' in-stock products that match your request. Showing items ' + page.from + '\u2013' + page.to + '.' +\r\n            (page.hasMore ? ' Type \u201cmore\u201d to see the next 8.' : ' These are the last products from this search.');\r\n        }\r\n\r\n        if (language === 'uk') {\r\n          return beginnerCuticleTip + '\u0417\u043d\u0430\u0439\u0448\u043e\u0432 ' + page.total + ' \u043d\u0430\u044f\u0432\u043d\u0438\u0445 \u0442\u043e\u0432\u0430\u0440\u0456\u0432, \u044f\u043a\u0456 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u0430\u044e\u0442\u044c \u0437\u0430\u043f\u0438\u0442\u0443. \u041f\u043e\u043a\u0430\u0437\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0456\u0457 ' + page.from + '\u2013' + page.to + '.' +\r\n            (page.hasMore ? ' \u041d\u0430\u043f\u0438\u0448\u0438 \u00ab\u0449\u0435\u00bb, \u0449\u043e\u0431 \u043f\u043e\u0431\u0430\u0447\u0438\u0442\u0438 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0456 8.' : ' \u0426\u0435 \u043e\u0441\u0442\u0430\u043d\u043d\u0456 \u0442\u043e\u0432\u0430\u0440\u0438 \u0437 \u0446\u044c\u043e\u0433\u043e \u043f\u043e\u0448\u0443\u043a\u0443.');\r\n        }\r\n\r\n        if (language === 'ru') {\r\n          return beginnerCuticleTip + '\u041d\u0430\u0448\u0451\u043b ' + page.total + ' \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0443. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u0438 ' + page.from + '\u2013' + page.to + '.' +\r\n            (page.hasMore ? ' \u041d\u0430\u043f\u0438\u0448\u0438 \u00ab\u0435\u0449\u0451\u00bb, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 8.' : ' \u042d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u044b \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430.');\r\n        }\r\n\r\n        return beginnerCuticleTip + 'Znalaz\u0142em ' + page.total + ' dost\u0119pnych produkt\u00f3w pasuj\u0105cych do zapytania. Pokazuj\u0119 pozycje ' + page.from + '\u2013' + page.to + '.' +\r\n          (page.hasMore ? ' Napisz \u201ewi\u0119cej\u201d, aby zobaczy\u0107 kolejne 8.' : ' To ostatnie produkty z tego wyszukiwania.');\r\n      }\r\n\r\n      function normalizePluginResponse(userMessage, data) {\r\n        var result = data && typeof data === 'object' ? data : {};\r\n        var products = Array.isArray(result.products) ? result.products : [];\r\n        var answer = String(result.message || '');\r\n        var language = detectLanguage(userMessage);\r\n\r\n        if (isGreetingOrLanguageRequest(userMessage)) {\r\n          return { message: localizedGreeting(userMessage), products: [] };\r\n        }\r\n\r\n        if (!answer.trim() || messageNeedsSupport(answer)) {\r\n          return { message: supportContactMessage(userMessage), products: [] };\r\n        }\r\n\r\n        if (language !== 'pl' && !answerUsesExpectedLanguage(answer, language)) {\r\n          if (products.length) {\r\n            answer = catalogMessage(userMessage, products);\r\n          } else {\r\n            answer = supportContactMessage(userMessage);\r\n          }\r\n        }\r\n\r\n        return { message: answer, products: products };\r\n      }\r\n\r\n      function getPluginData() {\r\n        return window.aiShoppingAssistant || null;\r\n      }\r\n\r\n      function refreshNonce() {\r\n        var plugin = getPluginData();\r\n        if (!plugin) return Promise.reject(new Error('Plugin data unavailable'));\r\n\r\n        var body = new URLSearchParams();\r\n        body.set('action', 'ai_shopping_assistant');\r\n        body.set('ai_action', 'refresh_nonce');\r\n\r\n        return fetch(plugin.ajaxUrl, {\r\n          method: 'POST',\r\n          credentials: 'same-origin',\r\n          headers: { 'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8' },\r\n          body: body.toString()\r\n        })\r\n          .then(function (response) { return response.json(); })\r\n          .then(function (json) {\r\n            if (!json.success || !json.data || !json.data.nonce) {\r\n              throw new Error('Nonce refresh failed');\r\n            }\r\n            plugin.nonce = json.data.nonce;\r\n          });\r\n      }\r\n\r\n      function clearPluginConversation(retried) {\r\n        var plugin = getPluginData();\r\n        if (!plugin || !plugin.ajaxUrl || !plugin.nonce) return Promise.resolve();\r\n\r\n        var body = new URLSearchParams();\r\n        body.set('action', 'ai_shopping_assistant');\r\n        body.set('ai_action', 'clear_conversation');\r\n        body.set('nonce', plugin.nonce);\r\n\r\n        return fetch(plugin.ajaxUrl, {\r\n          method: 'POST',\r\n          credentials: 'same-origin',\r\n          headers: { 'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8' },\r\n          body: body.toString()\r\n        }).then(function (response) {\r\n          if (response.status === 403 && !retried) {\r\n            return refreshNonce().then(function () {\r\n              return clearPluginConversation(true);\r\n            });\r\n          }\r\n\r\n          return response.json().then(function (json) {\r\n            if (!json.success) throw new Error('Conversation reset failed');\r\n          });\r\n        });\r\n      }\r\n\r\n      function resetConversation() {\r\n        if (busy || resetButton.disabled) return;\r\n        resetButton.disabled = true;\r\n\r\n        clearPluginConversation(false)\r\n          .catch(function () {\r\n            \/* Interfejs mo\u017cna wyczy\u015bci\u0107 nawet wtedy, gdy serwer chwilowo nie odpowiada. *\/\r\n          })\r\n          .finally(function () {\r\n            forgetSavedThread();\r\n            forgetCatalogState();\r\n            forgetStarterState();\r\n            thread.innerHTML = '';\r\n            thread.hidden = true;\r\n            threadTools.hidden = true;\r\n            input.value = '';\r\n            resetButton.disabled = false;\r\n            input.focus();\r\n          });\r\n      }\r\n\r\n      function requestAnswer(message, retried) {\r\n        var plugin = getPluginData();\r\n        if (!plugin || !plugin.ajaxUrl || !plugin.nonce) {\r\n          return Promise.reject(new Error('Asystent nie jest jeszcze dost\u0119pny. Od\u015bwie\u017c stron\u0119 i spr\u00f3buj ponownie.'));\r\n        }\r\n\r\n        var body = new URLSearchParams();\r\n        body.set('action', 'ai_shopping_assistant');\r\n        body.set('ai_action', 'send_message');\r\n        body.set('message', message);\r\n        body.set('nonce', plugin.nonce);\r\n\r\n        return fetch(plugin.ajaxUrl, {\r\n          method: 'POST',\r\n          credentials: 'same-origin',\r\n          headers: { 'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8' },\r\n          body: body.toString()\r\n        }).then(function (response) {\r\n          if (response.status === 403 && !retried) {\r\n            return refreshNonce().then(function () {\r\n              return requestAnswer(message, true);\r\n            });\r\n          }\r\n\r\n          return response.json().then(function (json) {\r\n            if (!json.success) {\r\n              var error = json.data && json.data.error ? json.data.error : json.data;\r\n              throw new Error(typeof error === 'string' ? error : 'Wyst\u0105pi\u0142 b\u0142\u0105d. Spr\u00f3buj ponownie.');\r\n            }\r\n            return json.data;\r\n          });\r\n        });\r\n      }\r\n\r\n      function send(message) {\r\n        message = String(message || '').trim();\r\n        if (!message || busy) return;\r\n\r\n        addUserMessage(message);\r\n        input.value = '';\r\n        setBusy(true);\r\n        addLoading();\r\n\r\n        var starterType = starterRequestType(message);\r\n        var serviceResponse = starterType ? null : serviceAnswer(message);\r\n        var catalogContext = starterType ? null : getCatalogContext(message);\r\n        var wantsProducts = starterType === 'hybrid' || starterType === 'extension' ||\r\n          Boolean(catalogContext) || wantsProductRecommendations(message);\r\n        var unknownProductSearch = !starterType && wantsProducts && !catalogContext;\r\n        var answerRequest;\r\n\r\n        if (starterType === 'ask') {\r\n          forgetCatalogState();\r\n          rememberStarterState({\r\n            pending: true,\r\n            shownType: null,\r\n            total: 0,\r\n            language: detectLanguage(message)\r\n          });\r\n          answerRequest = Promise.resolve({\r\n            message: starterQuestion(message),\r\n            products: []\r\n          });\r\n        } else if (starterType === 'finished') {\r\n          answerRequest = Promise.resolve({\r\n            message: starterFinishedMessage(\r\n              message,\r\n              starterState && starterState.language\r\n            ),\r\n            products: []\r\n          });\r\n        } else if (starterType === 'hybrid' || starterType === 'extension') {\r\n          forgetCatalogState();\r\n          var starterLanguage = starterState && starterState.pending\r\n            ? starterState.language\r\n            : detectLanguage(message);\r\n          answerRequest = requestStarterKitProducts(starterType).then(function (products) {\r\n            rememberStarterState({\r\n              pending: false,\r\n              shownType: starterType,\r\n              total: products.length,\r\n              language: starterLanguage\r\n            });\r\n            return {\r\n              message: starterKitMessage(\r\n                message,\r\n                starterType,\r\n                products.length,\r\n                starterLanguage\r\n              ),\r\n              products: products\r\n            };\r\n          });\r\n        } else if (serviceResponse) {\r\n          answerRequest = Promise.resolve({ message: serviceResponse, products: [] });\r\n        } else if (isGreetingOrLanguageRequest(message)) {\r\n          answerRequest = Promise.resolve({ message: localizedGreeting(message), products: [] });\r\n        } else if (catalogContext) {\r\n          forgetStarterState();\r\n          answerRequest = requestCatalogProducts(\r\n            catalogContext.query,\r\n            catalogContext.intent,\r\n            catalogContext.offset\r\n          ).then(function (page) {\r\n            var color = detectColor(catalogContext.query);\r\n            rememberCatalogState({\r\n              query: catalogContext.query,\r\n              intentId: catalogContext.intent.id,\r\n              colorId: color ? color.id : null,\r\n              budget: detectBudget(catalogContext.query),\r\n              nextOffset: Math.min(page.to, page.total),\r\n              total: page.total,\r\n              language: catalogContext.language || detectLanguage(message)\r\n            });\r\n            return {\r\n              message: catalogPageMessage(message, page, catalogContext.language),\r\n              products: page.products\r\n            };\r\n          });\r\n        } else if (unknownProductSearch) {\r\n          answerRequest = Promise.resolve({ message: supportContactMessage(message), products: [] });\r\n        } else {\r\n          answerRequest = requestAnswer(message, false);\r\n        }\r\n\r\n        answerRequest\r\n          .then(function (data) {\r\n            removeLoading();\r\n            var normalizedResponse = starterType\r\n              ? {\r\n                  message: String(data && data.message || ''),\r\n                  products: data && Array.isArray(data.products) ? data.products : []\r\n                }\r\n              : normalizePluginResponse(message, data);\r\n            if (!wantsProducts) normalizedResponse.products = [];\r\n            addAssistantMessage(normalizedResponse.message, normalizedResponse.products);\r\n          })\r\n          .catch(function () {\r\n            removeLoading();\r\n            addAssistantMessage(supportContactMessage(message), []);\r\n          })\r\n          .finally(function () {\r\n            setBusy(false);\r\n            input.focus();\r\n          });\r\n      }\r\n\r\n      restoreSavedThread();\r\n\r\n      form.addEventListener('submit', function (event) {\r\n        event.preventDefault();\r\n        send(input.value);\r\n      });\r\n\r\n      resetButton.addEventListener('click', resetConversation);\r\n\r\n      input.addEventListener('keydown', function (event) {\r\n        if (event.key === 'Enter' && !event.shiftKey) {\r\n          event.preventDefault();\r\n          send(input.value);\r\n        }\r\n      });\r\n\r\n      root.querySelectorAll('.twai-suggestions button').forEach(function (button) {\r\n        button.addEventListener('click', function () {\r\n          send(button.getAttribute('data-prompt'));\r\n        });\r\n      });\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', startTipsiWideAI);\r\n    } else {\r\n      startTipsiWideAI();\r\n    }\r\n  })();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-643e626 e-flex e-con-boxed e-con e-parent\" data-id=\"643e626\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-08965e7 wd-width-100 elementor-widget elementor-widget-wd_instagram\" data-id=\"08965e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_instagram.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div id=\"carousel-346\" class=\"wd-insta data-source-api\">\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\" wd-grid-g\"  style=\"--wd-col-lg:4;--wd-col-md:4;--wd-col-sm:2;--wd-gap-lg:0px;\">\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/DdbmDFZoSQZ\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/815468810_17911934262466214_6935107966910642710_n-300x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/815468810_17911934262466214_6935107966910642710_n-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/815468810_17911934262466214_6935107966910642710_n.jpg 1041w\" sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>9<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DdbdCjao9gu\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/814575249_17911924401466214_8962998358164273371_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/814575249_17911924401466214_8962998358164273371_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/814575249_17911924401466214_8962998358164273371_n.jpg 720w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>7<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/DdZwfjMoXyX\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/06\/814507518_17911842315466214_9130875795946654817_n-300x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>5<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DdSpfotos7T\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/811056571_883845467997801_6660797615694134214_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/811056571_883845467997801_6660797615694134214_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/811056571_883845467997801_6660797615694134214_n.jpg 640w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>5<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/DdRFbMGoZfv\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"240\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/810118668_17911264200466214_4710270068612324297_n-240x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/810118668_17911264200466214_4710270068612324297_n-240x300.jpg 240w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/09\/810118668_17911264200466214_4710270068612324297_n.jpg 1350w\" sizes=\"(max-width: 240px) 100vw, 240px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>7<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DdOhp5vIEnw\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/808547209_17911125348466214_1896631752956569991_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/808547209_17911125348466214_1896631752956569991_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/808547209_17911125348466214_1896631752956569991_n.jpg 1080w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>16<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DdOaqwYIx1J\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/809038326_2234464460672843_4487324919194740216_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/809038326_2234464460672843_4487324919194740216_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/809038326_2234464460672843_4487324919194740216_n.jpg 640w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>13<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DdE_WYZIbxX\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/802030567_17910622674466214_6540708677581223449_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/802030567_17910622674466214_6540708677581223449_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/10\/802030567_17910622674466214_6540708677581223449_n.jpg 720w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>5<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/Dc-7EebCLMa\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"240\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2021\/09\/799674517_17910304248466214_883806337156590593_n-240x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2021\/09\/799674517_17910304248466214_883806337156590593_n-240x300.jpg 240w, https:\/\/tipsi.pl\/wp-content\/uploads\/2021\/09\/799674517_17910304248466214_883806337156590593_n.jpg 720w\" sizes=\"(max-width: 240px) 100vw, 240px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>6<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/Dc8ESAxiLOs\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"225\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/799084414_17910155550466214_8647650934453667328_n-225x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/799084414_17910155550466214_8647650934453667328_n-225x300.jpg 225w, https:\/\/tipsi.pl\/wp-content\/uploads\/2026\/05\/799084414_17910155550466214_8647650934453667328_n.jpg 1536w\" sizes=\"(max-width: 225px) 100vw, 225px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>7<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/p\/DcycOHtCHbK\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/12\/791959628_17909616909466214_6630902701619919043_n-300x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/12\/791959628_17909616909466214_6630902701619919043_n-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/12\/791959628_17909616909466214_6630902701619919043_n.jpg 1167w\" sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>9<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<div class=\"wd-insta-item wd-col\">\n\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/reel\/DcqP__FoILq\/\" target=\"_blank\" aria-label=\"\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f Instagram\"><\/a>\n\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"169\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/788728726_17909157504466214_2711723357561703432_n-169x300.jpg\" class=\"attachment-medium size-medium\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/788728726_17909157504466214_2711723357561703432_n-169x300.jpg 169w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/08\/788728726_17909157504466214_2711723357561703432_n.jpg 720w\" sizes=\"(max-width: 169px) 100vw, 169px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-insta-meta wd-grid-g\">\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-likes instagram-likes\"><span>9<\/span><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wd-insta-comm instagram-comments\"><span>0<\/span><\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t<a href=\"\/\/www.instagram.com\/flickr\" class=\"wd-insta-link\" rel=\"me\" target=\"_blank\">Zainspiruj si\u0119 naszymi stylizacjami \u2014 obserwuj nas na Instagramie tipsi_shop_<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e2b6b48 e-con-full e-flex e-con e-parent\" data-id=\"e2b6b48\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b75b7b5 wd-width-100 elementor-widget elementor-widget-wd_slider\" data-id=\"b75b7b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_slider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<style id=\"wd-style-term-537-inline-css\" data-type=\"wd-style-term-537\">\n\t\t\t\t#slider-537 .wd-slide {\n\tmin-height: 495px;\n}\n#slider-537 .wd-slider-arrows {\n\t--wd-arrow-size: 65px;\n\t--wd-arrow-shadow: 0px 0px 0px 0px rgba(255,255,255,0);\n}\n\n@media (max-width: 1024px) {\n\t#slider-537 .wd-slide {\n\t\tmin-height: 500px;\n\t}\n\t#slider-537 .wd-slider-arrows {\n\t\t--wd-arrow-offset-h: 10px;\n\t}\n}\n\n@media (max-width: 768px) {\n\t#slider-537 .wd-slide {\n\t\tmin-height: 750px;\n\t}\n}\n\t\t\t<\/style>\n\t\t\t<style>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27769 .wd-slide-container {\n\t\t\t\t\t\t\t\t\t\t\t--wd-align-items: flex-end;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t--wd-justify-content: right;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27769 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:880px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27769 .wd-slide-bg {\n\t\t\t\t\t\tbackground-color:rgb(248,248,248);background-size:cover;background-position:center center;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 1024px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27769 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:1200px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 768px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27769 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:800px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27785 .wd-slide-container {\n\t\t\t\t\t\t\t\t\t\t\t--wd-align-items: flex-end;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t--wd-justify-content: right;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27785 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:880px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27785 .wd-slide-bg {\n\t\t\t\t\t\tbackground-color:rgb(248,248,248);background-size:cover;background-position:center center;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 1024px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27785 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:1200px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 768px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27785 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:800px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27805 .wd-slide-container {\n\t\t\t\t\t\t\t\t\t\t\t--wd-align-items: center;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t--wd-justify-content: right;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27805 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:880px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27805 .wd-slide-bg {\n\t\t\t\t\t\tbackground-color:rgb(248,248,248);background-size:cover;background-position:center center;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 1024px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27805 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:1200px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t@media (max-width: 768px) {\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t#slide-27805 .wd-slide-inner {\n\t\t\t\t\t\tmax-width:800px;\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t<\/style>\n\t\t<div id=\"slider-537\" data-id=\"537\" class=\"wd-slider wd-carousel-container wd-anim-fade wd-section-stretch wd-autoplay-on\">\n\t\t\t<div class=\"wd-carousel-inner\">\n\t\t\t\t<div class=\"wd-carousel wd-grid\" data-speed=\"25000\" data-wrap=\"yes\" data-autoplay=\"yes\" data-autoheight=\"yes\" data-scroll_per_page=\"yes\" data-sliding_speed=\"700\" data-effect=\"fade\" style=\"--wd-col-lg:1;--wd-col-md:1;--wd-col-sm:1;\">\n\t\t\t\t\t<div class=\"wd-carousel-wrap \">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"slide-27769\" class=\"wd-slide wd-carousel-item woodmart-loaded\" >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"container wd-slide-container content-fixed wd-padding-off\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-slide-inner\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<link rel='stylesheet' id='litespeed-cache-dummy-css' href='https:\/\/tipsi.pl\/wp-content\/plugins\/litespeed-cache\/assets\/css\/litespeed-dummy.css?ver=7.1.1' media='all' \/>\n<link rel='stylesheet' id='base-desktop-css' href='https:\/\/tipsi.pl\/wp-content\/uploads\/elementor\/css\/base-desktop.css?ver=6aaff15044e92' media='all' \/>\n<link rel='stylesheet' id='base-mobile-css' href='https:\/\/tipsi.pl\/wp-content\/uploads\/elementor\/css\/base-mobile.css?ver=6aaff15044e92' media='(max-width:768px)' \/>\n<style>.elementor-27769 .elementor-element.elementor-element-120f101{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-end;--gap:0px 15px;--row-gap:0px;--column-gap:15px;}.elementor-27769 .elementor-element.elementor-element-62c3ed9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:100px;--padding-left:15px;--padding-right:15px;}.elementor-27769 .elementor-element.elementor-element-21bb489 .title{font-size:54px;}.elementor-27769 .elementor-element.elementor-element-4b306e3 .title{font-size:54px;}.elementor-27769 .elementor-element.elementor-element-a9e7a35 .title{font-size:54px;}.elementor-27769 .elementor-element.elementor-element-73a432c .title{font-size:54px;}.elementor-27769 .elementor-element.elementor-element-d54ad7f .title{font-size:54px;}.elementor-27769 .elementor-element.elementor-element-7ae18cb .wd-text-block{max-width:355px;font-size:15px;}.elementor-27769 .elementor-element.elementor-element-7ae18cb > .elementor-widget-container{margin:0px 0px 20px 0px;}.elementor-27769 .elementor-element.elementor-element-fbde2a9 > .elementor-widget-container{margin:0px 0px 20px 0px;}.elementor-27769 .elementor-element.elementor-element-fbde2a9{width:var( --container-widget-width, 215px );max-width:215px;--container-widget-width:215px;--container-widget-flex-grow:0;}.elementor-27769 .elementor-element.elementor-element-cdc2baa .wd-text-block{font-size:28px;}.elementor-27769 .elementor-element.elementor-element-03f8d2e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}#slide-27769 .wd-slide-inner{max-width:880px;}#slide-27769 .wd-slide-container{--wd-align-items:flex-end;--wd-justify-content:right;}#slide-27769 .wd-slide-bg{background-color:rgb(248,248,248);}@media(max-width:1024px){.elementor-27769 .elementor-element.elementor-element-62c3ed9{--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:90px;--padding-left:15px;--padding-right:15px;}.elementor-27769 .elementor-element.elementor-element-21bb489 .title{font-size:44px;line-height:1.2em;}.elementor-27769 .elementor-element.elementor-element-4b306e3 .title{font-size:44px;line-height:1.2em;}.elementor-27769 .elementor-element.elementor-element-a9e7a35 .title{font-size:44px;line-height:1.2em;}.elementor-27769 .elementor-element.elementor-element-73a432c .title{font-size:44px;line-height:1.2em;}.elementor-27769 .elementor-element.elementor-element-73a432c > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-27769 .elementor-element.elementor-element-d54ad7f .title{font-size:44px;line-height:1.2em;}#slide-27769 .wd-slide-inner{max-width:1200px;}#slide-27769 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}@media(max-width:768px){.elementor-27769 .elementor-element.elementor-element-120f101{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-27769 .elementor-element.elementor-element-62c3ed9{--padding-top:40px;--padding-bottom:60px;--padding-left:30px;--padding-right:30px;}#slide-27769 .wd-slide-inner{max-width:800px;}#slide-27769 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}@media(min-width:769px){.elementor-27769 .elementor-element.elementor-element-62c3ed9{--width:41.6%;}.elementor-27769 .elementor-element.elementor-element-03f8d2e{--width:58.4%;}}<\/style>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"27769\" class=\"elementor elementor-27769\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-120f101 e-flex e-con-boxed e-con e-parent\" data-id=\"120f101\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-62c3ed9 e-con-full e-flex e-con e-child\" data-id=\"62c3ed9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21bb489 wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"21bb489\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\"><\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b306e3 wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"4b306e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\"><\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a9e7a35 wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"a9e7a35\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">PI\u0118KNE<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73a432c wd-animation-slide-from-bottom wd-animation-fast wd_delay_700 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"73a432c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\"><\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d54ad7f wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"d54ad7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">PAZNOKCIE<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ae18cb wd-animation-slide-from-bottom wd-animation-fast wd_delay_800 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"7ae18cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<p style=\"text-align: left;\">Szeroki wyb\u00f3r profesjonalnych produkt\u00f3w do paznokci na wszelkie potrzeby i style.\u00a0<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fbde2a9 elementor-widget__width-initial wd-animation-slide-from-bottom wd-animation-fast wd_delay_900 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_images_gallery\" data-id=\"fbde2a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_images_gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-images-gallery wd-carousel-container\" style=\"--wd-align-items:center; --wd-justify-content:left;\">\n\t\t\t\t\t\t\t<div class=\"wd-carousel-inner\">\n\t\t\t\t\t\t<div class=\"wd-carousel wd-grid\" data-scroll_per_page=\"yes\" data-sync_child_id=\"wd_65cf35363fc24\" style=\"--wd-col-lg:4;--wd-col-md:4;--wd-col-sm:4;--wd-gap-lg:20px;--wd-gap-sm:10px;\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-carousel-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  data-width=\"300\" data-height=\"300\" data-index=\"0\" data-elementor-open-lightbox=\"no\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"38\" height=\"38\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail-38x38.jpg\" class=\"attachment-38x38 size-38x38\" alt=\"Logo marki XNAIL \u2013 profesjonalne produkty do stylizacji paznokci\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail-38x38.jpg 38w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail.jpg 300w\" sizes=\"(max-width: 38px) 100vw, 38px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  data-width=\"300\" data-height=\"300\" data-index=\"1\" data-elementor-open-lightbox=\"no\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"38\" height=\"38\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-38x38.jpg\" class=\"attachment-38x38 size-38x38\" alt=\"Modny manicure dnia z nowoczesnym zdobieniem w stylu NAILS OF THE DAY\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-38x38.jpg 38w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day.jpg 300w\" sizes=\"(max-width: 38px) 100vw, 38px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  data-width=\"300\" data-height=\"300\" data-index=\"2\" data-elementor-open-lightbox=\"no\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"38\" height=\"38\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-38x38.jpg\" class=\"attachment-38x38 size-38x38\" alt=\"Logo marki TACH\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-38x38.jpg 38w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch.jpg 300w\" sizes=\"(max-width: 38px) 100vw, 38px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  data-width=\"300\" data-height=\"300\" data-index=\"3\" data-elementor-open-lightbox=\"no\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"38\" height=\"38\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-38x38.jpg\" class=\"attachment-38x38 size-38x38\" alt=\"Logo marki Atika\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-38x38.jpg 38w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo.jpg 300w\" sizes=\"(max-width: 38px) 100vw, 38px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdc2baa wd-animation-slide-from-bottom wd-animation-fast wd_delay_1000 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"cdc2baa\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left color-primary\">\n\t\t\t\n\t\t\t<p>od 32.00 z\u0142.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-03f8d2e e-con-full e-flex e-con e-child\" data-id=\"03f8d2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a85c39 wd-animation-slide-from-right wd_delay_250 wd-width-100 wd-animation-normal wd-animation wd-transform elementor-widget elementor-widget-wd_images_gallery\" data-id=\"2a85c39\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_images_gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-images-gallery wd-carousel-container\" style=\"--wd-align-items:flex-end; --wd-justify-content:center;\">\n\t\t\t\t\t\t\t<div class=\"wd-carousel-inner\">\n\t\t\t\t\t\t<div class=\"wd-carousel wd-grid\" data-scroll_per_page=\"yes\" data-sync_parent_id=\"wd_65cf35363fc24\" style=\"--wd-col-lg:1;--wd-col-md:1;--wd-col-sm:1;--wd-gap-lg:0px;\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-carousel-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/shop\/?filter_product_brand=759\" data-width=\"400\" data-height=\"188\" data-index=\"0\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"400\" height=\"188\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail.png\" class=\"attachment-full size-full\" alt=\"Logo marki XNAIL \u2013 profesjonalne produkty do stylizacji paznokci\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail.png 400w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/xnail-148x70.png 148w\" sizes=\"(max-width: 400px) 100vw, 400px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/shop\/?filter_product_brand=758\" data-width=\"300\" data-height=\"300\" data-index=\"1\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day.jpg\" class=\"attachment-full size-full\" alt=\"Modny manicure dnia z nowoczesnym zdobieniem w stylu NAILS OF THE DAY\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nails-of-the-day-38x38.jpg 38w\" sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/shop\/?filter_product_brand=757\" data-width=\"300\" data-height=\"300\" data-index=\"2\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch.jpg\" class=\"attachment-full size-full\" alt=\"Logo marki TACH\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/logo-touch-38x38.jpg 38w\" sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/shop\/?filter_product_brand=756\" data-width=\"300\" data-height=\"300\" data-index=\"3\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo.jpg\" class=\"attachment-full size-full\" alt=\"Logo marki Atika\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/atica-logo-38x38.jpg 38w\" sizes=\"(max-width: 300px) 100vw, 300px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"wd-slide-bg wd-fill\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"slide-27785\" class=\"wd-slide wd-carousel-item\" >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"container wd-slide-container content-fixed wd-padding-off\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-slide-inner\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<style>.elementor-27785 .elementor-element.elementor-element-120f101{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-end;--gap:0px 15px;--row-gap:0px;--column-gap:15px;}.elementor-27785 .elementor-element.elementor-element-62c3ed9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:120px;--padding-left:15px;--padding-right:15px;}.elementor-27785 .elementor-element.elementor-element-21bb489 .title{font-size:54px;}.elementor-27785 .elementor-element.elementor-element-73a432c .title{font-size:54px;}.elementor-27785 .elementor-element.elementor-element-9ac9007{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:15px 15px;--row-gap:15px;--column-gap:15px;--flex-wrap:nowrap;--margin-top:0px;--margin-bottom:15px;--margin-left:0px;--margin-right:0px;}.elementor-27785 .elementor-element.elementor-element-88269a6 .wd-text-block{font-size:14px;font-weight:700;}.elementor-27785 .elementor-element.elementor-element-fbde2a9{width:auto;max-width:auto;}.elementor-27785 .elementor-element.elementor-element-7ae18cb .wd-text-block{max-width:355px;font-size:15px;}.elementor-27785 .elementor-element.elementor-element-7ae18cb > .elementor-widget-container{margin:0px 0px 20px 0px;}.elementor-27785 .elementor-element.elementor-element-cdc2baa .wd-text-block{font-size:28px;}.elementor-27785 .elementor-element.elementor-element-03f8d2e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-27785 .elementor-element.elementor-element-2a85c39 > .elementor-widget-container{padding:0px 30px 0px 30px;}#slide-27785 .wd-slide-inner{max-width:880px;}#slide-27785 .wd-slide-container{--wd-align-items:flex-end;--wd-justify-content:right;}#slide-27785 .wd-slide-bg{background-color:rgb(248,248,248);}@media(min-width:769px){.elementor-27785 .elementor-element.elementor-element-62c3ed9{--width:41.6%;}.elementor-27785 .elementor-element.elementor-element-03f8d2e{--width:58.4%;}}@media(max-width:1024px){.elementor-27785 .elementor-element.elementor-element-62c3ed9{--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:90px;--padding-left:15px;--padding-right:15px;}.elementor-27785 .elementor-element.elementor-element-21bb489 .title{font-size:44px;line-height:1.2em;}.elementor-27785 .elementor-element.elementor-element-73a432c .title{font-size:44px;line-height:1.2em;}.elementor-27785 .elementor-element.elementor-element-73a432c > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-27785 .elementor-element.elementor-element-2a85c39 > .elementor-widget-container{padding:0px 0px 0px 0px;}#slide-27785 .wd-slide-inner{max-width:1200px;}#slide-27785 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}@media(max-width:768px){.elementor-27785 .elementor-element.elementor-element-62c3ed9{--padding-top:40px;--padding-bottom:30px;--padding-left:30px;--padding-right:30px;}.elementor-27785 .elementor-element.elementor-element-03f8d2e{--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}#slide-27785 .wd-slide-inner{max-width:800px;}#slide-27785 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}<\/style>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"27785\" class=\"elementor elementor-27785\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-120f101 e-flex e-con-boxed e-con e-parent\" data-id=\"120f101\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-62c3ed9 e-con-full e-flex e-con e-child\" data-id=\"62c3ed9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21bb489 wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"21bb489\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">MOC<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73a432c wd-animation-slide-from-bottom wd-animation-fast wd_delay_700 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"73a432c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">KOLOR\u00d3W<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-9ac9007 e-flex e-con-boxed e-con e-child\" data-id=\"9ac9007\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-88269a6 wd-animation-slide-from-bottom wd-animation-fast wd_delay_800 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"88269a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left color-title\">\n\t\t\t\n\t\t\t<p>COLOR:<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fbde2a9 elementor-widget__width-auto wd-animation-slide-from-bottom wd-animation-fast wd_delay_800 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_images_gallery\" data-id=\"fbde2a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_images_gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-images-gallery wd-carousel-container\" style=\"--wd-align-items:center; --wd-justify-content:center;\">\n\t\t\t\t\t\t\t<div class=\"wd-carousel-inner\">\n\t\t\t\t\t\t<div class=\"wd-carousel wd-grid\" data-scroll_per_page=\"yes\" data-sync_child_id=\"wd_65cf35363fc25\" style=\"--wd-col-lg:3;--wd-col-md:3;--wd-col-sm:3;--wd-gap-lg:10px;\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-carousel-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"30\" height=\"30\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-036-2-30x30.jpg\" class=\"attachment-30x30 size-30x30\" alt=\"NAILSOFTHEDAY Effortless \u2013 mi\u0119towy lakier hybrydowy, 10 ml Kolor maja 2025 \u2013 zdj\u0119cie 4\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-036-2-30x30.jpg 30w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-036-2-150x150.jpg 150w\" sizes=\"(max-width: 30px) 100vw, 30px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"30\" height=\"30\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-30x30.jpg\" class=\"attachment-30x30 size-30x30\" alt=\"NAILSOFTHEDAY Let&#039;s special Dusty rose \u2013 lakier hybrydowy 10 ml w przygaszonym r\u00f3\u017cowym odcieniu \u2013 zdj\u0119cie 3\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-30x30.jpg 30w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-430x430.jpg 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031.jpg 480w\" sizes=\"(max-width: 30px) 100vw, 30px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"30\" height=\"30\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-30x30.jpg\" class=\"attachment-30x30 size-30x30\" alt=\"NAILSOFTHEDAY Let&#039;s special Orange \u2013 lakier hybrydowy 10 ml w intensywnym pomara\u0144czowym kolorze \u2013 zdj\u0119cie 3\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-30x30.jpg 30w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-430x430.jpg 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-148x148.jpg 148w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030.jpg 480w\" sizes=\"(max-width: 30px) 100vw, 30px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ae18cb wd-animation-slide-from-bottom wd-animation-fast wd_delay_900 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"7ae18cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<p>Wyraziste, nasycone kolory hybrydowych lakier\u00f3w, kt\u00f3re przyci\u0105gaj\u0105 spojrzenia i dodaj\u0105 paznokciom charakteru. Postaw na moc, trwa\u0142o\u015b\u0107 i styl!<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdc2baa wd-animation-slide-from-bottom wd-animation-fast wd_delay_1000 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"cdc2baa\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left color-primary\">\n\t\t\t\n\t\t\t<p>od 43,20 <span class=\"woocommerce-Price-currencySymbol\">z\u0142<\/span><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-03f8d2e e-con-full e-flex e-con e-child\" data-id=\"03f8d2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a85c39 wd-animation-slide-from-right wd_delay_250 wd-width-100 wd-animation-normal wd-animation wd-transform elementor-widget elementor-widget-wd_images_gallery\" data-id=\"2a85c39\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_images_gallery.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-images-gallery wd-carousel-container\" style=\"--wd-align-items:flex-end; --wd-justify-content:center;\">\n\t\t\t\t\t\t\t<div class=\"wd-carousel-inner\">\n\t\t\t\t\t\t<div class=\"wd-carousel wd-grid\" data-scroll_per_page=\"yes\" data-sync_parent_id=\"wd_65cf35363fc25\" style=\"--wd-col-lg:1;--wd-col-md:1;--wd-col-sm:1;--wd-gap-lg:0px;\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-carousel-wrap\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/product\/nails-of-the-day-036-color-of-the-month-maj-2025-effortless-mietowy-lakier-hybrydowy-10-ml\/\" data-width=\"480\" data-height=\"480\" data-index=\"0\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"480\" height=\"480\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036.png\" class=\"attachment-full size-full\" alt=\"NAILSOFTHEDAY---036\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036.png 480w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036-300x300.png 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036-150x150.png 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036-430x430.png 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/07\/nailsoftheday-036-148x148.png 148w\" sizes=\"(max-width: 480px) 100vw, 480px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/product\/nails-of-the-day-031-let-s-special-dusty-rose-lakier-hybrydowy-10-ml\/\" data-width=\"480\" data-height=\"480\" data-index=\"1\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"480\" height=\"480\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2.jpg\" class=\"attachment-full size-full\" alt=\"NAILSOFTHEDAY Let&#039;s special Dusty rose \u2013 lakier hybrydowy 10 ml w przygaszonym r\u00f3\u017cowym odcieniu \u2013 zdj\u0119cie 5\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2.jpg 480w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2-430x430.jpg 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-031-2-148x148.jpg 148w\" sizes=\"(max-width: 480px) 100vw, 480px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-gallery-item wd-carousel-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a  href=\"https:\/\/tipsi.pl\/product\/nails-of-the-day-030-let-s-special-orange-lakier-hybrydowy-10-ml\/\" data-width=\"480\" data-height=\"480\" data-index=\"2\" data-elementor-open-lightbox=\"no\" target=\"_blank\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<img decoding=\"async\" width=\"480\" height=\"480\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3.jpg\" class=\"attachment-full size-full\" alt=\"NAILSOFTHEDAY Let&#039;s special Orange \u2013 lakier hybrydowy 10 ml w intensywnym pomara\u0144czowym kolorze \u2013 zdj\u0119cie 6\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3.jpg 480w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3-300x300.jpg 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3-150x150.jpg 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3-430x430.jpg 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2025\/06\/nailsoftheday-030-3-148x148.jpg 148w\" sizes=\"(max-width: 480px) 100vw, 480px\" title=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"wd-slide-bg wd-fill\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"slide-27805\" class=\"wd-slide wd-carousel-item\" >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"container wd-slide-container content-fixed wd-padding-off\">\n\t\t\t\t\t\t\t\t\t<div class=\"wd-slide-inner\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<style>.elementor-27805 .elementor-element.elementor-element-120f101{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-end;--gap:0px 15px;--row-gap:0px;--column-gap:15px;}.elementor-27805 .elementor-element.elementor-element-62c3ed9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:40px;--padding-bottom:70px;--padding-left:10px;--padding-right:10px;}.elementor-27805 .elementor-element.elementor-element-481ada5 .wd-text-block{font-family:\"Poppins\", Sans-serif;font-size:15px;font-weight:600;color:#A5A5A5;}.elementor-27805 .elementor-element.elementor-element-21bb489 .title{font-size:44px;}.elementor-27805 .elementor-element.elementor-element-73a432c .title{font-size:44px;}.elementor-27805 .elementor-element.elementor-element-73a432c > .elementor-widget-container{margin:0px 0px 10px 0px;}.elementor-27805 .elementor-element.elementor-element-7ae18cb .wd-text-block{max-width:355px;font-size:15px;}.elementor-27805 .elementor-element.elementor-element-7ae18cb > .elementor-widget-container{margin:0px 0px 20px 0px;}.elementor-27805 .elementor-element.elementor-element-cdc2baa .wd-text-block{font-size:28px;}.elementor-27805 .elementor-element.elementor-element-03f8d2e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-27805 .elementor-element.elementor-element-204da6f > .elementor-widget-container{margin:0px -150px 0px 0px;}#slide-27805 .wd-slide-inner{max-width:880px;}#slide-27805 .wd-slide-container{--wd-align-items:center;--wd-justify-content:right;}#slide-27805 .wd-slide-bg{background-color:rgb(248,248,248);}@media(min-width:769px){.elementor-27805 .elementor-element.elementor-element-62c3ed9{--width:41.6%;}.elementor-27805 .elementor-element.elementor-element-03f8d2e{--width:58.4%;}}@media(max-width:1024px){.elementor-27805 .elementor-element.elementor-element-62c3ed9{--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-27805 .elementor-element.elementor-element-21bb489 .title{font-size:38px;line-height:1.2em;}.elementor-27805 .elementor-element.elementor-element-73a432c .title{font-size:38px;line-height:1.2em;}.elementor-27805 .elementor-element.elementor-element-03f8d2e{--margin-top:0px;--margin-bottom:30px;--margin-left:0px;--margin-right:0px;}#slide-27805 .wd-slide-inner{max-width:1200px;}#slide-27805 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}@media(max-width:768px){.elementor-27805 .elementor-element.elementor-element-62c3ed9{--padding-top:40px;--padding-bottom:60px;--padding-left:30px;--padding-right:30px;}.elementor-27805 .elementor-element.elementor-element-21bb489 .title{font-size:42px;}.elementor-27805 .elementor-element.elementor-element-73a432c .title{font-size:42px;}.elementor-27805 .elementor-element.elementor-element-03f8d2e{--margin-top:0px;--margin-bottom:50px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}#slide-27805 .wd-slide-inner{max-width:800px;}#slide-27805 .wd-slide-container{--wd-align-items:center;--wd-justify-content:left;}}<\/style>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"27805\" class=\"elementor elementor-27805\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-120f101 e-flex e-con-boxed e-con e-parent\" data-id=\"120f101\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-62c3ed9 e-con-full e-flex e-con e-child\" data-id=\"62c3ed9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-481ada5 wd-animation-slide-from-bottom wd-animation-fast wd_delay_600 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"481ada5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-center\">\n\t\t\t\n\t\t\t<p>Darmowa dostawa<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-21bb489 wd-animation-slide-from-bottom wd-animation-fast wd_delay_700 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"21bb489\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-center\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">ZAM\u00d3W<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-73a432c wd-animation-slide-from-bottom wd-animation-fast wd_delay_800 wd-width-100 wd-animation wd-transform elementor-widget elementor-widget-wd_title\" data-id=\"73a432c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper wd-set-mb reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-center\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">WI\u0118CEJ<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ae18cb wd-animation-slide-from-bottom wd-animation-fast wd_delay_900 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"7ae18cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-center\">\n\t\t\t\n\t\t\t<p><span style=\"font-size: 15px;\">Dostawa za 0 z\u0142 przy zakupach od 250 z\u0142!<\/span><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdc2baa wd-animation-slide-from-bottom wd-animation-fast wd_delay_1000 wd-animation wd-transform elementor-widget elementor-widget-wd_text_block\" data-id=\"cdc2baa\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-center color-primary\">\n\t\t\t\n\t\t\t<p><strong data-start=\"472\" data-end=\"490\">\ud83c\udf81Ju\u017c od 250 z\u0142<\/strong><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-03f8d2e e-con-full e-flex e-con e-child\" data-id=\"03f8d2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-204da6f wd-animation-slide-from-right wd_delay_250 wd-animation-normal wd-animation wd-transform elementor-widget elementor-widget-wd_image_or_svg\" data-id=\"204da6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_image_or_svg.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\t\t<div class=\"wd-image text-center\">\n\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"480\" height=\"480\" src=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4.png 480w, https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4-300x300.png 300w, https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4-150x150.png 150w, https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4-430x430.png 430w, https:\/\/tipsi.pl\/wp-content\/uploads\/2024\/02\/darmo-tipsi-4-148x148.png 148w\" sizes=\"(max-width: 480px) 100vw, 480px\" title=\"\">\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t<div class=\"wd-slide-bg wd-fill\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-nav-arrows wd-slider-arrows wd-custom-style wd-style-2 wd-pos-sep wd-hover-1 color-scheme-dark\">\n\t\t\t\t\t\t<div class=\"wd-btn-arrow wd-prev\">\n\t\t\t\t\t\t\t<div class=\"wd-arrow-inner\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"wd-btn-arrow wd-next\">\n\t\t\t\t\t\t\t<div class=\"wd-arrow-inner\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"wd-nav-pagin-wrap wd-slider-pagin wd-custom-style wd-style-shape-3 text-center color-scheme-dark\">\n\t\t\t\t\t<ul class=\"wd-nav-pagin\"><\/ul>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-c125713 e-flex e-con-boxed e-con e-parent\" data-id=\"c125713\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a50b297 elementor-widget elementor-widget-spacer\" data-id=\"a50b297\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-8a3d73a e-flex e-con-boxed e-con e-parent\" data-id=\"8a3d73a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-87ea397 elementor-widget elementor-widget-wd_text_block\" data-id=\"87ea397\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;highlighted_vertical_offset&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;highlighted_vertical_offset_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<h1 style=\"text-align: center;\" data-start=\"833\" data-end=\"906\"><strong data-start=\"838\" data-end=\"906\">Tipsi Shop \u2014 internetowy sklep z produktami do manicure w Polsce<\/strong><\/h1><p style=\"text-align: center;\" data-start=\"908\" data-end=\"1154\"><strong data-start=\"908\" data-end=\"922\">Tipsi Shop<\/strong> to internetowy sklep z profesjonalnymi produktami do manicure w Polsce.<br data-start=\"994\" data-end=\"997\" \/>U nas mo\u017cesz kupi\u0107 <strong data-start=\"1016\" data-end=\"1110\"><a href=\"https:\/\/tipsi.pl\/product-category\/lakiery-hybrydowe\/\">lakiery hybrydowe<\/a>, bazy, topy, <a href=\"https:\/\/tipsi.pl\/product-category\/zele\/builder-gel\/\">\u017cele buduj\u0105ce<\/a>, akcesoria oraz urz\u0105dzenia do manicure online<\/strong> z dostaw\u0105 na terenie ca\u0142ej Polski i Europy.<\/p><p style=\"text-align: center;\" data-start=\"1156\" data-end=\"1303\">\ud83d\udc49 <strong data-start=\"1159\" data-end=\"1236\">Wi\u0119cej informacji o asortymencie, markach i kategoriach znajdziesz tutaj:<\/strong><br data-start=\"1236\" data-end=\"1239\" \/><strong data-start=\"1239\" data-end=\"1303\"><a class=\"decorated-link\" href=\"https:\/\/tipsi.pl\/kup-lakiery-hybrydowe-oraz-akcesoria-do-manicure-w-polsce\/\" target=\"_blank\" rel=\"noopener\" data-start=\"1241\" data-end=\"1301\">Kup lakiery hybrydowe i produkty do manicure w Polsce<\/a><\/strong><\/p><p style=\"text-align: center;\" data-start=\"1305\" data-end=\"1469\">Sklep skierowany jest do stylistek paznokci oraz klient\u00f3w z Polski i Europy, kt\u00f3rzy szukaj\u0105 <strong data-start=\"1397\" data-end=\"1468\">wysokiej jako\u015bci produkt\u00f3w, oficjalnych marek i niezawodnej dostawy<\/strong>.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-34e96b4 e-flex e-con-boxed e-con e-parent\" data-id=\"34e96b4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d58eb8 elementor-widget elementor-widget-spacer\" data-id=\"5d58eb8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Asystent Tipsi Shop Cze\u015b\u0107! Czego dzi\u015b szukasz? Opisz efekt, kolor, bud\u017cet lub rodzaj produktu, a nasz asystent pomo\u017ce Ci wybra\u0107.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2581","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/pages\/2581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/comments?post=2581"}],"version-history":[{"count":189,"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/pages\/2581\/revisions"}],"predecessor-version":[{"id":37587,"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/pages\/2581\/revisions\/37587"}],"wp:attachment":[{"href":"https:\/\/tipsi.pl\/uk\/wp-json\/wp\/v2\/media?parent=2581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}