PageSourceSearch

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

html trefl.com collected 2026-09-24 09:55:10 UTC 420,487 bytes, 8,651 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/version1789064390/frontend/Trefl/hyva-trefl/pl_PL/css/styles.css" />
11<link rel="preload" as="font" crossorigin="anonymous" href="https://www.trefl.com/static/version1789064390/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/version1789064390/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/version1789064390/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/version1789064390/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/version1789064390/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/version1789064390/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/version1789064390/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/version1789064390/frontend/Trefl/hyva-trefl/pl_PL/Magento_Theme/web-app-manifest-512x512.png" />
19<link  rel="manifest" href="https://www.trefl.com/static/version1789064390/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="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
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/version1789064390/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;A42157&#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;promocje">            <span class="text-xs">☁︎ Dłuższe wieczory? Postaw na gry, puzzle i zabawki z jesiennym rabatem. Zajrzyj do <b>strefy Promocje</b> i zgarnij <b>dodatkowe -10% z kodem SP10</b> ☁︎</span>
587        </a>    </div>
588</div>
vendor: 68 bytes, lines 588-589
588
589<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
589GTM-PC39D52
vendor: 83 bytes, line 589
589" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
590<input name="form_key" type="hidden" value="Wy4zYBn55dtJ43Ct" />
591    <noscript>
592        <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal">
593            <div class="container text-center">
594                <p>
595                    <strong>Wygląda na to, że JavaScript jest wyłączony w twojej przeglądarce.</strong>
596                    <span>
597                        By w pełni cieszyć się naszą stroną, upewnij się, że włączyłeś JavaScript w swojej przeglądarce.                    </span>
598                </p>
599            </div>
600        </section>
601    </noscript>
602
603
604<script>
605    document.body.addEventListener('touchstart', () => {}, {passive: true})
606</script>
vendor: 1 bytes, line 606
606
607<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
608    function yireoGoogleTagManager2Pusher(eventData, message) {
609        window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS = window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS || [];
610
611        const copyEventData = Object.assign({}, eventData);
612        let metaData = {};
613        if (copyEventData.meta) {
614            metaData = copyEventData.meta;
615            delete copyEventData.meta;
616        }
617
618        const eventHash = btoa(encodeURIComponent(JSON.stringify(copyEventData)));
619        if (window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.includes(eventHash)) {
620            yireoGoogleTagManager2Logger('Warning: Event already triggered', eventData);
621            return;
622        }
623
624        if (metaData && metaData.allowed_pages && metaData.allowed_pages.length > 0
625            && false === metaData.allowed_pages.some(page => window.location.pathname.includes(page))) {
626            yireoGoogleTagManager2Logger('Warning: Skipping event, not in allowed pages', window.location.pathname, eventData);
627            return;
628        }
629
630        if (!message) {
631            message = 'push (unknown) [unknown]';
632        }
633
634        yireoGoogleTagManager2Logger(message, eventData);
635        window.dataLayer = window.dataLayer || [];
636
637        if (eventData.ecommerce) {
638            window.dataLayer.push({ecommerce: null});
639        }
640
641        window.dataLayer.push(eventData);
642        window.YIREO_GOOGLETAGMANAGER2_PAST_EVENTS.push(eventHash);
643    }
644</script>
vendor: 1 bytes, line 644
644
645<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
646    function yireoGoogleTagManager2Logger(...args) {
647        const debug = window.YIREO_GOOGLETAGMANAGER2_DEBUG || false;
648        if (false === debug) {
649            return;
650        }
651
652        var color = 'gray';
653        if (args[0].toLowerCase().startsWith('push')) {
654            color = 'green';
655        }
656
657        if (args[0].toLowerCase().startsWith('warning')) {
658            color = 'orange';
659        }
660
661        var css = 'color:white; background-color:' + color + '; padding:1px;'
662        console.log('%cYireo_GoogleTagManager2', css, ...args);
663    }
664</script>
664
665
666<script>
667    'use strict';
668    (function(hyva) {
669                const formValidationRules = {
670            required(value, options, field, context) {
671                const el = field.element.type === 'hidden' ? createTextInputFrom(field.element) : field.element,
672                    msg = 'To\u0020jest\u0020wymagane\u0020pole.';
673
674                if (el.type === 'radio' || el.type === 'checkbox') {
675                    return (value === undefined || value.length === 0) ? msg : true;
676                }
677
678                el.setAttribute('required', '');
679                el.checkValidity();
680
681                return el.validity.valueMissing ? msg : true;
682            },
683            maxlength(value, options, field, context) {
684                const n = Number(options)
685                if (value.length > n) {
686                    return n === 1
687                        ? hyva.strf('Please\u0020enter\u0020no\u0020more\u0020than\u00201\u0020character.')
688                        : hyva.strf('Please\u0020enter\u0020no\u0020more\u0020than\u0020\u00250\u0020characters.', options)
689                }
690                return true;
691            },
692            minlength(value, options, field, context) {
693                const n = Number(options)
694                if (value.length > 0 && value.length < n) {
695                    return n === 1
696                        ? hyva.strf('Minimalna\u0020ilo\u015B\u0107\u0020znak\u00F3w\u0020to\u00201.')
697                        : hyva.strf('Minimalna\u0020ilo\u015B\u0107\u0020znak\u00F3w\u0020to\u0020\u00250.', options)
698                }
699                return true;
700            },
701            max(value, options, field, context) {
702                field.element.setAttribute('max', options);
703                field.element.checkValidity();
704                if (field.element.validity.rangeOverflow) {
705                    return hyva.strf('Please\u0020enter\u0020a\u0020value\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options);
706                }
707                return true;
708            },
709            min(value, options, field, context) {
710                field.element.setAttribute('min', options);
711                field.element.checkValidity();
712                if (field.element.validity.rangeUnderflow) {
713                    return hyva.strf('Please\u0020enter\u0020a\u0020value\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020\u0022\u00250\u0022.', options);
714                }
715                return true;
716            },
717            step(value, options, field, context) {
718                field.element.setAttribute('step', options);
719                field.element.checkValidity();
720                if (field.element.validity.stepMismatch) {
721                    const val = Number(value);
722                    const step = Number(options);
723                    const msg = 'Please\u0020enter\u0020a\u0020valid\u0020value.\u0020The\u0020two\u0020nearest\u0020valid\u0020values\u0020are\u0020\u0022\u00250\u0022\u0020and\u0020\u0022\u00251\u0022.';
724                    return hyva.strf(msg, Math.floor(val / step) * step, Math.ceil(val / step) * step);
725                }
726                return true;
727            },
728            pattern(value, options, field, context) {
729                field.element.setAttribute('pattern', options);
730                field.element.checkValidity();
731                if (field.element.validity.patternMismatch) {
732                    return field.element.title
733                        ? hyva.strf('Please\u0020match\u0020the\u0020requested\u0020format\u003A\u0020\u00250.', field.element.title)
734                        : 'Please\u0020match\u0020the\u0020requested\u0020format.'
735                }
736                return true;
737            },
738            email(value, options, field, context) {
739                                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;
740                if (value.length > 0 && !rule.test(value)) {
741                    return 'Prosimy\u0020wpisa\u0107\u0020poprawny\u0020adres\u0020e\u002Dmail';
742                }
743                return true;
744            },
745            password(value, options, field, context) {
746                const rule = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;
747                if (value.length > 0 && !rule.test(value)) {
748                    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';
749                }
750                return true;
751            },
752            equalTo(value, options, field, context) {
753                const dependencyField = context.fields[options].element;
754                if (value !== dependencyField.value) {
755                    const dependencyFieldName =
756                        dependencyField.label ||
757                        dependencyField.title ||
758                        (dependencyField.labels && dependencyField.labels[0] && dependencyField.labels[0].innerText) ||
759                        dependencyField.name;
760                    return hyva.strf('Warto\u015B\u0107\u0020tego\u0020pola\u0020musi\u0020by\u0107\u0020taka\u0020sama\u0020jak\u0020\u0022\u00250\u0022.', dependencyFieldName);
761                }
762                return true;
763            }
764        };
765
766                function raceSome(promises, pred) {
767            return new Promise((resolve, reject) => {
768
769                if (promises.length === 0) {
770                    return resolve();
771                }
772
773                let settled = false, nDone = 0;
774
775                const resolveIf = v => {
776                    if (!settled && (pred(v) || ++nDone === promises.length)) {
777                        settled = true;
778                        resolve(v);
779                    }
780                    return v;
781                }
782
783                promises.map(promise => {
784                    promise.then(resolveIf).catch(reason => {
785                        settled = true;
786                        reject(reason)
787                    });
788                    return promise;
789                });
790            });
791        }
792
793        const INPUT_ATTRIBUTE_RULES = {min: 'min', max: 'max', required: 'required', minlength: 'minlength', maxlength: 'maxlength', step: 'step', pattern: 'pattern'}
794        const INPUT_TYPE_RULES = {email: 'email'}
795
796        function getRules(element) {
797            let rules = {};
798            Object.keys(INPUT_ATTRIBUTE_RULES).forEach(attrName => {
799                if (element.hasAttribute(attrName)) {
800                    rules[INPUT_ATTRIBUTE_RULES[attrName]] = element.getAttribute(attrName);
801                }
802            })
803            if (INPUT_TYPE_RULES[element.type]) {
804                rules[INPUT_TYPE_RULES[element.type]] = true;
805            }
806
807            if (element.dataset.validate) {
808                try {
809                    Object.assign(rules, JSON.parse(element.dataset.validate));
810                } catch (error) {
811                    console.error('Validator error. Cannot parse data-validate attribute of element:\n', element);
812                }
813            }
814
815            return rules;
816        }
817
818        function isInvalidRuleResult(ruleState) {
819            return typeof ruleState === 'string' || !ruleState || (ruleState.type && ruleState.content);
820        }
821
822        async function runValidateFn(rule, options, value, field) {
823            return formValidationRules[rule](value, options, field, this);
824        }
825
826        function generateId() {
827            let id;
828            do {
829                id = `${this.idPrefix}-${++this.idSeq}`;
830            } while (document.getElementById(id));
831            return id;
832        }
833
834        function isVisible(element) {
835            const el = element.type !== 'hidden' ? element : (element.parentElement || {});
836            return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)
837        }
838
839        function elementWillValidate(element) {
840            return (element.willValidate || element.type === 'hidden')
841                && element.tagName !== 'BUTTON'
842                && element.disabled === false
843                && !(element.tagName === 'INPUT' && element.type === 'submit')
844                && (element.hasAttribute('data-validate-hidden') || isVisible(element))
845        }
846
847        function createMessageContainer(el, fieldWrapperClassName) {
848            if (! el.parentElement) {
849                return;
850            }
851            const refocus = document.activeElement === el;
852            const wrapper = document.createElement('div');
853            wrapper.classList.add.apply(wrapper.classList, fieldWrapperClassName.split(' '));
854            el.parentElement.insertBefore(wrapper, el);
855            wrapper.appendChild(el);
856            refocus && document.activeElement !== el && el.focus();
857            return wrapper;
858        }
859
860        function containerNotFound(selector, el) {
861            const msg = `Cannot find message container element ${selector} of ${el.name}`;
862            console.error(msg, el);
863            throw msg;
864        }
865
866        function createTextInputFrom(el) {
867            const text = document.createElement('INPUT');
868            text.type = 'text';
869            text.value = el.value;
870            return text;
871        }
872
873        function classNamesToSelector(classNames) {
874            return classNames.split(' ')
875                .filter(className => className.length > 0)
876                .map(className => `.${className}`)
877                .join('')
878        }
879
880        function hasMessagesWrapper(field, messagesWrapperClassName) {
881            return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName));
882        }
883
884        function getMessagesWrapper(field, messagesWrapperClassName) {
885            if (hasMessagesWrapper.call(this, field, messagesWrapperClassName)) {
886                return this.getMessageContainer(field).querySelector(classNamesToSelector(messagesWrapperClassName));
887            }
888
889            const msgWrapper = document.createElement('ul');
890            const msgId = generateId.call(this);
891            msgWrapper.id = msgId;
892            field.element.setAttribute('aria-errormessage', msgId);
893            field.element.setAttribute('aria-describedby', msgId);
894            msgWrapper.classList.add.apply(msgWrapper.classList, messagesWrapperClassName.split(' '));
895            if (field.validateOnChange) {
896                msgWrapper.setAttribute('aria-live', 'polite');
897            }
898            this.getMessageContainer(field).appendChild(msgWrapper);
899
900            return msgWrapper;
901        }
902
903        function getCheckedValues(field) {
904            const name = field.element.name.replace(/([\\"])/g, '\\$1');
905            const elements = field.element.form.querySelectorAll('input[name="' + name + '"]:checked');
906            return Array.from(elements).map(el => el.value);
907        }
908
909        function escapeHtml(s) {
910            const div = document.createElement('div')
911            div.innerText = s;
912            return div.innerHTML;
913        }
914
915        
916        function formValidation(form, options = {}) {
917            const formElement = form || this.$el;
918
919            if (formElement.dataset && formElement.dataset.options) {
920                try {
921                    options = Object.assign(options, JSON.parse(formElement.dataset.options || '{}'));
922                } catch (e) {
923                    throw new Error('Cannot read the form options from the data-options attribute: not val
923id JSON');
924                }
925            }
926
927            // Disable browser default validation
928            if (formElement.tagName === 'FORM') {
929                formElement.setAttribute('novalidate', '');
930            } else {
931                console.error('formValidation can be initialized only on FORM element', formElement);
932                return;
933            }
934
935            options = Object.assign({
936                fieldWrapperClassName: 'field field-reserved',
937                messagesWrapperClassName: 'messages',
938                validClassName: 'field-success',
939                invalidClassName: 'field-error',
940                pageMessagesWrapperSelector: null,
941                scrollToFirstError: true,
942            }, options || {});
943
944            return {
945                state: {
946                    valid: false,
947                },
948                fields: {},
949                idSeq: 0,
950                idPrefix: formElement.id || 'vld-msg',
951                setupFields(elements) {
952                    this.fields = {};
953                    Array.from(elements).forEach(element => {
954                        if (elementWillValidate(element)) {
955                            this.setupField(element);
956                        }
957                    });
958                },
959                setupField(element) {
960                    if (! element) return;
961                    const onChange = !!element.dataset.onChange;
962                    if (elementWillValidate(element)) {
963                        const rules = getRules(element);
964                        if (Object.keys(rules).length > 0) {
965                            if (this.fields[element.name]) {
966                                Object.assign(this.fields[element.name].rules, rules);
967                            } else {
968                                this.fields[element.name] = {
969                                    element,
970                                    rules: rules,
971                                    validateOnChange: onChange,
972                                    state: {
973                                        valid: null,
974                                        rules: {}
975                                    }
976                                }
977                            }
978                        }
979                    } else {
980                        console.error('Element will not validate', element);
981                    }
982                },
983                onSubmit(event) {
984                    if (event.target.tagName === 'FORM') {
985                        event.preventDefault();
986
987                        this.validate()
988                            .then(() => event.target.submit())
989                            .catch(invalidElements => {});
990                    }
991                },
992                onChange(event) {
993                    event.target.dataset.onChange = 'true';
994                    if (!Object.keys(this.fields).length) {
995                        this.setupFields(formElement.elements);
996                    }
997                    if (!Object.keys(this.fields).includes(event.target.name)) {
998                        this.setupField(event.target);
999                    }
1000                    const field = this.fields[event.target.name];
1001
1002                    this.validateField(field);
1003                    field && field.element.removeAttribute('data-on-change')
1004                },
1005                validateSafe() {
1006                    return new Promise(resolve => this.validate().then(() => resolve(true)).catch(() => {}))
1007                },
1008                validate() {
1009                    if (!Object.keys(this.fields).length || !Object.keys(this.fields).length !== formElement.elements.length) {
1010                        this.setupFields(formElement.elements);
1011                    }
1012                    return new Promise(async (resolve, reject) => {
1013                        if (formElement.elements) {
1014                                                        await raceSome(this.validateFields(), result => result !== true)
1015                            const invalidFields = Object.values(this.fields).filter(field => !field.state.valid);
1016                            this.state.valid = invalidFields.length === 0;
1017                            if (this.state.valid) {
1018                                resolve();
1019                            } else {
1020                                if (options.scrollToFirstError && invalidFields.length > 0) {
1021                                    invalidFields[0].element.focus()
1022                                    invalidFields[0].element.select && invalidFields[0].element.select();
1023                                }
1024                                reject(invalidFields.map(field => field.element));
1025                            }
1026                        }
1027                    });
1028                },
1029                                validateFields() {
1030                    const fields = Object.values(this.fields);
1031
1032                                        fields.forEach(field => {
1033                        this.getMessageContainer(field).classList.remove(options.validClassName, options.invalidClassName)
1034                    });
1035                                        return fields.map(field => this.validateField(field))
1036                },
1037                                validateField(field) {
1038                                        if (! field || ! elementWillValidate(field.element)) {
1039                        return new Promise(resolve => resolve(true))
1040                    }
1041
1042                    let value;
1043                    if (field.element.type === 'checkbox') {
1044                        value = getCheckedValues(field);
1045                    } else if (field.element.type === 'radio') {
1046                        value = getCheckedValues(field)[0] || undefined;
1047                    } else if (field.element.tagName === 'SELECT' && field.element.multiple) {
1048                        value = Array.from(field.element.selectedOptions).map(opt => opt.value);
1049                    } else {
1050                        value = field.element.value;
1051                    }
1052
1053                    const rules = field.rules || {};
1054
1055                                        field.state.valid = true;
1056                    this.showFieldState(field);
1057
1058                
1059                                        const fieldValidations = Object.keys(rules).filter(rule => formValidationRules[rule]).map(async rule => {
1060                        return runValidateFn.call(this, rule, rules[rule], value, field).then(result => {
1061                            field.state.rules[rule] = result;
1062                            return result;
1063                        })
1064                    });
1065
1066                    return new Promise(resolve => {
1067                                                Promise.all(fieldValidations).then(results => {
1068                                                                                    field.state.valid = !elementWillValidate(field.element) || rules.length === 0 || !results.some(isInvalidRuleResult)
1069                            this.showFieldState(field);
1070                            resolve(field.state.valid);
1071                        })
1072                    });
1073                },
1074                                getMessagesByField(field) {
1075                    const messages = [];
1076                    const invalidRules = Object.keys(field.state.rules).filter(rule => isInvalidRuleResult(field.state.rules[rule]));
1077
1078                    field.rules && Object.keys(field.rules).forEach((rule) => {
1079                        if (invalidRules.includes(rule)) {
1080                            const customMessage = field.element.getAttribute('data-msg-' + rule);
1081                            const message = customMessage ? customMessage : field.state.rules[rule];
1082                            const ruleOptions = JSON.parse(JSON.stringify(field.rules[rule]));
1083
1084                            if (typeof message === 'undefined' || message === null || (typeof message !== 'string' && ! message.type)) {
1085                                messages.push(hyva.strf('Validation rule "%0" failed.', rule));
1086                            } else if (Array.isArray(ruleOptions)) {
1087                                ruleOptions.unshift(message.type ? message.content : message);
1088                                const content = hyva.strf.apply(null, ruleOptions);
1089                                messages.push(message.type ? {type: message.type, content} : content);
1090                            } else {
1091                                const content = hyva.strf(message.type ? message.content : message, ruleOptions)
1092                                messages.push(message.type ? {type: message.type, content} : content);
1093                            }
1094                        }
1095                    });
1096                    return messages;
1097                },
1098                /** @deprecated */
1099                getFieldWrapper(field) {
1100                                        return this.getMessageContainer(field)
1101                },
1102                getMessageContainer(field) {
1103                    let container;
1104                    const pageSelector = field.element.getAttribute('data-validation-container') || options.pageMessagesContainerSelector;
1105                    if (pageSelector) {
1106                        container = document.querySelector(pageSelector)
1107                            || containerNotFound(pageSelector, field.element)
1108                    } else {
1109                        const containerSelector = classNamesToSelector(options.fieldWrapperClassName);
1110                        container = field.element.closest(containerSelector)
1111                            || createMessageContainer(field.element, options.fieldWrapperClassName)
1112                            || containerNotFound(containerSelector, field.element);
1113                    }
1114
1115                    return container;
1116                },
1117                showFieldState(field) {
1118                    const container = this.getMessageContainer(field),
1119                        hasErrorMessages = hasMessagesWrapper.call(this, field, options.messagesWrapperClassName),
1120                        messages = this.getMessagesByField(field).map(m => {
1121                            return m.type !== 'html' ? escapeHtml(m.type ? m.content : m) : m.content;
1122                        });
1123                    container.classList.toggle(options.validClassName, field.state.valid && ! hasErrorMessages);
1124                    container.classList.toggle(options.invalidClassName, !field.state.valid || hasErrorMessages);
1125                    this.createHtmlErrorMessage(field, messages);
1126
1127                    if (field.state.valid) {
1128                        field.element.removeAttribute('aria-invalid');
1129                    } else {
1130                        field.element.setAttribute('aria-invalid', 'true');
1131                        if (! document.activeElement) {
1132                            field.element.focus();
1133                        }
1134                    }
1135                },
1136                removeMessages(field, messagesClass) {
1137                    if (! hasMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName)) {
1138                        return;
1139                    }
1140
1141                    const msgWrapper = getMessagesWrapper.call(this, field, messagesClass || options.messagesWrapperClassName);
1142                    const messages = msgWrapper.querySelectorAll(`[data-msg-field='${field.element.name}']`);
1143                    Array.from(messages).forEach(msg => msg.remove());
1144                    if (msgWrapper && msgWrapper.childElementCount === 0) {
1145                        field.element.removeAttribute('aria-errormessage');
1146                        field.element.removeAttribute('aria-describedby');
1147                        msgWrapper.remove();
1148                    }
1149                },
1150                createErrorMessage(field, messages) {
1151                    const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml)
1152                    this.createHtmlErrorMessage(field, htmlMessages);
1153                },
1154                createHtmlErrorMessage(field, messages) {
1155                    this.removeMessages(field, options.messagesWrapperClassName);
1156                    field.element.removeAttribute('aria-errormessage');
1157                    field.element.removeAttribute('aria-describedby');
1158
1159                    if (!field.state.valid) {
1160                        const msgWrapper = this.addHtmlMessages(field, options.messagesWrapperClassName, messages);
1161                        field.element.setAttribute('aria-errormessage', msgWrapper.id);
1162                        field.element.setAttribute('aria-describedby', msgWrapper.id);
1163                    }
1164                },
1165                /** @deprecated */
1166                createMessage(field, message) {
1167                                        return this.addMessages(field, options.messagesWrapperClassName, message);
1168                },
1169                addMessages(field, messagesClass, messages) {
1170                    const htmlMessages = (Array.isArray(messages) ? messages : [messages]).map(escapeHtml)
1171                    return this.addHtmlMessages(field, messagesClass, htmlMessages);
1172                },
1173                addHtmlMessages(field, messagesClass, htmlMessages) {
1174                    const msgWrapper = getMessagesWrapper.call(this, field, messagesClass);
1175
1176                    (Array.isArray(htmlMessages) ? htmlMessages : [htmlMessages]).forEach((htmlMessage) => {
1177                        const li = document.createElement('li');
1178                        li.innerHTML = htmlMessage;
1179                        li.setAttribute('data-msg-field', field.element.name);
1180                        msgWrapper.appendChild(li);
1181                    });
1182
1183                    return msgWrapper;
1184                },
1185                setField(name, value) {
1186                    this.fields[name].element.value = value;
1187                    this.fields[name].element.dispatchEvent((new Event('input')));
1188                    this.validateField(this.fields[name]);
1189                }
1190            }
1191        }
1192
1193        hyva.formValidation = formValidation;
1194        hyva.formValidation.rules = formValidationRules;
1195        hyva.formValidation.setInputAttributeRuleName = (attrName, ruleName) => INPUT_ATTRIBUTE_RULES[attrName] = ruleName || attrName;
1196        hyva.formValidation.setInputTypeRuleName = (typeName, ruleName) => INPUT_TYPE_RULES[typeName] = ruleName || typeName;
1197        hyva.formValidation.addRule = (name, validator) => formValidationRules[name] = validator;
1198    }(window.hyva = window.hyva || {}));
1199
1200    window.addEventListener('alpine:init', () => {
1201        Alpine.data('hyva.formValidation', hyva.formValidation);
1202        Alpine.data('hyva.formValidation($el)', hyva.formValidation);
1203    }, {once: true});
1204</script>
1204
1205<div class="page-wrapper"><header class="page-header">
1206
1207<div class="bg-header-top py-3 md:py-5">
1208    <div class="container header-container px-3 lg:px-6 flex justify-between items-center">
1209        <ul class="social-menu">
1210                    <li>
1211            <a href="https://www.facebook.com/Trefl.toys/"
1212                                  title="Przejdź na Trefl Facebook"
1213                               target="_blank"                class="text-header-top"
1214            >
1215                <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>
1216            </a>
1217        </li>
1218                    <li>
1219            <a href="https://pl.linkedin.com/company/trefl-s-a-"
1220                                  title="Przejdź na Trefl LinkedIn"
1221                               target="_blank"                class="text-header-top"
1222            >
1223                <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>
1224            </a>
1225        </li>
1226                    <li>
1227            <a href="mailto:[email protected]"
1228                                  title="Wyślij e-mail na [email protected]"
1229                               target="_blank"                class="text-header-top"
1230            >
1231                <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>
1232            </a>
1233        </li>
1234    </ul>        <ul class="header-top-links-menu list-none text-xs md:text-header-top gap-2 flex flex-wrap items-center"
1235    role="menubar"
1236    aria-orientation="horizontal"
1237>
1238                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1239            x-data="topMenu_575()"
1240            role="menuitem"
1241            @keydown.escape="toggleSubmenu('575', false, $event)"
1242            @pointerenter="toggleSubmenu('575', true, $event)"
1243            @pointerleave="toggleSubmenu('575', false, $event)"
1244        >
1245            <button aria-haspopup="menu"
1246                    aria-controls="top-links-5756ab45a3cc8d7b"
1247                    id="top-links-575"
1248                    class="flex items-center gap-1"
1249                    x-ref="button"
1250                    @click.prevent.stop="toggleSubmenu('575', null, $event)"
1251                    @keydown.space.prevent="toggleSubmenu('575', null, $event)"
1252                    @keydown.enter.prevent="toggleSubmenu('575', null, $event)"
1253                    aria-label="Otwórz menu Oferta&#x20;B2B"
1254                    :aria-pressed="openSubmenuId === '575'"
1255                    :aria-expanded="openSubmenuId === '575'">
1256                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">
1257  <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"/>
1258</svg>
1259            </button>
1260            <ul role="menubar"
1261                aria-orientation="vertical"
1262                aria-labelledby="top-links575"
1263                id="top-links5756ab45a3cc8d7b"
1264                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"
1265                :class="openSubmenuId === '575' ? 'z-40' : ''"
1266                x-cloak
1267            >
1268                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1269                            <a
1270        href="https://b2b.trefl.com/"
1271        data-menu="menu-576" class="__inner-link"    >
1272        Platforma zamówień hurtowych    </a>
1273
1274                    </li>
1275                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1276                            <a
1277        href="https://factory.trefl.com/"
1278        data-menu="menu-577" class="__inner-link"    >
1279        Produkty na zlecenie - Trefl Factory    </a>
1280
1281                    </li>
1282                            </ul>
1283        </li>
1284        
1284<script>
1285            function topMenu_575() {
1286                return {
1287                    openSubmenuId: null,
1288                    toggleSubmenu(id, state, event) {
1289                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1290
1291                        if (state === true) {
1292                            this.openSubmenuId = id;
1293                        } else if (state === false) {
1294                            this.openSubmenuId = null;
1295                        } else {
1296                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1297                        }
1298
1299                        if (this.openSubmenuId) {
1300                            const submenu = document.getElementById('top-links' + id);
1301                            if (submenu && !doNotFocus) {
1302                                const firstChild = submenu.querySelector('li a');
1303                                if (firstChild) {
1304                                    setTimeout(() => {
1305                                        firstChild.focus({ focusVisible: true });
1306                                    }, 0);
1307                                }
1308                            }
1309
1310                            this.$refs.button.setAttribute(
1311                                'aria-label',
1312                                'Zamknij menu Oferta&#x20;B2B'
1313                            );
1314                        } else {
1315                            const button = document.getElementById('top-links-' + id);
1316                            if (button && !doNotFocus) {
1317                                button.focus({ focusVisible: true });
1318                            }
1319
1320                            this.$refs.button.setAttribute(
1321                                'aria-label',
1322                                'Otwórz menu Oferta&#x20;B2B'
1323                            );
1324                        }
1325                    },
1326                };
1327            }
1328        </script>
1328
1329                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1330                            <li class="header-top-links-menu__item" role="menuitem">
1331<a
1332    href="https://www.trefl.com/grupa-trefl"
1333    class="__link"
1334     data-menu="menu-183">
1335    Grupa Trefl</a>
1336</li>
1337                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1338                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1339            x-data="topMenu_400()"
1340            role="menuitem"
1341            @keydown.escape="toggleSubmenu('400', false, $event)"
1342            @pointerenter="toggleSubmenu('400', true, $event)"
1343            @pointerleave="toggleSubmenu('400', false, $event)"
1344        >
1345            <button aria-haspopup="menu"
1346                    aria-controls="top-links-4006ab45a3cc8d7b"
1347                    id="top-links-400"
1348                    class="flex items-center gap-1"
1349                    x-ref="button"
1350                    @click.prevent.stop="toggleSubmenu('400', null, $event)"
1351                    @keydown.space.prevent="toggleSubmenu('400', null, $event)"
1352                    @keydown.enter.prevent="toggleSubmenu('400', null, $event)"
1353                    aria-label="Otwórz menu ESG"
1354                    :aria-pressed="openSubmenuId === '400'"
1355                    :aria-expanded="openSubmenuId === '400'">
1356                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">
1357  <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"/>
1358</svg>
1359            </button>
1360            <ul role="menubar"
1361                aria-orientation="vertical"
1362                aria-labelledby="top-links400"
1363                id="top-links4006ab45a3cc8d7b"
1364                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"
1365                :class="openSubmenuId === '400' ? 'z-40' : ''"
1366                x-cloak
1367            >
1368                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1369                            <a
1370        href="https://www.trefl.com/zrownowazony-rozwoj"
1371        data-menu="menu-401" class="__inner-link"    >
1372        Zrównoważony rozwój    </a>
1373
1374                    </li>
1375                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1376                            <a
1377        href="https://www.trefl.com/zrownowazony-rozwoj/srodowisko"
1378        data-menu="menu-582" class="__inner-link"    >
1379        Środowisko    </a>
1380
1381                    </li>
1382                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1383                            <a
1384        href="https://www.trefl.com/zielona-strona-trefla"
1385        data-menu="menu-402" class="__inner-link"    >
1386        Zielona Strona Trefla    </a>
1387
1388                    </li>
1389                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1390                            <a
1391        href="https://www.trefl.com/zrownowazony-rozwoj/dokumenty"
1392        data-menu="menu-403" class="__inner-link"    >
1393        Dokumenty    </a>
1394
1395                    </li>
1396                            </ul>
1397        </li>
1398        
1398<script>
1399            function topMenu_400() {
1400                return {
1401                    openSubmenuId: null,
1402                    toggleSubmenu(id, state, event) {
1403                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1404
1405                        if (state === true) {
1406                            this.openSubmenuId = id;
1407                        } else if (state === false) {
1408                            this.openSubmenuId = null;
1409                        } else {
1410                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1411                        }
1412
1413                        if (this.openSubmenuId) {
1414                            const submenu = document.getElementById('top-links' + id);
1415                            if (submenu && !doNotFocus) {
1416                                const firstChild = submenu.querySelector('li a');
1417                                if (firstChild) {
1418                                    setTimeout(() => {
1419                                        firstChild.focus({ focusVisible: true });
1420                                    }, 0);
1421                                }
1422                            }
1423
1424                            this.$refs.button.setAttribute(
1425                                'aria-label',
1426                                'Zamknij menu ESG'
1427                            );
1428                        } else {
1429                            const button = document.getElementById('top-links-' + id);
1430                            if (button && !doNotFocus) {
1431                                button.focus({ focusVisible: true });
1432                            }
1433
1434                            this.$refs.button.setAttribute(
1435                                'aria-label',
1436                                'Otwórz menu ESG'
1437                            );
1438                        }
1439                    },
1440                };
1441            }
1442        </script>
1442
1443                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1444                            <li class="header-top-links-menu__item" role="menuitem">
1445<a
1446    href="https://www.trefl.com/kariera"
1447    class="__link"
1448     data-menu="menu-615">
1449    Kariera</a>
1450</li>
1451                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1452                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
1453            x-data="topMenu_184()"
1454            role="menuitem"
1455            @keydown.escape="toggleSubmenu('184', false, $event)"
1456            @pointerenter="toggleSubmenu('184', true, $event)"
1457            @pointerleave="toggleSubmenu('184', false, $event)"
1458        >
1459            <button aria-haspopup="menu"
1460                    aria-controls="top-links-1846ab45a3cc8d7b"
1461                    id="top-links-184"
1462                    class="flex items-center gap-1"
1463                    x-ref="button"
1464                    @click.prevent.stop="toggleSubmenu('184', null, $event)"
1465                    @keydown.space.prevent="toggleSubmenu('184', null, $event)"
1466                    @keydown.enter.prevent="toggleSubmenu('184', null, $event)"
1467                    aria-label="Otwórz menu eGames"
1468                    :aria-pressed="openSubmenuId === '184'"
1469                    :aria-expanded="openSubmenuId === '184'">
1470                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">
1471  <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"/>
1472</svg>
1473            </button>
1474            <ul role="menubar"
1475                aria-orientation="vertical"
1476                aria-labelledby="top-links184"
1477                id="top-links1846ab45a3cc8d7b"
1478                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"
1479                :class="openSubmenuId === '184' ? 'z-40' : ''"
1480                x-cloak
1481            >
1482                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1483                            <a
1484        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
1485        data-menu="menu-620" class="__inner-link" target="_blank" rel="noopener"    >
1486        Treflandia na Roblox    </a>
1487
1488                    </li>
1489                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1490                            <a
1491        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
1492        data-menu="menu-621" class="__inner-link" target="_blank" rel="noopener"    >
1493        Gry na Nintendo    </a>
1494
1495                    </li>
1496                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1497                            <a
1498        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
1499        data-menu="menu-622" class="__inner-link" target="_blank" rel="noopener"    >
1500        Gry na PC (Steam)    </a>
1501
1502                    </li>
1503                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1504                            <a
1505        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
1506        data-menu="menu-623" class="__inner-link" target="_blank" rel="noopener"    >
1507        Gry mobilne (Apple IOS)    </a>
1508
1509                    </li>
1510                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
1511                            <a
1512        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
1513        data-menu="menu-624" class="__inner-link" target="_blank" rel="noopener"    >
1514        Gry mobilne (Android)    </a>
1515
1516                    </li>
1517                            </ul>
1518        </li>
1519        
1519<script>
1520            function topMenu_184() {
1521                return {
1522                    openSubmenuId: null,
1523                    toggleSubmenu(id, state, event) {
1524                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
1525
1526                        if (state === true) {
1527                            this.openSubmenuId = id;
1528                        } else if (state === false) {
1529                            this.openSubmenuId = null;
1530                        } else {
1531                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
1532                        }
1533
1534                        if (this.openSubmenuId) {
1535                            const submenu = document.getElementById('top-links' + id);
1536                            if (submenu && !doNotFocus) {
1537                                const firstChild = submenu.querySelector('li a');
1538                                if (firstChild) {
1539                                    setTimeout(() => {
1540                                        firstChild.focus({ focusVisible: true });
1541                                    }, 0);
1542                                }
1543                            }
1544
1545                            this.$refs.button.setAttribute(
1546                                'aria-label',
1547                                'Zamknij menu eGames'
1548                            );
1549                        } else {
1550                            const button = document.getElementById('top-links-' + id);
1551                            if (button && !doNotFocus) {
1552                                button.focus({ focusVisible: true });
1553                            }
1554
1555                            this.$refs.button.setAttribute(
1556                                'aria-label',
1557                                'Otwórz menu eGames'
1558                            );
1559                        }
1560                    },
1561                };
1562            }
1563        </script>
1563
1564                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1565                            <li class="header-top-links-menu__item" role="menuitem">    <a
1566        href="/blog"
1567        data-menu="menu-185" class="__link"    >
1568        Blog    </a>
1569
1570</li>
1571                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1572                            <li class="header-top-links-menu__item" role="menuitem">    <a
1573        href="/contact"
1574        data-menu="menu-187" class="__link"    >
1575        Kontakt    </a>
1576
1577</li>
1578                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
1579    </ul>    </div>
1580</div>
1581<div class="header content"><template id="trustedshops-badge_6ab4f37e1143a">
1582</template>
1583<script>
1584window.addEventListener('init-external-scripts', () => {
1585    const template = document.getElementById('trustedshops-badge_6ab4f37e1143a');
1586    if (template?.content) {
1587        const clone = document.importNode(template.content, true);
1588        document.body.appendChild(clone);
1589    }
1590}, {once: true, passive: true});
1591</script>
1591
1592</div>
1592<script>
1593    function initHeader () {
1594        return {
1595            cart: {},
1596            isCartOpen: false,
1597            getData(data) {
1598                if (data.cart) { this.cart = data.cart }
1599            },
1600            isCartEmpty() {
1601                return !this.cart.summary_count
1602            },
1603            toggleCart(event) {
1604                if (event.detail && event.detail.isOpen !== undefined) {
1605                    this.isCartOpen = event.detail.isOpen
1606                    if (!this.isCartOpen && this.$refs && this.$refs.cartButton) {
1607                        this.$refs.cartButton.focus()
1608                    }
1609                } else {
1610                                        this.isCartOpen = true
1611                }
1612            }
1613        }
1614    }
1615</script>
1615
1616
1617
1618<div id="header"
1619     class="relative z-30 w-full bg-header lg:py-1.5"
1620     x-data="initHeader()"
1621     @private-content-loaded.window="getData(event.detail.data)"
1622>
1623    <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">
1624        <!--Logo-->
1625        <div class="header-logo-wrap w-full flex items-center justify-center md:w-auto md:bg-transparent">
1626            <div class="order-1 sm:order-2 lg:order-1 sm:w-auto flex-shrink-0 w-1/3 lg:w-auto">
1627    <a class="flex items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title"
1628       href="https://www.trefl.com/"
1629       aria-label="Przejd&#x017A;&#x20;do&#x20;strony&#x20;g&#x0142;&#xF3;wnej"
1630    >
1631        <img
1632            src="https://www.trefl.com/static/version1789064390/frontend/Trefl/hyva-trefl/pl_PL/images/logo.svg"
1633            alt=""
1634            width="104"
1635            height="52"
1636            fetchpriority="high"
1637            loading="eager"
1638            class="logo-image"
1639        />
1640    </a>
1641</div>
1642        </div>
1643
1644        <!--Search-->
1645                <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">
1646            <div class="relative flex justify-center">
1647                
1648<form id="search_mini_form"
1649      action="https://www.trefl.com/catalogsearch/result/"
1650      method="get"
1651      role="search"
1652      class="w-full flex justify-center gap-x-2"
1653>
1654    <div class="w-full flex relative" style="max-width: 580px;">
1655        <label class="sr-only text-primary" for="search">
1656            Szukaj&#x20;w&#x20;sklepie...        </label>
1657        <input id="search"
1658               type="search"
1659               required
1660               class="form-input w-full appearance-none border-gray-light bg-gray-light pr-14 sm:pr-3"
1661               autocapitalize="off" autocomplete="off" autocorrect="off"
1662               name="q"
1663               value=""
1664               placeholder="Czego szukasz?"
1665               maxlength="128"
1666               oninvalid="this.setCustomValidity('Wpisz wyszukiwaną frazę')"
1667               oninput="this.setCustomValidity('')"
1668        />
1669
1670                            
1671<label class="sr-only text-primary" for="search-category">
1672    Wybierz&#x20;kategori&#x0119;</label>
1673<select class="form-select -ml-3 bg-gray-lighter border-gray-lighter min-w-48 hidden sm:block w-auto "
1674        id="search-category"
1675        name="cat">
1676    <option value="" selected>Wszystkie kategorie</option>
1677                    <option value="3">
1678            Puzzle        </option>
1679                    <option value="4">
1680            Gry        </option>
1681                    <option value="5">
1682            Zabawki        </option>
1683                    <option value="167">
1684            Książki        </option>
1685    </select>
1686            </div>
1687    <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"
1688            aria-label="Szukaj">
1689        <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>
1690        <span class="hidden lg:inline">Szukaj</span>
1691    </button>
1692</form>
1693            </div>
1694        </div>
1695        
1696        <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">
1697            <!-- Additional Header Elements -->
1698            
1699            <!--Customer Icon & Dropdown-->
1700            
1701<div
1702    class="relative inline-block"
1703    x-data="{ open: false }"
1704    @keyup.escape="open = false"
1705    @click.outside="open = false"
1706>
1707    <button
1708        type="button"
1709        id="customer-menu"
1710        class="block rounded p-2 outline-offset-2 md:text-inherit"
1711        @click="open = !open"
1712        :aria-expanded="open ? 'true' : 'false'"
1713        title="Moje&#x20;konto"
1714        aria-label="Moje&#x20;konto"
1715        aria-haspopup="true"
1716    >
1717        <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>
1718    </button>
1719    <nav
1720        class="
1721            absolute right-0 z-20 w-40 py-2 mt-2 -mr-4 px-1 overflow-auto origin-top-right rounded-sm
1722            shadow-lg sm:w-48 lg:mt-3 bg-container-lighter text-black
1723        "
1724        x-cloak
1725        x-show="open"
1726        aria-labelledby="customer-menu"
1727    >
1728                        <div>
1729        <a id="customer.header.sign.in.link"
1730           class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
1731           onclick="hyva.setCookie && hyva.setCookie(
1732                   'login_redirect',
1733                   window.location.href,
1734                   1
1735                   )"
1736           href="https://www.trefl.com/customer/account/index/"
1737           title="Zaloguj&#x20;si&#x0119;"
1738        >
1739            Zaloguj się        </a>
1740
1741    </div>
1742
1743<script type="text/javascript">
1744    function onClick () {
1745        showLogin();
1746        const modal = document.querySelector('.wrap-modal-login');
1747        modal.classList.add('mfp-move-from-top-appear');
1748        openMyDialog();
1749
1750    }
1751</script>
1751
1752            <div>
1753            <a id="customer.header.register.link"
1754               class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
1755               href="https://www.trefl.com/customer/account/create/"
1756               title="Utw&#xF3;rz&#x20;konto"
1757            >
1758                Utwórz konto            </a>
1759        </div>
1760    
1761<script type="text/javascript">
1762    function onClickRegister () {
1763        createBtn();
1764        const modal = document.querySelector('.wrap-modal-login');
1765        modal.classList.add('mfp-move-from-top-appear');
1766        openMyDialog();
1767
1768
1769    }
1770</script>
1770            </nav>
1771</div>
1772
1773            <!--Wishlist Icon-->
1774                            <a href="https://www.trefl.com/wishlist/"
1775                   class="rounded p-2  outline-offset-2 hidden sm:block md:text-inherit"
1776                   title="Ulubione"
1777                >
1778                    <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>
1779                </a>
1780            
1781            <!--Cart Icon-->
1782                            <button
1783                            id="menu-cart-icon"
1784                class="relative inline-block rounded p-2 outline-offset-2 md:text-inherit"
1785                x-ref="cartButton"
1786                :aria-disabled="isCartEmpty()"
1787                :aria-label="`
1788                    Prze&#x0142;&#x0105;cz&#x20;koszyk&#x20;w&#x20;panelu&#x20;bocznym,
1789                    ${isCartEmpty()
1790                        ? 'Koszyk&#x20;jest&#x20;pusty'
1791                        : cart.summary_count > 1
1792                            ? hyva.str('&#x25;1&#x20;element&#xF3;w', cart.summary_count)
1793                            : hyva.str('&#x25;1&#x20;item', cart.summary_count)
1794                    }`"
1795                                    @click.prevent.stop="() => {
1796                        $dispatch('toggle-cart', { isOpen: true })
1797                    }"
1798                    @toggle-cart.window="toggleCart($event)"
1799                    :aria-expanded="isCartOpen"
1800                    aria-haspopup="dialog"
1801                            >
1802                <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>
1803                <span
1804                    x-text="cart.summary_count"
1805                    x-show="!isCartEmpty()"
1806                    x-cloak
1807                    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"
1808                    aria-hidden="true"
1809                ></span>
1810                                    </button>
1811                        </div>
1812    </div>
1813
1814    <!--Main Navigation-->
1815    <input type="checkbox"
1816           id="mobile-menu-switch"
1817           class="hidden"
1818           aria-hidden="true"
1819           @change="$dispatch('toggle-menu-mobile', { isOpen: $el.checked })"
1820    />
1821    
1822    
1822<script>
1823        'use strict';
1824
1825        const initMenuMobile_6ab476688c625 = () => ({
1826            submenuDataAttrName: 'menu',
1827            submenuActiveClass: 'menu-mobile-submenu-active',
1828            init() {
1829                window.addEventListener('toggle-menu-mobile', (event) => {
1830                   const isOpen = event.detail?.isOpen;
1831
1832                   if (isOpen) {
1833                       this.$nextTick(() => hyva.trapFocus(this.$refs['menu-dialog']))
1834                       // Prevent from body scrolling while mobile menu opened
1835                       document.body.classList.add('fixed', 'w-full')
1836                   } else {
1837                       document.body.classList.remove('fixed', 'w-full')
1838                   }
1839                })
1840            },
1841            closeMenu() {
1842                const menuSwitch = document.getElementById('mobile-menu-switch')
1843                if (menuSwitch) {
1844                    menuSwitch.checked = false
1845                }
1846            },
1847            openSubmenu(menuRef) {
1848                this.$refs[menuRef]?.classList?.add(this.submenuActiveClass)
1849            },
1850            closeSubmenu(menuRef) {
1851                this.$refs[menuRef]?.classList?.remove(this.submenuActiveClass)
1852            },
1853        })
1854    </script>
1854
1855    <nav
1856        class="                menu-mobile z-20 order-2 text-primary-darker sm:order-1 navigation lg:hidden"
1857        x-data="initMenuMobile_6ab476688c625()"
1858        @keydown.escape="closeMenu()"
1859        aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
1860        role="navigation"
1861    >
1862        <div class="backdrop hidden"
1863            x-transition:enter="ease-in-out duration-500"
1864            x-transition:enter-start="opacity-0"
1865            x-transition:enter-end="opacity-100"
1866            x-transition:leave="ease-in-out duration-500"
1867            x-transition:leave-start="opacity-100"
1868            x-transition:leave-end="opacity-0"
1869            @click="closeMenu()"
1870            x-cloak
1871            style="background: rgba(0, 0, 0, 0.6);"
1872        ></div>
1873        <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"
1874            x-ref="menu-dialog"
1875            role="dialog"
1876            aria-modal="true"
1877            aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
1878            style="max-width:86.5%"
1879        >
1880            <div class="relative h-full">
1881                <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>
1882</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">
1883  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
1884<title>x</title></svg>
1885</label><ul class="level1"><li class="level1">
1886    <button @click.prevent="closeSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1887        <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>
1888    </button>
1889<a href="https://www.trefl.com/puzzle"
1890    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1891                is-parent        "
1892>
1893    Puzzle</a>
1894    <button @click.prevent="openSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1895        <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 
18950 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>
1896    </button>
1897</li><li class="level1">
1898<a href="https://www.trefl.com/puzzle/fotopuzzle"
1899    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1900                        "
1901>
1902    Fotopuzzle</a>
1903</li><li class="level1">
1904    <button @click.prevent="closeSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1905        <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>
1906    </button>
1907<a href="https://www.trefl.com/gry"
1908    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1909                is-parent        "
1910>
1911    Gry planszowe</a>
1912    <button @click.prevent="openSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1913        <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 
19130 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>
1914    </button>
1915</li><li class="level1">
1916    <button @click.prevent="closeSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1917        <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>
1918    </button>
1919<a href="https://www.trefl.com/zabawki"
1920    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1921                is-parent        "
1922>
1923    Zabawki</a>
1924    <button @click.prevent="openSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1925        <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 
19250 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>
1926    </button>
1927</li><li class="level1">
1928    <button @click.prevent="closeSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1929        <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>
1930    </button>
1931<a href="https://www.trefl.com/ksiazki"
1932    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1933                is-parent        "
1934>
1935    Książki</a>
1936    <button @click.prevent="openSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1937        <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 
19370 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>
1938    </button>
1939</li><li class="level1">
1940    <button @click.prevent="closeSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1941        <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>
1942    </button>
1943<a href="https://www.trefl.com/rodzina-treflikow"
1944    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1945                is-parent        "
1946>
1947    Rodzina Treflików</a>
1948    <button @click.prevent="openSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1949        <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 
19490 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>
1950    </button>
1951</li><li class="level1">
1952    <button @click.prevent="closeSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1953        <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>
1954    </button>
1955<a href="https://www.trefl.com/prezenty"
1956    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1957                is-parent        "
1958>
1959    Prezenty</a>
1960    <button @click.prevent="openSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1961        <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 
19610 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>
1962    </button>
1963</li><li class="level1">
1964<a href="https://www.trefl.com/nowosci"
1965    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1966                        "
1967>
1968    Nowości</a>
1969</li><li class="level1">
1970<a href="https://www.trefl.com/puzzle-gry-zabawki-tylko-u-nas"
1971    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1972                        "
1973>
1974    Tylko u nas!</a>
1975</li><li class="level1">
1976    <button @click.prevent="closeSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1977        <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>
1978    </button>
1979<a href="https://www.trefl.com/promocje"
1980    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1981                is-parent        "
1982>
1983    Promocje</a>
1984    <button @click.prevent="openSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1985        <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 
19850 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>
1986    </button>
1987</li><li class="level1">
1988    <button @click.prevent="closeSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1989        <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>
1990    </button>
1991<a href="https://www.trefl.com/marki"
1992    class="cursor-pointer snowdog-menu-link-topmenu-mobile
1993                is-parent        "
1994>
1995    Marki i licencje</a>
1996    <button @click.prevent="openSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
1997        <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 
19970 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>
1998    </button>
1999</li><li class="level1">
2000    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2001        href="https://www.trefl.com/blog"
2002                data-menu="menu-260"    >
2003        Blog    </a>
2004</li><li class="level1">
2005<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
2006                "
2007            @click.prevent="openSubmenu('menu-273')"
2008    >
2009    Gry wirtualne</button>
2010</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"
2011    role="menubar"
2012    aria-orientation="horizontal"
2013>
2014                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2015            x-data="topMenu_575()"
2016            role="menuitem"
2017            @keydown.escape="toggleSubmenu('575', false, $event)"
2018            @pointerenter="toggleSubmenu('575', true, $event)"
2019            @pointerleave="toggleSubmenu('575', false, $event)"
2020        >
2021            <button aria-haspopup="menu"
2022                    aria-controls="top-links-5756ab45a3cc8d7b"
2023                    id="top-links-575"
2024                    class="flex items-center gap-1"
2025                    x-ref="button"
2026                    @click.prevent.stop="toggleSubmenu('575', null, $event)"
2027                    @keydown.space.prevent="toggleSubmenu('575', null, $event)"
2028                    @keydown.enter.prevent="toggleSubmenu('575', null, $event)"
2029                    aria-label="Otwórz menu Oferta&#x20;B2B"
2030                    :aria-pressed="openSubmenuId === '575'"
2031                    :aria-expanded="openSubmenuId === '575'">
2032                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">
2033  <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"/>
2034</svg>
2035            </button>
2036            <ul role="menubar"
2037                aria-orientation="vertical"
2038                aria-labelledby="top-links575"
2039                id="top-links5756ab45a3cc8d7b"
2040                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"
2041                :class="openSubmenuId === '575' ? 'z-40' : ''"
2042                x-cloak
2043            >
2044                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2045                            <a
2046        href="https://b2b.trefl.com/"
2047        data-menu="menu-576" class="__inner-link"    >
2048        Platforma zamówień hurtowych    </a>
2049
2050                    </li>
2051                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2052                            <a
2053        href="https://factory.trefl.com/"
2054        data-menu="menu-577" class="__inner-link"    >
2055        Produkty na zlecenie - Trefl Factory    </a>
2056
2057                    </li>
2058                            </ul>
2059        </li>
2060        
2060<script>
2061            function topMenu_575() {
2062                return {
2063                    openSubmenuId: null,
2064                    toggleSubmenu(id, state, event) {
2065                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2066
2067                        if (state === true) {
2068                            this.openSubmenuId = id;
2069                        } else if (state === false) {
2070                            this.openSubmenuId = null;
2071                        } else {
2072                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2073                        }
2074
2075                        if (this.openSubmenuId) {
2076                            const submenu = document.getElementById('top-links' + id);
2077                            if (submenu && !doNotFocus) {
2078                                const firstChild = submenu.querySelector('li a');
2079                                if (firstChild) {
2080                                    setTimeout(() => {
2081                                        firstChild.focus({ focusVisible: true });
2082                                    }, 0);
2083                                }
2084                            }
2085
2086                            this.$refs.button.setAttribute(
2087                                'aria-label',
2088                                'Zamknij menu Oferta&#x20;B2B'
2089                            );
2090                        } else {
2091                            const button = document.getElementById('top-links-' + id);
2092                            if (button && !doNotFocus) {
2093                                button.focus({ focusVisible: true });
2094                            }
2095
2096                            this.$refs.button.setAttribute(
2097                                'aria-label',
2098                                'Otwórz menu Oferta&#x20;B2B'
2099                            );
2100                        }
2101                    },
2102                };
2103            }
2104        </script>
2104
2105                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2106                            <li class="header-top-links-menu__item" role="menuitem">
2107<a
2108    href="https://www.trefl.com/grupa-trefl"
2109    class="__link"
2110     data-menu="menu-183">
2111    Grupa Trefl</a>
2112</li>
2113                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2114                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2115            x-data="topMenu_400()"
2116            role="menuitem"
2117            @keydown.escape="toggleSubmenu('400', false, $event)"
2118            @pointerenter="toggleSubmenu('400', true, $event)"
2119            @pointerleave="toggleSubmenu('400', false, $event)"
2120        >
2121            <button aria-haspopup="menu"
2122                    aria-controls="top-links-4006ab45a3cc8d7b"
2123                    id="top-links-400"
2124                    class="flex items-center gap-1"
2125                    x-ref="button"
2126                    @click.prevent.stop="toggleSubmenu('400', null, $event)"
2127                    @keydown.space.prevent="toggleSubmenu('400', null, $event)"
2128                    @keydown.enter.prevent="toggleSubmenu('400', null, $event)"
2129                    aria-label="Otwórz menu ESG"
2130                    :aria-pressed="openSubmenuId === '400'"
2131                    :aria-expanded="openSubmenuId === '400'">
2132                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">
2133  <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"/>
2134</svg>
2135            </button>
2136            <ul role="menubar"
2137                aria-orientation="vertical"
2138                aria-labelledby="top-links400"
2139                id="top-links4006ab45a3cc8d7b"
2140                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"
2141                :class="openSubmenuId === '400' ? 'z-40' : ''"
2142                x-cloak
2143            >
2144                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2145                            <a
2146        href="https://www.trefl.com/zrownowazony-rozwoj"
2147        data-menu="menu-401" class="__inner-link"    >
2148        Zrównoważony rozwój    </a>
2149
2150                    </li>
2151                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2152                            <a
2153        href="https://www.trefl.com/zrownowazony-rozwoj/srodowisko"
2154        data-menu="menu-582" class="__inner-link"    >
2155        Środowisko    </a>
2156
2157                    </li>
2158                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2159                            <a
2160        href="https://www.trefl.com/zielona-strona-trefla"
2161        data-menu="menu-402" class="__inner-link"    >
2162        Zielona Strona Trefla    </a>
2163
2164                    </li>
2165                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2166                            <a
2167        href="https://www.trefl.com/zrownowazony-rozwoj/dokumenty"
2168        data-menu="menu-403" class="__inner-link"    >
2169        Dokumenty    </a>
2170
2171                    </li>
2172                            </ul>
2173        </li>
2174        
2174<script>
2175            function topMenu_400() {
2176                return {
2177                    openSubmenuId: null,
2178                    toggleSubmenu(id, state, event) {
2179                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2180
2181                        if (state === true) {
2182                            this.openSubmenuId = id;
2183                        } else if (state === false) {
2184                            this.openSubmenuId = null;
2185                        } else {
2186                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2187                        }
2188
2189                        if (this.openSubmenuId) {
2190                            const submenu = document.getElementById('top-links' + id);
2191                            if (submenu && !doNotFocus) {
2192                                const firstChild = submenu.querySelector('li a');
2193                                if (firstChild) {
2194                                    setTimeout(() => {
2195                                        firstChild.focus({ focusVisible: true });
2196                                    }, 0);
2197                                }
2198                            }
2199
2200                            this.$refs.button.setAttribute(
2201                                'aria-label',
2202                                'Zamknij menu ESG'
2203                            );
2204                        } else {
2205                            const button = document.getElementById('top-links-' + id);
2206                            if (button && !doNotFocus) {
2207                                button.focus({ focusVisible: true });
2208                            }
2209
2210                            this.$refs.button.setAttribute(
2211                                'aria-label',
2212                                'Otwórz menu ESG'
2213                            );
2214                        }
2215                    },
2216                };
2217            }
2218        </script>
2218
2219                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2220                            <li class="header-top-links-menu__item" role="menuitem">
2221<a
2222    href="https://www.trefl.com/kariera"
2223    class="__link"
2224     data-menu="menu-615">
2225    Kariera</a>
2226</li>
2227                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2228                            <li class="relative flex-wrap lg:flex-nowrap header-top-links-menu__item"
2229            x-data="topMenu_184()"
2230            role="menuitem"
2231            @keydown.escape="toggleSubmenu('184', false, $event)"
2232            @pointerenter="toggleSubmenu('184', true, $event)"
2233            @pointerleave="toggleSubmenu('184', false, $event)"
2234        >
2235            <button aria-haspopup="menu"
2236                    aria-controls="top-links-1846ab45a3cc8d7b"
2237                    id="top-links-184"
2238                    class="flex items-center gap-1"
2239                    x-ref="button"
2240                    @click.prevent.stop="toggleSubmenu('184', null, $event)"
2241                    @keydown.space.prevent="toggleSubmenu('184', null, $event)"
2242                    @keydown.enter.prevent="toggleSubmenu('184', null, $event)"
2243                    aria-label="Otwórz menu eGames"
2244                    :aria-pressed="openSubmenuId === '184'"
2245                    :aria-expanded="openSubmenuId === '184'">
2246                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">
2247  <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"/>
2248</svg>
2249            </button>
2250            <ul role="menubar"
2251                aria-orientation="vertical"
2252                aria-labelledby="top-links184"
2253                id="top-links1846ab45a3cc8d7b"
2254                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"
2255                :class="openSubmenuId === '184' ? 'z-40' : ''"
2256                x-cloak
2257            >
2258                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2259                            <a
2260        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
2261        data-menu="menu-620" class="__inner-link" target="_blank" rel="noopener"    >
2262        Treflandia na Roblox    </a>
2263
2264                    </li>
2265                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2266                            <a
2267        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
2268        data-menu="menu-621" class="__inner-link" target="_blank" rel="noopener"    >
2269        Gry na Nintendo    </a>
2270
2271                    </li>
2272                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2273                            <a
2274        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
2275        data-menu="menu-622" class="__inner-link" target="_blank" rel="noopener"    >
2276        Gry na PC (Steam)    </a>
2277
2278                    </li>
2279                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2280                            <a
2281        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
2282        data-menu="menu-623" class="__inner-link" target="_blank" rel="noopener"    >
2283        Gry mobilne (Apple IOS)    </a>
2284
2285                    </li>
2286                                    <li class="header-top-links-menu__item whitespace-nowrap" role="menuitem">
2287                            <a
2288        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
2289        data-menu="menu-624" class="__inner-link" target="_blank" rel="noopener"    >
2290        Gry mobilne (Android)    </a>
2291
2292                    </li>
2293                            </ul>
2294        </li>
2295        
2295<script>
2296            function topMenu_184() {
2297                return {
2298                    openSubmenuId: null,
2299                    toggleSubmenu(id, state, event) {
2300                        const doNotFocus = event.type === 'pointerenter' || event.type === 'pointerleave';
2301
2302                        if (state === true) {
2303                            this.openSubmenuId = id;
2304                        } else if (state === false) {
2305                            this.openSubmenuId = null;
2306                        } else {
2307                            this.openSubmenuId = this.openSubmenuId === id ? null : id;
2308                        }
2309
2310                        if (this.openSubmenuId) {
2311                            const submenu = document.getElementById('top-links' + id);
2312                            if (submenu && !doNotFocus) {
2313                                const firstChild = submenu.querySelector('li a');
2314                                if (firstChild) {
2315                                    setTimeout(() => {
2316                                        firstChild.focus({ focusVisible: true });
2317                                    }, 0);
2318                                }
2319                            }
2320
2321                            this.$refs.button.setAttribute(
2322                                'aria-label',
2323                                'Zamknij menu eGames'
2324                            );
2325                        } else {
2326                            const button = document.getElementById('top-links-' + id);
2327                            if (button && !doNotFocus) {
2328                                button.focus({ focusVisible: true });
2329                            }
2330
2331                            this.$refs.button.setAttribute(
2332                                'aria-label',
2333                                'Otwórz menu eGames'
2334                            );
2335                        }
2336                    },
2337                };
2338            }
2339        </script>
2339
2340                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2341                            <li class="header-top-links-menu__item" role="menuitem">    <a
2342        href="/blog"
2343        data-menu="menu-185" class="__link"    >
2344        Blog    </a>
2345
2346</li>
2347                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2348                            <li class="header-top-links-menu__item" role="menuitem">    <a
2349        href="/contact"
2350        data-menu="menu-187" class="__link"    >
2351        Kontakt    </a>
2352
2353</li>
2354                <li class="last:hidden" role="separator" aria-hidden="true"> | </li>
2355    </ul>
2356</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">
2357<a href="https://www.trefl.com/puzzle"
2358    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2359        menu-mobile-parent-link                "
2360>
2361    Puzzle</a>
2362<button type="button"
2363                              @click="closeSubmenu('menu-46')"
2364                              class="w-10 h-10 flex items-center justify-center"
2365                ><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>
2366</button></div><div class="border-b border-gray parent-heading" data-level="2">
2367    <button @click.prevent="closeSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2368        <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>
2369    </button>
2370<a href="https://www.trefl.com/puzzle"
2371    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2372                is-parent        "
2373>
2374    Puzzle</a>
2375    <button @click.prevent="openSubmenu('menu-46')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2376        <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 
23760 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>
2377    </button>
2378</div><ul class="level2"><li class="level2">
2379    <button @click.prevent="closeSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2380        <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>
2381    </button>
2382<a href="https://www.trefl.com/puzzle/dla-dzieci"
2383    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2384                is-parent        "
2385>
2386    Puzzle dla dzieci</a>
2387    <button @click.prevent="openSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2388        <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 
23880 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>
2389    </button>
2390</li><li class="level2">
2391<a href="https://www.trefl.com/puzzle/dla-doroslych"
2392    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2393                        "
2394>
2395    Puzzle dla dorosłych</a>
2396</li><li class="level2">
2397<a href="https://www.trefl.com/puzzle/akcesoria"
2398    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2399                        "
2400>
2401    Akcesoria do puzzli</a>
2402</li><li class="level2">
2403<a href="https://www.trefl.com/puzzle/500-elementow"
2404    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2405                        "
2406>
2407    Puzzle 500 elementów</a>
2408</li><li class="level2">
2409<a href="https://www.trefl.com/puzzle/1000-elementow"
2410    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2411                        "
2412>
2413    Puzzle 1000 elementów</a>
2414</li><li class="level2">
2415<a href="https://www.trefl.com/puzzle/1500-elementow"
2416    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2417                        "
2418>
2419    Puzzle 1500 elementów</a>
2420</li><li class="level2">
2421<a href="https://www.trefl.com/puzzle/2000-elementow"
2422    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2423                        "
2424>
2425    Puzzle 2000 elementów</a>
2426</li><li class="level2">
2427<a href="https://www.trefl.com/puzzle/3000-elementow"
2428    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2429                        "
2430>
2431    Puzzle 3000 elementów</a>
2432</li><li class="level2">
2433<a href="https://www.trefl.com/puzzle/4000-elementow"
2434    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2435                        "
2436>
2437    Puzzle 4000 elementów</a>
2438</li><li class="level2">
2439<a href="https://www.trefl.com/puzzle/6000-elementow"
2440    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2441                        "
2442>
2443    Puzzle 6000 elementów</a>
2444</li><li class="level2">
2445<a href="https://www.trefl.com/puzzle/8000-elementow"
2446    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2447                        "
2448>
2449    Puzzle 8000 elementów</a>
2450</li><li class="level2">
2451<a href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
2452    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2453                        "
2454>
2455    Puzzle 9000 elementów</a>
2456</li><li class="level2">
2457    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2458        href="https://www.trefl.com/puzzle-premium-plus-quality-10000-el-windows-of-the-seasons-81051"
2459                data-menu="menu-631"    >
2460        Puzzle 10 000 elementów    </a>
2461</li><li class="level2">
2462<a href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
2463    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2464                        "
2465>
2466    Puzzle 13 500 elementów</a>
2467</li><li class="level2">
2468    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
2469        href="https://www.trefl.com/puzzle-prime-21000-el-earth-chronicles-from-the-creation-to-the-future-81040"
2470                data-menu="menu-266"    >
2471        Puzzle 21 000 elementów    </a>
2472</li><li class="level2">
2473<a href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
2474    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2475                        "
2476>
2477    Puzzle Premium Plus Quality</a>
2478</li><li class="level2">
2479<a href="https://www.trefl.com/puzzle/drewniane"
2480    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2481                        "
2482>
2483    Puzzle drewniane</a>
2484</li><li class="level2">
2485<a href="https://www.trefl.com/puzzle/puzzle-filmowe"
2486    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2487                        "
2488>
2489    Puzzle filmowe</a>
2490</li><li class="level2">
2491<a href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
2492    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2493                        "
2494>
2495    Puzzle jubileuszowe na 40-lecie</a>
2496</li><li class="level2">
2497<a href="https://www.trefl.com/puzzle/puzzle-kosmos"
2498    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2499                        "
2500>
2501    Puzzle kosmos</a>
2502</li><li class="level2">
2503<a href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
2504    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2505                        "
2506>
2507    Puzzle krajobrazy</a>
2508</li><li class="level2">
2509<a href="https://www.trefl.com/puzzle/puzzle-kulinarne"
2510    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2511                        "
2512>
2513    Puzzle kulinarne</a>
2514</li><li class="level2">
2515<a href="https://www.trefl.com/puzzle/puzzle-mapy"
2516    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2517                        "
2518>
2519    Puzzle mapy</a>
2520</li><li class="level2">
2521<a href="https://www.trefl.com/puzzle/puzzle-miasta"
2522    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2523                        "
2524>
2525    Puzzle miasta</a>
2526</li><li class="level2">
2527<a href="https://www.trefl.com/puzzle/puzzle-obrazy"
2528    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2529                        "
2530>
2531    Puzzle obrazy</a>
2532</li><li class="level2">
2533<a href="https://www.trefl.com/puzzle/puzzle-panoramiczne"
2534    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2535                        "
2536>
2537    Puzzle panoramiczne</a>
2538</li><li class="level2">
2539<a href="https://www.trefl.com/puzzle/puzzle-samochody"
2540    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2541                        "
2542>
2543    Puzzle samochody</a>
2544</li><li class="level2">
2545<a href="https://www.trefl.com/puzzle/puzzle-swiateczne"
2546    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2547                        "
2548>
2549    Puzzle świąteczne</a>
2550</li><li class="level2">
2551<a href="https://www.trefl.com/puzzle/puzzloramy"
2552    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2553                        "
2554>
2555    PuzzloRamy</a>
2556</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">
2557<a href="https://www.trefl.com/puzzle/dla-dzieci"
2558    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2559        menu-mobile-parent-link                "
2560>
2561    Puzzle dla dzieci</a>
2562<button type="button"
2563                              @click="closeSubmenu('menu-361')"
2564                              class="w-10 h-10 flex items-center justify-center"
2565                ><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>
2566</button></div><div class="border-b border-gray parent-heading" data-level="3">
2567    <button @click.prevent="closeSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2568        <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>
2569    </button>
2570<a href="https://www.trefl.com/puzzle/dla-dzieci"
2571    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2572                is-parent        "
2573>
2574    Puzzle dla dzieci</a>
2575    <button @click.prevent="openSubmenu('menu-361')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2576        <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 
25760 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>
2577    </button>
2578</div><ul class="level3"><li class="level3">
2579<a href="https://www.trefl.com/puzzle/dla-dzieci/1-3-lata"
2580    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2581                        "
2582>
2583    Puzzle dla dzieci 1-3</a>
2584</li><li class="level3">
2585<a href="https://www.trefl.com/puzzle/dla-dzieci/3-lata"
2586    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2587                        "
2588>
2589    Puzzle dla 3 latka</a>
2590</li><li class="level3">
2591<a href="https://www.trefl.com/puzzle/dla-dzieci/4-lata"
2592    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2593                        "
2594>
2595    Puzzle dla 4 latka</a>
2596</li><li class="level3">
2597<a href="https://www.trefl.com/puzzle/dla-dzieci/4-6-lat"
2598    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2599                        "
2600>
2601    Puzzle dla dzieci 4-6</a>
2602</li><li class="level3">
2603<a href="https://www.trefl.com/puzzle/dla-dzieci/6-8-lat"
2604    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2605                        "
2606>
2607    Puzzle dla dzieci 6-8</a>
2608</li><li class="level3">
2609<a href="https://www.trefl.com/puzzle/dla-dzieci/8-10-lat"
2610    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2611                        "
2612>
2613    Puzzle dla dzieci 8-10</a>
2614</li><li class="level3">
2615<a href="https://www.trefl.com/puzzle/dla-dzieci/auta"
2616    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2617                        "
2618>
2619    Puzzle Auta</a>
2620</li><li class="level3">
2621<a href="https://www.trefl.com/puzzle/dla-dzieci/barbie"
2622    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2623                        "
2624>
2625    Puzzle Barbie</a>
2626</li><li class="level3">
2627<a href="#"
2628    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2629                        "
2630>
2631    Puzzle Batman</a>
2632</li><li class="level3">
2633<a href="https://www.trefl.com/puzzle/dla-dzieci/bing"
2634    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2635                        "
2636>
2637    Puzzle Bing</a>
2638</li><li class="level3">
2639<a href="https://www.trefl.com/puzzle/dla-dzieci/bob-budowniczy"
2640    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2641                        "
2642>
2643    Puzzle Bob Budowniczy</a>
2644</li><li class="level3">
2645<a href="https://www.trefl.com/puzzle/dla-dzieci/enchantimals"
2646    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2647                        "
2648>
2649    Puzzle Enchantimals</a>
2650</li><li class="level3">
2651<a href="#"
2652    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2653                        "
2654>
2655    Puzzle Harry Potter</a>
2656</li><li class="level3">
2657<a href="https://www.trefl.com/puzzle/dla-dzieci/jej-wysokosc-zosia"
2658    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2659                        "
2660>
2661    Puzzle Jej Wysokość Zosia</a>
2662</li><li class="level3">
2663<a href="https://www.trefl.com/puzzle/dla-dzieci/kicia-kocia"
2664    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2665                        "
2666>
2667    Puzzle Kicia Kocia</a>
2668</li><li class="level3">
2669<a href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-koci-domek-gabi"
2670    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2671                        "
2672>
2673    Puzzle Koci Domek Gabi</a>
2674</li><li class="level3">
2675<a href="https://www.trefl.com/puzzle/dla-dzieci/kraina-lodu"
2676    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2677                        "
2678>
2679    Puzzle Kraina Lodu (Frozen)</a>
2680</li><li class="level3">
2681<a href="https://www.trefl.com/puzzle/dla-dzieci/kubus-puchatek"
2682    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2683                        "
2684>
2685    Puzzle Kubuś Puchatek</a>
2686</li><li class="level3">
2687<a href="https://www.trefl.com/puzzle/dla-dzieci/minionki"
2688    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2689                        "
2690>
2691    Puzzle Minionki</a>
2692</li><li class="level3">
2693<a href="https://www.trefl.com/puzzle/dla-dzieci/minnie"
2694    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2695                        "
2696>
2697    Puzzle Minnie</a>
2698</li><li class="level3">
2699<a href="https://www.trefl.com/puzzle/dla-dzieci/muminki"
2700    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2701                        "
2702>
2703    Puzzle Muminki</a>
2704</li><li class="level3">
2705<a href="https://www.trefl.com/puzzle/dla-dzieci/my-little-pony"
2706    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2707                        "
2708>
2709    Puzzle My Little Pony</a>
2710</li><li class="level3">
2711<a href="https://www.trefl.com/puzzle/dla-dzieci/myszka-miki"
2712    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2713                        "
2714>
2715    Puzzle Myszka Miki</a>
2716</li><li class="level3">
2717<a href="https://www.trefl.com/puzzle/dla-dzieci/psi-patrol"
2718    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2719                        "
2720>
2721    Puzzle Psi Patrol</a>
2722</li><li class="level3">
2723<a href="https://www.trefl.com/puzzle/dla-dzieci/rodzina-treflikow"
2724    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2725                        "
2726>
2727    Puzzle Rodzina Treflików</a>
2728</li><li class="level3">
2729<a href="#"
2730    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2731                        "
2732>
2733    Puzzle Scooby Doo</a>
2734</li><li class="level3">
2735<a href="https://www.trefl.com/puzzle/dla-dzieci/star-wars"
2736    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2737                        "
2738>
2739    Puzzle Star Wars</a>
2740</li><li class="level3">
2741<a href="https://www.trefl.com/puzzle/dla-dzieci/strazak-sam"
2742    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2743                        "
2744>
2745    Puzzle Strażak Sam</a>
2746</li><li class="level3">
2747<a href="https://www.trefl.com/puzzle/dla-dzieci/swinka-peppa"
2748    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2749                        "
2750>
2751    Puzzle Świnka Peppa</a>
2752</li><li class="level3">
2753<a href="https://www.trefl.com/puzzle/dla-dzieci/tomek-i-przyjaciele"
2754    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2755                        "
2756>
2757    Puzzle Tomek i Przyjaciele</a>
2758</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">
2759<a href="https://www.trefl.com/gry"
2760    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2761        menu-mobile-parent-link                "
2762>
2763    Gry planszowe</a>
2764<button type="button"
2765                              @click="closeSubmenu('menu-51')"
2766                              class="w-10 h-10 flex items-center justify-center"
2767                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
2767ox="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>
2768</button></div><div class="border-b border-gray parent-heading" data-level="2">
2769    <button @click.prevent="closeSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2770        <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>
2771    </button>
2772<a href="https://www.trefl.com/gry"
2773    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2774                is-parent        "
2775>
2776    Gry planszowe</a>
2777    <button @click.prevent="openSubmenu('menu-51')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2778        <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 
27780 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>
2779    </button>
2780</div><ul class="level2"><li class="level2">
2781<a href="https://www.trefl.com/gry/dla-dzieci"
2782    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2783                        "
2784>
2785    Gry dla dzieci</a>
2786</li><li class="level2">
2787<a href="https://www.trefl.com/gry/rodzinne"
2788    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2789                        "
2790>
2791    Gry rodzinne</a>
2792</li><li class="level2">
2793<a href="https://www.trefl.com/gry/towarzyskie"
2794    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2795                        "
2796>
2797    Gry towarzyskie</a>
2798</li><li class="level2">
2799<a href="https://www.trefl.com/gry/edukacyjne"
2800    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2801                        "
2802>
2803    Gry edukacyjne</a>
2804</li><li class="level2">
2805<a href="https://www.trefl.com/gry/dla-grup-przedszkoli"
2806    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2807                        "
2808>
2809    Gry dla grup i przedszkoli</a>
2810</li><li class="level2">
2811<a href="https://www.trefl.com/gry/planszowe-1"
2812    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2813                        "
2814>
2815    Gry planszowe</a>
2816</li><li class="level2">
2817<a href="https://www.trefl.com/gry/karciane"
2818    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2819                        "
2820>
2821    Gdy karciane</a>
2822</li><li class="level2">
2823<a href="https://www.trefl.com/gry/domino-i-memos"
2824    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2825                        "
2826>
2827    Domino i Memos</a>
2828</li><li class="level2">
2829<a href="https://www.trefl.com/gry/dla-3-latka"
2830    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2831                        "
2832>
2833    Gry dla 3 latka</a>
2834</li><li class="level2">
2835<a href="https://www.trefl.com/gry/dla-4-latka"
2836    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2837                        "
2838>
2839    Gry dla 4 latka</a>
2840</li><li class="level2">
2841<a href="https://www.trefl.com/gry/dla-dzieci-4-6-lat"
2842    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2843                        "
2844>
2845    Gry dla dzieci 4-6 lat</a>
2846</li><li class="level2">
2847<a href="https://www.trefl.com/gry/dla-dzieci-6-8-lat"
2848    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2849                        "
2850>
2851    Gry dla dzieci 6-8 lat</a>
2852</li><li class="level2">
2853<a href="https://www.trefl.com/gry/dla-dzieci-8-10-lat"
2854    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2855                        "
2856>
2857    Gry dla dzieci 8-10 lat</a>
2858</li><li class="level2">
2859<a href="https://www.trefl.com/gry/dla-dzieci-12-lat"
2860    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2861                        "
2862>
2863    Gry dla dzieci 12+</a>
2864</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">
2865<a href="https://www.trefl.com/zabawki"
2866    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2867        menu-mobile-parent-link                "
2868>
2869    Zabawki</a>
2870<button type="button"
2871                              @click="closeSubmenu('menu-54')"
2872                              class="w-10 h-10 flex items-center justify-center"
2873                ><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>
2874</button></div><div class="border-b border-gray parent-heading" data-level="2">
2875    <button @click.prevent="closeSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2876        <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 
28760 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>
2877    </button>
2878<a href="https://www.trefl.com/zabawki"
2879    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2880                is-parent        "
2881>
2882    Zabawki</a>
2883    <button @click.prevent="openSubmenu('menu-54')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
2884        <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>
2885    </button>
2886</div><ul class="level2"><li class="level2">
2887<a href="https://www.trefl.com/zabawki/dla-niemowlaka"
2888    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2889                        "
2890>
2891    Zabawki dla niemowlaka</a>
2892</li><li class="level2">
2893<a href="https://www.trefl.com/zabawki/1-3-lata"
2894    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2895                        "
2896>
2897    Zabawki dla dzieci 1-3</a>
2898</li><li class="level2">
2899<a href="https://www.trefl.com/zabawki/3-lata"
2900    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2901                        "
2902>
2903    Zabawki dla 3 latka</a>
2904</li><li class="level2">
2905<a href="https://www.trefl.com/zabawki/4-lata"
2906    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2907                        "
2908>
2909    Zabawki dla 4 latka</a>
2910</li><li class="level2">
2911<a href="https://www.trefl.com/zabawki/4-6-lat"
2912    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2913                        "
2914>
2915    Zabawki dla dzieci 4-6 lat</a>
2916</li><li class="level2">
2917<a href="https://www.trefl.com/zabawki/6-8-lat"
2918    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2919                        "
2920>
2921    Zabawki dla dzieci 6-8 lat</a>
2922</li><li class="level2">
2923<a href="https://www.trefl.com/zabawki/8-10-lat"
2924    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2925                        "
2926>
2927    Zabawki dla dzieci 8-10 lat</a>
2928</li><li class="level2">
2929<a href="https://www.trefl.com/zabawki/do-kapieli"
2930    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2931                        "
2932>
2933    Zabawki do kąpieli</a>
2934</li><li class="level2">
2935<a href="https://www.trefl.com/zabawki/drewniane"
2936    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2937                        "
2938>
2939    Zabawki drewniane</a>
2940</li><li class="level2">
2941<a href="https://www.trefl.com/zabawki/interaktywne"
2942    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2943                        "
2944>
2945    Zabawki interaktywne</a>
2946</li><li class="level2">
2947<a href="https://www.trefl.com/zabawki/klocki"
2948    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2949                        "
2950>
2951    Klocki</a>
2952</li><li class="level2">
2953<a href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
2954    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2955                        "
2956>
2957    Klocki ceramiczne Brick Trick</a>
2958</li><li class="level2">
2959<a href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
2960    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2961                        "
2962>
2963    Klocki konstrukcyjne</a>
2964</li><li class="level2">
2965<a href="https://www.trefl.com/zabawki/magiczne-sztuczki"
2966    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2967                        "
2968>
2969    Magiczne sztuczki</a>
2970</li><li class="level2">
2971<a href="https://www.trefl.com/zabawki/modele"
2972    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2973                        "
2974>
2975    Modele aut i pojazdów</a>
2976</li><li class="level2">
2977<a href="https://www.trefl.com/zabawki/outdoorowe"
2978    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2979                        "
2980>
2981    Zabawki outdoorowe</a>
2982</li><li class="level2">
2983<a href="https://www.trefl.com/zabawki/pilki"
2984    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2985                        "
2986>
2987    Piłki</a>
2988</li><li class="level2">
2989<a href="https://www.trefl.com/zabawki/kreatywne"
2990    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2991                        "
2992>
2993    Zabawki kreatywne</a>
2994</li><li class="level2">
2995<a href="https://www.trefl.com/zabawki/sensoryczne"
2996    class="cursor-pointer snowdog-menu-link-topmenu-mobile
2997                        "
2998>
2999    Zabawki sensoryczne</a>
3000</li><li class="level2">
3001<a href="https://www.trefl.com/zabawki/hape"
3002    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3003                        "
3004>
3005    Zabawki Hape</a>
3006</li><li class="level2">
3007<a href="https://www.trefl.com/zabawki/zestawy-naukowe"
3008    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3009                        "
3010>
3011    Zabawki naukowe</a>
3012</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">
3013<a href="https://www.trefl.com/ksiazki"
3014    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3015        menu-mobile-parent-link                "
3016>
3017    Książki</a>
3018<button type="button"
3019                              @click="closeSubmenu('menu-55')"
3020                              class="w-10 h-10 flex items-center justify-center"
3021                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
3021ox="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>
3022</button></div><div class="border-b border-gray parent-heading" data-level="2">
3023    <button @click.prevent="closeSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3024        <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>
3025    </button>
3026<a href="https://www.trefl.com/ksiazki"
3027    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3028                is-parent        "
3029>
3030    Książki</a>
3031    <button @click.prevent="openSubmenu('menu-55')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3032        <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 
30320 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>
3033    </button>
3034</div><ul class="level2"><li class="level2">
3035<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-1-2-lata"
3036    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3037                        "
3038>
3039    Książki dla dzieci 1-2 lata</a>
3040</li><li class="level2">
3041<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-3-5-lat"
3042    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3043                        "
3044>
3045    Książki dla dzieci 3-5 lat</a>
3046</li><li class="level2">
3047<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-6-8-lat"
3048    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3049                        "
3050>
3051    Książki dla dzieci 6-8 lat</a>
3052</li><li class="level2">
3053<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-9-12-lat"
3054    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3055                        "
3056>
3057    Książki dla dzieci 9-12 lat</a>
3058</li><li class="level2">
3059<a href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
3060    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3061                        "
3062>
3063    Książki dla rodziców</a>
3064</li><li class="level2">
3065<a href="https://www.trefl.com/ksiazki/kolorowanki"
3066    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3067                        "
3068>
3069    Kolorowanki</a>
3070</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">
3071<a href="https://www.trefl.com/rodzina-treflikow"
3072    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3073        menu-mobile-parent-link                "
3074>
3075    Rodzina Treflików</a>
3076<button type="button"
3077                              @click="closeSubmenu('menu-56')"
3078                              class="w-10 h-10 flex items-center justify-center"
3079                ><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>
3080</button></div><div class="border-b border-gray parent-heading" data-level="2">
3081    <button @click.prevent="closeSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3082        <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>
3083    </button>
3084<a href="https://www.trefl.com/rodzina-treflikow"
3085    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3086                is-parent        "
3087>
3088    Rodzina Treflików</a>
3089    <button @click.prevent="openSubmenu('menu-56')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3090        <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 
30900 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>
3091    </button>
3092</div><ul class="level2"><li class="level2">
3093<a href="https://www.trefl.com/rodzina-treflikow/puzzle"
3094    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3095                        "
3096>
3097    Puzzle Rodzina Treflików</a>
3098</li><li class="level2">
3099<a href="https://www.trefl.com/rodzina-treflikow/gry"
3100    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3101                        "
3102>
3103    Gry Rodzina Treflików</a>
3104</li><li class="level2">
3105<a href="https://www.trefl.com/rodzina-treflikow/zabawki"
3106    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3107                        "
3108>
3109    Zabawki Rodzina Treflików</a>
3110</li><li class="level2">
3111<a href="https://www.trefl.com/rodzina-treflikow/ksiazki"
3112    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3113                        "
3114>
3115    Książki Rodzina Treflików</a>
3116</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">
3117<a href="https://www.trefl.com/prezenty"
3118    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3119        menu-mobile-parent-link                "
3120>
3121    Prezenty</a>
3122<button type="button"
3123                              @click="closeSubmenu('menu-57')"
3124                              class="w-10 h-10 flex items-center justify-center"
3125                ><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>
3126</button></div><div class="border-b border-gray parent-heading" data-level="2">
3127    <button @click.prevent="closeSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3128        <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>
3129    </button>
3130<a href="https://www.trefl.com/prezenty"
3131    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3132                is-parent        "
3133>
3134    Prezenty</a>
3135    <button @click.prevent="openSubmenu('menu-57')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3136        <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 
31360 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>
3137    </button>
3138</div><ul class="level2"><li class="level2">
3139    <button @click.prevent="closeSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3140        <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>
3141    </button>
3142<a href="https://www.trefl.com/prezenty/dla-dzieci"
3143    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3144                is-parent        "
3145>
3146    Prezenty dla dzieci</a>
3147    <button @click.prevent="openSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3148        <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 
31480 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>
3149    </button>
3150</li><li class="level2">
3151<a href="https://www.trefl.com/prezenty/swiateczne"
3152    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3153                        "
3154>
3155    Prezenty świąteczne</a>
3156</li><li class="level2">
3157<a href="https://www.trefl.com/prezenty/urodzinowe"
3158    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3159                        "
3160>
3161    Prezenty urodzinowe</a>
3162</li><li class="level2">
3163<a href="https://www.trefl.com/prezenty/rodzinne"
3164    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3165                        "
3166>
3167    Prezenty rodzinne</a>
3168</li><li class="level2">
3169<a href="https://www.trefl.com/prezenty/wielkanocne-i-wiosenne"
3170    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3171                        "
3172>
3173    Prezenty wielkanocne i wiosenne</a>
3174</li><li class="level2">
3175<a href="https://www.trefl.com/prezenty/gry-planszowe-na-prezent"
3176    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3177                        "
3178>
3179    Gry planszowe na prezent</a>
3180</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">
3181<a href="https://www.trefl.com/prezenty/dla-dzieci"
3182    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3183        menu-mobile-parent-link                "
3184>
3185    Prezenty dla dzieci</a>
3186<button type="button"
3187                              @click="closeSubmenu('menu-483')"
3188                              class="w-10 h-10 flex items-center justify-center"
3189                ><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>
3190</button></div><div class="border-b border-gray parent-heading" data-level="3">
3191    <button @click.prevent="closeSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3192        <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>
3193    </button>
3194<a href="https://www.trefl.com/prezenty/dla-dzieci"
3195    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3196                is-parent        "
3197>
3198    Prezenty dla dzieci</a>
3199    <button @click.prevent="openSubmenu('menu-483')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3200        <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 
32000 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>
3201    </button>
3202</div><ul class="level3"><li class="level3">
3203<a href="https://www.trefl.com/prezenty/dla-dzieci/0-2-lata"
3204    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3205                        "
3206>
3207    Prezenty dla dzieci 0-2 lata</a>
3208</li><li class="level3">
3209<a href="https://www.trefl.com/prezenty/dla-dzieci/3-5-lat"
3210    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3211                        "
3212>
3213    Prezenty dla dzieci 3-5 lat</a>
3214</li><li class="level3">
3215<a href="https://www.trefl.com/prezenty/dla-dzieci/6-8-lat"
3216    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3217                        "
3218>
3219    Prezenty dla dzieci 6-8 lat</a>
3220</li><li class="level3">
3221<a href="https://www.trefl.com/prezenty/dla-dzieci/9-12-lat"
3222    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3223                        "
3224>
3225    Prezenty dla dzieci 9-12 lat</a>
3226</li><li class="level3">
3227<a href="https://www.trefl.com/prezenty/dla-dzieci/13-lat-i-dorosli"
3228    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3229                        "
3230>
3231    Prezenty dla dzieci 13+ i dorosłych</a>
3232</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">
3233<a href="https://www.trefl.com/promocje"
3234    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3235        menu-mobile-parent-link                "
3236>
3237    Promocje</a>
3238<button type="button"
3239                              @click="closeSubmenu('menu-58')"
3240                              class="w-10 h-10 flex items-center justify-center"
3241                ><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>
3242</button></div><div class="border-b border-gray parent-heading" data-level="2">
3243    <button @click.prevent="closeSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3244        <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>
3245    </button>
3246<a href="https://www.trefl.com/promocje"
3247    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3248                is-parent        "
3249>
3250    Promocje</a>
3251    <button @click.prevent="openSubmenu('menu-58')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3252        <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 
32520 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>
3253    </button>
3254</div><ul class="level2"><li class="level2">
3255<a href="https://www.trefl.com/promocje/puzzle"
3256    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3257                        "
3258>
3259    Puzzle w promocji</a>
3260</li><li class="level2">
3261<a href="https://www.trefl.com/promocje/gry"
3262    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3263                        "
3264>
3265    Gry w promocji</a>
3266</li><li class="level2">
3267<a href="https://www.trefl.com/promocje/zabawki"
3268    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3269                        "
3270>
3271    Zabawki w promocji</a>
3272</li><li class="level2">
3273<a href="https://www.trefl.com/promocje/ksiazki"
3274    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3275                        "
3276>
3277    Książki w promocji</a>
3278</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">
3279<a href="https://www.trefl.com/marki"
3280    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3281        menu-mobile-parent-link                "
3282>
3283    Marki i licencje</a>
3284<button type="button"
3285                              @click="closeSubmenu('menu-542')"
3286                              class="w-10 h-10 flex items-center justify-center"
3287                ><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>
3288</button></div><div class="border-b border-gray parent-heading" data-level="2">
3289    <button @click.prevent="closeSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3290        <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>
3291    </button>
3292<a href="https://www.trefl.com/marki"
3293    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3294                is-parent        "
3295>
3296    Marki i licencje</a>
3297    <button @click.prevent="openSubmenu('menu-542')" class="text-black outline-none active:bg-gray-light aspect-square flex size-10 items-center justify-center">
3298        <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 
32980 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>
3299    </button>
3300</div><ul class="level2"><li class="level2">
3301<a href="https://www.trefl.com/marki/avengers"
3302    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3303                        "
3304>
3305    Avengers</a>
3306</li><li class="level2">
3307<a href="https://www.trefl.com/marki/barbie"
3308    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3309                        "
3310>
3311    Barbie</a>
3312</li><li class="level2">
3313<a href="https://www.trefl.com/marki/cars"
3314    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3315                        "
3316>
3317    Cars</a>
3318</li><li class="level2">
3319<a href="https://www.trefl.com/marki/disney"
3320    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3321                        "
3322>
3323    Disney</a>
3324</li><li class="level2">
3325<a href="https://www.trefl.com/marki/garfield"
3326    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3327                        "
3328>
3329    Garfield</a>
3330</li><li class="level2">
3331<a href="https://www.trefl.com/marki/harry-potter"
3332    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3333                        "
3334>
3335    Harry Potter</a>
3336</li><li class="level2">
3337<a href="https://www.trefl.com/marki/hello-kitty"
3338    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3339                        "
3340>
3341    Hello Kitty</a>
3342</li><li class="level2">
3343<a href="https://www.trefl.com/marki/koci-domek-gabi"
3344    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3345                        "
3346>
3347    Koci Domek Gabi</a>
3348</li><li class="level2">
3349<a href="https://www.trefl.com/marki/koci-domek-gabi"
3350    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3351                        "
3352>
3353    Kraina Lodu (Frozen)</a>
3354</li><li class="level2">
3355<a href="https://www.trefl.com/marki/lilo-stitch"
3356    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3357                        "
3358>
3359    Lilo &amp; Stitch</a>
3360</li><li class="level2">
3361<a href="https://www.trefl.com/marki/minionki"
3362    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3363                        "
3364>
3365    Minionki</a>
3366</li><li class="level2">
3367<a href="https://www.trefl.com/marki/myszka-mickey"
3368    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3369                        "
3370>
3371    Myszka Mickey</a>
3372</li><li class="level2">
3373<a href="https://www.trefl.com/marki/psi-patrol"
3374    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3375                        "
3376>
3377    Psi Patrol</a>
3378</li><li class="level2">
3379<a href="https://www.trefl.com/marki/pusheen"
3380    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3381                        "
3382>
3383    Pusheen</a>
3384</li><li class="level2">
3385<a href="https://www.trefl.com/marki/rick-i-morty"
3386    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3387                        "
3388>
3389    Rick i Morty</a>
3390</li><li class="level2">
3391<a href="https://www.trefl.com/marki/smerfy"
3392    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3393                        "
3394>
3395    Smerfy</a>
3396</li><li class="level2">
3397<a href="https://www.trefl.com/marki/diplodok"
3398    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3399                        "
3400>
3401    Smok Diplodok</a>
3402</li><li class="level2">
3403<a href="https://www.trefl.com/marki/spidey"
3404    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3405                        "
3406>
3407    Spidey</a>
3408</li><li class="level2">
3409<a href="https://www.trefl.com/marki/spongebob-kanciastoporty"
3410    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3411                        "
3412>
3413    SpongeBob Kanciastoporty</a>
3414</li><li class="level2">
3415<a href="https://www.trefl.com/marki/star-wars"
3416    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3417                        "
3418>
3419    Star Wars</a>
3420</li><li class="level2">
3421<a href="https://www.trefl.com/marki/strazak-sam"
3422    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3423                        "
3424>
3425    Strażak Sam</a>
3426</li><li class="level2">
3427<a href="https://www.trefl.com/marki/swinka-peppa"
3428    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3429                        "
3430>
3431    Świnka Peppa</a>
3432</li><li class="level2">
3433<a href="https://www.trefl.com/marki/tomek-i-przyjaciele"
3434    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3435                        "
3436>
3437    Tomek i Przyjaciele</a>
3438</li><li class="level2">
3439<a href="https://www.trefl.com/marki/w-glowie-sie-nie-miesci-2"
3440    class="cursor-pointer snowdog-menu-link-topmenu-mobile
3441                        "
3442>
3443    W głowie się nie mieści</a>
3444</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">
3445<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
3446        menu-mobile-parent-link        "
3447            @click.prevent="openSubmenu('menu-273')"
3448    >
3449    Gry wirtualne</button>
3450<button type="button"
3451                              @click="closeSubmenu('menu-273')"
3452                              class="w-10 h-10 flex items-center justify-center"
3453                ><svg xmlns="http://www.w3.org/2000/svg" width="6" height="10" viewB
3453ox="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>
3454</button></div><div class="border-b border-gray parent-heading" data-level="2">
3455<button class="cursor-pointer snowdog-menu-link-topmenu-mobile
3456                "
3457            @click.prevent="openSubmenu('menu-273')"
3458    >
3459    Gry wirtualne</button>
3460</div><ul class="level2"><li class="level2">
3461    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3462        href="https://www.roblox.com/pl/games/86253893074445/Treflandia-Wielka-Przygoda-Pomagaj-zwierz-tom"
3463                    target="_blank"
3464            rel="noopener"
3465                data-menu="menu-274"    >
3466        Treflandia na Roblox    </a>
3467</li><li class="level2">
3468    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3469        href="https://www.nintendo.com/us/search/#cat=gme&amp;f=softwarePublisher&amp;softwarePublisher=Trefl%20S.A"
3470                    target="_blank"
3471            rel="noopener"
3472                data-menu="menu-275"    >
3473        Gry na Nintendo    </a>
3474</li><li class="level2">
3475    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3476        href="https://store.steampowered.com/app/2606190/Spy_Guy_Hidden_Objects_Deluxe_Edition/?beta=1"
3477                    target="_blank"
3478            rel="noopener"
3479                data-menu="menu-276"    >
3480        Gry na PC (Steam)    </a>
3481</li><li class="level2">
3482    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3483        href="https://apps.apple.com/pl/developer/trefl-sa/id896381365?l=pl"
3484                    target="_blank"
3485            rel="noopener"
3486                data-menu="menu-277"    >
3487        Gry mobilne (Apple)    </a>
3488</li><li class="level2">
3489    <a class="cursor-pointer snowdog-menu-link-topmenu-mobile "
3490        href="https://play.google.com/store/apps/dev?id=4662821842287727686&amp;hl=pl"
3491                    target="_blank"
3492            rel="noopener"
3493                data-menu="menu-278"    >
3494        Gry mobilne (Android)    </a>
3495</li></ul></div>            </div>
3496        </div>
3497    </nav>
3498
3499    <!--Cart Drawer-->
3500    
3500<script>
3501    function initCartDrawer() {
3502        return {
3503            open: false,
3504            isLoading: false,
3505            cart: {},
3506            maxItemsToDisplay: 10,
3507            itemsCount: 0,
3508            getData(data) {
3509                if (data.cart) {
3510                    this.cart = data.cart;
3511                    this.itemsCount = data.cart.items && data.cart.items.length || 0;
3512                    this.setCartItems();
3513                }
3514                this.isLoading = false;
3515            },
3516            cartItems: [],
3517            getItemCountTitle() {
3518                return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount)
3519            },
3520            setCartItems() {
3521                this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || [];
3522
3523                if (this.maxItemsToDisplay > 0) {
3524                    this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10));
3525                }
3526            },
3527            formatOptionValue(value) {
3528                if (!Array.isArray(value)) {
3529                    return value;
3530                }
3531                return value
3532                    .map(line => line.replace('<span class="price"', '- <span class="price"'))
3533                    .join('<br>');
3534            },
3535            deleteItemFromCart(itemId) {
3536                this.isLoading = true;
3537
3538                const formKey = hyva.getFormKey();
3539                const postUrl = BASE_URL + 'checkout/sidebar/removeItem/';
3540
3541                fetch(postUrl, {
3542                    "headers": {
3543                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
3544                    },
3545                    "body": "form_key=" + formKey + "&item_id=" + itemId,
3546                    "method": "POST",
3547                    "mode": "cors",
3548                    "credentials": "include"
3549                }).then(response => {
3550                    if (response.redirected) {
3551                        window.location.href = response.url;
3552                    } else if (response.ok) {
3553                        return response.json();
3554                    } else {
3555                        window.dispatchMessages && window.dispatchMessages([{
3556                            type: 'warning',
3557                            text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.'
3558                        }]);
3559                        this.isLoading = false;
3560                    }
3561                }).then(result => {
3562                    window.dispatchMessages && window.dispatchMessages([{
3563                        type: result.success ? 'success' : 'error',
3564                        text: result.success
3565                            ? 'Usuni\u0119to\u0020element.'
3566                            : result.error_message
3567                    }], result.success ? 5000 : 0)
3568                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
3569                });
3570            },
3571            scrollLock(use = true) {
3572                document.body.style.overflow = use ? "hidden" : "";
3573            },
3574            toggleCartDrawer(event) {
3575                if (event.detail && event.detail.isOpen !== undefined) {
3576                    if (event.detail.isOpen) {
3577                        this.openCartDrawer();
3578                    } else {
3579                        this.open = false;
3580                        this.scrollLock(false);
3581                        this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent);
3582                    }
3583                } else {
3584                                        this.openCartDrawer()
3585                }
3586            },
3587            openCartDrawer() {
3588                this.open = true;
3589                this.scrollLock(true);
3590                this.$nextTick(() => {
3591                    this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent)
3592                })
3593            },
3594            closeCartDrawer() {
3595                this.$dispatch('toggle-cart', { isOpen: false })
3596            },
3597            getSectionDataExtraActions() {
3598                if (!this.cart.extra_actions) {
3599                    return '';
3600                }
3601
3602                const contentNode = document.createElement('div');
3603                contentNode.innerHTML = this.cart.extra_actions;
3604
3605                hyva.activateScripts(contentNode);
3606
3607                return contentNode.innerHTML;
3608            }
3609        }
3610    }
3611</script>
3611
3612<section x-cloak
3613         x-show="cart"
3614         id="cart-drawer"
3615         x-data="initCartDrawer()"
3616         @private-content-loaded.window="getData($event.detail.data)"
3617         @toggle-cart.window="toggleCartDrawer($event)"
3618         @keydown.escape="closeCartDrawer"
3619>
3620    <div role="dialog"
3621         aria-labelledby="cart-drawer-title"
3622         aria-modal="true"
3623         :aria-hidden="!open"
3624         class="fixed inset-y-0 right-0 z-30 flex max-w-full">
3625        <div class="backdrop"
3626             x-show="open"
3627             x-transition:enter="ease-in-out duration-500"
3628             x-transition:enter-start="opacity-0"
3629             x-transition:enter-end="opacity-100"
3630             x-transition:leave="ease-in-out duration-500"
3631             x-transition:leave-start="opacity-100"
3632             x-transition:leave-end="opacity-0"
3633             role="button"
3634             @click="closeCartDrawer"
3635             aria-label="Zamknij&#x20;koszyk"></div>
3636        <div class="relative w-screen max-w-md shadow-2xl"
3637             x-show="open"
3638             x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
3639             x-transition:enter-start="translate-x-full"
3640             x-transition:enter-end="translate-x-0"
3641             x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
3642             x-transition:leave-start="translate-x-0"
3643             x-transition:leave-end="translate-x-full"
3644             x-ref="cartDialogContent"
3645             role="region"
3646             :tabindex="open ? 0 : -1"
3647             aria-label="M&#xF3;j&#x20;koszyk"
3648
3649        >
3650            <div class="flex flex-col h-full max-h-screen bg-white shadow-xl">
3651                
3652                <header class="relative px-4 py-6 sm:px-6">
3653                    <p id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
3654                        <strong>Mój koszyk</strong>
3655                        <span class="items-total text-xs"
3656                              x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount"
3657                              x-text="getItemCountTitle()">
3658                        </span>
3659                    </p>
3660                </header>
3661
3662                
3663                <template x-if="!itemsCount">
3664                    <div class="relative px-4 py-6 bg-white border-bs sm:px-6 border-container">
3665                        Koszyk jest pusty                    </div>
3666                </template>
3667
3668                <template x-if="itemsCount">
3669                    <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">
3670                        <template x-for="item in cartItems">
3671                            <div class="product-item flex items-start p-3 space-x-4">
3672                                <a :href="item.product_url"
3673                                   class="w-1/4"
3674                                   :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)"
3675                                >
3676                                    <img
3677                                        :src="item.product_image.src"
3678                                        :width="item.product_image.width"
3679                                        :height="item.product_image.height"
3680                                        loading="lazy"
3681                                        alt=""
3682                                    />
3683                                </a>
3684                                <div class="w-3/4 space-y-2">
3685                                    <div>
3686                                        <p class="text-xl">
3687                                            <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
3688                                        </p>
3689                                    </div>
3690                                    <template x-for="option in item.options">
3691                                        <template x-if="option.label !== 'clientDesignId'">
3692                                            <div class="text-sm">
3693                                                <p class="font-semibold" x-text="option.label + ':'"></p>
3694                                                <p class="text-secondary" x-html="formatOptionValue(option.value)"></p>
3695                                            </div>
3696                                        </template>
3697                                    </template>
3698                                    <div class="price-container">
3699                                        <template x-if="item.is_discount">
3700                                            <div class="price-box price-final_price">
3701                                                <span class="old-price price" x-html="item.original_price"></span>
3702                                                <span class="special-price price" x-html="item.price_incl_discount"></span>
3703                                            </div>
3704                                        </template>
3705                                        <template x-if="!item.is_discount">
3706                                            <span class="price" x-html="item.product_price"></span>
3707                                        </template>
3708                                    </div>
3709                                    <div>
3710                                        <a :href="item.configure_url"
3711                                           x-show="item.product_type !== 'grouped' && item.is_visible_in_site_visibility && item?.options?.some(option => option.label !== 'clientDesignId')"
3712                                           class="inline-flex p-2 mr-2 btn btn-secondary"
3713                                           :aria-label="hyva.strf('Edit\u0020product\u0020\u0022\u00250\u0022', item.product_name)"
3714                                        >
3715                                            <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">
3716  <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"/>
3717</svg>
3718                                        </a>
3719                                        <button type="button"
3720                                                class="inline-flex p-2 btn btn-secondary"
3721                                                @click="deleteItemFromCart(item.item_id)"
3722                                                :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)"
3723                                        >
3724                                            <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">
3725  <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"/>
3726</svg>
3727                                        </button>
3728                                    </div>
3729
3730                                </div>
3731                            </div>
3732                        </template>
3733                    </div>
3734                </template>
3735
3736                <template x-if="itemsCount">
3737                    <div>
3738                        
3739                        <div class="relative grid gap-4 py-3 px-1 sm:px-3 bg-white">
3740                            <div class="w-full p-3 space-x-4">
3741                                <p class="text-lg">Łącznie:
3742                                    <strong x-html="cart.subtotal" class="font-semibold"></strong>
3743                                </p>
3744                            </div>
3745                            <div class="w-full p-3 pt-0 flex">
3746                                <a href="https://www.trefl.com/checkout/cart/"
3747                                   class="btn btn-primary">
3748                                    Przejdź do koszyka                                </a>
3749                            </div>
3750                            <div x-html="getSectionDataExtraActions()"></div>
3751                                                    </div>
3752                    </div>
3753                </template>
3754
3755                            </div>
3756
3757            <button
3758                type="button"
3759                @click="closeCartDrawer"
3760                aria-label="Zamknij&#x20;koszyk"
3761                class="absolute top-0 right-2 p-4 mt-2 text-gray-300 transition-colors hover:text-black"
3762            >
3763                <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">
3764  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
3765</svg>
3766            </button>
3767        </div>
3768        <div
3769    class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800"
3770    x-cloak
3771    x-show="isLoading"
3772    x-transition.opacity.duration.200ms
3773>
3774    <div class="flex gap-10 items-center p-4">
3775        <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">
3776    <style>
3777        @keyframes spinner-ball-triangle1 {
3778            0% { transform: translate(0%, 0%); }
3779            33% { transform: translate(38%, -79%); }
3780            66% { transform: translate(77%, 0%); }
3781            100% { transform: translate(0%, 0%); }
3782        }
3783
3784        @keyframes spinner-ball-triangle2 {
3785            0% { transform: translate(0%, 0%); }
3786            33% { transform: translate(38%, 79%); }
3787            66% { transform: translate(-38%, 79%); }
3788            100% { transform: translate(0%, 0%); }
3789        }
3790
3791        @keyframes spinner-ball-triangle3 {
3792            0% { transform: translate(0%, 0%); }
3793            33% { transform: translate(-77%, 0%); }
3794            66% { transform: translate(-38%, -79%); }
3795            100% { transform: translate(0%, 0%); }
3796        }
3797    </style>
3798    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
3799    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
3800    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
3801</svg>
3802        <span class="text-xl select-none">
3803            Ładuję...        </span>
3804    </div>
3805</div>
3806    </div>
3807
3808</section>
3809
3810    <!--Authentication Pop-Up-->
3811    
3811<script>
3812    function initAuthentication() {
3813        return {
3814            open: false,
3815            close() {
3816                this.open = false;
3817            },
3818            forceAuthentication: false,
3819            checkoutUrl: 'https://www.trefl.com/checkout/index/',
3820            errors: 0,
3821            hasCaptchaToken: 0,
3822            displayErrorMessage: false,
3823            errorMessages: [],
3824            setErrorMessages(message) {
3825                this.errorMessages = [message];
3826                this.displayErrorMessage = true;
3827            },
3828            submitForm() {
3829                // Do not rename $form, the variable is expected to be declared in the recaptcha output
3830                const $form = document.querySelector('#login-form');
3831                
3832                if (this.errors === 0) {
3833                    this.dispatchLoginRequest($form);
3834                }
3835            },
3836            onPrivateContentLoaded() {
3837                const data = this.$event.detail.data;
3838                const isLoggedIn = data.customer && data.customer.firstname;
3839                if (data.cart && !isLoggedIn) {
3840                    this.forceAuthentication = !data.cart.isGuestCheckoutAllowed;
3841                }
3842            },
3843            redirectIfAuthenticated() {
3844                const event = this.$event;
3845                this.open = this.forceAuthentication;
3846
3847                if (event.detail && event.detail.url) {
3848                    this.checkoutUrl = event.detail.url;
3849                }
3850                if (!this.forceAuthentication) {
3851                    window.location.href = this.checkoutUrl;
3852                }
3853            },
3854            resetErrors() {
3855                this.errors = 0;
3856            },
3857            dispatchLoginRequest(form) {
3858                this.isLoading = true;
3859                const username = this.$refs['customer-email'].value;
3860                const password = this.$refs['customer-password'].value;
3861                const formKey = hyva.getFormKey();
3862                const bodyFields = {
3863                    'username': username,
3864                    'password': password,
3865                    'formKey': formKey
3866                };
3867                                const fieldName = 'g\u002Drecaptcha\u002Dresponse';
3868                const recaptchaField = fieldName && form[fieldName];
3869                if (recaptchaField) {
3870                    bodyFields[fieldName] = recaptchaField.value;
3871                }
3872                fetch('https://www.trefl.com/customer/ajax/login/', {
3873                        method: 'POST',
3874                        headers: {
3875                            'Content-Type': 'application/json',
3876                            'X-Requested-With': 'XMLHttpRequest'
3877                        },
3878                        body: JSON.stringify(bodyFields)
3879                    }
3880                ).then(response => {
3881                        return response.json()
3882                    }
3883                ).then(data => {
3884                    this.isLoading = false;
3885                    if (data.errors) {
3886                        this.setErrorMessages(data.message);
3887                        this.errors = 1;
3888                        this.hasCaptchaToken = 0;
3889                    } else {
3890                        window.location.href = this.checkoutUrl;
3891                    }
3892                });
3893            }
3894        }
3895    }
3896
3897    window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true})
3898</script>
3898
3899<section id="authentication-popup"
3900         x-data="initAuthentication"
3901         @private-content-loaded.window="onPrivateContentLoaded"
3902         @toggle-authentication.window="redirectIfAuthenticated"
3903         @keydown.window.escape="close"
3904>
3905    <div
3906        class="backdrop"
3907        aria-hidden="true"
3908        x-cloak
3909        x-show="open"
3910        x-transition:enter="ease-in-out duration-500"
3911        x-transition:enter-start="opacity-0"
3912        x-transition:enter-end="opacity-100"
3913        x-transition:leave="ease-in-out duration-500"
3914        x-transition:leave-start="opacity-100"
3915        x-transition:leave-end="opacity-0"
3916        @click="close"
3917    ></div>
3918    <div role="dialog"
3919         aria-modal="true"
3920         @click.outside="close"
3921         class="inset-y-0 right-0 z-30 flex max-w-full fixed"
3922         x-cloak
3923         x-show="open"
3924    >
3925        <div class="relative w-screen max-w-md pt-16 bg-container-lighter"
3926             x-show="open"
3927             x-cloak
3928             x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
3929             x-transition:enter-start="translate-x-full"
3930             x-transition:enter-end="translate-x-0"
3931             x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
3932             x-transition:leave-start="translate-x-0"
3933             x-transition:leave-end="translate-x-full"
3934        >
3935            <div
3936                x-show="open"
3937                x-cloak
3938                x-transition:enter="ease-in-out duration-500"
3939                x-transition:enter-start="opacity-0"
3940                x-transition:enter-end="opacity-100"
3941                x-transition:leave="ease-in-out duration-500"
3942                x-transition:leave-start="opacity-100"
3943                x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2">
3944                <button
3945                    type="button"
3946                    @click="close"
3947                    aria-label="Close&#x20;panel"
3948                    class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black"
3949                >
3950                    <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">
3951  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
3952</svg>
3953                </button>
3954            </div>
3955            <template x-if="open">
3956                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto">
3957                    <div class="mx-4">
3958                        <div class="message error mb-0" x-show="errors" x-cloak>
3959                            <template x-for="(message, index) in errorMessages" :key="index">
3960                                <div>
3961                                    <template x-if="message">
3962                                        <span x-html="message"></span>
3963                                    </template>
3964                                </div>
3965                            </template>
3966                        </div>
3967                    </div>
3968                    <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm">
3969                        <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900">
3970                            <strong class="font-medium">Checkout using your account</strong>
3971                        </p>
3972
3973                        <form class="form form-login"
3974                              method="post"
3975                              @submit.prevent="submitForm"
3976                              id="login-form"
3977                        >
3978                                                        <div class="fieldset login">
3979                                <div class="field email required">
3980                                    <label class="label" for="form-login-username" form="login-form" >
3981                                        <span>Adres e-mail</span>
3982                                    </label>
3983                                    <div class="control">
3984                                        <input name="username"
3985                                               id="form-login-username"
3986                                               x-ref="customer-email"
3987                                               @change="resetErrors"
3988                                               type="email"
3989                                               required
3990                                               autocomplete="off"
3991                                               class="form-input"
3992                                        >
3993                                    </div>
3994                                </div>
3995                                <div class="field password required">
3996                                    <label for="form-login-password" class="label" form="login-form">
3997                                        <span>Hasło</span>
3998                                    </label>
3999                                    <div class="control">
4000                                        <input name="password"
4001                                               id="form-login-password"
4002                                               type="password"
4003                                               class="form-input"
4004                                               required
4005                                               x-ref="customer-password"
4006                                               autocomplete="off"
4007                                               @change="resetErrors"
4008                                        >
4009                                    </div>
4010                                </div>
4011
4012                                <input name="context" type="hidden" value="checkout" />
4013                                <div class="actions-toolbar pt-6 pb-2">
4014                                    <button type="submit"                                            class="inline-flex btn btn-primary disabled:opacity-75"
4015                                    >
4016                                        Zaloguj się                                    </button>
4017                                    <a href="https://www.trefl.com/customer/account/forgotpassword/"
4018                                    >
4019                                        Zapomniałeś hasła?                                    </a>
4020                                </div>
4021
4022                            </div>
4023                        </form>
4024                    </div>
4025                    <div class="mx-4">
4026                                            </div>
4027                    <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm">
4028                        <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900">
4029                            <strong class="font-medium">Checkout as a new customer</strong>
4030                        </p>
4031
4032                        <div class="block-content">
4033                            <p class="mb-1">
4034                                Stworzenie konta ma wiele korzyści:                            </p>
4035                            <ul class="list-disc pl-5">
4036                                <li> Zobacz zamówienie i stan wysyłki</li>
4037                                <li> Śledzenie historii zamówień</li>
4038                                <li> Zamawiaj szybciej</li>
4039                            </ul>
4040                            <div class="actions-toolbar mt-6 mb-2">
4041                                <a href="https://www.trefl.com/customer/account/create/"
4042                                   class="inline-flex btn btn-primary">
4043                                    Utwórz konto                                </a>
4044                            </div>
4045                        </div>
4046                    </div>
4047                </div>
4048            </template>
4049        </div>
4050    </div>
4051</section>
4052</div>
4053
4054
4055    
4055<script>
4056        'use strict';
4057
4058        const initTopmenuDesktop_6ab45a3cd87f7 = () => ({
4059            openSubmenuId: null,
4060            toggleSubmenu(menuNode, state, $event) {
4061                if (state === true) {
4062                    this.openSubmenuId = menuNode;
4063                    this.focusFirstLinkInSubmenu(menuNode, $event);
4064                } else if (state === false) {
4065                    this.openSubmenuId = null;
4066                } else {
4067                    if (this.openSubmenuId === menuNode) {
4068                        this.openSubmenuId = null;
4069                    } else {
4070                        this.openSubmenuId = menuNode;
4071                        this.focusFirstLinkInSubmenu(menuNode, $event);
4072                    }
4073                }
4074
4075                if ($event.code === 'Escape') {
4076                    setTimeout(() => {
4077                        const parentEl = $event.target?.closest('.menu-desktop-item-wrap')?.querySelector('a');
4078                        console.log(parentEl)
4079                        if (parentEl) {
4080                            parentEl.focus();
4081                        }
4082                    }, 100);
4083                }
4084            },
4085            focusFirstLinkInSubmenu(menuNode, $event) {
4086                if ($event.code === 'Enter' || $event.code === 'Space') {
4087                    const submenu = this.$refs[`submenu-${menuNode}`];
4088                    if (submenu) {
4089                        const firstLink = submenu.querySelector('a');
4090                        if (firstLink) {
4091                            setTimeout(() => firstLink.focus(), 100);
4092                        }
4093                    }
4094                }
4095            },
4096            stickyObserver(navigationEl) {
4097                const headerEl = document.querySelector('header.page-header');
4098                new IntersectionObserver(
4099                    ([e]) => {
4100                        headerEl.classList.toggle('contents', e.intersectionRatio < 1)
4101                        navigationEl.classList.toggle('shadow-md', e.intersectionRatio < 1)
4102                    },
4103                    { threshold: [1] }
4104                ).observe(navigationEl);
4105            }
4106        })
4107    </script>
4107
4108
4109        <div x-data="initTopmenuDesktop_6ab45a3cd87f7()"
4110         x-init="stickyObserver($el)"
4111         class="            navigation hidden w-full lg:block sticky -top-px bg-white z-20 transition-shadow">
4112        <div class="overflow-x-hidden">
4113            <nav
4114                class="snowdog-topmenu-desktop menu-desktop container lg:flex justify-between items-center"
4115                aria-label="Menu&#x20;g&#x0142;&#xF3;wne"
4116            >
4117                <ul
4118                    class="flex gap-x-4"
4119                    @mouseleave="openSubmenuId = null"
4120                    role="menubar"
4121                >
4122                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4123                                    "
4124                                                            @mouseenter="toggleSubmenu('4', null, $event)"
4125                                @keydown.enter.prevent="toggleSubmenu('4', null, $event)"
4126                                @keydown.space.prevent="toggleSubmenu('4', null, $event)"
4127                                @keydown.escape.prevent="toggleSubmenu('4', false, $event)"
4128                                aria-haspopup="true"
4129                                :aria-expanded="openSubmenuId === '4'"
4130                                :tabindex="openSubmenuId === '4' ? 0 : -1"
4131                                                        role="menuitem"
4132                            >
4133                            <div class="menu-desktop-item-wrap relative flex items-center">
4134                                
4135<a href="https://www.trefl.com/puzzle"
4136    class="snowdog-menu-link "
4137            data-menu="menu-4"
4138    >
4139    Puzzle</a>
4140
4141                                                                    <span class="flex items-center justify-center ml-1.5" aria-hidden="true">
4142                                        <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>
4143                                    </span>
4144                                                            </div>
4145
4146                                                                            <div
4147            x-ref="submenu-4"
4148            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4149            x-show="openSubmenuId === '4'"
4150            x-cloak
4151        >
4152            <div class="container h-full">
4153                    <ul
4154                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4155                    title="Submenu for Puzzle"
4156                >
4157                                                                    <li
4158                            class="menu-desktop-item menu-desktop-item--level2 "
4159                        >
4160                            
4161<a href="https://www.trefl.com/puzzle/dla-dzieci"
4162    class="snowdog-menu-link "
4163            data-menu="menu-359"
4164    >
4165    Puzzle dla dzieci</a>
4166                                                    </li>
4167
4168                                                                                            <li
4169                            class="menu-desktop-item menu-desktop-item--level2 "
4170                        >
4171                            
4172<a href="https://www.trefl.com/puzzle/dla-doroslych"
4173    class="snowdog-menu-link "
4174            data-menu="menu-6"
4175    >
4176    Puzzle dla dorosłych</a>
4177                                                    </li>
4178
4179                                                                                            <li
4180                            class="menu-desktop-item menu-desktop-item--level2 "
4181                        >
4182                            
4183<a href="https://www.trefl.com/puzzle/500-elementow"
4184    class="snowdog-menu-link "
4185            data-menu="menu-217"
4186    >
4187    Puzzle 500 elementów</a>
4188                                                    </li>
4189
4190                                                                                            <li
4191                            class="menu-desktop-item menu-desktop-item--level2 "
4192                        >
4193                            
4194<a href="https://www.trefl.com/puzzle/1000-elementow"
4195    class="snowdog-menu-link "
4196            data-menu="menu-218"
4197    >
4198    Puzzle 1000 elementów</a>
4199                                                    </li>
4200
4201                                                                                            <li
4202                            class="menu-desktop-item menu-desktop-item--level2 "
4203                        >
4204                            
4205<a href="https://www.trefl.com/puzzle/1500-elementow"
4206    class="snowdog-menu-link "
4207            data-menu="menu-219"
4208    >
4209    Puzzle 1500 elementów</a>
4210                                                    </li>
4211
4212                                                                                            <li
4213                            class="menu-desktop-item menu-desktop-item--level2 "
4214                        >
4215                            
4216<a href="https://www.trefl.com/puzzle/2000-elementow"
4217    class="snowdog-menu-link "
4218            data-menu="menu-220"
4219    >
4220    Puzzle 2000 elementów</a>
4221                                                    </li>
4222
4223                                                                                            <li
4224                            class="menu-desktop-item menu-desktop-item--level2 "
4225                        >
4226                            
4227<a href="https://www.trefl.com/puzzle/3000-elementow"
4228    class="snowdog-menu-link "
4229            data-menu="menu-221"
4230    >
4231    Puzzle 3000 elementów</a>
4232                                                    </li>
4233
4234                                                                                            <li
4235                            class="menu-desktop-item menu-desktop-item--level2 "
4236                        >
4237                            
4238<a href="https://www.trefl.com/puzzle/4000-elementow"
4239    class="snowdog-menu-link "
4240            data-menu="menu-222"
4241    >
4242    Puzzle 4000 elementów</a>
4243                                                    </li>
4244
4245                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4246                                                                                            <li
4247                            class="menu-desktop-item menu-desktop-item--level2 "
4248                        >
4249                            
4250<a href="https://www.trefl.com/puzzle/6000-elementow"
4251    class="snowdog-menu-link "
4252            data-menu="menu-223"
4253    >
4254    Puzzle 6000 elementów</a>
4255                                                    </li>
4256
4257                                                                                            <li
4258                            class="menu-desktop-item menu-desktop-item--level2 "
4259                        >
4260                            
4261<a href="https://www.trefl.com/puzzle/8000-elementow"
4262    class="snowdog-menu-link "
4263            data-menu="menu-628"
4264    >
4265    Puzzle 8000 elementów</a>
4266                                                    </li>
4267
4268                                                                                            <li
4269                            class="menu-desktop-item menu-desktop-item--level2 "
4270                        >
4271                            
4272<a href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
4273    class="snowdog-menu-link "
4274            data-menu="menu-261"
4275    >
4276    Puzzle 9000 elementów</a>
4277                                                    </li>
4278
4279                                                                                            <li
4280                            class="menu-desktop-item menu-desktop-item--level2 "
4281                        >
4282                            
4283        <a href="https://www.trefl.com/puzzle-premium-plus-quality-10000-el-windows-of-the-seasons-81051"
4284        class="snowdog-menu-link "
4285                    data-menu="menu-630"
4286                        data-menu="menu-630"    >
4287        Puzzle 10 000 elementów    </a>
4288                                                    </li>
4289
4290                                                                                            <li
4291                            class="menu-desktop-item menu-desktop-item--level2 "
4292                        >
4293                            
4294<a href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
4295    class="snowdog-menu-link "
4296            data-menu="menu-262"
4297    >
4298    Puzzle 13 500 elementów</a>
4299                                                    </li>
4300
4301                                                                                            <li
4302                            class="menu-desktop-item menu-desktop-item--level2 "
4303                        >
4304                            
4305        <a href="https://www.trefl.com/puzzle-prime-21000-el-earth-chronicles-from-the-creation-to-the-future-81040"
4306        class="snowdog-menu-link "
4307                    data-menu="menu-263"
4308                        data-menu="menu-263"    >
4309        Puzzle 21 000 elementów    </a>
4310                                                    </li>
4311
4312                                                                                            <li
4313                            class="menu-desktop-item menu-desktop-item--level2 "
4314                        >
4315                            
4316<a href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
4317    class="snowdog-menu-link "
4318            data-menu="menu-224"
4319    >
4320    Puzzle Premium Plus Quality</a>
4321                                                    </li>
4322
4323                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4324                                                                                            <li
4325                            class="menu-desktop-item menu-desktop-item--level2 "
4326                        >
4327                            
4328<a href="https://www.trefl.com/puzzle/drewniane"
4329    class="snowdog-menu-link "
4330            data-menu="menu-235"
4331    >
4332    Puzzle drewniane</a>
4333                                                    </li>
4334
4335                                                                                            <li
4336                            class="menu-desktop-item menu-desktop-item--level2 "
4337                        >
4338                            
4339<a href="https://www.trefl.com/puzzle/puzzle-filmowe"
4340    class="snowdog-menu-link "
4341            data-menu="menu-237"
4342    >
4343    Puzzle filmowe</a>
4344                                                    </li>
4345
4346                                                                                            <li
4347                            class="menu-desktop-item menu-desktop-item--level2 "
4348                        >
4349                            
4350<a href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
4351    class="snowdog-menu-link "
4352            data-menu="menu-5"
4353    >
4354    Puzzle jubileuszowe na 40-lecie</a>
4355                                                    </li>
4356
4357                                                                                            <li
4358                            class="menu-desktop-item menu-desktop-item--level2 "
4359                        >
4360                            
4361<a href="https://www.trefl.com/puzzle/puzzle-kosmos"
4362    class="snowdog-menu-link "
4363            data-menu="menu-238"
4364    >
4365    Puzzle kosmos</a>
4366                                                    </li>
4367
4368                                                                                            <li
4369                            class="menu-desktop-item menu-desktop-item--level2 "
4370                        >
4371                            
4372<a href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
4373    class="snowdog-menu-link "
4374            data-menu="menu-239"
4375    >
4376    Puzzle krajobrazy</a>
4377                                                    </li>
4378
4379                                                                                            <li
4380                            class="menu-desktop-item menu-desktop-item--level2 "
4381                        >
4382                            
4383<a href="https://www.trefl.com/puzzle/puzzle-kulinarne"
4384    class="snowdog-menu-link "
4385            data-menu="menu-240"
4386    >
4387    Puzzle kulinarne</a>
4388                                                    </li>
4389
4390                                                                                            <li
4391                            class="menu-desktop-item menu-desktop-item--level2 "
4392                        >
4393                            
4394<a href="https://www.trefl.com/puzzle/puzzle-mapy"
4395    class="snowdog-menu-link "
4396            data-menu="menu-241"
4397    >
4398    Puzzle mapy</a>
4399                                                    </li>
4400
4401                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4402                                                                                            <li
4403                            class="menu-desktop-item menu-desktop-item--level2 "
4404                        >
4405                            
4406<a href="https://www.trefl.com/puzzle/puzzle-miasta"
4407    class="snowdog-menu-link "
4408            data-menu="menu-242"
4409    >
4410    Puzzle miasta</a>
4411                                                    </li>
4412
4413                                                                                            <li
4414                            class="menu-desktop-item menu-desktop-item--level2 "
4415                        >
4416                            
4417<a href="https://www.trefl.com/puzzle/puzzle-obrazy"
4418    class="snowdog-menu-link "
4419            data-menu="menu-243"
4420    >
4421    Puzzle obrazy</a>
4422                                                    </li>
4423
4424                                                                                            <li
4425                            class="menu-desktop-item menu-desktop-item--level2 "
4426                        >
4427                            
4428<a href="https://www.trefl.com/puzzle/puzzle-panoramiczne"
4429    class="snowdog-menu-link "
4430            data-menu="menu-244"
4431    >
4432    Puzzle panoramiczne</a>
4433                                                    </li>
4434
4435                                                                                            <li
4436                            class="menu-desktop-item menu-desktop-item--level2 "
4437                        >
4438                            
4439<a href="https://www.trefl.com/puzzle/puzzle-samochody"
4440    class="snowdog-menu-link "
4441            data-menu="menu-245"
4442    >
4443    Puzzle samochody</a>
4444                                                    </li>
4445
4446                                                                                            <li
4447                            class="menu-desktop-item menu-desktop-item--level2 "
4448                        >
4449                            
4450<a href="https://www.trefl.com/puzzle/puzzle-swiateczne"
4451    class="snowdog-menu-link "
4452            data-menu="menu-236"
4453    >
4454    Puzzle świąteczne</a>
4455                                                    </li>
4456
4457                                                                                            <li
4458                            class="menu-desktop-item menu-desktop-item--level2 "
4459                        >
4460                            
4461<a href="https://www.trefl.com/puzzle/akcesoria"
4462    class="snowdog-menu-link "
4463            data-menu="menu-8"
4464    >
4465    Akcesoria do puzzli</a>
4466                                                    </li>
4467
4468                                                            </ul>
4469                </div>
4470        </div>
4471                                                        </li>
4472                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4473                                    "
4474                                                            @mouseenter="openSubmenuId = null"
4475                                                        role="menuitem"
4476                            >
4477                            <div class="menu-desktop-item-wrap relative flex items-center">
4478                                
4479<a href="https://www.trefl.com/puzzle/fotopuzzle"
4480    class="snowdog-menu-link "
4481            data-menu="menu-360"
4482    >
4483    Fotopuzzle</a>
4484
4485                                                            </div>
4486
4487                                                    </li>
4488                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4489                                    "
4490                                                            @mouseenter="toggleSubmenu('9', null, $event)"
4491                                @keydown.enter.prevent="toggleSubmenu('9', null, $event)"
4492                                @keydown.space.prevent="toggleSubmenu('9', null, $event)"
4493                                @keydown.escape.prevent="toggleSubmenu('9', false, $event)"
4494                                aria-haspopup="true"
4495                                :aria-expanded="openSubmenuId === '9'"
4496                                :tabindex="openSubmenuId === '9' ? 0 : -1"
4497                                                        role="menuitem"
4498                            >
4499                            <div class="menu-desktop-item-wrap relative flex items-center">
4500                                
4501<a href="https://www.trefl.com/gry"
4502    class="snowdog-menu-link "
4503            data-menu="menu-9"
4504    >
4505    Gry</a>
4506
4507                                                                    <sp
4507an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4508                                        <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>
4509                                    </span>
4510                                                            </div>
4511
4512                                                                            <div
4513            x-ref="submenu-9"
4514            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4515            x-show="openSubmenuId === '9'"
4516            x-cloak
4517        >
4518            <div class="container h-full">
4519                    <ul
4520                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4521                    title="Submenu for Gry"
4522                >
4523                                                                    <li
4524                            class="menu-desktop-item menu-desktop-item--level2 "
4525                        >
4526                            
4527<a href="https://www.trefl.com/gry/dla-dzieci"
4528    class="snowdog-menu-link "
4529            data-menu="menu-10"
4530    >
4531    Gry dla dzieci</a>
4532                                                    </li>
4533
4534                                                                                            <li
4535                            class="menu-desktop-item menu-desktop-item--level2 "
4536                        >
4537                            
4538<a href="https://www.trefl.com/gry/rodzinne"
4539    class="snowdog-menu-link "
4540            data-menu="menu-11"
4541    >
4542    Gry rodzinne</a>
4543                                                    </li>
4544
4545                                                                                            <li
4546                            class="menu-desktop-item menu-desktop-item--level2 "
4547                        >
4548                            
4549<a href="https://www.trefl.com/gry/towarzyskie"
4550    class="snowdog-menu-link "
4551            data-menu="menu-12"
4552    >
4553    Gry towarzyskie</a>
4554                                                    </li>
4555
4556                                                                                            <li
4557                            class="menu-desktop-item menu-desktop-item--level2 "
4558                        >
4559                            
4560<a href="https://www.trefl.com/gry/edukacyjne"
4561    class="snowdog-menu-link "
4562            data-menu="menu-13"
4563    >
4564    Gry edukacyjne</a>
4565                                                    </li>
4566
4567                                                                                            <li
4568                            class="menu-desktop-item menu-desktop-item--level2 "
4569                        >
4570                            
4571<a href="https://www.trefl.com/gry/dla-grup-przedszkoli"
4572    class="snowdog-menu-link "
4573            data-menu="menu-445"
4574    >
4575    Gry dla grup i przedszkoli</a>
4576                                                    </li>
4577
4578                                                                                            <li
4579                            class="menu-desktop-item menu-desktop-item--level2 "
4580                        >
4581                            
4582<a href="https://www.trefl.com/gry/planszowe-1"
4583    class="snowdog-menu-link "
4584            data-menu="menu-14"
4585    >
4586    Gry planszowe</a>
4587                                                    </li>
4588
4589                                                                                            <li
4590                            class="menu-desktop-item menu-desktop-item--level2 "
4591                        >
4592                            
4593<a href="https://www.trefl.com/gry/karciane"
4594    class="snowdog-menu-link "
4595            data-menu="menu-15"
4596    >
4597    Gry karciane</a>
4598                                                    </li>
4599
4600                                                                                            <li
4601                            class="menu-desktop-item menu-desktop-item--level2 "
4602                        >
4603                            
4604<a href="https://www.trefl.com/gry/domino-i-memos"
4605    class="snowdog-menu-link "
4606            data-menu="menu-16"
4607    >
4608    Domino i Memos</a>
4609                                                    </li>
4610
4611                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4612                                                                                            <li
4613                            class="menu-desktop-item menu-desktop-item--level2 "
4614                        >
4615                            
4616<a href="https://www.trefl.com/gry/dla-3-latka"
4617    class="snowdog-menu-link "
4618            data-menu="menu-321"
4619    >
4620    Gry dla 3 latka</a>
4621                                                    </li>
4622
4623                                                                                            <li
4624                            class="menu-desktop-item menu-desktop-item--level2 "
4625                        >
4626                            
4627<a href="https://www.trefl.com/gry/dla-4-latka"
4628    class="snowdog-menu-link "
4629            data-menu="menu-322"
4630    >
4631    Gry dla 4 latka</a>
4632                                                    </li>
4633
4634                                                                                            <li
4635                            class="menu-desktop-item menu-desktop-item--level2 "
4636                        >
4637                            
4638<a href="https://www.trefl.com/gry/dla-dzieci-4-6-lat"
4639    class="snowdog-menu-link "
4640            data-menu="menu-323"
4641    >
4642    Gry dla dzieci 4-6 lat</a>
4643                                                    </li>
4644
4645                                                                                            <li
4646                            class="menu-desktop-item menu-desktop-item--level2 "
4647                        >
4648                            
4649<a href="https://www.trefl.com/gry/dla-dzieci-6-8-lat"
4650    class="snowdog-menu-link "
4651            data-menu="menu-324"
4652    >
4653    Gry dla dzieci 6-8 lat</a>
4654                                                    </li>
4655
4656                                                                                            <li
4657                            class="menu-desktop-item menu-desktop-item--level2 "
4658                        >
4659                            
4660<a href="https://www.trefl.com/gry/dla-dzieci-8-10-lat"
4661    class="snowdog-menu-link "
4662            data-menu="menu-325"
4663    >
4664    Gry dla dzieci 8-10 lat</a>
4665                                                    </li>
4666
4667                                                                                            <li
4668                            class="menu-desktop-item menu-desktop-item--level2 "
4669                        >
4670                            
4671<a href="https://www.trefl.com/gry/dla-dzieci-12-lat"
4672    class="snowdog-menu-link "
4673            data-menu="menu-326"
4674    >
4675    Gry dla dzieci 12+</a>
4676                                                    </li>
4677
4678                                                            </ul>
4679                </div>
4680        </div>
4681                                                        </li>
4682                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4683                                    "
4684                                                            @mouseenter="toggleSubmenu('17', null, $event)"
4685                                @keydown.enter.prevent="toggleSubmenu('17', null, $event)"
4686                                @keydown.space.prevent="toggleSubmenu('17', null, $event)"
4687                                @keydown.escape.prevent="toggleSubmenu('17', false, $event)"
4688                                aria-haspopup="true"
4689                                :aria-expanded="openSubmenuId === '17'"
4690                                :tabindex="openSubmenuId === '17' ? 0 : -1"
4691                                                        role="menuitem"
4692                            >
4693                            <div class="menu-desktop-item-wrap relative flex items-center">
4694                                
4695<a href="https://www.trefl.com/zabawki"
4696    class="snowdog-menu-link "
4697            data-menu="menu-17"
4698    >
4699    Zabawki</a>
4700
4701                                                                    <sp
4701an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4702                                        <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>
4703                                    </span>
4704                                                            </div>
4705
4706                                                                            <div
4707            x-ref="submenu-17"
4708            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4709            x-show="openSubmenuId === '17'"
4710            x-cloak
4711        >
4712            <div class="container h-full">
4713                    <ul
4714                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4715                    title="Submenu for Zabawki"
4716                >
4717                                                                    <li
4718                            class="menu-desktop-item menu-desktop-item--level2 "
4719                        >
4720                            
4721<a href="https://www.trefl.com/zabawki/dla-niemowlaka"
4722    class="snowdog-menu-link "
4723            data-menu="menu-18"
4724    >
4725    Zabawki dla niemowlaka</a>
4726                                                    </li>
4727
4728                                                                                            <li
4729                            class="menu-desktop-item menu-desktop-item--level2 "
4730                        >
4731                            
4732<a href="https://www.trefl.com/zabawki/1-3-lata"
4733    class="snowdog-menu-link "
4734            data-menu="menu-19"
4735    >
4736    Zabawki dla dzieci 1-3</a>
4737                                                    </li>
4738
4739                                                                                            <li
4740                            class="menu-desktop-item menu-desktop-item--level2 "
4741                        >
4742                            
4743<a href="https://www.trefl.com/zabawki/3-lata"
4744    class="snowdog-menu-link "
4745            data-menu="menu-20"
4746    >
4747    Zabawki dla 3 latka</a>
4748                                                    </li>
4749
4750                                                                                            <li
4751                            class="menu-desktop-item menu-desktop-item--level2 "
4752                        >
4753                            
4754<a href="https://www.trefl.com/zabawki/4-lata"
4755    class="snowdog-menu-link "
4756            data-menu="menu-21"
4757    >
4758    Zabawki dla 4 latka</a>
4759                                                    </li>
4760
4761                                                                                            <li
4762                            class="menu-desktop-item menu-desktop-item--level2 "
4763                        >
4764                            
4765<a href="https://www.trefl.com/zabawki/4-6-lat"
4766    class="snowdog-menu-link "
4767            data-menu="menu-22"
4768    >
4769    Zabawki dla dzieci 4-6</a>
4770                                                    </li>
4771
4772                                                                                            <li
4773                            class="menu-desktop-item menu-desktop-item--level2 "
4774                        >
4775                            
4776<a href="https://www.trefl.com/zabawki/6-8-lat"
4777    class="snowdog-menu-link "
4778            data-menu="menu-23"
4779    >
4780    Zabawki dla dzieci 6-8</a>
4781                                                    </li>
4782
4783                                                                                            <li
4784                            class="menu-desktop-item menu-desktop-item--level2 "
4785                        >
4786                            
4787<a href="https://www.trefl.com/zabawki/8-10-lat"
4788    class="snowdog-menu-link "
4789            data-menu="menu-24"
4790    >
4791    Zabawki dla dzieci 8-10</a>
4792                                                    </li>
4793
4794                                                                                            <li
4795                            class="menu-desktop-item menu-desktop-item--level2 "
4796                        >
4797                            
4798<a href="https://www.trefl.com/zabawki/do-kapieli"
4799    class="snowdog-menu-link "
4800            data-menu="menu-25"
4801    >
4802    Zabawki do kąpieli</a>
4803                                                    </li>
4804
4805                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4806                                                                                            <li
4807                            class="menu-desktop-item menu-desktop-item--level2 "
4808                        >
4809                            
4810<a href="https://www.trefl.com/zabawki/drewniane"
4811    class="snowdog-menu-link "
4812            data-menu="menu-26"
4813    >
4814    Zabawki drewniane</a>
4815                                                    </li>
4816
4817                                                                                            <li
4818                            class="menu-desktop-item menu-desktop-item--level2 "
4819                        >
4820                            
4821<a href="https://www.trefl.com/zabawki/interaktywne"
4822    class="snowdog-menu-link "
4823            data-menu="menu-27"
4824    >
4825    Zabawki interaktywne</a>
4826                                                    </li>
4827
4828                                                                                            <li
4829                            class="menu-desktop-item menu-desktop-item--level2 "
4830                        >
4831                            
4832<a href="https://www.trefl.com/zabawki/klocki"
4833    class="snowdog-menu-link "
4834            data-menu="menu-28"
4835    >
4836    Klocki</a>
4837                                                    </li>
4838
4839                                                                                            <li
4840                            class="menu-desktop-item menu-desktop-item--level2 "
4841                        >
4842                            
4843<a href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
4844    class="snowdog-menu-link "
4845            data-menu="menu-399"
4846    >
4847    Klocki ceramiczne Brick Trick</a>
4848                                                    </li>
4849
4850                                                                                            <li
4851                            class="menu-desktop-item menu-desktop-item--level2 "
4852                        >
4853                            
4854<a href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
4855    class="snowdog-menu-link "
4856            data-menu="menu-599"
4857    >
4858    Klocki konstrukcyjne</a>
4859                                                    </li>
4860
4861                                                                                            <li
4862                            class="menu-desktop-item menu-desktop-item--level2 "
4863                        >
4864                            
4865<a href="https://www.trefl.com/zabawki/magiczne-sztuczki"
4866    class="snowdog-menu-link "
4867            data-menu="menu-449"
4868    >
4869    Magiczne Sztuczki</a>
4870                                                    </li>
4871
4872                                                                                            <li
4873                            class="menu-desktop-item menu-desktop-item--level2 "
4874                        >
4875                            
4876<a href="https://www.trefl.com/zabawki/modele"
4877    class="snowdog-menu-link "
4878            data-menu="menu-29"
4879    >
4880    Modele aut i pojazdów</a>
4881                                                    </li>
4882
4883                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
4884                                                                                            <li
4885                            class="menu-desktop-item menu-desktop-item--level2 "
4886                        >
4887                            
4888<a href="https://www.trefl.com/zabawki/outdoorowe"
4889    class="snowdog-menu-link "
4890            data-menu="menu-30"
4891    >
4892    Zabawki outdoorowe</a>
4893                                                    </li>
4894
4895                                                                                            <li
4896                            class="menu-desktop-item menu-desktop-item--level2 "
4897                        >
4898                            
4899<a href="https://www.trefl.com/zabawki/pilki"
4900    class="snowdog-menu-link "
4901            data-menu="menu-31"
4902    >
4903    Piłki</a>
4904                                                    </li>
4905
4906                                                                                            <li
4907                            class="menu-desktop-item menu-desktop-item--level2 "
4908                        >
4909                            
4910<a href="https://www.trefl.com/zabawki/kreatywne"
4911    class="snowdog-menu-link "
4912            data-menu="menu-392"
4913    >
4914    Zabawki kreatywne</a>
4915                                                    </li>
4916
4917                                                                                            <li
4918                            class="menu-desktop-item menu-desktop-item--level2 "
4919                        >
4920                            
4921<a href="https://www.trefl.com/zabawki/sensoryczne"
4922    class="snowdog-menu-link "
4923            data-menu="menu-32"
4924    >
4925    Zabawki sensoryczne</a>
4926                                                    </li>
4927
4928                                                                                            <li
4929                            class="menu-desktop-item menu-desktop-item--level2 "
4930                        >
4931                            
4932<a href="https://www.trefl.com/zabawki/hape"
4933    class="snowdog-menu-link "
4934            data-menu="menu-33"
4935    >
4936    Zabawki Hape</a>
4937                                                    </li>
4938
4939                                                                                            <li
4940                            class="menu-desktop-item menu-desktop-item--level2 "
4941                        >
4942                            
4943<a href="https://www.trefl.com/zabawki/zestawy-naukowe"
4944    class="snowdog-menu-link "
4945            data-menu="menu-34"
4946    >
4947    Zabawki naukowe</a>
4948                                                    </li>
4949
4950                                                            </ul>
4951                </div>
4952        </div>
4953                                                        </li>
4954                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
4955                                    "
4956                                                            @mouseenter="toggleSubmenu('35', null, $event)"
4957                                @keydown.enter.prevent="toggleSubmenu('35', null, $event)"
4958                                @keydown.space.prevent="toggleSubmenu('35', null, $event)"
4959                                @keydown.escape.prevent="toggleSubmenu('35', false, $event)"
4960                                aria-haspopup="true"
4961                                :aria-expanded="openSubmenuId === '35'"
4962                                :tabindex="openSubmenuId === '35' ? 0 : -1"
4963                                                        role="menuitem"
4964                            >
4965                            <div class="menu-desktop-item-wrap relative flex items-center">
4966                                
4967<a href="https://www.trefl.com/ksiazki"
4968    class="snowdog-menu-link "
4969            data-menu="menu-35"
4970    >
4971    Książki</a>
4972
4973                                                                    <sp
4973an class="flex items-center justify-center ml-1.5" aria-hidden="true">
4974                                        <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>
4975                                    </span>
4976                                                            </div>
4977
4978                                                                            <div
4979            x-ref="submenu-35"
4980            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
4981            x-show="openSubmenuId === '35'"
4982            x-cloak
4983        >
4984            <div class="container h-full">
4985                    <ul
4986                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
4987                    title="Submenu for Ksi&#x0105;&#x017C;ki"
4988                >
4989                                                                    <li
4990                            class="menu-desktop-item menu-desktop-item--level2 "
4991                        >
4992                            
4993<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-1-2-lata"
4994    class="snowdog-menu-link "
4995            data-menu="menu-602"
4996    >
4997    Książki dla dzieci 1-2 lata</a>
4998                                                    </li>
4999
5000                                                                                            <li
5001                            class="menu-desktop-item menu-desktop-item--level2 "
5002                        >
5003                            
5004<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-3-5-lat"
5005    class="snowdog-menu-link "
5006            data-menu="menu-603"
5007    >
5008    Książki dla dzieci 3-5 lat</a>
5009                                                    </li>
5010
5011                                                                                            <li
5012                            class="menu-desktop-item menu-desktop-item--level2 "
5013                        >
5014                            
5015<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-6-8-lat"
5016    class="snowdog-menu-link "
5017            data-menu="menu-604"
5018    >
5019    Książki dla dzieci 6-8 lat</a>
5020                                                    </li>
5021
5022                                                                                            <li
5023                            class="menu-desktop-item menu-desktop-item--level2 "
5024                        >
5025                            
5026<a href="https://www.trefl.com/ksiazki/dla-dzieci/dla-dzieci-9-12-lat"
5027    class="snowdog-menu-link "
5028            data-menu="menu-605"
5029    >
5030    Książki dla dzieci 9-12 lat</a>
5031                                                    </li>
5032
5033                                                                                            <li
5034                            class="menu-desktop-item menu-desktop-item--level2 "
5035                        >
5036                            
5037<a href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
5038    class="snowdog-menu-link "
5039            data-menu="menu-37"
5040    >
5041    Książki dla rodziców</a>
5042                                                    </li>
5043
5044                                                                                            <li
5045                            class="menu-desktop-item menu-desktop-item--level2 "
5046                        >
5047                            
5048<a href="https://www.trefl.com/ksiazki/kolorowanki"
5049    class="snowdog-menu-link "
5050            data-menu="menu-606"
5051    >
5052    Kolorowanki</a>
5053                                                    </li>
5054
5055                                                            </ul>
5056                </div>
5057        </div>
5058                                                        </li>
5059                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5060                                    "
5061                                                            @mouseenter="toggleSubmenu('39', null, $event)"
5062                                @keydown.enter.prevent="toggleSubmenu('39', null, $event)"
5063                                @keydown.space.prevent="toggleSubmenu('39', null, $event)"
5064                                @keydown.escape.prevent="toggleSubmenu('39', false, $event)"
5065                                aria-haspopup="true"
5066                                :aria-expanded="openSubmenuId === '39'"
5067                                :tabindex="openSubmenuId === '39' ? 0 : -1"
5068                                                        role="menuitem"
5069                            >
5070                            <div class="menu-desktop-item-wrap relative flex items-center">
5071                                
5072<a href="https://www.trefl.com/rodzina-treflikow"
5073    class="snowdog-menu-link "
5074            data-menu="menu-39"
5075    >
5076    Trefliki</a>
5077
5078                                                                    <sp
5078an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5079                                        <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>
5080                                    </span>
5081                                                            </div>
5082
5083                                                                            <div
5084            x-ref="submenu-39"
5085            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5086            x-show="openSubmenuId === '39'"
5087            x-cloak
5088        >
5089            <div class="container h-full">
5090                    <ul
5091                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5092                    title="Submenu for Trefliki"
5093                >
5094                                                                    <li
5095                            class="menu-desktop-item menu-desktop-item--level2 "
5096                        >
5097                            
5098<a href="https://www.trefl.com/rodzina-treflikow/puzzle"
5099    class="snowdog-menu-link "
5100            data-menu="menu-40"
5101    >
5102    Puzzle Rodzina Treflików</a>
5103                                                    </li>
5104
5105                                                                                            <li
5106                            class="menu-desktop-item menu-desktop-item--level2 "
5107                        >
5108                            
5109<a href="https://www.trefl.com/rodzina-treflikow/gry"
5110    class="snowdog-menu-link "
5111            data-menu="menu-41"
5112    >
5113    Gry Rodzina Treflików</a>
5114                                                    </li>
5115
5116                                                                                            <li
5117                            class="menu-desktop-item menu-desktop-item--level2 "
5118                        >
5119                            
5120<a href="https://www.trefl.com/rodzina-treflikow/zabawki"
5121    class="snowdog-menu-link "
5122            data-menu="menu-42"
5123    >
5124    Zabawki Rodzina Treflików</a>
5125                                                    </li>
5126
5127                                                                                            <li
5128                            class="menu-desktop-item menu-desktop-item--level2 "
5129                        >
5130                            
5131<a href="https://www.trefl.com/rodzina-treflikow/ksiazki"
5132    class="snowdog-menu-link "
5133            data-menu="menu-43"
5134    >
5135    Książki Rodzina Treflików</a>
5136                                                    </li>
5137
5138                                                            </ul>
5139                </div>
5140        </div>
5141                                                        </li>
5142                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5143                                    "
5144                                                            @mouseenter="toggleSubmenu('44', null, $event)"
5145                                @keydown.enter.prevent="toggleSubmenu('44', null, $event)"
5146                                @keydown.space.prevent="toggleSubmenu('44', null, $event)"
5147                                @keydown.escape.prevent="toggleSubmenu('44', false, $event)"
5148                                aria-haspopup="true"
5149                                :aria-expanded="openSubmenuId === '44'"
5150                                :tabindex="openSubmenuId === '44' ? 0 : -1"
5151                                                        role="menuitem"
5152                            >
5153                            <div class="menu-desktop-item-wrap relative flex items-center">
5154                                
5155<a href="https://www.trefl.com/prezenty"
5156    class="snowdog-menu-link "
5157            data-menu="menu-44"
5158    >
5159    Prezenty</a>
5160
5161                                                                    <sp
5161an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5162                                        <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>
5163                                    </span>
5164                                                            </div>
5165
5166                                                                            <div
5167            x-ref="submenu-44"
5168            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5169            x-show="openSubmenuId === '44'"
5170            x-cloak
5171        >
5172            <div class="container h-full">
5173                    <ul
5174                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5175                    title="Submenu for Prezenty"
5176                >
5177                                                                    <li
5178                            class="menu-desktop-item menu-desktop-item--level2 "
5179                        >
5180                            
5181<a href="https://www.trefl.com/prezenty/dla-dzieci"
5182    class="snowdog-menu-link "
5183            data-menu="menu-578"
5184    >
5185    Prezenty dla dzieci</a>
5186                                                    </li>
5187
5188                                                                                            <li
5189                            class="menu-desktop-item menu-desktop-item--level2 "
5190                        >
5191                            
5192<a href="https://www.trefl.com/prezenty/dla-dzieci/0-2-lata"
5193    class="snowdog-menu-link "
5194            data-menu="menu-490"
5195    >
5196    Prezenty dla dzieci 0-2 lata</a>
5197                                                    </li>
5198
5199                                                                                            <li
5200                            class="menu-desktop-item menu-desktop-item--level2 "
5201                        >
5202                            
5203<a href="https://www.trefl.com/prezenty/dla-dzieci/3-5-lat"
5204    class="snowdog-menu-link "
5205            data-menu="menu-491"
5206    >
5207    Prezenty dla dzieci 3-5 lat</a>
5208                                                    </li>
5209
5210                                                                                            <li
5211                            class="menu-desktop-item menu-desktop-item--level2 "
5212                        >
5213                            
5214<a href="https://www.trefl.com/prezenty/dla-dzieci/6-8-lat"
5215    class="snowdog-menu-link "
5216            data-menu="menu-492"
5217    >
5218    Prezenty dla dzieci 6-8 lat</a>
5219                                                    </li>
5220
5221                                                                                            <li
5222                            class="menu-desktop-item menu-desktop-item--level2 "
5223                        >
5224                            
5225<a href="https://www.trefl.com/prezenty/dla-dzieci/9-12-lat"
5226    class="snowdog-menu-link "
5227            data-menu="menu-493"
5228    >
5229    Prezenty dla dzieci 9-12 lat</a>
5230                                                    </li>
5231
5232                                                                                            <li
5233                            class="menu-desktop-item menu-desktop-item--level2 "
5234                        >
5235                            
5236<a href="https://www.trefl.com/prezenty/dla-dzieci/13-lat-i-dorosli"
5237    class="snowdog-menu-link "
5238            data-menu="menu-494"
5239    >
5240    Prezenty dla dzieci 13+ i dorosłych</a>
5241                                                    </li>
5242
5243                                                                                            <li
5244                            class="menu-desktop-item menu-desktop-item--level2 "
5245                        >
5246                            
5247<a href="https://www.trefl.com/prezenty/swiateczne"
5248    class="snowdog-menu-link "
5249            data-menu="menu-465"
5250    >
5251    Prezenty świąteczne</a>
5252                                                    </li>
5253
5254                                                                                            <li
5255                            class="menu-desktop-item menu-desktop-item--level2 "
5256                        >
5257                            
5258<a href="https://www.trefl.com/prezenty/urodzinowe"
5259    class="snowdog-menu-link "
5260            data-menu="menu-466"
5261    >
5262    Prezenty urodzinowe</a>
5263                                                    </li>
5264
5265                                                    <span class="menu-desktop-separator" aria-hidden="true"></span>
5266                                                                                            <li
5267                            class="menu-desktop-item menu-desktop-item--level2 "
5268                        >
5269                            
5270<a href="https://www.trefl.com/prezenty/rodzinne"
5271    class="snowdog-menu-link "
5272            data-menu="menu-467"
5273    >
5274    Prezenty rodzinne</a>
5275                                                    </li>
5276
5277                                                                                            <li
5278                            class="menu-desktop-item menu-desktop-item--level2 "
5279                        >
5280                            
5281<a href="https://www.trefl.com/prezenty/wielkanocne-i-wiosenne"
5282    class="snowdog-menu-link "
5283            data-menu="menu-468"
5284    >
5285    Prezenty wielkanocne i wiosenne</a>
5286                                                    </li>
5287
5288                                                                                            <li
5289                            class="menu-desktop-item menu-desktop-item--level2 "
5290                        >
5291                            
5292<a href="https://www.trefl.com/prezenty/gry-planszowe-na-prezent"
5293    class="snowdog-menu-link "
5294            data-menu="menu-469"
5295    >
5296    Gry planszowe na prezent</a>
5297                                                    </li>
5298
5299                                                            </ul>
5300                </div>
5301        </div>
5302                                                        </li>
5303                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5304                                    "
5305                                                            @mouseenter="openSubmenuId = null"
5306                                                        role="menuitem"
5307                            >
5308                            <div class="menu-desktop-item-wrap relative flex items-center">
5309                                
5310<a href="https://www.trefl.com/nowosci"
5311    class="snowdog-menu-link "
5312            data-menu="menu-457"
5313    >
5314    Nowości</a>
5315
5316                                                            </div>
5317
5318                                                    </li>
5319                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5320                                    "
5321                                                            @mouseenter="openSubmenuId = null"
5322                                                        role="menuitem"
5323                            >
5324                            <div class="menu-desktop-item-wrap relative flex items-center">
5325                                
5326<a href="https://www.trefl.com/puzzle-gry-zabawki-tylko-u-nas"
5327    class="snowdog-menu-link "
5328            data-menu="menu-568"
5329    >
5330    Tylko u nas!</a>
5331
5332                                                            </div>
5333
5334                                                    </li>
5335                                                                    <li class="menu-desktop-item menu-desktop-item--level1 flex items-center
5336                                    "
5337                                                            @mouseenter="toggleSubmenu('45', null, $event)"
5338                                @keydown.enter.prevent="toggleSubmenu('45', null, $event)"
5339                                @keydown.space.prevent="toggleSubmenu('45', null, $event)"
5340                                @keydown.escape.prevent="toggleSubmenu('45', false, $event)"
5341                                aria-haspopup="true"
5342                                :aria-expanded="openSubmenuId === '45'"
5343                                :tabindex="openSubmenuId === '45' ? 0 : -1"
5344                                                        role="menuitem"
5345                            >
5346                            <div class="menu-desktop-item-wrap relative flex items-center">
5347                                
5348<a href="https://www.trefl.com/promocje"
5349    class="snowdog-menu-link "
5350            data-menu="menu-45"
5351    >
5352    Promocje</a>
5353
5354                                                                    <sp
5354an class="flex items-center justify-center ml-1.5" aria-hidden="true">
5355                                        <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>
5356                                    </span>
5357                                                            </div>
5358
5359                                                                            <div
5360            x-ref="submenu-45"
5361            class="menu-desktop-submenu absolute left-0 top-full w-full z-30 bg-white flex border-t border-gray-light shadow-md"
5362            x-show="openSubmenuId === '45'"
5363            x-cloak
5364        >
5365            <div class="container h-full">
5366                    <ul
5367                    class="menu-desktop-list menu-desktop-list--level2                         bg-white flex flex-col flex-wrap items-start content-start justify-start h-full"
5368                    title="Submenu for Promocje"
5369                >
5370                                                                    <li
5371                            class="menu-desktop-item menu-desktop-item--level2 "
5372                        >
5373                            
5374<a href="https://www.trefl.com/promocje/puzzle"
5375    class="snowdog-menu-link "
5376            data-menu="menu-583"
5377    >
5378    Puzzle w promocji</a>
5379                                                    </li>
5380
5381                                                                                            <li
5382                            class="menu-desktop-item menu-desktop-item--level2 "
5383                        >
5384                            
5385<a href="https://www.trefl.com/promocje/gry"
5386    class="snowdog-menu-link "
5387            data-menu="menu-584"
5388    >
5389    Gry w promocji</a>
5390                                                    </li>
5391
5392                                                                                            <li
5393                            class="menu-desktop-item menu-desktop-item--level2 "
5394                        >
5395                            
5396<a href="https://www.trefl.com/promocje/zabawki"
5397    class="snowdog-menu-link "
5398            data-menu="menu-585"
5399    >
5400    Zabawki w promocji</a>
5401                                                    </li>
5402
5403                                                                                            <li
5404                            class="menu-desktop-item menu-desktop-item--level2 "
5405                        >
5406                            
5407<a href="https://www.trefl.com/promocje/ksiazki"
5408    class="snowdog-menu-link "
5409            data-menu="menu-586"
5410    >
5411    Książki w promocji</a>
5412                                                    </li>
5413
5414                                                            </ul>
5415                </div>
5416        </div>
5417                                                        </li>
5418                                    </ul>
5419
5420                    <div class="free-delivery-truck-animation flex items-center font-sans gap-x-3">
5421        <span class="font-medium leading-5" style="font-size: 0.775rem;">
5422            Darmowa dostawa
5423            <span class="block font-bold">
5424                już od 150 zł            </span>
5425        </span>
5426
5427        <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">
5428<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
542858.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"/>
5429<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"/>
5430<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"/>
5431<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"/>
5432</svg>
5433    </div>
5434
5435    <style>
5436    .free-delivery-truck-animation {
5437        .truck,
5438        .truck-line-bottom,
5439        .truck-line-middle,
5440        .truck-line-top {
5441            animation-duration: 3s;
5442            animation-iteration-count: infinite;
5443            transform: translateX(-3000px);
5444            will-change: transform;
5445        }
5446
5447        .truck {
5448            animation-name: move-truck;
5449        }
5450
5451        .truck-line-bottom,
5452        .truck-line-middle,
5453        .truck-line-top {
5454            animation-name: move-truck-line;
5455        }
5456
5457        .truck-line-middle {
5458            animation-delay: 25ms;
5459        }
5460
5461        .truck-line-bottom {
5462            animation-delay: 50ms;
5463        }
5464    }
5465
5466    @media (prefers-reduced-motion: reduce) {
5467        .free-delivery-truck-animation {
5468            .truck,
5469            .truck-line-bottom,
5470            .truck-line-middle,
5471            .truck-line-top {
5472                animation-duration: 0s;
5473                transform: translateX(0);
5474            }
5475        }
5476    }
5477
5478    @keyframes move-truck {
5479        0% {
5480            transform: translateX(-3000px);
5481        }
5482        10% {
5483            transform: rotate(6deg);
5484        }
5485        20% {
5486            transform:rotate(4deg);
5487        }
5488        60% {
5489            transform: translateX(-400px);
5490        }
5491        70% {
5492            opacity: 1;
5493        }
5494        92% {
5495            opacity: 0;
5496        }
5497        100% {
5498            transform: translateX(6000px);
5499            opacity: 0;
5500        }
5501    }
5502
5503    @keyframes move-truck-line {
5504        0% {
5505            transform: translateX(-3000px);
5506        }
5507        10% {
5508            transform: rotate(4deg);
5509        }
5510        20% {
5511            transform: rotate(2deg);
5512        }
5513        55%, 60%, 65% {
5514            transform: translateX(-400px);
5515        }
5516        70% {
5517            opacity: 1;
5518        }
5519        92% {
5520            opacity: 0;
5521        }
5522        100% {
5523            transform: translateX(6000px);
5524            opacity: 0;
5525        }
5526    }
5527</style>
5528            </nav>
5529        </div>
5530    </div>
5531</header><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
5532<div class="page messages">
5532<script>
5533        function initMessages() {
5534        "use strict";
5535        return {
5536            messages: window.mageMessages || [],
5537            isEmpty() {
5538                return this.messages.reduce(
5539                    function (isEmpty, message) {
5540                        return isEmpty && message === undefined
5541                    }, true
5542                )
5543            },
5544            hasMessages() {
5545                return !this.isEmpty();
5546            },
5547            hasMessage() {
5548                return !!this.message;
5549            },
5550            removeMessage() {
5551                this.messages[this.index] = undefined;
5552            },
5553            addMessages(messages, hideAfter) {
5554                messages.map((message) => {
5555                    this.messages = this.messages.concat(message);
5556                    if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) {
5557                        hideAfter = window.defaultSuccessMessageTimeout;
5558                    }
5559                    if (hideAfter) {
5560                        this.setHideTimeOut(this.messages.length -1, hideAfter);
5561                    }
5562                });
5563            },
5564            setHideTimeOut(messageIndex, hideAfter) {
5565                setTimeout((messageIndex) => {
5566                    this.messages[messageIndex] = undefined;
5567                }, hideAfter, messageIndex);
5568            },
5569            eventListeners: {
5570                ['@messages-loaded.window'](event) {
5571                    this.addMessages(event.detail.messages, event.detail.hideAfter)
5572                },
5573                ['@private-content-loaded.window'](event) {
5574                    const data = event.detail.data;
5575                    if (
5576                        data.messages &&
5577                        data.messages.messages &&
5578                        data.messages.messages.length
5579                    ) {
5580                        this.addMessages(data.messages.messages);
5581                    }
5582                },
5583                ['@clear-messages.window']() {
5584                    this.messages = [];
5585                }
5586            },
5587            getMessageUiId() {
5588                return 'message-' + this.message.type;
5589            }
5590        }
5591    }
5592
5593    window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true})
5594</script>
5594
5595<section id="messages"
5596         x-data="initMessages"
5597         x-bind="eventListeners"
5598         role="alert"
5599>
5600    <template x-if="hasMessages">
5601        <div class="w-full">
5602            <div class="messages container mx-auto py-3">
5603                <template x-for="(message, index) in messages" :key="index">
5604                    <div>
5605                        <template x-if="hasMessage">
5606                            <div class="message"
5607                                 :class="message.type"
5608                                 :ui-id="getMessageUiId"
5609                            >
5610                                <span x-html="message.text"></span>
5611                                <button
5612                                    type="button"
5613                                    class="text-gray-600 hover:text-black"
5614                                    aria-label="Zamknij wiadomość"
5615                                    @click.prevent="removeMessage"
5616                                >
5617                                    <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">
5618  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
5619</svg>
5620                                </button>
5621                            </div>
5622                        </template>
5623                    </div>
5624                </template>
5625            </div>
5626        </div>
5627    </template>
5628</section>
5629</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">
5630        <h1 class="font-sans font-normal text-2xl lg:text-4xl text-black"
5631            >
5632            <span class="base" data-ui-id="page-title-wrapper" >Mądre zabawki – pomysły na wartościową zabawę po szkole</span>        </h1>
5633            </div>
5634    <nav class="breadcrumbs" aria-label="Breadcrumb">
5635        <ol class="items list-reset flex flex-wrap text-xs text-gray-dark font-medium max-w-md">
5636                            <li class="item flex home">
5637                                                                <a href="https://www.trefl.com/"
5638                           title="Przejd&#x017A;&#x20;na&#x20;stron&#x0119;&#x20;g&#x0142;&#xF3;wn&#x0105;"
5639                           class="hover:underline"
5640                        >Strona główna</a>
5641                                    </li>
5642                            <li class="item flex blog">
5643                                            <span aria-hidden="true" class="separator px-2">/</span>
5644                                                                <a href="https://www.trefl.com/blog"
5645                           title="Blog"
5646                           class="hover:underline"
5647                        >Blog</a>
5648                                    </li>
5649                            <li class="item flex madre-zabawki-pomysly-na-wartosciowa-zabawe-po-szkole">
5650                                            <span aria-hidden="true" class="separator px-2">/</span>
5651                                                                <span
5652                            class="text-primary line-clamp-1"
5653                            aria-current="page"
5654                        >Mądre zabawki – pomysły na wartościową zabawę po szkole</span>
5655                                    </li>
5656                    </ol>
5657    </nav>
5658    
5658<script type="application/ld+json">
5659        {
5660                "@context": "http://schema.org",
5661        "@type": "BreadcrumbList",
5662        "itemListElement": [
5663            {
5664            "@type": "ListItem",
5665            "position": "1",
5666            "item": {
5667                "@id": "https://www.trefl.com/",
5668                "name": "Strona główna"
5669            }
5670    }
5671        ,            {
5672            "@type": "ListItem",
5673            "position": "2",
5674            "item": {
5675                "@id": "https://www.trefl.com/blog",
5676                "name": "Blog"
5677            }
5678    }
5679        ,            {
5680            "@type": "ListItem",
5681            "position": "3",
5682            "item": {
5683                "@id": "",
5684                "name": "Mądre zabawki – pomysły na wartościową zabawę po szkole"
5685            }
5686    }
5687                        ]
5688    }
5689    </script>
5689
5690</div></div><div class="columns"><div class="column main">
5690<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
5691    var feedId = getUrlParam('ff'),
5692        product = getUrlParam('fp'),
5693        currentDate = new Date(),
5694        session = getCookie('feed_session');
5695
5696    if (!session) {
5697        session = '' + Math.floor(currentDate.getTime() / 1000) + Math.floor(Math.random() * 10000001);
5698    }
5699
5700    if (session && feedId > 0 && product > 0) {
5701        setCookie('feed_session', session, {expires: 365, path: '/'});
5702        setCookie('feed_id', feedId, 365);
5703
5704        var xhr = new XMLHttpRequest(),
5705            baseUrl = 'https://www.trefl.com/',
5706            url = BASE_URL + '?rnd=' + Math.floor(Math.random() * 10000001) + "&feed=" + feedId + "&session=" + session + "&product=" + product;
5707
5708        xhr.open('GET', url, true);
5709        xhr.setRequestHeader('Content-Type', 'application/json');
5710        xhr.send();
5711    }
5712
5713    function getUrlParam(name) {
5714        let results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
5715
5716        if (results === null) {
5717            return '';
5718        } else {
5719            return results[1] || 0;
5720        }
5721    }
5722
5723    function getCookie(cookieName) {
5724        var name = cookieName + "=",
5725            decodedCookie = decodeURIComponent(document.cookie),
5726            cookieArray = decodedCookie.split(';');
5727
5728        for (var i = 0; i < cookieArray.length; i++) {
5729            var cookie = cookieArray[i].trim();
5730            if (cookie.indexOf(name) === 0) {
5731                return cookie.substring(name.length, cookie.length);
5732            }
5733        }
5734
5735        return null;
5736    }
5737
5738    function setCookie(cookieName, cookieValue, expirationDays) {
5739        var d = new Date();
5740        d.setTime(d.getTime() + (expirationDays * 24 * 60 * 60 * 1000));
5741        var expires = "expires=" + d.toUTCString();
5742        document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/";
5743    }
5744</script>
5744
5745<article class="prose w-full max-w-none lg:-mt-44">
5746            <img fetchpriority="high"
5747             srcset="https://www.trefl.com/media/mageplaza/blog/post/resize/1146x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg 1x,
5748                     https://www.trefl.com/media/mageplaza/blog/post/resize/1400x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg 2x"
5749             src="https://www.trefl.com/media/mageplaza/blog/post/resize/1146x/m/a/madre-zabawki-rozwijaja-umiejetnosci-dziecka.jpg"
5750             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"
5751             aria-hidden="true"
5752             class="w-full"
5753        />
5754    
5755    <div class="w-full max-w-3xl mx-auto">
5756        <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>
5757<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>
5758<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>
5759<h2><strong>Mądre zabawki dla dzieci – czym właściwie są?</strong></h2>
5760<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>
5761<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>
5762<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>
5763<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>
5764<h2><strong>Gry edukacyjne dla dzieci – nauka, która staje się przygodą</strong></h2>
5765<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>
5766<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>
5767<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>
5768<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>
5769<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>
5770<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>
5771<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>
5772<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>
5773
5774<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5775<link rel="preconnect" href="https://fonts.googleapis.com">
5776<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5777<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5778
5779<style>
5780.trefl-inline-related {
5781    display: flex;
5782    align-items: center; 
5783    gap: 12px; 
5784    margin: 20px 0;
5785    padding: 12px 16px; 
5786    background-color: #f9f9f9;
5787    border: 1px solid #eef0f2;
5788    border-radius: 10px; 
5789    text-decoration: none;
5790    font-family: 'Raleway', sans-serif;
5791    font-size: 14px; 
5792    line-height: 1.5;
5793    color: #333333;
5794    width: 100%; 
5795    box-sizing: border-box; 
5796    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5797}
5798
5799.trefl-inline-related::before {
5800    content: "";
5801    display: block;
5802    flex-shrink: 0;
5803    width: 20px; 
5804    height: 20px;
5805    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5806    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");
5807    background-repeat: no-repeat;
5808    background-position: center;
5809    background-size: contain;
5810    transition: transform 0.2s ease;
5811}
5812
5813.trefl-inline-related:hover {
5814    background-color: #ffffff;
5815    border-color: #e30613;
5816    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5817    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5818}
5819
5820.trefl-inline-related:hover::before {
5821    transform: scale(1.05);
5822}
5823
5824.trefl-inline-text-wrapper {
5825    flex-grow: 1;
5826}
5827
5828.trefl-inline-related .label {
5829    color: #e30613;
5830    font-weight: 800;
5831    margin-right: 4px;
5832    letter-spacing: 0.2px;
5833}
5834
5835.trefl-inline-related .title {
5836    font-weight: 700;
5837    color: #1a1a1a;
5838    transition: color 0.2s ease;
5839}
5840
5841.trefl-inline-related:hover .title {
5842    color: #e30613;
5843}
5844</style>
5845
5846<a href="https://www.trefl.com/blog/post/gra-planszowa-spy-guy-intrygujaca-rozrywka-dla-calej-rodziny" class="trefl-inline-related">
5847    <div class="trefl-inline-text-wrapper">
5848        <span class="label">Zobacz także:</span> 
5849        <span class="title">Gra planszowa Spy Guy - intrygująca rozrywka dla całej rodziny!
5850</span>
5851    </div>
5852</a>
5853<h2><strong>Zestaw kreatywny dla fanów klocków – czas coś zbudować z prawdziwej cegły!</strong></h2>
5854<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>
5855<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>
5856<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>
5857<p></p>
5858<p>Co więcej, <strong>sześciokątne podstawki pozwalają łączyć poszczególne zestawy</strong>
5858. Jedna konstrukcja może więc z czasem zamienić się w całe miasteczko z kawiarnią, remizą, gabinetem weterynaryjnym i kolejnymi miejscami.</p>
5859<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>
5860<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5861<link rel="preconnect" href="https://fonts.googleapis.com">
5862<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5863<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5864
5865<style>
5866.trefl-inline-related {
5867    display: flex;
5868    align-items: center; 
5869    gap: 12px; 
5870    margin: 20px 0;
5871    padding: 12px 16px; 
5872    background-color: #f9f9f9;
5873    border: 1px solid #eef0f2;
5874    border-radius: 10px; 
5875    text-decoration: none;
5876    font-family: 'Raleway', sans-serif;
5877    font-size: 14px; 
5878    line-height: 1.5;
5879    color: #333333;
5880    width: 100%; 
5881    box-sizing: border-box; 
5882    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5883}
5884
5885.trefl-inline-related::before {
5886    content: "";
5887    display: block;
5888    flex-shrink: 0;
5889    width: 20px; 
5890    height: 20px;
5891    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5892    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");
5893    background-repeat: no-repeat;
5894    background-position: center;
5895    background-size: contain;
5896    transition: transform 0.2s ease;
5897}
5898
5899.trefl-inline-related:hover {
5900    background-color: #ffffff;
5901    border-color: #e30613;
5902    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5903    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5904}
5905
5906.trefl-inline-related:hover::before {
5907    transform: scale(1.05);
5908}
5909
5910.trefl-inline-text-wrapper {
5911    flex-grow: 1;
5912}
5913
5914.trefl-inline-related .label {
5915    color: #e30613;
5916    font-weight: 800;
5917    margin-right: 4px;
5918    letter-spacing: 0.2px;
5919}
5920
5921.trefl-inline-related .title {
5922    font-weight: 700;
5923    color: #1a1a1a;
5924    transition: color 0.2s ease;
5925}
5926
5927.trefl-inline-related:hover .title {
5928    color: #e30613;
5929}
5930</style>
5931
5932<a href="https://www.trefl.com/blog/post/klocki-trefl-my-connect-buduj-poruszaj-i-transformuj-swiat" class="trefl-inline-related">
5933    <div class="trefl-inline-text-wrapper">
5934        <span class="label">Zobacz także:</span> 
5935        <span class="title">Klocki konstrukcyjne Trefl & MY CONNECT - buduj, poruszaj i transformuj świat!
5936</span>
5937    </div>
5938</a>
5939<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>
5940<h2><strong>Samochody dla dziecka – małe pojazdy, wielkie historie</strong></h2>
5941<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>
5942<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>
5943<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>
5944<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>
5945<h2><strong>Puzzle dla dzieci – czas na układanie i chwilę wyciszenia</strong></h2>
5946<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>
5947<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
5947acji 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>
5948<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>
5949<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>
5950<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>
5951<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>
5952<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
5953<link rel="preconnect" href="https://fonts.googleapis.com">
5954<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
5955<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
5956
5957<style>
5958.trefl-inline-related {
5959    display: flex;
5960    align-items: center; 
5961    gap: 12px; 
5962    margin: 20px 0;
5963    padding: 12px 16px; 
5964    background-color: #f9f9f9;
5965    border: 1px solid #eef0f2;
5966    border-radius: 10px; 
5967    text-decoration: none;
5968    font-family: 'Raleway', sans-serif;
5969    font-size: 14px; 
5970    line-height: 1.5;
5971    color: #333333;
5972    width: 100%; 
5973    box-sizing: border-box; 
5974    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
5975}
5976
5977.trefl-inline-related::before {
5978    content: "";
5979    display: block;
5980    flex-shrink: 0;
5981    width: 20px; 
5982    height: 20px;
5983    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
5984    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");
5985    background-repeat: no-repeat;
5986    background-position: center;
5987    background-size: contain;
5988    transition: transform 0.2s ease;
5989}
5990
5991.trefl-inline-related:hover {
5992    background-color: #ffffff;
5993    border-color: #e30613;
5994    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
5995    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
5996}
5997
5998.trefl-inline-related:hover::before {
5999    transform: scale(1.05);
6000}
6001
6002.trefl-inline-text-wrapper {
6003    flex-grow: 1;
6004}
6005
6006.trefl-inline-related .label {
6007    color: #e30613;
6008    font-weight: 800;
6009    margin-right: 4px;
6010    letter-spacing: 0.2px;
6011}
6012
6013.trefl-inline-related .title {
6014    font-weight: 700;
6015    color: #1a1a1a;
6016    transition: color 0.2s ease;
6017}
6018
6019.trefl-inline-related:hover .title {
6020    color: #e30613;
6021}
6022</style>
6023
6024<a href="https://www.trefl.com/blog/post/dlaczego-warto-ukladac-puzzle" class="trefl-inline-related">
6025    <div class="trefl-inline-text-wrapper">
6026        <span class="label">Zobacz także:</span> 
6027        <span class="title">Dlaczego warto układać puzzle?
6028</span>
6029    </div>
6030</a>
6031<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>
6032<h2><strong>Gra dla dziesięciolatka? Postaw na wspólną rozgrywkę pełną śmiechu</strong></h2>
6033<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>
6034<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>
6035<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>
6036<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>
6037<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>
6038<h2><strong>Jak dobrać mądrą zabawkę do wieku dziecka?</strong></h2>
6039<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>
6040<ul style="margin-top: 0cm;" type="disc">
6041<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6042<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>
6043</li>
6044<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6045<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>
6046</li>
6047<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6048<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>
6049</li>
6050<li style="mso-list: l0 level1 lfo1; tab-stops: list 36.0pt;">
6051<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>
6052</li>
6053</ul>
6054<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>
6055<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>
6056<h2><strong>Powrót do szkoły – i do dobrej zabawy</strong></h2>
6057<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>
6058<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
6058i 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>
6059<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>
6060<!-- Import czcionki Raleway z Google Fonts (jeśli jeszcze nie masz na stronie) -->
6061<link rel="preconnect" href="https://fonts.googleapis.com">
6062<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
6063<link href="https://fonts.googleapis.com/css2?family=Raleway:wght@700;800&display=swap" rel="stylesheet">
6064
6065<style>
6066.trefl-inline-related {
6067    display: flex;
6068    align-items: center; 
6069    gap: 12px; 
6070    margin: 20px 0;
6071    padding: 12px 16px; 
6072    background-color: #f9f9f9;
6073    border: 1px solid #eef0f2;
6074    border-radius: 10px; 
6075    text-decoration: none;
6076    font-family: 'Raleway', sans-serif;
6077    font-size: 14px; 
6078    line-height: 1.5;
6079    color: #333333;
6080    width: 100%; 
6081    box-sizing: border-box; 
6082    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
6083}
6084
6085.trefl-inline-related::before {
6086    content: "";
6087    display: block;
6088    flex-shrink: 0;
6089    width: 20px; 
6090    height: 20px;
6091    /* Ikona otwartej książki w kolorze brandowej czerwieni Trefl (#e30613) */
6092    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");
6093    background-repeat: no-repeat;
6094    background-position: center;
6095    background-size: contain;
6096    transition: transform 0.2s ease;
6097}
6098
6099.trefl-inline-related:hover {
6100    background-color: #ffffff;
6101    border-color: #e30613;
6102    transform: translateY(-1px); /* Delikatniejsze uniesienie dopasowane do mniejszego gabarytu */
6103    box-shadow: 0 4px 12px rgba(227, 6, 19, 0.05);
6104}
6105
6106.trefl-inline-related:hover::before {
6107    transform: scale(1.05);
6108}
6109
6110.trefl-inline-text-wrapper {
6111    flex-grow: 1;
6112}
6113
6114.trefl-inline-related .label {
6115    color: #e30613;
6116    font-weight: 800;
6117    margin-right: 4px;
6118    letter-spacing: 0.2px;
6119}
6120
6121.trefl-inline-related .title {
6122    font-weight: 700;
6123    color: #1a1a1a;
6124    transition: color 0.2s ease;
6125}
6126
6127.trefl-inline-related:hover .title {
6128    color: #e30613;
6129}
6130</style>
6131<a href="https://www.trefl.com/blog/post/jaki-plecak-dla-pierwszoklasisty-wybierz-najlepszy-tornister-dla-swojego-dziecka" class="trefl-inline-related">
6132    <div class="trefl-inline-text-wrapper">
6133        <span class="label">Zobacz także:</span> 
6134        <span class="title">Jaki plecak dla pierwszoklasisty? Wybierz najlepszy tornister dla swojego dziecka!
6135
6136</span>
6137    </div>
6138</a>
6139
6140<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>
6141<h2><strong>FAQ – mądre zabawki dla dzieci</strong></h2>
6142<h3><strong>Co to są mądre zabawki dla dzieci?</strong></h3>
6143<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>
6144<h3><strong>Jakie mądre zabawki dla 6-latka warto wybrać?</strong></h3>
6145<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>
6146<h3><strong>Jakie mądre zabawki dla 7-latka będą dobrym wyborem?</strong></h3>
6147<p>
6147Dla 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>
6148<h3><strong>Czy zabawki edukacyjne muszą przypominać naukę?</strong></h3>
6149<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>
6150<h3><strong>Jakie kreatywne zabawki sprawdzą się dla dzieci?</strong></h3>
6151<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>
6152<h3><strong>Co wybrać dla dziecka do zabawy po szkole?</strong></h3>
6153<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>
6154</article>
6155</div></div></main><footer class="page-footer"><div class="footer content"><template id="trustedshops-badge_6ab4f37e1cb92">
6156</template>
6157<script>
6158window.addEventListener('init-external-scripts', () => {
6159    const template = document.getElementById('trustedshops-badge_6ab4f37e1cb92');
6160    if (template?.content) {
6161        const clone = document.importNode(template.content, true);
6162        document.body.appendChild(clone);
6163    }
6164}, {once: true, passive: true});
6165</script>
6165
6166<div class="container">
6167    <div id="newsletter-form-sm" style="width: 100%; max-width: 1200px; margin: 0 auto;"></div>
6168</div>
6169<section data-el="footer-yarn" class="bg-white py-8 lg:py-16 overflow-clip" aria-hidden="true">
6170    <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 141" class="w-full">
6171        <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>
6172    </svg>
6173</section>
6174
6175
6176<section data-el="footer-social" class="relative z-10">
6177    <ul class="social-menu">
6178                    <li>
6179            <a href="https://www.facebook.com/Trefl.toys/"
6180                                  title="Przejdź na Trefl Facebook"
6181                               target="_blank"                class="text-header-top"
6182            >
6183                <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>
6184            </a>
6185        </li>
6186                    <li>
6187            <a href="https://pl.linkedin.com/company/trefl-s-a-"
6188                                  title="Przejdź na Trefl LinkedIn"
6189                               target="_blank"                class="text-header-top"
6190            >
6191                <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>
6192            </a>
6193        </li>
6194                    <li>
6195            <a href="mailto:[email protected]"
6196                                  title="Wyślij e-mail na [email protected]"
6197                               target="_blank"                class="text-header-top"
6198            >
6199                <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>
6200            </a>
6201        </li>
6202    </ul></section>
6203
6204<section data-el="footer-menu" class="bg-gray-light py-12 lg:py-28" aria-hidden="true">
6205    <div class="container">
6206        <div x-data="{ activeTab: 0 }"
6207         role="tablist"
6208         @keydown.right.prevent.stop="activeTab = Math.min(activeTab + 1, 1)"
6209         @keydown.left.prevent.stop="activeTab = Math.max(activeTab - 1, 0)"
6210         x-defer="intersect"
6211    >
6212
6213        <div class="flex gap-x-8 overflow-x-auto">
6214                                            <button class="px-3.5 py-1 cursor-pointer font-medium transition-colors
6215                                bg-white text-red"
6216                        role="tab"
6217                        @click.prevent="activeTab = 0"
6218                        @keypress.enter="activeTab = 0"
6219                        :aria-controls="'tab-panel-' + 0"
6220                        :aria-selected="activeTab === 0"
6221                        :tabindex="activeTab === 0 ? 0 : -1"
6222                        class=""
6223                        :class="{
6224                            'bg-white text-red': activeTab === 0,
6225                            'hover:bg-white/50 focus:bg-white/50': activeTab !== 0                        }"
6226                >
6227                    Popularne kategorie                </button>
6228                                            <button class="px-3.5 py-1 cursor-pointer font-medium transition-colors
6229                                hover:bg-white/50 focus:bg-white/50"
6230                        role="tab"
6231                        @click.prevent="activeTab = 1"
6232                        @keypress.enter="activeTab = 1"
6233                        :aria-controls="'tab-panel-' + 1"
6234                        :aria-selected="activeTab === 1"
6235                        :tabindex="activeTab === 1 ? 0 : -1"
6236                        class=""
6237                        :class="{
6238                            'bg-white text-red': activeTab === 1,
6239                            'hover:bg-white/50 focus:bg-white/50': activeTab !== 1                        }"
6240                >
6241                    Popularne marki                </button>
6242                    </div>
6243
6244                <div x-show="activeTab === 0"
6245             role="tabpanel"
6246             tabindex="0"
6247             id="'tab-panel-' + 0"
6248             aria-labelledby="'tab-' + 0"
6249             :hidden="activeTab !== 0"
6250                     >
6251            <div class="grid grid-cols-2 md:grid-cols-none md:grid-flow-col md:auto-cols-auto gap-4">
6252                                                        <ul class="list-none mt-7">
6253                                            <li class="[&>
6253a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6254                            
6255<a
6256    href="https://www.trefl.com/puzzle/puzzle-jubileuszowe"
6257    class="__inner-link"
6258     data-menu="menu-64">
6259    Puzzle na 40-lecie Trefl</a>
6260
6261                        </li>
6262                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6263                            
6264<a
6265    href="https://www.trefl.com/puzzle/500-elementow"
6266    class="__inner-link"
6267     data-menu="menu-338">
6268    Puzzle 500 elementów</a>
6269
6270                        </li>
6271                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6272                            
6273<a
6274    href="https://www.trefl.com/puzzle/1000-elementow"
6275    class="__inner-link"
6276     data-menu="menu-65">
6277    Puzzle 1000 elementów</a>
6278
6279                        </li>
6280                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6281                            
6282<a
6283    href="https://www.trefl.com/puzzle/2000-elementow"
6284    class="__inner-link"
6285     data-menu="menu-66">
6286    Puzzle 2000 elementów</a>
6287
6288                        </li>
6289                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6290                            
6291<a
6292    href="https://www.trefl.com/puzzle/3000-elementow"
6293    class="__inner-link"
6294     data-menu="menu-67">
6295    Puzzle 3000 elementów</a>
6296
6297                        </li>
6298                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6299                            
6300<a
6301    href="https://www.trefl.com/puzzle/4000-elementow"
6302    class="__inner-link"
6303     data-menu="menu-68">
6304    Puzzle 4000 elementów</a>
6305
6306                        </li>
6307                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6308                            
6309<a
6310    href="https://www.trefl.com/puzzle/6000-elementow"
6311    class="__inner-link"
6312     data-menu="menu-69">
6313    Puzzle 6000 elementów</a>
6314
6315                        </li>
6316                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6317                            
6318<a
6319    href="https://www.trefl.com/puzzle/prime-uft/prime-9000"
6320    class="__inner-link"
6321     data-menu="menu-70">
6322    Puzzle 9000 elementów</a>
6323
6324                        </li>
6325                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6326                            
6327<a
6328    href="https://www.trefl.com/puzzle/prime-uft/prime-13500"
6329    class="__inner-link"
6330     data-menu="menu-71">
6331    Puzzle 13500 elementów</a>
6332
6333                        </li>
6334                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6335                            
6336<a
6337    href="https://www.trefl.com/puzzle/prime-uft/prime-21000"
6338    class="__inner-link"
6339     data-menu="menu-339">
6340    Puzzle 21000 elementów</a>
6341
6342                        </li>
6343                                        </ul>
6344                                                                            <ul class="list-none mt-7">
6345                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6346                            
6347<a
6348    href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-3-w-1"
6349    class="__inner-link"
6350     data-menu="menu-72">
6351    Puzzle 3 w 1</a>
6352
6353                        </li>
6354                                                                                <li class="[&>
6354a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6355                            
6356<a
6357    href="https://www.trefl.com/puzzle/dla-dzieci/puzzle-4-w-1"
6358    class="__inner-link"
6359     data-menu="menu-73">
6360    Puzzle 4 w 1</a>
6361
6362                        </li>
6363                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6364                            
6365<a
6366    href="https://www.trefl.com/puzzle/prime-uft/velvet"
6367    class="__inner-link"
6368     data-menu="menu-74">
6369    Puzzle Velvet</a>
6370
6371                        </li>
6372                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6373                            
6374<a
6375    href="https://www.trefl.com/puzzle/puzzle-premium-plus-quality"
6376    class="__inner-link"
6377     data-menu="menu-75">
6378    Puzzle Premium Plus</a>
6379
6380                        </li>
6381                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6382                            
6383<a
6384    href="https://www.trefl.com/puzzle/drewniane"
6385    class="__inner-link"
6386     data-menu="menu-76">
6387    Puzzle drewniane</a>
6388
6389                        </li>
6390                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6391                            
6392<a
6393    href="https://www.trefl.com/puzzle/puzzle-filmowe"
6394    class="__inner-link"
6395     data-menu="menu-77">
6396    Puzzle filmowe</a>
6397
6398                        </li>
6399                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6400                            
6401<a
6402    href="https://www.trefl.com/puzzle/puzzle-kosmos"
6403    class="__inner-link"
6404     data-menu="menu-78">
6405    Puzzle kosmos</a>
6406
6407                        </li>
6408                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6409                            
6410<a
6411    href="https://www.trefl.com/puzzle/puzzle-krajobrazy"
6412    class="__inner-link"
6413     data-menu="menu-79">
6414    Puzzle krajobrazy</a>
6415
6416                        </li>
6417                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6418                            
6419<a
6420    href="https://www.trefl.com/puzzle/puzzle-kulinarne"
6421    class="__inner-link"
6422     data-menu="menu-80">
6423    Puzzle kulinarne</a>
6424
6425                        </li>
6426                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6427                            
6428<a
6429    href="https://www.trefl.com/puzzle/puzzle-mapy"
6430    class="__inner-link"
6431     data-menu="menu-81">
6432    Puzzle mapy</a>
6433
6434                        </li>
6435                                        </ul>
6436                                                                            <ul class="list-none mt-7">
6437                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6438                            
6439<a
6440    href="https://www.trefl.com/puzzle/puzzle-miasta"
6441    class="__inner-link"
6442     data-menu="menu-82">
6443    Puzzle miasta</a>
6444
6445                        </li>
6446                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6447                            
6448<a
6449    href="https://www.trefl.com/puzzle/puzzle-obrazy"
6450    class="__inner-link"
6451     data-menu="menu-83">
6452    Puzzle obrazy</a>
6453
6454                        </li>
6455                                                                                <li class="[&>
6455a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6456                            
6457<a
6458    href="https://www.trefl.com/puzzle/puzzle-samochody"
6459    class="__inner-link"
6460     data-menu="menu-84">
6461    Puzzle samochody</a>
6462
6463                        </li>
6464                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6465                            
6466<a
6467    href="https://www.trefl.com/puzzle/puzzle-statki"
6468    class="__inner-link"
6469     data-menu="menu-340">
6470    Puzzle statki</a>
6471
6472                        </li>
6473                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6474                            
6475<a
6476    href="https://www.trefl.com/puzzle/puzzle-zwierzeta"
6477    class="__inner-link"
6478     data-menu="menu-85">
6479    Puzzle zwierzęta</a>
6480
6481                        </li>
6482                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6483                            
6484<a
6485    href="https://www.trefl.com/puzzle/puzzle-swiateczne"
6486    class="__inner-link"
6487     data-menu="menu-86">
6488    Puzzle świąteczne</a>
6489
6490                        </li>
6491                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6492                            
6493<a
6494    href="https://www.trefl.com/puzzle/puzzloramy"
6495    class="__inner-link"
6496     data-menu="menu-87">
6497    PuzzloRamy</a>
6498
6499                        </li>
6500                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6501                            
6502<a
6503    href="https://www.trefl.com/puzzle/fotopuzzle"
6504    class="__inner-link"
6505     data-menu="menu-395">
6506    Fotopuzzle</a>
6507
6508                        </li>
6509                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6510                            
6511<a
6512    href="https://www.trefl.com/puzzle/akcesoria"
6513    class="__inner-link"
6514     data-menu="menu-350">
6515    Akcesoria do puzzli</a>
6516
6517                        </li>
6518                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6519                            
6520<a
6521    href="https://www.trefl.com/gry/rodzinne"
6522    class="__inner-link"
6523     data-menu="menu-88">
6524    Gry rodzinne</a>
6525
6526                        </li>
6527                                        </ul>
6528                                                                            <ul class="list-none mt-7">
6529                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6530                            
6531<a
6532    href="https://www.trefl.com/gry/towarzyskie"
6533    class="__inner-link"
6534     data-menu="menu-89">
6535    Gry towarzyskie</a>
6536
6537                        </li>
6538                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6539                            
6540<a
6541    href="https://www.trefl.com/gry/zrecznosciowe"
6542    class="__inner-link"
6543     data-menu="menu-90">
6544    Gry zręcznościowe</a>
6545
6546                        </li>
6547                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6548                            
6549<a
6550    href="https://www.trefl.com/gry/edukacyjne"
6551    class="__inner-link"
6552     data-menu="menu-91">
6553    Gry edukacyjne dla dzieci</a>
6554
6555                        </li>
6556                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6557                            
6558<a
6559    href="https://www.trefl.com/gry/dla-grup-przedszkoli"
6560    class="__inner-link"
6561     data-menu="menu-447">
6562    Gry dla grup i przedszkoli</a>
6563
6564                        </li>
6565                                                                                <li class="[&>
6565a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6566                            
6567<a
6568    href="https://www.trefl.com/gry/imprezowe"
6569    class="__inner-link"
6570     data-menu="menu-92">
6571    Gry imprezowe</a>
6572
6573                        </li>
6574                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6575                            
6576<a
6577    href="https://www.trefl.com/gry/domino-i-memos"
6578    class="__inner-link"
6579     data-menu="menu-93">
6580    Gry memory</a>
6581
6582                        </li>
6583                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6584                            
6585<a
6586    href="https://www.trefl.com/gry/1st-game"
6587    class="__inner-link"
6588     data-menu="menu-94">
6589    Pierwsze gry / 1st games</a>
6590
6591                        </li>
6592                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6593                            
6594<a
6595    href="https://www.trefl.com/gry/karciane"
6596    class="__inner-link"
6597     data-menu="menu-95">
6598    Gry karciane</a>
6599
6600                        </li>
6601                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6602                            
6603<a
6604    href="https://www.trefl.com/gry/gry-fantasy"
6605    class="__inner-link"
6606     data-menu="menu-98">
6607    Gry fantasy</a>
6608
6609                        </li>
6610                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6611                            
6612<a
6613    href="https://www.trefl.com/gry/5-sekund"
6614    class="__inner-link"
6615     data-menu="menu-96">
6616    Gry 5 sekund</a>
6617
6618                        </li>
6619                                        </ul>
6620                                                                            <ul class="list-none mt-7">
6621                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6622                            
6623<a
6624    href="https://www.trefl.com/gry/boom-boom"
6625    class="__inner-link"
6626     data-menu="menu-97">
6627    Gry Boom Boom</a>
6628
6629                        </li>
6630                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6631                            
6632<a
6633    href="https://www.trefl.com/gry/magajaja"
6634    class="__inner-link"
6635     data-menu="menu-352">
6636    Gry Magajaja</a>
6637
6638                        </li>
6639                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6640                            
6641<a
6642    href="https://www.trefl.com/gry/mistakos"
6643    class="__inner-link"
6644     data-menu="menu-353">
6645    Gry Mistakos</a>
6646
6647                        </li>
6648                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6649                            
6650<a
6651    href="https://www.trefl.com/gry/gry-spy-guy"
6652    class="__inner-link"
6653     data-menu="menu-99">
6654    Gry Spy Guy</a>
6655
6656                        </li>
6657                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6658                            
6659<a
6660    href="https://www.trefl.com/gry/skoczki"
6661    class="__inner-link"
6662     data-menu="menu-101">
6663    Gry Skoczki</a>
6664
6665                        </li>
6666                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6667                            
6668<a
6669    href="https://www.trefl.com/gry/level-up"
6670    class="__inner-link"
6671     data-menu="menu-100">
6672    Gry level up</a>
6673
6674                        </li>
6675                                                                                <li class="[&>
6675a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6676                            
6677<a
6678    href="https://www.trefl.com/gry/chinczyk"
6679    class="__inner-link"
6680     data-menu="menu-102">
6681    Chińczyk</a>
6682
6683                        </li>
6684                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6685                            
6686<a
6687    href="https://www.trefl.com/gry/warcaby"
6688    class="__inner-link"
6689     data-menu="menu-351">
6690    Warcaby</a>
6691
6692                        </li>
6693                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6694                            
6695<a
6696    href="https://www.trefl.com/zabawki/interaktywne"
6697    class="__inner-link"
6698     data-menu="menu-103">
6699    Zabawki interaktywne</a>
6700
6701                        </li>
6702                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6703                            
6704<a
6705    href="https://www.trefl.com/zabawki/klocki/klocki-ceramiczne"
6706    class="__inner-link"
6707     data-menu="menu-104">
6708    Klocki ceramiczne</a>
6709
6710                        </li>
6711                                        </ul>
6712                                                                            <ul class="list-none mt-7">
6713                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6714                            
6715<a
6716    href="https://www.trefl.com/zabawki/klocki/konstrukcyjne"
6717    class="__inner-link"
6718     data-menu="menu-354">
6719    Klocki konstrukcyjne</a>
6720
6721                        </li>
6722                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6723                            
6724<a
6725    href="https://www.trefl.com/zabawki/klocki/klocki-magnetyczne-geomag"
6726    class="__inner-link"
6727     data-menu="menu-105">
6728    Klocki magnetyczne</a>
6729
6730                        </li>
6731                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6732                            
6733<a
6734    href="https://www.trefl.com/zabawki/magiczne-sztuczki"
6735    class="__inner-link"
6736     data-menu="menu-489">
6737    Magiczne Sztuczki</a>
6738
6739                        </li>
6740                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6741                            
6742<a
6743    href="https://www.trefl.com/zabawki/drewniane"
6744    class="__inner-link"
6745     data-menu="menu-106">
6746    Zabawki drewniane</a>
6747
6748                        </li>
6749                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6750                            
6751<a
6752    href="https://www.trefl.com/zabawki/outdoorowe"
6753    class="__inner-link"
6754     data-menu="menu-107">
6755    Zabawki do ogrodu</a>
6756
6757                        </li>
6758                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6759                            
6760<a
6761    href="https://www.trefl.com/zabawki/zestawy-naukowe"
6762    class="__inner-link"
6763     data-menu="menu-108">
6764    Zabawki naukowe</a>
6765
6766                        </li>
6767                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6768                            
6769<a
6770    href="https://www.trefl.com/zabawki/modele"
6771    class="__inner-link"
6772     data-menu="menu-109">
6773    Modele pojazdów</a>
6774
6775                        </li>
6776                                                                                <li class="[&>
6776a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6777                            
6778<a
6779    href="https://www.trefl.com/ksiazki"
6780    class="__inner-link"
6781     data-menu="menu-110">
6782    Książki dla dzieci</a>
6783
6784                        </li>
6785                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6786                            
6787<a
6788    href="https://www.trefl.com/ksiazki/ksiazki-dla-rodzicow"
6789    class="__inner-link"
6790     data-menu="menu-355">
6791    Książki dla rodziców</a>
6792
6793                        </li>
6794                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6795                            
6796<a
6797    href="https://www.trefl.com/produkty-fsc"
6798    class="__inner-link"
6799     data-menu="menu-111">
6800    Produkty FSC</a>
6801
6802                        </li>
6803                                        </ul>
6804                                                </div>
6805        </div>
6806                <div x-show="activeTab === 1"
6807             role="tabpanel"
6808             tabindex="0"
6809             id="'tab-panel-' + 1"
6810             aria-labelledby="'tab-' + 1"
6811             :hidden="activeTab !== 1"
6812             x-cloak        >
6813            <div class="grid grid-cols-2 md:grid-cols-none md:grid-flow-col md:auto-cols-auto gap-4">
6814                                                        <ul class="list-none mt-7">
6815                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6816                            
6817<a
6818    href="https://www.trefl.com/marki/44-cats"
6819    class="__inner-link"
6820     data-menu="menu-113">
6821    44 Cats</a>
6822
6823                        </li>
6824                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6825                            
6826<a
6827    href="https://www.trefl.com/marki/avengers"
6828    class="__inner-link"
6829     data-menu="menu-114">
6830    Avengers</a>
6831
6832                        </li>
6833                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6834                            
6835<a
6836    href="https://www.trefl.com/marki/baby-shark"
6837    class="__inner-link"
6838     data-menu="menu-115">
6839    Baby Shark</a>
6840
6841                        </li>
6842                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6843                            
6844<a
6845    href="https://www.trefl.com/marki/barbie"
6846    class="__inner-link"
6847     data-menu="menu-116">
6848    Barbie</a>
6849
6850                        </li>
6851                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6852                            
6853<a
6854    href="https://www.trefl.com/marki/basia"
6855    class="__inner-link"
6856     data-menu="menu-117">
6857    Basia</a>
6858
6859                        </li>
6860                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6861                            
6862<a
6863    href="https://www.trefl.com/marki/bing"
6864    class="__inner-link"
6865     data-menu="menu-118">
6866    Bing</a>
6867
6868                        </li>
6869                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6870                            
6871<a
6872    href="https://www.trefl.com/marki/bobaski-i-mis"
6873    class="__inner-link"
6874     data-menu="menu-119">
6875    Bobaski i Miś</a>
6876
6877                        </li>
6878                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6879                            
6880<a
6881    href="https://www.trefl.com/marki/cars"
6882    class="__inner-link"
6883     data-menu="menu-120">
6884    Cars</a>
6885
6886                        </li>
6887                                                                                <li class="[&>
6887a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6888                            
6889<a
6890    href="https://www.trefl.com/marki/cocomelon"
6891    class="__inner-link"
6892     data-menu="menu-356">
6893    Cocomelon</a>
6894
6895                        </li>
6896                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6897                            
6898<a
6899    href="https://www.trefl.com/marki/diplodok"
6900    class="__inner-link"
6901     data-menu="menu-121">
6902    Diplodok</a>
6903
6904                        </li>
6905                                        </ul>
6906                                                                            <ul class="list-none mt-7">
6907                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6908                            
6909<a
6910    href="https://www.trefl.com/marki/disney"
6911    class="__inner-link"
6912     data-menu="menu-341">
6913    Disney</a>
6914
6915                        </li>
6916                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6917                            
6918<a
6919    href="#"
6920    class="__inner-link"
6921     data-menu="menu-122">
6922    Dungeons & Dragons</a>
6923
6924                        </li>
6925                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6926                            
6927<a
6928    href="https://www.trefl.com/marki/enchantimals"
6929    class="__inner-link"
6930     data-menu="menu-123">
6931    Enchantimals</a>
6932
6933                        </li>
6934                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6935                            
6936<a
6937    href="https://www.trefl.com/marki/friends"
6938    class="__inner-link"
6939     data-menu="menu-124">
6940    Friends</a>
6941
6942                        </li>
6943                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6944                            
6945<a
6946    href="https://www.trefl.com/marki/kraina-lodu"
6947    class="__inner-link"
6948     data-menu="menu-125">
6949    Frozen / Kraina Lodu</a>
6950
6951                        </li>
6952                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6953                            
6954<a
6955    href="https://www.trefl.com/marki/garfield"
6956    class="__inner-link"
6957     data-menu="menu-342">
6958    Garfield</a>
6959
6960                        </li>
6961                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6962                            
6963<a
6964    href="https://www.trefl.com/marki/harry-potter"
6965    class="__inner-link"
6966     data-menu="menu-126">
6967    Harry Potter</a>
6968
6969                        </li>
6970                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6971                            
6972<a
6973    href="https://www.trefl.com/marki/hello-kitty"
6974    class="__inner-link"
6975     data-menu="menu-343">
6976    Hello Kitty</a>
6977
6978                        </li>
6979                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6980                            
6981<a
6982    href="https://www.trefl.com/marki/kicia-kocia"
6983    class="__inner-link"
6984     data-menu="menu-127">
6985    Kicia Kocia</a>
6986
6987                        </li>
6988                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
6989                            
6990<a
6991    href="https://www.trefl.com/marki/koci-domek-gabi"
6992    class="__inner-link"
6993     data-menu="menu-128">
6994    Koci Domek Gabi</a>
6995
6996                        </li>
6997                                        </ul>
6998                                                                            <ul class="list-none mt-7">
6999                                            <li class="[&>
6999a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7000                            
7001<a
7002    href="https://www.trefl.com/marki/kucyki-pony"
7003    class="__inner-link"
7004     data-menu="menu-129">
7005    Kucyki Pony</a>
7006
7007                        </li>
7008                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7009                            
7010<a
7011    href="https://www.trefl.com/marki/lilo-stitch"
7012    class="__inner-link"
7013     data-menu="menu-130">
7014    Lilo & Stitch</a>
7015
7016                        </li>
7017                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7018                            
7019<a
7020    href="https://www.trefl.com/marki/lol-surprise"
7021    class="__inner-link"
7022     data-menu="menu-344">
7023    LOL Surprise</a>
7024
7025                        </li>
7026                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7027                            
7028<a
7029    href="https://www.trefl.com/marki/minionki"
7030    class="__inner-link"
7031     data-menu="menu-131">
7032    Minionki</a>
7033
7034                        </li>
7035                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7036                            
7037<a
7038    href="https://www.trefl.com/marki/myszka-mickey"
7039    class="__inner-link"
7040     data-menu="menu-132">
7041    Myszka Miki</a>
7042
7043                        </li>
7044                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7045                            
7046<a
7047    href="https://www.trefl.com/marki/myszka-minnie"
7048    class="__inner-link"
7049     data-menu="menu-133">
7050    Myszka Minnie</a>
7051
7052                        </li>
7053                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7054                            
7055<a
7056    href="https://www.trefl.com/marki/park-jurajski"
7057    class="__inner-link"
7058     data-menu="menu-134">
7059    Park Jurajski</a>
7060
7061                        </li>
7062                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7063                            
7064<a
7065    href="https://www.trefl.com/marki/psi-patrol"
7066    class="__inner-link"
7067     data-menu="menu-135">
7068    Psi Patrol</a>
7069
7070                        </li>
7071                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7072                            
7073<a
7074    href="https://www.trefl.com/marki/pusheen"
7075    class="__inner-link"
7076     data-menu="menu-345">
7077    Pusheen</a>
7078
7079                        </li>
7080                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7081                            
7082<a
7083    href="https://www.trefl.com/marki/rainbow-high"
7084    class="__inner-link"
7085     data-menu="menu-136">
7086    Rainbow High</a>
7087
7088                        </li>
7089                                        </ul>
7090                                                                            <ul class="list-none mt-7">
7091                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7092                            
7093<a
7094    href="https://www.trefl.com/marki/rick-i-morty"
7095    class="__inner-link"
7096     data-menu="menu-346">
7097    Rick i Morty</a>
7098
7099                        </li>
7100                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7101                            
7102<a
7103    href="https://www.trefl.com/rodzina-treflikow"
7104    class="__inner-link"
7105     data-menu="menu-137">
7106    Rodzina Treflików</a>
7107
7108                        </li>
7109                                                                                <li class="[&>
7109a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7110                            
7111<a
7112    href="https://www.trefl.com/marki/smerfy"
7113    class="__inner-link"
7114     data-menu="menu-138">
7115    Smerfy</a>
7116
7117                        </li>
7118                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7119                            
7120<a
7121    href="https://www.trefl.com/marki/smiley-world"
7122    class="__inner-link"
7123     data-menu="menu-357">
7124    Smiley World</a>
7125
7126                        </li>
7127                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7128                            
7129<a
7130    href="https://www.trefl.com/marki/spiderman"
7131    class="__inner-link"
7132     data-menu="menu-139">
7133    Spiderman</a>
7134
7135                        </li>
7136                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7137                            
7138<a
7139    href="https://www.trefl.com/marki/spidey"
7140    class="__inner-link"
7141     data-menu="menu-140">
7142    Spidey</a>
7143
7144                        </li>
7145                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7146                            
7147<a
7148    href="https://www.trefl.com/marki/spongebob-kanciastoporty"
7149    class="__inner-link"
7150     data-menu="menu-347">
7151    SpongeBob Kanciastoporty</a>
7152
7153                        </li>
7154                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7155                            
7156<a
7157    href="https://www.trefl.com/marki/spy-guy"
7158    class="__inner-link"
7159     data-menu="menu-358">
7160    Spy Guy</a>
7161
7162                        </li>
7163                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7164                            
7165<a
7166    href="https://www.trefl.com/marki/star-wars"
7167    class="__inner-link"
7168     data-menu="menu-141">
7169    Star Wars</a>
7170
7171                        </li>
7172                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7173                            
7174<a
7175    href="https://www.trefl.com/marki/strazak-sam"
7176    class="__inner-link"
7177     data-menu="menu-142">
7178    Strażak Sam</a>
7179
7180                        </li>
7181                                        </ul>
7182                                                                            <ul class="list-none mt-7">
7183                                            <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7184                            
7185<a
7186    href="https://www.trefl.com/marki/swinka-peppa"
7187    class="__inner-link"
7188     data-menu="menu-143">
7189    Świnka Peppa</a>
7190
7191                        </li>
7192                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7193                            
7194<a
7195    href="https://www.trefl.com/marki/tomek-i-przyjaciele"
7196    class="__inner-link"
7197     data-menu="menu-144">
7198    Tomek i Przyjaciele</a>
7199
7200                        </li>
7201                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7202                            
7203<a
7204    href="https://www.trefl.com/marki/w-glowie-sie-nie-miesci-2"
7205    class="__inner-link"
7206     data-menu="menu-348">
7207    W głowie się nie mieści</a>
7208
7209                        </li>
7210                                                                                <li class="[&>a:hover]:hover:underline [&>a]:w-full [&>a]:block py-1 text-xs md:text-sm">
7211                            
7212<a
7213    href="https://www.trefl.com/marki/wladca-pierscieni"
7214    class="__inner-link"
7215     data-menu="menu-349">
7216    Władca Pierścieni</a>
7217
7218                        </li>
7219                                                </div>
7220        </div>
7221            </div>    </div>
7222</section>
7223
7224<section class="bg-white py-16 relative overflow-clip trefl-bg-logo bg-no-repeat bg-left-bottom"
7225         style="background-size: auto 80%;">
7226    <div class="container grid grid-cols-1 md:grid-cols-4 gap-4">
7227        <div class="col-span-1 relative">
7228            <img src="https://www.trefl.com/static/version1789064390/frontend/Trefl/hyva-trefl/pl_PL/images/logo.svg"
7229                 alt=""
7230                 width="94"
7231                 height="47"
7232                 decoding="async"
7233                 aria-hidden="true"
7234            />
7235
7236                        <div class="mt-10 [&_a:hover]:underline">
7237                <p style="display: block;"><img class="lazyload" alt="" data-src="https://www.trefl.com/media/wysiwyg/logo_small.png"></p>
7238<p>ul. Kontenerowa 25</p>
7239<p>81-155 Gdynia</p>
7240<p><a href="mailto:[email protected]">[email protected]</a></p>
7241<p>+48 58 66 67 333</p>            </div>
7242            
7243                        <div class="mt-10">
7244                
7245<div class="field flex gap-4 items-center">
7246    <label class="label" for="language-selector">
7247        Język:
7248    </label>
7249    <div class="control">
7250        <select class="form-select lowercase select-none"
7251                id="language-selector"
7252                onchange="window.location.href = event.target.value">
7253                            <option value="https://www.trefl.com/"
7254                    selected                >
7255                    polski                </option>
7256                            <option value="https://www.trefl.com/en/"
7257                                    >
7258                    english                </option>
7259                    </select>
7260    </div>
7261</div>
7262            </div>
7263                    </div>
7264        <div class="col-span-3">
7265                        
7266<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;">
7267            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7268                            <li role="menuitem">
7269<a
7270    href="https://www.trefl.com/komunikacja-z-akcjonariuszami"
7271    class="trtre__inner-link"
7272     data-menu="menu-166">
7273    Dla akcjonariuszy</a>
7274</li>
7275                            <li role="menuitem">
7276<a
7277    href="https://www.trefl.com/projekty-unijne"
7278    class="trtre__inner-link"
7279     data-menu="menu-165">
7280    Projekty unijne</a>
7281</li>
7282                            <li role="menuitem">
7283<a
7284    href="https://www.trefl.com/sygnalisci"
7285    class="trtre__inner-link"
7286     data-menu="menu-168">
7287    Sygnaliści</a>
7288</li>
7289                            <li role="menuitem">
7290<a
7291    href="https://www.trefl.com/strategia-podatkowa"
7292    class="trtre__inner-link"
7293     data-menu="menu-167">
7294    Strategia podatkowa</a>
7295</li>
7296                    </ul>
7297            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7298                            <li role="menuitem">    <a
7299        href="/blog"
7300        data-menu="menu-406" class="trtre__inner-link"    >
7301        Blog    </a>
7302
7303</li>
7304                            <li role="menuitem">
7305<a
7306    href="https://www.trefl.com/grupa-trefl"
7307    class="trtre__inner-link"
7308     data-menu="menu-407">
7309    Grupa Trefl</a>
7310</li>
7311                            <li role="menuitem">
7312<a
7313    href="https://www.trefl.com/kariera"
7314    class="trtre__inner-link"
7315     data-menu="menu-408">
7316    Kariera</a>
7317</li>
7318                            <li role="menuitem">    <a
7319        href="https://www.trefl.com/logo-trefl"
7320        data-menu="menu-409" class="trtre__inner-link"    >
7321        Logo Trefl    </a>
7322
7323</li>
7324                            <li role="menuitem">
7325<a
7326    href="https://www.trefl.com/regulamin-materialow-promocyjnych"
7327    class="trtre__inner-link"
7328     data-menu="menu-411">
7329    Materiały promocyjne</a>
7330</li>
7331                            <li role="menuitem">    <a
7332        href="https://b2b.trefl.com/"
7333        data-menu="menu-412" class="trtre__inner-link" target="_blank" rel="noopener"    >
7334        Platforma zamówień B2B    </a>
7335
7336</li>
7337                            <li role="menuitem">
7338<a
7339    href="https://www.trefl.com/b2b"
7340    class="trtre__inner-link"
7341     data-menu="menu-448">
7342    Oferta B2B</a>
7343</li>
7344                            <li role="menuitem">
7345<a
7346    href="https://www.trefl.com/ankieta"
7347    class="trtre__inner-link"
7348     data-menu="menu-413">
7349    Przekaż nam opinię</a>
7350</li>
7351                    </ul>
7352            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7353                            <li role="menuitem">    <a
7354        href="https://katalogi.trefl.com/"
7355        data-menu="menu-150" class="trtre__inner-link" target="_blank" rel="noopener"    >
7356        E-katalog Trefl PL/EN/DE    </a>
7357
7358</li>
7359                            <li role="menuitem">    <a
7360        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/katalog_AW2026.pdf"
7361        data-menu="menu-151" class="trtre__inner-link" target="_blank" rel="noopener"    >
7362        Katalog Puzzle/Gry/Zabawki 2026 AW    </a>
7363
7364</li>
7365                            <li role="menuitem">    <a
7366        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Trefl-Catalogue-SS-2026.pdf"
7367        data-menu="menu-626" class="trtre__inner-link" target="_blank" rel="noopener"    >
7368        Katalog Puzzle/Gry/Zabawki 2026 SS    </a>
7369
7370</li>
7371                            <li role="menuitem">    <a
7372        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Trefl-Catalogue-DE-2025.pdf"
7373        data-menu="menu-336" class="trtre__inner-link" target="_blank" rel="noopener"    >
7374        Katalog Puzzle/Gry DE 2025    </a>
7375
7376</li>
7377                            <li role="menuitem">    <a
7378        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/The-Treflik_Family-Catalogue-SS-2025.pdf"
7379        data-menu="menu-152" class="trtre__inner-link" target="_blank" rel="noopener"    >
7380        Katalog Rodzina Treflików 2025 SS    </a>
7381
7382</li>
7383                            <li role="menuitem">    <a
7384        href="https://trefl-magento-prod.s3.eu-central-1.amazonaws.com/pr/Katalog+Norymberga+2024.pdf"
7385        data-menu="menu-153" class="trtre__inner-link" target="_blank" rel="noopener"    >
7386        Katalog Spielwarenmesse 2024    </a>
7387
7388</li>
7389                            <li role="menuitem">
7390<a
7391    href="https://www.trefl.com/instrukcje-gier-w-jezyku-ukrainskim"
7392    class="trtre__inner-link"
7393     data-menu="menu-159">
7394    Instrukcje gier UA/інструкції до гри</a>
7395</li>
7396                    </ul>
7397            <ul class="flex flex-col [&_a:hover]:underline text-xs gap-2" role="menu">
7398                            <li role="menuitem">
7399<a
7400    href="https://www.trefl.com/regulamin"
7401    class="trtre__inner-link"
7402     data-menu="menu-171">
7403    Regulamin</a>
7404</li>
7405                            <li role="menuitem">
7406<a
7407    href="https://www.trefl.com/polityka-prywatnosci"
7408    class="trtre__inner-link"
7409     data-menu="menu-172">
7410    Polityka prywatności</a>
7411</li>
7412                            <li role="menuitem">
7413<a
7414    href="https://www.trefl.com/dostawa"
7415    class="trtre__inner-link"
7416     data-menu="menu-174">
7417    Dostawa</a>
7418</li>
7419                            <li role="menuitem">
7420<a
7421    href="https://www.trefl.com/formy-platnosci"
7422    class="trtre__inner-link"
7423     data-menu="menu-175">
7424    Formy płatności</a>
7425</li>
7426                            <li role="menuitem">    <a
7427        href="/pomoc#Zwroty"
7428        data-menu="menu-178" class="trtre__inner-link"    >
7429        Zwroty    </a>
7430
7431</li>
7432                            <li role="menuitem">
7433<a
7434    href="https://www.trefl.com/reklamacje"
7435    class="trtre__inner-link"
7436     data-menu="menu-176">
7437    Reklamacje</a>
7438</li>
7439                            <li role="menuitem">
7440<a
7441    href="https://www.trefl.com/reklamacje-puzzle-prime"
7442    class="trtre__inner-link"
7443     data-menu="menu-177">
7444    Reklamacje Puzzle Prime</a>
7445</li>
7446                            <li role="menuitem">    <a
7447        href="https://www.trefl.com/pomoc"
7448        data-menu="menu-179" class="trtre__inner-link"    >
7449        Pomoc / FAQ    </a>
7450
7451</li>
7452                            <li role="menuitem">    <a
7453        href="/contact"
7454        data-menu="menu-169" class="trtre__inner-link"    >
7455        Kontakt    </a>
7456
7457</li>
7458                    </ul>
7459    </div>
7460                    </div>
7461    </div>
7462</section>
7463
7464<div class="container relative">
7465    <button x-data="usercentricsMobile"
7466            @click.prevent="showUserCentricsLayer"
7467            title="Ustawienia&#x20;prywatno&#x015B;ci"
7468            @resize.debounce.100.window="initUsercentricsMobile"
7469            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"
7470            x-show="isAvailable"
7471            x-cloak>
7472        <svg xmlns="http://www.w3.org/2000/svg" height="100%" viewB
7472ox="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>
7473    </button>
7474</div>
7475
7476<script>
7477    function usercentricsMobile() {
7478        return {
7479            isAvailable: false,
7480            originalButton: null,
7481            isInitialized: false,
7482            init() {
7483                if (!this.isInitialized && window.innerWidth <= 768) {
7484                    window.addEventListener('UC_UI_INITIALIZED', function () {
7485                        this.initUsercentricsMobile()
7486                    }.bind(this));
7487                }
7488            },
7489            initUsercentricsMobile() {
7490                if (this.isInitialized || window.innerWidth > 768) {
7491                    return;
7492                }
7493
7494                if (typeof UC_UI !== 'undefined' && 'showSecondLayer' in UC_UI) {
7495                    this.isAvailable = true;
7496                    this.isInitialized = true;
7497                    this.originalButton = document.getElementById('usercentrics-root');
7498
7499                                        if (localStorage.getItem('uc_user_interaction') === 'true') {
7500                        this.toggleOriginalButton(false);
7501                    }
7502
7503                    window.addEventListener('UC_UI_VIEW_CHANGED', (event) => {
7504                        const view = event.detail?.view || 'NONE';
7505
7506                        if (view === 'PRIVACY_BUTTON' || view === 'NONE') {
7507                            this.toggleOriginalButton(false);
7508                        } else if (view === 'SECOND_LAYER') {
7509                            this.toggleOriginalButton(true);
7510                        }
7511                    });
7512                }
7513            },
7514            showUserCentricsLayer() {
7515                if (typeof UC_UI !== 'undefined' && 'showSecondLayer' in UC_UI) {
7516                    UC_UI.showSecondLayer()
7517                }
7518            },
7519            toggleOriginalButton(state) {
7520                if (!this.originalButton) {
7521                    return;
7522                }
7523                this.originalButton.classList.toggle('hidden', !state);
7524            },
7525        }
7526    }
7527    window.addEventListener(
7528        'alpine:init',
7529        () => Alpine.data('usercentricsMobile', usercentricsMobile),
7530        {once: true}
7531    )
7532</script>
7532
7533
7534<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"
7535     x-data="initMobileNavBar()"
7536     @private-content-loaded.window="getData(event.detail.data)"
7537>
7538    <!--Wishlist Icon-->
7539            <a href="https://www.trefl.com/wishlist/"
7540           class="mobile-nav-bar-item"
7541           title="Ulubione"
7542        >
7543            <span class="mobile-nav-bar-item-icon">
7544                <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>
7545            </span>
7546
7547            <span class="mobile-nav-bar-item-label">
7548                Ulubione            </span>
7549        </a>
7550    
7551    <!--Cart Icon-->
7552    <a id="menu-cart-icon"
7553       class="mobile-nav-bar-item"
7554       x-ref="cartButton"
7555       :aria-disabled="isCartEmpty()"
7556       :aria-label="`
7557            View&#x20;cart,
7558            ${isCartEmpty()
7559                ? 'Koszyk&#x20;jest&#x20;pusty'
7560                : cart.summary_count > 1
7561                    ? hyva.str('&#x25;1&#x20;element&#xF3;w', cart.summary_count)
7562                    : hyva.str('&#x25;1&#x20;item', cart.summary_count)
7563            }`
7564       "
7565       href="https://www.trefl.com/checkout/cart/index/"
7566       title="View&#x20;cart"
7567    >
7568        <span class="mobile-nav-bar-item-icon relative" aria-hidden="true">
7569            <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>
7570            <span
7571                x-text="cart.summary_count"
7572                x-show="!isCartEmpty()"
7573                x-cloak
7574                class="absolute -top-1 -right-2.5 h-4 px-1.5 rounded-full bg-primary text-white
7575                       font-semibold leading-4 uppercase tabular-nums"
7576                style="font-size: 10px;"
7577            ></span>
7578        </span>
7579
7580        <span class="mobile-nav-bar-item-label">
7581            Koszyk        </span>
7582    </a>
7583
7584    <!--Customer-->
7585    
7586<a href="https://www.trefl.com/customer/account/login/"
7587   class="mobile-nav-bar-item"
7588>
7589    <span class="mobile-nav-bar-item-icon">
7590        <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>
7591    </span>
7592
7593    <span class="mobile-nav-bar-item-label">
7594        Zaloguj się    </span>
7595</a>
7596
7597
7598    <!--Mobile menu trigger-->
7599    <label for="mobile-menu-switch" class="mobile-nav-bar-item">
7600        <span class="mobile-nav-bar-item-icon">
7601            <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>
7602        </span>
7603
7604        <span class="mobile-nav-bar-item-label">
7605            Menu        </span>
7606    </label>
7607</div>
7608
7609<script>
7610    function initMobileNavBar() {
7611        return {
7612            cart: {},
7613            getData(data) {
7614                if (data.cart) { this.cart = data.cart }
7615            },
7616            isCartEmpty() {
7617                return !this.cart.summary_count
7618            },
7619        }
7620    }
7621</script>
7621
7622</div></footer><template id="trustedshops-badge_6ab4f37e250e9">
7623            <!-- added by Trusted Shops app: Start -->
7624                
7624<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>
7624                <!-- End -->
7625    </template>
7626<script>
7627window.addEventListener('init-external-scripts', () => {
7628    const template = document.getElementById('trustedshops-badge_6ab4f37e250e9');
7629    if (template?.content) {
7630        const clone = document.importNode(template.content, true);
7631        document.body.appendChild(clone);
7632    }
7633}, {once: true, passive: true});
7634</script>
7634
7635
7636
vendor: 2,348 bytes, lines 7637-7696
7637<script>
7638    (() => {
7639        function src_default(Alpine) {
7640            Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
7641                let evaluate = evaluateLater(expression);
7642                let options = {
7643                    rootMargin: getRootMargin(modifiers),
7644                    threshold: getThreshold(modifiers)
7645                };
7646                let observer = new IntersectionObserver((entries) => {
7647                    entries.forEach((entry) => {
7648                        if (entry.isIntersecting === (value === "leave"))
7649                            return;
7650                        evaluate();
7651                        modifiers.includes("once") && observer.disconnect();
7652                    });
7653                }, options);
7654                observer.observe(el);
7655                cleanup(() => {
7656                    observer.disconnect();
7657                });
7658            }));
7659        }
7660        function getThreshold(modifiers) {
7661            if (modifiers.includes("full"))
7662                return 0.99;
7663            if (modifiers.includes("half"))
7664                return 0.5;
7665            if (!modifiers.includes("threshold"))
7666                return 0;
7667            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
7668            if (threshold === "100")
7669                return 1;
7670            if (threshold === "0")
7671                return 0;
7672            return Number(`.${threshold}`);
7673        }
7674        function getLengthValue(rawValue) {
7675            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
7676            return match ? match[1] + (match[2] || "px") : void 0;
7677        }
7678        function getRootMargin(modifiers) {
7679            const key = "margin";
7680            const fallback = "0px 0px 0px 0px";
7681            const index = modifiers.indexOf(key);
7682            if (index === -1)
7683                return fallback;
7684            let values = [];
7685            for (let i = 1; i < 5; i++) {
7686                values.push(getLengthValue(modifiers[index + i] || ""));
7687            }
7688            values = values.filter((v) => v !== void 0);
7689            return values.length ? values.join(" ").trim() : fallback;
7690        }
7691
7692        document.addEventListener("alpine:init", () => {
7693            window.Alpine.plugin(src_default);
7694        });
7695    })();
7696</script>
vendor: 1 bytes, line 7696
7696
7697<script>
7698    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"})) {
7699        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
7700    }
7701</script>
vendor: 1 bytes, line 7701
7701
7702<script>
7703    (function () {
7704        "use strict";
7705
7706        const hasAlpine = new Promise(resolve => {
7707            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
7708        });
7709
7710        const hasInteract = new Promise(resolve => {
7711            (events => {
7712                const onInteract = () => {
7713                    resolve();
7714                    events.forEach(type => window.removeEventListener(type, onInteract));
7715                }
7716                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
7717            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
7718        });
7719
7720        const onIntersect = (el) => {
7721            return new Promise(resolve => {
7722                const observer = new IntersectionObserver(entries => {
7723                    for (const entry of entries) {
7724                        if (entry.isIntersecting) {
7725                            observer.disconnect()
7726                            resolve();
7727                        }
7728                    }
7729                }, {});
7730                observer.observe(el);
7731            });
7732        }
7733
7734        function runComponent(el) {
7735            hasAlpine.then(() => {
7736                el.removeAttribute('x-ignore');
7737                queueMicrotask(() => Alpine.initTree(el));
7738            });
7739        }
7740
7741        function initDeferredComponents() {
7742            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
7743                el.setAttribute('x-ignore', '');
7744                const deferUntil = (el.getAttribute('x-defer') || '').trim();
7745                switch (deferUntil) {
7746                    case 'interact':
7747                        hasInteract.then(() => runComponent(el));
7748                        break;
7749                    case 'intersect':
7750                        onIntersect(el).then(() => runComponent(el))
7751                        break;
7752                    case 'idle':
7753                        window.requestIdleCallback
7754                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
7755                            : setTimeout(() => runComponent(el), 4000);
7756                        break;
7757                    case 'eager':
7758                        runComponent(el);
7759                        break;
7760                    default:
7761                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
7762                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
7763                        }
7764                }
7765            });
7766        }
7767
7768        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
7769    })()
7770</script>
vendor: 1 bytes, line 7770
7770
vendor: 1,455 bytes, lines 7771-7773
7771<script>
7772(()=>{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)});})();
7773</script>
7773
7774
7775<script>
7776    function createAjaxLoader() {
7777        const loader = document.createElement('div');
7778        loader.className = 'absolute inset-0 flex justify-center items-center loader';
7779        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">
7780    <style>
7781        @keyframes spinner-ball-triangle1 {
7782            0% { transform: translate(0%, 0%); }
7783            33% { transform: translate(38%, -79%); }
7784            66% { transform: translate(77%, 0%); }
7785            100% { transform: translate(0%, 0%); }
7786        }
7787
7788        @keyframes spinner-ball-triangle2 {
7789            0% { transform: translate(0%, 0%); }
7790            33% { transform: translate(38%, 79%); }
7791            66% { transform: translate(-38%, 79%); }
7792            100% { transform: translate(0%, 0%); }
7793        }
7794
7795        @keyframes spinner-ball-triangle3 {
7796            0% { transform: translate(0%, 0%); }
7797            33% { transform: translate(-77%, 0%); }
7798            66% { transform: translate(-38%, -79%); }
7799            100% { transform: translate(0%, 0%); }
7800        }
7801    </style>
7802    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
7803    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
7804    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
7805<title>&#x141;aduj&#x119;...</title></svg>
7806`;
7807        return loader;
7808    }
7809
7810    function addAjaxLoader(button, loader) {
7811        button.setAttribute('data-label', button.getAttribute('aria-label'));
7812        button.removeAttribute('aria-label');
7813        button.prepend(loader);
7814        button.classList.add('relative', '[&>:not(.loader)]:invisible');
7815        button.disabled = true;
7816    }
7817
7818    function removeAjaxLoader(button, loader) {
7819        button.setAttribute('aria-label', button.getAttribute('data-label'));
7820        button.removeAttribute('data-label');
7821        loader.remove();
7822        button.classList.remove('[&>:not(.loader)]:invisible');
7823        button.disabled = false;
7824    }
7825
7826    async function addAjaxCartForm(form, extraDelay = 500) {
7827        if (!form) return;
7828        event.preventDefault();
7829
7830        if (!form.reportValidity()) {
7831            return form.submit();
7832        }
7833
7834        const formData = new FormData(form);
7835        const button = form.querySelector('button:not([type=button], [type=reset])')
7836            ? form.querySelector('button:not([type=button], [type=reset])')
7837            : document.getElementById('product-addtocart-button');
7838        const loader = createAjaxLoader(button);
7839        const formUenc = hyva.getUenc();
7840        const postUrl = event.target.action.replace('%25uenc%25', formUenc);
7841
7842        let bodyUrl = new URLSearchParams(formData);
7843        bodyUrl.append("uenc", formUenc);
7844        addAjaxLoader(button, loader);
7845
7846        try {
7847            const response = await fetch(postUrl, {
7848                method: 'POST',
7849                body: bodyUrl.toString(),
7850                mode: "cors",
7851                credentials: "include",
7852                headers: {
7853                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
7854                    'X-Requested-With': 'XMLHttpRequest'
7855                }
7856            });
7857
7858            if (!response.ok) {
7859                return form.submit();
7860            } else {
7861                window.dispatchEvent(new CustomEvent("cart-item-added", {
7862                    detail: {
7863                        form
7864                    }
7865                }));
7866            }
7867
7868            if (response.redirected) {
7869                return window.location.href = response.url;
7870            }
7871
7872            const responseData = await response.json();
7873            if (responseData.backUrl) {
7874                return window.location.href = responseData.backUrl;
7875            }
7876
7877            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
7878
7879                    } catch (err) {
7880            console.warn(err);
7881            window.dispatchEvent(new CustomEvent('product-addtocart-error'));
7882
7883            if (typeof window.dispatchMessages === "undefined") return;
7884            window.dispatchMessages([{
7885                text:'Wyst\u0105pi\u0142\u0020problem\u0020podczas\u0020dodawania\u0020do\u0020koszyka.',
7886                type: 'error'
7887            }], 5000);
7888        } finally {
7889            setTimeout(() => removeAjaxLoader(button, loader), extraDelay);
7890        }
7891    }
7892
7893    function removeAjaxCartForm(form) {
7894        removeEventListener('submit', form);
7895    }
7896
7897    document.addEventListener('submit', function(event) {
7898        if (!event.target.matches('#product_addtocart_form, .product_addtocart_form')) return;
7899        addAjaxCartForm(event.target, 500);
7900    });
7901</script>
7901
7902
7903
7904
7905
7906<script>
7907    const CONFETTI_CONFIG = {
7908        productPageAddToCartId: 'product-addtocart-button',
7909        catalogAddToCartSelector: '[data-addto="cart"]'
7910    };
7911
7912    window.addEventListener('init-external-scripts', () => {
7913        if (document.querySelector(CONFETTI_CONFIG.catalogAddToCartSelector) || document.getElementById(CONFETTI_CONFIG.productPageAddToCartId)) {
7914            const confetti_script = document.createElement('script');
7915            confetti_script.src = 'https\u003A\u002F\u002Fwww.trefl.com\u002Fstatic\u002Fversion1789064390\u002Ffrontend\u002FTrefl\u002Fhyva\u002Dtrefl\u002Fpl_PL\u002Fjs\u002Fcanvas\u002Dconfetti.min.js';
7916            confetti_script.onload = () => initAddToCartConfetti();
7917            document.head.appendChild(confetti_script);
7918        }
7919    }, { once: true, passive: true });
7920
7921    function initAddToCartConfetti() {
7922        const CONFETTI_OPTIONS = {
7923            spread: 50,
7924            disableForReducedMotion: true,
7925            useWorker: true,
7926            resize: true,
7927            colors: [
7928                '#8bd93e',
7929                '#de0712',
7930                '#fbaf5d',
7931                '#2e3192'
7932            ],
7933        }
7934
7935        function randomInRange(min, max) {
7936            return Math.random() * (max - min) + min;
7937        }
7938
7939        function celebrateAddToCart(triggeringElement) {
7940            const { top, height, left, width, } = triggeringElement.getBoundingClientRect();
7941            const x = (left + width / 2) / window.innerWidth;
7942            const y = (top + height / 2) / window.innerHeight;
7943
7944            confetti({
7945                ...CONFETTI_OPTIONS,
7946                origin: { x, y},
7947                angle: randomInRange(55, 125),
7948                spread: randomInRange(50, 70),
7949                particleCount: randomInRange(100, 140),
7950            });
7951        }
7952
7953        window.addEventListener('cart-item-added', (event) => {
7954            if (typeof confetti !== 'function') {
7955                return
7956            }
7957
7958            const eventForm = event.detail?.form;
7959            const confettiElement = eventForm.querySelector(CONFETTI_CONFIG.catalogAddToCartSelector)
7960                || document.getElementById(CONFETTI_CONFIG.productPageAddToCartId)
7961                || eventForm;
7962
7963            celebrateAddToCart(confettiElement);
7964        });
7965    }
7966</script>
7966
7967
7968<script type="module"
7969        src="https://www.trefl.com/static/version1789064390/frontend/Trefl/hyva-trefl/pl_PL/Hyva_Theme/js/alpine3.min.js"
7970        defer
7971        crossorigin
7972></script>
vendor: 1 bytes, line 7972
7972
7973<script>
7974    'use strict';
7975    function dispatchMessages(messages, hideAfter) {
7976        const messagesEvent = new CustomEvent("messages-loaded", {
7977            detail: {
7978                messages: messages,
7979                hideAfter: hideAfter
7980            }
7981        });
7982        window.dispatchEvent(messagesEvent);
7983    }
7984
7985    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
7986        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
7987    }
7988
7989    (function( hyva, undefined ) {
7990
7991        hyva.initFormKey = () => {
7992            const inputSelector = 'input[name="form_key"]',
7993                formKey = hyva.getFormKey();
7994
7995            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
7996                input.value = formKey
7997            });
7998        }
7999
8000        hyva.initMessages = () => {
8001            try {
8002                const messages = hyva.getCookie('mage-messages');
8003                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];
8004
8005                dispatchMessages(window.mageMessages);
8006
8007                                // empty `mage-messages` cookie
8008                const skipSetDomain = true;
8009                hyva.setCookie('mage-messages','', -1, skipSetDomain);
8010
8011            } catch (error) {
8012                console.warn('Error parsing Cookie Messages:', error);
8013            }
8014        }
8015
8016        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
8017        hyva.alpineInitialized(hyva.initMessages)
8018
8019    }( window.hyva = window.hyva || {} ));
8020</script>
vendor: 1 bytes, line 8020
8020
8021<script>
8022    'use strict';
8023    {
8024        const private_content_key = 'mage-cache-storage';
8025        const private_content_expire_key = 'mage-cache-timeout';
8026        const private_content_version_key = 'private_content_version';
8027        const section_data_ids_key = 'section_data_ids';
8028        const mage_cache_session_id_key = 'mage-cache-sessid';
8029        const last_visited_store_key = 'last_visited_store';
8030
8031        const ttl = 3600;
8032
8033        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
8034            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
8035        }
8036
8037        function loadSectionData () {
8038            const browserStorage = hyva.getBrowserStorage();
8039            if (!browserStorage) {
8040                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
8041                    [{
8042                        type: "warning",
8043                        text: "Please enable LocalStorage in your browser."
8044                    }]
8045                );
8046                return;
8047            }
8048            try {
8049                let isInvalid = false;
8050
8051                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
8052                    isInvalid = true;
8053                }
8054                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
8055
8056                if (!hyva.getCookie(mage_cache_session_id_key)) {
8057                    isInvalid = true;
8058                    browserStorage.removeItem(private_content_key);
8059                    const skipSetDomain = true;
8060                    const days = false;
8061                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
8062                }
8063
8064                const cookieVersion = hyva.getCookie(private_content_version_key);
8065                const storageVersion = browserStorage.getItem(private_content_version_key);
8066
8067                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
8068                    isInvalid = true;
8069                }
8070
8071                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
8072                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
8073                    browserStorage.removeItem(private_content_key);
8074                }
8075
8076                if (isInvalid && cookieVersion) {
8077                    fetchPrivateContent([]);
8078                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
8079                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
8080                    if (
8081                        privateContent &&
8082                        privateContentExpires &&
8083                        privateContent.cart &&
8084                        privateContent.customer
8085                    ) {
8086                        dispatchPrivateContent(privateContent);
8087                    } else {
8088                        fetchPrivateContent([]);
8089                    }
8090                } else {
8091                    if (document.getElementById('default-section-data')) {
8092                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
8093                        dispatchPrivateContent(privateContent);
8094                    } else {
8095                        dispatchPrivateContent({});
8096                    }
8097                }
8098
8099            } catch (error) {
8100                console.warn('Error retrieving Private Content:', error);
8101            }
8102        }
8103
8104        hyva.alpineInitialized(loadSectionData)
8105        window.addEventListener('reload-customer-section-data', loadSectionData);
8106
8107        window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data);
8108
8109        function dispatchPrivateContent(data) {
8110
8111            const privateContentEvent = new CustomEvent("private-content-loaded", {
8112                detail: {
8113                    data: window.processSectionDataBeforeDispatch(data)
8114                }
8115            });
8116            window.dispatchEvent(privateContentEvent);
8117        }
8118
8119        function fetchPrivateContent(sections) {
8120            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
8121                method: 'GET',
8122                headers: {
8123                    'Content-Type': 'application/json',
8124                    'X-Requested-With': 'XMLHttpRequest'
8125                }
8126            })
8127                .then(response => response.ok && response.json())
8128                .then(
8129                    data => {
8130                        if (data) {
8131                            try {
8132                                const browserStorage = hyva.getBrowserStorage();
8133
8134                                // merge new data preserving non-invalidated sections
8135                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};
8136
8137                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
8138                                    delete oldSectionData['checkout-data'];
8139                                }
8140                                const newSectionData = Object.assign(oldSectionData, data);
8141
8142                                dispatchPrivateContent(newSectionData);
8143
8144                                // don't persist messages, they've been dispatched already
8145                                if (newSectionData.messages && newSectionData.messages.messages ) {
8146                                    newSectionData.messages.messages = [];
8147                                }
8148
8149                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
8150
8151                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
8152                                browserStorage.setItem(private_content_expire_key, expiresAt);
8153
8154                                const newCookieVersion = hyva.getCookie(private_content_version_key);
8155                                browserStorage.setItem(private_content_version_key, newCookieVersion);
8156
8157                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
8158                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
8159                                hyva.setCookie(
8160                                    section_data_ids_key,
8161                                    JSON.stringify(
8162                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
8163                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
8164                                            return sectionDataIds;
8165                                        }, {})
8166                                    ),
8167                                    false,
8168                                    true
8169                                );
8170                            } catch (error) {
8171                                console.warn("Couldn't store privateContent", error);
8172                            }
8173                        }
8174                    }
8175                );
8176        }
8177    }
8178</script>
vendor: 1 bytes, line 8178
8178
8179<script>
8180    (() => {
8181        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
8182    })()
8183</script>
vendor: 1 bytes, line 8183
8183
8184<script>
8185    (events => {
8186        const dispatchUserInteractionEvent = () => {
8187            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
8188            window.dispatchEvent(new Event('init-external-scripts'))
8189        };
8190        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
8191    })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown'])
8192</script>
8192
8193
8194<script type="application/ld+json">
8195{
8196"@context": "https://schema.org/",
8197"@type": "WebSite",
8198"url": "https://www.trefl.com/",
8199"potentialAction": {
8200"@type": "SearchAction",
8201"target": "https://www.trefl.com/catalogsearch/result/?q={search_term_string}",
8202"query-input": "required name=search_term_string"
8203}
8204}
8205</script>
8205<script>
8206    'use strict';
8207
8208    const grecaptchaV2LoadCallbacks = [];
8209
8210    function executeRecaptchaLoadCallbacks () {
8211        while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) {
8212            const callback = grecaptchaV2LoadCallbacks.pop();
8213            typeof callback === 'string' ? window[callback]() : callback();
8214        }
8215    }
8216
8217    (function() {
8218        const loadRecaptchaScript = (event) => {
8219
8220            if (window.grecaptcha || !event.target.form) {
8221                return;
8222            }
8223
8224            const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks';
8225            const siteKey = '6LfQvvEiAAAAANp2t9xf_A7oO5yxUbASHE3tZjzo';
8226            const script = document.createElement('script');
8227            script.type = 'text/javascript';
8228            script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`;
8229            script.async = true;
8230            document.head.appendChild(script);
8231
8232            script.addEventListener('load', () => {
8233                Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled'));
8234            });
8235        }
8236
8237        window.forceLoadRecaptchaScript = (form) => {
8238            loadRecaptchaScript({target: {form: form || 'dummy'}});
8239            executeRecaptchaLoadCallbacks();
8240        };
8241
8242        document.body.addEventListener('input', loadRecaptchaScript, { once: true });
8243        document.body.addEventListener('focus', loadRecaptchaScript, { once: true });
8244
8245    }());
8246
8247</script>
vendor: 1 bytes, line 8247
8247
8248<script>
8249    'use strict';
8250
8251    (function () {
8252        const modals = [];
8253        const excludedFromFocusTrapping = new Set();
8254
8255        function trapFocusInNextModalWithOverlay() {
8256            for (let idx = modals.length -1; idx >= 0; idx--) {
8257                const nextOnStack = modals[idx];
8258                const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name];
8259                if (! isOverlayDisabled(nextDialogElement)) {
8260                    hyva.trapFocus(nextDialogElement);
8261                    break;
8262                }
8263            }
8264        }
8265
8266        function focusables(dialogElement) {
8267            const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
8268            return Array.from(dialogElement.querySelectorAll(selector))
8269                .filter(el => !el.hasAttribute('disabled'));
8270        }
8271
8272        function firstVisible(elements) {
8273            const a = Array.from(elements);
8274            for (let i = 0; i < a.length; i++) {
8275                if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i];
8276            }
8277            return null;
8278        }
8279
8280        function isInViewport(element) {
8281            const rect = element && element.getBoundingClientRect();
8282            return rect &&
8283                rect.top >= 0 &&
8284                rect.left >= 0 &&
8285                rect.right <= window.innerWidth &&
8286                rect.bottom <= window.innerHeight;
8287        }
8288
8289        function setFocusAfterTransition(dialogElement, duration) {
8290                        const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]'));
8291            const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]'));
8292            next: for (let candidate of candidates) {
8293                for (let child of nested) {
8294                    if (child.contains(candidate)) continue next;
8295                }
8296                setTimeout(() => candidate.focus(), 50);
8297                break;
8298            }
8299            window.setTimeout(() => {
8300                const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) ||
8301                    focusables(dialogElement)[0] ||
8302                    null;
8303                focusElement && isInViewport(focusElement) && focusElement.focus();
8304            }, Math.max(1, duration));
8305        }
8306
8307        function determineTrigger($refs, dialog, trigger) {
8308                        if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) {
8309                return dialog.target;
8310            }
8311                        if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) {
8312                return trigger.target;
8313            }
8314                        if (typeof trigger === 'string') {
8315                try {
8316                    return $refs[trigger] || document.querySelector(trigger)
8317                } catch (e) {}
8318            }
8319                        if (trigger instanceof Element) {
8320                return trigger;
8321            }
8322
8323                        return null;
8324        }
8325
8326        function isOverlayDisabled(dialog) {
8327            return dialog && dialog.hasAttribute('x-no-overlay')
8328        }
8329
8330        function areRemainingModalsWithoutOverlay(modals)
8331        {
8332            const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled);
8333
8334            return overflowDisabled.length === modals.length;
8335        }
8336
8337        window.hyva.modal = function(options = {}) {
8338                        if (this.$el && this.$el.dataset && this.$el.dataset.options) {
8339                try {
8340                    options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}'));
8341                } catch (e) {
8342                    throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON');
8343                }
8344            }
8345
8346            const config = Object.assign({
8347                dialog: 'dialog',                 duration: 300,                 transitionEnter: 'transition ease-out duration-300',
8348                transitionEnterStart: 'opacity-0',
8349                transitionEnterEnd: 'opacity-100',
8350                transitionLeave: 'transition ease-in duration-300',
8351                transitionLeaveStart: 'opacity-100',
8352                transitionLeaveEnd: 'opacity-0',
8353            }, options);
8354            let lastHide = 0;
8355
8356            return {
8357                opened: {},
8358                show(dialog, trigger) {
8359                    const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger);
8360                    const name = typeof dialog === 'string' ? dialog : config.dialog;
8361                    const dialogElement = this.$refs[name];
8362                    if (! dialogElement) {
8363                                                return;
8364                    }
8365                    const useOverlay = ! dialogElement.hasAttribute('x-no-overlay');
8366
8367                    dialogElement.scrollTop = 0;
8368
8369                                        if (this.opened[name]) {
8370                        return;
8371                    }
8372
8373                    if (focusTargetAfterHide) {
8374                        focusTargetAfterHide.setAttribute('aria-expanded', 'true');
8375                    }
8376
8377                    this.opened[name] = true;
8378                    useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement));
8379                    setFocusAfterTransition(dialogElement, config.duration);
8380
8381                    const frame = {name, instance: this, focusTarget: focu
8381sTargetAfterHide, time: Date.now()};
8382
8383                    modals.push(frame);
8384                    if (useOverlay) {
8385                        document.body.classList.add('overflow-hidden');
8386                    }
8387                    return new Promise(resolve => frame.resolve = resolve);
8388                },
8389                cancel() {
8390                    this.hide(false);
8391                },
8392                ok() {
8393                    this.hide(true);
8394                },
8395                hide(value) {
8396                                        if (Date.now() - lastHide < config.duration) {
8397                        return;
8398                    }
8399                    lastHide = Date.now();
8400
8401                    const modal = modals.pop() || {};
8402                    if (! modal.instance) {
8403                        return;
8404                    }
8405
8406                    const name = modal.name;
8407                    this.opened[name] = false;
8408                    hyva.releaseFocus(modal.instance.$refs[modal.name])
8409                    trapFocusInNextModalWithOverlay();
8410
8411                    const nextFocusAfterHide = modal.focusTarget;
8412                    nextFocusAfterHide && setTimeout(() => {
8413                        nextFocusAfterHide.setAttribute('aria-expanded', 'false');
8414                        nextFocusAfterHide.focus()
8415                    }, config.duration);
8416
8417                    if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) {
8418                        document.body.classList.remove('overflow-hidden');
8419                    }
8420
8421                    modal.resolve(value);
8422                },
8423                overlay(dialog) {
8424                    dialog = this.$el.dataset.dialogRefName || dialog;
8425                    const name = typeof dialog === 'string' ? dialog : config.dialog;
8426                    return {
8427                        ['x-show']() {
8428                            return this.opened[name]
8429                        },
8430                        ['x-transition:enter']: config.transitionEnter,
8431                        ['x-transition:enter-start']: config.transitionEnterStart,
8432                        ['x-transition:enter-end']: config.transitionEnterEnd,
8433                        ['x-transition:leave']: config.transitionLeave,
8434                        ['x-transition:leave-start']: config.transitionLeaveStart,
8435                        ['x-transition:leave-end']: config.transitionLeaveEnd,
8436                        ['@hyva-modal-show.window'](event) {
8437                            event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide)
8438                        }
8439                    };
8440                },
8441                showDialogOnInit() {
8442                    const parent = this.$el.closest('[data-dialog-ref-name]');
8443                    if (parent && parent.dataset.dialogRefName) {
8444                        this.$dispatch('hyva-modal-show', {dialog: parent.dataset.dialogRefName})
8445                    }
8446                }
8447            };
8448        }
8449
8450        window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1]
8451
8452        window.hyva.modal.pop = function () {
8453            if (modals.length > 0) {
8454                const modal = modals[modals.length -1];
8455                modal.instance.hide();
8456            }
8457        }
8458
8459        window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {
8460            typeof selectors === 'string' || selectors instanceof String
8461                ? excludedFromFocusTrapping.add(selectors)
8462                : selectors.map(selector => excludedFromFocusTrapping.add(selector));
8463        }
8464
8465        window.hyva.modal.eventListeners = {
8466            keydown: event => {
8467                if (event.key === 'Escape') {
8468                    window.hyva.modal.pop();
8469                }
8470            },
8471                        click: event => {
8472                if (modals.length > 0) {
8473                    const modal = modals[modals.length -1];
8474                    const dialog = modal.instance.$refs[modal.name];
8475                    if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago
8476                        ! isOverlayDisabled(dialog) && // if dialog has overlay
8477                        ! dialog.contains(event.target)) { // if click is outside of dialog
8478                        modal.instance.hide();
8479                    }
8480                }
8481            }
8482        };
8483
8484        document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown);
8485
8486        document.addEventListener('click', window.hyva.modal.eventListeners.click);
8487    })();
8488    window.addEventListener('alpine:init', () => {
8489        Alpine.data('hyvaModal', window.hyva.modal);
8490    }, {once: true});
8491</script>
8491
8492
8493<section x-data="{isLoading: false}"
8494         @amgdpr-loading-start.window="isLoading = true" @amgdpr-loading-stop.window="isLoading = false">
8495    <div
8496    class="z-50 fixed inset-0 grid place-items-center bg-white/70 text-slate-800"
8497    x-cloak
8498    x-show="isLoading"
8499    x-transition.opacity.duration.200ms
8500>
8501    <div class="flex gap-10 items-center p-4">
8502        <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">
8503    <style>
8504        @keyframes spinner-ball-triangle1 {
8505            0% { transform: translate(0%, 0%); }
8506            33% { transform: translate(38%, -79%); }
8507            66% { transform: translate(77%, 0%); }
8508            100% { transform: translate(0%, 0%); }
8509        }
8510
8511        @keyframes spinner-ball-triangle2 {
8512            0% { transform: translate(0%, 0%); }
8513            33% { transform: translate(38%, 79%); }
8514            66% { transform: translate(-38%, 79%); }
8515            100% { transform: translate(0%, 0%); }
8516        }
8517
8518        @keyframes spinner-ball-triangle3 {
8519            0% { transform: translate(0%, 0%); }
8520            33% { transform: translate(-77%, 0%); }
8521            66% { transform: translate(-38%, -79%); }
8522            100% { transform: translate(0%, 0%); }
8523        }
8524    </style>
8525    <circle cx="5" cy="50" r="5" style="animation: spinner-ball-triangle1 2.2s linear infinite"/>
8526    <circle cx="27" cy="5" r="5" style="animation: spinner-ball-triangle2 2.2s linear infinite"/>
8527    <circle cx="49" cy="50" r="5" style="animation: spinner-ball-triangle3 2.2s linear infinite"/>
8528</svg>
8529        <span class="text-xl select-none">
8530            Ładuję...        </span>
8531    </div>
8532</div>
8533</section>
8534
8535<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>
8535<script type="text/json" id="default-section-data">
8536    {"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":1790243710},"captcha":[],"loggedAsCustomer":[],"persistent":[],"review":[],"wishlist":{"items":[]},"hyva_checkout":[],"gtm-checkout":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script>
8536
8537<!-- added by Trusted Shops app: Start -->
8538<script src="https://integrations.etrusted.com/applications/widget.js/v2" async defer></script>
8538
8539<!-- added by Trusted Shops app: End -->
8540</div>
8540<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
8541    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]');
8542    </script>
vendor: 1 bytes, line 8542
8542
8543<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
8544    function yireoGoogleTagManager2FindParentElementWithName(element, parentTagName) {
8545        if (!element.parentElement) {
8546            return null;
8547        }
8548
8549        if (element.parentElement.tagName.toLowerCase() === parentTagName) {
8550            return element.parentElement;
8551        }
8552
8553        return yireoGoogleTagManager2FindParentElementWithName(element.parentElement, parentTagName);
8554    }
8555
8556    const products = document.querySelectorAll('.products a.product');
8557    if (products && products.length > 0) {
8558        products.forEach(function(product) {
8559            product.addEventListener('click', function(event, s) {
8560                let parentElement = yireoGoogleTagManager2FindParentElementWithName(event.target, 'form');
8561                const inputElement = parentElement.querySelector('input[name="product"]');
8562                const productId = inputElement.value;
8563                const productData = window['YIREO_GOOGLETAGMANAGER2_PRODUCT_DATA_ID_' + productId] || {};
8564                productData.item_id = productId;
8565
8566                const eventData = {
8567                    'event': 'select_item',
8568                    'ecommerce': {
8569                        'items': [productData]
8570                    }
8571                }
8572
8573                yireoGoogleTagManager2Pusher(eventData, 'push (page event "select_item") [script-product-clicks.phtml]');
8574
8575                if (window['YIREO_GOOGLETAGMANAGER2_DEBUG_CLICKS'] && confirm("Press to continue with redirect") === false) {
8576                    event.preventDefault();
8577                }
8578            });
8579        })
8580    }
8581</script>
vendor: 1 bytes, line 8581
8581
8582<script nonce="ODN6OGg5cXdsazIxaWMyMWozb2h2Y3FuajFnNXJ5MGI=">
8583    window.addEventListener('private-content-loaded', function(event) {
8584        window.dataLayer = window.dataLayer || [];
8585
8586        var isEmpty = function (variable) {
8587            if (typeof variable === 'undefined') {
8588                return true;
8589            }
8590
8591            if (Array.isArray(variable) && variable.length === 0) {
8592                return true;
8593            }
8594
8595            return typeof variable === 'object' && Object.keys(variable).length === 0;
8596        }
8597
8598        var getSectionNames = function () {
8599            return ['cart', 'customer'];
8600        }
8601
8602        getSectionNames().forEach(function (sectionName) {
8603            if (!event.detail.data[sectionName].gtm) {
8604                return;
8605            }
8606
8607            const attributes = event.detail.data[sectionName].gtm;
8608            if (!Object.keys(attributes).length > 0) {
8609                return;
8610            }
8611
8612            yireoGoogleTagManager2Pusher(attributes, 'push (attributes) [script-additions.phtml]');
8613        });
8614
8615        let attributes = {};
8616        getSectionNames().forEach(function (sectionName) {
8617            if (!event.detail.data[sectionName].gtm_events) {
8618                return;
8619            }
8620
8621            const gtmEvents = event.detail.data[sectionName].gtm_events;
8622            for (const [eventId, eventData] of Object.entries(gtmEvents)) {
8623                yireoGoogleTagManager2Logger('found event in section "' + sectionName + '"', eventData);
8624
8625                const metaData = eventData.meta;
8626                yireoGoogleTagManager2Pusher(eventData, 'push (customerData "' + sectionName + '"  event "' + eventId + '")');
8627
8628                if (!metaData || metaData.cacheable !== true) {
8629                    yireoGoogleTagManager2Logger('removing event "' + eventId + '" from section "' + sectionName + '"')
8630
8631                    let mageCacheStorage = event.detail.data;
8632
8633                    if (mageCacheStorage !== null
8634                        && typeof mageCacheStorage[sectionName] !== 'undefined'
8635                        && typeof mageCacheStorage[sectionName].gtm_events !== 'undefined'
8636                        && eventId in mageCacheStorage[sectionName].gtm_events) {
8637                        delete mageCacheStorage[sectionName].gtm_events[eventId];
8638                    }
8639
8640                    window.localStorage.setItem('mage-cache-storage', JSON.stringify(mageCacheStorage));
8641                }
8642            }
8643        });
8644
8645        if (false === isEmpty(attributes)) {
8646            yireoGoogleTagManager2Pusher(attributes, 'dataLayer (initial js) [script-additions.phtml]');
8647        }
8648    });
8649</script>
8649
8650</body>
8651</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.