{"id":8,"date":"2026-05-28T15:40:22","date_gmt":"2026-05-28T15:40:22","guid":{"rendered":"https:\/\/lafbek.com\/?page_id=8"},"modified":"2026-06-08T17:20:34","modified_gmt":"2026-06-08T17:20:34","slug":"8-2","status":"publish","type":"page","link":"https:\/\/lafbek.com\/","title":{"rendered":"home"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Lafbek &#8211; Offici\u00eble Webshop &amp; Streetwear | Snapbacks, Trays &amp; Grinders<\/title>\n    \n    <!-- SEO META TAGS -->\n    <meta name=\"description\" content=\"Welkom op de offici\u00eble landingspagina van Lafbek! Bestel de nieuwste streetwear drops, snapbacks, rolling trays, grinders en bekijk de nieuwste YouTube video's direct online.\">\n    <meta name=\"keywords\" content=\"Lafbek, Lafbek Merch, Lafbek Snapback, Lafbek Rolling Tray, Lafbek Grinder, Lafbek YouTube, Streetwear Nederland, Streetwear Drop\">\n    <meta name=\"author\" content=\"Lafbek Crew\">\n    <link class=\"canonical\" href=\"https:\/\/lafbek.com\">\n    \n    <!-- FAVICON -->\n    <link rel=\"icon\" type=\"image\/jpeg\" href=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\">\n\n    <!-- FACEBOOK OPEN GRAPH TAGS -->\n    <meta property=\"og:type\" content=\"website\">\n    <meta property=\"og:title\" content=\"Lafbek - Offici\u00eble Webshop &amp; Streetwear Drops\">\n    <meta property=\"og:description\" content=\"Bestel de nieuwste snapbacks, rolling trays en grinders. Check de vetste underground hiphop- en skate-cultuur video's direct online!\">\n    <meta property=\"og:image\" content=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\">\n    <meta property=\"og:url\" content=\"https:\/\/lafbek.com\">\n    <meta property=\"og:site_name\" content=\"Lafbek\">\n\n    <!-- X (TWITTER) CARDS -->\n    <meta name=\"twitter:card\" content=\"summary_large_image\">\n    <meta name=\"twitter:title\" content=\"Lafbek - Offici\u00eble Webshop\">\n    <meta name=\"twitter:description\" content=\"Bestel de nieuwste snapbacks, rolling trays en grinders.\">\n    <meta name=\"twitter:image\" content=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\">\n\n    <!-- IDENTITY & LOCAL BUSINESS JSON-LD SCHEMA MARKUP -->\n    <script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"Store\",\n      \"name\": \"Lafbek Official\",\n      \"url\": \"https:\/\/lafbek.com\",\n      \"logo\": \"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/Lafbek-logo-wit.png\",\n      \"image\": \"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\",\n      \"description\": \"De offici\u00eble Lafbek webshop voor premium streetwear, snapbacks, rolling trays, grinders en exclusieve content.\",\n      \"address\": {\n        \"@type\": \"PostalAddress\",\n        \"streetAddress\": \"Lafbekstraat 101\",\n        \"addressLocality\": \"Amsterdam\",\n        \"postalCode\": \"1011 AB\",\n        \"addressCountry\": \"NL\"\n      },\n      \"telephone\": \"+31 6 12345678\",\n      \"sameAs\": [\n        \"https:\/\/www.youtube.com\/@LAF-BEK\",\n        \"https:\/\/www.tiktok.com\/@lafbek0\"\n      ]\n    }\n    <\/script>\n\n    <!-- MOCK GOOGLE ANALYTICS & FACEBOOK PIXEL TRACKING IMPLEMENTATIE -->\n    <script>\n      window.dataLayer = window.dataLayer || [];\n      function gtag(){dataLayer.push(arguments);}\n      gtag('js', new Date());\n      gtag('config', 'G-MOCKTRACKING123');\n\n      !function(f,b,e,v,n,t,s)\n      {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n      n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n      if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n      n.queue=[];t=b.createElement(e);t.async=!0;\n      t.src=v;s=b.getElementsByTagName(e)[0];\n      s.parentNode.insertBefore(t,s)}(window, document,'script',\n      'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n      fbq('init', '1234567890MOCK');\n      fbq('track', 'PageView');\n    <\/script>\n\n    <style>\n        \/* --- ELIMINEER WORDPRESS STANDAARD MARGES & TITELS --- *\/\n        .entry-title, \n        .post-title, \n        .page-title, \n        .page-header, \n        .wp-block-post-title, \n        h1.entry-title,\n        .entry-header {\n            display: none !important;\n            height: 0 !important;\n            margin: 0 !important;\n            padding: 0 !important;\n            opacity: 0 !important;\n            visibility: hidden !important;\n        }\n\n        \/* Forceert de wrapper op de volledige breedte *\/\n        .entry-content, \n        .post-inner, \n        .site-content, \n        .wp-site-blocks, \n        .wp-block-group, \n        .is-layout-constrained,\n        #content {\n            max-width: none !important;\n            padding-left: 0 !important;\n            padding-right: 0 !important;\n            margin-left: 0 !important;\n            margin-right: 0 !important;\n            width: 100% !important;\n        }\n\n        \/* --- STYLING RESET & THEME CONFIGURATION --- *\/\n        * {\n            box-sizing: border-box;\n            margin: 0;\n            padding: 0;\n        }\n\n        :root {\n            --bg-color: #000000;\n            --card-bg: #0d0d0e;\n            --border-color: rgba(255, 255, 255, 0.1);\n            --text-color: #ffffff;\n            --text-muted: #88888b;\n            --lime-green: #ece164;\n        }\n        \n        body, html {\n            height: 100%;\n            margin: 0 !important;\n            padding: 0 !important;\n            background-color: var(--bg-color);\n            font-family: 'Helvetica Neue', Arial, sans-serif;\n            color: var(--text-color);\n            overflow-x: hidden;\n            scroll-behavior: smooth;\n        }\n\n        \/* Voorkom scrollen achtergrond bij open modal of open drawer *\/\n        body.modal-open {\n            overflow: hidden !important;\n            position: fixed;\n            width: 100%;\n            height: 100%;\n        }\n\n        .sr-only {\n            position: absolute;\n            width: 1px;\n            height: 1px;\n            padding: 0;\n            margin: -1px;\n            overflow: hidden;\n            clip: rect(0, 0, 0, 0);\n            white-space: nowrap;\n            border: 0;\n        }\n\n        \/* --- HERO CONTAINER --- *\/\n        .lafbek-hero {\n            position: relative;\n            width: 100%;\n            height: 82vh; \n            display: flex;\n            flex-direction: column;\n            justify-content: space-between;\n            overflow: hidden;\n            background: #000000;\n        }\n\n        .video-container {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 130%; \n            z-index: 1;\n            pointer-events: none;\n            will-change: transform;\n            transform: translate3d(0, 0, 0);\n        }\n\n        .video-bg {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n        }\n\n        .gradient-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(180deg, \n                rgba(0, 0, 0, 0.6) 0%, \n                rgba(0, 0, 0, 0.2) 50%, \n                rgba(0, 0, 0, 1) 100%);\n            z-index: 2;\n        }\n\n        \/* --- STICKY MENUBALK (TOPBAR) --- *\/\n        .lafbek-header {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            z-index: 100;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: 24px 40px;\n            background: transparent;\n            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        body.is-scrolled .lafbek-header {\n            background-color: #000000 !important;\n            padding: 14px 40px;\n            border-bottom: 1px solid rgba(255, 255, 255, 0.15);\n            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8);\n        }\n\n        .menu-trigger-container {\n            position: relative;\n            z-index: 150;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            background: transparent !important;\n            border: none !important;\n        }\n\n        .lafbek-header-icon {\n            width: 75px; \n            height: 75px;\n            object-fit: contain;\n            background: transparent !important;\n            border: none !important;\n            outline: none !important;\n            box-shadow: none !important;\n            clip-path: inset(5px);\n            filter: url(#lafbek-smiley-filter) brightness(1.3);\n            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n            display: block;\n        }\n\n        body.is-scrolled .lafbek-header-icon {\n            width: 55px; \n            height: 55px;\n        }\n\n        .menu-trigger-container:hover .lafbek-header-icon {\n            transform: scale(1.1) rotate(-5deg);\n            filter: url(#lafbek-smiley-filter) brightness(1.8) drop-shadow(0 0 12px var(--lime-green));\n        }\n\n        \/* --- LIME GROEN SLIDE-OUT MENU --- *\/\n        .lafbek-sidebar-menu {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 340px;\n            height: 100%;\n            background-color: var(--lime-green);\n            z-index: 140;\n            transform: translateX(-100%);\n            transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n            padding: 40px 40px 40px 40px;\n            display: flex;\n            flex-direction: column;\n            justify-content: space-between;\n            box-shadow: 10px 0 50px rgba(0, 0, 0, 0.5);\n        }\n\n        .lafbek-sidebar-menu.active {\n            transform: translateX(0);\n        }\n\n        .menu-header-mobile {\n            display: flex;\n            align-items: center;\n            justify-content: flex-start;\n            padding-bottom: 20px;\n            margin-bottom: 20px;\n            border-bottom: 1.5px solid rgba(0, 0, 0, 0.1);\n        }\n\n        .menu-back-btn {\n            background: transparent;\n            border: none;\n            color: #000000;\n            font-size: 1rem;\n            font-weight: 900;\n            display: flex;\n            align-items: center;\n            gap: 8px;\n            cursor: pointer;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            padding: 8px 16px;\n            border-radius: 30px;\n            transition: background 0.2s ease, transform 0.2s ease;\n            border: 1.5px solid rgba(0, 0, 0, 0.15);\n        }\n\n        .menu-back-btn:hover {\n            background: rgba(0, 0, 0, 0.08);\n            transform: translateX(-3px);\n        }\n\n        .menu-links {\n            list-style: none;\n            display: flex;\n            flex-direction: column;\n            gap: 25px;\n        }\n\n        .menu-item-link {\n            font-size: 2rem;\n            font-weight: 900;\n            color: #000000;\n            text-transform: uppercase;\n            text-decoration: none;\n            letter-spacing: 1px;\n            display: inline-block;\n            transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n        }\n\n        .menu-item-link:hover {\n            transform: translateX(10px) scale(1.05);\n        }\n\n        .menu-footer {\n            border-top: 2px solid rgba(0, 0, 0, 0.1);\n            padding-top: 25px;\n        }\n\n        .menu-socials {\n            display: flex;\n            gap: 15px;\n            list-style: none;\n        }\n\n        .social-link {\n            font-size: 0.95rem;\n            font-weight: 800;\n            color: #000000;\n            text-transform: uppercase;\n            text-decoration: none;\n            border: 1.5px solid #000000;\n            padding: 8px 16px;\n            border-radius: 30px;\n            transition: all 0.3s ease;\n        }\n\n        .social-link:hover {\n            background-color: #000000;\n            color: var(--lime-green);\n        }\n\n        .sidebar-overlay {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.4);\n            backdrop-filter: blur(4px);\n            z-index: 130;\n            opacity: 0;\n            pointer-events: none;\n            transition: opacity 0.4s ease;\n        }\n\n        .sidebar-overlay.active {\n            opacity: 1;\n            pointer-events: auto;\n        }\n\n        .header-logo-center {\n            position: absolute;\n            left: 50%;\n            top: 50%;\n            transform: translate3d(-50%, -50%, 0);\n            z-index: 105;\n            pointer-events: none;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n        }\n\n        .docked-logo {\n            height: 45px;\n            width: auto;\n            object-fit: contain;\n            opacity: 0;\n            transform: scale(0.5);\n            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n            will-change: transform, opacity;\n        }\n\n        body.is-scrolled .docked-logo {\n            opacity: 1;\n            transform: scale(1);\n        }\n\n        .header-actions {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            z-index: 110;\n        }\n\n        .sound-toggle {\n            background: rgba(255, 255, 255, 0.1);\n            border: 1px solid rgba(255, 255, 255, 0.2);\n            color: var(--text-color);\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.3s ease;\n        }\n\n        body.is-scrolled .sound-toggle {\n            width: 38px;\n            height: 38px;\n        }\n\n        .sound-toggle:hover {\n            background: rgba(255, 255, 255, 0.2);\n            transform: scale(1.05);\n        }\n\n        .sound-toggle svg {\n            width: 20px;\n            height: 20px;\n            fill: currentColor;\n        }\n\n        .cart-toggle-btn {\n            background: rgba(255, 255, 255, 0.1);\n            border: 1px solid rgba(255, 255, 255, 0.2);\n            color: var(--text-color);\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n            transition: all 0.3s ease;\n        }\n\n        body.is-scrolled .cart-toggle-btn {\n            width: 38px;\n            height: 38px;\n        }\n\n        .cart-toggle-btn:hover {\n            background: rgba(255, 255, 255, 0.2);\n            transform: scale(1.05);\n        }\n\n        .cart-toggle-btn svg {\n            width: 20px;\n            height: 20px;\n        }\n\n        .cart-badge {\n            position: absolute;\n            top: -5px;\n            right: -5px;\n            background-color: var(--lime-green);\n            color: #000000;\n            font-size: 0.7rem;\n            font-weight: 900;\n            width: 20px;\n            height: 20px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            border: 2px solid #000;\n            transform: scale(0);\n            transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n        }\n\n        .cart-badge.has-items {\n            transform: scale(1);\n        }\n\n        .cta-button {\n            background-color: transparent;\n            color: var(--text-color);\n            border: 2px solid #ffffff;\n            padding: 12px 28px;\n            font-size: 0.9rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            text-decoration: none;\n            border-radius: 50px;\n            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n        }\n\n        body.is-scrolled .cta-button {\n            padding: 8px 20px;\n            font-size: 0.8rem;\n        }\n\n        .cta-button:hover {\n            background-color: #ffffff;\n            color: #000000;\n            box-shadow: 0 0 25px rgba(255, 255, 255, 0.4);\n            transform: translateY(-2px);\n        }\n\n        \/* --- HERO CENTRAAL --- *\/\n        .hero-center-wrapper {\n            position: relative;\n            z-index: 10;\n            width: 100%;\n            max-width: 1400px;\n            margin: 0 auto;\n            padding: 0 40px;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            flex-grow: 1;\n            margin-top: 60px;\n        }\n\n        .main-logo-container {\n            width: 100%;\n            max-width: 500px;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            will-change: transform, opacity;\n            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .main-logo {\n            width: 100%;\n            height: auto;\n            object-fit: contain;\n            filter: drop-shadow(0px 10px 30px rgba(0, 0, 0, 0.9)) drop-shadow(0px 0px 40px rgba(255, 255, 255, 0.05));\n            animation: floating 5s ease-in-out infinite;\n            user-select: none;\n            -webkit-user-drag: none;\n            opacity: 0.7; \n            transition: opacity 0.4s ease;\n        }\n\n        body.is-scrolled .main-logo {\n            opacity: 0;\n            transform: scale(0.85) translate3d(0, -30px, 0);\n            pointer-events: none;\n        }\n\n        \/* --- SCROLL ICOON --- *\/\n        .scroll-indicator-container {\n            position: relative;\n            z-index: 10;\n            margin-bottom: 30px;\n            display: flex;\n            justify-content: center;\n            width: 100%;\n            margin-top: auto;\n        }\n\n        .scroll-indicator {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            gap: 12px;\n            text-transform: uppercase;\n            font-size: 0.8rem;\n            letter-spacing: 3px;\n            font-weight: 700;\n            opacity: 0.7;\n            transition: all 0.3s ease;\n            cursor: pointer;\n            text-decoration: none;\n            color: var(--text-color);\n        }\n\n        .scroll-indicator:hover {\n            opacity: 1;\n            color: var(--lime-green);\n        }\n\n        .scroll-svg {\n            width: 32px;\n            height: 32px;\n            stroke: currentColor;\n            fill: none;\n            stroke-width: 2.5;\n            stroke-linecap: round;\n            stroke-linejoin: round;\n            animation: modernScrollBounce 1.8s infinite;\n        }\n\n        \/* --- WOO & YOUTUBE SECTION UNDER THE FOLD --- *\/\n        .shopify-section {\n            background-color: #000000;\n            position: relative;\n            z-index: 10;\n            padding: 40px 40px 60px 40px;\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            display: flex;\n            justify-content: center;\n            width: 100%;\n        }\n\n        .grid-container {\n            width: 100%;\n            max-width: 1400px;\n            display: grid;\n            grid-template-columns: 2fr 1fr;\n            gap: 60px;\n        }\n\n        .section-header {\n            margin-bottom: 40px;\n            border-left: 4px solid #ffffff;\n            padding-left: 20px;\n        }\n\n        .section-header h2 {\n            font-size: 2rem;\n            font-weight: 900;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n        }\n\n        .section-header p {\n            color: var(--text-muted);\n            margin-top: 6px;\n            font-size: 0.95rem;\n        }\n\n        .merch-grid {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr); \n            gap: 16px; \n        }\n\n        .merch-card {\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 12px; \n            overflow: hidden;\n            display: flex;\n            flex-direction: column;\n            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .merch-card:hover {\n            transform: translateY(-6px);\n            border-color: rgba(255, 255, 255, 0.3);\n            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);\n        }\n\n        .merch-img-container {\n            width: 100%;\n            aspect-ratio: 1 \/ 1;\n            background: linear-gradient(135deg, #121214 0%, #080809 100%);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            padding: 16px; \n            position: relative;\n        }\n\n        .merch-img {\n            max-width: 90%;\n            max-height: 90%;\n            object-fit: contain;\n            filter: drop-shadow(0 10px 15px rgba(0,0,0,0.5));\n            transition: transform 0.4s ease;\n        }\n\n        .merch-card:hover .merch-img {\n            transform: scale(1.08) rotate(2deg);\n        }\n\n        .merch-info {\n            padding: 14px; \n            display: flex;\n            flex-direction: column;\n            flex-grow: 1;\n            gap: 8px;\n        }\n\n        .merch-title {\n            font-size: 0.9rem; \n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n\n        .merch-price-row {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n        }\n\n        .merch-price {\n            font-size: 1.05rem;\n            font-weight: 700;\n            color: #ffffff;\n        }\n\n        .woo-button {\n            width: 100%;\n            background-color: var(--lime-green); \n            color: #000000;\n            text-align: center;\n            padding: 12px; \n            border-radius: 50px;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            font-size: 0.75rem; \n            text-decoration: none;\n            transition: all 0.3s ease;\n            margin-top: auto;\n            border: 2px solid var(--lime-green);\n            cursor: pointer;\n            min-height: 44px; \n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .woo-button:hover {\n            background-color: transparent;\n            color: #ffffff;\n            border-color: #ffffff;\n            box-shadow: 0 0 15px rgba(255,255,255,0.2);\n        }\n\n        .videos-list {\n            display: flex;\n            flex-direction: column;\n            gap: 30px;\n        }\n\n        .video-card {\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 16px;\n            overflow: hidden;\n            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .video-card:hover {\n            border-color: rgba(255, 255, 255, 0.2);\n            box-shadow: 0 10px 25px rgba(0,0,0,0.4);\n            transform: translateY(-2px);\n        }\n\n        .video-embed-wrapper {\n            position: relative;\n            padding-bottom: 56.25%; \n            height: 0;\n            overflow: hidden;\n            background: #000;\n        }\n\n        .video-embed-wrapper iframe {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            border: 0;\n        }\n\n        .video-details {\n            padding: 20px;\n        }\n\n        .video-tag {\n            display: inline-block;\n            background: rgba(255, 0, 0, 0.1);\n            color: #ff3b30;\n            font-size: 0.75rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            padding: 4px 10px;\n            border-radius: 4px;\n            margin-bottom: 10px;\n            letter-spacing: 1px;\n        }\n\n        .video-title {\n            font-size: 1.1rem;\n            font-weight: 700;\n            line-height: 1.4;\n            letter-spacing: -0.2px;\n        }\n\n        .social-channels-block {\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n            margin-top: 10px;\n        }\n\n        .social-channel-btn {\n            display: flex;\n            align-items: center;\n            gap: 15px;\n            background-color: var(--card-bg);\n            border: 1.5px solid var(--border-color);\n            padding: 14px 24px;\n            border-radius: 50px;\n            color: var(--text-color);\n            font-weight: 800;\n            text-transform: uppercase;\n            font-size: 0.85rem;\n            letter-spacing: 1px;\n            text-decoration: none;\n            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n            cursor: pointer;\n            min-height: 44px;\n        }\n\n        .social-channel-btn svg {\n            width: 22px;\n            height: 22px;\n            fill: currentColor;\n        }\n\n        .social-channel-btn:hover {\n            border-color: var(--lime-green);\n            color: #000000;\n            background-color: var(--lime-green);\n            box-shadow: 0 0 15px rgba(236, 225, 100, 0.4);\n            transform: translateY(-2px);\n        }\n\n        \/* --- PRODUCT LIGHTBOX DETAIL MODAL --- *\/\n        .product-modal {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            z-index: 300;\n            display: none;\n            align-items: center;\n            justify-content: center;\n            padding: 20px;\n        }\n\n        .product-modal.active {\n            display: flex;\n        }\n\n        .modal-variants-selector {\n            display: flex;\n            flex-direction: column;\n            gap: 12px;\n            margin: 8px 0;\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n            padding: 16px 0;\n        }\n\n        .variant-option-title {\n            font-size: 0.8rem;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            font-weight: 800;\n            color: var(--text-muted);\n            margin-bottom: 8px;\n            display: flex;\n            justify-content: space-between;\n        }\n\n        .variant-option-title span.active-val {\n            color: var(--lime-green);\n        }\n\n        .variant-option-values {\n            display: flex;\n            gap: 12px;\n            flex-wrap: wrap;\n            align-items: center;\n        }\n\n        .variant-value-btn {\n            background-color: transparent;\n            border: 1.5px solid var(--border-color);\n            color: var(--text-color);\n            padding: 10px 20px; \n            border-radius: 30px;\n            font-size: 0.85rem;\n            font-weight: 700;\n            cursor: pointer;\n            transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);\n            outline: none;\n            min-height: 44px; \n        }\n\n        .variant-value-btn:hover {\n            border-color: rgba(255, 255, 255, 0.4);\n        }\n\n        .variant-value-btn.active {\n            background-color: var(--lime-green);\n            color: #000000;\n            border-color: var(--lime-green);\n            box-shadow: 0 0 15px rgba(236, 225, 100, 0.35);\n        }\n\n        .variant-color-dot {\n            width: 50px;\n            height: 50px;\n            border-radius: 50%;\n            border: 2px solid rgba(255, 255, 255, 0.3);\n            cursor: pointer;\n            transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n            position: relative;\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);\n            background-color: #111;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            overflow: hidden;\n        }\n\n        .variant-color-dot img {\n            width: 75%;\n            height: 75%;\n            object-fit: contain;\n            pointer-events: none;\n        }\n\n        .variant-color-dot:hover {\n            transform: scale(1.15);\n            border-color: rgba(255, 255, 255, 0.8);\n        }\n\n        .variant-color-dot.active {\n            border-color: #ffffff;\n            box-shadow: 0 0 0 2px var(--lime-green), 0 0 15px var(--lime-green);\n            transform: scale(1.1);\n        }\n\n        .modal-admin-helper {\n            background-color: rgba(236, 225, 100, 0.05);\n            border: 1px dashed var(--lime-green);\n            border-radius: 8px;\n            padding: 12px;\n            font-size: 0.75rem;\n            color: var(--lime-green);\n            line-height: 1.4;\n            margin-top: 10px;\n        }\n\n        .modal-backdrop {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.85);\n            backdrop-filter: blur(8px);\n        }\n\n        .modal-content {\n            position: relative;\n            background-color: #0d0d0e;\n            border: 1.5px solid var(--border-color);\n            border-radius: 24px;\n            width: 100%;\n            max-width: 850px;\n            z-index: 310;\n            overflow: hidden;\n            animation: modalFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        @keyframes modalFadeIn {\n            from { opacity: 0; transform: scale(0.95) translateY(10px); }\n            to { opacity: 1; transform: scale(1) translateY(0); }\n        }\n\n        .modal-close-btn {\n            position: absolute;\n            top: 20px;\n            right: 20px;\n            background: rgba(255, 255, 255, 0.05);\n            border: 1px solid rgba(255, 255, 255, 0.1);\n            color: #fff;\n            width: 44px; \n            height: 44px;\n            border-radius: 50%;\n            font-size: 1.5rem;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 320;\n            transition: all 0.3s;\n        }\n\n        .modal-close-btn:hover {\n            background: rgba(255, 255, 255, 0.15);\n            color: var(--lime-green);\n            transform: rotate(90deg);\n        }\n\n        .modal-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            min-height: 400px;\n        }\n\n        .modal-gallery {\n            background: linear-gradient(135deg, #121214 0%, #080809 100%);\n            padding: 30px;\n            display: flex;\n            flex-direction: column;\n            gap: 16px;\n            align-items: center;\n            justify-content: center;\n            border-right: 1px solid var(--border-color);\n            position: relative;\n        }\n\n        .modal-active-img-wrapper {\n            width: 100%;\n            height: 320px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n            touch-action: pan-y; \n            padding: 10px;\n        }\n\n        .modal-active-img-wrapper img, .modal-active-img-wrapper svg {\n            width: 100%;\n            height: 100%;\n            object-fit: contain;\n            filter: drop-shadow(0 15px 25px rgba(0,0,0,0.6));\n            animation: imgSwap 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n            pointer-events: none; \n        }\n\n        .gallery-nav-btn {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            background: rgba(0, 0, 0, 0.6);\n            border: 1px solid rgba(255, 255, 255, 0.1);\n            color: #fff;\n            width: 44px; \n            height: 44px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            z-index: 15;\n            transition: all 0.3s;\n            user-select: none;\n            font-size: 1.1rem;\n        }\n\n        .gallery-nav-btn:hover {\n            background: var(--lime-green);\n            color: #000;\n            border-color: var(--lime-green);\n            box-shadow: 0 0 15px rgba(236, 225, 100, 0.4);\n        }\n\n        .gallery-nav-btn.prev { left: -10px; }\n        .gallery-nav-btn.next { right: -10px; }\n\n        .modal-thumbnails {\n            display: flex;\n            gap: 12px;\n            justify-content: center;\n            width: 100%;\n            overflow-x: auto;\n            padding: 5px;\n            scroll-behavior: smooth;\n            -webkit-overflow-scrolling: touch; \n        }\n\n        .modal-thumbnails::-webkit-scrollbar {\n            height: 4px;\n        }\n        .modal-thumbnails::-webkit-scrollbar-thumb {\n            background: rgba(255, 255, 255, 0.1);\n            border-radius: 10px;\n        }\n\n        .modal-thumb {\n            width: 75px; \n            height: 75px;\n            flex-shrink: 0;\n            border-radius: 8px;\n            border: 2px solid rgba(255, 255, 255, 0.1);\n            background: #000;\n            cursor: pointer;\n            padding: 4px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.3s;\n        }\n\n        .modal-thumb img, .modal-thumb svg {\n            max-width: 100%;\n            max-height: 100%;\n            object-fit: contain;\n        }\n\n        .modal-thumb.active {\n            border-color: var(--lime-green);\n            box-shadow: 0 0 10px rgba(236, 225, 100, 0.3);\n            transform: scale(1.05);\n        }\n\n        .modal-info {\n            padding: 40px;\n            display: flex;\n            flex-direction: column;\n            justify-content: center;\n            gap: 20px;\n        }\n\n        .modal-title {\n            font-size: 1.6rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            line-height: 1.2;\n        }\n\n        .modal-price {\n            font-size: 1.6rem;\n            font-weight: 800;\n            color: var(--lime-green);\n        }\n\n        .modal-description {\n            font-size: 0.95rem;\n            color: var(--text-muted);\n            line-height: 1.6;\n            max-height: 150px;\n            overflow-y: auto;\n        }\n\n        \/* --- COLLAPSED CONTACT FORM SECTION --- *\/\n        .lafbek-interactive-section {\n            background-color: #000000;\n            padding: 20px 40px 60px 40px;\n            position: relative;\n            z-index: 10;\n            width: 100%;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n        }\n\n        .interactive-container {\n            width: 100%;\n            max-width: 1400px;\n        }\n\n        .contact-collapse-container {\n            background-color: var(--card-bg);\n            border: 1.5px solid var(--border-color);\n            border-radius: 20px;\n            overflow: hidden;\n            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n            margin-bottom: 60px;\n        }\n\n        .contact-collapse-container:hover {\n            border-color: rgba(236, 225, 100, 0.3); \n            box-shadow: 0 0 30px rgba(236, 225, 100, 0.05);\n        }\n\n        .contact-accordion-header {\n            width: 100%;\n            background: transparent;\n            border: none;\n            color: var(--text-color);\n            padding: 24px 30px;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            cursor: pointer;\n            outline: none;\n            text-align: left;\n            min-height: 48px; \n        }\n\n        .contact-header-title {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n        }\n\n        .contact-header-title svg {\n            width: 28px;\n            height: 28px;\n            fill: none;\n            stroke: var(--lime-green);\n            stroke-width: 2;\n        }\n\n        .contact-header-title span {\n            font-size: 1.3rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n        }\n\n        .accordion-indicator-icon {\n            width: 24px;\n            height: 24px;\n            fill: none;\n            stroke: currentColor;\n            stroke-width: 2.5;\n            transition: transform 0.4s ease;\n        }\n\n        .contact-accordion-content {\n            display: grid;\n            grid-template-rows: 0fr;\n            transition: grid-template-rows 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .contact-collapse-container.is-open .contact-accordion-content {\n            grid-template-rows: 1fr;\n        }\n\n        .contact-collapse-container.is-open .accordion-indicator-icon {\n            transform: rotate(180deg);\n            stroke: var(--lime-green);\n        }\n\n        .contact-content-inner {\n            overflow: hidden;\n        }\n\n        .contact-form-body {\n            padding: 0 30px 40px 30px;\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            margin-top: 5px;\n        }\n\n        .contact-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 20px;\n            margin-top: 30px;\n        }\n\n        .form-group-full {\n            grid-column: span 2;\n        }\n\n        .form-label {\n            display: block;\n            font-size: 0.8rem;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            font-weight: 800;\n            color: var(--text-muted);\n            margin-bottom: 8px;\n        }\n\n        .form-input {\n            width: 100%;\n            background-color: rgba(255, 255, 255, 0.02);\n            border: 1.5px solid var(--border-color);\n            border-radius: 10px;\n            padding: 14px 18px;\n            color: var(--text-color);\n            font-family: inherit;\n            font-size: 0.95rem;\n            outline: none;\n            transition: all 0.3s ease;\n        }\n\n        .form-input:focus {\n            border-color: var(--lime-green);\n            background-color: rgba(255, 255, 255, 0.05);\n            box-shadow: 0 0 15px rgba(236, 225, 100, 0.15);\n        }\n\n        .form-submit-btn {\n            background-color: var(--lime-green);\n            color: #000000;\n            border: none;\n            padding: 16px 36px;\n            font-size: 0.95rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            border-radius: 50px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            margin-top: 25px;\n            display: inline-block;\n            min-height: 44px; \n        }\n\n        .form-submit-btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 5px 25px rgba(236, 225, 100, 0.4);\n        }\n\n        .form-success-message {\n            display: none;\n            text-align: center;\n            padding: 40px 20px;\n        }\n\n        .form-success-message svg {\n            width: 60px;\n            height: 60px;\n            stroke: var(--lime-green);\n            stroke-width: 2.5;\n            margin-bottom: 20px;\n            animation: floating 3s ease-in-out infinite;\n        }\n\n        .form-success-message h3 {\n            font-size: 1.8rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            margin-bottom: 10px;\n        }\n\n        .form-success-message p {\n            color: var(--text-muted);\n        }\n\n        \/* --- WORDPRESS STYLE POST (MANIFESTO) --- *\/\n        .wp-style-post {\n            text-align: left;\n            background-color: #080809;\n            border: 1px solid rgba(255, 255, 255, 0.08);\n            border-radius: 16px;\n            padding: 40px;\n            box-shadow: inset 0 0 40px rgba(0,0,0,0.5);\n            max-width: 900px;\n            margin: 0 auto;\n        }\n\n        .wp-post-title {\n            font-size: 1.8rem;\n            font-weight: 900;\n            color: #ffffff;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            margin-bottom: 5px;\n        }\n\n        .wp-post-meta {\n            font-size: 0.8rem;\n            color: var(--lime-green);\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            font-weight: 800;\n            margin-bottom: 25px;\n            padding-bottom: 15px;\n            border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n        }\n\n        .wp-post-content p {\n            color: var(--text-muted);\n            font-size: 1.05rem;\n            line-height: 1.8;\n            margin-bottom: 20px;\n        }\n\n        .wp-post-content .highlight-quote {\n            font-size: 1.3rem;\n            font-weight: 800;\n            color: #ffffff;\n            border-left: 3px solid var(--lime-green);\n            padding-left: 15px;\n            margin: 30px 0;\n            font-style: italic;\n        }\n\n        .wp-post-content .final-statement {\n            font-size: 1.5rem;\n            font-weight: 900;\n            color: var(--lime-green);\n            text-transform: uppercase;\n            margin-top: 30px;\n            margin-bottom: 0;\n            letter-spacing: 2px;\n        }\n\n        \/* --- SHOPIFY CART DRAWER (WINKELWAGEN) --- *\/\n        .cart-drawer {\n            position: fixed;\n            top: 0;\n            right: 0;\n            width: 100%;\n            max-width: 440px;\n            height: 100%;\n            background-color: #0b0b0c;\n            border-left: 1px solid var(--border-color);\n            z-index: 200;\n            transform: translateX(100%);\n            transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);\n            display: flex;\n            flex-direction: column;\n            box-shadow: -10px 0 50px rgba(0, 0, 0, 0.8);\n        }\n\n        .cart-drawer.active {\n            transform: translateX(0);\n        }\n\n        .cart-header {\n            padding: 24px;\n            border-bottom: 1px solid var(--border-color);\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n        }\n\n        .cart-header h3 {\n            font-size: 1.4rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n        }\n\n        .cart-close-btn {\n            background: transparent;\n            border: none;\n            color: var(--text-color);\n            font-size: 1.8rem;\n            cursor: pointer;\n            transition: color 0.3s;\n            width: 44px; \n            height: 44px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .cart-close-btn:hover {\n            color: var(--lime-green);\n        }\n\n        .cart-items-container {\n            flex-grow: 1;\n            overflow-y: auto;\n            padding: 24px;\n            display: flex;\n            flex-direction: column;\n            gap: 20px;\n            -webkit-overflow-scrolling: touch;\n        }\n\n        .cart-item {\n            display: flex;\n            gap: 16px;\n            align-items: center;\n            border-bottom: 1px solid rgba(255, 255, 255, 0.05);\n            padding-bottom: 16px;\n        }\n\n        .cart-item-img {\n            width: 80px;\n            height: 80px;\n            background-color: var(--card-bg);\n            border: 1px solid var(--border-color);\n            border-radius: 8px;\n            padding: 8px;\n            object-fit: contain;\n        }\n\n        .cart-item-details {\n            flex-grow: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 6px;\n        }\n\n        .cart-item-title {\n            font-size: 1rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .cart-item-price {\n            font-size: 0.95rem;\n            font-weight: 700;\n            color: var(--lime-green);\n        }\n\n        .cart-quantity-controls {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            border: 1.5px solid var(--border-color);\n            border-radius: 30px;\n            padding: 6px 16px; \n            width: fit-content;\n        }\n\n        .qty-btn {\n            background: transparent;\n            border: none;\n            color: var(--text-color);\n            font-weight: 900;\n            cursor: pointer;\n            font-size: 1.2rem;\n            transition: color 0.2s;\n            min-width: 32px;\n            min-height: 32px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .qty-btn:hover {\n            color: var(--lime-green);\n        }\n\n        .qty-val {\n            font-size: 1rem;\n            font-weight: 700;\n            min-width: 20px;\n            text-align: center;\n        }\n\n        .cart-item-remove {\n            background: transparent;\n            border: none;\n            color: var(--text-muted);\n            cursor: pointer;\n            transition: color 0.2s;\n            width: 44px; \n            height: 44px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .cart-item-remove:hover {\n            color: #ff3b30;\n        }\n\n        .cart-empty-state {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            height: 100%;\n            color: var(--text-muted);\n            text-align: center;\n            gap: 16px;\n        }\n\n        .cart-empty-state svg {\n            width: 64px;\n            height: 64px;\n            stroke: currentColor;\n            opacity: 0.3;\n        }\n\n        .cart-empty-state p {\n            font-size: 1rem;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n        }\n\n        .cart-footer {\n            padding: 24px;\n            border-top: 1px solid var(--border-color);\n            background-color: var(--card-bg);\n            display: flex;\n            flex-direction: column;\n            gap: 16px;\n        }\n\n        .cart-subtotal-row {\n            display: flex;\n            justify-content: space-between;\n            font-size: 1.1rem;\n            font-weight: 800;\n            text-transform: uppercase;\n        }\n\n        .cart-checkout-btn {\n            background-color: var(--lime-green);\n            color: #000000;\n            text-align: center;\n            padding: 16px;\n            border-radius: 50px;\n            font-size: 0.95rem;\n            font-weight: 900;\n            text-transform: uppercase;\n            letter-spacing: 1.5px;\n            text-decoration: none;\n            transition: all 0.3s ease;\n            display: block;\n            border: none;\n            cursor: pointer;\n            min-height: 48px; \n        }\n\n        .cart-checkout-btn:hover {\n            box-shadow: 0 5px 25px rgba(236, 225, 100, 0.4);\n            transform: translateY(-2px);\n        }\n\n        .mock-checkout-modal-overlay {\n            position: fixed; \n            top: 0; \n            left: 0; \n            width: 100%; \n            height: 100%; \n            background: rgba(0,0,0,0.9); \n            backdrop-filter: blur(8px); \n            z-index: 500; \n            display: none; \n            align-items: center; \n            justify-content: center; \n            padding: 20px;\n        }\n\n        .mock-checkout-modal-content {\n            background: #0d0d0e; \n            border: 1.5px solid var(--lime-green); \n            border-radius: 24px; \n            padding: 30px; \n            max-width: 500px; \n            width: 100%; \n            text-align: center; \n            box-shadow: 0 0 40px rgba(236, 225, 100, 0.2); \n            position: relative; \n            max-height: 90vh; \n            overflow-y: auto;\n        }\n\n        .mock-close-btn {\n            position: absolute; \n            top: 15px; \n            right: 20px; \n            background: transparent; \n            border: none; \n            color: #fff; \n            font-size: 1.5rem; \n            cursor: pointer;\n        }\n\n        .mock-icon-badge {\n            width: 70px; \n            height: 70px; \n            background: rgba(236, 225, 100, 0.1); \n            border-radius: 50%; \n            display: flex; \n            align-items: center; \n            justify-content: center; \n            margin: 0 auto 20px auto;\n        }\n\n        .mock-heading {\n            font-size: 1.4rem; \n            font-weight: 900; \n            text-transform: uppercase; \n            letter-spacing: 1px; \n            margin-bottom: 10px; \n            color: #fff;\n        }\n\n        .mock-subtext {\n            color: var(--text-muted); \n            font-size: 0.9rem; \n            line-height: 1.6; \n            margin-bottom: 20px;\n        }\n\n        .mock-summary {\n            background: rgba(255,255,255,0.03); \n            border-radius: 12px; \n            padding: 15px; \n            margin-bottom: 20px; \n            text-align: left; \n            font-size: 0.85rem; \n            border: 1px solid rgba(255,255,255,0.05);\n        }\n\n        .mock-confirm-btn {\n            background: var(--lime-green); \n            color: #000; \n            border: none; \n            width: 100%; \n            padding: 15px; \n            border-radius: 50px; \n            font-weight: 900; \n            text-transform: uppercase; \n            letter-spacing: 1.5px; \n            cursor: pointer; \n            min-height: 44px;\n        }\n\n        .lazy-youtube-wrapper {\n            position: relative;\n            padding-bottom: 56.25%;\n            height: 0;\n            overflow: hidden;\n            background: #000;\n            cursor: pointer;\n        }\n\n        .lazy-youtube-thumbnail {\n            position: absolute;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background-size: cover;\n            background-position: center;\n            filter: brightness(0.8);\n            transition: filter 0.3s;\n        }\n\n        .lazy-youtube-wrapper:hover .lazy-youtube-thumbnail {\n            filter: brightness(1);\n        }\n\n        .lazy-youtube-play-btn {\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            width: 64px;\n            height: 64px;\n            background: rgba(236, 225, 100, 0.9);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            box-shadow: 0 0 20px rgba(236, 225, 100, 0.4);\n            transition: transform 0.3s, background 0.3s;\n            z-index: 5;\n        }\n\n        .lazy-youtube-wrapper:hover .lazy-youtube-play-btn {\n            transform: translate(-50%, -50%) scale(1.1);\n            background: #ffffff;\n        }\n\n        .lazy-youtube-play-btn svg {\n            width: 24px;\n            height: 24px;\n            fill: #000000;\n            margin-left: 4px;\n        }\n\n        \/* COMPREHENSIVE SEO FOOTER MET ADRES EN CONTACT *\/\n        .lafbek-seo-footer {\n            background-color: #000000;\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            padding: 60px 40px 40px 40px;\n            color: var(--text-muted);\n        }\n\n        .footer-grid {\n            max-width: 1400px;\n            margin: 0 auto;\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 40px;\n        }\n\n        .footer-col h4 {\n            color: #ffffff;\n            font-size: 1.1rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            margin-bottom: 20px;\n        }\n\n        .footer-col p, .footer-col a {\n            font-size: 0.9rem;\n            line-height: 1.6;\n            color: var(--text-muted);\n            text-decoration: none;\n            display: block;\n            margin-bottom: 10px;\n        }\n\n        .footer-col a:hover {\n            color: var(--lime-green);\n        }\n\n        .footer-bottom {\n            max-width: 1400px;\n            margin: 40px auto 0 auto;\n            padding-top: 30px;\n            border-top: 1px solid rgba(255, 255, 255, 0.05);\n            display: flex;\n            justify-content: space-between;\n            font-size: 0.85rem;\n        }\n\n        \/* --- KEYFRAMES & ANIMATIES --- *\/\n        @keyframes floating {\n            0% { transform: translateY(0px) rotate(0deg); }\n            50% { transform: translateY(-12px) rotate(0.5deg); }\n            100% { transform: translateY(0px) rotate(0deg); }\n        }\n\n        @keyframes modernScrollBounce {\n            0%, 100% { transform: translateY(0); opacity: 0.5; }\n            50% { transform: translateY(10px); opacity: 1; }\n        }\n\n        \/* --- RESPONSIVITEIT EN MOBIELE SCHERMEN --- *\/\n        @media (max-width: 1200px) {\n            .grid-container {\n                grid-template-columns: 1fr; \n                gap: 50px;\n            }\n        }\n\n        @media (max-width: 992px) {\n            .main-logo-container {\n                max-width: 420px;\n            }\n            .lafbek-sidebar-menu {\n                width: 290px !important; \n                padding-top: 30px !important;\n                align-items: stretch !important;\n                text-align: left !important;\n            }\n            .menu-links {\n                gap: 20px;\n            }\n            .menu-item-link {\n                font-size: 1.8rem;\n            }\n            .contact-grid {\n                grid-template-columns: 1fr;\n            }\n            .form-group-full {\n                grid-column: span 1;\n            }\n        }\n\n        \/* --- SPECIFIEKE SMARTPHONE OPTIMALISATIES --- *\/\n        @media (max-width: 768px) {\n            .modal-content {\n                width: 100% !important;\n                max-width: 100% !important;\n                max-height: 92vh !important;\n                overflow-y: auto !important;\n                border-radius: 24px 24px 0 0 !important;\n                position: fixed !important;\n                bottom: 0 !important;\n                top: auto !important;\n                border-left: none !important;\n                border-right: none !important;\n                border-bottom: none !important;\n                animation: bottomSheetSlide 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;\n            }\n\n            @keyframes bottomSheetSlide {\n                from { transform: translateY(100%); }\n                to { transform: translateY(0); }\n            }\n\n            .modal-grid {\n                grid-template-columns: 1fr !important;\n                min-height: auto !important;\n            }\n\n            .modal-gallery {\n                padding: 20px !important;\n                border-right: none !important;\n                border-bottom: 1px solid var(--border-color);\n            }\n\n            .modal-active-img-wrapper {\n                height: 280px !important;\n                max-height: 35vh !important;\n            }\n\n            .modal-info {\n                padding: 24px 20px 40px 20px !important;\n            }\n\n            .lafbek-header {\n                padding: 12px 20px !important;\n            }\n\n            .header-actions {\n                gap: 10px !important;\n            }\n\n            .lafbek-header .cta-button {\n                display: none !important;\n            }\n\n            .lafbek-header-icon {\n                width: 55px !important;\n                height: 55px !important;\n            }\n\n            body.is-scrolled .lafbek-header-icon {\n                width: 48px !important;\n                height: 48px !important;\n            }\n\n            .merch-grid {\n                grid-template-columns: repeat(2, 1fr) !important;\n                gap: 10px !important;\n            }\n\n            .merch-info {\n                padding: 10px !important;\n                gap: 4px !important;\n            }\n\n            .merch-title {\n                font-size: 0.8rem !important;\n            }\n\n            .merch-price {\n                font-size: 0.95rem !important;\n            }\n\n            .woo-button {\n                padding: 8px !important;\n                font-size: 0.7rem !important;\n                min-height: 38px !important;\n            }\n\n            .shopify-section {\n                padding: 30px 14px 40px 14px !important;\n            }\n\n            .lafbek-interactive-section {\n                padding: 10px 14px 60px 14px !important;\n            }\n\n            .wp-style-post {\n                padding: 20px !important;\n            }\n            \n            .wp-post-title {\n                font-size: 1.4rem !important;\n            }\n\n            .section-header h2 {\n                font-size: 1.5rem !important;\n            }\n\n            .footer-grid {\n                grid-template-columns: 1fr !important;\n                gap: 30px;\n            }\n\n            .footer-bottom {\n                flex-direction: column;\n                gap: 15px;\n                text-align: center;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .cart-drawer {\n                width: 100% !important;\n            }\n        }\n    <\/style>\n\n    <svg width=\"0\" height=\"0\" style=\"position: absolute; display: none;\">\n        <defs>\n            <filter id=\"lafbek-smiley-filter\">\n                <feColorMatrix type=\"matrix\" values=\"\n                    -1  0  0  0  1\n                     0 -1  0  0  1\n                     0  0 -1  0  1\n                    -1 -1 -1  0  3\n                \"><\/feColorMatrix>\n            <\/filter>\n        <\/defs>\n    <\/svg>\n\n    <h1 class=\"sr-only\">Lafbek &#8211; De Offici\u00eble Webshop &amp; YouTube Content. Bestel de nieuwste Snapbacks, Rolling Trays en Grinders!<\/h1>\n\n    <div class=\"sidebar-overlay\" id=\"sidebarOverlay\"><\/div>\n\n    <nav class=\"lafbek-sidebar-menu\" id=\"sidebarMenu\">\n        <div class=\"menu-header-mobile\">\n            <button class=\"menu-back-btn\" id=\"menuBackBtn\" title=\"Sluit Menu\">\n                <svg viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                    <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\n                    <polyline points=\"12 19 5 12 12 5\"><\/polyline>\n                <\/svg>\n                <span>Terug<\/span>\n            <\/button>\n        <\/div>\n\n        <ul class=\"menu-links\">\n            <li><a href=\"#shopify-section\" class=\"menu-item-link\" id=\"menuMerchLink\">Merch<\/a><\/li>\n            <li><a href=\"https:\/\/www.youtube.com\/@LAF-BEK\" target=\"_blank\" class=\"menu-item-link\">YouTube<\/a><\/li>\n            <li><a href=\"?page_id=111\" class=\"menu-item-link\">Over Ons<\/a><\/li>\n            <li><a href=\"#contact-block\" class=\"menu-item-link\" id=\"menuContactLink\">Contact<\/a><\/li>\n        <\/ul>\n        <div class=\"menu-footer\">\n            <ul class=\"menu-socials\">\n                <li><a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\" class=\"social-link\">Instagram<\/a><\/li>\n                <li><a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\" class=\"social-link\">TikTok<\/a><\/li>\n            <\/ul>\n        <\/div>\n    <\/nav>\n\n    <div class=\"cart-drawer\" id=\"cartDrawer\">\n        <div class=\"cart-header\">\n            <h3>Winkelwagen<\/h3>\n            <button class=\"cart-close-btn\" id=\"cartCloseBtn\">\u00d7<\/button>\n        <\/div>\n        <div class=\"cart-items-container\" id=\"cartItemsContainer\">\n            <!-- Dynamische items komen hier -->\n        <\/div>\n        <div class=\"cart-footer\">\n            <div class=\"cart-subtotal-row\">\n                <span>Subtotaal:<\/span>\n                <span id=\"cartSubtotal\">\u20ac0,00<\/span>\n            <\/div>\n            <button class=\"cart-checkout-btn\" id=\"cartCheckoutBtn\">Afrekenen<\/button>\n        <\/div>\n    <\/div>\n\n    <div id=\"mockCheckoutModal\" class=\"mock-checkout-modal-overlay\">\n        <div class=\"mock-checkout-modal-content\">\n            <button id=\"closeMockModal\" class=\"mock-close-btn\">\u00d7<\/button>\n            <div class=\"mock-icon-badge\">\n                <svg width=\"35\" height=\"35\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--lime-green)\" stroke-width=\"2.5\">\n                    <polyline points=\"20 6 9 17 4 12\"><\/polyline>\n                <\/svg>\n            <\/div>\n            <h3 class=\"mock-heading\">Bestelling in de steigers!<\/h3>\n            <p class=\"mock-subtext\">\n                Je hebt zojuist de demo-merch afgerekend! Dit is een voorvertoning. Zodra je live Shopify-producten inlaadt en de wachtwoordbeveiliging van je winkel haalt, stuurt deze knop je klanten direct door naar jullie beveiligde Shopify checkout.\n            <\/p>\n            <div id=\"mockOrderSummary\" class=\"mock-summary\">\n            <\/div>\n            <button id=\"confirmMockBtn\" class=\"mock-confirm-btn\">Lekker Bezig<\/button>\n        <\/div>\n    <\/div>\n\n    <section class=\"lafbek-hero\">\n        <div class=\"video-container\" id=\"parallaxVideoContainer\">\n            <video autoplay=\"\" loop=\"\" muted=\"\" playsinline=\"\" class=\"video-bg\" id=\"lafbekVideo\">\n                <source src=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/distorted-lafbek-v1.mp4\" type=\"video\/mp4\">\n            <\/video>\n        <\/div>\n        <div class=\"gradient-overlay\"><\/div>\n\n        <header class=\"lafbek-header\">\n            <div class=\"menu-trigger-container\" id=\"menuTrigger\" title=\"Open Menu\">\n                <img decoding=\"async\" src=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\" alt=\"Lafbek Smiley Menu\" class=\"lafbek-header-icon\">\n            <\/div>\n            \n            <div class=\"header-logo-center\">\n                <img decoding=\"async\" src=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/Lafbek-logo-wit.png\" alt=\"Lafbek Compact Logo\" class=\"docked-logo\">\n            <\/div>\n            \n            <div class=\"header-actions\">\n                <button class=\"sound-toggle\" id=\"soundToggle\" title=\"Geluid inschakelen\">\n                    <svg id=\"muteIcon\" viewBox=\"0 0 24 24\">\n                        <path d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM19 12c0 2.94-1.65 5.49-4 6.81v2.06c3.47-1.4 6-4.81 6-8.87s-2.53-7.47-6-8.87v2.06c2.35 1.32 4 3.87 4 6.81zM3 9v6h4l5 5V4L7 9H3zM16.5 12L14 9.5v5z\" style=\"display:none;\"><\/path>\n                        <path id=\"speakerMuted\" d=\"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.21.05-.42.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.06-2.53-7.47-6-8.87v2.06c2.35 1.32 4 3.87 4 6.81zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\"><\/path>\n                    <\/svg>\n                <\/button>\n                <button class=\"cart-toggle-btn\" id=\"cartToggleBtn\" title=\"Winkelwagen\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <circle cx=\"9\" cy=\"21\" r=\"1\"><\/circle>\n                        <circle cx=\"20\" cy=\"21\" r=\"1\"><\/circle>\n                        <path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"><\/path>\n                    <\/svg>\n                    <span class=\"cart-badge\" id=\"cartBadge\">0<\/span>\n                <\/button>\n                <a href=\"#shopify-section\" class=\"cta-button\">Shop Nu<\/a>\n            <\/div>\n        <\/header>\n\n        <div class=\"hero-center-wrapper\">\n            <div class=\"main-logo-container\">\n                <img decoding=\"async\" src=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/Lafbek-logo-wit.png\" alt=\"Lafbek Logo\" class=\"main-logo\">\n            <\/div>\n        <\/div>\n\n        <div class=\"scroll-indicator-container\">\n            <a href=\"#shopify-section\" class=\"scroll-indicator\" id=\"scrollTrigger\">\n                <span>Bekijk merch &amp; video&#8217;s<\/span>\n                <svg class=\"scroll-svg\" viewBox=\"0 0 24 24\">\n                    <path d=\"M7 13l5 5 5-5M7 6l5 5 5-5\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n    <\/section>\n\n    <section id=\"shopify-section\" class=\"shopify-section\">\n        <div class=\"grid-container\">\n            <div class=\"merch-column\">\n                <div class=\"section-header\">\n                    <h2>Lafbek Merch<\/h2>\n                    <p>Pak hier de offici\u00eble en meest vette Lafbek streetwear gear.<\/p>\n                <\/div>\n                <div class=\"merch-grid\" id=\"shopifyProductsGrid\">\n                    <div style=\"grid-column: span 3; text-align: center; padding: 40px; color: var(--text-muted);\">\n                        Catalogus laden&#8230;\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"videos-column\">\n                <div class=\"section-header\">\n                    <h2>Laatste Video&#8217;s<\/h2>\n                    <p>Bekijk onze nieuwste content direct vanaf YouTube.<\/p>\n                <\/div>\n                <div class=\"videos-list\">\n                    <div class=\"video-card\">\n                        <div class=\"lazy-youtube-wrapper\" onclick=\"loadLazyYoutube(this, 'Scnp4zE_uhY')\">\n                            <div class=\"lazy-youtube-thumbnail\" style=\"background-image: url('https:\/\/img.youtube.com\/vi\/Scnp4zE_uhY\/maxresdefault.jpg');\"><\/div>\n                            <div class=\"lazy-youtube-play-btn\">\n                                <svg viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"><\/path><\/svg>\n                            <\/div>\n                        <\/div>\n                        <div class=\"video-details\">\n                            <span class=\"video-tag\">Nieuw<\/span>\n                            <h3 class=\"video-title\">GANGSTER RAPPER &#8211; EP 4 &#8216;De Finale&#8217; \ud83c\udfa4<\/h3>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"social-channels-block\">\n                        <a href=\"https:\/\/www.youtube.com\/@LAF-BEK\" target=\"_blank\" class=\"social-channel-btn\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M23.498 6.163c-.272-.972-.979-1.68-1.93-1.953C19.865 3.75 12 3.75 12 3.75s-7.865 0-9.567.46C1.48 4.484.773 5.19.5 6.163.044 7.876 0 12 0 12s.044 4.124.5 5.837c.272.972.979 1.68 1.93 1.953 1.702.46 9.567.46 9.567.46s7.865 0 9.567-.46c.951-.273 1.658-.98 1.93-1.953.456-1.713.5-5.837.5-5.837s-.044-4.124-.5-5.837zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"><\/path><\/svg>\n                            <span>Bekijk YouTube<\/span>\n                        <\/a>\n                        <a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\" class=\"social-channel-btn\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M12.525.02c1.31-.03 2.61-.01 3.91-.02.08 1.53.63 3.03 1.61 4.2 1.11 1.25 2.63 2.05 4.25 2.27v3.83c-1.74-.08-3.41-.75-4.75-1.89-.25-.21-.48-.44-.69-.69v6.52c-.08 1.83-.69 3.65-1.81 5.09-1.5 1.89-3.9 3.01-6.32 2.87-2.67-.09-5.23-1.62-6.52-3.97-1.55-2.73-1.11-6.43 1.09-8.67 1.48-1.47 3.59-2.24 5.67-2.02.13.01.26.03.39.06V10.7c-.89-.13-1.82.02-2.6.49-.93.58-1.51 1.62-1.52 2.72.01 1.27.76 2.45 1.91 2.97.94.43 2.03.4 2.94-.1.82-.48 1.35-1.35 1.39-2.3.02-2.18-.01-4.37.01-6.55V0h-.09z\"><\/path><\/svg>\n                            <span>Check TikTok<\/span>\n                        <\/a>\n                        <a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\" class=\"social-channel-btn\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.051.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\"><\/path><\/svg>\n                            <span>Check Instagram<\/span>\n                        <\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <!-- INTERACTIEVE SECTIE MET COLLAPSED FORM EN LINK NAAR OVER ONS -->\n    <section class=\"lafbek-interactive-section\">\n        <div class=\"interactive-container\">\n            <div class=\"contact-collapse-container\" id=\"contact-block\">\n                <button class=\"contact-accordion-header\" id=\"contactToggleBtn\" title=\"Neem contact op met Lafbek\">\n                    <div class=\"contact-header-title\">\n                        <svg viewBox=\"0 0 24 24\">\n                            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                            <path d=\"M22 6l-10 7L2 6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                        <\/svg>\n                        <span>Heb je een vraag? Contacteer Lafbek! \ud83d\udcec<\/span>\n                    <\/div>\n                    <svg class=\"accordion-indicator-icon\" viewBox=\"0 0 24 24\">\n                        <path d=\"M6 9l6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                    <\/svg>\n                <\/button>\n\n                <div class=\"contact-accordion-content\">\n                    <div class=\"contact-content-inner\">\n                        <div class=\"contact-form-body\" id=\"formWrapper\">\n                            <form id=\"lafbekContactForm\" onsubmit=\"handleFormSubmit(event)\">\n                                <div class=\"contact-grid\">\n                                    <div>\n                                        <label class=\"form-label\" for=\"contactName\">Naam of Alias<\/label>\n                                        <input class=\"form-input\" type=\"text\" id=\"contactName\" required=\"\" placeholder=\"Hoe moeten we je noemen?\">\n                                    <\/div>\n                                    <div>\n                                        <label class=\"form-label\" for=\"contactEmail\">E-mailadres<\/label>\n                                        <input class=\"form-input\" type=\"email\" id=\"contactEmail\" required=\"\" placeholder=\"waarop we kunnen reageren\">\n                                    <\/div>\n                                    <div class=\"form-group-full\">\n                                        <label class=\"form-label\" for=\"contactMessage\">Je bericht<\/label>\n                                        <textarea class=\"form-input\" id=\"contactMessage\" rows=\"5\" required=\"\" placeholder=\"Gooi je idee, vraag of shout-out hierin...\"><\/textarea>\n                                    <\/div>\n                                <\/div>\n                                <button type=\"submit\" class=\"form-submit-btn\">Verstuur Bericht<\/button>\n                            <\/form>\n                        <\/div>\n                        <div class=\"form-success-message\" id=\"successMessage\">\n                            <svg viewBox=\"0 0 24 24\" fill=\"none\">\n                                <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <polyline points=\"22 4 12 14.01 9 11.01\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/polyline>\n                            <\/svg>\n                            <h3>Bericht is onderweg!<\/h3>\n                            <p>Lekker bezig. We pakken je bericht zo snel mogelijk op. Stay tuned!<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- LINK NAAR NIEUWE OVER ONS PAGINA (VERVANGT DE KARAKTER GRID) -->\n            <div class=\"contact-collapse-container\" style=\"text-align: center; padding: 60px 40px;\">\n                <h2 style=\"font-size: 2.2rem; font-weight: 900; text-transform: uppercase; color: var(--lime-green); margin-bottom: 15px;\">Ontdek het Lafbek Universe \ud83c\udfac<\/h2>\n                <p style=\"color: var(--text-muted); font-size: 1.1rem; max-width: 600px; margin: 0 auto 30px auto; line-height: 1.6;\">\n                    Benieuwd naar het merk Lafbek, of wil je alles weten over onze karakters zoals Jacob van de Beilmer, De Supplier en de rest van de crew? \n                <\/p>\n                <a href=\"?page_id=111\" class=\"form-submit-btn\" style=\"text-decoration: none; display: inline-block; margin-bottom: 50px;\">Lees het hele verhaal<\/a>\n\n                <!-- HET NIEUWE WORDPRESS BERICHT \/ MANIFESTO -->\n                <article class=\"wp-style-post\">\n                    <h3 class=\"wp-post-title\">Wat is Lafbek?<\/h3>\n                    <div class=\"wp-post-meta\">Gepubliceerd door Lafbek Crew \u2022 Manifesto<\/div>\n                    <div class=\"wp-post-content\">\n                        <p>Lafbek is wanneer je in de rij staat en probeert voor te dringen, wanneer je je matties littie in je zak steekt, wanneer je toch nog een extra biertje pakt als BVO&#8217;tje, als je expres niet incheckt op het station, of toch niet alle boodschappen scant bij de zelfscan, wanneer je tuft op straat, je uit de les loopt, of wanneer je te luid praat op het terras, een joint rookt in een speeltuin, of schreeuwt over straat, wanneer je door rood loopt, wanneer je niet stil bent in de stiltecoup\u00e9, wanneer je buren wakker worden van de muziek, wanneer je pist tegen de boom, en wanneer mensen jou spuugirritant vinden.<\/p>\n                        \n                        <p>Wanneer je te luid, te apart, te veel, te groot, te narcistisch, te enthousiast, te laat, te emotioneel, te chaotisch, te afgeleid, te intens, te echt, te snel of te gehaast, te gericht op je doelen, te veel in je eigen gedachten, te eerlijk, te menselijk, te groots dromen, te controversieel, te onafhankelijk, te \u201cgrappig\u201d, te open of te dicht, te veel op jezelf, te zichtbaar, te vaak op de voorgrond, te vaak \u201conaardig\u201d, te hoge zelfwaarde, te veel \u201calles of niets\u201d, te grote plannen, te grote idee\u00ebn, te loyaal aan je eigen visie bent.<\/p>\n                        \n                        <p class=\"highlight-quote\">Lafbek is er wanneer je \u201cte\u201d bent voor de samenleving.<\/p>\n                        \n                        <p>Lafbek is die bittere nasmaak die overheerst in je Vodka-Sprite, die prikkelende plant in de bloementuin, de lelijke oude skatebaan in de groeiende stad, graffiti op een trein, de traan uit woede, de lach tijdens de ruzie, die lelijke foto met het meeste karakter, de dode duif in het winkelcentrum, de oude halfvol geregende asbak, je lievelingsshirt met een gat erin, het strand op een regenachtige dag, een after en de drugs beginnen uit te werken, een koude douche, de warme kant van het kussen, kapot gevallen wijnglazen, eten met teveel zout, de angst om niet op te vallen.<\/p>\n                        \n                        <p>Lafbek is rauw, lafbek is heftig, slecht, shockerend, kut, pijnlijk, naar, klein, lauw. Lafbek is opvallend, chaotisch, cringe, zicht verbredend, vrijstaand, creatief, maar ook laf, en ego\u00efstisch, schokkend, maar wel echt. Lafbek is anders, speciaal, uniek, vernieuwend, onuitlegbaar.<\/p>\n                        \n                        <p class=\"final-statement\">Lafbek is Lafbek.<\/p>\n                    <\/div>\n                <\/article>\n            <\/div>\n\n        <\/div>\n    <\/section>\n\n    <!-- COMPREHENSIVE SEO & IDENTITY FOOTER -->\n    <footer class=\"lafbek-seo-footer\">\n        <div class=\"footer-grid\">\n            <div class=\"footer-col\">\n                <h4>Lafbek Official<\/h4>\n                <p>De offici\u00eble hub voor Lafbek streetwear, merchandise en wekelijkse content.<\/p>\n                <p>KVK: 12345678 (Demo)<\/p>\n            <\/div>\n            <div class=\"footer-col\">\n                <h4>Contact &amp; Adres<\/h4>\n                <p>Lafbekstraat 101<\/p>\n                <p>1011 AB, Amsterdam, Nederland<\/p>\n                <p>Tel: +31 6 12345678<\/p>\n                <p>Email: <a href=\"mailto:info@lafbek.com\">info@lafbek.com<\/a><\/p>\n            <\/div>\n            <div class=\"footer-col\">\n                <h4>Social Media<\/h4>\n                <a href=\"https:\/\/www.youtube.com\/@LAF-BEK\" target=\"_blank\">YouTube Kanaal<\/a>\n                <a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\">TikTok Account<\/a>\n                <a href=\"https:\/\/www.tiktok.com\/@lafbek0\" target=\"_blank\">Instagram Profile<\/a>\n            <\/div>\n        <\/div>\n        <div class=\"footer-bottom\">\n            <p>\u00a9 2026 Lafbek. Alle rechten voorbehouden.<\/p>\n            <p>Ontworpen voor maximale PageSpeed en SEO prestaties.<\/p>\n        <\/div>\n    <\/footer>\n\n    <!-- PRODUCT DETAIL MODAL (SHOP BEHOUDEN) -->\n    <div class=\"product-modal\" id=\"productModal\">\n        <div class=\"modal-backdrop\" id=\"modalBackdrop\"><\/div>\n        <div class=\"modal-content\">\n            <button class=\"modal-close-btn\" id=\"modalCloseBtn\">\u00d7<\/button>\n            <div class=\"modal-grid\">\n                <div class=\"modal-gallery\">\n                    <div class=\"modal-active-img-wrapper\" id=\"modalActiveImgWrapper\"><\/div>\n                    <button class=\"gallery-nav-btn prev\" id=\"modalGalleryPrev\" title=\"Vorige foto\">\u276e<\/button>\n                    <button class=\"gallery-nav-btn next\" id=\"modalGalleryNext\" title=\"Volgende foto\">\u276f<\/button>\n                    <div class=\"modal-thumbnails\" id=\"modalThumbsContainer\"><\/div>\n                <\/div>\n                <div class=\"modal-info\">\n                    <h2 class=\"modal-title\" id=\"modalTitle\">Product Titel<\/h2>\n                    <div id=\"modalVariantsContainer\" class=\"modal-variants-selector\"><\/div>\n                    <div class=\"modal-price\" id=\"modalPrice\">\u20ac0,00<\/div>\n                    <p class=\"modal-description\" id=\"modalDescription\">De offici\u00eble en meest vette Lafbek streetwear gear.<\/p>\n                    <button class=\"woo-button\" id=\"modalAddToCartBtn\">In Winkelwagen<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        const video = document.getElementById('lafbekVideo');\n        const videoContainer = document.getElementById('parallaxVideoContainer');\n        const soundToggle = document.getElementById('soundToggle');\n        const muteIcon = document.getElementById('muteIcon');\n        const speakerMuted = document.getElementById('speakerMuted');\n\n        const VAT_RATE = 1;\n\n        const SHOPIFY_CONFIG = {\n            shopDomain: 'lafbek.myshopify.com',\n            storefrontAccessToken: '21e12b67e65082a9856afd478fcb9125',\n            apiVersion: '2023-10'\n        };\n\n        function toggleBodyScroll(lock) {\n            if (lock) {\n                document.body.classList.add('modal-open');\n            } else {\n                document.body.classList.remove('modal-open');\n            }\n        }\n\n        function loadLazyYoutube(element, videoId) {\n            const iframe = document.createElement('iframe');\n            iframe.setAttribute('src', `https:\/\/www.youtube.com\/embed\/${videoId}?autoplay=1&mute=0`);\n            iframe.setAttribute('allowfullscreen', 'allowfullscreen');\n            iframe.setAttribute('allow', 'autoplay; encrypted-media');\n            iframe.style.position = 'absolute';\n            iframe.style.top = '0';\n            iframe.style.left = '0';\n            iframe.style.width = '100%';\n            iframe.style.height = '100%';\n            iframe.style.border = '0';\n            \n            element.innerHTML = '';\n            element.appendChild(iframe);\n        }\n\n        let cart = JSON.parse(localStorage.getItem('lafbek_cart')) || [];\n\n        const menuTrigger = document.getElementById('menuTrigger');\n        const sidebarMenu = document.getElementById('sidebarMenu');\n        const sidebarOverlay = document.getElementById('sidebarOverlay');\n        const menuBackBtn = document.getElementById('menuBackBtn');\n        const menuMerchLink = document.getElementById('menuMerchLink');\n        const menuContactLink = document.getElementById('menuContactLink');\n\n        function openMenu() {\n            sidebarMenu.classList.add('active');\n            sidebarOverlay.classList.add('active');\n            toggleBodyScroll(true);\n        }\n\n        function closeMenu() {\n            sidebarMenu.classList.remove('active');\n            sidebarOverlay.classList.remove('active');\n            toggleBodyScroll(false);\n        }\n\n        menuTrigger.addEventListener('click', (e) => {\n            e.preventDefault();\n            if (sidebarMenu.classList.contains('active')) {\n                closeMenu();\n            } else {\n                openMenu();\n            }\n        });\n\n        menuBackBtn.addEventListener('click', closeMenu);\n        sidebarOverlay.addEventListener('click', closeMenu);\n        \n        menuMerchLink.addEventListener('click', closeMenu);\n        menuContactLink.addEventListener('click', (e) => {\n            closeMenu();\n            setTimeout(() => {\n                const container = document.getElementById('contact-block');\n                if (container) {\n                    container.classList.add('is-open');\n                    container.scrollIntoView({ behavior: 'smooth' });\n                }\n            }, 400);\n        });\n\n        const contactToggleBtn = document.getElementById('contactToggleBtn');\n        const contactContainer = document.getElementById('contact-block');\n\n        contactToggleBtn.addEventListener('click', () => {\n            contactContainer.classList.toggle('is-open');\n        });\n\n        function handleFormSubmit(event) {\n            event.preventDefault();\n            \n            const formWrapper = document.getElementById('formWrapper');\n            const successMessage = document.getElementById('successMessage');\n\n            formWrapper.style.transition = 'opacity 0.3s ease';\n            formWrapper.style.opacity = '0';\n\n            setTimeout(() => {\n                formWrapper.style.display = 'none';\n                successMessage.style.display = 'block';\n                \n                contactContainer.style.borderColor = 'var(--lime-green)';\n                contactContainer.style.boxShadow = '0 0 35px rgba(236, 225, 100, 0.2)';\n            }, 300);\n        }\n\n        const cartDrawer = document.getElementById('cartDrawer');\n        const cartToggleBtn = document.getElementById('cartToggleBtn');\n        const cartCloseBtn = document.getElementById('cartCloseBtn');\n        const cartItemsContainer = document.getElementById('cartItemsContainer');\n        const cartSubtotal = document.getElementById('cartSubtotal');\n        const cartBadge = document.getElementById('cartBadge');\n        const cartCheckoutBtn = document.getElementById('cartCheckoutBtn');\n\n        function toggleCart() {\n            const active = cartDrawer.classList.toggle('active');\n            toggleBodyScroll(active);\n        }\n\n        cartToggleBtn.addEventListener('click', toggleCart);\n        cartCloseBtn.addEventListener('click', toggleCart);\n\n        function updateCartUI() {\n            cartItemsContainer.innerHTML = '';\n            let total = 0;\n            let totalItems = 0;\n\n            if (cart.length === 0) {\n                cartItemsContainer.innerHTML = `\n                    <div class=\"cart-empty-state\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                            <circle cx=\"9\" cy=\"21\" r=\"1\"><\/circle>\n                            <circle cx=\"20\" cy=\"21\" r=\"1\"><\/circle>\n                            <path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"><\/path>\n                        <\/svg>\n                        <p>Je winkelwagen is leeg<\/p>\n                    <\/div>\n                `;\n                cartBadge.classList.remove('has-items');\n                cartSubtotal.innerText = '\u20ac0,00';\n            } else {\n                cart.forEach((item, index) => {\n                    total += item.price * item.quantity;\n                    totalItems += item.quantity;\n\n                    const itemEl = document.createElement('div');\n                    itemEl.classList.add('cart-item');\n                    itemEl.innerHTML = `\n                        <img decoding=\"async\" src=\"${item.image}\" alt=\"${item.title}\" class=\"cart-item-img\">\n                        <div class=\"cart-item-details\">\n                            <h4 class=\"cart-item-title\">${item.title}<\/h4>\n                            <span class=\"cart-item-price\">\u20ac${(item.price * item.quantity).toFixed(2).replace('.', ',')}<\/span>\n                            <div class=\"cart-quantity-controls\">\n                                <button class=\"qty-btn\" onclick=\"adjustQty(${index}, -1)\">-<\/button>\n                                <span class=\"qty-val\">${item.quantity}<\/span>\n                                <button class=\"qty-btn\" onclick=\"adjustQty(${index}, 1)\">+<\/button>\n                            <\/div>\n                        <\/div>\n                        <button class=\"cart-item-remove\" onclick=\"removeFromCart(${index})\">\n                            <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n                                <polyline points=\"3 6 5 6 21 6\"><\/polyline>\n                                <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"><\/path>\n                            <\/svg>\n                        <\/button>\n                    `;\n                    cartItemsContainer.appendChild(itemEl);\n                });\n\n                cartBadge.innerText = totalItems;\n                cartBadge.classList.add('has-items');\n                cartSubtotal.innerHTML = `\u20ac${total.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.75rem; color: var(--text-muted); font-weight: normal; display: block; text-align: right; margin-top: 2px;\">inclusief 21% BTW<\/span>`;\n            }\n\n            localStorage.setItem('lafbek_cart', JSON.stringify(cart));\n        }\n\n        window.addToCart = function(productJson) {\n            const product = JSON.parse(decodeURIComponent(productJson));\n            const existingIndex = cart.findIndex(item => item.variantId === product.variantId);\n\n            if (existingIndex > -1) {\n                cart[existingIndex].quantity += 1;\n            } else {\n                cart.push({\n                    id: product.id,\n                    title: product.title,\n                    price: product.price,\n                    image: product.image,\n                    quantity: 1,\n                    variantId: product.variantId\n                });\n            }\n\n            updateCartUI();\n            cartDrawer.classList.add('active'); \n            toggleBodyScroll(true);\n        };\n\n        window.adjustQty = function(index, change) {\n            cart[index].quantity += change;\n            if (cart[index].quantity <= 0) {\n                cart.splice(index, 1);\n            }\n            updateCartUI();\n        };\n\n        window.removeFromCart = function(index) {\n            cart.splice(index, 1);\n            updateCartUI();\n        };\n\n        function parseVariantId(gid) {\n            if (!gid) return '';\n            if (gid.startsWith('fb-')) {\n                return 'fb';\n            }\n            let decoded = gid;\n            if (!gid.startsWith('gid:\/\/')) {\n                try {\n                    decoded = atob(gid);\n                } catch (e) {\n                }\n            }\n            const match = decoded.match(\/\\\/ProductVariant\\\/(\\d+)\/);\n            return match ? match[1] : gid;\n        }\n\n        cartCheckoutBtn.addEventListener('click', () => {\n            if (cart.length === 0) return;\n\n            const hasRealProducts = cart.some(item => !item.variantId.startsWith('fb'));\n\n            if (!hasRealProducts) {\n                const summaryEl = document.getElementById('mockOrderSummary');\n                let itemsHtml = '<strong style=\"color: var(--lime-green); display: block; margin-bottom: 10px; text-transform: uppercase;\">Uw Demo Mandje:<\/strong>';\n                let total = 0;\n                \n                cart.forEach(item => {\n                    itemsHtml += `<div style=\"display: flex; justify-content: space-between; margin-bottom: 6px; color: #fff;\">\n                        <span>${item.title} (x${item.quantity})<\/span>\n                        <span>\u20ac${(item.price * item.quantity).toFixed(2).replace('.', ',')}<\/span>\n                    <\/div>`;\n                    total += item.price * item.quantity;\n                });\n                \n                itemsHtml += `<div style=\"border-top: 1px solid rgba(255,255,255,0.1); margin-top: 10px; padding-top: 10px; display: flex; justify-content: space-between; font-weight: 900; color: var(--lime-green);\">\n                    <span>SUBTOTAAL (incl. 21% BTW)<\/span>\n                    <span>\u20ac${total.toFixed(2).replace('.', ',')}<\/span>\n                <\/div>`;\n                \n                summaryEl.innerHTML = itemsHtml;\n                document.getElementById('mockCheckoutModal').style.display = 'flex';\n                cartDrawer.classList.remove('active'); \n                return;\n            }\n\n            const checkoutItems = cart\n                .filter(item => !item.variantId.startsWith('fb'))\n                .map(item => {\n                    const cleanId = parseVariantId(item.variantId);\n                    return `${cleanId}:${item.quantity}`;\n                }).join(',');\n\n            const checkoutUrl = `https:\/\/${SHOPIFY_CONFIG.shopDomain}\/cart\/${checkoutItems}?storefront=true`;\n            \n            console.log(\"%c[Shopify Checkout] Navigeren naar:\", \"color: #ece164; font-weight: bold;\", checkoutUrl);\n            \n            const newWindow = window.open(checkoutUrl, '_blank');\n            if (!newWindow || newWindow.closed || typeof newWindow.closed == 'undefined') {\n                window.location.href = checkoutUrl;\n            }\n        });\n\n        document.getElementById('closeMockModal').onclick = () => {\n            document.getElementById('mockCheckoutModal').style.display = 'none';\n            toggleBodyScroll(false);\n        };\n        document.getElementById('confirmMockBtn').onclick = () => {\n            document.getElementById('mockCheckoutModal').style.display = 'none';\n            toggleBodyScroll(false);\n        };\n        document.getElementById('mockCheckoutModal').onclick = (e) => {\n            if (e.target === document.getElementById('mockCheckoutModal')) {\n                document.getElementById('mockCheckoutModal').style.display = 'none';\n                toggleBodyScroll(false);\n            }\n        };\n\n        async function fetchShopifyProducts() {\n            const grid = document.getElementById('shopifyProductsGrid');\n            const graphqlQuery = {\n                query: `\n                {\n                  products(first: 20) {\n                    edges {\n                      node {\n                        id\n                        title\n                        description\n                        images(first: 10) {\n                          edges {\n                            node {\n                              url\n                              altText\n                            }\n                          }\n                        }\n                        variants(first: 20) {\n                          edges {\n                            node {\n                              id\n                              title\n                              price {\n                                amount\n                                currencyCode\n                              }\n                              selectedOptions {\n                                name\n                                value\n                              }\n                              image {\n                                url\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n                `\n            };\n\n            try {\n                const response = await fetch(`https:\/\/${SHOPIFY_CONFIG.shopDomain}\/api\/${SHOPIFY_CONFIG.apiVersion}\/graphql.json`, {\n                    method: 'POST',\n                    headers: {\n                        'Content-Type': 'application\/json',\n                        'X-Shopify-Storefront-Access-Token': SHOPIFY_CONFIG.storefrontAccessToken\n                    },\n                    body: JSON.stringify(graphqlQuery)\n                });\n\n                const json = await response.json();\n                const products = json.data.products.edges;\n\n                if (products.length > 0) {\n                    grid.innerHTML = ''; \n                    \n                    const mergedCatalog = [];\n                    const allDecks = [];\n\n                    products.forEach(edge => {\n                        const product = edge.node;\n                        const lowerTitle = product.title.toLowerCase();\n                        const isDeck = lowerTitle.includes('deck') || lowerTitle.includes('skate');\n                        \n                        if (isDeck) {\n                            const sizeMatch = product.title.match(\/\\b(7\\.\\d+|8\\.\\d+|9\\.\\d+)\\b\/);\n                            const variantName = sizeMatch ? sizeMatch[0] : product.title.replace(\/Lafbek|Deck|Skateboard|-\/gi, '').trim() || 'Standaard';\n                            allDecks.push({ product, variantName });\n                        } else {\n                            mergedCatalog.push({ type: 'normal', data: product });\n                        }\n                    });\n\n                    if (allDecks.length > 0) {\n                        mergedCatalog.push({ \n                            type: 'virtual_deck_group', \n                            data: {\n                                id: allDecks[0].product.id,\n                                title: 'Lafbek Skateboard Deck',\n                                originalProducts: allDecks\n                            }\n                        });\n                    }\n\n                    mergedCatalog.forEach(item => {\n                        let finalProduct;\n\n                        if (item.type === 'normal') {\n                            const product = item.data;\n                            const imageList = product.images.edges.map(img => ({ url: img.node.url, altText: img.node.altText || '' }));\n                            const image = imageList[0] ? imageList[0].url : 'https:\/\/placehold.co\/300';\n                            const price = parseFloat(product.variants.edges[0].node.price.amount) * VAT_RATE;\n                            const variantId = product.variants.edges[0].node.id;\n\n                            const variantsList = product.variants.edges.map(v => ({\n                                id: v.node.id,\n                                title: v.node.title,\n                                price: parseFloat(v.node.price.amount) * VAT_RATE, \n                                selectedOptions: v.node.selectedOptions.map(opt => ({\n                                    name: opt.name,\n                                    value: opt.value\n                                })),\n                                image: v.node.image ? v.node.image.url : null\n                            }));\n\n                            finalProduct = {\n                                id: product.id,\n                                title: product.title,\n                                price: price,\n                                image: image,\n                                images: imageList,\n                                variants: variantsList,\n                                variantId: variantId,\n                                isComposite: false\n                            };\n                        } else if (item.type === 'virtual_deck_group') {\n                            const group = item.data;\n                            const allImages = [];\n                            const variantsList = [];\n                            const compositeImages = [];\n\n                            group.originalProducts.sort((a, b) => parseFloat(a.variantName) - parseFloat(b.variantName));\n\n                            group.originalProducts.forEach(op => {\n                                const p = op.product;\n                                \n                                p.images.edges.forEach(img => {\n                                    if (!allImages.find(i => i.url === img.node.url)) {\n                                        allImages.push({ url: img.node.url, altText: img.node.altText || '' });\n                                    }\n                                });\n\n                                const pImage = p.images.edges[0] ? p.images.edges[0].node.url : null;\n                                if (pImage && !compositeImages.includes(pImage)) {\n                                    compositeImages.push(pImage);\n                                }\n\n                                const realVariant = p.variants.edges[0].node;\n                                variantsList.push({\n                                    id: realVariant.id, \n                                    title: op.variantName,\n                                    price: parseFloat(realVariant.price.amount) * VAT_RATE,\n                                    selectedOptions: [{ name: \"Maat\", value: op.variantName }],\n                                    image: pImage\n                                });\n                            });\n\n                            finalProduct = {\n                                id: group.id,\n                                title: group.title,\n                                price: variantsList[0].price,\n                                image: allImages[0] ? allImages[0].url : 'https:\/\/placehold.co\/300',\n                                images: allImages,\n                                variants: variantsList,\n                                variantId: variantsList[0].id,\n                                isComposite: true,\n                                compositeImages: compositeImages\n                            };\n                        }\n\n                        const serializedProduct = encodeURIComponent(JSON.stringify(finalProduct));\n\n                        let imageHtml = '';\n                        if (finalProduct.isComposite && finalProduct.compositeImages && finalProduct.compositeImages.length > 1) {\n                            const maxItems = Math.min(4, finalProduct.compositeImages.length);\n                            const imgs = finalProduct.compositeImages.slice(0, maxItems).map((url, i) => `\n                                <img decoding=\"async\" src=\"${url}\" style=\"\n                                    width: ${Math.min(30, 100\/maxItems)}%; \n                                    height: 85%; \n                                    object-fit: contain; \n                                    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.5));\n                                    transform: rotate(${i % 2 === 0 ? -4 : 4}deg);\n                                \">`).join('');\n                            imageHtml = `<div style=\"display: flex; gap: 4px; width: 100%; height: 100%; align-items: center; justify-content: center;\">${imgs}<\/div>`;\n                        } else {\n                            imageHtml = `<img decoding=\"async\" class=\"merch-img\" src=\"${finalProduct.image}\" alt=\"${finalProduct.title}\">`;\n                        }\n\n                        const card = document.createElement('div');\n                        card.classList.add('merch-card');\n                        card.innerHTML = `\n                            <div class=\"merch-img-container\" onclick=\"openProductModal('${serializedProduct}')\" style=\"cursor: pointer;\">\n                                ${imageHtml}\n                            <\/div>\n                            <div class=\"merch-info\">\n                                <h3 class=\"merch-title\" onclick=\"openProductModal('${serializedProduct}')\" style=\"cursor: pointer;\">${finalProduct.title}<\/h3>\n                                <div class=\"merch-price-row\">\n                                    <span class=\"merch-price\">\u20ac${finalProduct.price.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.75rem; color: var(--text-muted); font-weight: normal;\">(incl. BTW)<\/span><\/span>\n                                <\/div>\n                                <button class=\"woo-button\" onclick=\"openProductModal('${serializedProduct}')\">Bekijk<\/button>\n                            <\/div>\n                        `;\n                        grid.appendChild(card);\n                    });\n                } else {\n                    renderFallbackProducts();\n                }\n            } catch (error) {\n                console.warn(\"Shopify API Error, switching to high-fidelity static mockups:\", error);\n                renderFallbackProducts();\n            }\n        }\n\n        function renderFallbackProducts() {\n            const grid = document.getElementById('shopifyProductsGrid');\n            \n            const deckImgBase = `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 300\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"20\" y=\"10\" width=\"60\" height=\"280\" rx=\"30\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><text x=\"50\" y=\"150\" fill=\"%23ece164\" font-size=\"20\" font-weight=\"bold\" font-family=\"Arial\" text-anchor=\"middle\" transform=\"rotate(-90 50 150)\">SIZE_PLACEHOLDER<\/text><\/svg>`;\n\n            const fallbackProducts = [\n                {\n                    id: \"fb-7-deck-group\",\n                    title: \"Lafbek Skateboard Deck\",\n                    price: 59.99,\n                    isComposite: true,\n                    compositeImages: [\n                        deckImgBase.replace('SIZE_PLACEHOLDER', '8.0'),\n                        deckImgBase.replace('SIZE_PLACEHOLDER', '8.25'),\n                        deckImgBase.replace('SIZE_PLACEHOLDER', '8.5'),\n                        deckImgBase.replace('SIZE_PLACEHOLDER', '8.75')\n                    ],\n                    images: [\n                        { url: deckImgBase.replace('SIZE_PLACEHOLDER', '8.0'), altText: '' },\n                        { url: deckImgBase.replace('SIZE_PLACEHOLDER', '8.25'), altText: '' },\n                        { url: deckImgBase.replace('SIZE_PLACEHOLDER', '8.5'), altText: '' },\n                        { url: deckImgBase.replace('SIZE_PLACEHOLDER', '8.75'), altText: '' }\n                    ],\n                    variants: [\n                        { id: \"fb-v-deck-80\", title: \"8.0\", price: 59.99, selectedOptions: [{ name: \"Maat\", value: \"8.0\" }], image: deckImgBase.replace('SIZE_PLACEHOLDER', '8.0') },\n                        { id: \"fb-v-deck-825\", title: \"8.25\", price: 59.99, selectedOptions: [{ name: \"Maat\", value: \"8.25\" }], image: deckImgBase.replace('SIZE_PLACEHOLDER', '8.25') },\n                        { id: \"fb-v-deck-85\", title: \"8.5\", price: 59.99, selectedOptions: [{ name: \"Maat\", value: \"8.5\" }], image: deckImgBase.replace('SIZE_PLACEHOLDER', '8.5') },\n                        { id: \"fb-v-deck-875\", title: \"8.75\", price: 59.99, selectedOptions: [{ name: \"Maat\", value: \"8.75\" }], image: deckImgBase.replace('SIZE_PLACEHOLDER', '8.75') }\n                    ]\n                },\n                {\n                    id: \"fb-1\",\n                    title: \"Lafbek Snapback\",\n                    price: 16.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%230d0d0e\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><circle cx=\"50\" cy=\"45\" r=\"8\" fill=\"%23111\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M47 43L49 45M47 45L49 43\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M51 43L53 45M51 45L53 43\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M46 48C47 50 53 50 54 48\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><\/svg>`, altText: '' },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%23000000\" stroke=\"%23ece164\" stroke-width=\"1.5\"\/><\/svg>`, altText: '' },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23ff3b30\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%23000000\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>`, altText: '' }\n                    ],\n                    variants: [\n                        { id: \"fb-v-sb-black\", title: \"Zwart\", price: 16.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%230d0d0e\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><circle cx=\"50\" cy=\"45\" r=\"8\" fill=\"%23111\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M47 43L49 45M47 45L49 43\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M51 43L53 45M51 45L53 43\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><path d=\"M46 48C47 50 53 50 54 48\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><\/svg>` },\n                        { id: \"fb-v-sb-lime\", title: \"Lime\", price: 16.99, selectedOptions: [{ name: \"Kleur\", value: \"Lime\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%23000000\" stroke=\"%23ece164\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-sb-red\", title: \"Rood\", price: 17.99, selectedOptions: [{ name: \"Kleur\", value: \"Rood\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M20 60C20 35 32 25 50 25C68 25 80 35 80 60H20Z\" fill=\"%23ff3b30\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M15 60C15 60 22 72 50 72C78 72 85 60 85 60H15Z\" fill=\"%23000000\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>` }\n                    ]\n                },\n                {\n                    id: \"fb-2\",\n                    title: \"Lafbek Rolling Tray\",\n                    price: 9.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"10\" y=\"20\" width=\"80\" height=\"60\" rx=\"10\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><rect x=\"14\" y=\"24\" width=\"72\" height=\"52\" rx=\"8\" fill=\"%230d0d0e\" stroke=\"rgba(255,255,255,0.15)\" stroke-width=\"1.5\"\/><g transform=\"translate(50, 50) scale(0.35)\"><circle cx=\"0\" cy=\"-25\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><\/g><\/svg>`, altText: '' },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"10\" y=\"20\" width=\"80\" height=\"60\" rx=\"10\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><rect x=\"14\" y=\"24\" width=\"72\" height=\"52\" rx=\"8\" fill=\"%23000000\" stroke=\"rgba(236,225,100,0.15)\" stroke-width=\"1.5\"\/><\/svg>`, altText: '' }\n                    ],\n                    variants: [\n                        { id: \"fb-v-tray-black\", title: \"Zwart\", price: 9.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"10\" y=\"20\" width=\"80\" height=\"60\" rx=\"10\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><rect x=\"14\" y=\"24\" width=\"72\" height=\"52\" rx=\"8\" fill=\"%230d0d0e\" stroke=\"rgba(255,255,255,0.15)\" stroke-width=\"1.5\"\/><g transform=\"translate(50, 50) scale(0.35)\"><circle cx=\"0\" cy=\"-25\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4\"\/><\/g><\/svg>` },\n                        { id: \"fb-v-tray-lime\", title: \"Lime\", price: 9.99, selectedOptions: [{ name: \"Kleur\", value: \"Lime\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"10\" y=\"20\" width=\"80\" height=\"60\" rx=\"10\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><rect x=\"14\" y=\"24\" width=\"72\" height=\"52\" rx=\"8\" fill=\"%23000000\" stroke=\"rgba(236,225,100,0.15)\" stroke-width=\"1.5\"\/><\/svg>` }\n                    ]\n                },\n                {\n                    id: \"fb-3\",\n                    title: \"Lafbek Grinder\",\n                    price: 3.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%230d0d0e\" stroke=\"rgba(255,255,255,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><\/g><\/svg>`, altText: '' },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%23000000\" stroke=\"rgba(236,225,100,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23000000\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><\/g><\/svg>`, altText: '' },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23ff3b30\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%23000000\" stroke=\"rgba(255,255,255,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><\/g><\/svg>`, altText: '' }\n                    ],\n                    variants: [\n                        { id: \"fb-v-grinder-black\", title: \"Zwart\", price: 3.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%230d0d0e\" stroke=\"rgba(255,255,255,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><\/g><\/svg>` },\n                        { id: \"fb-v-grinder-lime\", title: \"Lime\", price: 3.99, selectedOptions: [{ name: \"Kleur\", value: \"Lime\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%23000000\" stroke=\"rgba(236,225,100,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23000000\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23ece164\" stroke=\"%23000000\" stroke-width=\"4.5\"\/><\/g><\/svg>` },\n                        { id: \"fb-v-grinder-red\", title: \"Rood\", price: 5.49, selectedOptions: [{ name: \"Kleur\", value: \"Rood\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"50\" cy=\"50\" r=\"40\" fill=\"%23ff3b30\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"36\" fill=\"%23000000\" stroke=\"rgba(255,255,255,0.2)\" stroke-width=\"1.5\"\/><path d=\"M50 10 L50 14 M50 86 L50 90 M10 50 L14 50 M86 50 L90 50 M22 22 L25 25 M78 78 L75 75 M22 78 L25 75 M78 22 L75 25\" stroke=\"%23ffffff\" stroke-width=\"1\"\/><g transform=\"translate(50, 50) scale(0.28)\"><path d=\"M-25 -25 L-15 -15 M-25 -15 L-15 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M15 -25 L25 -15 M15 -15 L25 -25\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-30 0 C-10 15 10 15 30 0\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><path d=\"M-10 7 C-10 25 10 25 10 7\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"4.5\"\/><\/g><\/svg>` }\n                    ]\n                },\n                {\n                    id: \"fb-4\",\n                    title: \"Lafbek T-Shirt\",\n                    price: 24.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>`, altText: \"\" },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><\/svg>`, altText: \"\" },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><\/svg>`, altText: \"\" },\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><\/svg>`, altText: \"\" }\n                    ],\n                    variants: [\n                        { id: \"fb-v-shirt-b-s\", title: \"Zwart \/ S\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }, { name: \"Maat\", value: \"S\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-b-m\", title: \"Zwart \/ M\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }, { name: \"Maat\", value: \"M\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-b-l\", title: \"Zwart \/ L\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }, { name: \"Maat\", value: \"L\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-b-xl\", title: \"Zwart \/ XL\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Zwart\" }, { name: \"Maat\", value: \"XL\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-w-s\", title: \"Wit \/ S\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Wit\" }, { name: \"Maat\", value: \"S\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-w-m\", title: \"Wit \/ M\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Wit\" }, { name: \"Maat\", value: \"M\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-w-l\", title: \"Wit \/ L\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Wit\" }, { name: \"Maat\", value: \"L\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><\/svg>` },\n                        { id: \"fb-v-shirt-w-xl\", title: \"Wit \/ XL\", price: 24.99, selectedOptions: [{ name: \"Kleur\", value: \"Wit\" }, { name: \"Maat\", value: \"XL\" }], image: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 25 L35 15 L42 20 L42 25 L58 25 L58 20 L65 15 L75 25 L70 38 L65 38 L65 85 L35 85 L35 38 L30 38 Z\" fill=\"%23f0f0f0\" stroke=\"%23000000\" stroke-width=\"2\"\/><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"none\" stroke=\"%23000000\" stroke-width=\"2\"\/><path d=\"M47 48L49 50M47 50L49 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M51 48L53 50M51 50L53 48\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><path d=\"M46 54C47 56 53 56 54 54\" stroke=\"%23000000\" stroke-width=\"1.5\"\/><\/svg>` }\n                    ]\n                },\n                {\n                    id: \"fb-5\",\n                    title: \"Lafbek Hoodie\",\n                    price: 49.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M25 35 L35 25 L45 32 L45 30 L55 30 L55 32 L65 25 L75 35 L70 50 L63 50 L63 88 L37 88 L37 50 L30 50 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><path d=\"M37 25 C37 12 63 12 63 25\" fill=\"%230d0d0e\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><rect x=\"42\" y=\"70\" width=\"16\" height=\"12\" rx=\"3\" fill=\"none\" stroke=\"%23ffffff\" stroke-width=\"1.5\"\/><\/svg>`, altText: \"Zwart\" }\n                    ],\n                    variants: [\n                        { id: \"fb-v-hoodie-s\", title: \"S\", price: 49.99, selectedOptions: [{ name: \"Maat\", value: \"S\" }] },\n                        { id: \"fb-v-hoodie-m\", title: \"M\", price: 49.99, selectedOptions: [{ name: \"Maat\", value: \"M\" }] },\n                        { id: \"fb-v-hoodie-l\", title: \"L\", price: 49.99, selectedOptions: [{ name: \"Maat\", value: \"L\" }] },\n                        { id: \"fb-v-hoodie-xl\", title: \"XL\", price: 49.99, selectedOptions: [{ name: \"Maat\", value: \"XL\" }] }\n                    ]\n                },\n                {\n                    id: \"fb-6\",\n                    title: \"Lafbek Socks\",\n                    price: 8.99,\n                    images: [\n                        { url: `data:image\/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M35 15 H50 V60 L68 75 L60 85 L35 68 Z\" fill=\"%23161618\" stroke=\"%23ffffff\" stroke-width=\"2\"\/><rect x=\"35\" y=\"20\" width=\"15\" height=\"5\" fill=\"%23ece164\"\/><\/svg>`, altText: \"Zwart\" }\n                    ],\n                    variants: [\n                        { id: \"fb-v-socks-38\", title: \"38-41\", price: 8.99, selectedOptions: [{ name: \"Maat\", value: \"38-41\" }] },\n                        { id: \"fb-v-socks-42\", title: \"42-45\", price: 8.99, selectedOptions: [{ name: \"Maat\", value: \"42-45\" }] },\n                        { id: \"fb-v-socks-46\", title: \"46-48\", price: 8.99, selectedOptions: [{ name: \"Maat\", value: \"46-48\" }] }\n                    ]\n                }\n            ];\n\n            grid.innerHTML = '';\n            fallbackProducts.forEach(product => {\n                const image = typeof product.images[0] === 'string' ? product.images[0] : product.images[0].url;\n                const price = product.price * VAT_RATE;\n\n                const processedVariants = product.variants.map(v => ({\n                    ...v,\n                    price: v.price * VAT_RATE\n                }));\n\n                const serializedProduct = encodeURIComponent(JSON.stringify({\n                    id: product.id,\n                    title: product.title,\n                    price: price,\n                    image: image,\n                    images: product.images,\n                    variants: processedVariants,\n                    variantId: processedVariants[0].id,\n                    isComposite: product.isComposite,\n                    compositeImages: product.compositeImages\n                }));\n\n                let imageHtml = '';\n                if (product.isComposite && product.compositeImages && product.compositeImages.length > 1) {\n                    const maxItems = Math.min(4, product.compositeImages.length);\n                    const imgs = product.compositeImages.slice(0, maxItems).map((url, i) => `\n                        <img decoding=\"async\" src=\"${url}\" style=\"\n                            width: ${Math.min(30, 100\/maxItems)}%; \n                            height: 85%; \n                            object-fit: contain; \n                            filter: drop-shadow(0 10px 15px rgba(0,0,0,0.5));\n                            transform: rotate(${i % 2 === 0 ? -4 : 4}deg);\n                        \">`).join('');\n                    imageHtml = `<div style=\"display: flex; gap: 4px; width: 100%; height: 100%; align-items: center; justify-content: center;\">${imgs}<\/div>`;\n                } else {\n                    imageHtml = `<img decoding=\"async\" class=\"merch-img\" src=\"${image}\" alt=\"${product.title}\">`;\n                }\n\n                const card = document.createElement('div');\n                card.classList.add('merch-card');\n                card.innerHTML = `\n                    <div class=\"merch-img-container\" onclick=\"openProductModal('${serializedProduct}')\" style=\"cursor: pointer;\">\n                        ${imageHtml}\n                    <\/div>\n                    <div class=\"merch-info\">\n                        <h3 class=\"merch-title\" onclick=\"openProductModal('${serializedProduct}')\" style=\"cursor: pointer;\">${product.title}<\/h3>\n                        <div class=\"merch-price-row\">\n                            <span class=\"merch-price\">\u20ac${price.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.75rem; color: var(--text-muted); font-weight: normal;\">(incl. BTW)<\/span><\/span>\n                        <\/div>\n                        <button class=\"woo-button\" onclick=\"openProductModal('${serializedProduct}')\">Bekijk<\/button>\n                    <\/div>\n                `;\n                grid.appendChild(card);\n            });\n        }\n\n        const productModal = document.getElementById('productModal');\n        const modalBackdrop = document.getElementById('modalBackdrop');\n        const modalCloseBtn = document.getElementById('modalCloseBtn');\n        const modalActiveImgWrapper = document.getElementById('modalActiveImgWrapper');\n        const modalThumbsContainer = document.getElementById('modalThumbsContainer');\n        const modalTitle = document.getElementById('modalTitle');\n        const modalPrice = document.getElementById('modalPrice');\n        const modalAddToCartBtn = document.getElementById('modalAddToCartBtn');\n        const modalVariantsContainer = document.getElementById('modalVariantsContainer');\n        const modalGalleryPrev = document.getElementById('modalGalleryPrev');\n        const modalGalleryNext = document.getElementById('modalGalleryNext');\n\n        const COLOR_MAP = {\n            'zwart': '#111111',\n            'black': '#111111',\n            'lime': '#ece164',\n            'groen': '#ece164',\n            'green': '#28a745',\n            'rood': '#ff3b30',\n            'red': '#ff3b30',\n            'wit': '#ffffff',\n            'white': '#ffffff',\n            'grijs': '#88888b',\n            'grey': '#88888b',\n            'gray': '#88888b',\n            'blauw': '#007aff',\n            'blue': '#007aff',\n            'oranje': '#ff9500',\n            'orange': '#ff9500',\n            'geel': '#ffcc00',\n            'yellow': '#ffcc00'\n        };\n\n        window.openProductModal = function(productJson) {\n            const product = JSON.parse(decodeURIComponent(productJson));\n            let activeImageIndex = 0;\n            let currentGalleryImages = [];\n            \n            modalTitle.innerText = product.title;\n            modalPrice.innerHTML = `\u20ac${product.price.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.85rem; color: var(--text-muted); font-weight: normal; margin-left: 6px;\">incl. 21% BTW<\/span>`;\n            \n            modalActiveImgWrapper.innerHTML = '';\n            modalThumbsContainer.innerHTML = '';\n            modalVariantsContainer.innerHTML = '';\n\n            let allImages = [];\n            if (product.images && product.images.length > 0) {\n                allImages = product.images.map(img => typeof img === 'string' ? { url: img, altText: '' } : img);\n            } else if (product.image) {\n                allImages = [{ url: product.image, altText: '' }];\n            }\n\n            function renderGalleryImages(imagesToRender) {\n                currentGalleryImages = imagesToRender;\n                modalThumbsContainer.innerHTML = '';\n                \n                if (currentGalleryImages.length <= 1) {\n                    modalGalleryPrev.style.display = 'none';\n                    modalGalleryNext.style.display = 'none';\n                } else {\n                    modalGalleryPrev.style.display = 'flex';\n                    modalGalleryNext.style.display = 'flex';\n                }\n\n                if (currentGalleryImages.length > 0) {\n                    renderMainImage(0);\n                }\n\n                if (currentGalleryImages.length > 1) {\n                    currentGalleryImages.forEach((imgObj, index) => {\n                        const thumb = document.createElement('div');\n                        thumb.classList.add('modal-thumb');\n                        if (index === 0) thumb.classList.add('active');\n\n                        thumb.innerHTML = `<img decoding=\"async\" src=\"${imgObj.url}\" alt=\"Thumbnail ${index + 1}\">`;\n                        \n                        thumb.addEventListener('click', () => {\n                            renderMainImage(index);\n                        });\n\n                        modalThumbsContainer.appendChild(thumb);\n                    });\n                }\n            }\n\n            function renderMainImage(index) {\n                activeImageIndex = index;\n                if (currentGalleryImages.length === 0) return;\n                \n                const src = currentGalleryImages[index].url;\n                modalActiveImgWrapper.innerHTML = '';\n                \n                if (src.startsWith('data:image\/svg+xml') || src.startsWith('data:image\/png;base64') || src.startsWith('data:image\/jpeg;base64')) {\n                    modalActiveImgWrapper.innerHTML = `<img decoding=\"async\" src=\"${src}\" alt=\"${product.title}\">`;\n                } else {\n                    const img = document.createElement('img');\n                    img.src = src;\n                    img.alt = product.title;\n                    modalActiveImgWrapper.appendChild(img);\n                }\n\n                document.querySelectorAll('.modal-thumb').forEach((t, i) => {\n                    if (i === index) {\n                        t.classList.add('active');\n                        t.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n                    } else {\n                        t.classList.remove('active');\n                    }\n                });\n\n                if (product.isComposite && product.variants) {\n                    const cleanUrl = url => url ? url.split('?')[0].replace(\/^https?:\/, '').replace(\/^\\\/\\\/\/, '').trim() : '';\n                    const targetClean = cleanUrl(src);\n                    \n                    const matchedVariant = product.variants.find(v => cleanUrl(v.image) === targetClean);\n                    if (matchedVariant) {\n                        selectedVariantId = matchedVariant.id;\n                        modalPrice.innerHTML = `\u20ac${matchedVariant.price.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.85rem; color: var(--text-muted); font-weight: normal; margin-left: 6px;\">incl. 21% BTW<\/span>`;\n                        modalTitle.innerText = `${product.title} - Maat: ${matchedVariant.title}`;\n                    }\n                }\n            }\n\n            modalGalleryPrev.onclick = (e) => {\n                e.stopPropagation();\n                if (currentGalleryImages.length <= 1) return;\n                let newIndex = activeImageIndex - 1;\n                if (newIndex < 0) newIndex = currentGalleryImages.length - 1;\n                renderMainImage(newIndex);\n            };\n\n            modalGalleryNext.onclick = (e) => {\n                e.stopPropagation();\n                if (currentGalleryImages.length <= 1) return;\n                let newIndex = activeImageIndex + 1;\n                if (newIndex >= currentGalleryImages.length) newIndex = 0;\n                renderMainImage(newIndex);\n            };\n\n            const normalizeStr = str => str ? str.toLowerCase().trim() : '';\n\n            const isTshirt = product.title.toLowerCase().includes('t-shirt') || product.title.toLowerCase().includes('shirt') || product.title.toLowerCase().includes('tshirt');\n            const maxImages = isTshirt ? 2 : 3;\n\n            function updateGalleryForColor(colorValue) {\n                if (!colorValue && !product.isComposite) {\n                    renderGalleryImages(allImages.slice(0, maxImages));\n                    return;\n                }\n                if (product.isComposite) {\n                     renderGalleryImages(allImages);\n                     return;\n                }\n\n                const normalizedColor = normalizeStr(colorValue);\n                let filtered = [];\n                \n                filtered = allImages.filter(img => img.altText && img.altText.toLowerCase().includes(normalizedColor));\n                \n                if (filtered.length === 0 && product.variants) {\n                    const variantForColor = product.variants.find(v => \n                        v.selectedOptions.some(o => (o.name.toLowerCase() === 'kleur' || o.name.toLowerCase() === 'color' || o.name === 'Title' || o.name === 'Default Title') && normalizeStr(o.value) === normalizedColor)\n                    );\n\n                    if (variantForColor && variantForColor.image) {\n                        const cleanUrl = url => url ? url.split('?')[0].trim() : '';\n                        const targetClean = cleanUrl(variantForColor.image);\n                        \n                        const startIndex = allImages.findIndex(img => cleanUrl(img.url) === targetClean);\n                        \n                        if (startIndex > -1) {\n                            filtered = allImages.slice(startIndex, startIndex + maxImages);\n                        }\n                    }\n                }\n                \n                if (filtered.length === 0) {\n                    const fallbackVariant = product.variants.find(v => \n                        v.selectedOptions.some(o => (o.name.toLowerCase() === 'kleur' || o.name.toLowerCase() === 'color' || o.name === 'Title' || o.name === 'Default Title') && normalizeStr(o.value) === normalizedColor)\n                    );\n                    if (fallbackVariant && fallbackVariant.image) {\n                        const cleanUrl = url => url ? url.split('?')[0].trim() : '';\n                        const targetClean = cleanUrl(fallbackVariant.image);\n                        const startIndex = allImages.findIndex(img => cleanUrl(img.url) === targetClean);\n                        \n                        if (startIndex > -1) {\n                            filtered = allImages.slice(startIndex, startIndex + maxImages);\n                        } else {\n                            filtered = [{url: fallbackVariant.image, altText: ''}];\n                        }\n                    } else {\n                        filtered = allImages.slice(0, maxImages);\n                    }\n                }\n                \n                renderGalleryImages(filtered.slice(0, maxImages));\n            }\n\n            let selectedVariantId = product.variantId;\n            let currentSelectedOptions = {};\n\n            if (product.variants && product.variants.length > 1 && !product.isComposite) {\n                const optionGroups = {};\n                product.variants.forEach(variant => {\n                    variant.selectedOptions.forEach(opt => {\n                        if (opt.value === \"Default Title\") return;\n                        \n                        let groupName = opt.name;\n                        if (groupName === \"Title\" || groupName === \"Default Title\") {\n                            groupName = \"Kleur\";\n                        }\n\n                        if (!optionGroups[groupName]) {\n                            optionGroups[groupName] = [];\n                        }\n                        if (!optionGroups[groupName].includes(opt.value)) {\n                            optionGroups[groupName].push(opt.value);\n                        }\n                    });\n                });\n\n                const defaultVariant = product.variants.find(v => v.id === product.variantId) || product.variants[0];\n                defaultVariant.selectedOptions.forEach(opt => {\n                    let groupName = opt.name;\n                    if (groupName === \"Title\") groupName = \"Kleur\";\n                    currentSelectedOptions[groupName] = opt.value;\n                });\n\n                Object.keys(optionGroups).forEach(optionName => {\n                    if (optionGroups[optionName].length === 0) return;\n\n                    const isColorOption = optionName.toLowerCase().includes('kleur') || optionName.toLowerCase().includes('color');\n\n                    const groupWrapper = document.createElement('div');\n                    groupWrapper.innerHTML = `\n                        <div class=\"variant-option-title\">\n                            ${optionName}: \n                            <span class=\"active-val\" id=\"activeOptionVal-${optionName.replace(\/\\s+\/g, '')}\">\n                                ${currentSelectedOptions[optionName] || optionGroups[optionName][0]}\n                            <\/span>\n                        <\/div>\n                    `;\n                    \n                    const valuesContainer = document.createElement('div');\n                    valuesContainer.classList.add('variant-option-values');\n\n                    optionGroups[optionName].forEach(value => {\n                        let btn;\n                        \n                        if (isColorOption) {\n                            btn = document.createElement('div');\n                            btn.classList.add('variant-color-dot');\n                            \n                            const normalizedColor = normalizeStr(value);\n                            const mappedColor = COLOR_MAP[normalizedColor] || value;\n                            \n                            const variantForImage = product.variants.find(v => \n                                v.selectedOptions.some(o => (o.name.toLowerCase() === 'kleur' || o.name.toLowerCase() === 'color' || o.name === 'Title' || o.name === 'Default Title') && normalizeStr(o.value) === normalizedColor)\n                            );\n\n                            const uniqueVariantImages = new Set(product.variants.map(v => v.image).filter(Boolean));\n                            const hasDuplicateImages = uniqueVariantImages.size === 1 && product.variants.length > 1;\n\n                            if (variantForImage && variantForImage.image && !hasDuplicateImages) {\n                                btn.innerHTML = `<img decoding=\"async\" src=\"${variantForImage.image}\" alt=\"${value}\">`;\n                                btn.style.backgroundColor = '#161618'; \n                            } else {\n                                btn.style.backgroundColor = mappedColor;\n                            }\n                            \n                            btn.setAttribute('title', value);\n\n                            if (!variantForImage || !variantForImage.image || hasDuplicateImages) {\n                                if (mappedColor === '#ffffff' || normalizedColor === 'wit' || normalizedColor === 'white') {\n                                    btn.style.border = '2px solid #555';\n                                }\n                            }\n                        } else {\n                            btn = document.createElement('button');\n                            btn.classList.add('variant-value-btn');\n                            btn.innerText = value;\n                        }\n\n                        if (normalizeStr(currentSelectedOptions[optionName]) === normalizeStr(value)) {\n                            btn.classList.add('active');\n                        }\n\n                        btn.addEventListener('click', () => {\n                            currentSelectedOptions[optionName] = value;\n                            \n                            const labelEl = document.getElementById(`activeOptionVal-${optionName.replace(\/\\s+\/g, '')}`);\n                            if (labelEl) labelEl.innerText = value;\n\n                            valuesContainer.querySelectorAll('.variant-color-dot, .variant-value-btn').forEach(b => b.classList.remove('active'));\n                            btn.classList.add('active');\n\n                            if (isColorOption) {\n                                updateGalleryForColor(value);\n                            }\n\n                            const matchedVariant = product.variants.find(variant => {\n                                return variant.selectedOptions.every(opt => {\n                                    let groupName = opt.name;\n                                    if (groupName === \"Title\" || groupName === \"Default Title\") groupName = \"Kleur\";\n                                    \n                                    const normalizedGroup = normalizeStr(groupName);\n                                    const normalizedValue = normalizeStr(opt.value);\n                                    \n                                    const matchingKey = Object.keys(currentSelectedOptions).find(key => normalizeStr(key) === normalizedGroup);\n                                    if (!matchingKey) return false;\n                                    \n                                    return normalizeStr(currentSelectedOptions[matchingKey]) === normalizedValue;\n                                });\n                            });\n\n                            if (matchedVariant) {\n                                selectedVariantId = matchedVariant.id;\n                                modalPrice.innerHTML = `\u20ac${matchedVariant.price.toFixed(2).replace('.', ',')} <span style=\"font-size: 0.85rem; color: var(--text-muted); font-weight: normal; margin-left: 6px;\">incl. 21% BTW<\/span>`;\n                                \n                                if (matchedVariant.image) {\n                                    const cleanUrl = url => url ? url.split('?')[0].replace('https:', '').replace('http:', '').trim() : '';\n                                    const matchedClean = cleanUrl(matchedVariant.image);\n                                    \n                                    const variantImgIndex = currentGalleryImages.findIndex(img => cleanUrl(img.url) === matchedClean);\n                                    \n                                    if (variantImgIndex > -1) {\n                                        renderMainImage(variantImgIndex);\n                                    } else {\n                                        modalActiveImgWrapper.innerHTML = `<img decoding=\"async\" src=\"${matchedVariant.image}\" alt=\"${product.title}\">`;\n                                        document.querySelectorAll('.modal-thumb').forEach(t => t.classList.remove('active'));\n                                    }\n                                }\n                            }\n                        });\n\n                        valuesContainer.appendChild(btn);\n                    });\n\n                    groupWrapper.appendChild(valuesContainer);\n                    modalVariantsContainer.appendChild(groupWrapper);\n                });\n                \n                if (currentSelectedOptions['Kleur']) {\n                    updateGalleryForColor(currentSelectedOptions['Kleur']);\n                } else {\n                    updateGalleryForColor(null);\n                }\n\n            } else {\n                updateGalleryForColor(null);\n                \n                if (product.isComposite) {\n                    const helper = document.createElement('div');\n                    helper.classList.add('modal-admin-helper');\n                    helper.style.borderColor = 'rgba(255,255,255,0.15)';\n                    helper.style.color = '#fff';\n                    helper.innerHTML = `<strong>Tip:<\/strong> Swipe door de foto's of klik op de thumbnails hieronder om je board te kiezen. Het board op de grote foto wordt aan je winkelmandje toegevoegd.`;\n                    modalVariantsContainer.appendChild(helper);\n                } else {\n                    const isLiveProduct = !product.id.startsWith('fb-');\n                    if (isLiveProduct) {\n                        const helper = document.createElement('div');\n                        helper.classList.add('modal-admin-helper');\n                        helper.innerHTML = `\n                            <strong>Shopify Tip:<\/strong> Zie je hier geen kleurenopties? Zorg er dan voor dat je in je Shopify Dashboard bij dit product meerdere varianten hebt toegevoegd \u00e9n dat je ze alle 6 hebt aangevinkt bij <strong>Beheer Verkoopkanalen > Headless<\/strong>.\n                        `;\n                        modalVariantsContainer.appendChild(helper);\n                    }\n                }\n            }\n\n            modalAddToCartBtn.onclick = function() {\n                const selectedVariant = product.variants ? product.variants.find(v => v.id === selectedVariantId) : null;\n                const finalProduct = {\n                    id: product.id,\n                    title: selectedVariant ? `${product.title} - ${selectedVariant.title}` : product.title,\n                    price: selectedVariant ? selectedVariant.price : product.price,\n                    image: (selectedVariant && selectedVariant.image) ? selectedVariant.image : product.image,\n                    variantId: selectedVariantId\n                };\n\n                addToCart(encodeURIComponent(JSON.stringify(finalProduct)));\n                closeProductModal();\n            };\n\n            productModal.classList.add('active');\n            toggleBodyScroll(true);\n        };\n\n        function closeProductModal() {\n            productModal.classList.remove('active');\n            toggleBodyScroll(false);\n        }\n\n        modalCloseBtn.addEventListener('click', closeProductModal);\n        modalBackdrop.addEventListener('click', closeProductModal);\n\n        document.addEventListener('keydown', (e) => {\n            if (e.key === 'Escape') {\n                closeProductModal();\n            }\n        });\n\n        document.addEventListener(\"DOMContentLoaded\", () => {\n            updateCartUI();\n            fetchShopifyProducts();\n        });\n\n        window.addEventListener('scroll', () => {\n            const scrollPos = window.pageYOffset || document.documentElement.scrollTop;\n\n            if (videoContainer) {\n                videoContainer.style.transform = `translate3d(0, ${scrollPos * 0.35}px, 0)`;\n            }\n\n            if (scrollPos > 60) {\n                document.body.classList.add('is-scrolled');\n            } else {\n                document.body.classList.remove('is-scrolled');\n            }\n        }, { passive: true });\n\n        soundToggle.addEventListener('click', () => {\n            if (video.muted) {\n                video.muted = false;\n                speakerMuted.style.display = 'none';\n                muteIcon.style.display = 'block';\n                soundToggle.setAttribute('title', 'Geluid dempen');\n            } else {\n                video.muted = true;\n                speakerMuted.style.display = 'block';\n                muteIcon.style.display = 'none';\n                soundToggle.setAttribute('title', 'Geluid inschakelen');\n            }\n        });\n\n        document.getElementById('scrollTrigger').addEventListener('click', (e) => {\n            e.preventDefault();\n            const target = document.querySelector('#shopify-section');\n            if(target) {\n                target.scrollIntoView({ behavior: 'smooth' });\n            } else {\n                window.scrollTo({ top: window.innerHeight, behavior: 'smooth' });\n            }\n        });\n    <\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lafbek &#8211; Offici\u00eble Webshop &amp; Streetwear | Snapbacks, Trays &amp; Grinders Lafbek &#8211; De Offici\u00eble Webshop &amp; YouTube Content. Bestel de nieuwste Snapbacks, Rolling Trays en Grinders! Terug Merch YouTube Over Ons Contact Instagram TikTok Winkelwagen \u00d7 Subtotaal: \u20ac0,00 Afrekenen \u00d7 Bestelling in de steigers! Je hebt zojuist de demo-merch afgerekend! Dit is een voorvertoning. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>home -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lafbek.com\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"home -\" \/>\n<meta property=\"og:description\" content=\"Lafbek &#8211; Offici\u00eble Webshop &amp; Streetwear | Snapbacks, Trays &amp; Grinders Lafbek &#8211; De Offici\u00eble Webshop &amp; YouTube Content. Bestel de nieuwste Snapbacks, Rolling Trays en Grinders! Terug Merch YouTube Over Ons Contact Instagram TikTok Winkelwagen \u00d7 Subtotaal: \u20ac0,00 Afrekenen \u00d7 Bestelling in de steigers! Je hebt zojuist de demo-merch afgerekend! Dit is een voorvertoning. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lafbek.com\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-08T17:20:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/\",\"url\":\"https:\\\/\\\/lafbek.com\\\/\",\"name\":\"home -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/lafbek.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/lafbek-smiley-v2.jpeg\",\"datePublished\":\"2026-05-28T15:40:22+00:00\",\"dateModified\":\"2026-06-08T17:20:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/lafbek.com\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/#primaryimage\",\"url\":\"https:\\\/\\\/lafbek.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/lafbek-smiley-v2.jpeg\",\"contentUrl\":\"https:\\\/\\\/lafbek.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/lafbek-smiley-v2.jpeg\",\"width\":652,\"height\":652},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/lafbek.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/#website\",\"url\":\"https:\\\/\\\/lafbek.com\\\/\",\"name\":\"Lafbek\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/lafbek.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/#organization\",\"name\":\"Lafbek\",\"url\":\"https:\\\/\\\/lafbek.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/lafbek.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/lafbek.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Lafbek-logo-wit.png\",\"contentUrl\":\"https:\\\/\\\/lafbek.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Lafbek-logo-wit.png\",\"width\":2500,\"height\":2000,\"caption\":\"Lafbek\"},\"image\":{\"@id\":\"https:\\\/\\\/lafbek.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.youtube.com\\\/@LAF-BEK\",\"https:\\\/\\\/www.instagram.com\\\/lafbek_\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@lafbek0\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"home -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lafbek.com\/","og_locale":"nl_NL","og_type":"article","og_title":"home -","og_description":"Lafbek &#8211; Offici\u00eble Webshop &amp; Streetwear | Snapbacks, Trays &amp; Grinders Lafbek &#8211; De Offici\u00eble Webshop &amp; YouTube Content. Bestel de nieuwste Snapbacks, Rolling Trays en Grinders! Terug Merch YouTube Over Ons Contact Instagram TikTok Winkelwagen \u00d7 Subtotaal: \u20ac0,00 Afrekenen \u00d7 Bestelling in de steigers! Je hebt zojuist de demo-merch afgerekend! Dit is een voorvertoning. [&hellip;]","og_url":"https:\/\/lafbek.com\/","article_modified_time":"2026-06-08T17:20:34+00:00","og_image":[{"url":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Geschatte leestijd":"4 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/lafbek.com\/","url":"https:\/\/lafbek.com\/","name":"home -","isPartOf":{"@id":"https:\/\/lafbek.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lafbek.com\/#primaryimage"},"image":{"@id":"https:\/\/lafbek.com\/#primaryimage"},"thumbnailUrl":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg","datePublished":"2026-05-28T15:40:22+00:00","dateModified":"2026-06-08T17:20:34+00:00","breadcrumb":{"@id":"https:\/\/lafbek.com\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lafbek.com\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/lafbek.com\/#primaryimage","url":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg","contentUrl":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/05\/lafbek-smiley-v2.jpeg","width":652,"height":652},{"@type":"BreadcrumbList","@id":"https:\/\/lafbek.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lafbek.com\/"},{"@type":"ListItem","position":2,"name":"home"}]},{"@type":"WebSite","@id":"https:\/\/lafbek.com\/#website","url":"https:\/\/lafbek.com\/","name":"Lafbek","description":"","publisher":{"@id":"https:\/\/lafbek.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lafbek.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/lafbek.com\/#organization","name":"Lafbek","url":"https:\/\/lafbek.com\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/lafbek.com\/#\/schema\/logo\/image\/","url":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/06\/Lafbek-logo-wit.png","contentUrl":"https:\/\/lafbek.com\/wp-content\/uploads\/2026\/06\/Lafbek-logo-wit.png","width":2500,"height":2000,"caption":"Lafbek"},"image":{"@id":"https:\/\/lafbek.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.youtube.com\/@LAF-BEK","https:\/\/www.instagram.com\/lafbek_\/","https:\/\/www.tiktok.com\/@lafbek0"]}]}},"_links":{"self":[{"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lafbek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8"}],"version-history":[{"count":65,"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/lafbek.com\/index.php?rest_route=\/wp\/v2\/pages\/8\/revisions\/115"}],"wp:attachment":[{"href":"https:\/\/lafbek.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}