{"title":"Kampagne","description":"\u003cscript\u003e\n  document.addEventListener('DOMContentLoaded', function() {\n    var root = document.getElementById('vak-root');\n    if (!root) return;\n    var parent = root.closest('section, .shopify-section, main, .page-width, .container');\n    if (parent) {\n      parent.querySelectorAll('h1, h2, header, .page-title, .title').forEach(function(el) {\n        if (!root.contains(el)) el.style.setProperty('display', 'none', 'important');\n      });\n    }\n  });\n\u003c\/script\u003e\n\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@400;500;600;700;800;900\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n  #vak-root, #vak-root * { box-sizing: border-box !important; font-family: 'Outfit', sans-serif !important; }\n  #vak-root img { max-width: 100% !important; }\n\n  #vak-root {\n    width: 100vw !important; max-width: 100vw !important;\n    position: relative !important; left: 50% !important; right: 50% !important;\n    margin-left: -50vw !important; margin-right: -50vw !important;\n  }\n\n  #vak-root .vak-header {\n    background-color: #660058 !important; padding: 48px 16px 40px !important;\n    text-align: center !important; display: flex !important; flex-direction: column !important;\n    align-items: center !important; gap: 12px !important;\n  }\n  #vak-root .vak-logo-img { max-width: 620px !important; width: 100% !important; }\n  @media (max-width: 600px) { #vak-root .vak-logo-img { max-width: 400px !important; } }\n  #vak-root .vak-subtitle { font-size: clamp(1rem, 2.5vw, 1.25rem) !important; color: #F5D4D2 !important; margin: 0 !important; max-width: 520px !important; }\n  #vak-root .vak-tagline { font-size: 14px !important; font-weight: 700 !important; color: #4eecc1 !important; margin: 0 !important; letter-spacing: 0.04em !important; }\n\n  #vak-root .vak-fuselage {\n    position: relative !important;\n    background-image: url('https:\/\/cdn.shopify.com\/s\/files\/1\/0942\/4846\/8854\/files\/ChatGPT_Image_19_mei_2026_15_20_41.png?v=1779196859') !important;\n    background-size: cover !important; background-position: 35% 20% !important;\n    padding: 60px 16px 96px !important; overflow: hidden !important;\n  }\n  #vak-root .vak-fuselage::before {\n    content: '' !important; position: absolute !important; inset: 0 !important;\n    background: linear-gradient(180deg, rgba(102,0,88,0.6) 0%, transparent 4%, transparent 96%, rgba(102,0,88,0.6) 100%) !important;\n    pointer-events: none !important; z-index: 0 !important;\n  }\n\n  #vak-root .vak-arrow { display: none !important; }\n  @media (max-width: 600px) {\n    #vak-root .vak-arrow {\n      display: flex !important; align-items: center !important; justify-content: center !important;\n      position: absolute !important; top: 50% !important; transform: translateY(-50%) !important;\n      width: 36px !important; height: 36px !important; border-radius: 50% !important;\n      background: rgba(102,0,88,0.6) !important; border: 1px solid rgba(255,255,255,0.2) !important;\n      color: #fff !important; font-size: 20px !important; font-weight: 700 !important;\n      cursor: pointer !important; z-index: 10 !important; line-height: 1 !important;\n      padding: 0 !important; box-shadow: 0 2px 8px rgba(0,0,0,0.3) !important;\n      transition: background 0.15s !important;\n    }\n    #vak-root .vak-arrow:hover { background: rgba(102,0,88,0.9) !important; }\n    #vak-root .vak-arrow-left { left: 8px !important; }\n    #vak-root .vak-arrow-right { right: 8px !important; }\n  }\n\n  #vak-root .vak-windows {\n    position: relative !important; z-index: 2 !important;\n    display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 48px !important;\n  }\n\n  @media (max-width: 600px) {\n    #vak-root .vak-fuselage {\n      padding-top: 24px !important; padding-left: 0 !important; padding-right: 0 !important;\n      overflow: visible !important;\n    }\n    #vak-root .vak-windows {\n      flex-wrap: nowrap !important; justify-content: flex-start !important;\n      overflow-x: auto !important; scroll-snap-type: x mandatory !important;\n      -webkit-overflow-scrolling: touch !important; gap: 16px !important;\n      padding: 16px calc(50% - 110px) 24px !important;\n      scrollbar-width: none !important;\n    }\n    #vak-root .vak-windows::-webkit-scrollbar { display: none !important; }\n    #vak-root .vak-win-wrap {\n      min-width: 220px !important; flex-shrink: 0 !important;\n      scroll-snap-align: center !important;\n    }\n  }\n\n  #vak-root .vak-win-wrap { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 12px !important; transition: opacity 0.5s !important; }\n  #vak-root .vak-win-wrap.is-dimmed { opacity: 0.4 !important; pointer-events: none !important; }\n\n  #vak-root .vak-win-outer {\n    position: relative !important; width: 220px !important; height: 300px !important;\n    border-radius: 66px !important; background: #e5e5e5 !important; border: 7px solid #f0f0f0 !important;\n    box-shadow: 0 10px 40px rgba(0,0,0,0.35) !important; overflow: hidden !important;\n    cursor: grab !important; user-select: none !important; -webkit-user-select: none !important;\n  }\n  @media (min-width: 900px) { #vak-root .vak-win-outer { width: 260px !important; height: 360px !important; border-radius: 72px !important; } }\n  #vak-root .vak-win-outer.is-chosen { box-shadow: 0 10px 40px rgba(0,0,0,0.35), 0 0 0 4px #4eecc1 !important; }\n\n  #vak-root .vak-win-rim {\n    position: absolute !important; inset: 10px !important; border-radius: 54px !important;\n    border: 10px solid #d4d4d4 !important; overflow: hidden !important; box-shadow: inset 0 2px 8px rgba(0,0,0,0.15) !important;\n  }\n  @media (min-width: 900px) { #vak-root .vak-win-rim { inset: 14px !important; border-radius: 58px !important; } }\n\n  #vak-root .vak-reveal {\n    position: absolute !important; inset: 0 !important;\n    background: linear-gradient(135deg, #F5D4D2 0%, #FCE0E0 100%) !important;\n    display: flex !important; flex-direction: column !important; align-items: center !important;\n    justify-content: center !important; padding: 14px 10px !important; gap: 6px !important; text-align: center !important;\n  }\n  #vak-root .vak-reveal img { width: 88px !important; height: 88px !important; object-fit: contain !important; display: block !important; margin: 0 !important; filter: drop-shadow(0 4px 8px rgba(0,0,0,0.15)) !important; }\n  #vak-root .vak-deal-tag { font-size: 10px !important; font-weight: 800 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: #bc00f6 !important; margin: 0 !important; }\n  #vak-root .vak-deal-title { font-size: 13px !important; font-weight: 900 !important; color: #660058 !important; margin: 0 !important; line-height: 1.25 !important; padding: 0 4px !important; }\n  #vak-root .vak-deal-sub { font-size: 11px !important; color: rgba(102,0,88,0.75) !important; margin: 0 !important; line-height: 1.4 !important; padding: 0 4px !important; }\n  #vak-root .vak-deal-pill { padding: 3px 8px !important; background: rgba(102,0,88,0.1) !important; border: 1px solid rgba(102,0,88,0.2) !important; border-radius: 999px !important; font-size: 9px !important; font-weight: 700 !important; color: #660058 !important; margin: 0 !important; display: inline-block !important; }\n\n  \/* Afbeelding Window 2 (kortingscode) iets groter *\/\n  #vak-root .vak-win-wrap[data-id=\"2\"] .vak-reveal img { width: 110px !important; height: 110px !important; }\n\n  #vak-root .vak-shade {\n    position: absolute !important; left: 0 !important; right: 0 !important; top: -10px !important; height: 115% !important;\n    background: linear-gradient(180deg, #660058 0%, #8a0076 100%) !important; border-radius: 0 0 48px 48px !important;\n    z-index: 10 !important; display: flex !important; flex-direction: column !important;\n    justify-content: center !important; align-items: center !important; padding-bottom: 0 !important;\n    transform: translateY(0) !important; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;\n    will-change: transform !important; cursor: grab !important; box-shadow: 0 6px 16px rgba(0,0,0,0.25) !important;\n  }\n  #vak-root .vak-win-wrap.is-open .vak-shade { transform: translateY(-115%) !important; pointer-events: none !important; }\n\n  #vak-root .vak-shade-pill { width: 80px !important; height: 16px !important; background: rgba(255,255,255,0.35) !important; border-radius: 999px !important; border: 1px solid rgba(255,255,255,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin-bottom: 10px !important; }\n  #vak-root .vak-shade-pill-inner { width: 40px !important; height: 4px !important; background: rgba(255,255,255,0.7) !important; border-radius: 999px !important; }\n  #vak-root .vak-shade-label { font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: #fff !important; margin: 0 !important; animation: vakPulse 2s ease-in-out infinite !important; }\n  @keyframes vakPulse { 0%,100%{opacity:0.8} 50%{opacity:1} }\n\n  #vak-root .vak-btn-kies { padding: 11px 28px !important; border-radius: 999px !important; background: #4eecc1 !important; background-color: #4eecc1 !important; background-image: none !important; color: #fff !important; font-size: 14px !important; font-weight: 800 !important; border: none !important; cursor: pointer !important; box-shadow: 0 4px 16px rgba(78,236,193,0.35) !important; transition: opacity 0.15s !important; margin: 0 !important; line-height: 1 !important; -webkit-appearance: none !important; appearance: none !important; display: none !important; }\n  #vak-root .vak-win-wrap.is-open:not(.is-chosen) .vak-btn-kies { display: inline-block !important; }\n  #vak-root .vak-btn-kies:hover { opacity: 0.85 !important; }\n\n  #vak-root .vak-cta-area { display: none !important; flex-direction: column !important; align-items: center !important; gap: 6px !important; }\n  #vak-root .vak-win-wrap.is-chosen .vak-cta-area { display: flex !important; }\n  #vak-root .vak-chosen-label { font-size: 13px !important; font-weight: 700 !important; color: #ffffff !important; margin: 0 !important; }\n\n  #vak-root .vak-btn-cart { padding: 11px 22px !important; border-radius: 999px !important; background: #bc00f6 !important; background-color: #bc00f6 !important; background-image: none !important; color: #fff !important; font-size: 13px !important; font-weight: 800 !important; border: none !important; cursor: pointer !important; box-shadow: none !important; transition: opacity 0.15s !important; margin: 0 !important; line-height: 1.2 !important; text-decoration: none !important; display: inline-block !important; text-align: center !important; -webkit-appearance: none !important; appearance: none !important; }\n  #vak-root .vak-btn-cart:hover { opacity: 0.85 !important; background: #bc00f6 !important; background-color: #bc00f6 !important; color: #fff !important; text-decoration: none !important; }\n  #vak-root .vak-btn-cart.added { background: #4eecc1 !important; background-color: #4eecc1 !important; color: #660058 !important; }\n  #vak-root .vak-btn-cart.added:hover { color: #660058 !important; }\n\n  #vak-root .vak-btn-copy { padding: 11px 22px !important; border-radius: 999px !important; background: #bc00f6 !important; background-color: #bc00f6 !important; background-image: none !important; color: #fff !important; font-size: 13px !important; font-weight: 800 !important; border: none !important; cursor: pointer !important; box-shadow: none !important; transition: opacity 0.15s !important; margin: 0 !important; line-height: 1 !important; -webkit-appearance: none !important; appearance: none !important; }\n  #vak-root .vak-btn-copy:hover { opacity: 0.85 !important; }\n  #vak-root .vak-btn-copy.copied { background: #4eecc1 !important; background-color: #4eecc1 !important; color: #ffffff !important; }\n\n  #vak-root .vak-footer-bar { background-color: #660058 !important; text-align: center !important; padding: 12px 16px !important; }\n  #vak-root .vak-footer-text { font-size: 12px !important; color: rgba(245,212,210,0.5) !important; margin: 0 !important; }\n\u003c\/style\u003e\n\n\u003cdiv id=\"vak-root\"\u003e\n\n  \u003cdiv class=\"vak-header\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0942\/4846\/8854\/files\/Logo.png?v=1779790545\" alt=\"Kies jouw Vakantiegeld Deal\" class=\"vak-logo-img\" style=\"height:auto;display:block;margin:0 auto;\"\u003e\n    \u003cp class=\"vak-subtitle\"\u003e\u003c\/p\u003e\n    \u003cp class=\"vak-tagline\"\u003eSchuif de raampjes omhoog en kies slim:\u003cbr\u003e je kunt maar één deal kiezen!\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"vak-fuselage\" id=\"vak-fuselage\"\u003e\n    \u003cbutton class=\"vak-arrow vak-arrow-left\" id=\"vak-arrow-left\"\u003e‹\u003c\/button\u003e\n    \u003cbutton class=\"vak-arrow vak-arrow-right\" id=\"vak-arrow-right\"\u003e›\u003c\/button\u003e\n\n    \u003cdiv class=\"vak-windows\" id=\"vak-windows\"\u003e\n\n      \u003c!-- WINDOW 1 — Schwarzkopf Sealed Ends --\u003e\n      \u003cdiv class=\"vak-win-wrap\" id=\"vak-wrap-1\" data-id=\"1\"\u003e\n        \u003cdiv class=\"vak-win-outer\" id=\"vak-win-1\"\u003e\n          \u003cdiv class=\"vak-win-rim\"\u003e\n            \u003cdiv class=\"vak-reveal\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0942\/4846\/8854\/files\/Gift1-2.png?v=1779954509\" alt=\"Schwarzkopf Sealed Ends\"\u003e\n              \u003cp class=\"vak-deal-title\"\u003eGRATIS Schwarzkopf Sealed Ends\u003c\/p\u003e\n              \u003cp class=\"vak-deal-sub\"\u003eSeal je haarpunten voor direct gladde en gezonde lokken.\u003c\/p\u003e\n              \u003cspan class=\"vak-deal-pill\"\u003eGeldig bij besteding van minimaal €40\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"vak-shade\" id=\"vak-shade-1\"\u003e\n              \u003cdiv class=\"vak-shade-pill\"\u003e\u003cdiv class=\"vak-shade-pill-inner\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n              \u003cp class=\"vak-shade-label\"\u003eSchuif omhoog\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cbutton class=\"vak-btn-kies\" onclick=\"vakKies(1)\"\u003eKies deze deal!\u003c\/button\u003e\n        \u003cdiv class=\"vak-cta-area\"\u003e\n          \u003cp class=\"vak-chosen-label\"\u003e✓ Deal gekozen!\u003c\/p\u003e\n          \u003ca id=\"vak-cta-1\" href=\"javascript:void(0)\" class=\"vak-btn-cart\" onclick=\"vakCart(1,'56328008335734');return false;\"\u003eVoeg toe aan winkelmandje\u003c\/a\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- WINDOW 2 — Kortingscode (midden) --\u003e\n      \u003cdiv class=\"vak-win-wrap\" id=\"vak-wrap-2\" data-id=\"2\"\u003e\n        \u003cdiv class=\"vak-win-outer\" id=\"vak-win-2\"\u003e\n          \u003cdiv class=\"vak-win-rim\"\u003e\n            \u003cdiv class=\"vak-reveal\"\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0942\/4846\/8854\/files\/Gift3_fa1dd28b-4c95-444b-ae86-041e6e218a09.png?v=1779868288\" alt=\"Kortingscode\"\u003e\n              \u003cp class=\"vak-deal-title\"\u003eBoven op kortingen tot wel 70%\u003c\/p\u003e\n              \u003cp class=\"vak-deal-sub\"\u003e\u003c\/p\u003e\n              \u003cspan class=\"vak-deal-pill\"\u003eKies en ontvang jouw persoonlijke kortingscode\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"vak-shade\" id=\"vak-shade-2\"\u003e\n              \u003cdiv class=\"vak-shade-pill\"\u003e\u003cdiv class=\"vak-shade-pill-inner\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n              \u003cp class=\"vak-shade-label\"\u003eSchuif omhoog\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cbutton class=\"vak-btn-kies\" onclick=\"vakKies(2)\"\u003eKies deze deal!\u003c\/button\u003e\n        \u003cdiv class=\"vak-cta-area\"\u003e\n          \u003cp class=\"vak-chosen-label\"\u003e✓ Deal gekozen!\u003c\/p\u003e\n          \u003cbutton id=\"vak-cta-2\" class=\"vak-btn-copy\" onclick=\"vakCopy()\"\u003eKopieer code: SUMMER5\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- WINDOW 3 — Goldwell Reisset --\u003e\n      \u003cdiv class=\"vak-win-wrap\" id=\"vak-wrap-3\" data-id=\"3\"\u003e\n        \u003cdiv class=\"vak-win-outer\" id=\"vak-win-3\"\u003e\n          \u003cdiv class=\"vak-win-rim\"\u003e\n            \u003cdiv class=\"vak-reveal\"\u003e\n              \u003cp class=\"vak-deal-tag\"\u003e🔥 Populair!\u003c\/p\u003e\n              \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0942\/4846\/8854\/files\/Gift2_61bf882e-6bb7-4e62-90a8-3d8ea237f697.png?v=1779790546\" alt=\"Goldwell Reisset\"\u003e\n              \u003cp class=\"vak-deal-title\"\u003eGRATIS Goldwell Reisset\u003c\/p\u003e\n              \u003cp class=\"vak-deal-sub\"\u003eBescherm je haar bij elke zonnige getaway.\u003cbr\u003e⏰ Let op: langere levertijd\u003c\/p\u003e\n              \u003cspan class=\"vak-deal-pill\"\u003eGeldig bij besteding van minimaal €40\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cdiv class=\"vak-shade\" id=\"vak-shade-3\"\u003e\n              \u003cdiv class=\"vak-shade-pill\"\u003e\u003cdiv class=\"vak-shade-pill-inner\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n              \u003cp class=\"vak-shade-label\"\u003eSchuif omhoog\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cbutton class=\"vak-btn-kies\" onclick=\"vakKies(3)\"\u003eKies deze deal!\u003c\/button\u003e\n        \u003cdiv class=\"vak-cta-area\"\u003e\n          \u003cp class=\"vak-chosen-label\"\u003e✓ Deal gekozen!\u003c\/p\u003e\n          \u003ca id=\"vak-cta-3\" href=\"javascript:void(0)\" class=\"vak-btn-cart\" onclick=\"vakCart(3,'57562821230966');return false;\"\u003eVoeg toe aan winkelmandje\u003c\/a\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"vak-footer-bar\"\u003e\n    \u003cp class=\"vak-footer-text\"\u003eDe actie is geldig t\/m 2 juni 2026.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function() {\n  var STORAGE_KEY = 'vak_deal_2026';\n  var EXPIRY_DATE = new Date('2026-06-05T23:59:59').getTime();\n  var vakChosen = null;\n\n  function saveChoice(id) {\n    try { localStorage.setItem(STORAGE_KEY, JSON.stringify({ id: id, ts: Date.now() })); } catch(e) {}\n  }\n\n  function loadChoice() {\n    try {\n      var raw = localStorage.getItem(STORAGE_KEY);\n      if (!raw) return null;\n      var data = JSON.parse(raw);\n      if (Date.now() \u003e EXPIRY_DATE) { localStorage.removeItem(STORAGE_KEY); return null; }\n      return data.id;\n    } catch(e) { return null; }\n  }\n\n  function getWrap(id) { return document.getElementById('vak-wrap-' + id); }\n\n  function vakOpen(id) {\n    if (vakChosen !== null) return;\n    var wrap = getWrap(id);\n    if (wrap) wrap.classList.add('is-open');\n  }\n\n  function applyKies(id) {\n    vakChosen = id;\n    [1, 2, 3].forEach(function(wid) {\n      var wrap = getWrap(wid);\n      if (!wrap) return;\n      wrap.classList.add('is-open');\n      if (wid === id) {\n        wrap.classList.add('is-chosen'); wrap.classList.remove('is-dimmed');\n        var outer = document.getElementById('vak-win-' + wid);\n        if (outer) outer.classList.add('is-chosen');\n      } else {\n        wrap.classList.add('is-dimmed'); wrap.classList.remove('is-chosen');\n      }\n    });\n  }\n\n  function vakKies(id) { applyKies(id); saveChoice(id); }\n\n  function vakCart(id, variantId) {\n    var cta = document.getElementById('vak-cta-' + id);\n    if (cta) { cta.textContent = 'Bezig\\u2026'; cta.style.setProperty('pointer-events', 'none', 'important'); }\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\n      body: JSON.stringify({ id: parseInt(variantId, 10), quantity: 1 })\n    })\n    .then(function(res) {\n      if (!res.ok) throw new Error('cart-add mislukt');\n      window.location.href = 'https:\/\/www.haarspullen.nl\/cart';\n    })\n    .catch(function() {\n      window.location.href = 'https:\/\/www.haarspullen.nl\/cart\/add?id=' + variantId + '\u0026quantity=1\u0026return_to=\/cart';\n    });\n  }\n\n  function vakCopy() {\n    var btn = document.getElementById('vak-cta-2');\n    function markCopied() {\n      if (btn) {\n        btn.textContent = '\\u2713 Gekopieerd!';\n        btn.classList.add('copied');\n        btn.style.setProperty('color', '#ffffff', 'important');\n        btn.style.setProperty('background-color', '#4eecc1', 'important');\n      }\n    }\n    if (navigator.clipboard \u0026\u0026 navigator.clipboard.writeText) {\n      navigator.clipboard.writeText('SUMMER5').then(markCopied).catch(function() {\n        vakCopyFallback('SUMMER5'); markCopied();\n      });\n    } else {\n      vakCopyFallback('SUMMER5'); markCopied();\n    }\n  }\n\n  function vakCopyFallback(text) {\n    var ta = document.createElement('textarea');\n    ta.value = text;\n    ta.style.cssText = 'position:fixed;top:-9999px;left:-9999px;opacity:0';\n    document.body.appendChild(ta);\n    ta.focus(); ta.select();\n    try { document.execCommand('copy'); } catch(e) {}\n    document.body.removeChild(ta);\n  }\n\n  function initDrag(id) {\n    var shade = document.getElementById('vak-shade-' + id);\n    var wrap  = getWrap(id);\n    if (!shade || !wrap) return;\n    var startY = 0, delta = 0, active = false;\n    function cy(e) { return e.touches ? e.touches[0].clientY : e.clientY; }\n    shade.addEventListener('mousedown', function(e) {\n      if (vakChosen !== null || wrap.classList.contains('is-open')) return;\n      active = true; startY = cy(e); delta = 0;\n      shade.style.setProperty('transition', 'none', 'important');\n    });\n    shade.addEventListener('touchstart', function(e) {\n      if (vakChosen !== null || wrap.classList.contains('is-open')) return;\n      e.preventDefault();\n      active = true; startY = cy(e); delta = 0;\n      shade.style.setProperty('transition', 'none', 'important');\n    }, { passive: false });\n    document.addEventListener('mousemove', function(e) {\n      if (!active) return;\n      delta = Math.min(0, cy(e) - startY);\n      shade.style.transform = 'translateY(' + delta + 'px)';\n    });\n    document.addEventListener('touchmove', function(e) {\n      if (!active) return;\n      e.preventDefault();\n      delta = Math.min(0, cy(e) - startY);\n      shade.style.transform = 'translateY(' + delta + 'px)';\n    }, { passive: false });\n    function end() {\n      if (!active) return; active = false;\n      shade.style.setProperty('transition', 'transform 0.6s cubic-bezier(0.4,0,0.2,1)', 'important');\n      if (Math.abs(delta) \u003e= shade.offsetHeight * 0.25) { vakOpen(id); }\n      else { shade.style.transform = 'translateY(0)'; }\n    }\n    document.addEventListener('mouseup', end);\n    document.addEventListener('touchend', end);\n    shade.addEventListener('click', function() {\n      if (!wrap.classList.contains('is-open')) vakOpen(id);\n    });\n  }\n\n  function initArrows() {\n    var windows = document.getElementById('vak-windows');\n    var btnLeft  = document.getElementById('vak-arrow-left');\n    var btnRight = document.getElementById('vak-arrow-right');\n    if (!windows || !btnLeft || !btnRight) return;\n    btnLeft.addEventListener('click', function() {\n      windows.scrollBy({ left: -(windows.querySelector('.vak-win-wrap').offsetWidth + 16), behavior: 'smooth' });\n    });\n    btnRight.addEventListener('click', function() {\n      windows.scrollBy({ left: windows.querySelector('.vak-win-wrap').offsetWidth + 16, behavior: 'smooth' });\n    });\n  }\n\n  function initParallax() {\n    var windows = document.getElementById('vak-windows');\n    var fuselage = document.getElementById('vak-fuselage');\n    if (!windows || !fuselage) return;\n    windows.addEventListener('scroll', function() {\n      var maxScroll = windows.scrollWidth - windows.clientWidth;\n      if (maxScroll \u003c= 0) return;\n      fuselage.style.backgroundPosition = (35 + (windows.scrollLeft \/ maxScroll) * 30) + '% 20%';\n    }, { passive: true });\n  }\n\n  function init() {\n    [1, 2, 3].forEach(function(id) { initDrag(id); });\n    initArrows();\n    initParallax();\n    var saved = loadChoice();\n    if (saved) { applyKies(saved); }\n  }\n\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); }\n  else { init(); }\n\n  window.vakKies = vakKies;\n  window.vakCart = vakCart;\n  window.vakCopy = vakCopy;\n  window.vakOpen = vakOpen;\n})();\n\u003c\/script\u003e","products":[],"url":"https:\/\/www.beautykaufen.de\/collections\/campagne.oembed","provider":"Haarspullen.nl","version":"1.0","type":"link"}