PageSourceSearch

https://www.trefl.com/blog/post/madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole

html trefl.com collected 2026-10-01 12:17:07 UTC 420,566 bytes, 8,652 lines download raw bytes

1<!doctype html>
2<html lang="pl">
3<head >
4    <meta charset="utf-8"/>
5<meta name="title" content="Mądre zabawki – pomysły na wartościową zabawę po szkole - Blog Trefl - zainspiruj się najlepszymi treściami ze świata zabawek"/>
6<meta name="robots" content="INDEX,FOLLOW"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<meta name="theme-color" content="#ce060d"/>
9<title>Mądre zabawki – pomysły na wartościową zabawę po szkole - Blog Trefl - zainspiruj się najlepszymi treściami ze świata zabawek</title>
10<link  rel="stylesheet" type="text/css"  media="all" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/css/styles.css" />
11<link rel="preload" as="font" crossorigin="anonymous" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/fonts/Montserrat/Montserrat-Regular.woff2" />
12<link rel="preload" as="font" crossorigin="anonymous" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/fonts/Montserrat/Montserrat-Medium.woff2" />
13<link rel="preload" as="font" crossorigin="anonymous" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/fonts/Montserrat/Montserrat-SemiBold.woff2" />
14<link rel="preload" as="font" crossorigin="anonymous" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/fonts/Montserrat/Montserrat-Bold.woff2" />
15<link  rel="icon" type="image/png" sizes="48x48" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/favicon-48x48.png" />
16<link  rel="apple-touch-icon" type="image/png" sizes="180x180" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/apple-touch-icon.png" />
17<link  rel="icon" type="image/png" sizes="192x192" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/web-app-manifest-192x192.png" />
18<link  rel="icon" type="image/png" sizes="512x512" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/web-app-manifest-512x512.png" />
19<link  rel="manifest" href="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/site.webmanifest" />
20<link  rel="canonical" href="https://www.trefl.com/blog/post/madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole" />
21<link  rel="icon" type="image/x-icon" href="https://www.trefl.com/media/favicon/stores/1/favicon.ico" />
22<link  rel="shortcut icon" type="image/x-icon" href="https://www.trefl.com/media/favicon/stores/1/favicon.ico" />
23<meta name="google-site-verification" content="uqHKypU0BhCxxqIH08N7ZxiHKfOOUJd43j7k3OjXpBQ" />
24
25<link rel="preconnect" href="https://www.googletagmanager.com">
26<link rel="preconnect" href="https://www.google-analytics.com">
27<link rel="preconnect" href="https://app.usercentrics.eu">
28<link rel="preconnect" href="https://app3.salesmanago.pl">
29<link rel="dns-prefetch" href="https://fonts.googleapis.com">
30<link rel="dns-prefetch" href="https://www.clarity.ms">
31
32<style>
33.catalog-product-view etrusted-widget {
34    display: none;
35}
36</style>    
37    <!-- BEGIN GOOGLE ANALYTICS CODE -->
38    
38<script type="text/x-magento-init">
39    {
40        "*": {
41            "BlueMedia_BluePayment/js/analytics/google-analytics": {
42                "pageTrackingData": {"isAnonymizedIpActive":false,"anonymizeIp":"UA-125499597-1"}            }
43        }
44    }
45    </script>
45
46    <!-- END GOOGLE ANALYTICS CODE -->
47
48<!-- Structured Data by outer/edge (https://outeredge.agency) -->
49<script type="application/ld+json" id="structured-data">
50{
51    "@context": "https://schema.org/",
52    "@type": "WebPage",
53    "publisher": {
54        "@type": "Organization",
55        "name": "Trefl S.A",
56        "url": "https://www.trefl.com/",
57        "logo": {
58            "@type": "ImageObject",
59            "url": "https://www.trefl.com/media/logo/stores/1/logo_small.png"
60        }
61    }
62        }
63</script>
63
64
65<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
66    window.YIREO_GOOGLETAGMANAGER2_ENABLED = true;
67    (function (events) {
68        const initYireoGoogleTagManager2 = function () {
69            events.forEach(function (eventType) {
70                window.removeEventListener(eventType, initYireoGoogleTagManager2);
71            });
72
73                        (function (w, d, s, l, i) {
74                w[l] = w[l] || [];
75                w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
76                var f = d.getElementsByTagName(s)[0],
77                    j = d.createElement(s),
78                    dl = l != 'dataLayer' ? '&l=' + l : '';
79                j.async = true;
80                j.src = 'https://www.googletagmanager.com' + '/gtm.js?id=' + i + dl;
81                f.parentNode.insertBefore(j, f);
82            })(window, document, 'script', 'dataLayer', 'GTM-PC39D52');
83                    }
84
85        events.forEach(function (eventType) {
86            window.addEventListener(eventType, initYireoGoogleTagManager2, {once: true, passive: true})
87        })
88    })(['load', 'keydown', 'mouseover', 'scroll', 'touchstart', 'wheel']);
89
90    </script>
vendor: 1 bytes, line 90
90
91<script>
92    var BASE_URL = 'https://www.trefl.com/';
93    var THEME_PATH = 'https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL';
94    var COOKIE_CONFIG = {
95        "expires": null,
96        "path": "\u002F",
97        "domain": ".www.trefl.com",
98        "secure": true,
99        "lifetime": "3600",
100        "cookie_restriction_enabled": false    };
101    var CURRENT_STORE_CODE = 'default';
102    var CURRENT_WEBSITE_ID = '1';
103
104    window.hyva = window.hyva || {}
105
106    window.cookie_consent_groups = window.cookie_consent_groups || {}
107    window.cookie_consent_groups['necessary'] = true;
108
109    window.cookie_consent_config = window.cookie_consent_config || {};
110    window.cookie_consent_config['necessary'] = [].concat(
111        window.cookie_consent_config['necessary'] || [],
112        [
113            'user_allowed_save_cookie',
114            'form_key',
115            'mage-messages',
116            'private_content_version',
117            'mage-cache-sessid',
118            'last_visited_store',
119            'section_data_ids'
120        ]
121    );
122</script>
vendor: 1 bytes, line 122
122
123<script>
124    'use strict';
125    (function( hyva, undefined ) {
126
127        function lifetimeToExpires(options, defaults) {
128
129            const lifetime = options.lifetime || defaults.lifetime;
130
131            if (lifetime) {
132                const date = new Date;
133                date.setTime(date.getTime() + lifetime * 1000);
134                return date;
135            }
136
137            return null;
138        }
139
140        function generateRandomString() {
141
142            const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
143                length = 16;
144
145            let formKey = '',
146                charactersLength = allowedCharacters.length;
147
148            for (let i = 0; i < length; i++) {
149                formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))]
150            }
151
152            return formKey;
153        }
154
155        const sessionCookieMarker = {noLifetime: true}
156
157        const cookieTempStorage = {};
158
159        const internalCookie = {
160            get(name) {
161                const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
162                return v ? v[2] : null;
163            },
164            set(name, value, days, skipSetDomain) {
165                let expires,
166                    path,
167                    domain,
168                    secure,
169                    samesite;
170
171                const defaultCookieConfig = {
172                    expires: null,
173                    path: '/',
174                    domain: null,
175                    secure: false,
176                    lifetime: null,
177                    samesite: 'lax'
178                };
179
180                const cookieConfig = window.COOKIE_CONFIG || {};
181
182                expires = days && days !== sessionCookieMarker
183                    ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig)
184                    : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires;
185
186                path = cookieConfig.path || defaultCookieConfig.path;
187                domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain);
188                secure = cookieConfig.secure || defaultCookieConfig.secure;
189                samesite = cookieConfig.samesite || defaultCookieConfig.samesite;
190
191                document.cookie = name + "=" + encodeURIComponent(value) +
192                    (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') +
193                    (path ? '; path=' + path : '') +
194                    (domain ? '; domain=' + domain : '') +
195                    (secure ? '; secure' : '') +
196                    (samesite ? '; samesite=' + samesite : 'lax');
197            },
198            isWebsiteAllowedToSaveCookie() {
199                const allowedCookies = this.get('user_allowed_save_cookie');
200                if (allowedCookies) {
201                    const allowedWebsites = JSON.parse(unescape(allowedCookies));
202
203                    return allowedWebsites[CURRENT_WEBSITE_ID] === 1;
204                }
205                return false;
206            },
207            getGroupByCookieName(name) {
208                const cookieConsentConfig = window.cookie_consent_config || {};
209                let group = null;
210                for (let prop in cookieConsentConfig) {
211                    if (!cookieConsentConfig.hasOwnProperty(prop)) continue;
212                    if (cookieConsentConfig[prop].includes(name)) {
213                        group = prop;
214                        break;
215                    }
216                }
217                return group;
218            },
219            isCookieAllowed(name) {
220                const cookieGroup = this.getGroupByCookieName(name);
221                return cookieGroup
222                    ? window.cookie_consent_groups[cookieGroup]
223                    : this.isWebsiteAllowedToSaveCookie();
224            },
225            saveTempStorageCookies() {
226                for (const [name, data] of Object.entries(cookieTempStorage)) {
227                    if (this.isCookieAllowed(name)) {
228                        this.set(name, data['value'], data['days'], data['skipSetDomain']);
229                        delete cookieTempStorage[name];
230                    }
231                }
232            }
233        };
234
235        hyva.getCookie = (name) => {
236            const cookieConfig = window.COOKIE_CONFIG || {};
237
238            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
239                return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null;
240            }
241
242            return internalCookie.get(name);
243        }
244
245        hyva.setCookie = (name, value, days, skipSetDomain) => {
246            const cookieConfig = window.COOKIE_CONFIG || {};
247
248            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
249                cookieTempStorage[name] = {value, days, skipSetDomain};
250                return;
251            }
252            return internalCookie.set(name, value, days, skipSetDomain);
253        }
254
255
256        hyva.setSessionCookie = (name, value, skipSetDomain) => {
257            return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain)
258        }
259
260        hyva.getBrowserStorage = () => {
261            const browserStorage = window.localStorage || window.sessionStorage;
262            if (!browserStorage) {
263                console.warn('Browser Storage is unavailable');
264                return false;
265            }
266            try {
267                browserStorage.setItem('storage_test', '1');
268                browserStorage.removeItem('storage_test');
269            } catch (error) {
270                console.warn('Browser Storage is not accessible', error);
271                return false;
272            }
273            return browserStorage;
274        }
275
276        hyva.postForm = (postParams) => {
277            const form = document.createElement("form");
278
279            let data = postParams.data;
280
281            if (! postParams.skipUenc && ! data.uenc) {
282                data.uenc = btoa(window.location.href);
283            }
284            form.method = "POST";
285            form.action = postParams.action;
286
287            Object.keys(postParams.data).map(key => {
288                const field = document.createElement("input");
289                field.type = 'hidden'
290                field.value = postParams.data[key];
291                field.name = key;
292                form.appendChild(field);
293            });
294
295            const form_key = document.createElement("input");
296            form_key.type = 'hidden';
297            form_key.value = hyva.getFormKey();
298            form_key.name="form_key";
299            form.appendChild(form_key);
300
301            document.body.appendChild(form);
302
303            form.submit();
304        }
305
306        hyva.getFormKey = function () {
307            let formKey = hyva.getCookie('form_key');
308
309            if (!formKey) {
310                formKey = generateRandomString();
311                hyva.setCookie('form_key', formKey);
312            }
313
314            return formKey;
315        }
316
317        hyva.formatPrice = (value, showSign, options = {}) => {
318            const groupSeparator = options.groupSeparator;
319            const decimalSeparator = options.decimalSeparator
320            delete options.groupSeparator;
321            delete options.decimalSeparator;
322            const formatter = new Intl.NumberFormat(
323                'pl\u002DPL',
324                Object.assign({
325                    style: 'currency',
326                    currency: 'PLN',
327                    signDisplay: showSign ? 'always' : 'auto'
328                }, options)
329            );
330            return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ?
331                formatter.formatToParts(value).map(({type, value}) => {
332                    switch (type) {
333                        case 'currency':
334                            return 'z\u0142' || value;
335                        case 'minusSign':
336                            return '- ';
337                        case 'plusSign':
338                            return '+ ';
339                        case 'group':
340                            return groupSeparator !== undefined ? groupSeparator : value;
341                        case 'decimal':
342                            return decimalSeparator !== undefined ? decimalSeparator : value;
343                        default :
344                            return value;
345                    }
346                }).reduce((string, part) => string + part) :
347                formatter.format(value);
348        }
349
350        const formatStr = function (str, nStart) {
351            const args = Array.from(arguments).slice(2);
352
353            return str.replace(/(%+)([0-9]+)/g, (m, p, n) => {
354                const idx = parseInt(n) - nStart;
355
356                if (args[idx] === null || args[idx] === void 0) {
357                    return m;
358                }
359                return p.length % 2
360                    ? p.slice(0, -1).replace('%%', '%') + args[idx]
361                    : p.replace('%%', '%') + n;
362            })
363        }
364
365        hyva.str = function (string) {
366            const args = Array.from(arguments);
367            args.splice(1, 0, 1);
368
369            return formatStr.apply(undefined, args);
370        }
371
372        hyva.strf = function () {
373            const args = Array.from(arguments);
374            args.splice(1, 0, 0);
375
376            return formatStr.apply(undefined, args);
377        }
378
379        /**
380         * Take a html string as `content` parameter and
381         * extract an element from the DOM to replace in
382         * the current page under the same selector,
383         * defined by `targetSelector`
384         */
385        hyva.replaceDomElement = (targetSelector, content) => {
386            // Parse the content and extract the DOM node using the `targetSelector`
387            const parser = new DOMParser();
388            const doc = parser.parseFromString(content, 'text/html');
389            const contentNode = doc.querySelector(targetSelector);
390
391            // Bail if content or target can't be found
392            if (!contentNode || !document.querySelector(targetSelector)) {
393                return;
394            }
395
396                        hyva.activateScripts(contentNode);
397            
398            // Replace the old DOM node with the new content
399            document.querySelector(targetSelector).replaceWith(contentNode);
400
401            // Reload customerSectionData and display cookie-messages if present
402            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
403            hyva.initMessages();
404        }
405
406        hyva.removeScripts = (contentNode) => {
407            const scripts = contentNode.getElementsByTagName('script');
408            for (let i = 0; i < scripts.length; i++) {
409                scripts[i].parentNode.removeChild(scripts[i]);
410            }
411            const templates = contentNode.getElementsByTagName('template');
412            for (let i = 0; i < templates.length; i++) {
413                const container = document.createElement('div');
414                container.innerHTML = templates[i].innerHTML;
415                hyva.removeScripts(container);
416                templates[i].innerHTML = container.innerHTML;
417            }
418        }
419
420        hyva.activateScripts = (contentNode) => {
421            // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM.
422            const scripts = Array.from(contentNode.getElementsByTagName('script'));
423
424            // Iterate over all script tags to duplicate+inject each into the head
425            for (const original of scripts) {
426                const script = document.createElement('script');
427                original.type && (script.type = original.type);
428                script.innerHTML = original.innerHTML;
429
430                // Remove the original (non-executing) script from the contentNode
431                original.parentNode.removeChild(original)
432
433                // Add script to head
434                document.head.appendChild(script);
435            }
436
437            return contentNode;
438        }
439
440        const replace = {['+']: '-', ['/']: '_', ['=']: ','};
441        hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]);
442
443        let currentTrap;
444
445        const focusableElements = (rootElement) => {
446            const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]';
447            return Array.from(rootElement.querySelectorAll(selector))
448                .filter(el => {
449                    return el.style.display !== 'none'
450                        && !el.disabled
451                        && el.tabIndex !== -1
452                        && (el.offsetWidth || el.offsetHeight || el.getClientRects().length)
453                })
454        }
455
456        const focusTrap = (e) => {
457            const isTabPressed = e.key === 'Tab' || e.keyCode === 9;
458            if (!isTabPressed) return;
459
460            const focusable = focusableElements(currentTrap)
461            const firstFocusableElement = focusable[0]
462            const lastFocusableElement = focusable[focusable.length - 1]
463
464            e.shiftKey
465                ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault())
466                : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault())
467        };
468
469        hyva.releaseFocus = (rootElement) => {
470            if (currentTrap && (!rootElement || rootElement === currentTrap)) {
471                currentTrap.removeEventListener('keydown', focusTrap)
472                currentTrap = null
473            }
474        }
475        hyva.trapFocus = (rootElement) => {
476            if (!rootElement) return;
477            hyva.releaseFocus()
478            currentTrap = rootElement
479            rootElement.addEventListener('keydown', focusTrap)
480            const firstElement = focusableElements(rootElement)[0]
481            firstElement && firstElement.focus()
482        }
483
484        hyva.safeParseNumber = (rawValue) => {
485            const number = rawValue ? parseFloat(rawValue) : null;
486
487            return Array.isArray(number) || isNaN(number) ? rawValue : number;
488        }
489
490        const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
491        hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => {
492
493            const camelCase = toCamelCase(name);
494            const key = '__hyva_bool_' + name
495
496            return new Proxy(Object.assign(
497                additionalMethods,
498                {
499                    [key]: !!value,
500                    [name]() {return !!this[key]},
501                    ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine
502                    ['not' + camelCase]() {return !this[key]},
503                    ['toggle' + camelCase]() {this[key] = !this[key]},
504                    [`set${camelCase}True`]() {this[key] = true},
505                    [`set${camelCase}False`]() {this[key] = false},
506                }
507            ), {
508                set(target, prop, value) {
509                    return prop === name
510                        ? (target[key] = !!value)
511                        : Reflect.set(...arguments);
512                }
513            })
514        }
515
516                hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true})
517        window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true});
518                window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies())
519
520    }( window.hyva = window.hyva || {} ));
521</script>
vendor: 1 bytes, line 521
521
522<script>
523    if (!window.IntersectionObserver) {
524        window.IntersectionObserver = function (callback) {
525            this.observe = el => el && callback(this.takeRecords());
526            this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}];
527            this.disconnect = () => {};
528            this.unobserve = () => {};
529        }
530    }
531</script>
531
532
533<script>
534    const setTransitionNameBetweenGallery = async (url, promise) => {
535        if (window.matchMedia('(prefers-reduced-motion)').matches) return;
536
537        const productGallery = document.getElementById('gallery');
538        const productListItem = document.querySelector(`.product-item-photo[href="${url}"]`);
539        const targetElement = productListItem
540            ? productListItem
541            : (productGallery ? productGallery.querySelector('img').parentNode : null);
542
543        if (targetElement) {
544            targetElement.style.viewTransitionName = 'view-transition-to-gallery';
545            await promise;
546            targetElement.style.viewTransitionName = '';
547        }
548    };
549
550    window.addEventListener('pageswap', async (e) => {
551        if (!e.viewTransition) return;
552        const targetUrl = new URL(e.activation.entry.url);
553        setTransitionNameBetweenGallery(targetUrl.href, e.viewTransition.finished);
554    });
555
556    window.addEventListener('pagereveal', async (e) => {
557        if (!e.viewTransition || !navigation.activation.from) return;
558        const fromUrl = new URL(navigation.activation.from.url);
559        // const entryURL = new URL(navigation.activation.entry.url);
560        setTransitionNameBetweenGallery(fromUrl.href, e.viewTransition.ready);
561    });
562</script>
562
563
564<style>
565    @view-transition {
566        navigation: auto;
567    }
568</style>
569<!--Open Graph Meta tags by Mageplaza-->
570<meta property="og:url"             content="https://www.trefl.com/blog/post/madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole" />
571<meta property="og:title"           content="Mądre zabawki – pomysły na wartościową zabawę po szkole" />
572<meta property="og:image"           content="https://www.trefl.com/media/mageplaza/blog/post/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg" />
573<meta property="og:description"    content="Szukasz mądrej zabawki dla dziecka? Poznaj gry, puzzle, klocki i pojazdy, które łączą dobrą zabawę z odkrywaniem, kreatywnością i rozwojem." />
574<!--End Open Graph Meta tags by Mageplaza-->
575</head>
576<body id="html-body" class="mpblog-post-view page-layout-1column">
577<a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 btn btn-primary
578contentarea"
579   href="#contentarea">
580    Przejdź do treści</a>
581
582
583
584<div id="notice-promo-block" style="background-color&#x3A;&#x23;360C68&#x3B;color&#x3A;&#x23;ffffff&#x3B;" class="w-full" aria-label="Komunikat">
585    <div class="container relative py-3 text-center leading-tight">
586        <a href="https&#x3A;&#x2F;&#x2F;www.trefl.com&#x2F;gry">            <span class="text-xs">⚄♙ <b style="color: #FFFE91">Wielkie święto planszówek!</b> <b>Dzień Gier Planszowych trwa u nas dłużej - z kodem</b> <b style="color: #FFFE91">GRY25</b> <b>do 11.10 wybrane</b> <b style="color: #FFFE91">gry kupisz 25% taniej!</b> ♙⚄
587</span>
588        </a>    </div>
589</div>
vendor: 68 bytes, lines 589-590
589
590<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
590GTM-PC39D52
vendor: 83 bytes, line 590
590" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
591<input name="form_key" type="hidden" value="tE92z8vSIBSZLmG6" />
592    <noscript>
593        <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal">
594            <div class="container text-center">
595                <p>
596                    <strong>Wygląda na to, że JavaScript jest wyłączony w twojej przeglądarce.</strong>
597                    <span>
598                        By w pełni cieszyć się naszą stroną, upewnij się, że włączyłeś JavaScript w swojej przeglądarce.                    </span>
599                </p>
600            </div>
601        </section>
602    </noscript>
603
604
605<script>
606    document.body.addEventListener('touchstart', () => {}, {passive: true})
607</script>
vendor: 1 bytes, line 607
607
608<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
609    function yireoGoogleTagManager2Pusher(eventData, message) {
610        window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS = window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS || [];
611
612        const copyEventData = Object.assign({}, eventData);
613        let metaData = {};
614        if (copyEventData.meta) {
615            metaData = copyEventData.meta;
616            delete copyEventData.meta;
617        }
618
619        const eventHash = btoa(encodeURIComponent(JSON.stringify(copyEventData)));
620        if (window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.includes(eventHash)) {
621            yireoGoogleTagManager2Logger('Warning: Event already triggered', eventData);
622            return;
623        }
624
625        if (metaData && metaData.allowed_pages && metaData.allowed_pages.length > 0
626            && false === metaData.allowed_pages.some(page => window.location.pathname.includes(page))) {
627            yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed pages', window.location.pathname, eventData);
628            return;
629        }
630
631        if (!message) {
632            message = 'push (unknown) [unknown]';
633        }
634
635        yireoGoogleTagManager2Logger(message, eventData);
636        window.dataLayer = window.dataLayer || [];
637
638        if (eventData.ecommerce) {
639            window.dataLayer.push({ecommerce: null});
640        }
641
642        window.dataLayer.push(eventData);
643        window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.push(eventHash);
644    }
645</script>
vendor: 1 bytes, line 645
645
646<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
647    function yireoGoogleTagManager2Logger(...args) {
648        const debug = window.YIREO_GOOGLETAGMANAGER2_DEBUG || false;
649        if (false === debug) {
650            return;
651        }
652
653        var color = 'gray';
654        if (args[0].toLowerCase().startsWith('push')) {
655            color = 'green';
656        }
657
658        if (args[0].toLowerCase().startsWith('warning')) {
659            color = 'orange';
660        }
661
662        var css = 'color:white; background-color:' + color + '; padding:1px;'
663        console.log('%cYireo_GoogleTagManager2', css, ...args);
664    }
665</script>
665
666
667<script>
668    'use strict';
669    (function(hyva) {
670                const formValidationRules = {
671            required(value, options, field, context) {
672                const el = field.element.type === 'hidden' ? createTextInputFrom(field.element) : field.element,
673                    msg = 'To\u0020jest\u0020wymagane\u0020pole.';
674
675                if (el.type === 'radio' || el.type === 'checkbox') {
676                    return (value === undefined || value.length === 0) ? msg : true;
677                }
678
679                el.setAttribute('required', '');
680                el.checkValidity();
681
682                return el.validity.valueMissing ? msg : true;
683            },
684            maxlength(value, options, field, context) {
685                const n = Number(options)
686                if (value.length > n) {
687                    return n === 1
688                        ? hyva.strf('Please\u0020enter\u0020no\u0020more\u0020than\u00201\u0020character.')
689                        : hyva.strf('Please\u0020enter\u0020no\u0020more\u0020than\u0020\u00250\u0020characters.', options)
690                }
691                return true;
692            },
693            minlength(value, options, field, context) {
694                const n = Number(options)
695                if (value.length > 0 && value.length < n) {
696                    return n === 1
697                        ? hyva.strf('Minimalna\u0020ilo\u015B\u0107\u0020znak\u00F3w\u0020to\u00201.')
698                        : hyva.strf('Minimalna\u0020ilo\u015B\u0107\u0020znak\u00F3w\u0020to\u0020\u00250.', options)
699                }
700                return true;
701            },
702            max(value, options, field, context) {
703                field.element.setAttribute('max', options);
704                field.element.checkValidity();
705                if (field.element.validity.rangeOverflow) {
706                    return hyva.strf('Please\u0020enter\u0020a\u0020value\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options);
707                }
708                return true;
709            },
710            min(value, options, field, context) {
711                field.element.setAttribute('min', options);
712                field.element.checkValidity();
713                if (field.element.validity.rangeUnderflow) {
714                    return hyva.strf('Please\u0020enter\u0020a\u0020value\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options);
715                }
716                return true;
717            },
718            step(value, options, field, context) {
719                field.element.setAttribute('step', options);
720                field.element.checkValidity();
721                if (field.element.validity.stepMismatch) {
722                    const val = Number(value);
723                    const step = Number(options);
724                    const msg = 'Please\u0020enter\u0020a\u0020valid\u0020value.\u0020The\u0020two\u0020nearest\u0020valid\u0020values\u0020are\u0020\u0022\u00250\u0022\u0020and\u0020\u0022\u00251\u0022.';
725                    return hyva.strf(msg, Math.floor(val / step) * step, Math.ceil(val / step) * step);
726                }
727                return true;
728            },
729            pattern(value, options, field, context) {
730                field.element.setAttribute('pattern', options);
731                field.element.checkValidity();
732                if (field.element.validity.patternMismatch) {
733                    return field.element.title
734                        ? hyva.strf('Please\u0020match\u0020the\u0020requested\u0020format\u003A\u0020\u00250.', field.element.title)
735                        : 'Please\u0020match\u0020the\u0020requested\u0020format.'
736                }
737                return true;
738            },
739            email(value, options, field, context) {
740                                const rule = /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i;
741                if (value.length > 0 && !rule.test(value)) {
742                    return 'Prosimy\u0020wpisa\u0107\u0020poprawny\u0020adres\u0020e\u002Dmail';
743                }
744                return true;
745            },
746            password(value, options, field, context) {
747                const rule = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;
748                if (value.length > 0 && !rule.test(value)) {
749                    return 'Please\u0020provide\u0020at\u0020least\u0020one\u0020upper\u0020case,\u0020one\u0020lower\u0020case,\u0020one\u0020digit\u0020and\u0020one\u0020special\u0020character\u0020\u0028\u0023\u003F\u0021\u0040\u0024\u0025\u005E\u0026\u002A\u002D\u0029';
750                }
751                return true;
752            },
753            equalTo(value, options, field, context) {
754                const dependencyField = context.fields[options].element;
755                if (value !== dependencyField.value) {
756                    const dependencyFieldName =
757                        dependencyField.label ||
758                        dependencyField.title ||
759                        (dependencyField.labels && dependencyField.labels[0] && dependencyField.labels[0].innerText) ||
760                        dependencyField.name;
761                    return hyva.strf('Warto\u015B\u0107\u0020tego\u0020pola\u0020musi\u0020by\u0107\u0020taka\u0020sama\u0020jak\u0020\u0022\u00250\u0022.', dependencyFieldName);
762                }
763                return true;
764            }
765        };
766
767                function raceSome(promises, pred) {
768            return new Promise((resolve, reject) => {
769
770                if (promises.length === 0) {
771                    return resolve();
772                }
773
774                let settled = false, nDone = 0;
775
776                const resolveIf = v => {
777                    if (!settled && (pred(v) || ++nDone === promises.length)) {
778                        settled = true;
779                        resolve(v);
780                    }
781                    return v;
782                }
783
784                promises.map(promise => {
785                    promise.then(resolveIf).catch(reason => {
786                        settled = true;
787                        reject(reason)
788                    });
789                    return promise;
790                });
791            });
792        }
793
794        const INPUT_ATTRIBUTE_RULES = {min: 'min', max: 'max', required: 'required', minlength: 'minlength', maxlength: 'maxlength', step: 'step', pattern: 'pattern'}
795        const INPUT_TYPE_RULES = {email: 'email'}
796
797        function getRules(element) {
798            let rules = {};
799            Object.keys(INPUT_ATTRIBUTE_RULES).forEach(attrName => {
800                if (element.hasAttribute(attrName)) {
801                    rules[INPUT_ATTRIBUTE_RULES[attrName]] = element.getAttribute(attrName);
802                }
803            })
804            if (INPUT_TYPE_RULES[element.type]) {
805                rules[INPUT_TYPE_RULES[element.type]] = true;
806            }
807
808            if (element.dataset.validate) {
809                try {
810                    Object.assign(rules, JSON.parse(element.dataset.validate));
811                } catch (error) {
812                    console.error('Validator error. Cannot parse data-validate attribute of element:\n', element);
813                }
814            }
815
816            return rules;
817        }
818
819        function isInvalidRuleResult(ruleState) {
820            return typeof ruleState === 'string' || !ruleState || (ruleState.type && ruleState.content);
821        }
822
823        async function runValidateFn(rule, options, value, field) {
824            return formValidationRules[rule](value, options, field, this);
825        }
826
827        function generateId() {
828            let id;
829            do {
830                id = `${this.idPrefix}-${++this.idSeq}`;
831            } while (document.getElementById(id));
832            return id;
833        }
834
835        function isVisible(element) {
836            const el = element.type !== 'hidden' ? element : (element.parentElement || {});
837            return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)
838        }
839
840        function elementWillValidate(element) {
841            return (element.willValidate || element.type === 'hidden')
842                && element.tagName !== 'BUTTON'
843                && element.disabled === false
844                && !(element.tagName === 'INPUT' && element.type === 'submit')
845                && (element.hasAttribute('data-validate-hidden') || isVisible(element))
846        }
847
848        function createMessageContainer(el, fieldWrapperClassName) {
849            if (! el.parentElement) {
850                return;
851            }
852            const refocus = document.activeElement === el;
853            const wrapper = document.createElement('div');
854            wrapper.classList.add.apply(wrapper.classList, fieldWrapperClassName.split(' '));
855            el.parentElement.insertBefore(wrapper, el);
856            wrapper.appendChild(el);
857            refocus && document.activeElement !== el && el.focus();
858            return wrapper;
859        }
860
861        function containerNotFound(selector, el) {
862            const msg = `Cannot find message container element ${selector} of ${el.name}`;
863            console.error(msg, el);
864            throw msg;
865        }
866
867        function createTextInputFrom(el) {
868            const text = document.createElement('INPUT');
869            text.type = 'text';
870            text.value = el.value;
871            return text;
872        }
873
874        function classNamesToSelector(classNames) {
875            return classNames.split(' ')
876                .filter(className => className.length > 0)
877                .map(className => `.${className}`)
878                .join('')
879        }
880
881        function hasMessagesWrapper(field, messagesWrapperClassName) {
882            return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName));
883        }
884
885        function getMessagesWrapper(field, messagesWrapperClassName) {
886            if (hasMessagesWrapper.call(this, field, messagesWrapperClassName)) {
887                return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName));
888            }
889
890            const msgWrapper = document.createElement('ul');
891            const msgId = generateId.call(this);
892            msgWrapper.id = msgId;
893            field.element.setAttribute('aria-errormessage', msgId);
894            field.element.setAttribute('aria-describedby', msgId);
895            msgWrapper.classList.add.apply(msgWrapper.classList, messagesWrapperClassName.split(' '));
896            if (field.validateOnChange) {
897                msgWrapper.setAttribute('aria-live', 'polite');
898            }
899            this.getMessageContainer(field).appendChild(msgWrapper);
900
901            return msgWrapper;
902        }
903
904        function getCheckedValues(field) {
905            const name = field.element.name.replace(/([\\"])/g, '\\$1');
906            const elements = field.element.form.querySelectorAll('input[name="' + name + '"]:checked');
907            return Array.from(elements).map(el => el.value);
908        }
909
910        function escapeHtml(s) {
911            const div = document.createElement('div')
912            div.innerText = s;
913            return div.innerHTML;
914        }
915
916        
917        function formValidation(form, options = {}) {
918            const formElement = form || this.$el;
919
920            if (formElement.dataset && formElement.dataset.options) {
921                try {
922                    options = Object.assign(options, JSON.parse(formElement.dataset.options || '{}'));
923                } catch (e) {
924                    throw new Error('Cannot read the form options from the data-options attribute: not val
924id JSON');
925                }
926            }
927
928            // Disable browser default validation
929            if (formElement.tagName === 'FORM') {
930                formElement.setAttribute('novalidate', '');
931            } else {
932                console.error('formValidation can be initialized only on FORM element', formElement);
933                return;
934            }
935
936            options = Object.assign({
937                fieldWrapperClassName: 'field field-reserved',
938                messagesWrapperClassName: 'messages',
939                validClassName: 'field-success',
940                invalidClassName: 'field-error',
941                pageMessagesWrapperSelector: null,
942                scrollToFirstError: true,
943            }, options || {});
944
945            return {
946                state: {
947                    valid: false,
948                },
949                fields: {},
950                idSeq: 0,
951                idPrefix: formElement.id || 'vld-msg',
952                setupFields(elements) {
953                    this.fields = {};
954                    Array.from(elements).forEach(element => {
955                        if (elementWillValidate(element)) {
956                            this.setupField(element);
957                        }
958                    });
959                },
960                setupField(element) {
961                    if (! element) return;
962                    const onChange = !!element.dataset.onChange;
963                    if (elementWillValidate(element)) {
964                        const rules = getRules(element);
965                        if (Object.keys(rules).length > 0) {
966                            if (this.fields[element.name]) {
967                                Object.assign(this.fields[element.name].rules, rules);
968                            } else {
969                                this.fields[element.name] = {
970                                    element,
971                                    rules: rules,
972                                    validateOnChange: onChange,
973                                    state: {
974                                        valid: null,
975                                        rules: {}
976                                    }
977                                }
978                            }
979                        }
980                    } else {
981                        console.error('Element will not validate', element);
982                    }
983                },
984                onSubmit(event) {
985                    if (event.target.tagName === 'FORM') {
986                        event.preventDefault();
987
988                        this.validate()
989                            .then(() => event.target.submit())
990                            .catch(invalidElements => {});
991                    }
992                },
993                onChange(event) {
994                    event.target.dataset.onChange = 'true';
995                    if (!Object.keys(this.fields).length) {
996                        this.setupFields(formElement.elements);
997                    }
998                    if (!Object.keys(this.fields).includes(event.target.name)) {
999                        this.setupField(event.target);
1000                    }
1001                    const field = this.fields[event.target.name];
1002
1003                    this.validateField(field);
1004                    field && field.element.removeAttribute('data-on-change')
1005                },
1006                validateSafe() {
1007                    return new Promise(resolve => this.validate().then(() => resolve(true)).catch(() => {}))
1008                },
1009                validate() {
1010                    if (!Object.keys(this.fields).length || !Object.keys(this.fields).length !== formElement.elements.length) {
1011                        this.setupFields(formElement.elements);
1012                    }
1013                    return new Promise(async (resolve, reject) => {
1014                        if (formElement.elements) {
1015                                                        await raceSome(this.validateFields(), result => result !== true)
1016                            const invalidFields = Object.values(this.fields).filter(field => !field.state.valid);
1017                            this.state.valid = invalidFields.length === 0;
1018                            if (this.state.valid) {
1019                                resolve();
1020                            } else {
1021                                if (options.scrollToFirstError && invalidFields.length > 0) {
1022                                    invalidFields[0].element.focus()
1023                                    invalidFields[0].element.select && invalidFields[0].element.select();
1024                                }
1025                                reject(invalidFields.map(field => field.element));
1026                            }
1027                        }
1028                    });
1029                },
1030                                validateFields() {
1031                    const fields = Object.values(this.fields);
1032
1033                                        fields.forEach(field => {
1034                        this.getMessageContainer(field).classList.remove(options.validClassName, options.invalidClassName)
1035                    });
1036                                        return fields.map(field => this.validateField(field))
1037                },
1038                                validateField(field) {
1039                                        if (! field || ! elementWillValidate(field.element)) {
1040                        return new Promise(resolve => resolve(true))
1041                    }
1042
1043                    let value;
1044                    if (field.element.type === 'checkbox') {
1045                        value = getCheckedValues(field);
1046                    } else if (field.element.type === 'radio') {
1047                        value = getCheckedValues(field)[0] || undefined;
1048                    } else if (field.element.tagName === 'SELECT' && field.element.multiple) {
1049                        value = Array.from(field.element.selectedOptions).map(opt => opt.value);
1050                    } else {
1051                        value = field.element.value;
1052                    }
1053
1054                    const rules = field.rules || {};
1055
1056                                        field.state.valid = true;
1057                    this.showFieldState(field);
1058
1059                
1060                                        const fieldValidations = Object.keys(rules).filter(rule => formValidationRules[rule]).map(async rule => {
1061                        return runValidateFn.call(this, rule, rules[rule], value, field).then(result => {
1062                            field.state.rules[rule] = result;
1063                            return result;
1064                        })
1065                    });
1066
1067                    return new Promise(resolve => {
1068                                                Promise.all(fieldValidations).then(results => {
1069                                                                                    field.state.valid = !elementWillValidate(field.element) || rules.length === 0 || !results.some(isInvalidRuleResult)
1070                            this.showFieldState(field);
1071                            resolve(field.state.valid);
1072                        })
1073                    });
1074                },
1075                                getMessagesByField(field) {
1076                    const messages = [];
1077                    const invalidRules = Object.keys(field.state.rules).filter(rule => isInvalidRuleResult(field.state.rules[rule]));
1078
1079                    field.rules && Object.keys(field.rules).forEach((rule) => {
1080                        if (invalidRules.includes(rule)) {
1081                            const customMessage = field.element.getAttribute('data-msg-' + rule);
1082                            const message = customMessage ? customMessage : field.state.rules[rule];
1083                            const ruleOptions = JSON.parse(JSON.stringify(field.rules[rule]));
1084
1085                            if (typeof message === 'undefined' || message === null || (typeof message !== 'string' && ! message.type)) {
1086                                messages.push(hyva.strf('Validation rule "%0" failed.', rule));
1087                            } else if (Array.isArray(ruleOptions)) {
1088                                ruleOptions.unshift(message.type ? message.content : message);
1089                                const content = hyva.strf.apply(null, ruleOptions);
1090                                messages.push(message.type ? {type: message.type, content} : content);
1091                            } else {
1092                                const content = hyva.strf(message.type ? message.content : message, ruleOptions)
1093                                messages.push(message.type ? {type: message.type, content} : content);
1094                            }
1095                        }
1096                    });
1097                    return messages;
1098                },
1099                /** @deprecated */
1100                getFieldWrapper(field) {
1101                                        return this.getMessageContainer(field)
1102                },
1103                getMessageContainer(field) {
1104                    let container;
1105                    const pageSelector = field.element.getAttribute('data-validation-container') || options.pageMessagesContainerSelector;
1106                    if (pageSelector) {
1107                        container = document.querySelector(pageSelector)
1108                            || containerNotFound(pageSelector, field.element)
1109                    } else {
1110                        const containerSelector = classNamesToSelector(options.fieldWrapperClassName);
1111                        container = field.element.closest(containerSelector)
1112                            || createMessageContainer(field.element, options.fieldWrapperClassName)
1113                            || containerNotFound(containerSelector, field.element);
1114                    }
1115
1116                    return container;
1117                },
1118                showFieldState(field) {
1119                    const container = this.getMessageContainer(field),
1120                        hasErrorMessages = hasMessagesWrapper.call(this, field, options.messagesWrapperClassName),
1121                        messages = this.getMessagesByField(field).map(m => {
1122                            return m.type !== 'html' ? escapeHtml(m.type ? m.content : m) : m.content;
1123                        });
1124                    container.classList.toggle(options.validClassName, field.state.valid && ! hasErrorMessages);
1125                    container.classList.toggle(options.invalidClassName, !field.state.valid || hasErrorMessages);
1126                    this.createHtmlErrorMessage(field, messages);
1127
1128                    if (field.state.valid) {
1129                        field.element.removeAttribute('aria-invalid');
1130                    } else {
1131                        field.element.setAttribute('aria-invalid', 'true');
1132                        if (! document.activeElement) {
1133                            field.element.focus();
1134                        }
1135                    }
1136                },
1137                removeMessages(field, messagesClass) {
1138                    if (! hasMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName)) {
1139                        return;
1140                    }
1141
1142                    const msgWrapper = getMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName);
1143                    const messages = msgWrapper.querySelectorAll(`[data-msg-field='${field.element.name}']`);
1144                    Array.from(messages).forEach(msg => msg.remove());
1145                    if (msgWrapper && msgWrapper.childElementCount === 0) {
1146                        field.element.removeAttribute('aria-errormessage');
1147                        field.element.removeAttribute('aria-describedby');
1148                        msgWrapper.remove();
1149                    }
1150                },
1151                createErrorMessage(field, messages) {
1152                    const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml)
1153                    this.createHtmlErrorMessage(field, htmlMessages);
1154                },
1155                createHtmlErrorMessage(field, messages) {
1156                    this.removeMessages(field, options.messagesWrapperClassName);
1157                    field.element.removeAttribute('aria-errormessage');
1158                    field.element.removeAttribute('aria-describedby');
1159
1160                    if (!field.state.valid) {
1161                        const msgWrapper = this.addHtmlMessages(field, options.messagesWrapperClassName, messages);
1162                        field.element.setAttribute('aria-errormessage', msgWrapper.id);
1163                        field.element.setAttribute('aria-describedby', msgWrapper.id);
1164                    }
1165                },
1166                /** @deprecated */
1167                createMessage(field, message) {
1168                                        return this.addMessages(field, options.messagesWrapperClassName, message);
1169                },
1170                addMessages(field, messagesClass, messages) {
1171                    const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml)
1172                    return this.addHtmlMessages(field, messagesClass, htmlMessages);
1173                },
1174                addHtmlMessages(field, messagesClass, htmlMessages) {
1175                    const msgWrapper = getMessagesWrapper.call(this, field, messagesClass);
1176
1177                    (Array.isArray(htmlMessages) ? htmlMessages : [htmlMessages]).forEach((htmlMessage) => {
1178                        const li = document.createElement('li');
1179                        li.innerHTML = htmlMessage;
1180                        li.setAttribute('data-msg-field', field.element.name);
1181                        msgWrapper.appendChild(li);
1182                    });
1183
1184                    return msgWrapper;
1185                },
1186                setField(name, value) {
1187                    this.fields[name].element.value = value;
1188                    this.fields[name].element.dispatchEvent((new Event('input')));
1189                    this.validateField(this.fields[name]);
1190                }
1191            }
1192        }
1193
1194        hyva.formValidation = formValidation;
1195        hyva.formValidation.rules = formValidationRules;
1196        hyva.formValidation.setInputAttributeRuleName = (attrName, ruleName) => INPUT_ATTRIBUTE_RULES[attrName] = ruleName || attrName;
1197        hyva.formValidation.setInputTypeRuleName = (typeName, ruleName) => INPUT_TYPE_RULES[typeName] = ruleName || typeName;
1198        hyva.formValidation.addRule = (name, validator) => formValidationRules[name] = validator;
1199    }(window.hyva = window.hyva || {}));
1200
1201    window.addEventListener('alpine:init', () => {
1202        Alpine.data('hyva.formValidation', hyva.formValidation);
1203        Alpine.data('hyva.formValidation($el)', hyva.formValidation);
1204    }, {once: true});
1205</script>
1205
1206<div class="page-wrapper"><header class="page-header">
1207
1208<div class="bg-header-top py-3 md:py-5">
1209    <div class="container header-container px-3 lg:px-6 flex justify-between items-center">
1210        <ul class="social-menu">
1211                    <li>
1212            <a href="https://www.facebook.com/Trefl.toys/"
1213                                  title="Przejdź na Trefl Facebook"
1214                               target="_blank"                class="text-header-top"
1215            >
1216                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 1.5A2.5 2.5 0 0 0 1.5 4v6.003A2.497 2.497 0 0 0 3.997 12.5h6.006a2.497 2.497 0 0 0 2.497-2.497V3.997A2.497 2.497 0 0 0 10.003 1.5H4Zm0-1A3.5 3.5 0 0 0 .5 4v6.003A3.497 3.497 0 0 0 3.997 13.5h6.006a3.497 3.497 0 0 0 3.497-3.497V3.997A3.498 3.498 0 0 0 10.003.5H4Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5.9 7.6a.5.5 0 0 1 .5-.5H10a.5.5 0 0 1 0 1H6.4a.5.5 0 0 1-.5-.5Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.765 4.765A2.27 2.27 0 0 1 9.37 4.1H10a.5.5 0 0 1 0 1h-.63A1.27 1.27 0 0 0 8.1 6.37V13a.5.5 0 0 1-1 0V6.37c0-.602.24-1.18.665-1.605Z" fill="currentColor"/></svg>
1217            </a>
1218        </li>
1219                    <li>
1220            <a href="https://pl.linkedin.com/company/trefl-s-a-"
1221                                  title="Przejdź na Trefl LinkedIn"
1222                               target="_blank"                class="text-header-top"
1223            >
1224                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 1.5A2.5 2.5 0 0 0 1.5 4v6.003A2.497 2.497 0 0 0 3.997 12.5h6.006a2.497 2.497 0 0 0 2.497-2.497V3.997A2.497 2.497 0 0 0 10.003 1.5H4Zm0-1A3.5 3.5 0 0 0 .5 4v6.003A3.497 3.497 0 0 0 3.997 13.5h6.006a3.497 3.497 0 0 0 3.497-3.497V3.997A3.498 3.498 0 0 0 10.003.5H4Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M4.413 5.9a.5.5 0 0 1 .5.5V10a.5.5 0 1 1-1 0V6.4a.5.5 0 0 1 .5-.5ZM8.313 6.9a1 1 0 0 0-1 1V10a.5.5 0 1 1-1 0V7.9a2 2 0 1 1 4 0V10a.5.5 0 1 1-1 0V7.9a1 1 0 0 0-1-1ZM4.41 3.725a.65.65 0 1 1 .006 1.3.65.65 0 0 1-.006-1.3Z" fill="currentColor"/></svg>
1225            </a>
1226        </li>
1227                    <li>
1228            <a href="mailto:[email protected]"
1229                                  title="Wyślij e-mail na [email protected]"
1230                               target="_blank"                class="text-header-top"
1231            >
1232                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.545 10.183h10.91c.056 0 .1-.047.1-.104V1.922a.103.103 0 0 0-.1-.105H1.544c-.055 0-.1.047-.1.105v8.157a.103.103 0 0 0 .062.096.099.099 0 0 0 .038.008Zm0 1.15h10.91c.669 0 1.212-.561 1.212-1.254V1.922c0-.693-.543-1.255-1.213-1.255H1.545C.876.667.333 1.229.333 1.922v8.157a1.293 1.293 0 0 0 .355.887 1.176 1.176 0 0 0 .857.367Z" fill="currentColor"/><path d="m1.08 2.05 5.129 3.669a1.333 1.333 0 0 0 1.55.001l5.158-3.68" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
1233            </a>
1234        </li>
1235    </ul>        <ul class="header-top-links-menu list-none text-xs md:text-header-top gap-2 flex flex-wrap items-center"
1236    role="menubar"
1237    aria-orientation="horizontal"
1238>
1239                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1240            x-data="topMenu_575()"
1241            role="menuitem"
1242            @keydown.escape="toggleSubmenu('575', false, $event)"
1243            @pointerenter="toggleSubmenu('575', true, $event)"
1244            @pointerleave="toggleSubmenu('575', false, $event)"
1245        >
1246            <button aria-haspopup="menu"
1247                    aria-controls="top-links-5756abd94b83c75b"
1248                    id="top-links-575"
1249                    class="flex items-center gap-1"
1250                    x-ref="button"
1251                    @click.prevent.stop="toggleSubmenu('575', null, $event)"
1252                    @keydown.space.prevent="toggleSubmenu('575', null, $event)"
1253                    @keydown.enter.prevent="toggleSubmenu('575', null, $event)"
1254                    aria-label="Otwórz menu Oferta&#x20;B2B"
1255                    :aria-pressed="openSubmenuId === '575'"
1256                    :aria-expanded="openSubmenuId === '575'">
1257                Oferta B2B                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
1258  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
1259</svg>
1260            </button>
1261            <ul role="menubar"
1262                aria-orientation="vertical"
1263                aria-labelledby="top-links575"
1264                id="top-links5756abd94b83c75b"
1265                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
1266                :class="openSubmenuId === '575' ? 'z-40' : ''"
1267                x-cloak
1268            >
1269                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1270                            <a
1271        href="https://b2b.trefl.com/"
1272        data-menu="menu-576" class="__inner-link"    >
1273        Platforma zamówień hurtowych    </a>
1274
1275                    </li>
1276                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1277                            <a
1278        href="https://factory.trefl.com/"
1279        data-menu="menu-577" class="__inner-link"    >
1280        Produkty na zlecenie - Trefl Factory    </a>
1281
1282                    </li>
1283                            </ul>
1284        </li>
1285        
1285<script>
1286            function topMenu_575() {
1287                return {
1288                    openSubmenuId: null,
1289                    toggleSubmenu(id, state, event) {
1290                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1291
1292                        if (state === true) {
1293                            this.openSubmenuId = id;
1294                        } else if (state === false) {
1295                            this.openSubmenuId = null;
1296                        } else {
1297                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1298                        }
1299
1300                        if (this.openSubmenuId) {
1301                            const submenu = document.getElementById('top-links' + id);
1302                            if (submenu && !doNotFocus) {
1303                                const firstChild = submenu.querySelector('li a');
1304                                if (firstChild) {
1305                                    setTimeout(() => {
1306                                        firstChild.focus({ focusVisible: true });
1307                                    }, 0);
1308                                }
1309                            }
1310
1311                            this.$refs.button.setAttribute(
1312                                'aria-label',
1313                                'Zamknij menu Oferta&#x20;B2B'
1314                            );
1315                        } else {
1316                            const button = document.getElementById('top-links-' + id);
1317                            if (button && !doNotFocus) {
1318                                button.focus({ focusVisible: true });
1319                            }
1320
1321                            this.$refs.button.setAttribute(
1322                                'aria-label',
1323                                'Otwórz menu Oferta&#x20;B2B'
1324                            );
1325                        }
1326                    },
1327                };
1328            }
1329        </script>
1329
1330                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1331                            <li class="header-top-links-menu__item" role="menuitem">
1332<a
1333    href="https://www.trefl.com/grupa-trefl"
1334    class="__link"
1335     data-menu="menu-183">
1336    Grupa Trefl</a>
1337</li>
1338                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1339                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1340            x-data="topMenu_400()"
1341            role="menuitem"
1342            @keydown.escape="toggleSubmenu('400', false, $event)"
1343            @pointerenter="toggleSubmenu('400', true, $event)"
1344            @pointerleave="toggleSubmenu('400', false, $event)"
1345        >
1346            <button aria-haspopup="menu"
1347                    aria-controls="top-links-4006abd94b83c75b"
1348                    id="top-links-400"
1349                    class="flex items-center gap-1"
1350                    x-ref="button"
1351                    @click.prevent.stop="toggleSubmenu('400', null, $event)"
1352                    @keydown.space.prevent="toggleSubmenu('400', null, $event)"
1353                    @keydown.enter.prevent="toggleSubmenu('400', null, $event)"
1354                    aria-label="Otwórz menu ESG"
1355                    :aria-pressed="openSubmenuId === '400'"
1356                    :aria-expanded="openSubmenuId === '400'">
1357                ESG                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
1358  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
1359</svg>
1360            </button>
1361            <ul role="menubar"
1362                aria-orientation="vertical"
1363                aria-labelledby="top-links400"
1364                id="top-links4006abd94b83c75b"
1365                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
1366                :class="openSubmenuId === '400' ? 'z-40' : ''"
1367                x-cloak
1368            >
1369                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1370                            <a
1371        href="https://www.trefl.com/zrownowazony-rozwoj"
1372        data-menu="menu-401" class="__inner-link"    >
1373        Zrównoważony rozwój    </a>
1374
1375                    </li>
1376                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1377                            <a
1378        href="https://www.trefl.com/zrownowazony-rozwoj/srodowisko"
1379        data-menu="menu-582" class="__inner-link"    >
1380        Środowisko    </a>
1381
1382                    </li>
1383                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1384                            <a
1385        href="https://www.trefl.com/zielona-strona-trefla"
1386        data-menu="menu-402" class="__inner-link"    >
1387        Zielona Strona Trefla    </a>
1388
1389                    </li>
1390                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1391                            <a
1392        href="https://www.trefl.com/zrownowazony-rozwoj/dokumenty"
1393        data-menu="menu-403" class="__inner-link"    >
1394        Dokumenty    </a>
1395
1396                    </li>
1397                            </ul>
1398        </li>
1399        
1399<script>
1400            function topMenu_400() {
1401                return {
1402                    openSubmenuId: null,
1403                    toggleSubmenu(id, state, event) {
1404                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1405
1406                        if (state === true) {
1407                            this.openSubmenuId = id;
1408                        } else if (state === false) {
1409                            this.openSubmenuId = null;
1410                        } else {
1411                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1412                        }
1413
1414                        if (this.openSubmenuId) {
1415                            const submenu = document.getElementById('top-links' + id);
1416                            if (submenu && !doNotFocus) {
1417                                const firstChild = submenu.querySelector('li a');
1418                                if (firstChild) {
1419                                    setTimeout(() => {
1420                                        firstChild.focus({ focusVisible: true });
1421                                    }, 0);
1422                                }
1423                            }
1424
1425                            this.$refs.button.setAttribute(
1426                                'aria-label',
1427                                'Zamknij menu ESG'
1428                            );
1429                        } else {
1430                            const button = document.getElementById('top-links-' + id);
1431                            if (button && !doNotFocus) {
1432                                button.focus({ focusVisible: true });
1433                            }
1434
1435                            this.$refs.button.setAttribute(
1436                                'aria-label',
1437                                'Otwórz menu ESG'
1438                            );
1439                        }
1440                    },
1441                };
1442            }
1443        </script>
1443
1444                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1445                            <li class="header-top-links-menu__item" role="menuitem">
1446<a
1447    href="https://www.trefl.com/kariera"
1448    class="__link"
1449     data-menu="menu-615">
1450    Kariera</a>
1451</li>
1452                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1453                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1454            x-data="topMenu_184()"
1455            role="menuitem"
1456            @keydown.escape="toggleSubmenu('184', false, $event)"
1457            @pointerenter="toggleSubmenu('184', true, $event)"
1458            @pointerleave="toggleSubmenu('184', false, $event)"
1459        >
1460            <button aria-haspopup="menu"
1461                    aria-controls="top-links-1846abd94b83c75b"
1462                    id="top-links-184"
1463                    class="flex items-center gap-1"
1464                    x-ref="button"
1465                    @click.prevent.stop="toggleSubmenu('184', null, $event)"
1466                    @keydown.space.prevent="toggleSubmenu('184', null, $event)"
1467                    @keydown.enter.prevent="toggleSubmenu('184', null, $event)"
1468                    aria-label="Otwórz menu eGames"
1469                    :aria-pressed="openSubmenuId === '184'"
1470                    :aria-expanded="openSubmenuId === '184'">
1471                eGames                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
1472  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
1473</svg>
1474            </button>
1475            <ul role="menubar"
1476                aria-orientation="vertical"
1477                aria-labelledby="top-links184"
1478                id="top-links1846abd94b83c75b"
1479                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
1480                :class="openSubmenuId === '184' ? 'z-40' : ''"
1481                x-cloak
1482            >
1483                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1484                            <a
1485        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
1486        data-menu="menu-620" class="__inner-link" target="_blank" rel="noopener"    >
1487        Treflandia na Roblox    </a>
1488
1489                    </li>
1490                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1491                            <a
1492        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
1493        data-menu="menu-621" class="__inner-link" target="_blank" rel="noopener"    >
1494        Gry na Nintendo    </a>
1495
1496                    </li>
1497                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1498                            <a
1499        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
1500        data-menu="menu-622" class="__inner-link" target="_blank" rel="noopener"    >
1501        Gry na PC (Steam)    </a>
1502
1503                    </li>
1504                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1505                            <a
1506        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
1507        data-menu="menu-623" class="__inner-link" target="_blank" rel="noopener"    >
1508        Gry mobilne (Apple IOS)    </a>
1509
1510                    </li>
1511                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1512                            <a
1513        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
1514        data-menu="menu-624" class="__inner-link" target="_blank" rel="noopener"    >
1515        Gry mobilne (Android)    </a>
1516
1517                    </li>
1518                            </ul>
1519        </li>
1520        
1520<script>
1521            function topMenu_184() {
1522                return {
1523                    openSubmenuId: null,
1524                    toggleSubmenu(id, state, event) {
1525                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1526
1527                        if (state === true) {
1528                            this.openSubmenuId = id;
1529                        } else if (state === false) {
1530                            this.openSubmenuId = null;
1531                        } else {
1532                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1533                        }
1534
1535                        if (this.openSubmenuId) {
1536                            const submenu = document.getElementById('top-links' + id);
1537                            if (submenu && !doNotFocus) {
1538                                const firstChild = submenu.querySelector('li a');
1539                                if (firstChild) {
1540                                    setTimeout(() => {
1541                                        firstChild.focus({ focusVisible: true });
1542                                    }, 0);
1543                                }
1544                            }
1545
1546                            this.$refs.button.setAttribute(
1547                                'aria-label',
1548                                'Zamknij menu eGames'
1549                            );
1550                        } else {
1551                            const button = document.getElementById('top-links-' + id);
1552                            if (button && !doNotFocus) {
1553                                button.focus({ focusVisible: true });
1554                            }
1555
1556                            this.$refs.button.setAttribute(
1557                                'aria-label',
1558                                'Otwórz menu eGames'
1559                            );
1560                        }
1561                    },
1562                };
1563            }
1564        </script>
1564
1565                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1566                            <li class="header-top-links-menu__item" role="menuitem">    <a
1567        href="/blog"
1568        data-menu="menu-185" class="__link"    >
1569        Blog    </a>
1570
1571</li>
1572                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1573                            <li class="header-top-links-menu__item" role="menuitem">    <a
1574        href="/contact"
1575        data-menu="menu-187" class="__link"    >
1576        Kontakt    </a>
1577
1578</li>
1579                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1580    </ul>    </div>
1581</div>
1582<div class="header content"><template id="trustedshops-badge_6abe4f41d2764">
1583</template>
1584<script>
1585window.addEventListener('init-external-scripts', () => {
1586    const template = document.getElementById('trustedshops-badge_6abe4f41d2764');
1587    if (template?.content) {
1588        const clone = document.importNode(template.content, true);
1589        document.body.appendChild(clone);
1590    }
1591}, {once: true, passive: true});
1592</script>
1592
1593</div>
1593<script>
1594    function initHeader () {
1595        return {
1596            cart: {},
1597            isCartOpen: false,
1598            getData(data) {
1599                if (data.cart) { this.cart = data.cart }
1600            },
1601            isCartEmpty() {
1602                return !this.cart.summary_count
1603            },
1604            toggleCart(event) {
1605                if (event.detail && event.detail.isOpen !== undefined) {
1606                    this.isCartOpen = event.detail.isOpen
1607                    if (!this.isCartOpen && this.$refs && this.$refs.cartButton) {
1608                        this.$refs.cartButton.focus()
1609                    }
1610                } else {
1611                                        this.isCartOpen = true
1612                }
1613            }
1614        }
1615    }
1616</script>
1616
1617
1618
1619<div id="header"
1620     class="relative z-30 w-full bg-header lg:py-1.5"
1621     x-data="initHeader()"
1622     @private-content-loaded.window="getData(event.detail.data)"
1623>
1624    <div class="header-container container flex flex-wrap lg:flex-nowrap items-center justify-between w-full px-0 md:px-3 lg:p-6 mx-auto mt-0">
1625        <!--Logo-->
1626        <div class="header-logo-wrap w-full flex items-center justify-center md:w-auto md:bg-transparent">
1627            <div class="order-1 sm:order-2 lg:order-1 sm:w-auto flex-shrink-0 w-1/3 lg:w-auto">
1628    <a class="flex items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title"
1629       href="https://www.trefl.com/"
1630       aria-label="Przejd&#x017A;&#x20;do&#x20;strony&#x20;g&#x0142;&#xF3;wnej"
1631    >
1632        <img
1633            src="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/images/logo.svg"
1634            alt=""
1635            width="104"
1636            height="52"
1637            fetchpriority="high"
1638            loading="eager"
1639            class="logo-image"
1640        />
1641    </a>
1642</div>
1643        </div>
1644
1645        <!--Search-->
1646                <div class="order-3 p-3 pt-0 w-full lg:mx-0 lg:py-0 md:bg-transparent md:order-2 md:w-auto lg:w-full">
1647            <div class="relative flex justify-center">
1648                
1649<form id="search_mini_form"
1650      action="https://www.trefl.com/catalogsearch/result/"
1651      method="get"
1652      role="search"
1653      class="w-full flex justify-center gap-x-2"
1654>
1655    <div class="w-full flex relative" style="max-width: 580px;">
1656        <label class="sr-only text-primary" for="search">
1657            Szukaj&#x20;w&#x20;sklepie...        </label>
1658        <input id="search"
1659               type="search"
1660               required
1661               class="form-input w-full appearance-none border-gray-light bg-gray-light pr-14 sm:pr-3"
1662               autocapitalize="off" autocomplete="off" autocorrect="off"
1663               name="q"
1664               value=""
1665               placeholder="Czego szukasz?"
1666               maxlength="128"
1667               oninvalid="this.setCustomValidity('Wpisz wyszukiwaną frazę')"
1668               oninput="this.setCustomValidity('')"
1669        />
1670
1671                            
1672<label class="sr-only text-primary" for="search-category">
1673    Wybierz&#x20;kategori&#x0119;</label>
1674<select class="form-select -ml-3 bg-gray-lighter border-gray-lighter min-w-48 hidden sm:block w-auto "
1675        id="search-category"
1676        name="cat">
1677    <option value="" selected>Wszystkie kategorie</option>
1678                    <option value="3">
1679            Puzzle        </option>
1680                    <option value="4">
1681            Gry        </option>
1682                    <option value="5">
1683            Zabawki        </option>
1684                    <option value="167">
1685            Książki        </option>
1686    </select>
1687            </div>
1688    <button class="btn btn-secondary font-bold min-w-12	h-full items-center justify-center p-0 px-2 lg:px-6 absolute right-0 top-0 sm:static"
1689            aria-label="Szukaj">
1690        <svg xmlns="http://www.w3.org/2000/svg" width="26" height="26" viewBox="0 0 24 24" fill="none" class="lg:!hidden" aria-hidden="true"><path fill="currentColor" fill-rule="evenodd" d="M15.184 7.369a5.526 5.526 0 1 0-7.815 7.815 5.526 5.526 0 0 0 7.815-7.815Zm1.06-1.061a7.026 7.026 0 1 0-9.936 9.936 7.026 7.026 0 0 0 9.936-9.936Z" clip-rule="evenodd"/><path fill="currentColor" fill-rule="evenodd" d="M15.18 15.18a.75.75 0 0 1 1.06 0l3.29 3.29a.75.75 0 1 1-1.06 1.06l-3.29-3.29a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/></svg>
1691        <span class="hidden lg:inline">Szukaj</span>
1692    </button>
1693</form>
1694            </div>
1695        </div>
1696        
1697        <div class="text-header hidden md:flex items-center justify-end gap-1 sm:gap-2 order-2 w-1/3 md:w-auto md:order-3 lg:-mr-1 md:gap-4">
1698            <!-- Additional Header Elements -->
1699            
1700            <!--Customer Icon & Dropdown-->
1701            
1702<div
1703    class="relative inline-block"
1704    x-data="{ open: false }"
1705    @keyup.escape="open = false"
1706    @click.outside="open = false"
1707>
1708    <button
1709        type="button"
1710        id="customer-menu"
1711        class="block rounded p-2 outline-offset-2 md:text-inherit"
1712        @click="open = !open"
1713        :aria-expanded="open ? 'true' : 'false'"
1714        title="Moje&#x20;konto"
1715        aria-label="Moje&#x20;konto"
1716        aria-haspopup="true"
1717    >
1718        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 20" fill="none" class="md:h-5 md:w-5" width="28" height="28" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9 1.75c-2.046 0-3.733 1.706-3.733 3.767A3.744 3.744 0 0 0 9 9.25c2.046 0 3.733-1.706 3.733-3.767A3.744 3.744 0 0 0 9 1.75ZM3.767 5.517C3.767 2.642 6.112.25 9 .25a5.244 5.244 0 0 1 5.233 5.233c0 2.875-2.345 5.267-5.233 5.267a5.244 5.244 0 0 1-5.233-5.233ZM5 13.75A3.262 3.262 0 0 0 1.75 17v1c0 .136.114.25.25.25h14c.136 0 .25-.114.25-.25v-1A3.262 3.262 0 0 0 13 13.75H5ZM.25 17A4.762 4.762 0 0 1 5 12.25h8A4.762 4.762 0 0 1 17.75 17v1c0 .964-.786 1.75-1.75 1.75H2c-.964 0-1.75-.786-1.75-1.75v-1Z" fill="currentColor"/></svg>
1719    </button>
1720    <nav
1721        class="
1722            absolute right-0 z-20 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm
1723            shadow-lg sm:w-48 lg:mt-3 bg-container-lighter text-black
1724        "
1725        x-cloak
1726        x-show="open"
1727        aria-labelledby="customer-menu"
1728    >
1729                        <div>
1730        <a id="customer.header.sign.in.link"
1731           class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
1732           onclick="hyva.setCookie && hyva.setCookie(
1733                   'login_redirect',
1734                   window.location.href,
1735                   1
1736                   )"
1737           href="https://www.trefl.com/customer/account/index/"
1738           title="Zaloguj&#x20;si&#x0119;"
1739        >
1740            Zaloguj się        </a>
1741
1742    </div>
1743
1744<script type="text/javascript">
1745    function onClick () {
1746        showLogin();
1747        const modal = document.querySelector('.wrap-modal-login');
1748        modal.classList.add('mfp-move-from-top-appear');
1749        openMyDialog();
1750
1751    }
1752</script>
1752
1753            <div>
1754            <a id="customer.header.register.link"
1755               class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
1756               href="https://www.trefl.com/customer/account/create/"
1757               title="Utw&#xF3;rz&#x20;konto"
1758            >
1759                Utwórz konto            </a>
1760        </div>
1761    
1762<script type="text/javascript">
1763    function onClickRegister () {
1764        createBtn();
1765        const modal = document.querySelector('.wrap-modal-login');
1766        modal.classList.add('mfp-move-from-top-appear');
1767        openMyDialog();
1768
1769
1770    }
1771</script>
1771            </nav>
1772</div>
1773
1774            <!--Wishlist Icon-->
1775                            <a href="https://www.trefl.com/wishlist/"
1776                   class="rounded p-2  outline-offset-2 hidden sm:block md:text-inherit"
1777                   title="Ulubione"
1778                >
1779                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 18" class="h-5 w-5" width="20" height="18" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.304 1.75c-2.652 0-4.554 2.526-4.554 5.005 0 2.59 1.624 4.965 3.587 6.742.97.878 1.99 1.58 2.867 2.06.438.24.83.418 1.154.535.338.123.549.158.642.158.093 0 .304-.035.642-.158a8.482 8.482 0 0 0 1.154-.535 15.411 15.411 0 0 0 2.867-2.06c1.963-1.777 3.587-4.152 3.587-6.742 0-2.479-1.902-5.005-4.554-5.005-1.534 0-2.534.756-3.126 1.448a.75.75 0 0 1-1.14 0C8.838 2.506 7.838 1.75 6.304 1.75ZM.25 6.755C.25 3.684 2.606.25 6.304.25 7.964.25 9.176.91 10 1.642A5.445 5.445 0 0 1 13.696.25c3.698 0 6.054 3.434 6.054 6.505 0 3.21-1.987 5.959-4.08 7.854a16.914 16.914 0 0 1-3.154 2.264 9.958 9.958 0 0 1-1.364.63c-.397.143-.8.247-1.152.247-.352 0-.755-.104-1.152-.247a9.961 9.961 0 0 1-1.364-.63 16.913 16.913 0 0 1-3.154-2.264C2.237 12.714.25 9.966.25 6.755Z" fill="currentColor"/></svg>
1780                </a>
1781            
1782            <!--Cart Icon-->
1783                            <button
1784                            id="menu-cart-icon"
1785                class="relative inline-block rounded p-2 outline-offset-2 md:text-inherit"
1786                x-ref="cartButton"
1787                :aria-disabled="isCartEmpty()"
1788                :aria-label="`
1789                    Prze&#x0142;&#x0105;cz&#x20;koszyk&#x20;w&#x20;panelu&#x20;bocznym,
1790                    ${isCartEmpty()
1791                        ? 'Koszyk&#x20;jest&#x20;pusty'
1792                        : cart.summary_count > 1
1793                            ? hyva.str('&#x25;1&#x20;element&#xF3;w', cart.summary_count)
1794                            : hyva.str('&#x25;1&#x20;item', cart.summary_count)
1795                    }`"
1796                                    @click.prevent.stop="() => {
1797                        $dispatch('toggle-cart', { isOpen: true })
1798                    }"
1799                    @toggle-cart.window="toggleCart($event)"
1800                    :aria-expanded="isCartOpen"
1801                    aria-haspopup="dialog"
1802                            >
1803                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 32" class="md:h-5 md:w-5" width="28" height="28" aria-hidden="true"><path d="M9.386 5.564 8.454 0H-.001v2.782h6.1l.734 4.403 1.397 9.074c.549 2.929 2.252 4.613 4.677 4.613H28.54c1.531 0 4.179-.613 4.69-4.658l1.64-10.643H9.385zm21.089 10.261c-.262 2.087-1.098 2.259-1.933 2.259H12.909c-.37 0-1.506 0-1.94-2.297l-1.142-7.44h21.797l-1.149 7.478zM13.215 25.045a3.478 3.478 0 1 0 0 6.956 3.478 3.478 0 0 0 0-6.956zm0 4.173c-.383 0-.696-.313-.696-.695s.313-.695.695-.695.695.313.695.695-.313.695-.695.695zM28.51 25.045a3.478 3.478 0 1 0 0 6.956 3.478 3.478 0 0 0 0-6.956zm0 4.173c-.383 0-.695-.313-.695-.695s.313-.695.695-.695c.383 0 .695.313.695.695s-.306.695-.695.695z" fill="currentColor"/></svg>
1804                <span
1805                    x-text="cart.summary_count"
1806                    x-show="!isCartEmpty()"
1807                    x-cloak
1808                    class="absolute -top-2 -right-2.5 h-6 px-2 py-1.5 rounded-full bg-primary md:bg-secondary-darker text-white text-xs font-semibold leading-none text-center uppercase tabular-nums"
1809                    aria-hidden="true"
1810                ></span>
1811                                    </button>
1812                        </div>
1813    </div>
1814
1815    <!--Main Navigation-->
1816    <input type="checkbox"
1817           id="mobile-menu-switch"
1818           class="hidden"
1819           aria-hidden="true"
1820           @change="$dispatch('toggle-menu-mobile', { isOpen: $el.checked })"
1821    />
1822    
1823    
1823<script>
1824        'use strict';
1825
1826        const initMenuMobile_6abd94b60a054 = () => ({
1827            submenuDataAttrName: 'menu',
1828            submenuActiveClass: 'menu-mobile-submenu-active',
1829            init() {
1830                window.addEventListener('toggle-menu-mobile', (event) => {
1831                   const isOpen = event.detail?.isOpen;
1832
1833                   if (isOpen) {
1834                       this.$nextTick(() => hyva.trapFocus(this.$refs['menu-dialog']))
1835                       // Prevent from body scrolling while mobile menu opened
1836                       document.body.classList.add('fixed', 'w-full')
1837                   } else {
1838                       document.body.classList.remove('fixed', 'w-full')
1839                   }
1840                })
1841            },
1842            closeMenu() {
1843                const menuSwitch = document.getElementById('mobile-menu-switch')
1844                if (menuSwitch) {
1845                    menuSwitch.checked = false
1846                }
1847            },
1848            openSubmenu(menuRef) {
1849                this.$refs[menuRef]?.classList?.add(this.submenuActiveClass)
1850            },
1851            closeSubmenu(menuRef) {
1852                this.$refs[menuRef]?.classList?.remove(this.submenuActiveClass)
1853            },
1854        })
1855    </script>
1855
1856    <nav
1857        class="                menu-mobile z-20 order-2 text-primary-darker sm:order-1 navigation lg:hidden"
1858        x-data="initMenuMobile_6abd94b60a054()"
1859        @keydown.escape="closeMenu()"
1860        aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
1861        role="navigation"
1862    >
1863        <div class="backdrop hidden"
1864            x-transition:enter="ease-in-out duration-500"
1865            x-transition:enter-start="opacity-0"
1866            x-transition:enter-end="opacity-100"
1867            x-transition:leave="ease-in-out duration-500"
1868            x-transition:leave-start="opacity-100"
1869            x-transition:leave-end="opacity-0"
1870            @click="closeMenu()"
1871            x-cloak
1872            style="background: rgba(0, 0, 0, 0.6);"
1873        ></div>
1874        <div class="menu-mobile-container fixed z-30 top-0 right-0 w-full h-full bg-white overflow-y-auto overflow-x-hidden transform transition ease-in-out duration-500 sm:duration-700 translate-x-full"
1875            x-ref="menu-dialog"
1876            role="dialog"
1877            aria-modal="true"
1878            aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
1879            style="max-width:86.5%"
1880        >
1881            <div class="relative h-full">
1882                <div class="menu-mobile-submenu h-full level1" ><label for="mobile-menu-switch" class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-end px-2 gap-x-8 shrink-0"><span class="relative font-rialto text-xs">zamknij menu<svg xmlns="http://www.w3.org/2000/svg" width="35" height="17" viewBox="0 0 35 17" fill="none" class="arrow-handwriting absolute left-3/4 top-full ml-2 -mt-0.5" role="img"><path class="arrow-body" stroke="currentColor" d="M.94 4.896c3.07 4.892 13.384 12.277 30.086 2.673"/><path class="arrow-head" stroke="currentColor" d="m32.641 14.543 1.627-7.833-8.812-1.83"/><title>arrow-handwriting</title></svg>
1883</span><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="26" height="26" role="img">
1884  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
1885<title>x</title></svg>
1886</label><ul class="level1"><li class="level1">
1887    <button @click.prevent="closeSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1888        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1889    </button>
1890<a href="https://www.trefl.com/puzzle"
1891    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1892                is-parent        "
1893>
1894    Puzzle</a>
1895    <button @click.prevent="openSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1896        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
18960 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1897    </button>
1898</li><li class="level1">
1899<a href="https://www.trefl.com/puzzle/fotopuzzle"
1900    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1901                        "
1902>
1903    Fotopuzzle</a>
1904</li><li class="level1">
1905    <button @click.prevent="closeSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1906        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1907    </button>
1908<a href="https://www.trefl.com/gry"
1909    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1910                is-parent        "
1911>
1912    Gry planszowe</a>
1913    <button @click.prevent="openSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1914        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19140 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1915    </button>
1916</li><li class="level1">
1917    <button @click.prevent="closeSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1918        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1919    </button>
1920<a href="https://www.trefl.com/zabawki"
1921    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1922                is-parent        "
1923>
1924    Zabawki</a>
1925    <button @click.prevent="openSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1926        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19260 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1927    </button>
1928</li><li class="level1">
1929    <button @click.prevent="closeSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1930        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1931    </button>
1932<a href="https://www.trefl.com/ksiazki"
1933    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1934                is-parent        "
1935>
1936    Książki</a>
1937    <button @click.prevent="openSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1938        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19380 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1939    </button>
1940</li><li class="level1">
1941    <button @click.prevent="closeSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1942        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1943    </button>
1944<a href="https://www.trefl.com/rodzina-treflikow"
1945    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1946                is-parent        "
1947>
1948    Rodzina Treflików</a>
1949    <button @click.prevent="openSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1950        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19500 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1951    </button>
1952</li><li class="level1">
1953    <button @click.prevent="closeSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1954        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1955    </button>
1956<a href="https://www.trefl.com/prezenty"
1957    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1958                is-parent        "
1959>
1960    Prezenty</a>
1961    <button @click.prevent="openSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1962        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19620 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1963    </button>
1964</li><li class="level1">
1965<a href="https://www.trefl.com/nowosci"
1966    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1967                        "
1968>
1969    Nowości</a>
1970</li><li class="level1">
1971<a href="https://www.trefl.com/puzzle-gry-zabawki-tylko-u-nas"
1972    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1973                        "
1974>
1975    Tylko u nas!</a>
1976</li><li class="level1">
1977    <button @click.prevent="closeSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1978        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1979    </button>
1980<a href="https://www.trefl.com/promocje"
1981    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1982                is-parent        "
1983>
1984    Promocje</a>
1985    <button @click.prevent="openSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1986        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19860 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1987    </button>
1988</li><li class="level1">
1989    <button @click.prevent="closeSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1990        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
1991    </button>
1992<a href="https://www.trefl.com/marki"
1993    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1994                is-parent        "
1995>
1996    Marki i licencje</a>
1997    <button @click.prevent="openSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1998        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
19980 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
1999    </button>
2000</li><li class="level1">
2001    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2002        href="https://www.trefl.com/blog"
2003                data-menu="menu-260"    >
2004        Blog    </a>
2005</li><li class="level1">
2006<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
2007                "
2008            @click.prevent="openSubmenu('menu-273')"
2009    >
2010    Gry wirtualne</button>
2011</li></ul><div class="mt-auto pt-6 pb-2 px-8 [&_li]:mb-4 [&_li]:my-1"><ul class="header-top-links-menu list-none text-xs md:text-header-top gap-2 flex flex-wrap items-center"
2012    role="menubar"
2013    aria-orientation="horizontal"
2014>
2015                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2016            x-data="topMenu_575()"
2017            role="menuitem"
2018            @keydown.escape="toggleSubmenu('575', false, $event)"
2019            @pointerenter="toggleSubmenu('575', true, $event)"
2020            @pointerleave="toggleSubmenu('575', false, $event)"
2021        >
2022            <button aria-haspopup="menu"
2023                    aria-controls="top-links-5756abd94b5ec419"
2024                    id="top-links-575"
2025                    class="flex items-center gap-1"
2026                    x-ref="button"
2027                    @click.prevent.stop="toggleSubmenu('575', null, $event)"
2028                    @keydown.space.prevent="toggleSubmenu('575', null, $event)"
2029                    @keydown.enter.prevent="toggleSubmenu('575', null, $event)"
2030                    aria-label="Otwórz menu Oferta&#x20;B2B"
2031                    :aria-pressed="openSubmenuId === '575'"
2032                    :aria-expanded="openSubmenuId === '575'">
2033                Oferta B2B                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
2034  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
2035</svg>
2036            </button>
2037            <ul role="menubar"
2038                aria-orientation="vertical"
2039                aria-labelledby="top-links575"
2040                id="top-links5756abd94b5ec419"
2041                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
2042                :class="openSubmenuId === '575' ? 'z-40' : ''"
2043                x-cloak
2044            >
2045                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2046                            <a
2047        href="https://b2b.trefl.com/"
2048        data-menu="menu-576" class="__inner-link"    >
2049        Platforma zamówień hurtowych    </a>
2050
2051                    </li>
2052                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2053                            <a
2054        href="https://factory.trefl.com/"
2055        data-menu="menu-577" class="__inner-link"    >
2056        Produkty na zlecenie - Trefl Factory    </a>
2057
2058                    </li>
2059                            </ul>
2060        </li>
2061        
2061<script>
2062            function topMenu_575() {
2063                return {
2064                    openSubmenuId: null,
2065                    toggleSubmenu(id, state, event) {
2066                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2067
2068                        if (state === true) {
2069                            this.openSubmenuId = id;
2070                        } else if (state === false) {
2071                            this.openSubmenuId = null;
2072                        } else {
2073                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2074                        }
2075
2076                        if (this.openSubmenuId) {
2077                            const submenu = document.getElementById('top-links' + id);
2078                            if (submenu && !doNotFocus) {
2079                                const firstChild = submenu.querySelector('li a');
2080                                if (firstChild) {
2081                                    setTimeout(() => {
2082                                        firstChild.focus({ focusVisible: true });
2083                                    }, 0);
2084                                }
2085                            }
2086
2087                            this.$refs.button.setAttribute(
2088                                'aria-label',
2089                                'Zamknij menu Oferta&#x20;B2B'
2090                            );
2091                        } else {
2092                            const button = document.getElementById('top-links-' + id);
2093                            if (button && !doNotFocus) {
2094                                button.focus({ focusVisible: true });
2095                            }
2096
2097                            this.$refs.button.setAttribute(
2098                                'aria-label',
2099                                'Otwórz menu Oferta&#x20;B2B'
2100                            );
2101                        }
2102                    },
2103                };
2104            }
2105        </script>
2105
2106                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2107                            <li class="header-top-links-menu__item" role="menuitem">
2108<a
2109    href="https://www.trefl.com/grupa-trefl"
2110    class="__link"
2111     data-menu="menu-183">
2112    Grupa Trefl</a>
2113</li>
2114                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2115                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2116            x-data="topMenu_400()"
2117            role="menuitem"
2118            @keydown.escape="toggleSubmenu('400', false, $event)"
2119            @pointerenter="toggleSubmenu('400', true, $event)"
2120            @pointerleave="toggleSubmenu('400', false, $event)"
2121        >
2122            <button aria-haspopup="menu"
2123                    aria-controls="top-links-4006abd94b5ec419"
2124                    id="top-links-400"
2125                    class="flex items-center gap-1"
2126                    x-ref="button"
2127                    @click.prevent.stop="toggleSubmenu('400', null, $event)"
2128                    @keydown.space.prevent="toggleSubmenu('400', null, $event)"
2129                    @keydown.enter.prevent="toggleSubmenu('400', null, $event)"
2130                    aria-label="Otwórz menu ESG"
2131                    :aria-pressed="openSubmenuId === '400'"
2132                    :aria-expanded="openSubmenuId === '400'">
2133                ESG                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
2134  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
2135</svg>
2136            </button>
2137            <ul role="menubar"
2138                aria-orientation="vertical"
2139                aria-labelledby="top-links400"
2140                id="top-links4006abd94b5ec419"
2141                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
2142                :class="openSubmenuId === '400' ? 'z-40' : ''"
2143                x-cloak
2144            >
2145                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2146                            <a
2147        href="https://www.trefl.com/zrownowazony-rozwoj"
2148        data-menu="menu-401" class="__inner-link"    >
2149        Zrównoważony rozwój    </a>
2150
2151                    </li>
2152                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2153                            <a
2154        href="https://www.trefl.com/zrownowazony-rozwoj/srodowisko"
2155        data-menu="menu-582" class="__inner-link"    >
2156        Środowisko    </a>
2157
2158                    </li>
2159                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2160                            <a
2161        href="https://www.trefl.com/zielona-strona-trefla"
2162        data-menu="menu-402" class="__inner-link"    >
2163        Zielona Strona Trefla    </a>
2164
2165                    </li>
2166                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2167                            <a
2168        href="https://www.trefl.com/zrownowazony-rozwoj/dokumenty"
2169        data-menu="menu-403" class="__inner-link"    >
2170        Dokumenty    </a>
2171
2172                    </li>
2173                            </ul>
2174        </li>
2175        
2175<script>
2176            function topMenu_400() {
2177                return {
2178                    openSubmenuId: null,
2179                    toggleSubmenu(id, state, event) {
2180                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2181
2182                        if (state === true) {
2183                            this.openSubmenuId = id;
2184                        } else if (state === false) {
2185                            this.openSubmenuId = null;
2186                        } else {
2187                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2188                        }
2189
2190                        if (this.openSubmenuId) {
2191                            const submenu = document.getElementById('top-links' + id);
2192                            if (submenu && !doNotFocus) {
2193                                const firstChild = submenu.querySelector('li a');
2194                                if (firstChild) {
2195                                    setTimeout(() => {
2196                                        firstChild.focus({ focusVisible: true });
2197                                    }, 0);
2198                                }
2199                            }
2200
2201                            this.$refs.button.setAttribute(
2202                                'aria-label',
2203                                'Zamknij menu ESG'
2204                            );
2205                        } else {
2206                            const button = document.getElementById('top-links-' + id);
2207                            if (button && !doNotFocus) {
2208                                button.focus({ focusVisible: true });
2209                            }
2210
2211                            this.$refs.button.setAttribute(
2212                                'aria-label',
2213                                'Otwórz menu ESG'
2214                            );
2215                        }
2216                    },
2217                };
2218            }
2219        </script>
2219
2220                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2221                            <li class="header-top-links-menu__item" role="menuitem">
2222<a
2223    href="https://www.trefl.com/kariera"
2224    class="__link"
2225     data-menu="menu-615">
2226    Kariera</a>
2227</li>
2228                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2229                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2230            x-data="topMenu_184()"
2231            role="menuitem"
2232            @keydown.escape="toggleSubmenu('184', false, $event)"
2233            @pointerenter="toggleSubmenu('184', true, $event)"
2234            @pointerleave="toggleSubmenu('184', false, $event)"
2235        >
2236            <button aria-haspopup="menu"
2237                    aria-controls="top-links-1846abd94b5ec419"
2238                    id="top-links-184"
2239                    class="flex items-center gap-1"
2240                    x-ref="button"
2241                    @click.prevent.stop="toggleSubmenu('184', null, $event)"
2242                    @keydown.space.prevent="toggleSubmenu('184', null, $event)"
2243                    @keydown.enter.prevent="toggleSubmenu('184', null, $event)"
2244                    aria-label="Otwórz menu eGames"
2245                    :aria-pressed="openSubmenuId === '184'"
2246                    :aria-expanded="openSubmenuId === '184'">
2247                eGames                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="transition-transform" width="13" height="13" aria-hidden="true">
2248  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
2249</svg>
2250            </button>
2251            <ul role="menubar"
2252                aria-orientation="vertical"
2253                aria-labelledby="top-links184"
2254                id="top-links1846abd94b5ec419"
2255                class="lg:absolute left-0 top-full bg-inherit list-none w-full lg:w-auto lg:bg-header-top flex-col p-2 -ml-2 pt-4 hidden"
2256                :class="openSubmenuId === '184' ? 'z-40' : ''"
2257                x-cloak
2258            >
2259                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2260                            <a
2261        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
2262        data-menu="menu-620" class="__inner-link" target="_blank" rel="noopener"    >
2263        Treflandia na Roblox    </a>
2264
2265                    </li>
2266                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2267                            <a
2268        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
2269        data-menu="menu-621" class="__inner-link" target="_blank" rel="noopener"    >
2270        Gry na Nintendo    </a>
2271
2272                    </li>
2273                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2274                            <a
2275        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
2276        data-menu="menu-622" class="__inner-link" target="_blank" rel="noopener"    >
2277        Gry na PC (Steam)    </a>
2278
2279                    </li>
2280                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2281                            <a
2282        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
2283        data-menu="menu-623" class="__inner-link" target="_blank" rel="noopener"    >
2284        Gry mobilne (Apple IOS)    </a>
2285
2286                    </li>
2287                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2288                            <a
2289        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
2290        data-menu="menu-624" class="__inner-link" target="_blank" rel="noopener"    >
2291        Gry mobilne (Android)    </a>
2292
2293                    </li>
2294                            </ul>
2295        </li>
2296        
2296<script>
2297            function topMenu_184() {
2298                return {
2299                    openSubmenuId: null,
2300                    toggleSubmenu(id, state, event) {
2301                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2302
2303                        if (state === true) {
2304                            this.openSubmenuId = id;
2305                        } else if (state === false) {
2306                            this.openSubmenuId = null;
2307                        } else {
2308                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2309                        }
2310
2311                        if (this.openSubmenuId) {
2312                            const submenu = document.getElementById('top-links' + id);
2313                            if (submenu && !doNotFocus) {
2314                                const firstChild = submenu.querySelector('li a');
2315                                if (firstChild) {
2316                                    setTimeout(() => {
2317                                        firstChild.focus({ focusVisible: true });
2318                                    }, 0);
2319                                }
2320                            }
2321
2322                            this.$refs.button.setAttribute(
2323                                'aria-label',
2324                                'Zamknij menu eGames'
2325                            );
2326                        } else {
2327                            const button = document.getElementById('top-links-' + id);
2328                            if (button && !doNotFocus) {
2329                                button.focus({ focusVisible: true });
2330                            }
2331
2332                            this.$refs.button.setAttribute(
2333                                'aria-label',
2334                                'Otwórz menu eGames'
2335                            );
2336                        }
2337                    },
2338                };
2339            }
2340        </script>
2340
2341                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2342                            <li class="header-top-links-menu__item" role="menuitem">    <a
2343        href="/blog"
2344        data-menu="menu-185" class="__link"    >
2345        Blog    </a>
2346
2347</li>
2348                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2349                            <li class="header-top-links-menu__item" role="menuitem">    <a
2350        href="/contact"
2351        data-menu="menu-187" class="__link"    >
2352        Kontakt    </a>
2353
2354</li>
2355                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2356    </ul>
2357</div></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-46"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
2358<a href="https://www.trefl.com/puzzle"
2359    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2360        menu-mobile-parent-link                "
2361>
2362    Puzzle</a>
2363<button type="button"
2364                              @click="closeSubmenu('menu-46')"
2365                              class="w-10 h-10 flex items-center justify-center"
2366                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2367</button></div><div class="border-b border-gray parent-heading" data-level="2">
2368    <button @click.prevent="closeSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2369        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2370    </button>
2371<a href="https://www.trefl.com/puzzle"
2372    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2373                is-parent        "
2374>
2375    Puzzle</a>
2376    <button @click.prevent="openSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2377        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
23770 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
2378    </button>
2379</div><ul class="level2"><li class="level2">
2380    <button @click.prevent="closeSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2381        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2382    </button>
2383<a href="https://www.trefl.com/puzzle/dla-dzieci"
2384    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2385                is-parent        "
2386>
2387    Puzzle dla dzieci</a>
2388    <button @click.prevent="openSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2389        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
23890 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
2390    </button>
2391</li><li class="level2">
2392<a href="https://www.trefl.com/puzzle/dla-doroslych"
2393    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2394                        "
2395>
2396    Puzzle dla dorosłych</a>
2397</li><li class="level2">
2398<a href="https://www.trefl.com/puzzle/akcesoria"
2399    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2400                        "
2401>
2402    Akcesoria do puzzli</a>
2403</li><li class="level2">
2404<a href="https://www.trefl.com/puzzle/500-elementow"
2405    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2406                        "
2407>
2408    Puzzle 500 elementów</a>
2409</li><li class="level2">
2410<a href="https://www.trefl.com/puzzle/1000-elementow"
2411    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2412                        "
2413>
2414    Puzzle 1000 elementów</a>
2415</li><li class="level2">
2416<a href="https://www.trefl.com/puzzle/1500-elementow"
2417    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2418                        "
2419>
2420    Puzzle 1500 elementów</a>
2421</li><li class="level2">
2422<a href="https://www.trefl.com/puzzle/2000-elementow"
2423    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2424                        "
2425>
2426    Puzzle 2000 elementów</a>
2427</li><li class="level2">
2428<a href="https://www.trefl.com/puzzle/3000-elementow"
2429    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2430                        "
2431>
2432    Puzzle 3000 elementów</a>
2433</li><li class="level2">
2434<a href="https://www.trefl.com/puzzle/4000-elementow"
2435    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2436                        "
2437>
2438    Puzzle 4000 elementów</a>
2439</li><li class="level2">
2440<a href="https://www.trefl.com/puzzle/6000-elementow"
2441    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2442                        "
2443>
2444    Puzzle 6000 elementów</a>
2445</li><li class="level2">
2446<a href="https://www.trefl.com/puzzle/8000-elementow"
2447    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2448                        "
2449>
2450    Puzzle 8000 elementów</a>
2451</li><li class="level2">
2452<a href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
2453    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2454                        "
2455>
2456    Puzzle 9000 elementów</a>
2457</li><li class="level2">
2458    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2459        href="https://www.trefl.com/puzzle-premium-plus-quality-10000-el-windows-of-the-seasons-81051"
2460                data-menu="menu-631"    >
2461        Puzzle 10 000 elementów    </a>
2462</li><li class="level2">
2463<a href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
2464    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2465                        "
2466>
2467    Puzzle 13 500 elementów</a>
2468</li><li class="level2">
2469    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2470        href="https://www.trefl.com/puzzle-prime-21000-el-earth-chronicles-from-the-creation-to-the-future-81040"
2471                data-menu="menu-266"    >
2472        Puzzle 21 000 elementów    </a>
2473</li><li class="level2">
2474<a href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
2475    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2476                        "
2477>
2478    Puzzle Premium Plus Quality</a>
2479</li><li class="level2">
2480<a href="https://www.trefl.com/puzzle/drewniane"
2481    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2482                        "
2483>
2484    Puzzle drewniane</a>
2485</li><li class="level2">
2486<a href="https://www.trefl.com/puzzle/puzzle-filmowe"
2487    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2488                        "
2489>
2490    Puzzle filmowe</a>
2491</li><li class="level2">
2492<a href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
2493    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2494                        "
2495>
2496    Puzzle jubileuszowe na 40-lecie</a>
2497</li><li class="level2">
2498<a href="https://www.trefl.com/puzzle/puzzle-kosmos"
2499    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2500                        "
2501>
2502    Puzzle kosmos</a>
2503</li><li class="level2">
2504<a href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
2505    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2506                        "
2507>
2508    Puzzle krajobrazy</a>
2509</li><li class="level2">
2510<a href="https://www.trefl.com/puzzle/puzzle-kulinarne"
2511    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2512                        "
2513>
2514    Puzzle kulinarne</a>
2515</li><li class="level2">
2516<a href="https://www.trefl.com/puzzle/puzzle-mapy"
2517    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2518                        "
2519>
2520    Puzzle mapy</a>
2521</li><li class="level2">
2522<a href="https://www.trefl.com/puzzle/puzzle-miasta"
2523    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2524                        "
2525>
2526    Puzzle miasta</a>
2527</li><li class="level2">
2528<a href="https://www.trefl.com/puzzle/puzzle-obrazy"
2529    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2530                        "
2531>
2532    Puzzle obrazy</a>
2533</li><li class="level2">
2534<a href="https://www.trefl.com/puzzle/puzzle-panoramiczne"
2535    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2536                        "
2537>
2538    Puzzle panoramiczne</a>
2539</li><li class="level2">
2540<a href="https://www.trefl.com/puzzle/puzzle-samochody"
2541    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2542                        "
2543>
2544    Puzzle samochody</a>
2545</li><li class="level2">
2546<a href="https://www.trefl.com/puzzle/puzzle-swiateczne"
2547    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2548                        "
2549>
2550    Puzzle świąteczne</a>
2551</li><li class="level2">
2552<a href="https://www.trefl.com/puzzle/puzzloramy"
2553    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2554                        "
2555>
2556    PuzzloRamy</a>
2557</li></ul></div><div class="menu-mobile-submenu h-full level3" x-ref="menu-361"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
2558<a href="https://www.trefl.com/puzzle/dla-dzieci"
2559    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2560        menu-mobile-parent-link                "
2561>
2562    Puzzle dla dzieci</a>
2563<button type="button"
2564                              @click="closeSubmenu('menu-361')"
2565                              class="w-10 h-10 flex items-center justify-center"
2566                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2567</button></div><div class="border-b border-gray parent-heading" data-level="3">
2568    <button @click.prevent="closeSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2569        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2570    </button>
2571<a href="https://www.trefl.com/puzzle/dla-dzieci"
2572    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2573                is-parent        "
2574>
2575    Puzzle dla dzieci</a>
2576    <button @click.prevent="openSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2577        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
25770 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
2578    </button>
2579</div><ul class="level3"><li class="level3">
2580<a href="https://www.trefl.com/puzzle/dla-dzieci/1-3-lata"
2581    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2582                        "
2583>
2584    Puzzle dla dzieci 1-3</a>
2585</li><li class="level3">
2586<a href="https://www.trefl.com/puzzle/dla-dzieci/3-lata"
2587    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2588                        "
2589>
2590    Puzzle dla 3 latka</a>
2591</li><li class="level3">
2592<a href="https://www.trefl.com/puzzle/dla-dzieci/4-lata"
2593    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2594                        "
2595>
2596    Puzzle dla 4 latka</a>
2597</li><li class="level3">
2598<a href="https://www.trefl.com/puzzle/dla-dzieci/4-6-lat"
2599    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2600                        "
2601>
2602    Puzzle dla dzieci 4-6</a>
2603</li><li class="level3">
2604<a href="https://www.trefl.com/puzzle/dla-dzieci/6-8-lat"
2605    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2606                        "
2607>
2608    Puzzle dla dzieci 6-8</a>
2609</li><li class="level3">
2610<a href="https://www.trefl.com/puzzle/dla-dzieci/8-10-lat"
2611    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2612                        "
2613>
2614    Puzzle dla dzieci 8-10</a>
2615</li><li class="level3">
2616<a href="https://www.trefl.com/puzzle/dla-dzieci/auta"
2617    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2618                        "
2619>
2620    Puzzle Auta</a>
2621</li><li class="level3">
2622<a href="https://www.trefl.com/puzzle/dla-dzieci/barbie"
2623    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2624                        "
2625>
2626    Puzzle Barbie</a>
2627</li><li class="level3">
2628<a href="#"
2629    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2630                        "
2631>
2632    Puzzle Batman</a>
2633</li><li class="level3">
2634<a href="https://www.trefl.com/puzzle/dla-dzieci/bing"
2635    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2636                        "
2637>
2638    Puzzle Bing</a>
2639</li><li class="level3">
2640<a href="https://www.trefl.com/puzzle/dla-dzieci/bob-budowniczy"
2641    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2642                        "
2643>
2644    Puzzle Bob Budowniczy</a>
2645</li><li class="level3">
2646<a href="https://www.trefl.com/puzzle/dla-dzieci/enchantimals"
2647    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2648                        "
2649>
2650    Puzzle Enchantimals</a>
2651</li><li class="level3">
2652<a href="#"
2653    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2654                        "
2655>
2656    Puzzle Harry Potter</a>
2657</li><li class="level3">
2658<a href="https://www.trefl.com/puzzle/dla-dzieci/jej-wysokosc-zosia"
2659    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2660                        "
2661>
2662    Puzzle Jej Wysokość Zosia</a>
2663</li><li class="level3">
2664<a href="https://www.trefl.com/puzzle/dla-dzieci/kicia-kocia"
2665    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2666                        "
2667>
2668    Puzzle Kicia Kocia</a>
2669</li><li class="level3">
2670<a href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-koci-domek-gabi"
2671    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2672                        "
2673>
2674    Puzzle Koci Domek Gabi</a>
2675</li><li class="level3">
2676<a href="https://www.trefl.com/puzzle/dla-dzieci/kraina-lodu"
2677    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2678                        "
2679>
2680    Puzzle Kraina Lodu (Frozen)</a>
2681</li><li class="level3">
2682<a href="https://www.trefl.com/puzzle/dla-dzieci/kubus-puchatek"
2683    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2684                        "
2685>
2686    Puzzle Kubuś Puchatek</a>
2687</li><li class="level3">
2688<a href="https://www.trefl.com/puzzle/dla-dzieci/minionki"
2689    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2690                        "
2691>
2692    Puzzle Minionki</a>
2693</li><li class="level3">
2694<a href="https://www.trefl.com/puzzle/dla-dzieci/minnie"
2695    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2696                        "
2697>
2698    Puzzle Minnie</a>
2699</li><li class="level3">
2700<a href="https://www.trefl.com/puzzle/dla-dzieci/muminki"
2701    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2702                        "
2703>
2704    Puzzle Muminki</a>
2705</li><li class="level3">
2706<a href="https://www.trefl.com/puzzle/dla-dzieci/my-little-pony"
2707    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2708                        "
2709>
2710    Puzzle My Little Pony</a>
2711</li><li class="level3">
2712<a href="https://www.trefl.com/puzzle/dla-dzieci/myszka-miki"
2713    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2714                        "
2715>
2716    Puzzle Myszka Miki</a>
2717</li><li class="level3">
2718<a href="https://www.trefl.com/puzzle/dla-dzieci/psi-patrol"
2719    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2720                        "
2721>
2722    Puzzle Psi Patrol</a>
2723</li><li class="level3">
2724<a href="https://www.trefl.com/puzzle/dla-dzieci/rodzina-treflikow"
2725    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2726                        "
2727>
2728    Puzzle Rodzina Treflików</a>
2729</li><li class="level3">
2730<a href="#"
2731    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2732                        "
2733>
2734    Puzzle Scooby Doo</a>
2735</li><li class="level3">
2736<a href="https://www.trefl.com/puzzle/dla-dzieci/star-wars"
2737    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2738                        "
2739>
2740    Puzzle Star Wars</a>
2741</li><li class="level3">
2742<a href="https://www.trefl.com/puzzle/dla-dzieci/strazak-sam"
2743    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2744                        "
2745>
2746    Puzzle Strażak Sam</a>
2747</li><li class="level3">
2748<a href="https://www.trefl.com/puzzle/dla-dzieci/swinka-peppa"
2749    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2750                        "
2751>
2752    Puzzle Świnka Peppa</a>
2753</li><li class="level3">
2754<a href="https://www.trefl.com/puzzle/dla-dzieci/tomek-i-przyjaciele"
2755    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2756                        "
2757>
2758    Puzzle Tomek i Przyjaciele</a>
2759</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-51"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
2760<a href="https://www.trefl.com/gry"
2761    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2762        menu-mobile-parent-link                "
2763>
2764    Gry planszowe</a>
2765<button type="button"
2766                              @click="closeSubmenu('menu-51')"
2767                              class="w-10 h-10 flex items-center justify-center"
2768                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
2768ox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2769</button></div><div class="border-b border-gray parent-heading" data-level="2">
2770    <button @click.prevent="closeSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2771        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2772    </button>
2773<a href="https://www.trefl.com/gry"
2774    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2775                is-parent        "
2776>
2777    Gry planszowe</a>
2778    <button @click.prevent="openSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2779        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
27790 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
2780    </button>
2781</div><ul class="level2"><li class="level2">
2782<a href="https://www.trefl.com/gry/dla-dzieci"
2783    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2784                        "
2785>
2786    Gry dla dzieci</a>
2787</li><li class="level2">
2788<a href="https://www.trefl.com/gry/rodzinne"
2789    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2790                        "
2791>
2792    Gry rodzinne</a>
2793</li><li class="level2">
2794<a href="https://www.trefl.com/gry/towarzyskie"
2795    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2796                        "
2797>
2798    Gry towarzyskie</a>
2799</li><li class="level2">
2800<a href="https://www.trefl.com/gry/edukacyjne"
2801    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2802                        "
2803>
2804    Gry edukacyjne</a>
2805</li><li class="level2">
2806<a href="https://www.trefl.com/gry/dla-grup-przedszkoli"
2807    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2808                        "
2809>
2810    Gry dla grup i przedszkoli</a>
2811</li><li class="level2">
2812<a href="https://www.trefl.com/gry/planszowe-1"
2813    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2814                        "
2815>
2816    Gry planszowe</a>
2817</li><li class="level2">
2818<a href="https://www.trefl.com/gry/karciane"
2819    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2820                        "
2821>
2822    Gdy karciane</a>
2823</li><li class="level2">
2824<a href="https://www.trefl.com/gry/domino-i-memos"
2825    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2826                        "
2827>
2828    Domino i Memos</a>
2829</li><li class="level2">
2830<a href="https://www.trefl.com/gry/dla-3-latka"
2831    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2832                        "
2833>
2834    Gry dla 3 latka</a>
2835</li><li class="level2">
2836<a href="https://www.trefl.com/gry/dla-4-latka"
2837    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2838                        "
2839>
2840    Gry dla 4 latka</a>
2841</li><li class="level2">
2842<a href="https://www.trefl.com/gry/dla-dzieci-4-6-lat"
2843    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2844                        "
2845>
2846    Gry dla dzieci 4-6 lat</a>
2847</li><li class="level2">
2848<a href="https://www.trefl.com/gry/dla-dzieci-6-8-lat"
2849    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2850                        "
2851>
2852    Gry dla dzieci 6-8 lat</a>
2853</li><li class="level2">
2854<a href="https://www.trefl.com/gry/dla-dzieci-8-10-lat"
2855    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2856                        "
2857>
2858    Gry dla dzieci 8-10 lat</a>
2859</li><li class="level2">
2860<a href="https://www.trefl.com/gry/dla-dzieci-12-lat"
2861    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2862                        "
2863>
2864    Gry dla dzieci 12+</a>
2865</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-54"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
2866<a href="https://www.trefl.com/zabawki"
2867    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2868        menu-mobile-parent-link                "
2869>
2870    Zabawki</a>
2871<button type="button"
2872                              @click="closeSubmenu('menu-54')"
2873                              class="w-10 h-10 flex items-center justify-center"
2874                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2875</button></div><div class="border-b border-gray parent-heading" data-level="2">
2876    <button @click.prevent="closeSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2877        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 
28770 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
2878    </button>
2879<a href="https://www.trefl.com/zabawki"
2880    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2881                is-parent        "
2882>
2883    Zabawki</a>
2884    <button @click.prevent="openSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2885        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 0 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
2886    </button>
2887</div><ul class="level2"><li class="level2">
2888<a href="https://www.trefl.com/zabawki/dla-niemowlaka"
2889    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2890                        "
2891>
2892    Zabawki dla niemowlaka</a>
2893</li><li class="level2">
2894<a href="https://www.trefl.com/zabawki/1-3-lata"
2895    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2896                        "
2897>
2898    Zabawki dla dzieci 1-3</a>
2899</li><li class="level2">
2900<a href="https://www.trefl.com/zabawki/3-lata"
2901    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2902                        "
2903>
2904    Zabawki dla 3 latka</a>
2905</li><li class="level2">
2906<a href="https://www.trefl.com/zabawki/4-lata"
2907    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2908                        "
2909>
2910    Zabawki dla 4 latka</a>
2911</li><li class="level2">
2912<a href="https://www.trefl.com/zabawki/4-6-lat"
2913    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2914                        "
2915>
2916    Zabawki dla dzieci 4-6 lat</a>
2917</li><li class="level2">
2918<a href="https://www.trefl.com/zabawki/6-8-lat"
2919    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2920                        "
2921>
2922    Zabawki dla dzieci 6-8 lat</a>
2923</li><li class="level2">
2924<a href="https://www.trefl.com/zabawki/8-10-lat"
2925    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2926                        "
2927>
2928    Zabawki dla dzieci 8-10 lat</a>
2929</li><li class="level2">
2930<a href="https://www.trefl.com/zabawki/do-kapieli"
2931    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2932                        "
2933>
2934    Zabawki do kąpieli</a>
2935</li><li class="level2">
2936<a href="https://www.trefl.com/zabawki/drewniane"
2937    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2938                        "
2939>
2940    Zabawki drewniane</a>
2941</li><li class="level2">
2942<a href="https://www.trefl.com/zabawki/interaktywne"
2943    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2944                        "
2945>
2946    Zabawki interaktywne</a>
2947</li><li class="level2">
2948<a href="https://www.trefl.com/zabawki/klocki"
2949    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2950                        "
2951>
2952    Klocki</a>
2953</li><li class="level2">
2954<a href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
2955    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2956                        "
2957>
2958    Klocki ceramiczne Brick Trick</a>
2959</li><li class="level2">
2960<a href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
2961    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2962                        "
2963>
2964    Klocki konstrukcyjne</a>
2965</li><li class="level2">
2966<a href="https://www.trefl.com/zabawki/magiczne-sztuczki"
2967    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2968                        "
2969>
2970    Magiczne sztuczki</a>
2971</li><li class="level2">
2972<a href="https://www.trefl.com/zabawki/modele"
2973    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2974                        "
2975>
2976    Modele aut i pojazdów</a>
2977</li><li class="level2">
2978<a href="https://www.trefl.com/zabawki/outdoorowe"
2979    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2980                        "
2981>
2982    Zabawki outdoorowe</a>
2983</li><li class="level2">
2984<a href="https://www.trefl.com/zabawki/pilki"
2985    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2986                        "
2987>
2988    Piłki</a>
2989</li><li class="level2">
2990<a href="https://www.trefl.com/zabawki/kreatywne"
2991    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2992                        "
2993>
2994    Zabawki kreatywne</a>
2995</li><li class="level2">
2996<a href="https://www.trefl.com/zabawki/sensoryczne"
2997    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2998                        "
2999>
3000    Zabawki sensoryczne</a>
3001</li><li class="level2">
3002<a href="https://www.trefl.com/zabawki/hape"
3003    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3004                        "
3005>
3006    Zabawki Hape</a>
3007</li><li class="level2">
3008<a href="https://www.trefl.com/zabawki/zestawy-naukowe"
3009    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3010                        "
3011>
3012    Zabawki naukowe</a>
3013</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-55"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3014<a href="https://www.trefl.com/ksiazki"
3015    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3016        menu-mobile-parent-link                "
3017>
3018    Książki</a>
3019<button type="button"
3020                              @click="closeSubmenu('menu-55')"
3021                              class="w-10 h-10 flex items-center justify-center"
3022                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
3022ox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3023</button></div><div class="border-b border-gray parent-heading" data-level="2">
3024    <button @click.prevent="closeSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3025        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3026    </button>
3027<a href="https://www.trefl.com/ksiazki"
3028    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3029                is-parent        "
3030>
3031    Książki</a>
3032    <button @click.prevent="openSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3033        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
30330 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3034    </button>
3035</div><ul class="level2"><li class="level2">
3036<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-1-2-lata"
3037    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3038                        "
3039>
3040    Książki dla dzieci 1-2 lata</a>
3041</li><li class="level2">
3042<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-3-5-lat"
3043    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3044                        "
3045>
3046    Książki dla dzieci 3-5 lat</a>
3047</li><li class="level2">
3048<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-6-8-lat"
3049    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3050                        "
3051>
3052    Książki dla dzieci 6-8 lat</a>
3053</li><li class="level2">
3054<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-9-12-lat"
3055    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3056                        "
3057>
3058    Książki dla dzieci 9-12 lat</a>
3059</li><li class="level2">
3060<a href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
3061    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3062                        "
3063>
3064    Książki dla rodziców</a>
3065</li><li class="level2">
3066<a href="https://www.trefl.com/ksiazki/kolorowanki"
3067    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3068                        "
3069>
3070    Kolorowanki</a>
3071</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-56"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3072<a href="https://www.trefl.com/rodzina-treflikow"
3073    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3074        menu-mobile-parent-link                "
3075>
3076    Rodzina Treflików</a>
3077<button type="button"
3078                              @click="closeSubmenu('menu-56')"
3079                              class="w-10 h-10 flex items-center justify-center"
3080                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3081</button></div><div class="border-b border-gray parent-heading" data-level="2">
3082    <button @click.prevent="closeSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3083        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3084    </button>
3085<a href="https://www.trefl.com/rodzina-treflikow"
3086    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3087                is-parent        "
3088>
3089    Rodzina Treflików</a>
3090    <button @click.prevent="openSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3091        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
30910 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3092    </button>
3093</div><ul class="level2"><li class="level2">
3094<a href="https://www.trefl.com/rodzina-treflikow/puzzle"
3095    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3096                        "
3097>
3098    Puzzle Rodzina Treflików</a>
3099</li><li class="level2">
3100<a href="https://www.trefl.com/rodzina-treflikow/gry"
3101    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3102                        "
3103>
3104    Gry Rodzina Treflików</a>
3105</li><li class="level2">
3106<a href="https://www.trefl.com/rodzina-treflikow/zabawki"
3107    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3108                        "
3109>
3110    Zabawki Rodzina Treflików</a>
3111</li><li class="level2">
3112<a href="https://www.trefl.com/rodzina-treflikow/ksiazki"
3113    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3114                        "
3115>
3116    Książki Rodzina Treflików</a>
3117</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-57"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3118<a href="https://www.trefl.com/prezenty"
3119    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3120        menu-mobile-parent-link                "
3121>
3122    Prezenty</a>
3123<button type="button"
3124                              @click="closeSubmenu('menu-57')"
3125                              class="w-10 h-10 flex items-center justify-center"
3126                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3127</button></div><div class="border-b border-gray parent-heading" data-level="2">
3128    <button @click.prevent="closeSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3129        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3130    </button>
3131<a href="https://www.trefl.com/prezenty"
3132    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3133                is-parent        "
3134>
3135    Prezenty</a>
3136    <button @click.prevent="openSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3137        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
31370 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3138    </button>
3139</div><ul class="level2"><li class="level2">
3140    <button @click.prevent="closeSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3141        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3142    </button>
3143<a href="https://www.trefl.com/prezenty/dla-dzieci"
3144    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3145                is-parent        "
3146>
3147    Prezenty dla dzieci</a>
3148    <button @click.prevent="openSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3149        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
31490 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3150    </button>
3151</li><li class="level2">
3152<a href="https://www.trefl.com/prezenty/swiateczne"
3153    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3154                        "
3155>
3156    Prezenty świąteczne</a>
3157</li><li class="level2">
3158<a href="https://www.trefl.com/prezenty/urodzinowe"
3159    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3160                        "
3161>
3162    Prezenty urodzinowe</a>
3163</li><li class="level2">
3164<a href="https://www.trefl.com/prezenty/rodzinne"
3165    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3166                        "
3167>
3168    Prezenty rodzinne</a>
3169</li><li class="level2">
3170<a href="https://www.trefl.com/prezenty/wielkanocne-i-wiosenne"
3171    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3172                        "
3173>
3174    Prezenty wielkanocne i wiosenne</a>
3175</li><li class="level2">
3176<a href="https://www.trefl.com/prezenty/gry-planszowe-na-prezent"
3177    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3178                        "
3179>
3180    Gry planszowe na prezent</a>
3181</li></ul></div><div class="menu-mobile-submenu h-full level3" x-ref="menu-483"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3182<a href="https://www.trefl.com/prezenty/dla-dzieci"
3183    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3184        menu-mobile-parent-link                "
3185>
3186    Prezenty dla dzieci</a>
3187<button type="button"
3188                              @click="closeSubmenu('menu-483')"
3189                              class="w-10 h-10 flex items-center justify-center"
3190                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3191</button></div><div class="border-b border-gray parent-heading" data-level="3">
3192    <button @click.prevent="closeSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3193        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3194    </button>
3195<a href="https://www.trefl.com/prezenty/dla-dzieci"
3196    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3197                is-parent        "
3198>
3199    Prezenty dla dzieci</a>
3200    <button @click.prevent="openSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3201        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
32010 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3202    </button>
3203</div><ul class="level3"><li class="level3">
3204<a href="https://www.trefl.com/prezenty/dla-dzieci/0-2-lata"
3205    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3206                        "
3207>
3208    Prezenty dla dzieci 0-2 lata</a>
3209</li><li class="level3">
3210<a href="https://www.trefl.com/prezenty/dla-dzieci/3-5-lat"
3211    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3212                        "
3213>
3214    Prezenty dla dzieci 3-5 lat</a>
3215</li><li class="level3">
3216<a href="https://www.trefl.com/prezenty/dla-dzieci/6-8-lat"
3217    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3218                        "
3219>
3220    Prezenty dla dzieci 6-8 lat</a>
3221</li><li class="level3">
3222<a href="https://www.trefl.com/prezenty/dla-dzieci/9-12-lat"
3223    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3224                        "
3225>
3226    Prezenty dla dzieci 9-12 lat</a>
3227</li><li class="level3">
3228<a href="https://www.trefl.com/prezenty/dla-dzieci/13-lat-i-dorosli"
3229    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3230                        "
3231>
3232    Prezenty dla dzieci 13+ i dorosłych</a>
3233</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-58"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3234<a href="https://www.trefl.com/promocje"
3235    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3236        menu-mobile-parent-link                "
3237>
3238    Promocje</a>
3239<button type="button"
3240                              @click="closeSubmenu('menu-58')"
3241                              class="w-10 h-10 flex items-center justify-center"
3242                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3243</button></div><div class="border-b border-gray parent-heading" data-level="2">
3244    <button @click.prevent="closeSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3245        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3246    </button>
3247<a href="https://www.trefl.com/promocje"
3248    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3249                is-parent        "
3250>
3251    Promocje</a>
3252    <button @click.prevent="openSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3253        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
32530 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3254    </button>
3255</div><ul class="level2"><li class="level2">
3256<a href="https://www.trefl.com/promocje/puzzle"
3257    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3258                        "
3259>
3260    Puzzle w promocji</a>
3261</li><li class="level2">
3262<a href="https://www.trefl.com/promocje/gry"
3263    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3264                        "
3265>
3266    Gry w promocji</a>
3267</li><li class="level2">
3268<a href="https://www.trefl.com/promocje/zabawki"
3269    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3270                        "
3271>
3272    Zabawki w promocji</a>
3273</li><li class="level2">
3274<a href="https://www.trefl.com/promocje/ksiazki"
3275    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3276                        "
3277>
3278    Książki w promocji</a>
3279</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-542"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3280<a href="https://www.trefl.com/marki"
3281    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3282        menu-mobile-parent-link                "
3283>
3284    Marki i licencje</a>
3285<button type="button"
3286                              @click="closeSubmenu('menu-542')"
3287                              class="w-10 h-10 flex items-center justify-center"
3288                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3289</button></div><div class="border-b border-gray parent-heading" data-level="2">
3290    <button @click.prevent="closeSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3291        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3292    </button>
3293<a href="https://www.trefl.com/marki"
3294    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3295                is-parent        "
3296>
3297    Marki i licencje</a>
3298    <button @click.prevent="openSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3299        <svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewBox="0 0 6 10" fill="none" role="img"><path fill="currentColor" fill-rule="evenodd" d="M.231 9.769a.79.79 0 0 1 0-1.117L3.884 5 .23 1.348A.79.79 
32990 0 1 1.348.23l4.21 4.21a.79.79 0 0 1 0 1.117l-4.21 4.21a.79.79 0 0 1-1.117 0Z" clip-rule="evenodd"/><title>arrow-right</title></svg>
3300    </button>
3301</div><ul class="level2"><li class="level2">
3302<a href="https://www.trefl.com/marki/avengers"
3303    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3304                        "
3305>
3306    Avengers</a>
3307</li><li class="level2">
3308<a href="https://www.trefl.com/marki/barbie"
3309    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3310                        "
3311>
3312    Barbie</a>
3313</li><li class="level2">
3314<a href="https://www.trefl.com/marki/cars"
3315    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3316                        "
3317>
3318    Cars</a>
3319</li><li class="level2">
3320<a href="https://www.trefl.com/marki/disney"
3321    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3322                        "
3323>
3324    Disney</a>
3325</li><li class="level2">
3326<a href="https://www.trefl.com/marki/garfield"
3327    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3328                        "
3329>
3330    Garfield</a>
3331</li><li class="level2">
3332<a href="https://www.trefl.com/marki/harry-potter"
3333    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3334                        "
3335>
3336    Harry Potter</a>
3337</li><li class="level2">
3338<a href="https://www.trefl.com/marki/hello-kitty"
3339    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3340                        "
3341>
3342    Hello Kitty</a>
3343</li><li class="level2">
3344<a href="https://www.trefl.com/marki/koci-domek-gabi"
3345    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3346                        "
3347>
3348    Koci Domek Gabi</a>
3349</li><li class="level2">
3350<a href="https://www.trefl.com/marki/koci-domek-gabi"
3351    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3352                        "
3353>
3354    Kraina Lodu (Frozen)</a>
3355</li><li class="level2">
3356<a href="https://www.trefl.com/marki/lilo-stitch"
3357    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3358                        "
3359>
3360    Lilo &amp; Stitch</a>
3361</li><li class="level2">
3362<a href="https://www.trefl.com/marki/minionki"
3363    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3364                        "
3365>
3366    Minionki</a>
3367</li><li class="level2">
3368<a href="https://www.trefl.com/marki/myszka-mickey"
3369    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3370                        "
3371>
3372    Myszka Mickey</a>
3373</li><li class="level2">
3374<a href="https://www.trefl.com/marki/psi-patrol"
3375    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3376                        "
3377>
3378    Psi Patrol</a>
3379</li><li class="level2">
3380<a href="https://www.trefl.com/marki/pusheen"
3381    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3382                        "
3383>
3384    Pusheen</a>
3385</li><li class="level2">
3386<a href="https://www.trefl.com/marki/rick-i-morty"
3387    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3388                        "
3389>
3390    Rick i Morty</a>
3391</li><li class="level2">
3392<a href="https://www.trefl.com/marki/smerfy"
3393    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3394                        "
3395>
3396    Smerfy</a>
3397</li><li class="level2">
3398<a href="https://www.trefl.com/marki/diplodok"
3399    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3400                        "
3401>
3402    Smok Diplodok</a>
3403</li><li class="level2">
3404<a href="https://www.trefl.com/marki/spidey"
3405    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3406                        "
3407>
3408    Spidey</a>
3409</li><li class="level2">
3410<a href="https://www.trefl.com/marki/spongebob-kanciastoporty"
3411    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3412                        "
3413>
3414    SpongeBob Kanciastoporty</a>
3415</li><li class="level2">
3416<a href="https://www.trefl.com/marki/star-wars"
3417    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3418                        "
3419>
3420    Star Wars</a>
3421</li><li class="level2">
3422<a href="https://www.trefl.com/marki/strazak-sam"
3423    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3424                        "
3425>
3426    Strażak Sam</a>
3427</li><li class="level2">
3428<a href="https://www.trefl.com/marki/swinka-peppa"
3429    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3430                        "
3431>
3432    Świnka Peppa</a>
3433</li><li class="level2">
3434<a href="https://www.trefl.com/marki/tomek-i-przyjaciele"
3435    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3436                        "
3437>
3438    Tomek i Przyjaciele</a>
3439</li><li class="level2">
3440<a href="https://www.trefl.com/marki/w-glowie-sie-nie-miesci-2"
3441    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3442                        "
3443>
3444    W głowie się nie mieści</a>
3445</li></ul></div><div class="menu-mobile-submenu h-full level2" x-ref="menu-273"><div class="bg-primary h-14 w-full flex items-center text-white z-10 sticky top-0 justify-between pl-10 pr-3">
3446<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
3447        menu-mobile-parent-link        "
3448            @click.prevent="openSubmenu('menu-273')"
3449    >
3450    Gry wirtualne</button>
3451<button type="button"
3452                              @click="closeSubmenu('menu-273')"
3453                              class="w-10 h-10 flex items-center justify-center"
3454                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
3454ox="0 0 6 10" fill="none" class="text-gray-light" role="img"><path fill="currentColor" fill-rule="evenodd" d="M5.769.231a.79.79 0 0 1 0 1.117L2.116 5 5.77 8.652A.79.79 0 0 1 4.652 9.77l-4.21-4.21a.79.79 0 0 1 0-1.117l4.21-4.21a.79.79 0 0 1 1.117 0Z" clip-rule="evenodd"/><title>arrow-left</title></svg>
3455</button></div><div class="border-b border-gray parent-heading" data-level="2">
3456<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
3457                "
3458            @click.prevent="openSubmenu('menu-273')"
3459    >
3460    Gry wirtualne</button>
3461</div><ul class="level2"><li class="level2">
3462    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3463        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
3464                    target="_blank"
3465            rel="noopener"
3466                data-menu="menu-274"    >
3467        Treflandia na Roblox    </a>
3468</li><li class="level2">
3469    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3470        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
3471                    target="_blank"
3472            rel="noopener"
3473                data-menu="menu-275"    >
3474        Gry na Nintendo    </a>
3475</li><li class="level2">
3476    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3477        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
3478                    target="_blank"
3479            rel="noopener"
3480                data-menu="menu-276"    >
3481        Gry na PC (Steam)    </a>
3482</li><li class="level2">
3483    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3484        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
3485                    target="_blank"
3486            rel="noopener"
3487                data-menu="menu-277"    >
3488        Gry mobilne (Apple)    </a>
3489</li><li class="level2">
3490    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3491        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
3492                    target="_blank"
3493            rel="noopener"
3494                data-menu="menu-278"    >
3495        Gry mobilne (Android)    </a>
3496</li></ul></div>            </div>
3497        </div>
3498    </nav>
3499
3500    <!--Cart Drawer-->
3501    
3501<script>
3502    function initCartDrawer() {
3503        return {
3504            open: false,
3505            isLoading: false,
3506            cart: {},
3507            maxItemsToDisplay: 10,
3508            itemsCount: 0,
3509            getData(data) {
3510                if (data.cart) {
3511                    this.cart = data.cart;
3512                    this.itemsCount = data.cart.items && data.cart.items.length || 0;
3513                    this.setCartItems();
3514                }
3515                this.isLoading = false;
3516            },
3517            cartItems: [],
3518            getItemCountTitle() {
3519                return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount)
3520            },
3521            setCartItems() {
3522                this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || [];
3523
3524                if (this.maxItemsToDisplay > 0) {
3525                    this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10));
3526                }
3527            },
3528            formatOptionValue(value) {
3529                if (!Array.isArray(value)) {
3530                    return value;
3531                }
3532                return value
3533                    .map(line => line.replace('<span class="price"', '- <span class="price"'))
3534                    .join('<br>');
3535            },
3536            deleteItemFromCart(itemId) {
3537                this.isLoading = true;
3538
3539                const formKey = hyva.getFormKey();
3540                const postUrl = BASE_URL + 'checkout/sidebar/removeItem/';
3541
3542                fetch(postUrl, {
3543                    "headers": {
3544                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
3545                    },
3546                    "body": "form_key=" + formKey + "&item_id=" + itemId,
3547                    "method": "POST",
3548                    "mode": "cors",
3549                    "credentials": "include"
3550                }).then(response => {
3551                    if (response.redirected) {
3552                        window.location.href = response.url;
3553                    } else if (response.ok) {
3554                        return response.json();
3555                    } else {
3556                        window.dispatchMessages && window.dispatchMessages([{
3557                            type: 'warning',
3558                            text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.'
3559                        }]);
3560                        this.isLoading = false;
3561                    }
3562                }).then(result => {
3563                    window.dispatchMessages && window.dispatchMessages([{
3564                        type: result.success ? 'success' : 'error',
3565                        text: result.success
3566                            ? 'Usuni\u0119to\u0020element.'
3567                            : result.error_message
3568                    }], result.success ? 5000 : 0)
3569                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
3570                });
3571            },
3572            scrollLock(use = true) {
3573                document.body.style.overflow = use ? "hidden" : "";
3574            },
3575            toggleCartDrawer(event) {
3576                if (event.detail && event.detail.isOpen !== undefined) {
3577                    if (event.detail.isOpen) {
3578                        this.openCartDrawer();
3579                    } else {
3580                        this.open = false;
3581                        this.scrollLock(false);
3582                        this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent);
3583                    }
3584                } else {
3585                                        this.openCartDrawer()
3586                }
3587            },
3588            openCartDrawer() {
3589                this.open = true;
3590                this.scrollLock(true);
3591                this.$nextTick(() => {
3592                    this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent)
3593                })
3594            },
3595            closeCartDrawer() {
3596                this.$dispatch('toggle-cart', { isOpen: false })
3597            },
3598            getSectionDataExtraActions() {
3599                if (!this.cart.extra_actions) {
3600                    return '';
3601                }
3602
3603                const contentNode = document.createElement('div');
3604                contentNode.innerHTML = this.cart.extra_actions;
3605
3606                hyva.activateScripts(contentNode);
3607
3608                return contentNode.innerHTML;
3609            }
3610        }
3611    }
3612</script>
3612
3613<section x-cloak
3614         x-show="cart"
3615         id="cart-drawer"
3616         x-data="initCartDrawer()"
3617         @private-content-loaded.window="getData($event.detail.data)"
3618         @toggle-cart.window="toggleCartDrawer($event)"
3619         @keydown.escape="closeCartDrawer"
3620>
3621    <div role="dialog"
3622         aria-labelledby="cart-drawer-title"
3623         aria-modal="true"
3624         :aria-hidden="!open"
3625         class="fixed inset-y-0 right-0 z-30 flex max-w-full">
3626        <div class="backdrop"
3627             x-show="open"
3628             x-transition:enter="ease-in-out duration-500"
3629             x-transition:enter-start="opacity-0"
3630             x-transition:enter-end="opacity-100"
3631             x-transition:leave="ease-in-out duration-500"
3632             x-transition:leave-start="opacity-100"
3633             x-transition:leave-end="opacity-0"
3634             role="button"
3635             @click="closeCartDrawer"
3636             aria-label="Zamknij&#x20;koszyk"></div>
3637        <div class="relative w-screen max-w-md shadow-2xl"
3638             x-show="open"
3639             x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
3640             x-transition:enter-start="translate-x-full"
3641             x-transition:enter-end="translate-x-0"
3642             x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
3643             x-transition:leave-start="translate-x-0"
3644             x-transition:leave-end="translate-x-full"
3645             x-ref="cartDialogContent"
3646             role="region"
3647             :tabindex="open ? 0 : -1"
3648             aria-label="M&#xF3;j&#x20;koszyk"
3649
3650        >
3651            <div class="flex flex-col h-full max-h-screen bg-white shadow-xl">
3652                
3653                <header class="relative px-4 py-6 sm:px-6">
3654                    <p id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
3655                        <strong>Mój koszyk</strong>
3656                        <span class="items-total text-xs"
3657                              x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount"
3658                              x-text="getItemCountTitle()">
3659                        </span>
3660                    </p>
3661                </header>
3662
3663                
3664                <template x-if="!itemsCount">
3665                    <div class="relative px-4 py-6 bg-white border-bs sm:px-6 border-container">
3666                        Koszyk jest pusty                    </div>
3667                </template>
3668
3669                <template x-if="itemsCount">
3670                    <div class="relative grid gap-6 sm:gap-8 px-1 py-3 sm:px-3 bg-white border-b border-container overflow-y-auto overscroll-y-contain">
3671                        <template x-for="item in cartItems">
3672                            <div class="product-item flex items-start p-3 space-x-4">
3673                                <a :href="item.product_url"
3674                                   class="w-1/4"
3675                                   :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)"
3676                                >
3677                                    <img
3678                                        :src="item.product_image.src"
3679                                        :width="item.product_image.width"
3680                                        :height="item.product_image.height"
3681                                        loading="lazy"
3682                                        alt=""
3683                                    />
3684                                </a>
3685                                <div class="w-3/4 space-y-2">
3686                                    <div>
3687                                        <p class="text-xl">
3688                                            <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
3689                                        </p>
3690                                    </div>
3691                                    <template x-for="option in item.options">
3692                                        <template x-if="option.label !== 'clientDesignId'">
3693                                            <div class="text-sm">
3694                                                <p class="font-semibold" x-text="option.label + ':'"></p>
3695                                                <p class="text-secondary" x-html="formatOptionValue(option.value)"></p>
3696                                            </div>
3697                                        </template>
3698                                    </template>
3699                                    <div class="price-container">
3700                                        <template x-if="item.is_discount">
3701                                            <div class="price-box price-final_price">
3702                                                <span class="old-price price" x-html="item.original_price"></span>
3703                                                <span class="special-price price" x-html="item.price_incl_discount"></span>
3704                                            </div>
3705                                        </template>
3706                                        <template x-if="!item.is_discount">
3707                                            <span class="price" x-html="item.product_price"></span>
3708                                        </template>
3709                                    </div>
3710                                    <div>
3711                                        <a :href="item.configure_url"
3712                                           x-show="item.product_type !== 'grouped' && item.is_visible_in_site_visibility && item?.options?.some(option => option.label !== 'clientDesignId')"
3713                                           class="inline-flex p-2 mr-2 btn btn-secondary"
3714                                           :aria-label="hyva.strf('Edit\u0020product\u0020\u0022\u00250\u0022', item.product_name)"
3715                                        >
3716                                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" aria-hidden="true">
3717  <path stroke-linecap="round" stroke-linejoin="round" d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"/>
3718</svg>
3719                                        </a>
3720                                        <button type="button"
3721                                                class="inline-flex p-2 btn btn-secondary"
3722                                                @click="deleteItemFromCart(item.item_id)"
3723                                                :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)"
3724                                        >
3725                                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" aria-hidden="true">
3726  <path stroke-linecap="round" stroke-linejoin="round" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"/>
3727</svg>
3728                                        </button>
3729                                    </div>
3730
3731                                </div>
3732                            </div>
3733                        </template>
3734                    </div>
3735                </template>
3736
3737                <template x-if="itemsCount">
3738                    <div>
3739                        
3740                        <div class="relative grid gap-4 py-3 px-1 sm:px-3 bg-white">
3741                            <div class="w-full p-3 space-x-4">
3742                                <p class="text-lg">Łącznie:
3743                                    <strong x-html="cart.subtotal" class="font-semibold"></strong>
3744                                </p>
3745                            </div>
3746                            <div class="w-full p-3 pt-0 flex">
3747                                <a href="https://www.trefl.com/checkout/cart/"
3748                                   class="btn btn-primary">
3749                                    Przejdź do koszyka                                </a>
3750                            </div>
3751                            <div x-html="getSectionDataExtraActions()"></div>
3752                                                    </div>
3753                    </div>
3754                </template>
3755
3756                            </div>
3757
3758            <button
3759                type="button"
3760                @click="closeCartDrawer"
3761                aria-label="Zamknij&#x20;koszyk"
3762                class="absolute top-0 right-2 p-4 mt-2 text-gray-300 transition-colors hover:text-black"
3763            >
3764                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true">
3765  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
3766</svg>
3767            </button>
3768        </div>
3769        <div
3770    class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800"
3771    x-cloak
3772    x-show="isLoading"
3773    x-transition.opacity.duration.200ms
3774>
3775    <div class="flex gap-10 items-center p-4">
3776        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
3777    <style>
3778        @keyframes spinner-ball-triangle1 {
3779            0% { transform: translate(0%, 0%); }
3780            33% { transform: translate(38%, -79%); }
3781            66% { transform: translate(77%, 0%); }
3782            100% { transform: translate(0%, 0%); }
3783        }
3784
3785        @keyframes spinner-ball-triangle2 {
3786            0% { transform: translate(0%, 0%); }
3787            33% { transform: translate(38%, 79%); }
3788            66% { transform: translate(-38%, 79%); }
3789            100% { transform: translate(0%, 0%); }
3790        }
3791
3792        @keyframes spinner-ball-triangle3 {
3793            0% { transform: translate(0%, 0%); }
3794            33% { transform: translate(-77%, 0%); }
3795            66% { transform: translate(-38%, -79%); }
3796            100% { transform: translate(0%, 0%); }
3797        }
3798    </style>
3799    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
3800    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
3801    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
3802</svg>
3803        <span class="text-xl select-none">
3804            Ładuję...        </span>
3805    </div>
3806</div>
3807    </div>
3808
3809</section>
3810
3811    <!--Authentication Pop-Up-->
3812    
3812<script>
3813    function initAuthentication() {
3814        return {
3815            open: false,
3816            close() {
3817                this.open = false;
3818            },
3819            forceAuthentication: false,
3820            checkoutUrl: 'https://www.trefl.com/checkout/index/',
3821            errors: 0,
3822            hasCaptchaToken: 0,
3823            displayErrorMessage: false,
3824            errorMessages: [],
3825            setErrorMessages(message) {
3826                this.errorMessages = [message];
3827                this.displayErrorMessage = true;
3828            },
3829            submitForm() {
3830                // Do not rename $form, the variable is expected to be declared in the recaptcha output
3831                const $form = document.querySelector('#login-form');
3832                
3833                if (this.errors === 0) {
3834                    this.dispatchLoginRequest($form);
3835                }
3836            },
3837            onPrivateContentLoaded() {
3838                const data = this.$event.detail.data;
3839                const isLoggedIn = data.customer && data.customer.firstname;
3840                if (data.cart && !isLoggedIn) {
3841                    this.forceAuthentication = !data.cart.isGuestCheckoutAllowed;
3842                }
3843            },
3844            redirectIfAuthenticated() {
3845                const event = this.$event;
3846                this.open = this.forceAuthentication;
3847
3848                if (event.detail && event.detail.url) {
3849                    this.checkoutUrl = event.detail.url;
3850                }
3851                if (!this.forceAuthentication) {
3852                    window.location.href = this.checkoutUrl;
3853                }
3854            },
3855            resetErrors() {
3856                this.errors = 0;
3857            },
3858            dispatchLoginRequest(form) {
3859                this.isLoading = true;
3860                const username = this.$refs['customer-email'].value;
3861                const password = this.$refs['customer-password'].value;
3862                const formKey = hyva.getFormKey();
3863                const bodyFields = {
3864                    'username': username,
3865                    'password': password,
3866                    'formKey': formKey
3867                };
3868                                const fieldName = 'g\u002Drecaptcha\u002Dresponse';
3869                const recaptchaField = fieldName && form[fieldName];
3870                if (recaptchaField) {
3871                    bodyFields[fieldName] = recaptchaField.value;
3872                }
3873                fetch('https://www.trefl.com/customer/ajax/login/', {
3874                        method: 'POST',
3875                        headers: {
3876                            'Content-Type': 'application/json',
3877                            'X-Requested-With': 'XMLHttpRequest'
3878                        },
3879                        body: JSON.stringify(bodyFields)
3880                    }
3881                ).then(response => {
3882                        return response.json()
3883                    }
3884                ).then(data => {
3885                    this.isLoading = false;
3886                    if (data.errors) {
3887                        this.setErrorMessages(data.message);
3888                        this.errors = 1;
3889                        this.hasCaptchaToken = 0;
3890                    } else {
3891                        window.location.href = this.checkoutUrl;
3892                    }
3893                });
3894            }
3895        }
3896    }
3897
3898    window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true})
3899</script>
3899
3900<section id="authentication-popup"
3901         x-data="initAuthentication"
3902         @private-content-loaded.window="onPrivateContentLoaded"
3903         @toggle-authentication.window="redirectIfAuthenticated"
3904         @keydown.window.escape="close"
3905>
3906    <div
3907        class="backdrop"
3908        aria-hidden="true"
3909        x-cloak
3910        x-show="open"
3911        x-transition:enter="ease-in-out duration-500"
3912        x-transition:enter-start="opacity-0"
3913        x-transition:enter-end="opacity-100"
3914        x-transition:leave="ease-in-out duration-500"
3915        x-transition:leave-start="opacity-100"
3916        x-transition:leave-end="opacity-0"
3917        @click="close"
3918    ></div>
3919    <div role="dialog"
3920         aria-modal="true"
3921         @click.outside="close"
3922         class="inset-y-0 right-0 z-30 flex max-w-full fixed"
3923         x-cloak
3924         x-show="open"
3925    >
3926        <div class="relative w-screen max-w-md pt-16 bg-container-lighter"
3927             x-show="open"
3928             x-cloak
3929             x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
3930             x-transition:enter-start="translate-x-full"
3931             x-transition:enter-end="translate-x-0"
3932             x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
3933             x-transition:leave-start="translate-x-0"
3934             x-transition:leave-end="translate-x-full"
3935        >
3936            <div
3937                x-show="open"
3938                x-cloak
3939                x-transition:enter="ease-in-out duration-500"
3940                x-transition:enter-start="opacity-0"
3941                x-transition:enter-end="opacity-100"
3942                x-transition:leave="ease-in-out duration-500"
3943                x-transition:leave-start="opacity-100"
3944                x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2">
3945                <button
3946                    type="button"
3947                    @click="close"
3948                    aria-label="Close&#x20;panel"
3949                    class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black"
3950                >
3951                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true">
3952  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
3953</svg>
3954                </button>
3955            </div>
3956            <template x-if="open">
3957                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto">
3958                    <div class="mx-4">
3959                        <div class="message error mb-0" x-show="errors" x-cloak>
3960                            <template x-for="(message, index) in errorMessages" :key="index">
3961                                <div>
3962                                    <template x-if="message">
3963                                        <span x-html="message"></span>
3964                                    </template>
3965                                </div>
3966                            </template>
3967                        </div>
3968                    </div>
3969                    <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm">
3970                        <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900">
3971                            <strong class="font-medium">Checkout using your account</strong>
3972                        </p>
3973
3974                        <form class="form form-login"
3975                              method="post"
3976                              @submit.prevent="submitForm"
3977                              id="login-form"
3978                        >
3979                                                        <div class="fieldset login">
3980                                <div class="field email required">
3981                                    <label class="label" for="form-login-username" form="login-form" >
3982                                        <span>Adres e-mail</span>
3983                                    </label>
3984                                    <div class="control">
3985                                        <input name="username"
3986                                               id="form-login-username"
3987                                               x-ref="customer-email"
3988                                               @change="resetErrors"
3989                                               type="email"
3990                                               required
3991                                               autocomplete="off"
3992                                               class="form-input"
3993                                        >
3994                                    </div>
3995                                </div>
3996                                <div class="field password required">
3997                                    <label for="form-login-password" class="label" form="login-form">
3998                                        <span>Hasło</span>
3999                                    </label>
4000                                    <div class="control">
4001                                        <input name="password"
4002                                               id="form-login-password"
4003                                               type="password"
4004                                               class="form-input"
4005                                               required
4006                                               x-ref="customer-password"
4007                                               autocomplete="off"
4008                                               @change="resetErrors"
4009                                        >
4010                                    </div>
4011                                </div>
4012
4013                                <input name="context" type="hidden" value="checkout" />
4014                                <div class="actions-toolbar pt-6 pb-2">
4015                                    <button type="submit"                                            class="inline-flex btn btn-primary disabled:opacity-75"
4016                                    >
4017                                        Zaloguj się                                    </button>
4018                                    <a href="https://www.trefl.com/customer/account/forgotpassword/"
4019                                    >
4020                                        Zapomniałeś hasła?                                    </a>
4021                                </div>
4022
4023                            </div>
4024                        </form>
4025                    </div>
4026                    <div class="mx-4">
4027                                            </div>
4028                    <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm">
4029                        <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900">
4030                            <strong class="font-medium">Checkout as a new customer</strong>
4031                        </p>
4032
4033                        <div class="block-content">
4034                            <p class="mb-1">
4035                                Stworzenie konta ma wiele korzyści:                            </p>
4036                            <ul class="list-disc pl-5">
4037                                <li> Zobacz zamówienie i stan wysyłki</li>
4038                                <li> Śledzenie historii zamówień</li>
4039                                <li> Zamawiaj szybciej</li>
4040                            </ul>
4041                            <div class="actions-toolbar mt-6 mb-2">
4042                                <a href="https://www.trefl.com/customer/account/create/"
4043                                   class="inline-flex btn btn-primary">
4044                                    Utwórz konto                                </a>
4045                            </div>
4046                        </div>
4047                    </div>
4048                </div>
4049            </template>
4050        </div>
4051    </div>
4052</section>
4053</div>
4054
4055
4056    
4056<script>
4057        'use strict';
4058
4059        const initTopmenuDesktop_6abd94b857ccd = () => ({
4060            openSubmenuId: null,
4061            toggleSubmenu(menuNode, state, $event) {
4062                if (state === true) {
4063                    this.openSubmenuId = menuNode;
4064                    this.focusFirstLinkInSubmenu(menuNode, $event);
4065                } else if (state === false) {
4066                    this.openSubmenuId = null;
4067                } else {
4068                    if (this.openSubmenuId === menuNode) {
4069                        this.openSubmenuId = null;
4070                    } else {
4071                        this.openSubmenuId = menuNode;
4072                        this.focusFirstLinkInSubmenu(menuNode, $event);
4073                    }
4074                }
4075
4076                if ($event.code === 'Escape') {
4077                    setTimeout(() => {
4078                        const parentEl = $event.target?.closest('.menu-desktop-item-wrap')?.querySelector('a');
4079                        console.log(parentEl)
4080                        if (parentEl) {
4081                            parentEl.focus();
4082                        }
4083                    }, 100);
4084                }
4085            },
4086            focusFirstLinkInSubmenu(menuNode, $event) {
4087                if ($event.code === 'Enter' || $event.code === 'Space') {
4088                    const submenu = this.$refs[`submenu-${menuNode}`];
4089                    if (submenu) {
4090                        const firstLink = submenu.querySelector('a');
4091                        if (firstLink) {
4092                            setTimeout(() => firstLink.focus(), 100);
4093                        }
4094                    }
4095                }
4096            },
4097            stickyObserver(navigationEl) {
4098                const headerEl = document.querySelector('header.page-header');
4099                new IntersectionObserver(
4100                    ([e]) => {
4101                        headerEl.classList.toggle('contents', e.intersectionRatio < 1)
4102                        navigationEl.classList.toggle('shadow-md', e.intersectionRatio < 1)
4103                    },
4104                    { threshold: [1] }
4105                ).observe(navigationEl);
4106            }
4107        })
4108    </script>
4108
4109
4110        <div x-data="initTopmenuDesktop_6abd94b857ccd()"
4111         x-init="stickyObserver($el)"
4112         class="            navigation hidden w-full lg:block sticky -top-px bg-white z-20 transition-shadow">
4113        <div class="overflow-x-hidden">
4114            <nav
4115                class="snowdog-topmenu-desktop menu-desktop container lg:flex justify-between items-center"
4116                aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
4117            >
4118                <ul
4119                    class="flex gap-x-4"
4120                    @mouseleave="openSubmenuId = null"
4121                    role="menubar"
4122                >
4123                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4124                                    "
4125                                                            @mouseenter="toggleSubmenu('4', null, $event)"
4126                                @keydown.enter.prevent="toggleSubmenu('4', null, $event)"
4127                                @keydown.space.prevent="toggleSubmenu('4', null, $event)"
4128                                @keydown.escape.prevent="toggleSubmenu('4', false, $event)"
4129                                aria-haspopup="true"
4130                                :aria-expanded="openSubmenuId === '4'"
4131                                :tabindex="openSubmenuId === '4' ? 0 : -1"
4132                                                        role="menuitem"
4133                            >
4134                            <div class="menu-desktop-item-wrap relative flex items-center">
4135                                
4136<a href="https://www.trefl.com/puzzle"
4137    class="snowdog-menu-link "
4138            data-menu="menu-4"
4139    >
4140    Puzzle</a>
4141
4142                                                                    <span class="flex items-center justify-center ml-1.5" aria-hidden="true">
4143                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
4144                                    </span>
4145                                                            </div>
4146
4147                                                                            <div
4148            x-ref="submenu-4"
4149            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4150            x-show="openSubmenuId === '4'"
4151            x-cloak
4152        >
4153            <div class="container h-full">
4154                    <ul
4155                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4156                    title="Submenu for Puzzle"
4157                >
4158                                                                    <li
4159                            class="menu-desktop-item menu-desktop-item--level2 "
4160                        >
4161                            
4162<a href="https://www.trefl.com/puzzle/dla-dzieci"
4163    class="snowdog-menu-link "
4164            data-menu="menu-359"
4165    >
4166    Puzzle dla dzieci</a>
4167                                                    </li>
4168
4169                                                                                            <li
4170                            class="menu-desktop-item menu-desktop-item--level2 "
4171                        >
4172                            
4173<a href="https://www.trefl.com/puzzle/dla-doroslych"
4174    class="snowdog-menu-link "
4175            data-menu="menu-6"
4176    >
4177    Puzzle dla dorosłych</a>
4178                                                    </li>
4179
4180                                                                                            <li
4181                            class="menu-desktop-item menu-desktop-item--level2 "
4182                        >
4183                            
4184<a href="https://www.trefl.com/puzzle/500-elementow"
4185    class="snowdog-menu-link "
4186            data-menu="menu-217"
4187    >
4188    Puzzle 500 elementów</a>
4189                                                    </li>
4190
4191                                                                                            <li
4192                            class="menu-desktop-item menu-desktop-item--level2 "
4193                        >
4194                            
4195<a href="https://www.trefl.com/puzzle/1000-elementow"
4196    class="snowdog-menu-link "
4197            data-menu="menu-218"
4198    >
4199    Puzzle 1000 elementów</a>
4200                                                    </li>
4201
4202                                                                                            <li
4203                            class="menu-desktop-item menu-desktop-item--level2 "
4204                        >
4205                            
4206<a href="https://www.trefl.com/puzzle/1500-elementow"
4207    class="snowdog-menu-link "
4208            data-menu="menu-219"
4209    >
4210    Puzzle 1500 elementów</a>
4211                                                    </li>
4212
4213                                                                                            <li
4214                            class="menu-desktop-item menu-desktop-item--level2 "
4215                        >
4216                            
4217<a href="https://www.trefl.com/puzzle/2000-elementow"
4218    class="snowdog-menu-link "
4219            data-menu="menu-220"
4220    >
4221    Puzzle 2000 elementów</a>
4222                                                    </li>
4223
4224                                                                                            <li
4225                            class="menu-desktop-item menu-desktop-item--level2 "
4226                        >
4227                            
4228<a href="https://www.trefl.com/puzzle/3000-elementow"
4229    class="snowdog-menu-link "
4230            data-menu="menu-221"
4231    >
4232    Puzzle 3000 elementów</a>
4233                                                    </li>
4234
4235                                                                                            <li
4236                            class="menu-desktop-item menu-desktop-item--level2 "
4237                        >
4238                            
4239<a href="https://www.trefl.com/puzzle/4000-elementow"
4240    class="snowdog-menu-link "
4241            data-menu="menu-222"
4242    >
4243    Puzzle 4000 elementów</a>
4244                                                    </li>
4245
4246                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4247                                                                                            <li
4248                            class="menu-desktop-item menu-desktop-item--level2 "
4249                        >
4250                            
4251<a href="https://www.trefl.com/puzzle/6000-elementow"
4252    class="snowdog-menu-link "
4253            data-menu="menu-223"
4254    >
4255    Puzzle 6000 elementów</a>
4256                                                    </li>
4257
4258                                                                                            <li
4259                            class="menu-desktop-item menu-desktop-item--level2 "
4260                        >
4261                            
4262<a href="https://www.trefl.com/puzzle/8000-elementow"
4263    class="snowdog-menu-link "
4264            data-menu="menu-628"
4265    >
4266    Puzzle 8000 elementów</a>
4267                                                    </li>
4268
4269                                                                                            <li
4270                            class="menu-desktop-item menu-desktop-item--level2 "
4271                        >
4272                            
4273<a href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
4274    class="snowdog-menu-link "
4275            data-menu="menu-261"
4276    >
4277    Puzzle 9000 elementów</a>
4278                                                    </li>
4279
4280                                                                                            <li
4281                            class="menu-desktop-item menu-desktop-item--level2 "
4282                        >
4283                            
4284        <a href="https://www.trefl.com/puzzle-premium-plus-quality-10000-el-windows-of-the-seasons-81051"
4285        class="snowdog-menu-link "
4286                    data-menu="menu-630"
4287                        data-menu="menu-630"    >
4288        Puzzle 10 000 elementów    </a>
4289                                                    </li>
4290
4291                                                                                            <li
4292                            class="menu-desktop-item menu-desktop-item--level2 "
4293                        >
4294                            
4295<a href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
4296    class="snowdog-menu-link "
4297            data-menu="menu-262"
4298    >
4299    Puzzle 13 500 elementów</a>
4300                                                    </li>
4301
4302                                                                                            <li
4303                            class="menu-desktop-item menu-desktop-item--level2 "
4304                        >
4305                            
4306        <a href="https://www.trefl.com/puzzle-prime-21000-el-earth-chronicles-from-the-creation-to-the-future-81040"
4307        class="snowdog-menu-link "
4308                    data-menu="menu-263"
4309                        data-menu="menu-263"    >
4310        Puzzle 21 000 elementów    </a>
4311                                                    </li>
4312
4313                                                                                            <li
4314                            class="menu-desktop-item menu-desktop-item--level2 "
4315                        >
4316                            
4317<a href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
4318    class="snowdog-menu-link "
4319            data-menu="menu-224"
4320    >
4321    Puzzle Premium Plus Quality</a>
4322                                                    </li>
4323
4324                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4325                                                                                            <li
4326                            class="menu-desktop-item menu-desktop-item--level2 "
4327                        >
4328                            
4329<a href="https://www.trefl.com/puzzle/drewniane"
4330    class="snowdog-menu-link "
4331            data-menu="menu-235"
4332    >
4333    Puzzle drewniane</a>
4334                                                    </li>
4335
4336                                                                                            <li
4337                            class="menu-desktop-item menu-desktop-item--level2 "
4338                        >
4339                            
4340<a href="https://www.trefl.com/puzzle/puzzle-filmowe"
4341    class="snowdog-menu-link "
4342            data-menu="menu-237"
4343    >
4344    Puzzle filmowe</a>
4345                                                    </li>
4346
4347                                                                                            <li
4348                            class="menu-desktop-item menu-desktop-item--level2 "
4349                        >
4350                            
4351<a href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
4352    class="snowdog-menu-link "
4353            data-menu="menu-5"
4354    >
4355    Puzzle jubileuszowe na 40-lecie</a>
4356                                                    </li>
4357
4358                                                                                            <li
4359                            class="menu-desktop-item menu-desktop-item--level2 "
4360                        >
4361                            
4362<a href="https://www.trefl.com/puzzle/puzzle-kosmos"
4363    class="snowdog-menu-link "
4364            data-menu="menu-238"
4365    >
4366    Puzzle kosmos</a>
4367                                                    </li>
4368
4369                                                                                            <li
4370                            class="menu-desktop-item menu-desktop-item--level2 "
4371                        >
4372                            
4373<a href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
4374    class="snowdog-menu-link "
4375            data-menu="menu-239"
4376    >
4377    Puzzle krajobrazy</a>
4378                                                    </li>
4379
4380                                                                                            <li
4381                            class="menu-desktop-item menu-desktop-item--level2 "
4382                        >
4383                            
4384<a href="https://www.trefl.com/puzzle/puzzle-kulinarne"
4385    class="snowdog-menu-link "
4386            data-menu="menu-240"
4387    >
4388    Puzzle kulinarne</a>
4389                                                    </li>
4390
4391                                                                                            <li
4392                            class="menu-desktop-item menu-desktop-item--level2 "
4393                        >
4394                            
4395<a href="https://www.trefl.com/puzzle/puzzle-mapy"
4396    class="snowdog-menu-link "
4397            data-menu="menu-241"
4398    >
4399    Puzzle mapy</a>
4400                                                    </li>
4401
4402                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4403                                                                                            <li
4404                            class="menu-desktop-item menu-desktop-item--level2 "
4405                        >
4406                            
4407<a href="https://www.trefl.com/puzzle/puzzle-miasta"
4408    class="snowdog-menu-link "
4409            data-menu="menu-242"
4410    >
4411    Puzzle miasta</a>
4412                                                    </li>
4413
4414                                                                                            <li
4415                            class="menu-desktop-item menu-desktop-item--level2 "
4416                        >
4417                            
4418<a href="https://www.trefl.com/puzzle/puzzle-obrazy"
4419    class="snowdog-menu-link "
4420            data-menu="menu-243"
4421    >
4422    Puzzle obrazy</a>
4423                                                    </li>
4424
4425                                                                                            <li
4426                            class="menu-desktop-item menu-desktop-item--level2 "
4427                        >
4428                            
4429<a href="https://www.trefl.com/puzzle/puzzle-panoramiczne"
4430    class="snowdog-menu-link "
4431            data-menu="menu-244"
4432    >
4433    Puzzle panoramiczne</a>
4434                                                    </li>
4435
4436                                                                                            <li
4437                            class="menu-desktop-item menu-desktop-item--level2 "
4438                        >
4439                            
4440<a href="https://www.trefl.com/puzzle/puzzle-samochody"
4441    class="snowdog-menu-link "
4442            data-menu="menu-245"
4443    >
4444    Puzzle samochody</a>
4445                                                    </li>
4446
4447                                                                                            <li
4448                            class="menu-desktop-item menu-desktop-item--level2 "
4449                        >
4450                            
4451<a href="https://www.trefl.com/puzzle/puzzle-swiateczne"
4452    class="snowdog-menu-link "
4453            data-menu="menu-236"
4454    >
4455    Puzzle świąteczne</a>
4456                                                    </li>
4457
4458                                                                                            <li
4459                            class="menu-desktop-item menu-desktop-item--level2 "
4460                        >
4461                            
4462<a href="https://www.trefl.com/puzzle/akcesoria"
4463    class="snowdog-menu-link "
4464            data-menu="menu-8"
4465    >
4466    Akcesoria do puzzli</a>
4467                                                    </li>
4468
4469                                                            </ul>
4470                </div>
4471        </div>
4472                                                        </li>
4473                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4474                                    "
4475                                                            @mouseenter="openSubmenuId = null"
4476                                                        role="menuitem"
4477                            >
4478                            <div class="menu-desktop-item-wrap relative flex items-center">
4479                                
4480<a href="https://www.trefl.com/puzzle/fotopuzzle"
4481    class="snowdog-menu-link "
4482            data-menu="menu-360"
4483    >
4484    Fotopuzzle</a>
4485
4486                                                            </div>
4487
4488                                                    </li>
4489                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4490                                    "
4491                                                            @mouseenter="toggleSubmenu('9', null, $event)"
4492                                @keydown.enter.prevent="toggleSubmenu('9', null, $event)"
4493                                @keydown.space.prevent="toggleSubmenu('9', null, $event)"
4494                                @keydown.escape.prevent="toggleSubmenu('9', false, $event)"
4495                                aria-haspopup="true"
4496                                :aria-expanded="openSubmenuId === '9'"
4497                                :tabindex="openSubmenuId === '9' ? 0 : -1"
4498                                                        role="menuitem"
4499                            >
4500                            <div class="menu-desktop-item-wrap relative flex items-center">
4501                                
4502<a href="https://www.trefl.com/gry"
4503    class="snowdog-menu-link "
4504            data-menu="menu-9"
4505    >
4506    Gry</a>
4507
4508                                                                    <sp
4508an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4509                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
4510                                    </span>
4511                                                            </div>
4512
4513                                                                            <div
4514            x-ref="submenu-9"
4515            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4516            x-show="openSubmenuId === '9'"
4517            x-cloak
4518        >
4519            <div class="container h-full">
4520                    <ul
4521                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4522                    title="Submenu for Gry"
4523                >
4524                                                                    <li
4525                            class="menu-desktop-item menu-desktop-item--level2 "
4526                        >
4527                            
4528<a href="https://www.trefl.com/gry/dla-dzieci"
4529    class="snowdog-menu-link "
4530            data-menu="menu-10"
4531    >
4532    Gry dla dzieci</a>
4533                                                    </li>
4534
4535                                                                                            <li
4536                            class="menu-desktop-item menu-desktop-item--level2 "
4537                        >
4538                            
4539<a href="https://www.trefl.com/gry/rodzinne"
4540    class="snowdog-menu-link "
4541            data-menu="menu-11"
4542    >
4543    Gry rodzinne</a>
4544                                                    </li>
4545
4546                                                                                            <li
4547                            class="menu-desktop-item menu-desktop-item--level2 "
4548                        >
4549                            
4550<a href="https://www.trefl.com/gry/towarzyskie"
4551    class="snowdog-menu-link "
4552            data-menu="menu-12"
4553    >
4554    Gry towarzyskie</a>
4555                                                    </li>
4556
4557                                                                                            <li
4558                            class="menu-desktop-item menu-desktop-item--level2 "
4559                        >
4560                            
4561<a href="https://www.trefl.com/gry/edukacyjne"
4562    class="snowdog-menu-link "
4563            data-menu="menu-13"
4564    >
4565    Gry edukacyjne</a>
4566                                                    </li>
4567
4568                                                                                            <li
4569                            class="menu-desktop-item menu-desktop-item--level2 "
4570                        >
4571                            
4572<a href="https://www.trefl.com/gry/dla-grup-przedszkoli"
4573    class="snowdog-menu-link "
4574            data-menu="menu-445"
4575    >
4576    Gry dla grup i przedszkoli</a>
4577                                                    </li>
4578
4579                                                                                            <li
4580                            class="menu-desktop-item menu-desktop-item--level2 "
4581                        >
4582                            
4583<a href="https://www.trefl.com/gry/planszowe-1"
4584    class="snowdog-menu-link "
4585            data-menu="menu-14"
4586    >
4587    Gry planszowe</a>
4588                                                    </li>
4589
4590                                                                                            <li
4591                            class="menu-desktop-item menu-desktop-item--level2 "
4592                        >
4593                            
4594<a href="https://www.trefl.com/gry/karciane"
4595    class="snowdog-menu-link "
4596            data-menu="menu-15"
4597    >
4598    Gry karciane</a>
4599                                                    </li>
4600
4601                                                                                            <li
4602                            class="menu-desktop-item menu-desktop-item--level2 "
4603                        >
4604                            
4605<a href="https://www.trefl.com/gry/domino-i-memos"
4606    class="snowdog-menu-link "
4607            data-menu="menu-16"
4608    >
4609    Domino i Memos</a>
4610                                                    </li>
4611
4612                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4613                                                                                            <li
4614                            class="menu-desktop-item menu-desktop-item--level2 "
4615                        >
4616                            
4617<a href="https://www.trefl.com/gry/dla-3-latka"
4618    class="snowdog-menu-link "
4619            data-menu="menu-321"
4620    >
4621    Gry dla 3 latka</a>
4622                                                    </li>
4623
4624                                                                                            <li
4625                            class="menu-desktop-item menu-desktop-item--level2 "
4626                        >
4627                            
4628<a href="https://www.trefl.com/gry/dla-4-latka"
4629    class="snowdog-menu-link "
4630            data-menu="menu-322"
4631    >
4632    Gry dla 4 latka</a>
4633                                                    </li>
4634
4635                                                                                            <li
4636                            class="menu-desktop-item menu-desktop-item--level2 "
4637                        >
4638                            
4639<a href="https://www.trefl.com/gry/dla-dzieci-4-6-lat"
4640    class="snowdog-menu-link "
4641            data-menu="menu-323"
4642    >
4643    Gry dla dzieci 4-6 lat</a>
4644                                                    </li>
4645
4646                                                                                            <li
4647                            class="menu-desktop-item menu-desktop-item--level2 "
4648                        >
4649                            
4650<a href="https://www.trefl.com/gry/dla-dzieci-6-8-lat"
4651    class="snowdog-menu-link "
4652            data-menu="menu-324"
4653    >
4654    Gry dla dzieci 6-8 lat</a>
4655                                                    </li>
4656
4657                                                                                            <li
4658                            class="menu-desktop-item menu-desktop-item--level2 "
4659                        >
4660                            
4661<a href="https://www.trefl.com/gry/dla-dzieci-8-10-lat"
4662    class="snowdog-menu-link "
4663            data-menu="menu-325"
4664    >
4665    Gry dla dzieci 8-10 lat</a>
4666                                                    </li>
4667
4668                                                                                            <li
4669                            class="menu-desktop-item menu-desktop-item--level2 "
4670                        >
4671                            
4672<a href="https://www.trefl.com/gry/dla-dzieci-12-lat"
4673    class="snowdog-menu-link "
4674            data-menu="menu-326"
4675    >
4676    Gry dla dzieci 12+</a>
4677                                                    </li>
4678
4679                                                            </ul>
4680                </div>
4681        </div>
4682                                                        </li>
4683                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4684                                    "
4685                                                            @mouseenter="toggleSubmenu('17', null, $event)"
4686                                @keydown.enter.prevent="toggleSubmenu('17', null, $event)"
4687                                @keydown.space.prevent="toggleSubmenu('17', null, $event)"
4688                                @keydown.escape.prevent="toggleSubmenu('17', false, $event)"
4689                                aria-haspopup="true"
4690                                :aria-expanded="openSubmenuId === '17'"
4691                                :tabindex="openSubmenuId === '17' ? 0 : -1"
4692                                                        role="menuitem"
4693                            >
4694                            <div class="menu-desktop-item-wrap relative flex items-center">
4695                                
4696<a href="https://www.trefl.com/zabawki"
4697    class="snowdog-menu-link "
4698            data-menu="menu-17"
4699    >
4700    Zabawki</a>
4701
4702                                                                    <sp
4702an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4703                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
4704                                    </span>
4705                                                            </div>
4706
4707                                                                            <div
4708            x-ref="submenu-17"
4709            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4710            x-show="openSubmenuId === '17'"
4711            x-cloak
4712        >
4713            <div class="container h-full">
4714                    <ul
4715                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4716                    title="Submenu for Zabawki"
4717                >
4718                                                                    <li
4719                            class="menu-desktop-item menu-desktop-item--level2 "
4720                        >
4721                            
4722<a href="https://www.trefl.com/zabawki/dla-niemowlaka"
4723    class="snowdog-menu-link "
4724            data-menu="menu-18"
4725    >
4726    Zabawki dla niemowlaka</a>
4727                                                    </li>
4728
4729                                                                                            <li
4730                            class="menu-desktop-item menu-desktop-item--level2 "
4731                        >
4732                            
4733<a href="https://www.trefl.com/zabawki/1-3-lata"
4734    class="snowdog-menu-link "
4735            data-menu="menu-19"
4736    >
4737    Zabawki dla dzieci 1-3</a>
4738                                                    </li>
4739
4740                                                                                            <li
4741                            class="menu-desktop-item menu-desktop-item--level2 "
4742                        >
4743                            
4744<a href="https://www.trefl.com/zabawki/3-lata"
4745    class="snowdog-menu-link "
4746            data-menu="menu-20"
4747    >
4748    Zabawki dla 3 latka</a>
4749                                                    </li>
4750
4751                                                                                            <li
4752                            class="menu-desktop-item menu-desktop-item--level2 "
4753                        >
4754                            
4755<a href="https://www.trefl.com/zabawki/4-lata"
4756    class="snowdog-menu-link "
4757            data-menu="menu-21"
4758    >
4759    Zabawki dla 4 latka</a>
4760                                                    </li>
4761
4762                                                                                            <li
4763                            class="menu-desktop-item menu-desktop-item--level2 "
4764                        >
4765                            
4766<a href="https://www.trefl.com/zabawki/4-6-lat"
4767    class="snowdog-menu-link "
4768            data-menu="menu-22"
4769    >
4770    Zabawki dla dzieci 4-6</a>
4771                                                    </li>
4772
4773                                                                                            <li
4774                            class="menu-desktop-item menu-desktop-item--level2 "
4775                        >
4776                            
4777<a href="https://www.trefl.com/zabawki/6-8-lat"
4778    class="snowdog-menu-link "
4779            data-menu="menu-23"
4780    >
4781    Zabawki dla dzieci 6-8</a>
4782                                                    </li>
4783
4784                                                                                            <li
4785                            class="menu-desktop-item menu-desktop-item--level2 "
4786                        >
4787                            
4788<a href="https://www.trefl.com/zabawki/8-10-lat"
4789    class="snowdog-menu-link "
4790            data-menu="menu-24"
4791    >
4792    Zabawki dla dzieci 8-10</a>
4793                                                    </li>
4794
4795                                                                                            <li
4796                            class="menu-desktop-item menu-desktop-item--level2 "
4797                        >
4798                            
4799<a href="https://www.trefl.com/zabawki/do-kapieli"
4800    class="snowdog-menu-link "
4801            data-menu="menu-25"
4802    >
4803    Zabawki do kąpieli</a>
4804                                                    </li>
4805
4806                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4807                                                                                            <li
4808                            class="menu-desktop-item menu-desktop-item--level2 "
4809                        >
4810                            
4811<a href="https://www.trefl.com/zabawki/drewniane"
4812    class="snowdog-menu-link "
4813            data-menu="menu-26"
4814    >
4815    Zabawki drewniane</a>
4816                                                    </li>
4817
4818                                                                                            <li
4819                            class="menu-desktop-item menu-desktop-item--level2 "
4820                        >
4821                            
4822<a href="https://www.trefl.com/zabawki/interaktywne"
4823    class="snowdog-menu-link "
4824            data-menu="menu-27"
4825    >
4826    Zabawki interaktywne</a>
4827                                                    </li>
4828
4829                                                                                            <li
4830                            class="menu-desktop-item menu-desktop-item--level2 "
4831                        >
4832                            
4833<a href="https://www.trefl.com/zabawki/klocki"
4834    class="snowdog-menu-link "
4835            data-menu="menu-28"
4836    >
4837    Klocki</a>
4838                                                    </li>
4839
4840                                                                                            <li
4841                            class="menu-desktop-item menu-desktop-item--level2 "
4842                        >
4843                            
4844<a href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
4845    class="snowdog-menu-link "
4846            data-menu="menu-399"
4847    >
4848    Klocki ceramiczne Brick Trick</a>
4849                                                    </li>
4850
4851                                                                                            <li
4852                            class="menu-desktop-item menu-desktop-item--level2 "
4853                        >
4854                            
4855<a href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
4856    class="snowdog-menu-link "
4857            data-menu="menu-599"
4858    >
4859    Klocki konstrukcyjne</a>
4860                                                    </li>
4861
4862                                                                                            <li
4863                            class="menu-desktop-item menu-desktop-item--level2 "
4864                        >
4865                            
4866<a href="https://www.trefl.com/zabawki/magiczne-sztuczki"
4867    class="snowdog-menu-link "
4868            data-menu="menu-449"
4869    >
4870    Magiczne Sztuczki</a>
4871                                                    </li>
4872
4873                                                                                            <li
4874                            class="menu-desktop-item menu-desktop-item--level2 "
4875                        >
4876                            
4877<a href="https://www.trefl.com/zabawki/modele"
4878    class="snowdog-menu-link "
4879            data-menu="menu-29"
4880    >
4881    Modele aut i pojazdów</a>
4882                                                    </li>
4883
4884                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4885                                                                                            <li
4886                            class="menu-desktop-item menu-desktop-item--level2 "
4887                        >
4888                            
4889<a href="https://www.trefl.com/zabawki/outdoorowe"
4890    class="snowdog-menu-link "
4891            data-menu="menu-30"
4892    >
4893    Zabawki outdoorowe</a>
4894                                                    </li>
4895
4896                                                                                            <li
4897                            class="menu-desktop-item menu-desktop-item--level2 "
4898                        >
4899                            
4900<a href="https://www.trefl.com/zabawki/pilki"
4901    class="snowdog-menu-link "
4902            data-menu="menu-31"
4903    >
4904    Piłki</a>
4905                                                    </li>
4906
4907                                                                                            <li
4908                            class="menu-desktop-item menu-desktop-item--level2 "
4909                        >
4910                            
4911<a href="https://www.trefl.com/zabawki/kreatywne"
4912    class="snowdog-menu-link "
4913            data-menu="menu-392"
4914    >
4915    Zabawki kreatywne</a>
4916                                                    </li>
4917
4918                                                                                            <li
4919                            class="menu-desktop-item menu-desktop-item--level2 "
4920                        >
4921                            
4922<a href="https://www.trefl.com/zabawki/sensoryczne"
4923    class="snowdog-menu-link "
4924            data-menu="menu-32"
4925    >
4926    Zabawki sensoryczne</a>
4927                                                    </li>
4928
4929                                                                                            <li
4930                            class="menu-desktop-item menu-desktop-item--level2 "
4931                        >
4932                            
4933<a href="https://www.trefl.com/zabawki/hape"
4934    class="snowdog-menu-link "
4935            data-menu="menu-33"
4936    >
4937    Zabawki Hape</a>
4938                                                    </li>
4939
4940                                                                                            <li
4941                            class="menu-desktop-item menu-desktop-item--level2 "
4942                        >
4943                            
4944<a href="https://www.trefl.com/zabawki/zestawy-naukowe"
4945    class="snowdog-menu-link "
4946            data-menu="menu-34"
4947    >
4948    Zabawki naukowe</a>
4949                                                    </li>
4950
4951                                                            </ul>
4952                </div>
4953        </div>
4954                                                        </li>
4955                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4956                                    "
4957                                                            @mouseenter="toggleSubmenu('35', null, $event)"
4958                                @keydown.enter.prevent="toggleSubmenu('35', null, $event)"
4959                                @keydown.space.prevent="toggleSubmenu('35', null, $event)"
4960                                @keydown.escape.prevent="toggleSubmenu('35', false, $event)"
4961                                aria-haspopup="true"
4962                                :aria-expanded="openSubmenuId === '35'"
4963                                :tabindex="openSubmenuId === '35' ? 0 : -1"
4964                                                        role="menuitem"
4965                            >
4966                            <div class="menu-desktop-item-wrap relative flex items-center">
4967                                
4968<a href="https://www.trefl.com/ksiazki"
4969    class="snowdog-menu-link "
4970            data-menu="menu-35"
4971    >
4972    Książki</a>
4973
4974                                                                    <sp
4974an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4975                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
4976                                    </span>
4977                                                            </div>
4978
4979                                                                            <div
4980            x-ref="submenu-35"
4981            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4982            x-show="openSubmenuId === '35'"
4983            x-cloak
4984        >
4985            <div class="container h-full">
4986                    <ul
4987                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4988                    title="Submenu for Ksi&#x0105;&#x017C;ki"
4989                >
4990                                                                    <li
4991                            class="menu-desktop-item menu-desktop-item--level2 "
4992                        >
4993                            
4994<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-1-2-lata"
4995    class="snowdog-menu-link "
4996            data-menu="menu-602"
4997    >
4998    Książki dla dzieci 1-2 lata</a>
4999                                                    </li>
5000
5001                                                                                            <li
5002                            class="menu-desktop-item menu-desktop-item--level2 "
5003                        >
5004                            
5005<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-3-5-lat"
5006    class="snowdog-menu-link "
5007            data-menu="menu-603"
5008    >
5009    Książki dla dzieci 3-5 lat</a>
5010                                                    </li>
5011
5012                                                                                            <li
5013                            class="menu-desktop-item menu-desktop-item--level2 "
5014                        >
5015                            
5016<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-6-8-lat"
5017    class="snowdog-menu-link "
5018            data-menu="menu-604"
5019    >
5020    Książki dla dzieci 6-8 lat</a>
5021                                                    </li>
5022
5023                                                                                            <li
5024                            class="menu-desktop-item menu-desktop-item--level2 "
5025                        >
5026                            
5027<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-9-12-lat"
5028    class="snowdog-menu-link "
5029            data-menu="menu-605"
5030    >
5031    Książki dla dzieci 9-12 lat</a>
5032                                                    </li>
5033
5034                                                                                            <li
5035                            class="menu-desktop-item menu-desktop-item--level2 "
5036                        >
5037                            
5038<a href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
5039    class="snowdog-menu-link "
5040            data-menu="menu-37"
5041    >
5042    Książki dla rodziców</a>
5043                                                    </li>
5044
5045                                                                                            <li
5046                            class="menu-desktop-item menu-desktop-item--level2 "
5047                        >
5048                            
5049<a href="https://www.trefl.com/ksiazki/kolorowanki"
5050    class="snowdog-menu-link "
5051            data-menu="menu-606"
5052    >
5053    Kolorowanki</a>
5054                                                    </li>
5055
5056                                                            </ul>
5057                </div>
5058        </div>
5059                                                        </li>
5060                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5061                                    "
5062                                                            @mouseenter="toggleSubmenu('39', null, $event)"
5063                                @keydown.enter.prevent="toggleSubmenu('39', null, $event)"
5064                                @keydown.space.prevent="toggleSubmenu('39', null, $event)"
5065                                @keydown.escape.prevent="toggleSubmenu('39', false, $event)"
5066                                aria-haspopup="true"
5067                                :aria-expanded="openSubmenuId === '39'"
5068                                :tabindex="openSubmenuId === '39' ? 0 : -1"
5069                                                        role="menuitem"
5070                            >
5071                            <div class="menu-desktop-item-wrap relative flex items-center">
5072                                
5073<a href="https://www.trefl.com/rodzina-treflikow"
5074    class="snowdog-menu-link "
5075            data-menu="menu-39"
5076    >
5077    Trefliki</a>
5078
5079                                                                    <sp
5079an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5080                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
5081                                    </span>
5082                                                            </div>
5083
5084                                                                            <div
5085            x-ref="submenu-39"
5086            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5087            x-show="openSubmenuId === '39'"
5088            x-cloak
5089        >
5090            <div class="container h-full">
5091                    <ul
5092                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5093                    title="Submenu for Trefliki"
5094                >
5095                                                                    <li
5096                            class="menu-desktop-item menu-desktop-item--level2 "
5097                        >
5098                            
5099<a href="https://www.trefl.com/rodzina-treflikow/puzzle"
5100    class="snowdog-menu-link "
5101            data-menu="menu-40"
5102    >
5103    Puzzle Rodzina Treflików</a>
5104                                                    </li>
5105
5106                                                                                            <li
5107                            class="menu-desktop-item menu-desktop-item--level2 "
5108                        >
5109                            
5110<a href="https://www.trefl.com/rodzina-treflikow/gry"
5111    class="snowdog-menu-link "
5112            data-menu="menu-41"
5113    >
5114    Gry Rodzina Treflików</a>
5115                                                    </li>
5116
5117                                                                                            <li
5118                            class="menu-desktop-item menu-desktop-item--level2 "
5119                        >
5120                            
5121<a href="https://www.trefl.com/rodzina-treflikow/zabawki"
5122    class="snowdog-menu-link "
5123            data-menu="menu-42"
5124    >
5125    Zabawki Rodzina Treflików</a>
5126                                                    </li>
5127
5128                                                                                            <li
5129                            class="menu-desktop-item menu-desktop-item--level2 "
5130                        >
5131                            
5132<a href="https://www.trefl.com/rodzina-treflikow/ksiazki"
5133    class="snowdog-menu-link "
5134            data-menu="menu-43"
5135    >
5136    Książki Rodzina Treflików</a>
5137                                                    </li>
5138
5139                                                            </ul>
5140                </div>
5141        </div>
5142                                                        </li>
5143                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5144                                    "
5145                                                            @mouseenter="toggleSubmenu('44', null, $event)"
5146                                @keydown.enter.prevent="toggleSubmenu('44', null, $event)"
5147                                @keydown.space.prevent="toggleSubmenu('44', null, $event)"
5148                                @keydown.escape.prevent="toggleSubmenu('44', false, $event)"
5149                                aria-haspopup="true"
5150                                :aria-expanded="openSubmenuId === '44'"
5151                                :tabindex="openSubmenuId === '44' ? 0 : -1"
5152                                                        role="menuitem"
5153                            >
5154                            <div class="menu-desktop-item-wrap relative flex items-center">
5155                                
5156<a href="https://www.trefl.com/prezenty"
5157    class="snowdog-menu-link "
5158            data-menu="menu-44"
5159    >
5160    Prezenty</a>
5161
5162                                                                    <sp
5162an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5163                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
5164                                    </span>
5165                                                            </div>
5166
5167                                                                            <div
5168            x-ref="submenu-44"
5169            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5170            x-show="openSubmenuId === '44'"
5171            x-cloak
5172        >
5173            <div class="container h-full">
5174                    <ul
5175                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5176                    title="Submenu for Prezenty"
5177                >
5178                                                                    <li
5179                            class="menu-desktop-item menu-desktop-item--level2 "
5180                        >
5181                            
5182<a href="https://www.trefl.com/prezenty/dla-dzieci"
5183    class="snowdog-menu-link "
5184            data-menu="menu-578"
5185    >
5186    Prezenty dla dzieci</a>
5187                                                    </li>
5188
5189                                                                                            <li
5190                            class="menu-desktop-item menu-desktop-item--level2 "
5191                        >
5192                            
5193<a href="https://www.trefl.com/prezenty/dla-dzieci/0-2-lata"
5194    class="snowdog-menu-link "
5195            data-menu="menu-490"
5196    >
5197    Prezenty dla dzieci 0-2 lata</a>
5198                                                    </li>
5199
5200                                                                                            <li
5201                            class="menu-desktop-item menu-desktop-item--level2 "
5202                        >
5203                            
5204<a href="https://www.trefl.com/prezenty/dla-dzieci/3-5-lat"
5205    class="snowdog-menu-link "
5206            data-menu="menu-491"
5207    >
5208    Prezenty dla dzieci 3-5 lat</a>
5209                                                    </li>
5210
5211                                                                                            <li
5212                            class="menu-desktop-item menu-desktop-item--level2 "
5213                        >
5214                            
5215<a href="https://www.trefl.com/prezenty/dla-dzieci/6-8-lat"
5216    class="snowdog-menu-link "
5217            data-menu="menu-492"
5218    >
5219    Prezenty dla dzieci 6-8 lat</a>
5220                                                    </li>
5221
5222                                                                                            <li
5223                            class="menu-desktop-item menu-desktop-item--level2 "
5224                        >
5225                            
5226<a href="https://www.trefl.com/prezenty/dla-dzieci/9-12-lat"
5227    class="snowdog-menu-link "
5228            data-menu="menu-493"
5229    >
5230    Prezenty dla dzieci 9-12 lat</a>
5231                                                    </li>
5232
5233                                                                                            <li
5234                            class="menu-desktop-item menu-desktop-item--level2 "
5235                        >
5236                            
5237<a href="https://www.trefl.com/prezenty/dla-dzieci/13-lat-i-dorosli"
5238    class="snowdog-menu-link "
5239            data-menu="menu-494"
5240    >
5241    Prezenty dla dzieci 13+ i dorosłych</a>
5242                                                    </li>
5243
5244                                                                                            <li
5245                            class="menu-desktop-item menu-desktop-item--level2 "
5246                        >
5247                            
5248<a href="https://www.trefl.com/prezenty/swiateczne"
5249    class="snowdog-menu-link "
5250            data-menu="menu-465"
5251    >
5252    Prezenty świąteczne</a>
5253                                                    </li>
5254
5255                                                                                            <li
5256                            class="menu-desktop-item menu-desktop-item--level2 "
5257                        >
5258                            
5259<a href="https://www.trefl.com/prezenty/urodzinowe"
5260    class="snowdog-menu-link "
5261            data-menu="menu-466"
5262    >
5263    Prezenty urodzinowe</a>
5264                                                    </li>
5265
5266                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
5267                                                                                            <li
5268                            class="menu-desktop-item menu-desktop-item--level2 "
5269                        >
5270                            
5271<a href="https://www.trefl.com/prezenty/rodzinne"
5272    class="snowdog-menu-link "
5273            data-menu="menu-467"
5274    >
5275    Prezenty rodzinne</a>
5276                                                    </li>
5277
5278                                                                                            <li
5279                            class="menu-desktop-item menu-desktop-item--level2 "
5280                        >
5281                            
5282<a href="https://www.trefl.com/prezenty/wielkanocne-i-wiosenne"
5283    class="snowdog-menu-link "
5284            data-menu="menu-468"
5285    >
5286    Prezenty wielkanocne i wiosenne</a>
5287                                                    </li>
5288
5289                                                                                            <li
5290                            class="menu-desktop-item menu-desktop-item--level2 "
5291                        >
5292                            
5293<a href="https://www.trefl.com/prezenty/gry-planszowe-na-prezent"
5294    class="snowdog-menu-link "
5295            data-menu="menu-469"
5296    >
5297    Gry planszowe na prezent</a>
5298                                                    </li>
5299
5300                                                            </ul>
5301                </div>
5302        </div>
5303                                                        </li>
5304                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5305                                    "
5306                                                            @mouseenter="openSubmenuId = null"
5307                                                        role="menuitem"
5308                            >
5309                            <div class="menu-desktop-item-wrap relative flex items-center">
5310                                
5311<a href="https://www.trefl.com/nowosci"
5312    class="snowdog-menu-link "
5313            data-menu="menu-457"
5314    >
5315    Nowości</a>
5316
5317                                                            </div>
5318
5319                                                    </li>
5320                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5321                                    "
5322                                                            @mouseenter="openSubmenuId = null"
5323                                                        role="menuitem"
5324                            >
5325                            <div class="menu-desktop-item-wrap relative flex items-center">
5326                                
5327<a href="https://www.trefl.com/puzzle-gry-zabawki-tylko-u-nas"
5328    class="snowdog-menu-link "
5329            data-menu="menu-568"
5330    >
5331    Tylko u nas!</a>
5332
5333                                                            </div>
5334
5335                                                    </li>
5336                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5337                                    "
5338                                                            @mouseenter="toggleSubmenu('45', null, $event)"
5339                                @keydown.enter.prevent="toggleSubmenu('45', null, $event)"
5340                                @keydown.space.prevent="toggleSubmenu('45', null, $event)"
5341                                @keydown.escape.prevent="toggleSubmenu('45', false, $event)"
5342                                aria-haspopup="true"
5343                                :aria-expanded="openSubmenuId === '45'"
5344                                :tabindex="openSubmenuId === '45' ? 0 : -1"
5345                                                        role="menuitem"
5346                            >
5347                            <div class="menu-desktop-item-wrap relative flex items-center">
5348                                
5349<a href="https://www.trefl.com/promocje"
5350    class="snowdog-menu-link "
5351            data-menu="menu-45"
5352    >
5353    Promocje</a>
5354
5355                                                                    <sp
5355an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5356                                        <svg viewBox="0 0 10.012074 6.0120745" fill="currentColor" class="text-gray-gray" aria-hidden="true" width="10.012074" height="6.0120745" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M.2927864.3052882a1 1 0 0 1 1.4140001 0l3.293 3.293 3.293-3.293a1 1 0 1 1 1.414 1.414l-4 4a1 1 0 0 1-1.414 0l-4-4a1 1 0 0 1 0-1.414z" clip-rule="evenodd"/></svg>
5357                                    </span>
5358                                                            </div>
5359
5360                                                                            <div
5361            x-ref="submenu-45"
5362            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5363            x-show="openSubmenuId === '45'"
5364            x-cloak
5365        >
5366            <div class="container h-full">
5367                    <ul
5368                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5369                    title="Submenu for Promocje"
5370                >
5371                                                                    <li
5372                            class="menu-desktop-item menu-desktop-item--level2 "
5373                        >
5374                            
5375<a href="https://www.trefl.com/promocje/puzzle"
5376    class="snowdog-menu-link "
5377            data-menu="menu-583"
5378    >
5379    Puzzle w promocji</a>
5380                                                    </li>
5381
5382                                                                                            <li
5383                            class="menu-desktop-item menu-desktop-item--level2 "
5384                        >
5385                            
5386<a href="https://www.trefl.com/promocje/gry"
5387    class="snowdog-menu-link "
5388            data-menu="menu-584"
5389    >
5390    Gry w promocji</a>
5391                                                    </li>
5392
5393                                                                                            <li
5394                            class="menu-desktop-item menu-desktop-item--level2 "
5395                        >
5396                            
5397<a href="https://www.trefl.com/promocje/zabawki"
5398    class="snowdog-menu-link "
5399            data-menu="menu-585"
5400    >
5401    Zabawki w promocji</a>
5402                                                    </li>
5403
5404                                                                                            <li
5405                            class="menu-desktop-item menu-desktop-item--level2 "
5406                        >
5407                            
5408<a href="https://www.trefl.com/promocje/ksiazki"
5409    class="snowdog-menu-link "
5410            data-menu="menu-586"
5411    >
5412    Książki w promocji</a>
5413                                                    </li>
5414
5415                                                            </ul>
5416                </div>
5417        </div>
5418                                                        </li>
5419                                    </ul>
5420
5421                    <div class="free-delivery-truck-animation flex items-center font-sans gap-x-3">
5422        <span class="font-medium leading-5" style="font-size: 0.775rem;">
5423            Darmowa dostawa
5424            <span class="block font-bold">
5425                już od 150 zł            </span>
5426        </span>
5427
5428        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1446 1024" class="overflow-visible transform-gpu" width="26" height="26" style="color: #858585" aria-hidden="true">
5429<path class="truck" fill="currentColor" d="M1439.681 518.326l-91.421-117.134-101.625-212.84c-31.63-65.709-97.951-107.747-170.803-107.951h-185.087v-48.976c0-17.346-14.285-31.426-31.63-31.426h-674.64c-17.346 0-31.426 14.081-31.426 31.63s14.081 31.63 31.63 31.63h643.010v353.033c0 17.346 14.081 31.63 31.63 31.63h445.679l78.973 100.808v269.366h-121.419c-16.937-95.299-107.747-158.967-203.045-142.029-72.443 12.856-129.173 69.586-142.029 142.029h-313.444c-16.937-95.299-107.747-1
542958.967-203.045-142.029-72.443 12.856-129.173 69.586-142.029 142.029h-90.197c-17.346 0-31.63 14.081-31.63 31.63 0 17.346 14.081 31.63 31.63 31.63h90.401c17.754 95.299 109.583 157.947 204.678 140.193 71.219-13.264 126.725-68.974 140.193-140.193h312.628c17.754 95.299 109.583 157.947 204.678 140.193 71.219-13.264 126.725-68.974 140.193-140.193h121.623c34.895 0 63.056-28.161 63.056-63.056v-280.59c0-6.938-2.245-13.876-6.53-19.386zM890.745 385.071v-241.613h185.495c48.568 0 93.054 27.957 113.868 72.035l81.014 169.782h-380.378zM543.834 848.708c0 62.036-50.404 112.236-112.236 112.236-62.036 0-112.644-50.2-112.644-112.236s50.2-112.644 112.236-112.644c62.036 0 112.644 50.2 112.644 112.236 0 0.204 0 0.204 0 0.408zM1201.537 848.708c0 62.036-50.404 112.236-112.44 112.236s-112.44-50.404-112.44-112.44c0-62.036 50.404-112.44 112.44-112.44 62.24 0 112.44 50.404 112.44 112.644 0-0.204 0 0 0 0z"/>
5430<path class="truck-line-bottom" fill="currentColor" d="M315.485 606.482c0-17.346-14.081-31.63-31.63-31.63h-173.456c-17.346 0-31.63 14.081-31.63 31.63s14.081 31.63 31.63 31.63h173.456c17.55-0.204 31.63-14.285 31.63-31.63z"/>
5431<path class="truck-line-middle" fill="currentColor" d="M425.884 417.11c0-17.346-14.081-31.63-31.63-31.63h-362.624c-17.346 0-31.63 14.081-31.63 31.63 0 17.346 14.081 31.63 31.63 31.63h362.828c17.346 0 31.426-14.285 31.426-31.63z"/>
5432<path class="truck-line-top" fill="currentColor" d="M110.399 259.367h362.828c17.346 0 31.63-14.081 31.63-31.63s-14.081-31.63-31.63-31.63h-362.828c-17.346 0-31.63 14.081-31.63 31.63s14.285 31.63 31.63 31.63z"/>
5433</svg>
5434    </div>
5435
5436    <style>
5437    .free-delivery-truck-animation {
5438        .truck,
5439        .truck-line-bottom,
5440        .truck-line-middle,
5441        .truck-line-top {
5442            animation-duration: 3s;
5443            animation-iteration-count: infinite;
5444            transform: translateX(-3000px);
5445            will-change: transform;
5446        }
5447
5448        .truck {
5449            animation-name: move-truck;
5450        }
5451
5452        .truck-line-bottom,
5453        .truck-line-middle,
5454        .truck-line-top {
5455            animation-name: move-truck-line;
5456        }
5457
5458        .truck-line-middle {
5459            animation-delay: 25ms;
5460        }
5461
5462        .truck-line-bottom {
5463            animation-delay: 50ms;
5464        }
5465    }
5466
5467    @media (prefers-reduced-motion: reduce) {
5468        .free-delivery-truck-animation {
5469            .truck,
5470            .truck-line-bottom,
5471            .truck-line-middle,
5472            .truck-line-top {
5473                animation-duration: 0s;
5474                transform: translateX(0);
5475            }
5476        }
5477    }
5478
5479    @keyframes move-truck {
5480        0% {
5481            transform: translateX(-3000px);
5482        }
5483        10% {
5484            transform: rotate(6deg);
5485        }
5486        20% {
5487            transform:rotate(4deg);
5488        }
5489        60% {
5490            transform: translateX(-400px);
5491        }
5492        70% {
5493            opacity: 1;
5494        }
5495        92% {
5496            opacity: 0;
5497        }
5498        100% {
5499            transform: translateX(6000px);
5500            opacity: 0;
5501        }
5502    }
5503
5504    @keyframes move-truck-line {
5505        0% {
5506            transform: translateX(-3000px);
5507        }
5508        10% {
5509            transform: rotate(4deg);
5510        }
5511        20% {
5512            transform: rotate(2deg);
5513        }
5514        55%, 60%, 65% {
5515            transform: translateX(-400px);
5516        }
5517        70% {
5518            opacity: 1;
5519        }
5520        92% {
5521            opacity: 0;
5522        }
5523        100% {
5524            transform: translateX(6000px);
5525            opacity: 0;
5526        }
5527    }
5528</style>
5529            </nav>
5530        </div>
5531    </div>
5532</header><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
5533<div class="page messages">
5533<script>
5534        function initMessages() {
5535        "use strict";
5536        return {
5537            messages: window.mageMessages || [],
5538            isEmpty() {
5539                return this.messages.reduce(
5540                    function (isEmpty, message) {
5541                        return isEmpty && message === undefined
5542                    }, true
5543                )
5544            },
5545            hasMessages() {
5546                return !this.isEmpty();
5547            },
5548            hasMessage() {
5549                return !!this.message;
5550            },
5551            removeMessage() {
5552                this.messages[this.index] = undefined;
5553            },
5554            addMessages(messages, hideAfter) {
5555                messages.map((message) => {
5556                    this.messages = this.messages.concat(message);
5557                    if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) {
5558                        hideAfter = window.defaultSuccessMessageTimeout;
5559                    }
5560                    if (hideAfter) {
5561                        this.setHideTimeOut(this.messages.length -1, hideAfter);
5562                    }
5563                });
5564            },
5565            setHideTimeOut(messageIndex, hideAfter) {
5566                setTimeout((messageIndex) => {
5567                    this.messages[messageIndex] = undefined;
5568                }, hideAfter, messageIndex);
5569            },
5570            eventListeners: {
5571                ['@messages-loaded.window'](event) {
5572                    this.addMessages(event.detail.messages, event.detail.hideAfter)
5573                },
5574                ['@private-content-loaded.window'](event) {
5575                    const data = event.detail.data;
5576                    if (
5577                        data.messages &&
5578                        data.messages.messages &&
5579                        data.messages.messages.length
5580                    ) {
5581                        this.addMessages(data.messages.messages);
5582                    }
5583                },
5584                ['@clear-messages.window']() {
5585                    this.messages = [];
5586                }
5587            },
5588            getMessageUiId() {
5589                return 'message-' + this.message.type;
5590            }
5591        }
5592    }
5593
5594    window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true})
5595</script>
5595
5596<section id="messages"
5597         x-data="initMessages"
5598         x-bind="eventListeners"
5599         role="alert"
5600>
5601    <template x-if="hasMessages">
5602        <div class="w-full">
5603            <div class="messages container mx-auto py-3">
5604                <template x-for="(message, index) in messages" :key="index">
5605                    <div>
5606                        <template x-if="hasMessage">
5607                            <div class="message"
5608                                 :class="message.type"
5609                                 :ui-id="getMessageUiId"
5610                            >
5611                                <span x-html="message.text"></span>
5612                                <button
5613                                    type="button"
5614                                    class="text-gray-600 hover:text-black"
5615                                    aria-label="Zamknij wiadomość"
5616                                    @click.prevent="removeMessage"
5617                                >
5618                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" width="18" height="18" aria-hidden="true">
5619  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
5620</svg>
5621                                </button>
5622                            </div>
5623                        </template>
5624                    </div>
5625                </template>
5626            </div>
5627        </div>
5628    </template>
5629</section>
5630</div><div id="page-title" class="bg-gray-light mb-6 lg:mb-12"><div class="container pt-8 lg:pt-16 pb-8 lg:pb-48 lg:pl-20 flex flex-col lg:flex-row justify-between items-center gap-4">    <div class="flex flex-col">
5631        <h1 class="font-sans font-normal text-2xl lg:text-4xl text-black"
5632            >
5633            <span class="base" data-ui-id="page-title-wrapper" >Mądre zabawki – pomysły na wartościową zabawę po szkole</span>        </h1>
5634            </div>
5635    <nav class="breadcrumbs" aria-label="Breadcrumb">
5636        <ol class="items list-reset flex flex-wrap text-xs text-gray-dark font-medium max-w-md">
5637                            <li class="item flex home">
5638                                                                <a href="https://www.trefl.com/"
5639                           title="Przejd&#x017A;&#x20;na&#x20;stron&#x0119;&#x20;g&#x0142;&#xF3;wn&#x0105;"
5640                           class="hover:underline"
5641                        >Strona główna</a>
5642                                    </li>
5643                            <li class="item flex blog">
5644                                            <span aria-hidden="true" class="separator px-2">/</span>
5645                                                                <a href="https://www.trefl.com/blog"
5646                           title="Blog"
5647                           class="hover:underline"
5648                        >Blog</a>
5649                                    </li>
5650                            <li class="item flex madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole">
5651                                            <span aria-hidden="true" class="separator px-2">/</span>
5652                                                                <span
5653                            class="text-primary line-clamp-1"
5654                            aria-current="page"
5655                        >Mądre zabawki – pomysły na wartościową zabawę po szkole</span>
5656                                    </li>
5657                    </ol>
5658    </nav>
5659    
5659<script type="application/ld+json">
5660        {
5661                "@context": "http://schema.org",
5662        "@type": "BreadcrumbList",
5663        "itemListElement": [
5664            {
5665            "@type": "ListItem",
5666            "position": "1",
5667            "item": {
5668                "@id": "https://www.trefl.com/",
5669                "name": "Strona główna"
5670            }
5671    }
5672        ,            {
5673            "@type": "ListItem",
5674            "position": "2",
5675            "item": {
5676                "@id": "https://www.trefl.com/blog",
5677                "name": "Blog"
5678            }
5679    }
5680        ,            {
5681            "@type": "ListItem",
5682            "position": "3",
5683            "item": {
5684                "@id": "",
5685                "name": "Mądre zabawki – pomysły na wartościową zabawę po szkole"
5686            }
5687    }
5688                        ]
5689    }
5690    </script>
5690
5691</div></div><div class="columns"><div class="column main">
5691<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
5692    var feedId = getUrlParam('ff'),
5693        product = getUrlParam('fp'),
5694        currentDate = new Date(),
5695        session = getCookie('feed_session');
5696
5697    if (!session) {
5698        session = '' + Math.floor(currentDate.getTime() / 1000) + Math.floor(Math.random() * 10000001);
5699    }
5700
5701    if (session && feedId > 0 && product > 0) {
5702        setCookie('feed_session', session, {expires: 365, path: '/'});
5703        setCookie('feed_id', feedId, 365);
5704
5705        var xhr = new XMLHttpRequest(),
5706            baseUrl = 'https://www.trefl.com/',
5707            url = BASE_URL + '?rnd=' + Math.floor(Math.random() * 10000001) + "&feed=" + feedId + "&session=" + session + "&product=" + product;
5708
5709        xhr.open('GET', url, true);
5710        xhr.setRequestHeader('Content-Type', 'application/json');
5711        xhr.send();
5712    }
5713
5714    function getUrlParam(name) {
5715        let results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
5716
5717        if (results === null) {
5718            return '';
5719        } else {
5720            return results[1] || 0;
5721        }
5722    }
5723
5724    function getCookie(cookieName) {
5725        var name = cookieName + "=",
5726            decodedCookie = decodeURIComponent(document.cookie),
5727            cookieArray = decodedCookie.split(';');
5728
5729        for (var i = 0; i < cookieArray.length; i++) {
5730            var cookie = cookieArray[i].trim();
5731            if (cookie.indexOf(name) === 0) {
5732                return cookie.substring(name.length, cookie.length);
5733            }
5734        }
5735
5736        return null;
5737    }
5738
5739    function setCookie(cookieName, cookieValue, expirationDays) {
5740        var d = new Date();
5741        d.setTime(d.getTime() + (expirationDays * 24 * 60 * 60 * 1000));
5742        var expires = "expires=" + d.toUTCString();
5743        document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/";
5744    }
5745</script>
5745
5746<article class="prose w-full max-w-none lg:-mt-44">
5747            <img fetchpriority="high"
5748             srcset="https://www.trefl.com/media/mageplaza/blog/post/resize/1146x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg 1x,
5749                     https://www.trefl.com/media/mageplaza/blog/post/resize/1400x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg 2x"
5750             src="https://www.trefl.com/media/mageplaza/blog/post/resize/1146x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg"
5751             alt="M&#x0105;dre&#x20;zabawki&#x20;&#x2013;&#x20;pomys&#x0142;y&#x20;na&#x20;warto&#x015B;ciow&#x0105;&#x20;zabaw&#x0119;&#x20;po&#x20;szkole"
5752             aria-hidden="true"
5753             class="w-full"
5754        />
5755    
5756    <div class="w-full max-w-3xl mx-auto">
5757        <p><strong>Powrót do szkoły oznacza ponowne spotkania z kolegami, nowe wyzwania i mnóstwo nowych doświadczeń. Ale kiedy ostatni dzwonek już wybrzmi, przychodzi czas na coś równie ważnego – odpoczynek i dobrą zabawę.</strong></p>
5758<p><strong>Po intensywnym dniu każde dziecko może potrzebować czegoś innego. Jedno najchętniej usiądzie do puzzli, drugie rozpocznie budowę własnego miasta, a jeszcze inne zaprosi całą rodzinę do wspólnej rozgrywki. Właśnie dlatego mądre zabawki dla dzieci mogą mieć tak różne formy. Nie zawsze muszą przypominać naukę – mogą zachęcać do odkrywania, tworzenia, współpracy, układania, wymyślania własnych historii albo po prostu spędzania czasu razem.</strong></p>
5759<p><strong>Poznaj pomysły na wartościową zabawę po szkole dla dzieci w różnym wieku – od pierwszych gier i puzzli dla najmłodszych po propozycje dla trochę starszych graczy.</strong></p>
5760<h2><strong>Mądre zabawki dla dzieci – czym właściwie są?</strong></h2>
5761<p>Co sprawia, że zabawkę możemy nazwać „mądrą”? Nie chodzi wyłącznie o to, czy pomaga poznawać litery, liczby albo nowe fakty – bo dobra zabawa może przecież rozwijać dziecko na wiele różnych sposobów.</p>
5762<p><strong>Mądre zabawki</strong> angażują i zachęcają do działania. <strong>Dają przestrzeń do podejmowania decyzji, ćwiczenia spostrzegawczości, budowania, tworzenia własnych scenariuszy czy współpracy z innymi</strong>. Czasem pozwalają zdobywać nową wiedzę, innym razem<strong> </strong>pobudzają wyobraźnię albo pomagają skupić uwagę na jednym, angażującym zadaniu.</p>
5763<p>Dlatego wybierając zabawkę, warto patrzeć nie tylko na jej kategorię czy wiek dziecka, ale przede wszystkim na zainteresowania i to, jakie umiejętności może pomóc mu rozwijać. Mały miłośnik zwierząt może z zapałem ćwiczyć spostrzegawczość grając w grę obserwacyjną, w której tropi kapibarę. Fan pojazdów – tworzyć własne drogowe historie z autami w roli głównej, a początkujący konstruktor – zbudować pierwszy budynek z prawdziwych cegieł.</p>
5764<p><img src="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/Blog+2026/cechy-dobrej-zabawki.webp" alt="Mądra zabawka angażuje, motywuje, uczy podejmować decyzje, ćwiczy spostrzegawczość, rozwija kreatywność lub pozwala spędzić czas z bliskimi" width="800" height="333"></p>
5765<h2><strong>Gry edukacyjne dla dzieci – nauka, która staje się przygodą</strong></h2>
5766<p>Gry edukacyjne dla dzieci nie muszą oznaczać monotonnego przyswajania wiedzy ani odpytywania z kolejnych zestawów pytań. <strong>Najciekawiej robi się wtedy, gdy nauka staje się częścią większej przygody</strong> – trzeba odnaleźć poszlakę, uratować dinozaura, dotrzeć na odległą planetę albo bezpiecznie pokonać trasę na rowerze.</p>
5767<p>Dla najmłodszych pierwszym krokiem do świata planszówek może być <a title="Gra rodzinna Spy Guy Kids Zwierzaki Cudaki | Trefl" href="https://www.trefl.com/gra-rodzinna-spy-guy-kids-zwierzaki-cudaki-03061"><strong>Spy Guy Kids: Zwierzaki-Cudaki</strong></a>, przeznaczony dla dzieci<strong> </strong>od 3. roku życia. To <strong>kooperacyjna gra obserwacyjna, w której wszyscy gracze mają wspólny cel</strong>: tropią kapibarę i wypatrują na planszy wskazanych elementów. Większe ilustracje i mniej szczegółowa plansza ułatwiają poszukiwania młodszym dzieciom, a karty zwierząt pozwalają przy okazji poznawać ciekawostki o przyrodzie.</p>
5768<p>Starszym odkrywcom, od 6. roku życia, można zaproponować <strong>edukacyjne misje z Rodziną Treflików</strong>. Tutaj wybór zależy przede wszystkim od tego, co najbardziej ciekawi dziecko.</p>
5769<p><a title="Gra edukacyjna Kosmos, Rodzina Treflików | Trefl" href="https://www.trefl.com/gra-edukacyjna-kosmos-rodzina-treflikow-02911"><strong>Kosmos</strong></a> zabiera graczy na międzyplanetarną wyprawę. Wspólne rozwiązywanie zagadek, odpowiadanie na pytania i zarządzanie zasobami prowadzi drużynę do celu, a przy okazji <strong>pozwala poznawać podstawowe zagadnienia związane z fizyką i astronomią</strong>.</p>
5770<p>Miłośnikom prehistorii spodoba się gra <a title="Gra edukacyjna Dinozaury, Rodzina Treflików | Trefl" href="https://www.trefl.com/gra-edukacyjna-dinozaury-rodzina-treflikow-02912"><strong>Dinozaury</strong></a>. Tym razem drużyna ucieka przed wybuchem wulkanu, odpowiada na pytania quizowe i wspólnie decyduje, jak pokonywać kolejne przeszkody. <strong>Rozgrywka pozwala poznawać ciekawostki o prehistorycznym świecie i dinozaurach</strong>, a jednocześnie opiera się na współpracy zamiast rywalizacji.</p>
5771<p>Z kolei <a href="https://www.trefl.com/gra-dla-dzieci-karta-rowerowa-rodzina-treflikow-02910"><strong>Karta Rowerowa</strong></a> przenosi naukę w bardzo praktyczny obszar. <strong>Gracze wspólnie poznają zasady ruchu drogowego, rozwiązują zadania i mierzą się z sytuacjami, które mogą spotkać młodego rowerzystę na drodze</strong>. To propozycja szczególnie ciekawa dla dzieci, które zaczynają samodzielnie jeździć na rowerze i przygotowują się do zdobycia karty rowerowej.</p>
5772<p>A co, jeśli dziecko woli rywalizację? Od 7. roku życia można sięgnąć po <a title="Gra obserwacyjna Spy Guy Europa | Trefl" href="https://www.trefl.com/gra-obserwacyjna-spy-guy-europa-02886"><strong>Spy Guy Europa</strong></a>. Tym razem <strong>gracze dzielą się na dwie drużyny i ruszają w wyścig po mapie Europy</strong>. Trzeba szybko wypatrywać ukrytych elementów, zbierać turystyczne pamiątki i wyprzedzić przeciwników. To połączenie obserwacji, refleksu i drużynowych emocji osadzone w europejskiej scenerii.</p>
5773<p>Dzięki tak różnym wariantom łatwo można dobrać<strong> </strong>zabawki edukacyjne dla 6-latka czy gry edukacyjne dla 7-latka nie tylko pod kątem samego wieku dziecka, ale przede wszystkim tego, co naprawdę je interesuje.</p>
5774
5775<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5776<link rel="preconnect" href="https://fonts.googleapis.com">
5777<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5778<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5779
5780<style>
5781.trefl-inline-related {
5782    display: flex;
5783    align-items: center; 
5784    gap: 12px; 
5785    margin: 20px 0;
5786    padding: 12px 16px; 
5787    background-color: #f9f9f9;
5788    border: 1px solid #eef0f2;
5789    border-radius: 10px; 
5790    text-decoration: none;
5791    font-family: 'Raleway', sans-serif;
5792    font-size: 14px; 
5793    line-height: 1.5;
5794    color: #333333;
5795    width: 100%; 
5796    box-sizing: border-box; 
5797    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5798}
5799
5800.trefl-inline-related::before {
5801    content: "";
5802    display: block;
5803    flex-shrink: 0;
5804    width: 20px; 
5805    height: 20px;
5806    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5807    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23e30613' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' /%3E%3C/svg%3E");
5808    background-repeat: no-repeat;
5809    background-position: center;
5810    background-size: contain;
5811    transition: transform 0.2s ease;
5812}
5813
5814.trefl-inline-related:hover {
5815    background-color: #ffffff;
5816    border-color: #e30613;
5817    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5818    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5819}
5820
5821.trefl-inline-related:hover::before {
5822    transform: scale(1.05);
5823}
5824
5825.trefl-inline-text-wrapper {
5826    flex-grow: 1;
5827}
5828
5829.trefl-inline-related .label {
5830    color: #e30613;
5831    font-weight: 800;
5832    margin-right: 4px;
5833    letter-spacing: 0.2px;
5834}
5835
5836.trefl-inline-related .title {
5837    font-weight: 700;
5838    color: #1a1a1a;
5839    transition: color 0.2s ease;
5840}
5841
5842.trefl-inline-related:hover .title {
5843    color: #e30613;
5844}
5845</style>
5846
5847<a href="https://www.trefl.com/blog/post/gra-planszowa-spy-guy-intrygujaca-rozrywka-dla-calej-rodziny" class="trefl-inline-related">
5848    <div class="trefl-inline-text-wrapper">
5849        <span class="label">Zobacz także:</span> 
5850        <span class="title">Gra planszowa Spy Guy - intrygująca rozrywka dla całej rodziny!
5851</span>
5852    </div>
5853</a>
5854<h2><strong>Zestaw kreatywny dla fanów klocków – czas coś zbudować z prawdziwej cegły!</strong></h2>
5855<p>Są dzieci, którym trudno przejść obojętnie obok pudełka z klockami. Budowanie według instrukcji to dopiero początek – za chwilę powstaje dodatkowe piętro, nowy budynek albo zupełnie inna konstrukcja. Dla takich małych twórców ciekawym pomysłem będzie <a title="Brick Trick My City | Trefl" href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne/brick-trick-my-city"><strong>Brick Trick My City</strong></a>.</p>
5856<p>Najważniejszy wyróżnik tej serii widać już przy pierwszym kontakcie z zestawem: <strong>tutaj naprawdę buduje się z prawdziwych miniaturowych cegieł</strong>. Są one wypalane w wysokiej temperaturze i wykonane z materiału wykorzystywanego również w tradycyjnym budownictwie – oczywiście w znacznie mniejszym formacie. Zestawy przeznaczone są dla dzieci od 6. roku życia.</p>
5857<p>W serii My City można wznieść m.in. Kawiarnię, Gabinet weterynaryjny, Remizę strażacką czy Pit Stop. Dziecko może skorzystać z instrukcji albo eksperymentować z własnymi pomysłami, a po ukończeniu konstrukcji zabawa wcale się nie kończy. <strong>Opakowanie po rozłożeniu zmienia się w barwną scenerię</strong>, a gotowy budynek może stać się inspiracją do snucia własnych historii.</p>
5858<p></p>
5859<p>Co więcej, <strong>sześciokątne podstawki pozwalają łączyć poszczególne zestawy</strong>
5859. Jedna konstrukcja może więc z czasem zamienić się w całe miasteczko z kawiarnią, remizą, gabinetem weterynaryjnym i kolejnymi miejscami.</p>
5860<p>Jeśli więc szukasz zestawu kreatywnego dla 6-latka, który łączy konstruowanie z późniejszą swobodną zabawą, <strong>Brick Trick My City daje dziecku możliwość przejścia przez cały proces: od pierwszej cegiełki, przez dekorowanie budynku, aż po tworzenie własnego świata</strong>.</p>
5861<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5862<link rel="preconnect" href="https://fonts.googleapis.com">
5863<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5864<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5865
5866<style>
5867.trefl-inline-related {
5868    display: flex;
5869    align-items: center; 
5870    gap: 12px; 
5871    margin: 20px 0;
5872    padding: 12px 16px; 
5873    background-color: #f9f9f9;
5874    border: 1px solid #eef0f2;
5875    border-radius: 10px; 
5876    text-decoration: none;
5877    font-family: 'Raleway', sans-serif;
5878    font-size: 14px; 
5879    line-height: 1.5;
5880    color: #333333;
5881    width: 100%; 
5882    box-sizing: border-box; 
5883    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5884}
5885
5886.trefl-inline-related::before {
5887    content: "";
5888    display: block;
5889    flex-shrink: 0;
5890    width: 20px; 
5891    height: 20px;
5892    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5893    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23e30613' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' /%3E%3C/svg%3E");
5894    background-repeat: no-repeat;
5895    background-position: center;
5896    background-size: contain;
5897    transition: transform 0.2s ease;
5898}
5899
5900.trefl-inline-related:hover {
5901    background-color: #ffffff;
5902    border-color: #e30613;
5903    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5904    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5905}
5906
5907.trefl-inline-related:hover::before {
5908    transform: scale(1.05);
5909}
5910
5911.trefl-inline-text-wrapper {
5912    flex-grow: 1;
5913}
5914
5915.trefl-inline-related .label {
5916    color: #e30613;
5917    font-weight: 800;
5918    margin-right: 4px;
5919    letter-spacing: 0.2px;
5920}
5921
5922.trefl-inline-related .title {
5923    font-weight: 700;
5924    color: #1a1a1a;
5925    transition: color 0.2s ease;
5926}
5927
5928.trefl-inline-related:hover .title {
5929    color: #e30613;
5930}
5931</style>
5932
5933<a href="https://www.trefl.com/blog/post/klocki-trefl-my-connect-buduj-poruszaj-i-transformuj-swiat" class="trefl-inline-related">
5934    <div class="trefl-inline-text-wrapper">
5935        <span class="label">Zobacz także:</span> 
5936        <span class="title">Klocki konstrukcyjne Trefl & MY CONNECT - buduj, poruszaj i transformuj świat!
5937</span>
5938    </div>
5939</a>
5940<p><img src="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/Blog+2026/brick-trick-my-city-to-zestawy-kreatywne-dla-dziewczynki-i-chlopca.webp" alt="Brick Trick My City to zestawy kreatywne dla dziewczynki i chłopca" width="800" height="533"></p>
5941<h2><strong>Samochody dla dziecka – małe pojazdy, wielkie historie</strong></h2>
5942<p>Nie każda wartościowa zabawa potrzebuje planszy, instrukcji czy konkretnego celu. <strong>Czasem wystarczy jeden pojazd, kawałek podłogi i dziecięca wyobraźnia, żeby rozpoczęła się akcja ratunkowa, wielki transport albo wyprawa na drugi koniec pokoju</strong>.</p>
5943<p><a title="Modele SIKU | Trefl" href="https://www.trefl.com/zabawki/modele"><strong>Modele SIKU</strong></a> dobrze wpisują się w ten rodzaj swobodnej zabawy. W ofercie można znaleźć samochody osobowe, pojazdy specjalistyczne, maszyny budowlane czy rolnicze. Dzięki temu łatwo wybrać coś zgodnego z zainteresowaniami dziecka i stopniowo rozbudowywać własną kolekcję.</p>
5944<p>Mały fan wielkich maszyn może sięgnąć na przykład po <a title="SIKU Super - Volvo wywrotka | Trefl" href="https://www.trefl.com/siku-super-volvo-wywrotka"><strong>wywrotkę Volvo SIKU Super</strong></a>. Model wykonano z elementów metalowych i plastikowych, wyposażono w ruchome części i gumowe koła, a jego wygląd odwzorowuje rzeczywisty pojazd. Inny kierunek daje <a title="SIKU - John Deere 6250R" href="https://www.trefl.com/john-deere-6250r-s1064"><strong>John Deere 6250R</strong></a> – niewielki model traktora, który może stać się początkiem zabawy w gospodarstwo rolne.</p>
5945<p>Wywrotka może wozić klocki na budowę, traktor ruszyć w pole, a wóz strażacki otrzymać pilne wezwanie do akcji. To dziecko decyduje, co wydarzy się dalej. Właśnie dlatego nawet mały samochodzik może stać się początkiem bardzo dużej historii. A <strong>dzięki niewielkim rozmiarom wybrane modele SIKU można też spakować do plecaka i zabrać ze sobą do szkoły, na wycieczkę czy do kolegi</strong>.</p>
5946<h2><strong>Puzzle dla dzieci – czas na układanie i chwilę wyciszenia</strong></h2>
5947<p>Po dniu pełnym lekcji, rozmów i nowych wrażeń nie każde dziecko będzie miało ochotę na kolejne dynamiczne wyzwanie. Czasami najlepszym pomysłem jest spokojniejsza aktywność, przy której można usiąść, skupić się na obrazku i krok po kroku odnajdywać miejsce dla kolejnych elementów.</p>
5948<p>Układanie puzzli to jednak nie tylko sposób na spokojne spędzenie czasu. Dopasowywanie fragmentów układanki oraz stopniowe odtwarzanie całego obrazka zachęca dziecko do uważnej obserw
5948acji i dostrzegania szczegółów. <strong>Wspiera koncentrację, ćwiczy spostrzegawczość i naukę logicznego myślenia, pozwala trenować cierpliwość, a także rozwija koordynację wzrokowo-ruchową i zdolności manualne dziecka</strong>.</p>
5949<p><a title="Puzzle dla dzieci | Trefl" href="https://www.trefl.com/puzzle/dla-dzieci"><strong>Puzzle dla dzieci</strong></a> dają dużą swobodę dopasowania aktywności do wieku i zainteresowań. Dla jednego dziecka największą zachętą będzie niewielka liczba elementów, dla innego – bardziej wymagająca układanka. Duże znaczenie ma też sam wzór, szczególnie jeśli przedstawia bohaterów lub motywy, które dziecko już zna i lubi.</p>
5950<p><strong>W serii Premium Plus Kids można znaleźć układanki z popularnymi dziecięcymi licencjami, m.in. Psim Patrolem czy Toy Story</strong>. Z kolei jubileuszowe puzzle, wydane z okazji 10-lecia bajki Rodzina Treflików, pozwalają wybierać spośród bardzo różnych światów i tematów. Seria Inspired By obejmuje m.in. motywy fantasy, naturę i aktualne dziecięce trendy, natomiast Seek & Find oferuje pełne szczegółów ilustracje, które zachęcają do uważnego układania.</p>
5951<p>Dzięki różnej liczbie elementów w ofercie można znaleźć zarówno puzzle dla 3-latków, jak i układanki dla starszych dzieci. Nie trzeba więc od razu sięgać po najbardziej skomplikowany obrazek. Poziom wyzwania powinien rosnąć razem z umiejętnościami dziecka – wtedy ukończenie układanki daje satysfakcję zamiast zniechęcenia.</p>
5952<p><strong>Puzzle mogą być też dobrą odpowiedzią na moment, kiedy po intensywnym dniu potrzeba spokojniejszego zajęcia</strong>. Bez pośpiechu, bez presji – za to z małym celem, który z każdym dopasowanym elementem staje się coraz bliższy.</p>
5953<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5954<link rel="preconnect" href="https://fonts.googleapis.com">
5955<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5956<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5957
5958<style>
5959.trefl-inline-related {
5960    display: flex;
5961    align-items: center; 
5962    gap: 12px; 
5963    margin: 20px 0;
5964    padding: 12px 16px; 
5965    background-color: #f9f9f9;
5966    border: 1px solid #eef0f2;
5967    border-radius: 10px; 
5968    text-decoration: none;
5969    font-family: 'Raleway', sans-serif;
5970    font-size: 14px; 
5971    line-height: 1.5;
5972    color: #333333;
5973    width: 100%; 
5974    box-sizing: border-box; 
5975    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5976}
5977
5978.trefl-inline-related::before {
5979    content: "";
5980    display: block;
5981    flex-shrink: 0;
5982    width: 20px; 
5983    height: 20px;
5984    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5985    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23e30613' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' /%3E%3C/svg%3E");
5986    background-repeat: no-repeat;
5987    background-position: center;
5988    background-size: contain;
5989    transition: transform 0.2s ease;
5990}
5991
5992.trefl-inline-related:hover {
5993    background-color: #ffffff;
5994    border-color: #e30613;
5995    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5996    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5997}
5998
5999.trefl-inline-related:hover::before {
6000    transform: scale(1.05);
6001}
6002
6003.trefl-inline-text-wrapper {
6004    flex-grow: 1;
6005}
6006
6007.trefl-inline-related .label {
6008    color: #e30613;
6009    font-weight: 800;
6010    margin-right: 4px;
6011    letter-spacing: 0.2px;
6012}
6013
6014.trefl-inline-related .title {
6015    font-weight: 700;
6016    color: #1a1a1a;
6017    transition: color 0.2s ease;
6018}
6019
6020.trefl-inline-related:hover .title {
6021    color: #e30613;
6022}
6023</style>
6024
6025<a href="https://www.trefl.com/blog/post/dlaczego-warto-ukladac-puzzle" class="trefl-inline-related">
6026    <div class="trefl-inline-text-wrapper">
6027        <span class="label">Zobacz także:</span> 
6028        <span class="title">Dlaczego warto układać puzzle?
6029</span>
6030    </div>
6031</a>
6032<p><img src="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/Blog+2026/puzzle-pomagaja-dziecku-wyciszyc-sie-po-dniu-pelnym-wrazen.webp" alt="uzzle pomagają dziecku wyciszyć się po dniu pełnym wrażeń" width="800" height="720"></p>
6033<h2><strong>Gra dla dziesięciolatka? Postaw na wspólną rozgrywkę pełną śmiechu</strong></h2>
6034<p>Starsze dzieci mogą coraz chętniej wybierać gry nastawione przede wszystkim na emocje i wspólną zabawę. <strong>Szybkie tempo, rywalizacja i duża dawka humoru sprawiają, że rozgrywka staje się świetnym pretekstem do spędzenia czasu z rodziną lub znajomymi</strong>.</p>
6035<p>Jeśli szukasz gier dla dziesięciolatków, które dobrze sprawdzą się właśnie w takim gronie, ciekawą propozycją jest <a title="Gra YAPPA | Trefl" href="https://www.trefl.com/gra-imprezowa-yappa-02965"><strong>YAPPA</strong></a>.</p>
6036<p>Tutaj czas odmierza nietypowy timer – nakręcana szczęka. Gracz losuje hasło i musi podać jak najwięcej pasujących odpowiedzi, zanim szczęka przestanie kłapać. Proste? Do momentu, kiedy pojawiają się przeszkadzajki utrudniające kolejne rundy. Presja czasu sprawia, że nawet oczywista odpowiedź potrafi nagle wypaść z głowy, a właśnie z takich momentów bierze się najwięcej śmiechu.</p>
6037<p>YAPPA przeznaczona jest dla 2–6 graczy od 10. roku życia, a jedna partia trwa średnio około 20 minut. Dzięki temu można szybko rozegrać kolejną rundę albo wyciągnąć grę wtedy, gdy jest ochota na wspólną zabawę, ale niekoniecznie na wielogodzinną rozgrywkę.</p>
6038<p>I właśnie tutaj dobrze widać, że<strong> </strong>„mądra zabawka” nie musi oznaczać produktu, który wprost przekazuje szkolną wiedzę.<strong> Wspólna gra może zachęcać do interakcji, szybkiego reagowania i kreatywnego szukania odpowiedzi, a przede wszystkim dawać pretekst do spędzenia czasu razem</strong>.</p>
6039<h2><strong>Jak dobrać mądrą zabawkę do wieku dziecka?</strong></h2>
6040<p><strong data-start="78" data-end="213">Dobór mądrej zabawki do wieku dziecka warto zacząć od sprawdzenia oznaczenia producenta, ale nie powinno być ono jedynym kryterium.</strong> Dwoje rówieśników może mieć zupełnie inne zainteresowania, doświadczenie i sposób spędzania wolnego czasu. Dlatego warto wziąć pod uwagę także poziom trudności zabawy oraz to, co naprawdę sprawia dziecku przyjemność.</p>
6041<ul style="margin-top: 0cm;" type="disc">
6042<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6043<p><strong>mądre zabawki dla 3–latka, 4-latka i 5-latka:</strong> można zacząć od prostych gier obserwacyjnych, takich jak Spy Guy Kids: Zwierzaki-Cudaki, dopasowanych do wieku puzzli oraz wybranych modeli pojazdów SIKU przeznaczonych dla dzieci powyżej 3 lat.</p>
6044</li>
6045<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6046<p><strong>mądre zabawki dla 6-latka:</strong> pojawia się więcej możliwości – gry edukacyjne Kosmos, Dinozaury i Karta Rowerowa, zestawy Brick Trick My City oraz puzzle dopasowane liczbą elementów do umiejętności dziecka.</p>
6047</li>
6048<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6049<p><strong>mądre zabawki dla 7-latka, 8-latka i 9-latka:</strong> do wcześniejszych propozycji można dołączyć Spy Guy Europa, a wybór puzzli, klocków i modeli dopasować już przede wszystkim do zainteresowań dziecka.</p>
6050</li>
6051<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6052<p><strong>mądre zabawki dla dziecka 10+:</strong> starszym dzieciom można zaproponować bardziej dynamiczną, towarzyską rozgrywkę, taką jak YAPPA, nie rezygnując oczywiście z puzzli, budowania czy kolekcjonowania pojazdów, jeśli właśnie takie aktywności najbardziej lubią.</p>
6053</li>
6054</ul>
6055<p>Nie warto więc szukać jednej uniwersalnej odpowiedzi na pytanie, jakie są najlepsze mądre zabawki dla 5-latka, 6-latka czy 7-latka. <strong>Najlepsza propozycja to taka, która jest odpowiednia dla wieku, ale jednocześnie trafia w aktualne zainteresowania dziecka</strong>.</p>
6056<p><img src="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/Blog+2026/puzzle-to-madre-zabawki-ktore-rozwijaja-spostrzegawczosc-i-zdolnosci-aktualne.webp" alt="Puzzle to mądre zabawki, które rozwijają spostrzegawczość i zdolności manualne" width="800" height="533"></p>
6057<h2><strong>Powrót do szkoły – i do dobrej zabawy</strong></h2>
6058<p>Początek roku szkolnego zmienia codzienny rytm całej rodziny. Wracają lekcje, zadania i obowiązki, ale obok nich nadal powinno znaleźć się miejsce na swobodną zabawę i wspólny czas.</p>
6059<p>Raz wspaniałym pomysłem okaże się detektywistyczna misja ze Spy Guyem, innym razem wyprawa w kosmos z Treflikiem, budowanie miasteczka z prawdziwej cegły albo spokojne układanie puzzli z ulubionym
6059i bohaterami. Mały samochodzik SIKU może rozpocząć kolejną wymyśloną przygodę, a ze starszym dzieckiem można usiąść do YAPPY i sprawdzić, komu pierwszemu ze śmiechu „opadnie szczena”.</p>
6060<p><strong>Bo wartościowa zabawa może wyglądać za każdym razem inaczej. Najważniejsze, żeby angażowała, sprawiała dziecku radość i dawała mu przestrzeń na to, czego akurat najbardziej potrzebuje po szkolnym dniu.</strong></p>
6061<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
6062<link rel="preconnect" href="https://fonts.googleapis.com">
6063<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
6064<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
6065
6066<style>
6067.trefl-inline-related {
6068    display: flex;
6069    align-items: center; 
6070    gap: 12px; 
6071    margin: 20px 0;
6072    padding: 12px 16px; 
6073    background-color: #f9f9f9;
6074    border: 1px solid #eef0f2;
6075    border-radius: 10px; 
6076    text-decoration: none;
6077    font-family: 'Raleway', sans-serif;
6078    font-size: 14px; 
6079    line-height: 1.5;
6080    color: #333333;
6081    width: 100%; 
6082    box-sizing: border-box; 
6083    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
6084}
6085
6086.trefl-inline-related::before {
6087    content: "";
6088    display: block;
6089    flex-shrink: 0;
6090    width: 20px; 
6091    height: 20px;
6092    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
6093    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23e30613' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' /%3E%3C/svg%3E");
6094    background-repeat: no-repeat;
6095    background-position: center;
6096    background-size: contain;
6097    transition: transform 0.2s ease;
6098}
6099
6100.trefl-inline-related:hover {
6101    background-color: #ffffff;
6102    border-color: #e30613;
6103    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
6104    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
6105}
6106
6107.trefl-inline-related:hover::before {
6108    transform: scale(1.05);
6109}
6110
6111.trefl-inline-text-wrapper {
6112    flex-grow: 1;
6113}
6114
6115.trefl-inline-related .label {
6116    color: #e30613;
6117    font-weight: 800;
6118    margin-right: 4px;
6119    letter-spacing: 0.2px;
6120}
6121
6122.trefl-inline-related .title {
6123    font-weight: 700;
6124    color: #1a1a1a;
6125    transition: color 0.2s ease;
6126}
6127
6128.trefl-inline-related:hover .title {
6129    color: #e30613;
6130}
6131</style>
6132<a href="https://www.trefl.com/blog/post/jaki-plecak-dla-pierwszoklasisty-wybierz-najlepszy-tornister-dla-swojego-dziecka" class="trefl-inline-related">
6133    <div class="trefl-inline-text-wrapper">
6134        <span class="label">Zobacz także:</span> 
6135        <span class="title">Jaki plecak dla pierwszoklasisty? Wybierz najlepszy tornister dla swojego dziecka!
6136
6137</span>
6138    </div>
6139</a>
6140
6141<p><strong><img src="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/Blog+2026/zestawy-kreatywne-to-zabawki-ktore-rozwijaja-dziecko-na-wielu-plaszczyznach.webp" alt="Proszę bardzo:  Zestawy kreatywne to zabawki, które rozwijają dziecko na wielu płaszczyznach" width="800" height="533"></strong></p>
6142<h2><strong>FAQ – mądre zabawki dla dzieci</strong></h2>
6143<h3><strong>Co to są mądre zabawki dla dzieci?</strong></h3>
6144<p>Mądre zabawki to takie, które nie tylko dostarczają rozrywki, ale także angażują dziecko i zachęcają je do działania. Mogą wspierać rozwój spostrzegawczości, kreatywności, koncentracji czy współpracy, pomagać zdobywać nową wiedzę albo pobudzać wyobraźnię podczas swobodnej zabawy.</p>
6145<h3><strong>Jakie mądre zabawki dla 6-latka warto wybrać?</strong></h3>
6146<p>W przypadku 6-latka warto kierować się przede wszystkim jego zainteresowaniami. Dziecku ciekawemu świata mogą spodobać się gry edukacyjne, takie jak Kosmos, Dinozaury czy Karta Rowerowa. Małym konstruktorom można zaproponować zestawy Brick Trick My City do budowania z prawdziwej cegły, a miłośnikom spokojniejszych aktywności – puzzle dopasowane liczbą elementów do ich umiejętności.</p>
6147<h3><strong>Jakie mądre zabawki dla 7-latka będą dobrym wyborem?</strong></h3>
6148<p>
6148Dla 7-latka można wybierać zarówno gry edukacyjne i obserwacyjne, jak i zestawy konstrukcyjne, puzzle czy pojazdy rozwijające swobodną zabawę. Dobrym przykładem jest Spy Guy Europa, który łączy spostrzegawczość z drużynową rywalizacją. Warto jednak dopasować zabawkę nie tylko do wieku, ale również do zainteresowań dziecka.</p>
6149<h3><strong>Czy zabawki edukacyjne muszą przypominać naukę?</strong></h3>
6150<p>Nie. Nauka przez zabawę może być częścią przygody, wspólnej misji, quizu czy gry obserwacyjnej. Dziecko może poznawać nowe informacje o kosmosie, dinozaurach lub zasadach ruchu drogowego, jednocześnie dobrze się bawiąc i współpracując z innymi graczami.</p>
6151<h3><strong>Jakie kreatywne zabawki sprawdzą się dla dzieci?</strong></h3>
6152<p>Dobrym wyborem są zabawki, które pozostawiają dziecku przestrzeń na własne pomysły. Mogą to być klocki i zestawy konstrukcyjne, puzzle czy pojazdy, inspirujące do tworzenia własnych historii. Przykładem jest seria Brick Trick My City, z którą dziecko buduje z prawdziwych miniaturowych cegieł, a następnie może łączyć kolejne zestawy i rozwijać własne miasteczko.</p>
6153<h3><strong>Co wybrać dla dziecka do zabawy po szkole?</strong></h3>
6154<p>Warto dopasować aktywność do tego, czego dziecko potrzebuje po całym dniu pełnym wrażeń. Puzzle mogą zapewnić spokojniejszą chwilę przy układaniu, klocki zachęcić do tworzenia, gry planszowe – do wspólnego spędzenia czasu, a niewielkie pojazdy SIKU dać przestrzeń do swobodnej zabawy i wymyślania własnych przygód.</p>    </div>
6155</article>
6156</div></div></main><footer class="page-footer"><div class="footer content"><template id="trustedshops-badge_6abe4f41df16e">
6157</template>
6158<script>
6159window.addEventListener('init-external-scripts', () => {
6160    const template = document.getElementById('trustedshops-badge_6abe4f41df16e');
6161    if (template?.content) {
6162        const clone = document.importNode(template.content, true);
6163        document.body.appendChild(clone);
6164    }
6165}, {once: true, passive: true});
6166</script>
6166
6167<div class="container">
6168    <div id="newsletter-form-sm" style="width: 100%; max-width: 1200px; margin: 0 auto;"></div>
6169</div>
6170<section data-el="footer-yarn" class="bg-white py-8 lg:py-16 overflow-clip" aria-hidden="true">
6171    <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 141" class="w-full">
6172        <g clip-path="url(#footer-yarn-bg)"><path d="M0 110.625h132.699c122.671 0 209.069-37.945 248.88-17.772 19.906 10.079 45.331 9.078 62.941-4.65 2.131-1.658 4.18-3.523 5.396-5.937 1.216-2.413 1.462-5.472 0-7.748-2.022-3.195-6.995-3.675-9.959-1.33-2.965 2.345-3.812 6.774-2.473 10.312 1.339 3.538 4.536 6.157 8.074 7.447 3.552 1.275 7.432 1.343 11.176.905 10.519-1.22 20.534-6.446 27.597-14.372 2.418-2.715 4.918-5.979 8.525-6.35 2.555-.26 5.041 1.07 6.968 2.785 1.926 1.714 3.456 3.826 5.328 5.595 6.899 6.555 17.432 3.675 27.925 2.605l2.978-.274c30.111-3.305 34.688-18.801 39.579-25.095 4.891-6.309 7.241-.96 7.241-.96s7.746 11.89 13.088 5.238c11.134-13.85-7.241-11.642-10.315-14.097-3.088-2.455 3.252-8.434 6.599-12.712 3.087-3.95 1.27-5.664 1.27-5.664s-5-5.663-10.847-9.393c-4.577-2.921-5.438-.042-5.602 1.357-.109.919-.287 1.824-.587 2.702-1.093 3.14-4.03 8.42-10.943 4.8-7.542-3.95-2.009-13.536 1.543-14.317 4.359-.96.164-4.06.164-4.06s-9.891-6.938-12.446-8.337c-2.554-1.399-3.729 0-3.729 0s-4.044 5.87-6.708 9.613c-2.664 3.744-7.036 3.318-7.87-.11-1.065-4.347-8.511-11.108-13.511-3.305-5.001 7.803 4.932 10.45 8.62 11.108 6.9 1.22 4.017 3.387 1.913 6.198-.861 1.139-5.451 7.529-8.238 11.643a4.205 4.205 0 0 0 1.024 5.787c3.594 2.578 8.935 6.445 9.987 7.35 1.599 1.385 7.446 4.17 7.979-2.03.533-6.198 5.957-11.422 11.599-7.267 5.642 4.169.956 11.327-2.978 12.383-3.935 1.07-4.263 4.594-2.664 6.939 1.598 2.345 31.709 18.69 31.709 18.69l4.467 2.14 2.241.96c15.11 6.46 36.081 5.527 50.932-3.346 6.571-3.936 12.227-9.311 18.976-12.945 6.749-3.634 15.302-5.294 21.901-1.413 4.563 2.702 7.404 7.556 11.435 10.998 4.03 3.442 10.834 5.047 14.235.974 3.402-4.087 1.38-11.547 5.834-14.44 2.295-1.495 5.383-.96 7.815.288 2.432 1.248 4.536 3.085 6.981 4.292 6.694 3.278 14.741 1.193 21.531-1.879 13.649-6.157 19.127-28.331 34.101-28.468 75.523-.74-44.06 116.974 16.121 103.809 60.181-13.165 45.521-99.901 119.583-81.306s40.508 52.275 207.145 52.275H1440" stroke="#000" stroke-miterlimit="10"/></g><defs><clipPath id="footer-yarn-bg"><path fill="#fff" d="M0 0h1440v141H0z"/></clipPath></defs>
6173    </svg>
6174</section>
6175
6176
6177<section data-el="footer-social" class="relative z-10">
6178    <ul class="social-menu">
6179                    <li>
6180            <a href="https://www.facebook.com/Trefl.toys/"
6181                                  title="Przejdź na Trefl Facebook"
6182                               target="_blank"                class="text-header-top"
6183            >
6184                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 1.5A2.5 2.5 0 0 0 1.5 4v6.003A2.497 2.497 0 0 0 3.997 12.5h6.006a2.497 2.497 0 0 0 2.497-2.497V3.997A2.497 2.497 0 0 0 10.003 1.5H4Zm0-1A3.5 3.5 0 0 0 .5 4v6.003A3.497 3.497 0 0 0 3.997 13.5h6.006a3.497 3.497 0 0 0 3.497-3.497V3.997A3.498 3.498 0 0 0 10.003.5H4Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5.9 7.6a.5.5 0 0 1 .5-.5H10a.5.5 0 0 1 0 1H6.4a.5.5 0 0 1-.5-.5Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.765 4.765A2.27 2.27 0 0 1 9.37 4.1H10a.5.5 0 0 1 0 1h-.63A1.27 1.27 0 0 0 8.1 6.37V13a.5.5 0 0 1-1 0V6.37c0-.602.24-1.18.665-1.605Z" fill="currentColor"/></svg>
6185            </a>
6186        </li>
6187                    <li>
6188            <a href="https://pl.linkedin.com/company/trefl-s-a-"
6189                                  title="Przejdź na Trefl LinkedIn"
6190                               target="_blank"                class="text-header-top"
6191            >
6192                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 1.5A2.5 2.5 0 0 0 1.5 4v6.003A2.497 2.497 0 0 0 3.997 12.5h6.006a2.497 2.497 0 0 0 2.497-2.497V3.997A2.497 2.497 0 0 0 10.003 1.5H4Zm0-1A3.5 3.5 0 0 0 .5 4v6.003A3.497 3.497 0 0 0 3.997 13.5h6.006a3.497 3.497 0 0 0 3.497-3.497V3.997A3.498 3.498 0 0 0 10.003.5H4Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M4.413 5.9a.5.5 0 0 1 .5.5V10a.5.5 0 1 1-1 0V6.4a.5.5 0 0 1 .5-.5ZM8.313 6.9a1 1 0 0 0-1 1V10a.5.5 0 1 1-1 0V7.9a2 2 0 1 1 4 0V10a.5.5 0 1 1-1 0V7.9a1 1 0 0 0-1-1ZM4.41 3.725a.65.65 0 1 1 .006 1.3.65.65 0 0 1-.006-1.3Z" fill="currentColor"/></svg>
6193            </a>
6194        </li>
6195                    <li>
6196            <a href="mailto:[email protected]"
6197                                  title="Wyślij e-mail na [email protected]"
6198                               target="_blank"                class="text-header-top"
6199            >
6200                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" fill="none" width="24" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.545 10.183h10.91c.056 0 .1-.047.1-.104V1.922a.103.103 0 0 0-.1-.105H1.544c-.055 0-.1.047-.1.105v8.157a.103.103 0 0 0 .062.096.099.099 0 0 0 .038.008Zm0 1.15h10.91c.669 0 1.212-.561 1.212-1.254V1.922c0-.693-.543-1.255-1.213-1.255H1.545C.876.667.333 1.229.333 1.922v8.157a1.293 1.293 0 0 0 .355.887 1.176 1.176 0 0 0 .857.367Z" fill="currentColor"/><path d="m1.08 2.05 5.129 3.669a1.333 1.333 0 0 0 1.55.001l5.158-3.68" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
6201            </a>
6202        </li>
6203    </ul></section>
6204
6205<section data-el="footer-menu" class="bg-gray-light py-12 lg:py-28" aria-hidden="true">
6206    <div class="container">
6207        <div x-data="{ activeTab: 0 }"
6208         role="tablist"
6209         @keydown.right.prevent.stop="activeTab = Math.min(activeTab + 1, 1)"
6210         @keydown.left.prevent.stop="activeTab = Math.max(activeTab - 1, 0)"
6211         x-defer="intersect"
6212    >
6213
6214        <div class="flex gap-x-8 overflow-x-auto">
6215                                            <button class="px-3.5 py-1 cursor-pointer font-medium transition-colors
6216                                bg-white text-red"
6217                        role="tab"
6218                        @click.prevent="activeTab = 0"
6219                        @keypress.enter="activeTab = 0"
6220                        :aria-controls="'tab-panel-' + 0"
6221                        :aria-selected="activeTab === 0"
6222                        :tabindex="activeTab === 0 ? 0 : -1"
6223                        class=""
6224                        :class="{
6225                            'bg-white text-red': activeTab === 0,
6226                            'hover:bg-white/50 focus:bg-white/50': activeTab !== 0                        }"
6227                >
6228                    Popularne kategorie                </button>
6229                                            <button class="px-3.5 py-1 cursor-pointer font-medium transition-colors
6230                                hover:bg-white/50 focus:bg-white/50"
6231                        role="tab"
6232                        @click.prevent="activeTab = 1"
6233                        @keypress.enter="activeTab = 1"
6234                        :aria-controls="'tab-panel-' + 1"
6235                        :aria-selected="activeTab === 1"
6236                        :tabindex="activeTab === 1 ? 0 : -1"
6237                        class=""
6238                        :class="{
6239                            'bg-white text-red': activeTab === 1,
6240                            'hover:bg-white/50 focus:bg-white/50': activeTab !== 1                        }"
6241                >
6242                    Popularne marki                </button>
6243                    </div>
6244
6245                <div x-show="activeTab === 0"
6246             role="tabpanel"
6247             tabindex="0"
6248             id="'tab-panel-' + 0"
6249             aria-labelledby="'tab-' + 0"
6250             :hidden="activeTab !== 0"
6251                     >
6252            <div class="grid grid-cols-2 md:grid-cols-none md:grid-flow-col md:auto-cols-auto gap-4">
6253                                                        <ul class="list-none mt-7">
6254                                            <li class="[&>
6254a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6255                            
6256<a
6257    href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
6258    class="__inner-link"
6259     data-menu="menu-64">
6260    Puzzle na 40-lecie Trefl</a>
6261
6262                        </li>
6263                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6264                            
6265<a
6266    href="https://www.trefl.com/puzzle/500-elementow"
6267    class="__inner-link"
6268     data-menu="menu-338">
6269    Puzzle 500 elementów</a>
6270
6271                        </li>
6272                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6273                            
6274<a
6275    href="https://www.trefl.com/puzzle/1000-elementow"
6276    class="__inner-link"
6277     data-menu="menu-65">
6278    Puzzle 1000 elementów</a>
6279
6280                        </li>
6281                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6282                            
6283<a
6284    href="https://www.trefl.com/puzzle/2000-elementow"
6285    class="__inner-link"
6286     data-menu="menu-66">
6287    Puzzle 2000 elementów</a>
6288
6289                        </li>
6290                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6291                            
6292<a
6293    href="https://www.trefl.com/puzzle/3000-elementow"
6294    class="__inner-link"
6295     data-menu="menu-67">
6296    Puzzle 3000 elementów</a>
6297
6298                        </li>
6299                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6300                            
6301<a
6302    href="https://www.trefl.com/puzzle/4000-elementow"
6303    class="__inner-link"
6304     data-menu="menu-68">
6305    Puzzle 4000 elementów</a>
6306
6307                        </li>
6308                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6309                            
6310<a
6311    href="https://www.trefl.com/puzzle/6000-elementow"
6312    class="__inner-link"
6313     data-menu="menu-69">
6314    Puzzle 6000 elementów</a>
6315
6316                        </li>
6317                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6318                            
6319<a
6320    href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
6321    class="__inner-link"
6322     data-menu="menu-70">
6323    Puzzle 9000 elementów</a>
6324
6325                        </li>
6326                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6327                            
6328<a
6329    href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
6330    class="__inner-link"
6331     data-menu="menu-71">
6332    Puzzle 13500 elementów</a>
6333
6334                        </li>
6335                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6336                            
6337<a
6338    href="https://www.trefl.com/puzzle/prime-uft/prime-21000"
6339    class="__inner-link"
6340     data-menu="menu-339">
6341    Puzzle 21000 elementów</a>
6342
6343                        </li>
6344                                        </ul>
6345                                                                            <ul class="list-none mt-7">
6346                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6347                            
6348<a
6349    href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-3-w-1"
6350    class="__inner-link"
6351     data-menu="menu-72">
6352    Puzzle 3 w 1</a>
6353
6354                        </li>
6355                                                                                <li class="[&>
6355a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6356                            
6357<a
6358    href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-4-w-1"
6359    class="__inner-link"
6360     data-menu="menu-73">
6361    Puzzle 4 w 1</a>
6362
6363                        </li>
6364                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6365                            
6366<a
6367    href="https://www.trefl.com/puzzle/prime-uft/velvet"
6368    class="__inner-link"
6369     data-menu="menu-74">
6370    Puzzle Velvet</a>
6371
6372                        </li>
6373                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6374                            
6375<a
6376    href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
6377    class="__inner-link"
6378     data-menu="menu-75">
6379    Puzzle Premium Plus</a>
6380
6381                        </li>
6382                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6383                            
6384<a
6385    href="https://www.trefl.com/puzzle/drewniane"
6386    class="__inner-link"
6387     data-menu="menu-76">
6388    Puzzle drewniane</a>
6389
6390                        </li>
6391                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6392                            
6393<a
6394    href="https://www.trefl.com/puzzle/puzzle-filmowe"
6395    class="__inner-link"
6396     data-menu="menu-77">
6397    Puzzle filmowe</a>
6398
6399                        </li>
6400                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6401                            
6402<a
6403    href="https://www.trefl.com/puzzle/puzzle-kosmos"
6404    class="__inner-link"
6405     data-menu="menu-78">
6406    Puzzle kosmos</a>
6407
6408                        </li>
6409                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6410                            
6411<a
6412    href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
6413    class="__inner-link"
6414     data-menu="menu-79">
6415    Puzzle krajobrazy</a>
6416
6417                        </li>
6418                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6419                            
6420<a
6421    href="https://www.trefl.com/puzzle/puzzle-kulinarne"
6422    class="__inner-link"
6423     data-menu="menu-80">
6424    Puzzle kulinarne</a>
6425
6426                        </li>
6427                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6428                            
6429<a
6430    href="https://www.trefl.com/puzzle/puzzle-mapy"
6431    class="__inner-link"
6432     data-menu="menu-81">
6433    Puzzle mapy</a>
6434
6435                        </li>
6436                                        </ul>
6437                                                                            <ul class="list-none mt-7">
6438                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6439                            
6440<a
6441    href="https://www.trefl.com/puzzle/puzzle-miasta"
6442    class="__inner-link"
6443     data-menu="menu-82">
6444    Puzzle miasta</a>
6445
6446                        </li>
6447                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6448                            
6449<a
6450    href="https://www.trefl.com/puzzle/puzzle-obrazy"
6451    class="__inner-link"
6452     data-menu="menu-83">
6453    Puzzle obrazy</a>
6454
6455                        </li>
6456                                                                                <li class="[&>
6456a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6457                            
6458<a
6459    href="https://www.trefl.com/puzzle/puzzle-samochody"
6460    class="__inner-link"
6461     data-menu="menu-84">
6462    Puzzle samochody</a>
6463
6464                        </li>
6465                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6466                            
6467<a
6468    href="https://www.trefl.com/puzzle/puzzle-statki"
6469    class="__inner-link"
6470     data-menu="menu-340">
6471    Puzzle statki</a>
6472
6473                        </li>
6474                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6475                            
6476<a
6477    href="https://www.trefl.com/puzzle/puzzle-zwierzeta"
6478    class="__inner-link"
6479     data-menu="menu-85">
6480    Puzzle zwierzęta</a>
6481
6482                        </li>
6483                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6484                            
6485<a
6486    href="https://www.trefl.com/puzzle/puzzle-swiateczne"
6487    class="__inner-link"
6488     data-menu="menu-86">
6489    Puzzle świąteczne</a>
6490
6491                        </li>
6492                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6493                            
6494<a
6495    href="https://www.trefl.com/puzzle/puzzloramy"
6496    class="__inner-link"
6497     data-menu="menu-87">
6498    PuzzloRamy</a>
6499
6500                        </li>
6501                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6502                            
6503<a
6504    href="https://www.trefl.com/puzzle/fotopuzzle"
6505    class="__inner-link"
6506     data-menu="menu-395">
6507    Fotopuzzle</a>
6508
6509                        </li>
6510                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6511                            
6512<a
6513    href="https://www.trefl.com/puzzle/akcesoria"
6514    class="__inner-link"
6515     data-menu="menu-350">
6516    Akcesoria do puzzli</a>
6517
6518                        </li>
6519                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6520                            
6521<a
6522    href="https://www.trefl.com/gry/rodzinne"
6523    class="__inner-link"
6524     data-menu="menu-88">
6525    Gry rodzinne</a>
6526
6527                        </li>
6528                                        </ul>
6529                                                                            <ul class="list-none mt-7">
6530                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6531                            
6532<a
6533    href="https://www.trefl.com/gry/towarzyskie"
6534    class="__inner-link"
6535     data-menu="menu-89">
6536    Gry towarzyskie</a>
6537
6538                        </li>
6539                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6540                            
6541<a
6542    href="https://www.trefl.com/gry/zrecznosciowe"
6543    class="__inner-link"
6544     data-menu="menu-90">
6545    Gry zręcznościowe</a>
6546
6547                        </li>
6548                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6549                            
6550<a
6551    href="https://www.trefl.com/gry/edukacyjne"
6552    class="__inner-link"
6553     data-menu="menu-91">
6554    Gry edukacyjne dla dzieci</a>
6555
6556                        </li>
6557                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6558                            
6559<a
6560    href="https://www.trefl.com/gry/dla-grup-przedszkoli"
6561    class="__inner-link"
6562     data-menu="menu-447">
6563    Gry dla grup i przedszkoli</a>
6564
6565                        </li>
6566                                                                                <li class="[&>
6566a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6567                            
6568<a
6569    href="https://www.trefl.com/gry/imprezowe"
6570    class="__inner-link"
6571     data-menu="menu-92">
6572    Gry imprezowe</a>
6573
6574                        </li>
6575                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6576                            
6577<a
6578    href="https://www.trefl.com/gry/domino-i-memos"
6579    class="__inner-link"
6580     data-menu="menu-93">
6581    Gry memory</a>
6582
6583                        </li>
6584                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6585                            
6586<a
6587    href="https://www.trefl.com/gry/1st-game"
6588    class="__inner-link"
6589     data-menu="menu-94">
6590    Pierwsze gry / 1st games</a>
6591
6592                        </li>
6593                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6594                            
6595<a
6596    href="https://www.trefl.com/gry/karciane"
6597    class="__inner-link"
6598     data-menu="menu-95">
6599    Gry karciane</a>
6600
6601                        </li>
6602                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6603                            
6604<a
6605    href="https://www.trefl.com/gry/gry-fantasy"
6606    class="__inner-link"
6607     data-menu="menu-98">
6608    Gry fantasy</a>
6609
6610                        </li>
6611                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6612                            
6613<a
6614    href="https://www.trefl.com/gry/5-sekund"
6615    class="__inner-link"
6616     data-menu="menu-96">
6617    Gry 5 sekund</a>
6618
6619                        </li>
6620                                        </ul>
6621                                                                            <ul class="list-none mt-7">
6622                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6623                            
6624<a
6625    href="https://www.trefl.com/gry/boom-boom"
6626    class="__inner-link"
6627     data-menu="menu-97">
6628    Gry Boom Boom</a>
6629
6630                        </li>
6631                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6632                            
6633<a
6634    href="https://www.trefl.com/gry/magajaja"
6635    class="__inner-link"
6636     data-menu="menu-352">
6637    Gry Magajaja</a>
6638
6639                        </li>
6640                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6641                            
6642<a
6643    href="https://www.trefl.com/gry/mistakos"
6644    class="__inner-link"
6645     data-menu="menu-353">
6646    Gry Mistakos</a>
6647
6648                        </li>
6649                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6650                            
6651<a
6652    href="https://www.trefl.com/gry/gry-spy-guy"
6653    class="__inner-link"
6654     data-menu="menu-99">
6655    Gry Spy Guy</a>
6656
6657                        </li>
6658                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6659                            
6660<a
6661    href="https://www.trefl.com/gry/skoczki"
6662    class="__inner-link"
6663     data-menu="menu-101">
6664    Gry Skoczki</a>
6665
6666                        </li>
6667                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6668                            
6669<a
6670    href="https://www.trefl.com/gry/level-up"
6671    class="__inner-link"
6672     data-menu="menu-100">
6673    Gry level up</a>
6674
6675                        </li>
6676                                                                                <li class="[&>
6676a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6677                            
6678<a
6679    href="https://www.trefl.com/gry/chinczyk"
6680    class="__inner-link"
6681     data-menu="menu-102">
6682    Chińczyk</a>
6683
6684                        </li>
6685                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6686                            
6687<a
6688    href="https://www.trefl.com/gry/warcaby"
6689    class="__inner-link"
6690     data-menu="menu-351">
6691    Warcaby</a>
6692
6693                        </li>
6694                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6695                            
6696<a
6697    href="https://www.trefl.com/zabawki/interaktywne"
6698    class="__inner-link"
6699     data-menu="menu-103">
6700    Zabawki interaktywne</a>
6701
6702                        </li>
6703                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6704                            
6705<a
6706    href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
6707    class="__inner-link"
6708     data-menu="menu-104">
6709    Klocki ceramiczne</a>
6710
6711                        </li>
6712                                        </ul>
6713                                                                            <ul class="list-none mt-7">
6714                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6715                            
6716<a
6717    href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
6718    class="__inner-link"
6719     data-menu="menu-354">
6720    Klocki konstrukcyjne</a>
6721
6722                        </li>
6723                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6724                            
6725<a
6726    href="https://www.trefl.com/zabawki/klocki/klocki-magnetyczne-geomag"
6727    class="__inner-link"
6728     data-menu="menu-105">
6729    Klocki magnetyczne</a>
6730
6731                        </li>
6732                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6733                            
6734<a
6735    href="https://www.trefl.com/zabawki/magiczne-sztuczki"
6736    class="__inner-link"
6737     data-menu="menu-489">
6738    Magiczne Sztuczki</a>
6739
6740                        </li>
6741                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6742                            
6743<a
6744    href="https://www.trefl.com/zabawki/drewniane"
6745    class="__inner-link"
6746     data-menu="menu-106">
6747    Zabawki drewniane</a>
6748
6749                        </li>
6750                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6751                            
6752<a
6753    href="https://www.trefl.com/zabawki/outdoorowe"
6754    class="__inner-link"
6755     data-menu="menu-107">
6756    Zabawki do ogrodu</a>
6757
6758                        </li>
6759                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6760                            
6761<a
6762    href="https://www.trefl.com/zabawki/zestawy-naukowe"
6763    class="__inner-link"
6764     data-menu="menu-108">
6765    Zabawki naukowe</a>
6766
6767                        </li>
6768                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6769                            
6770<a
6771    href="https://www.trefl.com/zabawki/modele"
6772    class="__inner-link"
6773     data-menu="menu-109">
6774    Modele pojazdów</a>
6775
6776                        </li>
6777                                                                                <li class="[&>
6777a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6778                            
6779<a
6780    href="https://www.trefl.com/ksiazki"
6781    class="__inner-link"
6782     data-menu="menu-110">
6783    Książki dla dzieci</a>
6784
6785                        </li>
6786                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6787                            
6788<a
6789    href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
6790    class="__inner-link"
6791     data-menu="menu-355">
6792    Książki dla rodziców</a>
6793
6794                        </li>
6795                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6796                            
6797<a
6798    href="https://www.trefl.com/produkty-fsc"
6799    class="__inner-link"
6800     data-menu="menu-111">
6801    Produkty FSC</a>
6802
6803                        </li>
6804                                        </ul>
6805                                                </div>
6806        </div>
6807                <div x-show="activeTab === 1"
6808             role="tabpanel"
6809             tabindex="0"
6810             id="'tab-panel-' + 1"
6811             aria-labelledby="'tab-' + 1"
6812             :hidden="activeTab !== 1"
6813             x-cloak        >
6814            <div class="grid grid-cols-2 md:grid-cols-none md:grid-flow-col md:auto-cols-auto gap-4">
6815                                                        <ul class="list-none mt-7">
6816                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6817                            
6818<a
6819    href="https://www.trefl.com/marki/44-cats"
6820    class="__inner-link"
6821     data-menu="menu-113">
6822    44 Cats</a>
6823
6824                        </li>
6825                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6826                            
6827<a
6828    href="https://www.trefl.com/marki/avengers"
6829    class="__inner-link"
6830     data-menu="menu-114">
6831    Avengers</a>
6832
6833                        </li>
6834                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6835                            
6836<a
6837    href="https://www.trefl.com/marki/baby-shark"
6838    class="__inner-link"
6839     data-menu="menu-115">
6840    Baby Shark</a>
6841
6842                        </li>
6843                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6844                            
6845<a
6846    href="https://www.trefl.com/marki/barbie"
6847    class="__inner-link"
6848     data-menu="menu-116">
6849    Barbie</a>
6850
6851                        </li>
6852                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6853                            
6854<a
6855    href="https://www.trefl.com/marki/basia"
6856    class="__inner-link"
6857     data-menu="menu-117">
6858    Basia</a>
6859
6860                        </li>
6861                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6862                            
6863<a
6864    href="https://www.trefl.com/marki/bing"
6865    class="__inner-link"
6866     data-menu="menu-118">
6867    Bing</a>
6868
6869                        </li>
6870                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6871                            
6872<a
6873    href="https://www.trefl.com/marki/bobaski-i-mis"
6874    class="__inner-link"
6875     data-menu="menu-119">
6876    Bobaski i Miś</a>
6877
6878                        </li>
6879                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6880                            
6881<a
6882    href="https://www.trefl.com/marki/cars"
6883    class="__inner-link"
6884     data-menu="menu-120">
6885    Cars</a>
6886
6887                        </li>
6888                                                                                <li class="[&>
6888a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6889                            
6890<a
6891    href="https://www.trefl.com/marki/cocomelon"
6892    class="__inner-link"
6893     data-menu="menu-356">
6894    Cocomelon</a>
6895
6896                        </li>
6897                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6898                            
6899<a
6900    href="https://www.trefl.com/marki/diplodok"
6901    class="__inner-link"
6902     data-menu="menu-121">
6903    Diplodok</a>
6904
6905                        </li>
6906                                        </ul>
6907                                                                            <ul class="list-none mt-7">
6908                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6909                            
6910<a
6911    href="https://www.trefl.com/marki/disney"
6912    class="__inner-link"
6913     data-menu="menu-341">
6914    Disney</a>
6915
6916                        </li>
6917                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6918                            
6919<a
6920    href="#"
6921    class="__inner-link"
6922     data-menu="menu-122">
6923    Dungeons & Dragons</a>
6924
6925                        </li>
6926                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6927                            
6928<a
6929    href="https://www.trefl.com/marki/enchantimals"
6930    class="__inner-link"
6931     data-menu="menu-123">
6932    Enchantimals</a>
6933
6934                        </li>
6935                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6936                            
6937<a
6938    href="https://www.trefl.com/marki/friends"
6939    class="__inner-link"
6940     data-menu="menu-124">
6941    Friends</a>
6942
6943                        </li>
6944                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6945                            
6946<a
6947    href="https://www.trefl.com/marki/kraina-lodu"
6948    class="__inner-link"
6949     data-menu="menu-125">
6950    Frozen / Kraina Lodu</a>
6951
6952                        </li>
6953                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6954                            
6955<a
6956    href="https://www.trefl.com/marki/garfield"
6957    class="__inner-link"
6958     data-menu="menu-342">
6959    Garfield</a>
6960
6961                        </li>
6962                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6963                            
6964<a
6965    href="https://www.trefl.com/marki/harry-potter"
6966    class="__inner-link"
6967     data-menu="menu-126">
6968    Harry Potter</a>
6969
6970                        </li>
6971                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6972                            
6973<a
6974    href="https://www.trefl.com/marki/hello-kitty"
6975    class="__inner-link"
6976     data-menu="menu-343">
6977    Hello Kitty</a>
6978
6979                        </li>
6980                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6981                            
6982<a
6983    href="https://www.trefl.com/marki/kicia-kocia"
6984    class="__inner-link"
6985     data-menu="menu-127">
6986    Kicia Kocia</a>
6987
6988                        </li>
6989                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6990                            
6991<a
6992    href="https://www.trefl.com/marki/koci-domek-gabi"
6993    class="__inner-link"
6994     data-menu="menu-128">
6995    Koci Domek Gabi</a>
6996
6997                        </li>
6998                                        </ul>
6999                                                                            <ul class="list-none mt-7">
7000                                            <li class="[&>
7000a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7001                            
7002<a
7003    href="https://www.trefl.com/marki/kucyki-pony"
7004    class="__inner-link"
7005     data-menu="menu-129">
7006    Kucyki Pony</a>
7007
7008                        </li>
7009                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7010                            
7011<a
7012    href="https://www.trefl.com/marki/lilo-stitch"
7013    class="__inner-link"
7014     data-menu="menu-130">
7015    Lilo & Stitch</a>
7016
7017                        </li>
7018                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7019                            
7020<a
7021    href="https://www.trefl.com/marki/lol-surprise"
7022    class="__inner-link"
7023     data-menu="menu-344">
7024    LOL Surprise</a>
7025
7026                        </li>
7027                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7028                            
7029<a
7030    href="https://www.trefl.com/marki/minionki"
7031    class="__inner-link"
7032     data-menu="menu-131">
7033    Minionki</a>
7034
7035                        </li>
7036                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7037                            
7038<a
7039    href="https://www.trefl.com/marki/myszka-mickey"
7040    class="__inner-link"
7041     data-menu="menu-132">
7042    Myszka Miki</a>
7043
7044                        </li>
7045                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7046                            
7047<a
7048    href="https://www.trefl.com/marki/myszka-minnie"
7049    class="__inner-link"
7050     data-menu="menu-133">
7051    Myszka Minnie</a>
7052
7053                        </li>
7054                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7055                            
7056<a
7057    href="https://www.trefl.com/marki/park-jurajski"
7058    class="__inner-link"
7059     data-menu="menu-134">
7060    Park Jurajski</a>
7061
7062                        </li>
7063                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7064                            
7065<a
7066    href="https://www.trefl.com/marki/psi-patrol"
7067    class="__inner-link"
7068     data-menu="menu-135">
7069    Psi Patrol</a>
7070
7071                        </li>
7072                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7073                            
7074<a
7075    href="https://www.trefl.com/marki/pusheen"
7076    class="__inner-link"
7077     data-menu="menu-345">
7078    Pusheen</a>
7079
7080                        </li>
7081                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7082                            
7083<a
7084    href="https://www.trefl.com/marki/rainbow-high"
7085    class="__inner-link"
7086     data-menu="menu-136">
7087    Rainbow High</a>
7088
7089                        </li>
7090                                        </ul>
7091                                                                            <ul class="list-none mt-7">
7092                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7093                            
7094<a
7095    href="https://www.trefl.com/marki/rick-i-morty"
7096    class="__inner-link"
7097     data-menu="menu-346">
7098    Rick i Morty</a>
7099
7100                        </li>
7101                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7102                            
7103<a
7104    href="https://www.trefl.com/rodzina-treflikow"
7105    class="__inner-link"
7106     data-menu="menu-137">
7107    Rodzina Treflików</a>
7108
7109                        </li>
7110                                                                                <li class="[&>
7110a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7111                            
7112<a
7113    href="https://www.trefl.com/marki/smerfy"
7114    class="__inner-link"
7115     data-menu="menu-138">
7116    Smerfy</a>
7117
7118                        </li>
7119                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7120                            
7121<a
7122    href="https://www.trefl.com/marki/smiley-world"
7123    class="__inner-link"
7124     data-menu="menu-357">
7125    Smiley World</a>
7126
7127                        </li>
7128                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7129                            
7130<a
7131    href="https://www.trefl.com/marki/spiderman"
7132    class="__inner-link"
7133     data-menu="menu-139">
7134    Spiderman</a>
7135
7136                        </li>
7137                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7138                            
7139<a
7140    href="https://www.trefl.com/marki/spidey"
7141    class="__inner-link"
7142     data-menu="menu-140">
7143    Spidey</a>
7144
7145                        </li>
7146                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7147                            
7148<a
7149    href="https://www.trefl.com/marki/spongebob-kanciastoporty"
7150    class="__inner-link"
7151     data-menu="menu-347">
7152    SpongeBob Kanciastoporty</a>
7153
7154                        </li>
7155                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7156                            
7157<a
7158    href="https://www.trefl.com/marki/spy-guy"
7159    class="__inner-link"
7160     data-menu="menu-358">
7161    Spy Guy</a>
7162
7163                        </li>
7164                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7165                            
7166<a
7167    href="https://www.trefl.com/marki/star-wars"
7168    class="__inner-link"
7169     data-menu="menu-141">
7170    Star Wars</a>
7171
7172                        </li>
7173                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7174                            
7175<a
7176    href="https://www.trefl.com/marki/strazak-sam"
7177    class="__inner-link"
7178     data-menu="menu-142">
7179    Strażak Sam</a>
7180
7181                        </li>
7182                                        </ul>
7183                                                                            <ul class="list-none mt-7">
7184                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7185                            
7186<a
7187    href="https://www.trefl.com/marki/swinka-peppa"
7188    class="__inner-link"
7189     data-menu="menu-143">
7190    Świnka Peppa</a>
7191
7192                        </li>
7193                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7194                            
7195<a
7196    href="https://www.trefl.com/marki/tomek-i-przyjaciele"
7197    class="__inner-link"
7198     data-menu="menu-144">
7199    Tomek i Przyjaciele</a>
7200
7201                        </li>
7202                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7203                            
7204<a
7205    href="https://www.trefl.com/marki/w-glowie-sie-nie-miesci-2"
7206    class="__inner-link"
7207     data-menu="menu-348">
7208    W głowie się nie mieści</a>
7209
7210                        </li>
7211                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7212                            
7213<a
7214    href="https://www.trefl.com/marki/wladca-pierscieni"
7215    class="__inner-link"
7216     data-menu="menu-349">
7217    Władca Pierścieni</a>
7218
7219                        </li>
7220                                                </div>
7221        </div>
7222            </div>    </div>
7223</section>
7224
7225<section class="bg-white py-16 relative overflow-clip trefl-bg-logo bg-no-repeat bg-left-bottom"
7226         style="background-size: auto 80%;">
7227    <div class="container grid grid-cols-1 md:grid-cols-4 gap-4">
7228        <div class="col-span-1 relative">
7229            <img src="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/images/logo.svg"
7230                 alt=""
7231                 width="94"
7232                 height="47"
7233                 decoding="async"
7234                 aria-hidden="true"
7235            />
7236
7237                        <div class="mt-10 [&_a:hover]:underline">
7238                <p style="display: block;"><img class="lazyload" alt="" data-src="https://www.trefl.com/media/wysiwyg/logo_small.png"></p>
7239<p>ul. Kontenerowa 25</p>
7240<p>81-155 Gdynia</p>
7241<p><a href="mailto:[email protected]">[email protected]</a></p>
7242<p>+48 58 66 67 333</p>            </div>
7243            
7244                        <div class="mt-10">
7245                
7246<div class="field flex gap-4 items-center">
7247    <label class="label" for="language-selector">
7248        Język:
7249    </label>
7250    <div class="control">
7251        <select class="form-select lowercase select-none"
7252                id="language-selector"
7253                onchange="window.location.href = event.target.value">
7254                            <option value="https://www.trefl.com/"
7255                    selected                >
7256                    polski                </option>
7257                            <option value="https://www.trefl.com/en/"
7258                                    >
7259                    english                </option>
7260                    </select>
7261    </div>
7262</div>
7263            </div>
7264                    </div>
7265        <div class="col-span-3">
7266                        
7267<div class="grid md:grid-flow-col grid-cols-2 md:grid-cols-none md:auto-cols-max justify-end gap-y-6 gap-x-12 md:mt-10" style="padding-top: 47px;">
7268            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7269                            <li role="menuitem">
7270<a
7271    href="https://www.trefl.com/komunikacja-z-akcjonariuszami"
7272    class="trtre__inner-link"
7273     data-menu="menu-166">
7274    Dla akcjonariuszy</a>
7275</li>
7276                            <li role="menuitem">
7277<a
7278    href="https://www.trefl.com/projekty-unijne"
7279    class="trtre__inner-link"
7280     data-menu="menu-165">
7281    Projekty unijne</a>
7282</li>
7283                            <li role="menuitem">
7284<a
7285    href="https://www.trefl.com/sygnalisci"
7286    class="trtre__inner-link"
7287     data-menu="menu-168">
7288    Sygnaliści</a>
7289</li>
7290                            <li role="menuitem">
7291<a
7292    href="https://www.trefl.com/strategia-podatkowa"
7293    class="trtre__inner-link"
7294     data-menu="menu-167">
7295    Strategia podatkowa</a>
7296</li>
7297                    </ul>
7298            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7299                            <li role="menuitem">    <a
7300        href="/blog"
7301        data-menu="menu-406" class="trtre__inner-link"    >
7302        Blog    </a>
7303
7304</li>
7305                            <li role="menuitem">
7306<a
7307    href="https://www.trefl.com/grupa-trefl"
7308    class="trtre__inner-link"
7309     data-menu="menu-407">
7310    Grupa Trefl</a>
7311</li>
7312                            <li role="menuitem">
7313<a
7314    href="https://www.trefl.com/kariera"
7315    class="trtre__inner-link"
7316     data-menu="menu-408">
7317    Kariera</a>
7318</li>
7319                            <li role="menuitem">    <a
7320        href="https://www.trefl.com/logo-trefl"
7321        data-menu="menu-409" class="trtre__inner-link"    >
7322        Logo Trefl    </a>
7323
7324</li>
7325                            <li role="menuitem">
7326<a
7327    href="https://www.trefl.com/regulamin-materialow-promocyjnych"
7328    class="trtre__inner-link"
7329     data-menu="menu-411">
7330    Materiały promocyjne</a>
7331</li>
7332                            <li role="menuitem">    <a
7333        href="https://b2b.trefl.com/"
7334        data-menu="menu-412" class="trtre__inner-link" target="_blank" rel="noopener"    >
7335        Platforma zamówień B2B    </a>
7336
7337</li>
7338                            <li role="menuitem">
7339<a
7340    href="https://www.trefl.com/b2b"
7341    class="trtre__inner-link"
7342     data-menu="menu-448">
7343    Oferta B2B</a>
7344</li>
7345                            <li role="menuitem">
7346<a
7347    href="https://www.trefl.com/ankieta"
7348    class="trtre__inner-link"
7349     data-menu="menu-413">
7350    Przekaż nam opinię</a>
7351</li>
7352                    </ul>
7353            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7354                            <li role="menuitem">    <a
7355        href="https://katalogi.trefl.com/"
7356        data-menu="menu-150" class="trtre__inner-link" target="_blank" rel="noopener"    >
7357        E-katalog Trefl PL/EN/DE    </a>
7358
7359</li>
7360                            <li role="menuitem">    <a
7361        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/katalog_AW2026.pdf"
7362        data-menu="menu-151" class="trtre__inner-link" target="_blank" rel="noopener"    >
7363        Katalog Puzzle/Gry/Zabawki 2026 AW    </a>
7364
7365</li>
7366                            <li role="menuitem">    <a
7367        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Trefl-Catalogue-SS-2026.pdf"
7368        data-menu="menu-626" class="trtre__inner-link" target="_blank" rel="noopener"    >
7369        Katalog Puzzle/Gry/Zabawki 2026 SS    </a>
7370
7371</li>
7372                            <li role="menuitem">    <a
7373        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Trefl-Catalogue-DE-2025.pdf"
7374        data-menu="menu-336" class="trtre__inner-link" target="_blank" rel="noopener"    >
7375        Katalog Puzzle/Gry DE 2025    </a>
7376
7377</li>
7378                            <li role="menuitem">    <a
7379        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/The-Treflik_Family-Catalogue-SS-2025.pdf"
7380        data-menu="menu-152" class="trtre__inner-link" target="_blank" rel="noopener"    >
7381        Katalog Rodzina Treflików 2025 SS    </a>
7382
7383</li>
7384                            <li role="menuitem">    <a
7385        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Katalog+Norymberga+2024.pdf"
7386        data-menu="menu-153" class="trtre__inner-link" target="_blank" rel="noopener"    >
7387        Katalog Spielwarenmesse 2024    </a>
7388
7389</li>
7390                            <li role="menuitem">
7391<a
7392    href="https://www.trefl.com/instrukcje-gier-w-jezyku-ukrainskim"
7393    class="trtre__inner-link"
7394     data-menu="menu-159">
7395    Instrukcje gier UA/інструкції до гри</a>
7396</li>
7397                    </ul>
7398            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7399                            <li role="menuitem">
7400<a
7401    href="https://www.trefl.com/regulamin"
7402    class="trtre__inner-link"
7403     data-menu="menu-171">
7404    Regulamin</a>
7405</li>
7406                            <li role="menuitem">
7407<a
7408    href="https://www.trefl.com/polityka-prywatnosci"
7409    class="trtre__inner-link"
7410     data-menu="menu-172">
7411    Polityka prywatności</a>
7412</li>
7413                            <li role="menuitem">
7414<a
7415    href="https://www.trefl.com/dostawa"
7416    class="trtre__inner-link"
7417     data-menu="menu-174">
7418    Dostawa</a>
7419</li>
7420                            <li role="menuitem">
7421<a
7422    href="https://www.trefl.com/formy-platnosci"
7423    class="trtre__inner-link"
7424     data-menu="menu-175">
7425    Formy płatności</a>
7426</li>
7427                            <li role="menuitem">    <a
7428        href="/pomoc#Zwroty"
7429        data-menu="menu-178" class="trtre__inner-link"    >
7430        Zwroty    </a>
7431
7432</li>
7433                            <li role="menuitem">
7434<a
7435    href="https://www.trefl.com/reklamacje"
7436    class="trtre__inner-link"
7437     data-menu="menu-176">
7438    Reklamacje</a>
7439</li>
7440                            <li role="menuitem">
7441<a
7442    href="https://www.trefl.com/reklamacje-puzzle-prime"
7443    class="trtre__inner-link"
7444     data-menu="menu-177">
7445    Reklamacje Puzzle Prime</a>
7446</li>
7447                            <li role="menuitem">    <a
7448        href="https://www.trefl.com/pomoc"
7449        data-menu="menu-179" class="trtre__inner-link"    >
7450        Pomoc / FAQ    </a>
7451
7452</li>
7453                            <li role="menuitem">    <a
7454        href="/contact"
7455        data-menu="menu-169" class="trtre__inner-link"    >
7456        Kontakt    </a>
7457
7458</li>
7459                    </ul>
7460    </div>
7461                    </div>
7462    </div>
7463</section>
7464
7465<div class="container relative">
7466    <button x-data="usercentricsMobile"
7467            @click.prevent="showUserCentricsLayer"
7468            title="Ustawienia&#x20;prywatno&#x015B;ci"
7469            @resize.debounce.100.window="initUsercentricsMobile"
7470            class="absolute right-2 bottom-2 w-11 h-11 bg-primary text-white rounded-full flex items-center justify-center shadow-xl md:!hidden"
7471            x-show="isAvailable"
7472            x-cloak>
7473        <svg xmlns="http://www.w3.org/2000/svg" height="100%" viewB
7473ox="0 0 24 24" width="100%" fill="currentColor" aria-hidden="true" class="size-5"><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M11.19 1.36l-7 3.11C3.47 4.79 3 5.51 3 6.3V11c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V6.3c0-.79-.47-1.51-1.19-1.83l-7-3.11c-.51-.23-1.11-.23-1.62 0zm-1.9 14.93L6.7 13.7c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0L10 14.17l5.88-5.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-6.59 6.59c-.38.39-1.02.39-1.41 0z"></path></svg>
7474    </button>
7475</div>
7476
7477<script>
7478    function usercentricsMobile() {
7479        return {
7480            isAvailable: false,
7481            originalButton: null,
7482            isInitialized: false,
7483            init() {
7484                if (!this.isInitialized && window.innerWidth <= 768) {
7485                    window.addEventListener('UC_UI_INITIALIZED', function () {
7486                        this.initUsercentricsMobile()
7487                    }.bind(this));
7488                }
7489            },
7490            initUsercentricsMobile() {
7491                if (this.isInitialized || window.innerWidth > 768) {
7492                    return;
7493                }
7494
7495                if (typeof UC_UI !== 'undefined' && 'showSecondLayer' in UC_UI) {
7496                    this.isAvailable = true;
7497                    this.isInitialized = true;
7498                    this.originalButton = document.getElementById('usercentrics-root');
7499
7500                                        if (localStorage.getItem('uc_user_interaction') === 'true') {
7501                        this.toggleOriginalButton(false);
7502                    }
7503
7504                    window.addEventListener('UC_UI_VIEW_CHANGED', (event) => {
7505                        const view = event.detail?.view || 'NONE';
7506
7507                        if (view === 'PRIVACY_BUTTON' || view === 'NONE') {
7508                            this.toggleOriginalButton(false);
7509                        } else if (view === 'SECOND_LAYER') {
7510                            this.toggleOriginalButton(true);
7511                        }
7512                    });
7513                }
7514            },
7515            showUserCentricsLayer() {
7516                if (typeof UC_UI !== 'undefined' && 'showSecondLayer' in UC_UI) {
7517                    UC_UI.showSecondLayer()
7518                }
7519            },
7520            toggleOriginalButton(state) {
7521                if (!this.originalButton) {
7522                    return;
7523                }
7524                this.originalButton.classList.toggle('hidden', !state);
7525            },
7526        }
7527    }
7528    window.addEventListener(
7529        'alpine:init',
7530        () => Alpine.data('usercentricsMobile', usercentricsMobile),
7531        {once: true}
7532    )
7533</script>
7533
7534
7535<div class="mobile-nav-bar bg-white w-screen py-2 fixed bottom-0 left-0 flex z-10 divide-x divide-gray-lighter md:hidden"
7536     x-data="initMobileNavBar()"
7537     @private-content-loaded.window="getData(event.detail.data)"
7538>
7539    <!--Wishlist Icon-->
7540            <a href="https://www.trefl.com/wishlist/"
7541           class="mobile-nav-bar-item"
7542           title="Ulubione"
7543        >
7544            <span class="mobile-nav-bar-item-icon">
7545                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 18" width="26" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.304 1.75c-2.652 0-4.554 2.526-4.554 5.005 0 2.59 1.624 4.965 3.587 6.742.97.878 1.99 1.58 2.867 2.06.438.24.83.418 1.154.535.338.123.549.158.642.158.093 0 .304-.035.642-.158a8.482 8.482 0 0 0 1.154-.535 15.411 15.411 0 0 0 2.867-2.06c1.963-1.777 3.587-4.152 3.587-6.742 0-2.479-1.902-5.005-4.554-5.005-1.534 0-2.534.756-3.126 1.448a.75.75 0 0 1-1.14 0C8.838 2.506 7.838 1.75 6.304 1.75ZM.25 6.755C.25 3.684 2.606.25 6.304.25 7.964.25 9.176.91 10 1.642A5.445 5.445 0 0 1 13.696.25c3.698 0 6.054 3.434 6.054 6.505 0 3.21-1.987 5.959-4.08 7.854a16.914 16.914 0 0 1-3.154 2.264 9.958 9.958 0 0 1-1.364.63c-.397.143-.8.247-1.152.247-.352 0-.755-.104-1.152-.247a9.961 9.961 0 0 1-1.364-.63 16.913 16.913 0 0 1-3.154-2.264C2.237 12.714.25 9.966.25 6.755Z" fill="currentColor"/></svg>
7546            </span>
7547
7548            <span class="mobile-nav-bar-item-label">
7549                Ulubione            </span>
7550        </a>
7551    
7552    <!--Cart Icon-->
7553    <a id="menu-cart-icon"
7554       class="mobile-nav-bar-item"
7555       x-ref="cartButton"
7556       :aria-disabled="isCartEmpty()"
7557       :aria-label="`
7558            View&#x20;cart,
7559            ${isCartEmpty()
7560                ? 'Koszyk&#x20;jest&#x20;pusty'
7561                : cart.summary_count > 1
7562                    ? hyva.str('&#x25;1&#x20;element&#xF3;w', cart.summary_count)
7563                    : hyva.str('&#x25;1&#x20;item', cart.summary_count)
7564            }`
7565       "
7566       href="https://www.trefl.com/checkout/cart/index/"
7567       title="View&#x20;cart"
7568    >
7569        <span class="mobile-nav-bar-item-icon relative" aria-hidden="true">
7570            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35 32" width="26" height="26" aria-hidden="true"><path d="M9.386 5.564 8.454 0H-.001v2.782h6.1l.734 4.403 1.397 9.074c.549 2.929 2.252 4.613 4.677 4.613H28.54c1.531 0 4.179-.613 4.69-4.658l1.64-10.643H9.385zm21.089 10.261c-.262 2.087-1.098 2.259-1.933 2.259H12.909c-.37 0-1.506 0-1.94-2.297l-1.142-7.44h21.797l-1.149 7.478zM13.215 25.045a3.478 3.478 0 1 0 0 6.956 3.478 3.478 0 0 0 0-6.956zm0 4.173c-.383 0-.696-.313-.696-.695s.313-.695.695-.695.695.313.695.695-.313.695-.695.695zM28.51 25.045a3.478 3.478 0 1 0 0 6.956 3.478 3.478 0 0 0 0-6.956zm0 4.173c-.383 0-.695-.313-.695-.695s.313-.695.695-.695c.383 0 .695.313.695.695s-.306.695-.695.695z" fill="currentColor"/></svg>
7571            <span
7572                x-text="cart.summary_count"
7573                x-show="!isCartEmpty()"
7574                x-cloak
7575                class="absolute -top-1 -right-2.5 h-4 px-1.5 rounded-full bg-primary text-white
7576                       font-semibold leading-4 uppercase tabular-nums"
7577                style="font-size: 10px;"
7578            ></span>
7579        </span>
7580
7581        <span class="mobile-nav-bar-item-label">
7582            Koszyk        </span>
7583    </a>
7584
7585    <!--Customer-->
7586    
7587<a href="https://www.trefl.com/customer/account/login/"
7588   class="mobile-nav-bar-item"
7589>
7590    <span class="mobile-nav-bar-item-icon">
7591        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 20" fill="none" width="22" height="24" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M9 1.75c-2.046 0-3.733 1.706-3.733 3.767A3.744 3.744 0 0 0 9 9.25c2.046 0 3.733-1.706 3.733-3.767A3.744 3.744 0 0 0 9 1.75ZM3.767 5.517C3.767 2.642 6.112.25 9 .25a5.244 5.244 0 0 1 5.233 5.233c0 2.875-2.345 5.267-5.233 5.267a5.244 5.244 0 0 1-5.233-5.233ZM5 13.75A3.262 3.262 0 0 0 1.75 17v1c0 .136.114.25.25.25h14c.136 0 .25-.114.25-.25v-1A3.262 3.262 0 0 0 13 13.75H5ZM.25 17A4.762 4.762 0 0 1 5 12.25h8A4.762 4.762 0 0 1 17.75 17v1c0 .964-.786 1.75-1.75 1.75H2c-.964 0-1.75-.786-1.75-1.75v-1Z" fill="currentColor"/></svg>
7592    </span>
7593
7594    <span class="mobile-nav-bar-item-label">
7595        Zaloguj się    </span>
7596</a>
7597
7598
7599    <!--Mobile menu trigger-->
7600    <label for="mobile-menu-switch" class="mobile-nav-bar-item">
7601        <span class="mobile-nav-bar-item-icon">
7602            <svg xmlns="http://www.w3.org/2000/svg" width="29" height="24" viewBox="0 0 29 29" fill="none" aria-hidden="true"><path fill="currentColor" fill-rule="evenodd" d="M2.719 6.042c0-.5.405-.907.906-.907h21.75a.906.906 0 0 1 0 1.813H3.625a.906.906 0 0 1-.906-.906ZM2.719 14.5c0-.5.405-.906.906-.906h21.75a.906.906 0 1 1 0 1.812H3.625a.906.906 0 0 1-.906-.906ZM2.719 22.958c0-.5.405-.906.906-.906h21.75a.906.906 0 1 1 0 1.813H3.625a.906.906 0 0 1-.906-.907Z" clip-rule="evenodd"/></svg>
7603        </span>
7604
7605        <span class="mobile-nav-bar-item-label">
7606            Menu        </span>
7607    </label>
7608</div>
7609
7610<script>
7611    function initMobileNavBar() {
7612        return {
7613            cart: {},
7614            getData(data) {
7615                if (data.cart) { this.cart = data.cart }
7616            },
7617            isCartEmpty() {
7618                return !this.cart.summary_count
7619            },
7620        }
7621    }
7622</script>
7622
7623</div></footer><template id="trustedshops-badge_6abe4f41e679a">
7624            <!-- added by Trusted Shops app: Start -->
7625                
7625<script                                     async                                                 data-desktop-y-offset="-30"                                                 data-mobile-y-offset="0"                                                 data-desktop-disable-reviews="false"                                                 data-desktop-enable-custom="false"                                                 data-desktop-position="right"                                                 data-desktop-custom-width="100"                                                 data-desktop-enable-fadeout="false"                                                 data-disable-mobile="false"                                                 data-disable-trustbadge="false"                                                 data-mobile-custom-width="100"                                                 data-mobile-disable-reviews="false"                                                 data-mobile-enable-custom="false"                                                 data-mobile-position="right"                                                 charset="UTF-8"                                                 src="//widgets.trustedshops.com/js/X3232207565856AA7A36E50C23F871137.js"                            ></script>
7625                <!-- End -->
7626    </template>
7627<script>
7628window.addEventListener('init-external-scripts', () => {
7629    const template = document.getElementById('trustedshops-badge_6abe4f41e679a');
7630    if (template?.content) {
7631        const clone = document.importNode(template.content, true);
7632        document.body.appendChild(clone);
7633    }
7634}, {once: true, passive: true});
7635</script>
7635
7636
7637
7638<script>
7639    (() => {
7640        function src_default(Alpine) {
7641            Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
7642                let evaluate = evaluateLater(expression);
7643                let options = {
7644                    rootMargin: getRootMargin(modifiers),
7645                    threshold: getThreshold(modifiers)
7646                };
7647                let observer = new IntersectionObserver((entries) => {
7648                    entries.forEach((entry) => {
7649                        if (entry.isIntersecting === (value === "leave"))
7650                            return;
7651                        evaluate();
7652                        modifiers.includes("once") && observer.disconnect();
7653                    });
7654                }, options);
7655                observer.observe(el);
7656                cleanup(() => {
7657                    observer.disconnect();
7658                });
7659            }));
7660        }
7661        function getThreshold(modifiers) {
7662            if (modifiers.includes("full"))
7663                return 0.99;
7664            if (modifiers.includes("half"))
7665                return 0.5;
7666            if (!modifiers.includes("threshold"))
7667                return 0;
7668            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
7669            if (threshold === "100")
7670                return 1;
7671            if (threshold === "0")
7672                return 0;
7673            return Number(`.${threshold}`);
7674        }
7675        function getLengthValue(rawValue) {
7676            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
7677            return match ? match[1] + (match[2] || "px") : void 0;
7678        }
7679        function getRootMargin(modifiers) {
7680            const key = "margin";
7681            const fallback = "0px 0px 0px 0px";
7682            const index = modifiers.indexOf(key);
7683            if (index === -1)
7684                return fallback;
7685            let values = [];
7686            for (let i = 1; i < 5; i++) {
7687                values.push(getLengthValue(modifiers[index + i] || ""));
7688            }
7689            values = values.filter((v) => v !== void 0);
7690            return values.length ? values.join(" ").trim() : fallback;
7691        }
7692
7693        document.addEventListener("alpine:init", () => {
7694            window.Alpine.plugin(src_default);
7695        });
7696    })();
7697</script>
vendor: 1 bytes, line 7697
7697
7698<script>
7699    for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect",".product-info [x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]":"intersect","#notice-cookie-block":"idle"})) {
7700        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
7701    }
7702</script>
vendor: 1 bytes, line 7702
7702
7703<script>
7704    (function () {
7705        "use strict";
7706
7707        const hasAlpine = new Promise(resolve => {
7708            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
7709        });
7710
7711        const hasInteract = new Promise(resolve => {
7712            (events => {
7713                const onInteract = () => {
7714                    resolve();
7715                    events.forEach(type => window.removeEventListener(type, onInteract));
7716                }
7717                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
7718            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
7719        });
7720
7721        const onIntersect = (el) => {
7722            return new Promise(resolve => {
7723                const observer = new IntersectionObserver(entries => {
7724                    for (const entry of entries) {
7725                        if (entry.isIntersecting) {
7726                            observer.disconnect()
7727                            resolve();
7728                        }
7729                    }
7730                }, {});
7731                observer.observe(el);
7732            });
7733        }
7734
7735        function runComponent(el) {
7736            hasAlpine.then(() => {
7737                el.removeAttribute('x-ignore');
7738                queueMicrotask(() => Alpine.initTree(el));
7739            });
7740        }
7741
7742        function initDeferredComponents() {
7743            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
7744                el.setAttribute('x-ignore', '');
7745                const deferUntil = (el.getAttribute('x-defer') || '').trim();
7746                switch (deferUntil) {
7747                    case 'interact':
7748                        hasInteract.then(() => runComponent(el));
7749                        break;
7750                    case 'intersect':
7751                        onIntersect(el).then(() => runComponent(el))
7752                        break;
7753                    case 'idle':
7754                        window.requestIdleCallback
7755                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
7756                            : setTimeout(() => runComponent(el), 4000);
7757                        break;
7758                    case 'eager':
7759                        runComponent(el);
7760                        break;
7761                    default:
7762                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
7763                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
7764                        }
7765                }
7766            });
7767        }
7768
7769        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
7770    })()
7771</script>
vendor: 1 bytes, line 7771
7771
vendor: 1,455 bytes, lines 7772-7774
7772<script>
7773(()=>{function g(n){n.directive("collapse",e),e.inline=(t,{modifiers:i})=>{i.includes("min")&&(t._x_doShow=()=>{},t._x_doHide=()=>{})};function e(t,{modifiers:i}){let r=l(i,"duration",250)/1e3,u=l(i,"min",0),h=!i.includes("min");t._x_isShown||(t.style.height=`${u}px`),!t._x_isShown&&h&&(t.hidden=!0),t._x_isShown||(t.style.overflow="hidden");let c=(d,s)=>{let o=n.setStyles(d,s);return s.height?()=>{}:o},f={transitionProperty:"height",transitionDuration:`${r}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};t._x_transition={in(d=()=>{},s=()=>{}){h&&(t.hidden=!1),h&&(t.style.display=null);let o=t.getBoundingClientRect().height;t.style.height="auto";let a=t.getBoundingClientRect().height;o===a&&(o=u),n.transition(t,n.setStyles,{during:f,start:{height:o+"px"},end:{height:a+"px"}},()=>t._x_isShown=!0,()=>{t.getBoundingClientRect().height==a&&(t.style.overflow=null)})},out(d=()=>{},s=()=>{}){let o=t.getBoundingClientRect().height;n.transition(t,c,{during:f,start:{height:o+"px"},end:{height:u+"px"}},()=>t.style.overflow="hidden",()=>{t._x_isShown=!1,t.style.height==`${u}px`&&h&&(t.style.display="none",t.hidden=!0)})}}}}function l(n,e,t){if(n.indexOf(e)===-1)return t;let i=n[n.indexOf(e)+1];if(!i)return t;if(e==="duration"){let r=i.match(/([0-9]+)ms/);if(r)return r[1]}if(e==="min"){let r=i.match(/([0-9]+)px/);if(r)return r[1]}return i}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(g)});})();
7774</script>
7774
7775
7776<script>
7777    function createAjaxLoader() {
7778        const loader = document.createElement('div');
7779        loader.className = 'absolute inset-0 flex justify-center items-center loader';
7780        loader.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" class="w-full h-full p-2" role="img">
7781    <style>
7782        @keyframes spinner-ball-triangle1 {
7783            0% { transform: translate(0%, 0%); }
7784            33% { transform: translate(38%, -79%); }
7785            66% { transform: translate(77%, 0%); }
7786            100% { transform: translate(0%, 0%); }
7787        }
7788
7789        @keyframes spinner-ball-triangle2 {
7790            0% { transform: translate(0%, 0%); }
7791            33% { transform: translate(38%, 79%); }
7792            66% { transform: translate(-38%, 79%); }
7793            100% { transform: translate(0%, 0%); }
7794        }
7795
7796        @keyframes spinner-ball-triangle3 {
7797            0% { transform: translate(0%, 0%); }
7798            33% { transform: translate(-77%, 0%); }
7799            66% { transform: translate(-38%, -79%); }
7800            100% { transform: translate(0%, 0%); }
7801        }
7802    </style>
7803    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
7804    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
7805    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
7806<title>&#x141;aduj&#x119;...</title></svg>
7807`;
7808        return loader;
7809    }
7810
7811    function addAjaxLoader(button, loader) {
7812        button.setAttribute('data-label', button.getAttribute('aria-label'));
7813        button.removeAttribute('aria-label');
7814        button.prepend(loader);
7815        button.classList.add('relative', '[&>:not(.loader)]:invisible');
7816        button.disabled = true;
7817    }
7818
7819    function removeAjaxLoader(button, loader) {
7820        button.setAttribute('aria-label', button.getAttribute('data-label'));
7821        button.removeAttribute('data-label');
7822        loader.remove();
7823        button.classList.remove('[&>:not(.loader)]:invisible');
7824        button.disabled = false;
7825    }
7826
7827    async function addAjaxCartForm(form, extraDelay = 500) {
7828        if (!form) return;
7829        event.preventDefault();
7830
7831        if (!form.reportValidity()) {
7832            return form.submit();
7833        }
7834
7835        const formData = new FormData(form);
7836        const button = form.querySelector('button:not([type=button], [type=reset])')
7837            ? form.querySelector('button:not([type=button], [type=reset])')
7838            : document.getElementById('product-addtocart-button');
7839        const loader = createAjaxLoader(button);
7840        const formUenc = hyva.getUenc();
7841        const postUrl = event.target.action.replace('%25uenc%25', formUenc);
7842
7843        let bodyUrl = new URLSearchParams(formData);
7844        bodyUrl.append("uenc", formUenc);
7845        addAjaxLoader(button, loader);
7846
7847        try {
7848            const response = await fetch(postUrl, {
7849                method: 'POST',
7850                body: bodyUrl.toString(),
7851                mode: "cors",
7852                credentials: "include",
7853                headers: {
7854                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
7855                    'X-Requested-With': 'XMLHttpRequest'
7856                }
7857            });
7858
7859            if (!response.ok) {
7860                return form.submit();
7861            } else {
7862                window.dispatchEvent(new CustomEvent("cart-item-added", {
7863                    detail: {
7864                        form
7865                    }
7866                }));
7867            }
7868
7869            if (response.redirected) {
7870                return window.location.href = response.url;
7871            }
7872
7873            const responseData = await response.json();
7874            if (responseData.backUrl) {
7875                return window.location.href = responseData.backUrl;
7876            }
7877
7878            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
7879
7880                    } catch (err) {
7881            console.warn(err);
7882            window.dispatchEvent(new CustomEvent('product-addtocart-error'));
7883
7884            if (typeof window.dispatchMessages === "undefined") return;
7885            window.dispatchMessages([{
7886                text:'Wyst\u0105pi\u0142\u0020problem\u0020podczas\u0020dodawania\u0020do\u0020koszyka.',
7887                type: 'error'
7888            }], 5000);
7889        } finally {
7890            setTimeout(() => removeAjaxLoader(button, loader), extraDelay);
7891        }
7892    }
7893
7894    function removeAjaxCartForm(form) {
7895        removeEventListener('submit', form);
7896    }
7897
7898    document.addEventListener('submit', function(event) {
7899        if (!event.target.matches('#product_addtocart_form, .product_addtocart_form')) return;
7900        addAjaxCartForm(event.target, 500);
7901    });
7902</script>
7902
7903
7904
7905
7906
7907<script>
7908    const CONFETTI_CONFIG = {
7909        productPageAddToCartId: 'product-addtocart-button',
7910        catalogAddToCartSelector: '[data-addto="cart"]'
7911    };
7912
7913    window.addEventListener('init-external-scripts', () => {
7914        if (document.querySelector(CONFETTI_CONFIG.catalogAddToCartSelector) || document.getElementById(CONFETTI_CONFIG.productPageAddToCartId)) {
7915            const confetti_script = document.createElement('script');
7916            confetti_script.src = 'https\u003A\u002F\u002Fwww.trefl.com\u002Fstatic\u002Fversion1790625415\u002Ffrontend\u002FTrefl\u002Fhyva\u002Dtrefl\u002Fpl_PL\u002Fjs\u002Fcanvas\u002Dconfetti.min.js';
7917            confetti_script.onload = () => initAddToCartConfetti();
7918            document.head.appendChild(confetti_script);
7919        }
7920    }, { once: true, passive: true });
7921
7922    function initAddToCartConfetti() {
7923        const CONFETTI_OPTIONS = {
7924            spread: 50,
7925            disableForReducedMotion: true,
7926            useWorker: true,
7927            resize: true,
7928            colors: [
7929                '#8bd93e',
7930                '#de0712',
7931                '#fbaf5d',
7932                '#2e3192'
7933            ],
7934        }
7935
7936        function randomInRange(min, max) {
7937            return Math.random() * (max - min) + min;
7938        }
7939
7940        function celebrateAddToCart(triggeringElement) {
7941            const { top, height, left, width, } = triggeringElement.getBoundingClientRect();
7942            const x = (left + width / 2) / window.innerWidth;
7943            const y = (top + height / 2) / window.innerHeight;
7944
7945            confetti({
7946                ...CONFETTI_OPTIONS,
7947                origin: { x, y},
7948                angle: randomInRange(55, 125),
7949                spread: randomInRange(50, 70),
7950                particleCount: randomInRange(100, 140),
7951            });
7952        }
7953
7954        window.addEventListener('cart-item-added', (event) => {
7955            if (typeof confetti !== 'function') {
7956                return
7957            }
7958
7959            const eventForm = event.detail?.form;
7960            const confettiElement = eventForm.querySelector(CONFETTI_CONFIG.catalogAddToCartSelector)
7961                || document.getElementById(CONFETTI_CONFIG.productPageAddToCartId)
7962                || eventForm;
7963
7964            celebrateAddToCart(confettiElement);
7965        });
7966    }
7967</script>
7967
7968
7969<script type="module"
7970        src="https://www.trefl.com/static/version1790625415/frontend/Trefl/hyva-trefl/pl_PL/Hyva_Theme/js/alpine3.min.js"
7971        defer
7972        crossorigin
7973></script>
vendor: 1 bytes, line 7973
7973
7974<script>
7975    'use strict';
7976    function dispatchMessages(messages, hideAfter) {
7977        const messagesEvent = new CustomEvent("messages-loaded", {
7978            detail: {
7979                messages: messages,
7980                hideAfter: hideAfter
7981            }
7982        });
7983        window.dispatchEvent(messagesEvent);
7984    }
7985
7986    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
7987        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
7988    }
7989
7990    (function( hyva, undefined ) {
7991
7992        hyva.initFormKey = () => {
7993            const inputSelector = 'input[name="form_key"]',
7994                formKey = hyva.getFormKey();
7995
7996            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
7997                input.value = formKey
7998            });
7999        }
8000
8001        hyva.initMessages = () => {
8002            try {
8003                const messages = hyva.getCookie('mage-messages');
8004                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];
8005
8006                dispatchMessages(window.mageMessages);
8007
8008                                // empty `mage-messages` cookie
8009                const skipSetDomain = true;
8010                hyva.setCookie('mage-messages','', -1, skipSetDomain);
8011
8012            } catch (error) {
8013                console.warn('Error parsing Cookie Messages:', error);
8014            }
8015        }
8016
8017        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
8018        hyva.alpineInitialized(hyva.initMessages)
8019
8020    }( window.hyva = window.hyva || {} ));
8021</script>
vendor: 1 bytes, line 8021
8021
8022<script>
8023    'use strict';
8024    {
8025        const private_content_key = 'mage-cache-storage';
8026        const private_content_expire_key = 'mage-cache-timeout';
8027        const private_content_version_key = 'private_content_version';
8028        const section_data_ids_key = 'section_data_ids';
8029        const mage_cache_session_id_key = 'mage-cache-sessid';
8030        const last_visited_store_key = 'last_visited_store';
8031
8032        const ttl = 3600;
8033
8034        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
8035            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
8036        }
8037
8038        function loadSectionData () {
8039            const browserStorage = hyva.getBrowserStorage();
8040            if (!browserStorage) {
8041                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
8042                    [{
8043                        type: "warning",
8044                        text: "Please enable LocalStorage in your browser."
8045                    }]
8046                );
8047                return;
8048            }
8049            try {
8050                let isInvalid = false;
8051
8052                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
8053                    isInvalid = true;
8054                }
8055                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
8056
8057                if (!hyva.getCookie(mage_cache_session_id_key)) {
8058                    isInvalid = true;
8059                    browserStorage.removeItem(private_content_key);
8060                    const skipSetDomain = true;
8061                    const days = false;
8062                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
8063                }
8064
8065                const cookieVersion = hyva.getCookie(private_content_version_key);
8066                const storageVersion = browserStorage.getItem(private_content_version_key);
8067
8068                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
8069                    isInvalid = true;
8070                }
8071
8072                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
8073                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
8074                    browserStorage.removeItem(private_content_key);
8075                }
8076
8077                if (isInvalid && cookieVersion) {
8078                    fetchPrivateContent([]);
8079                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
8080                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
8081                    if (
8082                        privateContent &&
8083                        privateContentExpires &&
8084                        privateContent.cart &&
8085                        privateContent.customer
8086                    ) {
8087                        dispatchPrivateContent(privateContent);
8088                    } else {
8089                        fetchPrivateContent([]);
8090                    }
8091                } else {
8092                    if (document.getElementById('default-section-data')) {
8093                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
8094                        dispatchPrivateContent(privateContent);
8095                    } else {
8096                        dispatchPrivateContent({});
8097                    }
8098                }
8099
8100            } catch (error) {
8101                console.warn('Error retrieving Private Content:', error);
8102            }
8103        }
8104
8105        hyva.alpineInitialized(loadSectionData)
8106        window.addEventListener('reload-customer-section-data', loadSectionData);
8107
8108        window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data);
8109
8110        function dispatchPrivateContent(data) {
8111
8112            const privateContentEvent = new CustomEvent("private-content-loaded", {
8113                detail: {
8114                    data: window.processSectionDataBeforeDispatch(data)
8115                }
8116            });
8117            window.dispatchEvent(privateContentEvent);
8118        }
8119
8120        function fetchPrivateContent(sections) {
8121            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
8122                method: 'GET',
8123                headers: {
8124                    'Content-Type': 'application/json',
8125                    'X-Requested-With': 'XMLHttpRequest'
8126                }
8127            })
8128                .then(response => response.ok && response.json())
8129                .then(
8130                    data => {
8131                        if (data) {
8132                            try {
8133                                const browserStorage = hyva.getBrowserStorage();
8134
8135                                // merge new data preserving non-invalidated sections
8136                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};
8137
8138                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
8139                                    delete oldSectionData['checkout-data'];
8140                                }
8141                                const newSectionData = Object.assign(oldSectionData, data);
8142
8143                                dispatchPrivateContent(newSectionData);
8144
8145                                // don't persist messages, they've been dispatched already
8146                                if (newSectionData.messages && newSectionData.messages.messages ) {
8147                                    newSectionData.messages.messages = [];
8148                                }
8149
8150                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
8151
8152                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
8153                                browserStorage.setItem(private_content_expire_key, expiresAt);
8154
8155                                const newCookieVersion = hyva.getCookie(private_content_version_key);
8156                                browserStorage.setItem(private_content_version_key, newCookieVersion);
8157
8158                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
8159                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
8160                                hyva.setCookie(
8161                                    section_data_ids_key,
8162                                    JSON.stringify(
8163                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
8164                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
8165                                            return sectionDataIds;
8166                                        }, {})
8167                                    ),
8168                                    false,
8169                                    true
8170                                );
8171                            } catch (error) {
8172                                console.warn("Couldn't store privateContent", error);
8173                            }
8174                        }
8175                    }
8176                );
8177        }
8178    }
8179</script>
vendor: 1 bytes, line 8179
8179
8180<script>
8181    (() => {
8182        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
8183    })()
8184</script>
vendor: 1 bytes, line 8184
8184
8185<script>
8186    (events => {
8187        const dispatchUserInteractionEvent = () => {
8188            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
8189            window.dispatchEvent(new Event('init-external-scripts'))
8190        };
8191        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
8192    })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown'])
8193</script>
8193
8194
8195<script type="application/ld+json">
8196{
8197"@context": "https://schema.org/",
8198"@type": "WebSite",
8199"url": "https://www.trefl.com/",
8200"potentialAction": {
8201"@type": "SearchAction",
8202"target": "https://www.trefl.com/catalogsearch/result/?q={search_term_string}",
8203"query-input": "required name=search_term_string"
8204}
8205}
8206</script>
8206<script>
8207    'use strict';
8208
8209    const grecaptchaV2LoadCallbacks = [];
8210
8211    function executeRecaptchaLoadCallbacks () {
8212        while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) {
8213            const callback = grecaptchaV2LoadCallbacks.pop();
8214            typeof callback === 'string' ? window[callback]() : callback();
8215        }
8216    }
8217
8218    (function() {
8219        const loadRecaptchaScript = (event) => {
8220
8221            if (window.grecaptcha || !event.target.form) {
8222                return;
8223            }
8224
8225            const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks';
8226            const siteKey = '6LfQvvEiAAAAANp2t9xf_A7oO5yxUbASHE3tZjzo';
8227            const script = document.createElement('script');
8228            script.type = 'text/javascript';
8229            script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`;
8230            script.async = true;
8231            document.head.appendChild(script);
8232
8233            script.addEventListener('load', () => {
8234                Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled'));
8235            });
8236        }
8237
8238        window.forceLoadRecaptchaScript = (form) => {
8239            loadRecaptchaScript({target: {form: form || 'dummy'}});
8240            executeRecaptchaLoadCallbacks();
8241        };
8242
8243        document.body.addEventListener('input', loadRecaptchaScript, { once: true });
8244        document.body.addEventListener('focus', loadRecaptchaScript, { once: true });
8245
8246    }());
8247
8248</script>
vendor: 1 bytes, line 8248
8248
8249<script>
8250    'use strict';
8251
8252    (function () {
8253        const modals = [];
8254        const excludedFromFocusTrapping = new Set();
8255
8256        function trapFocusInNextModalWithOverlay() {
8257            for (let idx = modals.length -1; idx >= 0; idx--) {
8258                const nextOnStack = modals[idx];
8259                const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name];
8260                if (! isOverlayDisabled(nextDialogElement)) {
8261                    hyva.trapFocus(nextDialogElement);
8262                    break;
8263                }
8264            }
8265        }
8266
8267        function focusables(dialogElement) {
8268            const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
8269            return Array.from(dialogElement.querySelectorAll(selector))
8270                .filter(el => !el.hasAttribute('disabled'));
8271        }
8272
8273        function firstVisible(elements) {
8274            const a = Array.from(elements);
8275            for (let i = 0; i < a.length; i++) {
8276                if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i];
8277            }
8278            return null;
8279        }
8280
8281        function isInViewport(element) {
8282            const rect = element && element.getBoundingClientRect();
8283            return rect &&
8284                rect.top >= 0 &&
8285                rect.left >= 0 &&
8286                rect.right <= window.innerWidth &&
8287                rect.bottom <= window.innerHeight;
8288        }
8289
8290        function setFocusAfterTransition(dialogElement, duration) {
8291                        const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]'));
8292            const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]'));
8293            next: for (let candidate of candidates) {
8294                for (let child of nested) {
8295                    if (child.contains(candidate)) continue next;
8296                }
8297                setTimeout(() => candidate.focus(), 50);
8298                break;
8299            }
8300            window.setTimeout(() => {
8301                const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) ||
8302                    focusables(dialogElement)[0] ||
8303                    null;
8304                focusElement && isInViewport(focusElement) && focusElement.focus();
8305            }, Math.max(1, duration));
8306        }
8307
8308        function determineTrigger($refs, dialog, trigger) {
8309                        if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) {
8310                return dialog.target;
8311            }
8312                        if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) {
8313                return trigger.target;
8314            }
8315                        if (typeof trigger === 'string') {
8316                try {
8317                    return $refs[trigger] || document.querySelector(trigger)
8318                } catch (e) {}
8319            }
8320                        if (trigger instanceof Element) {
8321                return trigger;
8322            }
8323
8324                        return null;
8325        }
8326
8327        function isOverlayDisabled(dialog) {
8328            return dialog && dialog.hasAttribute('x-no-overlay')
8329        }
8330
8331        function areRemainingModalsWithoutOverlay(modals)
8332        {
8333            const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled);
8334
8335            return overflowDisabled.length === modals.length;
8336        }
8337
8338        window.hyva.modal = function(options = {}) {
8339                        if (this.$el && this.$el.dataset && this.$el.dataset.options) {
8340                try {
8341                    options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}'));
8342                } catch (e) {
8343                    throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON');
8344                }
8345            }
8346
8347            const config = Object.assign({
8348                dialog: 'dialog',                 duration: 300,                 transitionEnter: 'transition ease-out duration-300',
8349                transitionEnterStart: 'opacity-0',
8350                transitionEnterEnd: 'opacity-100',
8351                transitionLeave: 'transition ease-in duration-300',
8352                transitionLeaveStart: 'opacity-100',
8353                transitionLeaveEnd: 'opacity-0',
8354            }, options);
8355            let lastHide = 0;
8356
8357            return {
8358                opened: {},
8359                show(dialog, trigger) {
8360                    const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger);
8361                    const name = typeof dialog === 'string' ? dialog : config.dialog;
8362                    const dialogElement = this.$refs[name];
8363                    if (! dialogElement) {
8364                                                return;
8365                    }
8366                    const useOverlay = ! dialogElement.hasAttribute('x-no-overlay');
8367
8368                    dialogElement.scrollTop = 0;
8369
8370                                        if (this.opened[name]) {
8371                        return;
8372                    }
8373
8374                    if (focusTargetAfterHide) {
8375                        focusTargetAfterHide.setAttribute('aria-expanded', 'true');
8376                    }
8377
8378                    this.opened[name] = true;
8379                    useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement));
8380                    setFocusAfterTransition(dialogElement, config.duration);
8381
8382                    const frame = {name, instance: this, focusTarget: focu
8382sTargetAfterHide, time: Date.now()};
8383
8384                    modals.push(frame);
8385                    if (useOverlay) {
8386                        document.body.classList.add('overflow-hidden');
8387                    }
8388                    return new Promise(resolve => frame.resolve = resolve);
8389                },
8390                cancel() {
8391                    this.hide(false);
8392                },
8393                ok() {
8394                    this.hide(true);
8395                },
8396                hide(value) {
8397                                        if (Date.now() - lastHide < config.duration) {
8398                        return;
8399                    }
8400                    lastHide = Date.now();
8401
8402                    const modal = modals.pop() || {};
8403                    if (! modal.instance) {
8404                        return;
8405                    }
8406
8407                    const name = modal.name;
8408                    this.opened[name] = false;
8409                    hyva.releaseFocus(modal.instance.$refs[modal.name])
8410                    trapFocusInNextModalWithOverlay();
8411
8412                    const nextFocusAfterHide = modal.focusTarget;
8413                    nextFocusAfterHide && setTimeout(() => {
8414                        nextFocusAfterHide.setAttribute('aria-expanded', 'false');
8415                        nextFocusAfterHide.focus()
8416                    }, config.duration);
8417
8418                    if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) {
8419                        document.body.classList.remove('overflow-hidden');
8420                    }
8421
8422                    modal.resolve(value);
8423                },
8424                overlay(dialog) {
8425                    dialog = this.$el.dataset.dialogRefName || dialog;
8426                    const name = typeof dialog === 'string' ? dialog : config.dialog;
8427                    return {
8428                        ['x-show']() {
8429                            return this.opened[name]
8430                        },
8431                        ['x-transition:enter']: config.transitionEnter,
8432                        ['x-transition:enter-start']: config.transitionEnterStart,
8433                        ['x-transition:enter-end']: config.transitionEnterEnd,
8434                        ['x-transition:leave']: config.transitionLeave,
8435                        ['x-transition:leave-start']: config.transitionLeaveStart,
8436                        ['x-transition:leave-end']: config.transitionLeaveEnd,
8437                        ['@hyva-modal-show.window'](event) {
8438                            event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide)
8439                        }
8440                    };
8441                },
8442                showDialogOnInit() {
8443                    const parent = this.$el.closest('[data-dialog-ref-name]');
8444                    if (parent && parent.dataset.dialogRefName) {
8445                        this.$dispatch('hyva-modal-show', {dialog: parent.dataset.dialogRefName})
8446                    }
8447                }
8448            };
8449        }
8450
8451        window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1]
8452
8453        window.hyva.modal.pop = function () {
8454            if (modals.length > 0) {
8455                const modal = modals[modals.length -1];
8456                modal.instance.hide();
8457            }
8458        }
8459
8460        window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {
8461            typeof selectors === 'string' || selectors instanceof String
8462                ? excludedFromFocusTrapping.add(selectors)
8463                : selectors.map(selector => excludedFromFocusTrapping.add(selector));
8464        }
8465
8466        window.hyva.modal.eventListeners = {
8467            keydown: event => {
8468                if (event.key === 'Escape') {
8469                    window.hyva.modal.pop();
8470                }
8471            },
8472                        click: event => {
8473                if (modals.length > 0) {
8474                    const modal = modals[modals.length -1];
8475                    const dialog = modal.instance.$refs[modal.name];
8476                    if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago
8477                        ! isOverlayDisabled(dialog) && // if dialog has overlay
8478                        ! dialog.contains(event.target)) { // if click is outside of dialog
8479                        modal.instance.hide();
8480                    }
8481                }
8482            }
8483        };
8484
8485        document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown);
8486
8487        document.addEventListener('click', window.hyva.modal.eventListeners.click);
8488    })();
8489    window.addEventListener('alpine:init', () => {
8490        Alpine.data('hyvaModal', window.hyva.modal);
8491    }, {once: true});
8492</script>
8492
8493
8494<section x-data="{isLoading: false}"
8495         @amgdpr-loading-start.window="isLoading = true" @amgdpr-loading-stop.window="isLoading = false">
8496    <div
8497    class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800"
8498    x-cloak
8499    x-show="isLoading"
8500    x-transition.opacity.duration.200ms
8501>
8502    <div class="flex gap-10 items-center p-4">
8503        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" width="57" height="57" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
8504    <style>
8505        @keyframes spinner-ball-triangle1 {
8506            0% { transform: translate(0%, 0%); }
8507            33% { transform: translate(38%, -79%); }
8508            66% { transform: translate(77%, 0%); }
8509            100% { transform: translate(0%, 0%); }
8510        }
8511
8512        @keyframes spinner-ball-triangle2 {
8513            0% { transform: translate(0%, 0%); }
8514            33% { transform: translate(38%, 79%); }
8515            66% { transform: translate(-38%, 79%); }
8516            100% { transform: translate(0%, 0%); }
8517        }
8518
8519        @keyframes spinner-ball-triangle3 {
8520            0% { transform: translate(0%, 0%); }
8521            33% { transform: translate(-77%, 0%); }
8522            66% { transform: translate(-38%, -79%); }
8523            100% { transform: translate(0%, 0%); }
8524        }
8525    </style>
8526    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
8527    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
8528    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
8529</svg>
8530        <span class="text-xl select-none">
8531            Ładuję...        </span>
8532    </div>
8533</div>
8534</section>
8535
8536<script>var _smid='p17e0wlol3lt2dk6'; var _smapp=5; var _smcustom = true; var _smclt = 864000; (function(w, r, a, sm, s ) { w['SalesmanagoObject'] = r; w[r] = w[r] || function () {( w[r].q = w[r].q || [] ).push(arguments)}; sm = document.createElement('script'); sm.type = 'text/javascript'; sm.async = true; sm.src = a; s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sm, s); })(window, 'sm', ('https:' == document.location.protocol ? 'https://' : 'http://') + 'app3.salesmanago.pl/static/sm.js');</script>
8536<script type="text/json" id="default-section-data">
8537    {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"PL":{"name":"Polska","regions":{"686":{"code":"PL-02","name":"dolno\u015bl\u0105skie"},"687":{"code":"PL-04","name":"kujawsko-pomorskie"},"688":{"code":"PL-06","name":"lubelskie"},"689":{"code":"PL-08","name":"lubuskie"},"692":{"code":"PL-14","name":"mazowieckie"},"691":{"code":"PL-12","name":"ma\u0142opolskie"},"693":{"code":"PL-16","name":"opolskie"},"694":{"code":"PL-18","name":"podkarpackie"},"695":{"code":"PL-20","name":"podlaskie"},"696":{"code":"PL-22","name":"pomorskie"},"697":{"code":"PL-24","name":"\u015bl\u0105skie"},"698":{"code":"PL-26","name":"\u015bwi\u0119tokrzyskie"},"699":{"code":"PL-28","name":"warmi\u0144sko-mazurskie"},"700":{"code":"PL-30","name":"wielkopolskie"},"701":{"code":"PL-32","name":"zachodniopomorskie"},"690":{"code":"PL-10","name":"\u0142\u00f3dzkie"}}},"data_id":1790857025},"captcha":[],"loggedAsCustomer":[],"persistent":[],"review":[],"wishlist":{"items":[]},"hyva_checkout":[],"gtm-checkout":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script>
8537
8538<!-- added by Trusted Shops app: Start -->
8539<script src="https://integrations.etrusted.com/applications/widget.js/v2" async defer></script>
8539
8540<!-- added by Trusted Shops app: End -->
8541</div>
8541<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
8542    yireoGoogleTagManager2Pusher({"version":"3.9.13","page_type":"mpblog\/post\/view","page_path":"https:\/\/www.trefl.com\/blog\/post\/madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole","page_title":"M\u0105dre zabawki \u2013 pomys\u0142y na warto\u015bciow\u0105 zabaw\u0119 po szkole - Blog Trefl - zainspiruj si\u0119 najlepszymi tre\u015bciami ze \u015bwiata zabawek","virtual_page":"\/blog\/post\/madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole","breadcrumb":[],"user":{"has_transacted":false}}, 'push (initial page) [data-layer.phtml]');
8543    </script>
vendor: 1 bytes, line 8543
8543
8544<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
8545    function yireoGoogleTagManager2FindParentElementWithName(element, parentTagName) {
8546        if (!element.parentElement) {
8547            return null;
8548        }
8549
8550        if (element.parentElement.tagName.toLowerCase() === parentTagName) {
8551            return element.parentElement;
8552        }
8553
8554        return yireoGoogleTagManager2FindParentElementWithName(element.parentElement, parentTagName);
8555    }
8556
8557    const products = document.querySelectorAll('.products a.product');
8558    if (products && products.length > 0) {
8559        products.forEach(function(product) {
8560            product.addEventListener('click', function(event, s) {
8561                let parentElement = yireoGoogleTagManager2FindParentElementWithName(event.target, 'form');
8562                const inputElement = parentElement.querySelector('input[name="product"]');
8563                const productId = inputElement.value;
8564                const productData = window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_' + productId] || {};
8565                productData.item_id = productId;
8566
8567                const eventData = {
8568                    'event': 'select_item',
8569                    'ecommerce': {
8570                        'items': [productData]
8571                    }
8572                }
8573
8574                yireoGoogleTagManager2Pusher(eventData, 'push (page event "select_item") [script-product-clicks.phtml]');
8575
8576                if (window['YIREO_GOOGLETAGMANAGER2_DEBUG_CLICKS'] && confirm("Press to continue with redirect") === false) {
8577                    event.preventDefault();
8578                }
8579            });
8580        })
8581    }
8582</script>
vendor: 1 bytes, line 8582
8582
8583<script nonce="NnI0ZHB5ejN3anFyNjY4MDRrbGQ5bzgwMWF0Mmx0anI=">
8584    window.addEventListener('private-content-loaded', function(event) {
8585        window.dataLayer = window.dataLayer || [];
8586
8587        var isEmpty = function (variable) {
8588            if (typeof variable === 'undefined') {
8589                return true;
8590            }
8591
8592            if (Array.isArray(variable) && variable.length === 0) {
8593                return true;
8594            }
8595
8596            return typeof variable === 'object' && Object.keys(variable).length === 0;
8597        }
8598
8599        var getSectionNames = function () {
8600            return ['cart', 'customer'];
8601        }
8602
8603        getSectionNames().forEach(function (sectionName) {
8604            if (!event.detail.data[sectionName].gtm) {
8605                return;
8606            }
8607
8608            const attributes = event.detail.data[sectionName].gtm;
8609            if (!Object.keys(attributes).length > 0) {
8610                return;
8611            }
8612
8613            yireoGoogleTagManager2Pusher(attributes, 'push (attributes) [script-additions.phtml]');
8614        });
8615
8616        let attributes = {};
8617        getSectionNames().forEach(function (sectionName) {
8618            if (!event.detail.data[sectionName].gtm_events) {
8619                return;
8620            }
8621
8622            const gtmEvents = event.detail.data[sectionName].gtm_events;
8623            for (const [eventId, eventData] of Object.entries(gtmEvents)) {
8624                yireoGoogleTagManager2Logger('found event in section "' + sectionName + '"', eventData);
8625
8626                const metaData = eventData.meta;
8627                yireoGoogleTagManager2Pusher(eventData, 'push (customerData "' + sectionName + '"  event "' + eventId + '")');
8628
8629                if (!metaData || metaData.cacheable !== true) {
8630                    yireoGoogleTagManager2Logger('removing event "' + eventId + '" from section "' + sectionName + '"')
8631
8632                    let mageCacheStorage = event.detail.data;
8633
8634                    if (mageCacheStorage !== null
8635                        && typeof mageCacheStorage[sectionName] !== 'undefined'
8636                        && typeof mageCacheStorage[sectionName].gtm_events !== 'undefined'
8637                        && eventId in mageCacheStorage[sectionName].gtm_events) {
8638                        delete mageCacheStorage[sectionName].gtm_events[eventId];
8639                    }
8640
8641                    window.localStorage.setItem('mage-cache-storage', JSON.stringify(mageCacheStorage));
8642                }
8643            }
8644        });
8645
8646        if (false === isEmpty(attributes)) {
8647            yireoGoogleTagManager2Pusher(attributes, 'dataLayer (initial js) [script-additions.phtml]');
8648        }
8649    });
8650</script>
8650
8651</body>
8652</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.