{
  "version": 3,
  "sources": ["/cdn/shop/t/419/assets/takeover.js?tk=20261029m"],
  "sourcesContent": ["/* Conversion takeover: quick add, mobile add sheet, cart add-on, load more. No dependencies. */\n(function () {\n  'use strict';\n  var addUrl = ((window.routes && window.routes.cart_add_url) || '/cart/add') + '.js';\n\n  function addToCart(id, btn) {\n    if (!id) return Promise.resolve();\n    var drawer = document.querySelector('cart-drawer');\n    var body = { items: [{ id: Number(id), quantity: 1 }] };\n    if (drawer) { body.sections = 'cart-drawer,cart-icon-bubble'; body.sections_url = window.location.pathname; }\n    var label = btn ? btn.textContent : '';\n    if (btn) { btn.disabled = true; btn.setAttribute('aria-busy', 'true'); }\n    return fetch(addUrl, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify(body)\n    })\n      .then(function (r) { return r.json(); })\n      .then(function (res) {\n        if (res.status) { // Shopify error, e.g. sold out\n          if (btn) { btn.textContent = res.description || 'Unavailable'; setTimeout(function () { btn.textContent = label; btn.disabled = false; }, 2200); }\n          return;\n        }\n        if (drawer && typeof drawer.renderContents === 'function') {\n          drawer.classList.remove('is-empty');\n          drawer.renderContents(res);\n          if (window.tkRefreshOffers) window.tkRefreshOffers();\n        } else {\n          window.location.href = (window.routes && window.routes.cart_url) || '/cart';\n          return;\n        }\n        if (btn) { btn.classList.add('is-added'); setTimeout(function () { btn.classList.remove('is-added'); }, 1500); btn.disabled = false; }\n      })\n      .catch(function () { window.location.href = (window.routes && window.routes.cart_url) || '/cart'; })\n      .finally(function () { if (btn) btn.removeAttribute('aria-busy'); });\n  }\n\n  /* Mobile / any-device add sheet */\n  var sheet = document.getElementById('tk-sheet');\n  var state = { variants: [], color: null, id: null };\n  function el(tag, text, attrs) { var e = document.createElement(tag); if (text != null) e.textContent = text; for (var k in attrs || {}) e.setAttribute(k, attrs[k]); return e; }\n\n  function setPrice(v) {\n    var p = sheet.querySelector('.tk-sheet__price');\n    p.textContent = v[3] || '';\n    if (v[4]) { var s = document.createElement('s'); s.textContent = v[4]; p.appendChild(document.createTextNode(' ')); p.appendChild(s); }\n  }\n\n  function renderSizes() {\n    var wrap = sheet.querySelector('[data-tk-sizes]');\n    var addBtn = sheet.querySelector('[data-tk-sheet-add]');\n    wrap.innerHTML = '';\n    state.id = null; addBtn.disabled = true; addBtn.textContent = 'Select a size';\n    state.variants.filter(function (v) { return !state.color || v[1] === state.color; }).forEach(function (v) {\n      var b = el('button', v[2] || 'Add', { type: 'button', 'aria-pressed': 'false', 'data-id': v[0] });\n      b.addEventListener('click', function () {\n        wrap.querySelectorAll('button').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); });\n        b.setAttribute('aria-pressed', 'true');\n        state.id = v[0]; addBtn.disabled = false; addBtn.textContent = 'Add to bag';\n        setPrice(v);\n      });\n      wrap.appendChild(b);\n    });\n    var only = wrap.querySelectorAll('button');\n    if (only.length === 1) only[0].click();\n  }\n\n  function openSheet(card) {\n    if (!sheet || typeof sheet.showModal !== 'function') { window.location.href = card.dataset.url; return; }\n    var data = card.querySelector('[data-tk-variants]');\n    try { state.variants = JSON.parse(data.textContent).filter(function (v) { return v[0]; }); } catch (e) { state.variants = []; }\n    if (!state.variants.length) { window.location.href = card.dataset.url; return; }\n    if (state.variants.length === 1 && state.variants[0][2] === 'Default Title') { addToCart(state.variants[0][0], card.querySelector('[data-tk-open]')); return; }\n    sheet.querySelector('.tk-sheet__title').textContent = card.dataset.title;\n    setPrice(state.variants[0]);\n    sheet.querySelector('[data-tk-sheet-link]').href = card.dataset.url;\n    var img = sheet.querySelector('.tk-sheet__img');\n    if (card.dataset.img) { img.src = card.dataset.img; img.hidden = false; } else { img.hidden = true; }\n    var colors = [];\n    state.variants.forEach(function (v) { if (v[1] && colors.indexOf(v[1]) === -1) colors.push(v[1]); });\n    var meta = {};\n    var metaEl = card.querySelector('[data-tk-colors]');\n    if (metaEl) { try { meta = JSON.parse(metaEl.textContent); } catch (e) { meta = {}; } }\n    var cWrap = sheet.querySelector('[data-tk-colors]');\n    var cName = sheet.querySelector('[data-tk-color-name]');\n    var sImg = sheet.querySelector('.tk-sheet__img');\n    cWrap.innerHTML = '';\n    sheet.querySelector('[data-tk-colors-wrap]').hidden = colors.length < 2;\n    function label(c) { return (meta[c] && meta[c][0]) || c; }\n    state.color = colors[0] || null; cName.textContent = state.color ? label(state.color) : '';\n    colors.forEach(function (c, i) {\n      var m = meta[c] || [c, '', 'transparent', ''];\n      var b = el('button', null, { type: 'button', class: 'tk-swatchbtn', 'aria-pressed': i === 0 ? 'true' : 'false', 'aria-label': m[0], title: m[0] });\n      b.style.setProperty('--sw-c', m[2] || 'transparent');\n      if (m[1]) b.style.setProperty('--sw-i', 'url(\"' + m[1] + '\")');\n      if (state.variants.some(function (v) { return v[1] === c && v[4]; })) { b.appendChild(el('span', 'Sale', { class: 'tk-tag' })); }\n      b.addEventListener('click', function () {\n        cWrap.querySelectorAll('button').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); });\n        b.setAttribute('aria-pressed', 'true'); state.color = c; cName.textContent = m[0];\n        if (m[3]) { sImg.src = m[3]; sImg.hidden = false; }\n        renderSizes();\n      });\n      cWrap.appendChild(b);\n    });\n    renderSizes();\n    sheet.showModal();\n  }\n\n  if (sheet) {\n    sheet.querySelector('[data-tk-sheet-add]').addEventListener('click', function (e) {\n      var btn = e.currentTarget;\n      addToCart(state.id, btn).then(function () { if (sheet.open) sheet.close(); });\n    });\n    sheet.addEventListener('click', function (e) { if (e.target === sheet) sheet.close(); });\n  }\n\n  document.addEventListener('click', function (e) {\n    var t = e.target.closest('[data-tk-add],[data-tk-open],[data-tk-upsell-add],[data-tk-more]');\n    if (!t) return;\n    if (t.hasAttribute('data-tk-add')) { e.preventDefault(); addToCart(t.dataset.id, t); return; }\n    if (t.hasAttribute('data-tk-open')) { e.preventDefault(); openSheet(t.closest('[data-tk-card]')); return; }\n    if (t.hasAttribute('data-tk-upsell-add')) {\n      e.preventDefault();\n      var sel = t.parentElement.querySelector('[data-tk-upsell-select]');\n      addToCart(sel ? sel.value : t.dataset.id, t);\n      return;\n    }\n    if (t.hasAttribute('data-tk-more')) {\n      e.preventDefault();\n      var grid = document.getElementById('tk-grid');\n      if (!grid) { window.location.href = t.href; return; }\n      t.textContent = 'Loading\u2026'; t.setAttribute('aria-busy', 'true');\n      tkMoreFetch(t.href).then(function (html) {\n        var doc = new DOMParser().parseFromString(html, 'text/html');\n        var next = doc.getElementById('tk-grid');\n        grid.removeAttribute('data-tk-trim');\n        /* copy the list first: appending moves each card out of the fetched grid, which would skip every other card */\n        if (next) Array.prototype.slice.call(next.children).forEach(function (li) { grid.appendChild(document.importNode(li, true)); });\n        var hasMore = !!doc.querySelector('[data-tk-more]');\n        if (hasMore && grid.hasAttribute('data-tk-has-tile')) grid.setAttribute('data-tk-trim', '');\n        var shown = document.querySelector('[data-tk-shown]');\n        if (shown) shown.textContent = grid.querySelectorAll('.tk-card').length - (grid.hasAttribute('data-tk-trim') ? 1 : 0);\n        var more = doc.querySelector('[data-tk-more]');\n        if (more) { t.href = more.getAttribute('href'); t.textContent = 'Load more'; t.removeAttribute('aria-busy'); tkMoreFetch(t.href); }\n        else { t.parentElement.remove(); }\n      }).catch(function () { window.location.href = t.href; });\n    }\n  });\n\n\n  /* Load more: fetch only the product grid section (not the whole page), and start fetching the next page\n     as soon as the button gets near the screen, so the click is usually instant. */\n  var tkMoreCache = {};\n  function tkMoreFetch(href) {\n    if (tkMoreCache[href]) return tkMoreCache[href];\n    var u = new URL(href, location.origin);\n    u.searchParams.set('section_id', 'takeover-collection');\n    var p = fetch(u.toString(), { credentials: 'same-origin' })\n      .then(function (r) { if (!r.ok) throw new Error(r.status); return r.text(); })\n      .then(function (html) { if (html.indexOf('tk-grid') === -1) throw new Error('no grid'); return html; })\n      .catch(function () { return fetch(href).then(function (r) { return r.text(); }); });\n    tkMoreCache[href] = p;\n    return p;\n  }\n  (function () {\n    var btn = document.querySelector('[data-tk-more]');\n    if (!btn || !('IntersectionObserver' in window)) return;\n    var io = new IntersectionObserver(function (es) {\n      es.forEach(function (en) { if (en.isIntersecting) { var b = document.querySelector('[data-tk-more]'); if (b) tkMoreFetch(b.href); } });\n    }, { rootMargin: '1200px 0px' });\n    io.observe(btn);\n  })();\n  /* Second image: fetched on first hover only, so it never costs mobile or initial load */\n  if (window.matchMedia && window.matchMedia('(hover: hover) and (pointer: fine)').matches) {\n    document.addEventListener('mouseover', function (e) {\n      var card = e.target.closest && e.target.closest('[data-tk-card]');\n      if (!card || card.dataset.hoverLoaded) return;\n      card.dataset.hoverLoaded = '1';\n      var img = card.querySelector('[data-tk-hover]');\n      if (!img) return;\n      img.onload = function () { img.classList.add('is-loaded'); };\n      img.src = img.getAttribute('data-tk-hover');\n    });\n  }\n\n  /* Card swatches: hovering or focusing a color previews that color's photo */\n  function previewSwatch(e) {\n    var sw = e.target.closest && e.target.closest('[data-tk-swatch-img]');\n    if (!sw) return;\n    var card = sw.closest('[data-tk-card]'); if (!card) return;\n    var img = card.querySelector('.tk-card__img:not(.tk-card__img--hover)'); if (!img) return;\n    if (!img.dataset.orig) { img.dataset.orig = img.currentSrc || img.src; img.dataset.origSet = img.getAttribute('srcset') || ''; }\n    img.removeAttribute('srcset'); img.src = sw.getAttribute('data-tk-swatch-img');\n  }\n  function resetSwatch(e) {\n    var list = e.target.closest && e.target.closest('.tk-swatches');\n    if (!list || (e.relatedTarget && list.contains(e.relatedTarget))) return;\n    var card = list.closest('[data-tk-card]'); var img = card && card.querySelector('.tk-card__img:not(.tk-card__img--hover)');\n    if (img && img.dataset.orig) { img.src = img.dataset.orig; if (img.dataset.origSet) img.setAttribute('srcset', img.dataset.origSet); }\n  }\n  /* old swatch preview, replaced by the card colour switcher below (dev, Oct 27) */\n  // document.addEventListener('mouseover', previewSwatch);\n  // document.addEventListener('focusin', previewSwatch);\n  // document.addEventListener('mouseout', resetSwatch);\n\n  /* Close an open filter dropdown when another opens or on outside click */\n  document.addEventListener('toggle', function (e) {\n    if (!e.target.classList || !e.target.classList.contains('tk-filter') || !e.target.open) return;\n    document.querySelectorAll('.tk-filter[open]').forEach(function (d) { if (d !== e.target) d.open = false; });\n  }, true);\n  document.addEventListener('click', function (e) {\n    if (e.target.closest('.tk-filter')) return;\n    document.querySelectorAll('.tk-filter[open]').forEach(function (d) { d.open = false; });\n  });\n})();\n\n/* Predictive search: opens a panel, suggests queries, collections and products as the shopper types. */\n(function () {\n  'use strict';\n  var panel = document.getElementById('tk-search');\n  if (!panel) return;\n  var input = panel.querySelector('#tk-q');\n  var scrim = document.querySelector('.tk-scrim');\n  var triggers = document.querySelectorAll('[data-tk-search-open]');\n  var defBox = panel.querySelector('[data-tk-search-default]');\n  var live = panel.querySelector('[data-tk-search-live]');\n  var qList = panel.querySelector('[data-tk-search-queries]');\n  var cList = panel.querySelector('[data-tk-search-cols]');\n  var pList = panel.querySelector('[data-tk-search-products]');\n  var empty = panel.querySelector('[data-tk-search-empty]');\n  var all = panel.querySelector('[data-tk-search-all]');\n  var base = ((window.routes && window.routes.predictive_search_url) || '/search/suggest') + '.json';\n  var searchUrl = (all && all.getAttribute('href')) || '/search';\n  var sheet = document.getElementById('tk-sheet');\n  var currency = (sheet && sheet.dataset.currency) || 'USD';\n  var locale = (sheet && sheet.dataset.locale) || 'en';\n  var cache = {}, timer = null, ctrl = null, active = -1, lastFocus = null;\n\n  var nocents = !!(sheet && sheet.hasAttribute('data-nocents'));\n  /* photo of the product's first colour (first variant) when Shopify sends one, else the featured image */\n  function firstImg(p) {\n    var v = p.variants && p.variants[0];\n    var fi = v && (v.featured_image && (v.featured_image.url || v.featured_image.src) || v.image);\n    return fi || p.image || '';\n  }\n  function money(v) {\n    var n = parseFloat(v);\n    if (isNaN(n)) return '';\n    if (nocents) n = Math.ceil(n);\n    var out;\n    try { out = new Intl.NumberFormat(locale, nocents ? { style: 'currency', currency: currency, maximumFractionDigits: 0, minimumFractionDigits: 0 } : { style: 'currency', currency: currency }).format(n); } catch (e) { out = '$' + n.toFixed(nocents ? 0 : 2); }\n    return out.replace(/[.,]00(?=\\D*$)/, '');\n  }\n  function sized(url, w) { if (!url) return ''; return url + (url.indexOf('?') > -1 ? '&' : '?') + 'width=' + w; }\n  function esc(s) { var d = document.createElement('div'); d.textContent = s == null ? '' : String(s); return d.innerHTML; }\n  function mark(text, q) {\n    var safe = esc(text), terms = q.trim().split(/\\s+/).filter(Boolean).map(function (t) { return t.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); });\n    if (!terms.length) return safe;\n    return safe.replace(new RegExp('(' + terms.join('|') + ')', 'ig'), '<mark>$1</mark>');\n  }\n\n  function open() {\n    lastFocus = document.activeElement;\n    panel.hidden = false; if (scrim) scrim.hidden = false;\n    document.documentElement.classList.add('tk-search-open');\n    triggers.forEach(function (t) { t.setAttribute('aria-expanded', 'true'); });\n    requestAnimationFrame(function () { panel.classList.add('is-open'); input.focus(); input.select(); });\n  }\n  function close() {\n    panel.classList.remove('is-open'); panel.hidden = true; if (scrim) scrim.hidden = true;\n    document.documentElement.classList.remove('tk-search-open');\n    triggers.forEach(function (t) { t.setAttribute('aria-expanded', 'false'); });\n    input.setAttribute('aria-expanded', 'false');\n    if (lastFocus && lastFocus.focus) lastFocus.focus();\n  }\n\n  function options() { return Array.prototype.slice.call(live.querySelectorAll('[role=\"option\"]')); }\n  function setActive(i) {\n    var opts = options(); if (!opts.length) return;\n    active = (i + opts.length) % opts.length;\n    opts.forEach(function (o, k) { o.setAttribute('aria-selected', k === active ? 'true' : 'false'); });\n    input.setAttribute('aria-activedescendant', opts[active].id);\n    opts[active].scrollIntoView({ block: 'nearest' });\n  }\n\n  function render(q, data) {\n    var r = (data && data.resources && data.resources.results) || {};\n    var products = r.products || [], cols = r.collections || [], queries = r.queries || [];\n    active = -1; input.removeAttribute('aria-activedescendant');\n    qList.innerHTML = queries.slice(0, 5).map(function (x, i) {\n      return '<li><a role=\"option\" id=\"tk-sq-' + i + '\" href=\"' + esc(x.url || (searchUrl + '?q=' + encodeURIComponent(x.text) + '&type=product')) + '\">' + (x.styled_text || mark(x.text, q)) + '</a></li>';\n    }).join('');\n    cList.innerHTML = cols.slice(0, 4).map(function (x, i) {\n      return '<li><a role=\"option\" id=\"tk-sc-' + i + '\" href=\"' + esc(x.url) + '\">' + mark(x.title, q) + '</a></li>';\n    }).join('');\n    qList.parentElement.hidden = !queries.length;\n    cList.parentElement.hidden = !cols.length;\n    pList.innerHTML = products.slice(0, 8).map(function (p, i) {\n      var v0 = p.variants && p.variants[0], vp = v0 && v0.price != null ? v0.price : p.price, vc = v0 && v0.compare_at_price != null ? v0.compare_at_price : p.compare_at_price_max; var price = money(vp), was = vc && parseFloat(vc) > parseFloat(vp) ? money(vc) : '';\n      return '<li><a role=\"option\" id=\"tk-sp-' + i + '\" class=\"tk-search__prod\" href=\"' + esc(p.url) + '\">' +\n        (firstImg(p) ? '<img src=\"' + esc(sized(firstImg(p), 300)) + '\" alt=\"\" width=\"300\" height=\"375\" loading=\"lazy\">' : '<span class=\"tk-search__noimg\"></span>') +\n        '<span class=\"tk-search__name\">' + mark(p.title, q) + '</span>' +\n        '<span class=\"tk-search__price\">' + esc(price) + (was ? ' <s>' + esc(was) + '</s>' : '') + '</span></a></li>';\n    }).join('');\n    empty.hidden = products.length > 0;\n    all.href = searchUrl + '?q=' + encodeURIComponent(rewrite(q)) + '&type=product&options%5Bprefix%5D=last';\n    all.textContent = 'See all results for \u201C' + q + '\u201D';\n    defBox.hidden = true; live.hidden = false;\n    input.setAttribute('aria-expanded', 'true');\n  }\n\n\n  /* Search vocabulary: map shopper words to the words in B. Draddy product titles (theme setting). */\n  var RW = (function () {\n    var el = document.getElementById('tk-search-rewrites'); var out = [];\n    if (!el) return out;\n    try { JSON.parse(el.textContent).forEach(function (r) { var a = r.split('=>'); if (a.length === 2) out.push([a[0].trim().toLowerCase(), a[1].trim()]); }); } catch (e) {}\n    return out.sort(function (a, b) { return b[0].length - a[0].length; });\n  })();\n  function rewrite(q) {\n    var s = ' ' + q.toLowerCase().replace(/\\s+/g, ' ').trim() + ' ';\n    RW.forEach(function (r) { var k = ' ' + r[0] + ' '; while (s.indexOf(k) > -1) s = s.replace(k, ' ' + r[1].toLowerCase() + ' '); });\n    return s.trim();\n  }\n  window.tkSearchRewrite = rewrite;\n  function query(q) {\n    if (cache[q]) { render(q, cache[q]); return; }\n    if (ctrl) ctrl.abort();\n    ctrl = window.AbortController ? new AbortController() : null;\n    var url = base + '?q=' + encodeURIComponent(rewrite(q)) +\n      '&resources[type]=product,collection,query&resources[limit]=8&resources[limit_scope]=each&resources[options][unavailable_products]=last&resources[options][fields]=title,product_type,variants.title,tag';\n    panel.classList.add('is-loading');\n    fetch(url, ctrl ? { signal: ctrl.signal } : {})\n      .then(function (r) { return r.json(); })\n      .then(function (d) { cache[q] = d; if (input.value.trim() === q) render(q, d); })\n      .catch(function () {})\n      .finally(function () { panel.classList.remove('is-loading'); });\n  }\n\n  input.addEventListener('input', function () {\n    var q = input.value.trim();\n    clearTimeout(timer);\n    if (q.length < 2) { live.hidden = true; defBox.hidden = false; input.setAttribute('aria-expanded', 'false'); return; }\n    timer = setTimeout(function () { query(q); }, 160);\n  });\n  input.addEventListener('keydown', function (e) {\n    if (e.key === 'ArrowDown') { e.preventDefault(); setActive(active + 1); }\n    else if (e.key === 'ArrowUp') { e.preventDefault(); setActive(active - 1); }\n    else if (e.key === 'Enter' && active > -1) { var o = options()[active]; if (o) { e.preventDefault(); window.location.href = o.href; } }\n    else if (e.key === 'Escape') { e.preventDefault(); close(); }\n  });\n  triggers.forEach(function (t) { t.addEventListener('click', open); });\n  document.querySelectorAll('[data-tk-search-close]').forEach(function (b) { b.addEventListener('click', close); });\n  panel.addEventListener('keydown', function (e) { if (e.key === 'Escape') close(); });\n  /* \"/\" opens search on desktop, like most fashion sites */\n  document.addEventListener('keydown', function (e) {\n    if (e.key === '/' && !panel.classList.contains('is-open') && !/input|textarea|select/i.test(document.activeElement.tagName)) { e.preventDefault(); open(); }\n  });\n  /* Search links in the old header, if any, open the panel instead */\n  document.querySelectorAll('a[href=\"/search\"]').forEach(function (a) { a.addEventListener('click', function (e) { e.preventDefault(); open(); }); });\n})();\n\n/* Offer bar: rotates messages, opens details, and refreshes itself whenever the cart changes. */\n(function () {\n  'use strict';\n  var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var timer = null, paused = false;\n\n  function bar() { return document.querySelector('[data-tk-offerbar]'); }\n  function start() {\n    clearInterval(timer);\n    var b = bar(); if (!b || reduce) return;\n    var msgs = b.querySelectorAll('.tk-offerbar__msg');\n    if (msgs.length < 2) return;\n    timer = setInterval(function () {\n      if (paused) return;\n      var i = 0; msgs.forEach(function (m, k) { if (m.classList.contains('is-active')) i = k; });\n      msgs[i].classList.remove('is-active');\n      msgs[(i + 1) % msgs.length].classList.add('is-active');\n    }, 4500);\n    b.addEventListener('mouseenter', function () { paused = true; });\n    b.addEventListener('mouseleave', function () { paused = false; });\n    b.addEventListener('focusin', function () { paused = true; });\n    b.addEventListener('focusout', function () { paused = false; });\n  }\n\n  document.addEventListener('click', function (e) {\n    var x = e.target.closest('[data-tk-offer-close]');\n    if (x) {\n      var bt = document.querySelector('[data-tk-offer-toggle]');\n      var pn = x.closest('.tk-offerbar__details');\n      if (pn) pn.hidden = true;\n      if (bt) { bt.setAttribute('aria-expanded', 'false'); bt.focus(); }\n      paused = false; return;\n    }\n    var t = e.target.closest('[data-tk-offer-toggle]');\n    if (!t) {\n      var open = document.querySelector('.tk-offerbar__details:not([hidden])');\n      if (open && !e.target.closest('.tk-offerbar__details')) { open.hidden = true; var b2 = document.querySelector('[data-tk-offer-toggle]'); if (b2) b2.setAttribute('aria-expanded', 'false'); paused = false; }\n      return;\n    }\n    var d = document.getElementById(t.getAttribute('aria-controls'));\n    var open = t.getAttribute('aria-expanded') === 'true';\n    t.setAttribute('aria-expanded', open ? 'false' : 'true');\n    if (d) d.hidden = open;\n    paused = !open;\n  });\n\n  var pending = null;\n  function refresh() {\n    clearTimeout(pending);\n    pending = setTimeout(function () {\n      fetch(window.location.pathname + '?sections=takeover-offerbar,takeover-promo-band')\n        .then(function (r) { return r.json(); })\n        .then(function (j) {\n          var html = j && j['takeover-offerbar']; var cur = bar();\n          if (html && cur) {\n            var doc = new DOMParser().parseFromString(html, 'text/html');\n            var fresh = doc.querySelector('[data-tk-offerbar]');\n            if (fresh) { cur.replaceWith(fresh); start(); }\n          }\n          var band = j && j['takeover-promo-band']; var curBand = document.querySelector('.tk-band');\n          if (band && curBand) {\n            var d2 = new DOMParser().parseFromString(band, 'text/html');\n            var nb = d2.querySelector('.tk-band');\n            if (nb) {\n              var was = parseInt(curBand.getAttribute('data-cur') || '0', 10);\n              var now = parseInt(nb.getAttribute('data-cur') || '0', 10);\n              curBand.replaceWith(nb);\n              /* a new tier just unlocked: brief glow so shoppers notice */\n              if (nb.hasAttribute('data-tk-neon') && now > was) { nb.classList.add('is-unlocking'); setTimeout(function () { nb.classList.remove('is-unlocking'); }, 1600); }\n            }\n          }\n        }).catch(function () {});\n    }, 250);\n  }\n  window.tkRefreshOffers = function () { refresh(); var b = document.getElementById('cart-icon-bubble'); if (b) { setTimeout(function () { var n = b.querySelector('span:not(.visually-hidden)'); var c = n ? parseInt(n.textContent, 10) || 0 : 0; b.setAttribute('aria-label', 'Bag, ' + c + (c === 1 ? ' item' : ' items')); b.classList.remove('tk-bump'); void b.offsetWidth; b.classList.add('tk-bump'); }, 350); } };\n  document.addEventListener('keydown', function (e) {\n    if (e.key !== 'Escape') return;\n    var open = document.querySelector('.tk-offerbar__details:not([hidden])');\n    if (open) { open.hidden = true; var b = document.querySelector('[data-tk-offer-toggle]'); if (b) { b.setAttribute('aria-expanded', 'false'); b.focus(); } }\n  });\n  if (typeof subscribe === 'function' && typeof PUB_SUB_EVENTS !== 'undefined') {\n    subscribe(PUB_SUB_EVENTS.cartUpdate, refresh);\n  }\n  /* the bag drawer also announces changes this way (quantity +/-, remove) */\n  document.addEventListener('cart:updated', refresh);\n  start();\n})();\n\n/* Sticky add-to-bag on product pages: appears once the real button scrolls away, and drives that button. */\n(function () {\n  'use strict';\n  var bar = document.querySelector('[data-tk-satc]');\n  if (!bar) return;\n  var real = document.querySelector('.pinfo-add-to-cart, form[action*=\"/cart/add\"] [type=\"submit\"][name=\"add\"]');\n  if (!real || !('IntersectionObserver' in window)) return;\n  var btn = bar.querySelector('[data-tk-satc-btn]');\n  var sub = bar.querySelector('[data-tk-satc-sub]');\n  var io = new IntersectionObserver(function (entries) {\n    var e = entries[0];\n    var past = !e.isIntersecting; /* above the fold or scrolled past: keep Add to bag one tap away */\n    bar.hidden = !past;\n    document.documentElement.classList.toggle('tk-satc-on', past);\n  }, { threshold: 0 });\n  /* visibility is handled by the sturdier watcher further down */\n  function sync() {\n    /* copy the price exactly as the product page shows it (bundle / sale price + crossed-out price) */\n    var box = Array.prototype.filter.call(document.querySelectorAll('.pinfo-price-wrapper .pinfo-price'), function (el) { return el.offsetParent !== null; })[0];\n    var now = box && box.querySelector('.pinfo-regular-price');\n    if (now && now.textContent.trim()) {\n      var was = box.querySelector('s');\n      sub.innerHTML = '';\n      var a = document.createElement('span'); a.className = 'tk-satc__now'; a.textContent = now.textContent.replace(/\\s+/g, ' ').trim(); sub.appendChild(a);\n      if (was && was.textContent.trim()) { var b = document.createElement('s'); b.className = 'tk-satc__was'; b.textContent = was.textContent.replace(/\\s+/g, ' ').trim(); sub.appendChild(document.createTextNode(' ')); sub.appendChild(b); }\n    } else {\n      var price = document.querySelector('.pinfo__price_app .price, .price__collection_wrap .price-item--regular, .price__collection_wrap .price');\n      if (price && price.textContent.trim()) sub.textContent = price.textContent.replace(/\\s+/g, ' ').trim();\n    }\n    var sold = real.disabled || real.classList.contains('hidden');\n    btn.textContent = sold ? 'Select options' : 'Add to bag';\n  }\n  document.addEventListener('change', function (e) { if (e.target.closest('form, .pinfo-color-input, [name]')) setTimeout(sync, 60); });\n  setTimeout(sync, 0);\n  var tkPw = document.querySelector('.pinfo-wrapper');\n  if (tkPw) { var tkSyncT = null; new MutationObserver(function () { clearTimeout(tkSyncT); tkSyncT = setTimeout(sync, 150); }).observe(tkPw, { childList: true, subtree: true }); }\n  function pickReal() {\n    var list = document.querySelectorAll('.pinfo-add-to-cart, form[action*=\"/cart/add\"] [type=\"submit\"][name=\"add\"], .custom__atc-global-btn');\n    for (var i = 0; i < list.length; i++) { if (!list[i].closest('[data-tk-satc]') && list[i].offsetParent !== null) return list[i]; }\n    return real;\n  }\n  /* the product form the shopper can see (the theme renders separate phone and desktop copies) */\n  function visibleForm() {\n    var fs = document.querySelectorAll('form[action*=\"/cart/add\"]');\n    for (var i = 0; i < fs.length; i++) {\n      var f = fs[i];\n      if (f.closest('[data-tk-satc], cart-drawer, .tk-sheet, pqa-new, .tk-card')) continue;\n      if (!f.querySelector('[name=\"id\"]')) continue;\n      if (f.offsetParent !== null) return f;\n    }\n    for (var j = 0; j < fs.length; j++) { if (!fs[j].closest('[data-tk-satc], cart-drawer, .tk-sheet, pqa-new, .tk-card') && fs[j].querySelector('[name=\"id\"]')) return fs[j]; }\n    return null;\n  }\n  btn.addEventListener('click', function () {\n    real = pickReal();\n    sync();\n    var form = visibleForm();\n    var sold = !form || real.disabled || real.classList.contains('hidden');\n    if (sold) { /* nothing addable yet (pick a size / sold out): take them to the options */\n      (form || real).scrollIntoView({ behavior: 'smooth', block: 'center' });\n      return;\n    }\n    window.tkAddForm(form, btn);\n  });\n})();\n\n/* Product page tabs: swap panels in place; arrow keys move between tabs. */\n(function () {\n  'use strict';\n  document.addEventListener('click', function (e) {\n    var t = e.target.closest('[data-tk-tab]'); if (!t) return;\n    select(t);\n  });\n  document.addEventListener('keydown', function (e) {\n    var t = e.target.closest && e.target.closest('[data-tk-tab]'); if (!t) return;\n    if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n    var tabs = Array.prototype.slice.call(t.parentElement.querySelectorAll('[data-tk-tab]'));\n    var i = tabs.indexOf(t) + (e.key === 'ArrowRight' ? 1 : -1);\n    var n = tabs[(i + tabs.length) % tabs.length]; select(n); n.focus(); e.preventDefault();\n  });\n  function select(t) {\n    var bar = t.parentElement;\n    bar.querySelectorAll('[data-tk-tab]').forEach(function (b) {\n      var on = b === t;\n      b.setAttribute('aria-selected', on ? 'true' : 'false'); b.tabIndex = on ? 0 : -1;\n      var p = document.getElementById(b.getAttribute('aria-controls')); if (p) p.hidden = !on;\n    });\n    t.scrollIntoView({ block: 'nearest', inline: 'center' });\n  }\n})();\n\n/* Countdown: ticks every second, switches to urgent styling under 24h, removes itself at zero. */\n(function () {\n  'use strict';\n  function pad(n) { return n < 10 ? '0' + n : String(n); }\n  function tick() {\n    var now = Date.now();\n    document.querySelectorAll('[data-tk-countdown]').forEach(function (el) {\n      var end = Date.parse(el.getAttribute('data-tk-countdown'));\n      if (isNaN(end)) return;\n      var ms = end - now;\n      if (ms <= 0) { el.remove(); var bar = document.querySelector('.tk-offerbar.has-timer'); if (bar) bar.classList.remove('has-timer'); return; }\n      var s = Math.floor(ms / 1000), d = Math.floor(s / 86400), h = Math.floor(s % 86400 / 3600), m = Math.floor(s % 3600 / 60), sec = s % 60;\n      if (el.hasAttribute('data-compact')) {\n        el.textContent = 'Ends in ' + (d ? d + 'd ' + h + 'h' : h + 'h ' + pad(m) + 'm');\n        return;\n      }\n      var set = function (u, v) { var b = el.querySelector('[data-u=\"' + u + '\"]'); if (b) { b.textContent = pad(v); b.classList.toggle('is-zero', u === 'd' && v === 0); } };\n      set('d', d); set('h', h); set('m', m); set('s', sec);\n      el.classList.toggle('is-urgent', ms < 86400000);\n    });\n  }\n  tick();\n  setInterval(tick, 1000);\n})();\n\n/* Product image viewer (takeover): replaces the old lightbox with a clean full-screen viewer.\n   Swipe or arrows to move, tap or click to zoom and pan, thumbnails, counter, Esc to close. */\n(function () {\n  'use strict';\n  if (!document.querySelector('.pinfo-wrapper')) return;\n  var startX = 0, startY = 0, moved = false;\n  window.addEventListener('pointerdown', function (e) { startX = e.clientX; startY = e.clientY; moved = false; }, true);\n  window.addEventListener('pointermove', function (e) { if (Math.abs(e.clientX - startX) > 10 || Math.abs(e.clientY - startY) > 10) moved = true; }, true);\n\n  function bigUrl(img) {\n    var src = img.currentSrc || img.src || '';\n    var best = src, bestW = 0;\n    (img.getAttribute('srcset') || '').split(',').forEach(function (part) {\n      var bits = part.trim().split(/\\s+/); var w = parseInt(bits[1], 10) || 0;\n      if (w > bestW) { bestW = w; best = bits[0]; }\n    });\n    try { var u = new URL(best || src, location.href); u.searchParams.set('width', '2400'); u.searchParams.delete('height'); u.searchParams.delete('crop'); return u.toString(); } catch (e) { return best || src; }\n  }\n  function visible(el) { var r = el.getBoundingClientRect(); return r.width > 0 && r.height > 0 && getComputedStyle(el).visibility !== 'hidden'; }\n  function gallery(from) {\n    var sets = ['.info-media-stack-wrapper .pdp-media img', '.pdp-media-lg .pdp-media img', '.main-swiper .swiper-slide img'];\n    for (var i = 0; i < sets.length; i++) {\n      var imgs = Array.prototype.filter.call(document.querySelectorAll(sets[i]), function (im) { return visible(im.closest('.pdp-media, .swiper-slide') || im); });\n      if (imgs.length && (!from || imgs.indexOf(from) > -1)) return imgs;\n    }\n    return from ? [from] : [];\n  }\n\n  var dlg, mainImg, counter, thumbs, list = [], idx = 0, zoomed = false, lastFocus = null;\n  function build() {\n    dlg = document.createElement('dialog');\n    dlg.className = 'tk-zoom';\n    dlg.setAttribute('aria-label', 'Product images');\n    dlg.innerHTML = '<div class=\"tk-zoom__top\"><p class=\"tk-zoom__count\" aria-live=\"polite\"></p><button type=\"button\" class=\"tk-zoom__close\" aria-label=\"Close images\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M5 5l14 14M19 5L5 19\"/></svg></button></div>' +\n      '<div class=\"tk-zoom__stage\"><button type=\"button\" class=\"tk-zoom__nav tk-zoom__nav--prev\" aria-label=\"Previous image\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M15 5l-7 7 7 7\"/></svg></button>' +\n      '<div class=\"tk-zoom__frame\"><img class=\"tk-zoom__img\" alt=\"\"></div>' +\n      '<button type=\"button\" class=\"tk-zoom__nav tk-zoom__nav--next\" aria-label=\"Next image\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" aria-hidden=\"true\"><path d=\"M9 5l7 7-7 7\"/></svg></button></div>' +\n      '<p class=\"tk-zoom__hint\">Tap or click the image to zoom</p><div class=\"tk-zoom__thumbs\" role=\"list\"></div>';\n    document.body.appendChild(dlg);\n    mainImg = dlg.querySelector('.tk-zoom__img'); counter = dlg.querySelector('.tk-zoom__count'); thumbs = dlg.querySelector('.tk-zoom__thumbs');\n    dlg.querySelector('.tk-zoom__close').addEventListener('click', close);\n    dlg.querySelector('.tk-zoom__nav--prev').addEventListener('click', function () { go(idx - 1); });\n    dlg.querySelector('.tk-zoom__nav--next').addEventListener('click', function () { go(idx + 1); });\n    dlg.addEventListener('close', function () { document.documentElement.classList.remove('tk-zoom-open'); if (lastFocus && lastFocus.focus) lastFocus.focus(); });\n    dlg.addEventListener('keydown', function (e) { if (e.key === 'ArrowRight') go(idx + 1); if (e.key === 'ArrowLeft') go(idx - 1); });\n    var frame = dlg.querySelector('.tk-zoom__frame');\n    frame.addEventListener('click', function (e) { if (moved) return; setZoom(!zoomed, e); });\n    frame.addEventListener('pointermove', function (e) { if (zoomed && e.pointerType === 'mouse') pan(e); });\n    var tx = 0, ty = 0;\n    frame.addEventListener('touchstart', function (e) { tx = e.touches[0].clientX; ty = e.touches[0].clientY; }, { passive: true });\n    frame.addEventListener('touchmove', function (e) { if (zoomed) { pan(e.touches[0]); e.preventDefault(); } }, { passive: false });\n    frame.addEventListener('touchend', function (e) {\n      if (zoomed) return;\n      var dx = e.changedTouches[0].clientX - tx, dy = e.changedTouches[0].clientY - ty;\n      if (Math.abs(dx) > 50 && Math.abs(dx) > Math.abs(dy)) go(idx + (dx < 0 ? 1 : -1));\n    });\n  }\n  function pan(p) {\n    var r = mainImg.parentElement.getBoundingClientRect();\n    var x = Math.min(100, Math.max(0, (p.clientX - r.left) / r.width * 100));\n    var y = Math.min(100, Math.max(0, (p.clientY - r.top) / r.height * 100));\n    mainImg.style.transformOrigin = x + '% ' + y + '%';\n  }\n  function setZoom(on, e) {\n    zoomed = on; dlg.classList.toggle('is-zoomed', on);\n    if (on && e) pan(e); else mainImg.style.transformOrigin = '50% 50%';\n  }\n  function go(i) {\n    if (!list.length) return;\n    idx = (i + list.length) % list.length; setZoom(false);\n    mainImg.src = list[idx].big; mainImg.alt = list[idx].alt;\n    counter.textContent = (idx + 1) + ' / ' + list.length;\n    thumbs.querySelectorAll('button').forEach(function (b, k) { b.setAttribute('aria-current', k === idx ? 'true' : 'false'); if (k === idx) b.scrollIntoView({ block: 'nearest', inline: 'center' }); });\n    var n = list[(idx + 1) % list.length]; if (n) { var pre = new Image(); pre.src = n.big; }\n  }\n  function open(from) {\n    var imgs = gallery(from); if (!imgs.length) return;\n    if (!dlg) build();\n    list = imgs.map(function (im) { return { big: bigUrl(im), thumb: im.currentSrc || im.src, alt: im.alt || '' }; });\n    thumbs.innerHTML = '';\n    list.forEach(function (it, k) {\n      var b = document.createElement('button'); b.type = 'button'; b.setAttribute('role', 'listitem'); b.setAttribute('aria-label', 'Image ' + (k + 1));\n      var t = document.createElement('img'); t.src = it.thumb; t.alt = ''; t.loading = 'lazy'; b.appendChild(t);\n      b.addEventListener('click', function () { go(k); }); thumbs.appendChild(b);\n    });\n    dlg.classList.toggle('is-single', list.length < 2);\n    lastFocus = document.activeElement;\n    document.documentElement.classList.add('tk-zoom-open');\n    dlg.showModal();\n    go(Math.max(0, imgs.indexOf(from)));\n  }\n  function close() { if (dlg && dlg.open) dlg.close(); }\n\n  window.addEventListener('click', function (e) {\n    if (moved) return;\n    var img = e.target.closest && e.target.closest('.pinfo-wrapper .pdp-media img, .pinfo-wrapper .pdp-media picture, .pinfo-wrapper .main-swiper .swiper-slide img');\n    if (!img) return;\n    if (img.tagName !== 'IMG') img = img.querySelector('img');\n    if (!img || e.target.closest('a, button, .--shop-the-look-anchor')) return;\n    /* thumbnails switch the main image (theme's swiper); only the main image opens the viewer */\n    if (e.target.closest('.thumb-swiper, .thumb-swiper-wrapper, .thumb-media, .thumb-slide, .vertical__medias, .pdp-media-v')) return;\n    e.preventDefault(); e.stopImmediatePropagation();\n    open(img);\n  }, true);\n})();\n\n/* Gift with purchase: picking a size updates the add button (works across bag re-renders). */\ndocument.addEventListener('click', function (e) {\n  var b = e.target.closest && e.target.closest('[data-tk-gift-size]');\n  if (!b || b.disabled) return;\n  var box = b.closest('[data-tk-gwp]'); if (!box) return;\n  box.querySelectorAll('[data-tk-gift-size]').forEach(function (x) { x.setAttribute('aria-checked', x === b ? 'true' : 'false'); });\n  var cta = box.querySelector('[data-tk-gift-cta]');\n  if (cta) { cta.setAttribute('data-id', b.getAttribute('data-id')); cta.disabled = false; }\n});\n\n/* Mobile bag bar: hides when the full checkout area is on screen; its button presses the real checkout button (Checkout+ first, else the theme's). */\n(function () {\n  'use strict';\n  var io = null;\n  function wire() {\n    var bar = document.querySelector('[data-tk-bagbar]');\n    var foot = document.querySelector('cart-drawer .drawer__footer');\n    if (!bar || !foot || !('IntersectionObserver' in window)) return;\n    if (io) io.disconnect();\n    io = new IntersectionObserver(function (en) { bar.classList.toggle('is-hidden', en[0].isIntersecting && en[0].intersectionRatio > 0.35); }, { threshold: [0, 0.35, 0.6] });\n    io.observe(foot);\n  }\n  document.addEventListener('click', function (e) {\n    var b = e.target.closest && e.target.closest('[data-tk-bagbar-btn]'); if (!b) return;\n    var foot = document.querySelector('cart-drawer .drawer__footer'); if (!foot) return;\n    var redo = foot.querySelector('[class*=\"redo\" i] button, [id*=\"redo\" i] button');\n    var native = document.getElementById('CartDrawer-Checkout');\n    var target = redo || (native && native.offsetParent !== null ? native : null);\n    if (target) { target.click(); } else { foot.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n  });\n  var t = null;\n  var mo = new MutationObserver(function () { clearTimeout(t); t = setTimeout(wire, 120); });\n  document.addEventListener('DOMContentLoaded', function () {\n    var cd = document.querySelector('cart-drawer'); if (cd) mo.observe(cd, { childList: true, subtree: true });\n    wire();\n  });\n  if (document.readyState !== 'loading') { var cd2 = document.querySelector('cart-drawer'); if (cd2) mo.observe(cd2, { childList: true, subtree: false }); wire(); }\n})();\n\n/* Express checkout: put the device's native wallet first.\n   Apple devices (iPhone, iPad, Mac) \u2192 Apple Pay first; Android \u2192 Google Pay first; Shop Pay and PayPal follow.\n   Shopify only renders a wallet the device supports, so this only reorders what's shown. Works on light DOM and open shadow roots. */\n(function () {\n  'use strict';\n  var ua = navigator.userAgent || '';\n  var isApple = /iPhone|iPad|iPod|Macintosh|Mac OS X/i.test(ua) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\n  var isAndroid = /Android/i.test(ua);\n  var first = isApple ? 'apple' : (isAndroid ? 'google' : null);\n  if (!first) return;\n  var second = first === 'apple' ? 'google' : 'apple';\n  function kind(el) {\n    var t = ((el.tagName || '') + ' ' + (el.getAttribute && (el.getAttribute('aria-label') || '')) + ' ' + (el.getAttribute && (el.getAttribute('data-testid') || '')) + ' ' + (el.className && el.className.baseVal === undefined ? el.className : '')).toLowerCase();\n    if (/apple[-_\\s]?pay/.test(t)) return 'apple';\n    if (/google[-_\\s]?pay|gpay/.test(t)) return 'google';\n    return null;\n  }\n  function itemOf(el) {\n    var n = el;\n    while (n && n.parentElement) {\n      var ps = getComputedStyle(n.parentElement).display;\n      if (ps.indexOf('flex') > -1 || ps.indexOf('grid') > -1) return n;\n      n = n.parentElement;\n    }\n    return el;\n  }\n  function walk(root, out) {\n    var all = root.querySelectorAll('*');\n    for (var i = 0; i < all.length; i++) {\n      var k = kind(all[i]); if (k) out.push([k, all[i]]);\n      if (all[i].shadowRoot) walk(all[i].shadowRoot, out);\n    }\n  }\n  function prioritize() {\n    document.querySelectorAll('.cart-drawer__dynamic-checkout, .cart__dynamic-checkout-buttons, .additional-checkout-buttons, shopify-accelerated-checkout-cart, shopify-accelerated-checkout').forEach(function (box) {\n      var found = []; walk(box, found);\n      if (box.shadowRoot) walk(box.shadowRoot, found);\n      found.forEach(function (f) {\n        var item = itemOf(f[1]);\n        item.style.order = f[0] === first ? '-2' : (f[0] === second ? '-1' : '');\n      });\n    });\n  }\n  var t = null;\n  var SEL = '.cart-drawer__dynamic-checkout, .cart__dynamic-checkout-buttons, .additional-checkout-buttons, shopify-accelerated-checkout-cart, shopify-accelerated-checkout';\n  var mo = new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) {\n      var tgt = m[i].target;\n      if (tgt.nodeType === 1 && (tgt.closest(SEL) || (tgt.querySelector && m[i].addedNodes.length && tgt.querySelector(SEL)))) { clearTimeout(t); t = setTimeout(prioritize, 200); return; }\n    }\n  });\n  function start() { mo.observe(document.body, { childList: true, subtree: true }); prioritize(); setTimeout(prioritize, 1200); setTimeout(prioritize, 3000); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n  document.documentElement.classList.add(isApple ? 'tk-dev-apple' : 'tk-dev-android');\n})();\n\n/* Menu drawer: open/close (button, X, backdrop, Esc), search hand-off, recently viewed. */\n(function () {\n  'use strict';\n  var KEY = 'tk_recent';\n  /* remember product pages for \"Recently viewed\" */\n  try {\n    var meta = window.ShopifyAnalytics && ShopifyAnalytics.meta && ShopifyAnalytics.meta.product;\n    var isPdp = /\\/products\\//.test(location.pathname);\n    if (isPdp) {\n      var titleEl = document.querySelector('.pinfo-title, h1');\n      var priceEl = document.querySelector('.tk-satc__sub, .pinfo-regular-price');\n      var item = { u: location.pathname.split('?')[0], t: (titleEl ? titleEl.textContent : document.title).trim().slice(0, 80), p: priceEl ? priceEl.textContent.trim().slice(0, 20) : '' };\n      var list = JSON.parse(localStorage.getItem(KEY) || '[]').filter(function (x) { return x.u !== item.u; });\n      list.unshift(item); localStorage.setItem(KEY, JSON.stringify(list.slice(0, 8)));\n    }\n  } catch (e) {}\n  function renderRecent() {\n    var wrap = document.querySelector('[data-tk-recent-wrap]'); var ul = document.querySelector('[data-tk-recent-list]');\n    if (!wrap || !ul) return;\n    var list = []; try { list = JSON.parse(localStorage.getItem(KEY) || '[]'); } catch (e) {}\n    list = list.filter(function (x) { return x.u !== location.pathname; }).slice(0, 4);\n    wrap.hidden = !list.length; ul.innerHTML = '';\n    list.forEach(function (x) {\n      var li = document.createElement('li'); var a = document.createElement('a'); a.href = x.u;\n      var n = document.createElement('span'); n.textContent = x.t; a.appendChild(n);\n      if (x.p) { var pr = document.createElement('span'); pr.className = 'tk-menu__rprice'; pr.textContent = x.p; a.appendChild(pr); }\n      li.appendChild(a); ul.appendChild(li);\n    });\n  }\n  var dlg = document.querySelector('[data-tk-menu]');\n  if (!dlg) return;\n  var last = null;\n  function open() {\n    last = document.activeElement; renderRecent();\n    document.querySelectorAll('[data-tk-menu-open]').forEach(function (b) { b.setAttribute('aria-expanded', 'true'); });\n    document.documentElement.classList.add('tk-menu-open');\n    dlg.showModal(); requestAnimationFrame(function () { dlg.classList.add('is-open'); });\n  }\n  function close() {\n    dlg.classList.remove('is-open');\n    document.querySelectorAll('[data-tk-menu-open]').forEach(function (b) { b.setAttribute('aria-expanded', 'false'); });\n    setTimeout(function () { if (dlg.open) dlg.close(); document.documentElement.classList.remove('tk-menu-open'); if (last && last.focus) last.focus(); }, 220);\n  }\n  document.addEventListener('click', function (e) {\n    if (e.target.closest('[data-tk-menu-open]')) { e.preventDefault(); open(); return; }\n    if (e.target.closest('[data-tk-menu-close]')) { close(); return; }\n    if (e.target === dlg) { close(); return; } /* backdrop */\n    if (e.target.closest('[data-tk-menu-search]')) {\n      close(); setTimeout(function () { var s = document.querySelector('[data-tk-search-open]'); if (s) s.click(); }, 240);\n    }\n  });\n  dlg.addEventListener('cancel', function (e) { e.preventDefault(); close(); });\n  /* swipe left to close on touch */\n  var sx = 0;\n  /* ignore swipes that start in a sideways-scrolling row (best sellers, gift chips) and mostly-vertical moves */\n  var sy = 0, sideScroll = false;\n  dlg.addEventListener('touchstart', function (e) {\n    sx = e.touches[0].clientX; sy = e.touches[0].clientY;\n    sideScroll = !!(e.target.closest && e.target.closest('.tk-menu__tiles, .tk-menu__chips, [data-tk-hscroll]'));\n  }, { passive: true });\n  dlg.addEventListener('touchend', function (e) {\n    if (sideScroll) return;\n    var dx = sx - e.changedTouches[0].clientX, dy = Math.abs(sy - e.changedTouches[0].clientY);\n    if (dx > 70 && dx > dy * 1.5) close();\n  });\n})();\n\n/* Delivery estimate: business days on the shopper's device, US Eastern cutoff, closed dates, holiday order-by. */\n(function () {\n  'use strict';\n  function fmt(d) { return d.toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' }); }\n  function nowEastern() { return new Date(new Date().toLocaleString('en-US', { timeZone: 'America/New_York' })); }\n  function iso(d) { return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0'); }\n  function addBiz(start, n, closed) { var d = new Date(start); while (n > 0) { d.setDate(d.getDate() + 1); var w = d.getDay(); if (w !== 0 && w !== 6 && closed.indexOf(iso(d)) === -1) n--; } return d; }\n  function isBiz(d, closed) { var w = d.getDay(); return w !== 0 && w !== 6 && closed.indexOf(iso(d)) === -1; }\n  function run() {\n    document.querySelectorAll('[data-tk-eta]').forEach(function (el) {\n      var closed = (el.dataset.closed || '').split(',').map(function (x) { return x.trim(); }).filter(Boolean);\n      var now = nowEastern(), cutoff = parseInt(el.dataset.cutoff || '12', 10);\n      var proc = parseInt(el.dataset.proc || '1', 10), mn = parseInt(el.dataset.min || '3', 10), mx = parseInt(el.dataset.max || '5', 10);\n      var start = new Date(now); var leftMs = 0;\n      if (isBiz(now, closed) && now.getHours() < cutoff) { var c = new Date(now); c.setHours(cutoff, 0, 0, 0); leftMs = c - now; proc = Math.max(0, proc - 1); }\n      var ship = addBiz(start, Math.max(proc, 0) || 0, closed); if (!isBiz(ship, closed)) ship = addBiz(ship, 1, closed);\n      var a = addBiz(ship, mn, closed), b = addBiz(ship, mx, closed);\n      var main = el.querySelector('[data-tk-eta-main]'), sub = el.querySelector('[data-tk-eta-sub]');\n      var txt = 'Get it <strong>' + fmt(a) + ' \u2013 ' + fmt(b) + '</strong>';\n      if (leftMs > 0 && leftMs < 6 * 3600e3) { var h = Math.floor(leftMs / 3600e3), m = Math.floor(leftMs % 3600e3 / 60e3); txt = 'Order within <strong>' + (h ? h + 'h ' : '') + m + 'm</strong> \u00B7 get it ' + fmt(a) + ' \u2013 ' + fmt(b); }\n      if (main.innerHTML !== txt) main.innerHTML = txt;\n      var notes = [];\n      var mtoDeadlineLive = el.dataset.mto && el.dataset.deadlineMto && now <= new Date(el.dataset.deadlineMto + 'T23:59:00');\n      if (el.dataset.mto && !mtoDeadlineLive) notes.push('Embroidered items ship separately within ' + el.dataset.mto + ' days.');\n      var hol = el.dataset.holiday || 'Christmas';\n      function md(s) { return new Date(s + 'T00:00:00').toLocaleDateString('en-US', { month: 'short', day: 'numeric' }); }\n      function left(s) { var d = Math.ceil((new Date(s + 'T23:59:00') - now) / 864e5); return d <= 10 ? ' \u00B7 ' + d + ' day' + (d === 1 ? '' : 's') + ' left' : ''; }\n      function before(s) { return s && now <= new Date(s + 'T23:59:00'); }\n      if (mtoDeadlineLive) notes.push('Embroidered items: order by <strong>' + md(el.dataset.deadlineMto) + '</strong> for ' + hol + left(el.dataset.deadlineMto) + '.');\n      if (before(el.dataset.deadline)) {\n        notes.push((el.dataset.mto ? 'Everything else: order by ' : 'Order by ') + '<strong>' + md(el.dataset.deadline) + '</strong>' + (el.dataset.mto ? '' : ' for ' + hol + ' delivery') + left(el.dataset.deadline) + (el.dataset.deadlineExpress ? ' (' + md(el.dataset.deadlineExpress) + ' with overnight)' : '') + '.');\n      } else if (before(el.dataset.deadlineExpress)) {\n        notes.push('Still time for ' + hol + ': choose <strong>overnight shipping</strong> at checkout by ' + md(el.dataset.deadlineExpress) + left(el.dataset.deadlineExpress) + '.');\n      }\n      var nh = notes.join('<br>'); if (notes.length) { if (sub.innerHTML !== nh) sub.innerHTML = nh; sub.hidden = false; } else if (!sub.hidden) { sub.hidden = true; }\n    });\n  }\n  function runDeadlines() {\n    var now = nowEastern();\n    document.querySelectorAll('[data-tk-deadline]').forEach(function (p) {\n      var d = p.dataset.date; if (!d) return;\n      var end = new Date(d + 'T23:59:00'); var hol = p.dataset.holiday || 'Christmas';\n      if (now <= end) {\n        var days = Math.ceil((end - now) / 864e5);\n        var h1 = 'Order by <strong>' + end.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) + '</strong> for ' + hol + ' delivery' + (days <= 10 ? ' \u00B7 ' + days + ' day' + (days === 1 ? '' : 's') + ' left' : '') + '.';\n        if (p.innerHTML !== h1) p.innerHTML = h1;\n      } else {\n        var h2 = 'Embroidered orders placed now arrive after ' + hol + '.';\n        if (p.innerHTML !== h2) p.innerHTML = h2;\n      }\n      if (p.hidden) p.hidden = false;\n    });\n  }\n  run(); runDeadlines(); setInterval(function () { run(); runDeadlines(); }, 60000);\n  /* Re-run only when a NEW delivery box is added (e.g. the bag re-renders). Never react to our own text updates. */\n  var etaTimer = null;\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) {\n      var nodes = m[i].addedNodes;\n      for (var k = 0; k < nodes.length; k++) {\n        var n = nodes[k];\n        if (n.nodeType !== 1 || (n.closest && n.closest('[data-tk-eta], [data-tk-deadline]'))) continue;\n        if ((n.matches && n.matches('[data-tk-eta], [data-tk-deadline]')) || (n.querySelector && n.querySelector('[data-tk-eta], [data-tk-deadline]'))) {\n          clearTimeout(etaTimer); etaTimer = setTimeout(function () { run(); runDeadlines(); }, 50); return;\n        }\n      }\n    }\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n\n/* Close-the-gap add, stars \u2192 reviews scroll, quick-add sold-out note */\ndocument.addEventListener('click', function (e) {\n  var add = e.target.closest && e.target.closest('[data-tk-gap-add]');\n  if (add) {\n    var row = add.closest('.tk-gap__item'); var sel = row && row.querySelector('[data-tk-gap-select]');\n    if (sel && sel.value) { add.setAttribute('data-id', sel.value); add.setAttribute('data-tk-add', ''); }\n    return;\n  }\n  var rv = e.target.closest && e.target.closest('[data-tk-reviews-link]');\n  if (rv) {\n    var t = document.querySelector('#reviews, [id*=\"review\" i]:not([data-tk-reviews-link]), .yotpo-main-widget, .yotpo-reviews-main-widget, .ruk_reviews, #REVIEWSio, .jdgm-rev-widg, .okeReviews');\n    if (t) { e.preventDefault(); t.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n  }\n}, true);\n\n/* Analytics: one event stream for every takeover feature.\n   Sends to GA4/GTM (dataLayer), Shopify Customer Events (custom events), and Klaviyo (if present). */\n(function () {\n  'use strict';\n  function track(name, data) {\n    data = data || {}; data.tk_variant = 'conversion_takeover';\n    try { (window.dataLayer = window.dataLayer || []).push(Object.assign({ event: 'tk_' + name }, data)); } catch (e) {}\n    try { if (window.Shopify && Shopify.analytics && Shopify.analytics.publish) Shopify.analytics.publish('tk_' + name, data); } catch (e) {}\n    try { if (window.gtag) gtag('event', 'tk_' + name, data); } catch (e) {}\n  }\n  window.tkTrack = track;\n  function txt(el) { return (el && (el.getAttribute('aria-label') || el.textContent) || '').replace(/\\s+/g, ' ').trim().slice(0, 80); }\n  document.addEventListener('click', function (e) {\n    var t = e.target; if (!t.closest) return;\n    var m;\n    if ((m = t.closest('[data-tk-menu-open]'))) return track('menu_open');\n    if ((m = t.closest('.tk-menu a'))) return track('menu_click', { label: txt(m), section: (m.closest('.tk-menu__section, .tk-menu__nav') || {}).className || '' , href: m.getAttribute('href') });\n    if ((m = t.closest('[data-tk-offer-toggle]'))) return track('offer_details_toggle');\n    if ((m = t.closest('[data-tk-search-open], [data-tk-menu-search]'))) return track('search_open');\n    if ((m = t.closest('.tk-search a'))) return track('search_select', { label: txt(m), href: m.getAttribute('href') });\n    if ((m = t.closest('[data-tk-gift-cta]'))) return track('gift_add', { variant: m.getAttribute('data-id') });\n    if ((m = t.closest('[data-tk-gap-add]'))) return track('gap_add', { product: m.getAttribute('data-product'), goal: (document.querySelector('.tk-gap__title') || {}).textContent || '' });\n    if ((m = t.closest('.tk-upsell [data-tk-add], [data-tk-upsell-add]'))) return track('upsell_add');\n    if ((m = t.closest('.tk-qa__btn, .tk-sheet [data-tk-add], .tk-sheet__add'))) return track('quick_add', { product: (m.closest('[data-tk-card]') || {}).dataset ? (m.closest('[data-tk-card]') || {}).dataset.title : '' });\n    if ((m = t.closest('.tk-plus'))) return track('quick_add_open');\n    if ((m = t.closest('[data-tk-tab]'))) return track('pdp_tab', { label: txt(m) });\n    if ((m = t.closest('.tk-swatch'))) return track('swatch_click', { label: m.getAttribute('title') });\n    if ((m = t.closest('.tk-chip'))) return track('chip_click', { label: txt(m) });\n    if ((m = t.closest('.tk-tab'))) return track('nav_tab', { label: txt(m) });\n    if ((m = t.closest('.tk-band__cta'))) return track('band_cta', { label: txt(m) });\n    if ((m = t.closest('[data-tk-bagbar-btn]'))) return track('bagbar_checkout');\n    if ((m = t.closest('[data-tk-satc-btn]'))) return track('sticky_atc');\n    if ((m = t.closest('[data-tk-more]'))) return track('load_more');\n    if ((m = t.closest('.tk-filter a, .tk-opt'))) return track('filter_click', { label: txt(m) });\n    if ((m = t.closest('[data-tk-reviews-link]'))) return track('stars_click');\n  }, true);\n  document.addEventListener('input', function (e) {\n    if (e.target && e.target.id === 'tk-q') { clearTimeout(window.__tkq); var v = e.target.value; window.__tkq = setTimeout(function () { if (v.length > 1) track('search_query', { q: v.slice(0, 60) }); }, 1200); }\n  });\n})();\n\n/* Little pulse on the bag count whenever the bag changes */\n(function () {\n  if (typeof subscribe !== 'function' || typeof PUB_SUB_EVENTS === 'undefined') return;\n  subscribe(PUB_SUB_EVENTS.cartUpdate, function () {\n    setTimeout(function () { var b = document.getElementById('cart-icon-bubble'); if (!b) return; b.classList.remove('tk-bump'); void b.offsetWidth; b.classList.add('tk-bump'); }, 300);\n  });\n})();\n\n/* Full search submit uses the same vocabulary (the box keeps what the shopper typed). */\ndocument.addEventListener('submit', function (e) {\n  var f = e.target; if (!f.matches || !f.matches('.tk-search__form') || !window.tkSearchRewrite) return;\n  var inp = f.querySelector('input[name=\"q\"]'); if (!inp) return;\n  var rq = window.tkSearchRewrite(inp.value || '');\n  if (rq && rq !== (inp.value || '').trim().toLowerCase()) {\n    e.preventDefault();\n    location.href = f.getAttribute('action') + '?q=' + encodeURIComponent(rq) + '&type=product&options%5Bprefix%5D=last&tk_q=' + encodeURIComponent(inp.value);\n  }\n}, true);\n\n/* Search page: show what the shopper typed when the query was translated */\n(function () {\n  var m = location.search.match(/[?&]tk_q=([^&]+)/); if (!m) return;\n  var typed = decodeURIComponent(m[1].replace(/\\+/g, ' '));\n  var h = document.querySelector('.tk-title'); if (h && typed) h.textContent = '\u201C' + typed + '\u201D';\n})();\n\n/* Yotpo reviews: drop auto-titles that just repeat the first words of the review, and hide \"not helpful\" counts. */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname)) return;\n  function norm(s) { return (s || '').replace(/[\\s.\u2026,!-]+$/g, '').replace(/\\s+/g, ' ').trim().toLowerCase(); }\n  function tidy(root) {\n    root.querySelectorAll('.yotpo-review').forEach(function (r) {\n      if (r.dataset.tkTidy) return; r.dataset.tkTidy = '1';\n      var t = r.querySelector('.yotpo-review-title, [class*=\"review-title\"]');\n      var b = r.querySelector('.yotpo-read-more-text, .yotpo-review-content, [class*=\"review-content\"]');\n      if (t && b) { var tt = norm(t.textContent), bb = norm(b.textContent); if (tt && bb.indexOf(tt) === 0) t.style.display = 'none'; }\n      r.querySelectorAll('button, [role=\"button\"]').forEach(function (el) {\n        var lbl = ((el.getAttribute('aria-label') || '') + ' ' + (el.className && el.className.baseVal === undefined ? el.className : '')).toLowerCase();\n        if (/vote[-_ ]?down|thumbs[-_ ]?down|not helpful|dislike/.test(lbl)) el.setAttribute('data-tk-downvote', '');\n      });\n    });\n  }\n  var t = null;\n  function run() { var w = document.querySelector('.yotpo-reviews-main-widget'); if (w) tidy(w); }\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { var tg = m[i].target; if (tg.nodeType === 1 && tg.closest && tg.closest('.yotpo-reviews-main-widget') && m[i].addedNodes.length) { clearTimeout(t); t = setTimeout(run, 120); return; } }\n    if (!document.querySelector('.yotpo-reviews-main-widget [data-tk-tidy]')) { clearTimeout(t); t = setTimeout(run, 300); }\n  }).observe(document.body, { childList: true, subtree: true });\n  run();\n})();\n\n/* Product page: options with only one choice (e.g. Style: Classic) show as text, not a full-width button. */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname)) return;\n  function run() {\n    document.querySelectorAll('pinfo-variant-picker .pinfo-options-values-wrapper').forEach(function (w) {\n      if (w.classList.contains('color-options') || w.dataset.tkSingle) return;\n      var radios = Array.prototype.filter.call(w.querySelectorAll('input[type=\"radio\"]'), function (r) {\n        var box = r.closest('.pinfo-option-value'); return !(box && box.classList.contains('hidden'));\n      });\n      if (radios.length !== 1) return;\n      w.dataset.tkSingle = '1';\n      w.classList.add('tk-single-values');\n      var lab = w.previousElementSibling;\n      while (lab && !lab.classList.contains('pinfo-option-label-wrapper')) lab = lab.previousElementSibling;\n      if (!lab) lab = w.parentElement && w.parentElement.querySelector('.pinfo-option-label-wrapper');\n      if (lab) {\n        lab.classList.add('tk-single-label');\n        var target = lab.querySelector('.pinfo-filter-label') || lab;\n        if (!target.querySelector('[data-tk-single-val]')) {\n          var s = document.createElement('span'); s.setAttribute('data-tk-single-val', '');\n          var v = radios[0].value || ((w.querySelector('label') || {}).textContent || '').trim();\n          s.textContent = ' ' + v.charAt(0) + v.slice(1).toLowerCase();\n          target.appendChild(s);\n        }\n      }\n    });\n  }\n  run();\n  var t = null;\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { var tg = m[i].target; if (tg.nodeType === 1 && tg.closest && tg.closest('pinfo-variant-picker') && m[i].addedNodes.length) { clearTimeout(t); t = setTimeout(run, 80); return; } }\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n\n/* Redo Checkout+ in the bag: find its pieces by what they say (Redo's own class names vary and may sit in a shadow root),\n   then hand them our classes: no icon, one-line description, BD-styled buttons. */\n(function () {\n  'use strict';\n  var CSS_IN_SHADOW = '.tk-redo-icon{display:none!important}.tk-redo-text{font-size:12px!important;line-height:1.4!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}' +\n    '.tk-redo-primary{display:flex!important;align-items:center;justify-content:center;width:100%!important;height:52px!important;border:0!important;border-radius:0!important;background:#30327F!important;color:#fff!important;font:600 11.5px/1 Montserrat,Arial,sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase!important}' +\n    '.tk-redo-secondary{display:flex!important;align-items:center;justify-content:center;width:100%!important;height:44px!important;margin-top:8px!important;border:1px solid #E6E6EA!important;border-radius:0!important;background:#fff!important;color:#1F2035!important;font:500 10.5px/1 Montserrat,Arial,sans-serif!important;letter-spacing:.12em!important;text-transform:uppercase!important}';\n  function all(root, sel) { var out = [].slice.call(root.querySelectorAll(sel)); root.querySelectorAll('*').forEach(function (el) { if (el.shadowRoot) out = out.concat(all(el.shadowRoot, sel)); }); return out; }\n  function tag(root) {\n    var foot = root.querySelector('cart-drawer .drawer__footer, .cart__footer, #main-cart-footer'); if (!foot) return;\n    all(foot, 'button, a, [role=\"button\"]').forEach(function (b) {\n      if (b.closest('.cart-drawer__dynamic-checkout, .tk-gap, .tk-gwp, .tk-bagbar')) return;\n      var t = (b.textContent || '').replace(/\\s+/g, ' ').trim().toLowerCase();\n      if (/^checkout\\s*\\+|shipping protection|add protection/.test(t)) b.classList.add('tk-redo-secondary');\n      else if (/^checkout\\b/.test(t) && b.id !== 'CartDrawer-Checkout') b.classList.add('tk-redo-primary');\n    });\n    all(foot, 'div, span, p').forEach(function (el) {\n      var t = (el.textContent || '').toLowerCase();\n      if (el.children.length < 6 && /package protection/.test(t) && /free returns/.test(t) && !el.querySelector('div')) el.classList.add('tk-redo-text');\n    });\n    all(foot, 'svg, img').forEach(function (ic) {\n      if (ic.closest('button, a, .tk-guarantee, .cart-drawer__dynamic-checkout, .tk-summary, .tk-eta')) return;\n      var box = ic.getBoundingClientRect();\n      var wrap = ic.parentElement;\n      var txt = wrap && wrap.closest ? (wrap.closest('div') || wrap).textContent.toLowerCase() : '';\n      if (box.width >= 20 && /checkout\\+|package protection/.test(txt)) {\n        var hide = (wrap && wrap.getBoundingClientRect().width <= box.width + 24) ? wrap : ic;\n        hide.classList.add('tk-redo-icon');\n      }\n    });\n    foot.querySelectorAll('*').forEach(function (el) {\n      if (el.shadowRoot && !el.shadowRoot.querySelector('style[data-tk]')) { var st = document.createElement('style'); st.setAttribute('data-tk', ''); st.textContent = CSS_IN_SHADOW; el.shadowRoot.appendChild(st); }\n    });\n  }\n  var t = null;\n  function run() { tag(document); }\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) {\n      var tg = m[i].target;\n      if (m[i].addedNodes.length && tg.nodeType === 1 && tg.closest && tg.closest('cart-drawer, #main-cart-footer, .cart__footer')) { clearTimeout(t); t = setTimeout(run, 150); return; }\n    }\n  }).observe(document.body, { childList: true, subtree: true });\n  document.addEventListener('DOMContentLoaded', run); setTimeout(run, 1500); setTimeout(run, 4000);\n})();\n\n/* Safety net: if the theme's own add-to-bag script didn't handle a product form (so the browser would jump to /cart),\n   add it in the background and open the bag drawer instead. Runs last, only when nothing else handled the submit. */\n(function () {\n  'use strict';\n  document.addEventListener('submit', function (e) {\n    var f = e.target;\n    if (e.defaultPrevented || !f || !f.action || !/\\/cart\\/add/.test(f.action)) return;\n    var drawer = document.querySelector('cart-drawer');\n    if (!drawer || typeof drawer.renderContents !== 'function') return;\n    e.preventDefault();\n    var fd = new FormData(f);\n    fd.append('sections', 'cart-drawer,cart-icon-bubble');\n    fd.append('sections_url', location.pathname);\n    var btn = f.querySelector('[type=\"submit\"]'); if (btn) btn.setAttribute('aria-busy', 'true');\n    fetch(((window.routes && window.routes.cart_add_url) || '/cart/add') + '.js', { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest', Accept: 'application/javascript' }, body: fd })\n      .then(function (r) { return r.json(); })\n      .then(function (res) {\n        if (res.status) { alert(res.description || res.message || 'Could not add to bag.'); return; }\n        drawer.classList.remove('is-empty');\n        drawer.renderContents(res);\n        if (window.tkRefreshOffers) window.tkRefreshOffers();\n        if (typeof publish === 'function' && typeof PUB_SUB_EVENTS !== 'undefined') publish(PUB_SUB_EVENTS.cartUpdate, { source: 'tk-fallback' });\n      })\n      .catch(function () { f.submit(); })\n      .finally(function () { if (btn) btn.removeAttribute('aria-busy'); });\n  }, false);\n})();\n\n/* Sticky Add to bag: track the button the shopper can actually see (mobile and desktop forms differ),\n   re-find it when the product form re-renders, and never show alongside another fixed add-to-bag bar. */\n(function () {\n  'use strict';\n  var bar = document.querySelector('[data-tk-satc]'); if (!bar) return;\n  var io = null, current = null;\n  function visibleReal() {\n    var list = document.querySelectorAll('.pinfo-add-to-cart, form[action*=\"/cart/add\"] [type=\"submit\"][name=\"add\"], .custom__atc-global-btn');\n    for (var i = 0; i < list.length; i++) { var el = list[i]; if (el.closest('[data-tk-satc]')) continue; if (el.offsetParent !== null && getComputedStyle(el).visibility !== 'hidden') return el; }\n    return null;\n  }\n  function otherFixedBar() {\n    var list = document.querySelectorAll('button, a');\n    for (var i = 0; i < list.length; i++) {\n      var el = list[i]; if (el.closest('[data-tk-satc], cart-drawer, .tk-menu, .tk-sheet')) continue;\n      if (!/add to (bag|cart)/i.test(el.textContent || '')) continue;\n      var n = el; while (n && n !== document.body) { var p = getComputedStyle(n).position; if (p === 'fixed' || p === 'sticky') { var r = el.getBoundingClientRect(); if (r.height > 0 && r.top < innerHeight && r.bottom > 0 && p === 'fixed') return true; break; } n = n.parentElement; }\n    }\n    return false;\n  }\n  function watch() {\n    var real = visibleReal(); if (!real || real === current) return;\n    current = real; if (io) io.disconnect();\n    io = new IntersectionObserver(function (en) {\n      var show = !en[0].isIntersecting && !otherFixedBar();\n      bar.hidden = !show; document.documentElement.classList.toggle('tk-satc-on', show);\n    }, { threshold: 0 });\n    io.observe(real);\n  }\n  watch();\n  var t = null;\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { var tg = m[i].target; if (m[i].addedNodes.length && tg.nodeType === 1 && tg.closest && tg.closest('product-info, .pinfo-wrapper, form[action*=\"/cart/add\"], product-info-content')) { clearTimeout(t); t = setTimeout(watch, 150); return; } }\n  }).observe(document.body, { childList: true, subtree: true });\n  window.addEventListener('resize', function () { clearTimeout(t); t = setTimeout(function () { current = null; watch(); }, 200); });\n})();\n\n/* Collection pages: filters, sort and \"clear\" update the grid in place (no full page reload, scroll kept). */\n(function () {\n  'use strict';\n  var SEC = 'shopify-section-takeover-collection';\n  function root() { return document.getElementById(SEC); }\n  if (!root()) return;\n  var busy = false;\n  function go(url, push) {\n    var r = root(); if (!r || busy) return;\n    busy = true; r.setAttribute('aria-busy', 'true'); r.classList.add('tk-loading');\n    var u = new URL(url, location.href); var fetchUrl = new URL(u); fetchUrl.searchParams.set('section_id', 'takeover-collection');\n    var y = window.scrollY;\n    fetch(fetchUrl.toString(), { headers: { Accept: 'text/html' } })\n      .then(function (res) { if (!res.ok) throw new Error(res.status); return res.text(); })\n      .then(function (html) {\n        var doc = new DOMParser().parseFromString(html, 'text/html');\n        var fresh = doc.getElementById(SEC) || doc.querySelector('.shopify-section');\n        if (!fresh) throw new Error('no section');\n        r.innerHTML = fresh.innerHTML;\n        if (push) history.pushState({ tk: 1 }, '', u.pathname + u.search);\n        window.scrollTo(0, y);\n        if (window.tkTrack) window.tkTrack('filter_apply', { url: u.search.slice(0, 120) });\n      })\n      .catch(function () { location.href = u.toString(); })\n      .finally(function () { busy = false; var n = root(); if (n) { n.removeAttribute('aria-busy'); n.classList.remove('tk-loading'); } });\n  }\n  document.addEventListener('click', function (e) {\n    var a = e.target.closest && e.target.closest('#' + SEC + ' .tk-opt, #' + SEC + ' .tk-active a, #' + SEC + ' .tk-active__clear');\n    if (!a || e.metaKey || e.ctrlKey || e.shiftKey) return;\n    e.preventDefault();\n    var d = a.closest('details'); if (d) d.open = false;\n    go(a.href, true);\n  });\n  document.addEventListener('change', function (e) {\n    var s = e.target; if (!s.matches || !s.matches('#' + SEC + ' [data-tk-sort]')) return;\n    var f = s.form; var u = new URL(f.action, location.href);\n    new URLSearchParams(location.search).forEach(function (v, k) { if (k !== 'sort_by' && k !== 'page') u.searchParams.append(k, v); });\n    u.searchParams.set('sort_by', s.value);\n    go(u.toString(), true);\n  });\n  window.addEventListener('popstate', function () { go(location.href, false); });\n})();\n\n/* Product page: put the star rating directly under the product title (both the phone and desktop layouts). */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname)) return;\n  function place() {\n    /* after placing, hide any other copy that is still visible (the theme renders one per layout) */\n    setTimeout(function () {\n      var placed = [].filter.call(document.querySelectorAll('.tk-stars-under-title'), function (x) { return x.offsetParent !== null; });\n      if (!placed.length) return;\n      document.querySelectorAll('.pinfo-app-block').forEach(function (b) {\n        if (b.classList.contains('tk-stars-under-title')) return;\n        if (b.querySelector('[class*=\"yotpo\"], [class*=\"star\"]') && b.offsetParent !== null) b.classList.add('tk-stars-dup');\n      });\n    }, 60);\n    document.querySelectorAll('.pinfo-app-block').forEach(function (stars) {\n      if (stars.dataset.tkPlaced) return;\n      if (!stars.querySelector('[class*=\"yotpo\"], [class*=\"star\"], .ruk_rating_snippet')) return;\n      if (stars.offsetParent === null) return; /* only move the copy that is visible at this screen size */\n      var scope = stars.closest('.pinfo-top, product-info-content, .product-info-content, .pinfo-content-sm, .pinfo-content-lg') || stars.parentElement;\n      var title = scope && (scope.querySelector('.pd-title-wrapper') || scope.querySelector('h1.pinfo-title'));\n      if (!title) return;\n      var anchor = title.closest('.pd-title-wrapper') || title;\n      anchor.insertAdjacentElement('afterend', stars);\n      stars.dataset.tkPlaced = '1';\n      stars.classList.add('tk-stars-under-title');\n    });\n  }\n  place();\n  var t = null;\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { if (m[i].addedNodes.length && m[i].target.nodeType === 1 && m[i].target.closest && m[i].target.closest('.pinfo-wrapper, product-info-content, .pinfo-app-block')) { clearTimeout(t); t = setTimeout(place, 120); return; } }\n  }).observe(document.body, { childList: true, subtree: true });\n  setTimeout(place, 1200); setTimeout(place, 3000);\n})();\n\nwindow.tkVisibleBundle = function () {\n  var list = document.querySelectorAll('.sb-bundle');\n  for (var i = 0; i < list.length; i++) { if (list[i].offsetParent !== null) return list[i]; }\n  return list[0] || null;\n};\n/* Bundles: show each piece's value, a \"what you get\" line, and pre-select the shopper's usual size. */\n(function () {\n  'use strict';\n  var KEY = 'tk_size';\n  var SIZES = ['XXS', 'XS', 'SML', 'MED', 'LRG', 'XLG', '2XL', '3XL', '4XL', 'S', 'M', 'L', 'XL', 'XXL'];\n  function norm(s) {\n    s = (s || '').toUpperCase().replace(/\\s+/g, '').trim();\n    var map = { S: 'SML', SMALL: 'SML', M: 'MED', MEDIUM: 'MED', L: 'LRG', LARGE: 'LRG', XL: 'XLG', XLARGE: 'XLG', XXL: '2XL' };\n    return map[s] || s;\n  }\n  function remember(v) { v = norm(v); if (/^(XXS|XS|SML|MED|LRG|XLG|[2-4]XL)$/.test(v)) { try { localStorage.setItem(KEY, v); } catch (e) {} } }\n  function saved() { try { return localStorage.getItem(KEY) || ''; } catch (e) { return ''; } }\n\n  /* learn the size from what shoppers pick anywhere on the site, and from Wair's \"Your size\" */\n  document.addEventListener('change', function (e) {\n    var t = e.target; if (!t || t.type !== 'radio') return;\n    var n = (t.name || '').toLowerCase(); if (n.indexOf('size') > -1) remember(t.value);\n  });\n  document.addEventListener('click', function (e) {\n    var b = e.target.closest && e.target.closest('.sb-size, .tk-qa__btn, .tk-gwp__size, .tk-sheet [data-size]');\n    if (b && !b.disabled) remember(b.getAttribute('data-size') || b.textContent);\n  });\n  function readWair() {\n    var el = document.querySelector('[class*=\"wair\" i], .size-guide-wair-wrapper');\n    if (!el) return;\n    var m = (el.textContent || '').match(/your size:?\\s*([A-Z0-9]{1,4})/i);\n    if (m) remember(m[1]);\n  }\n\n  function enhance() {\n    var root = window.tkVisibleBundle(); if (!root) return;\n    var piecesEl = document.querySelector('[data-tk-bundle-pieces]');\n    var pieces = []; try { pieces = JSON.parse(piecesEl ? piecesEl.textContent : '[]'); } catch (e) {}\n    var priceEl = document.querySelector('[data-tk-bundle-price]');\n    var bprice = 0; try { bprice = JSON.parse(priceEl ? priceEl.textContent : '0'); } catch (e) {}\n    var tkSh = document.getElementById('tk-sheet'); var nc = !!(tkSh && tkSh.hasAttribute('data-nocents'));\n    var fmt = function (v) { return '$' + v.toLocaleString('en-US', { minimumFractionDigits: v % 1 ? 2 : 0, maximumFractionDigits: 2 }); };\n    var money = function (c) { var v = c / 100; return fmt(nc ? Math.ceil(v) : v); };\n    var saveMoney = function (c) { var v = c / 100; return fmt(nc ? Math.floor(v) : v); };\n    /* value under each piece name */\n    var panel = root.querySelector('.sb-bundle__panel:not([hidden])') || root;\n    panel.querySelectorAll('.sb-bundle__item').forEach(function (it) {\n      if (it.querySelector('.tk-piece-value')) return;\n      var nameEl = it.querySelector('.sb-bundle__name'); if (!nameEl) return;\n      var nm = nameEl.textContent.trim().toLowerCase();\n      var p = pieces.filter(function (x) { return (x.title || '').toLowerCase() === nm; })[0];\n      if (p && p.price) { var s = document.createElement('span'); s.className = 'tk-piece-value'; s.textContent = money(p.price) + ' value'; nameEl.insertAdjacentElement('afterend', s); }\n    });\n    /* summary line */\n    var oldLine = document.querySelector('.tk-bundle-value');\n    if (oldLine && oldLine.nextElementSibling !== root && !(oldLine.nextElementSibling && oldLine.nextElementSibling.matches('.tk-setview') && oldLine.nextElementSibling.nextElementSibling === root)) { oldLine.remove(); oldLine = null; }\n    if (pieces.length > 1 && !oldLine) {\n      var total = pieces.reduce(function (a, x) { return a + (x.price || 0); }, 0);\n      var line = document.createElement('p'); line.className = 'tk-bundle-value';\n      line.innerHTML = '<strong>' + pieces.length + ' pieces</strong> \u00B7 ' + money(total) + ' if bought separately' + (bprice ? ' \u00B7 yours for <strong>' + money(bprice) + '</strong> <em>(save ' + saveMoney(total - (nc ? Math.ceil(bprice / 100) * 100 : bprice)) + ')</em>' : '');\n      root.insertAdjacentElement('beforebegin', line);\n    }\n    /* pre-select the shopper's size on every piece (only once per page, only if that size is available) */\n    var want = saved();\n    if (want && !root.dataset.tkSized) {\n      var done = false;\n      panel.querySelectorAll('.sb-bundle__group').forEach(function (grp) {\n        var l = ((grp.querySelector('.sb-bundle__label') || {}).textContent || '').toLowerCase();\n        if (l.indexOf('size') === -1) return;\n        var btn = [].filter.call(grp.querySelectorAll('[data-sb-option], .sb-size'), function (b) { return norm(b.getAttribute('data-value') || b.textContent) === want && !b.disabled && b.getAttribute('aria-disabled') !== 'true'; })[0];\n        if (btn && btn.getAttribute('aria-checked') !== 'true') { btn.click(); done = true; }\n      });\n      root.dataset.tkSized = '1';\n    }\n  }\n  readWair();\n  var t = null;\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { var tg = m[i].target; if ((m[i].addedNodes.length || m[i].type === 'attributes') && tg.nodeType === 1 && tg.closest && (tg.closest('.sb-bundle') || tg.closest('[class*=\"wair\" i]'))) { clearTimeout(t); t = setTimeout(function () { readWair(); enhance(); }, 120); return; } }\n  }).observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['hidden'] });\n  setTimeout(enhance, 600); setTimeout(enhance, 2000);\n})();\n\n/* Bundles: live \"Your set\" preview. Shows every piece in the color the shopper picked and updates the moment a swatch changes. */\n(function () {\n  'use strict';\n  function data() { var el = document.querySelector('[data-tk-bundle-looks]'); if (!el) return null; try { return JSON.parse(el.textContent); } catch (e) { return null; } }\n  var looks = null;\n  function activePanel() {\n    var b = window.tkVisibleBundle(); if (!b) return null;\n    return b.querySelector('.sb-bundle__panel:not([hidden])') || b;\n  }\n  function selections() {\n    var out = [], panel = activePanel(); if (!panel) return out;\n    panel.querySelectorAll('.sb-bundle__item').forEach(function (it) {\n      if (it.offsetParent === null && it.closest('[hidden]')) return;\n      var name = ((it.querySelector('.sb-bundle__name') || {}).textContent || '').trim();\n      /* the color group: the one with round swatches, otherwise the first group that isn't sizes */\n      var groups = it.querySelectorAll('.sb-bundle__group');\n      var cg = null;\n      groups.forEach(function (g) { if (!cg && g.querySelector('.sb-swatch')) cg = g; });\n      if (!cg) groups.forEach(function (g) { var l = ((g.querySelector('.sb-bundle__label') || {}).textContent || '').toLowerCase(); if (!cg && l.indexOf('size') === -1) cg = g; });\n      var sel = cg ? cg.querySelector('[data-sb-option][aria-checked=\"true\"]') : null;\n      var color = sel ? (sel.getAttribute('data-value') || sel.getAttribute('title') || '') : '';\n      var photo = sel ? (sel.getAttribute('data-image') || '') : '';\n      if (!photo) { var th = it.querySelector('[data-sb-thumb]'); photo = th ? (th.currentSrc || th.getAttribute('src') || '') : ''; }\n      out.push({ name: name, color: color.trim().toUpperCase(), photo: photo });\n    });\n    return out;\n  }\n  function imgFor(sel) {\n    if (looks) {\n      var key = Object.keys(looks).filter(function (k) { return k.toLowerCase() === sel.name.toLowerCase(); })[0];\n      var L = key ? looks[key] : null;\n      if (L && L.colors && L.colors[sel.color]) return L.colors[sel.color];\n    }\n    var src = sel.photo || (looks && looks[sel.name] && looks[sel.name].default) || '';\n    /* the picker's thumbnails are 400px; ask Shopify's CDN for a sharper size for the big tiles */\n    return src.replace(/([?&])width=\\d+/, '$1width=1000').replace(/_(\\d{2,4})x(\\d{2,4})?\\./, '_1000x.');\n  }\n  function titleCase(s) { return s.toLowerCase().replace(/\\b\\w/g, function (c) { return c.toUpperCase(); }); }\n  function render() {\n    looks = looks || data();\n    var sels = selections(); if (sels.length < 2) return;\n    var box = document.querySelector('[data-tk-set-preview]');\n    var vb = window.tkVisibleBundle();\n    /* On bundle pages the set preview takes over the product image area (the static gallery is hidden). */\n    var host = document.querySelector('product-info-media');\n    var useHero = !!(host && vb);\n    if (box && useHero && box.parentElement !== host) { box.remove(); box = null; }\n    if (box && !useHero && vb && box.nextElementSibling !== vb) { box.remove(); box = null; }\n    if (!box && useHero) {\n      box = document.createElement('figure'); box.className = 'tk-setview tk-setview--hero'; box.setAttribute('data-tk-set-preview', '');\n      box.innerHTML = '<p class=\"tk-setview__hint\">Your set <span>\u00B7 tap a color to see it here</span></p><div class=\"tk-setview__stage\" data-n=\"' + sels.length + '\"></div><figcaption class=\"tk-setview__cap\"></figcaption>';\n      host.insertBefore(box, host.firstChild);\n      host.classList.add('tk-has-setview');\n      document.documentElement.classList.add('tk-setview-on');\n    }\n    if (!box) {\n      box = document.createElement('figure'); box.className = 'tk-setview'; box.setAttribute('data-tk-set-preview', '');\n      box.innerHTML = '<div class=\"tk-setview__stage\" data-n=\"' + sels.length + '\"><span class=\"tk-setview__plus\" aria-hidden=\"true\">+</span></div><figcaption class=\"tk-setview__cap\"></figcaption>';\n      /* sits in the buy box right above the piece pickers, so it never disturbs the product gallery */\n      var b = window.tkVisibleBundle(); if (!b) return;\n      b.insertAdjacentElement('beforebegin', box);\n    }\n    var stage = box.querySelector('.tk-setview__stage'); stage.setAttribute('data-n', sels.length);\n    sels.forEach(function (s, i) {\n      var src = imgFor(s); var slot = stage.querySelectorAll('.tk-setview__piece')[i];\n      if (!slot) { slot = document.createElement('div'); slot.className = 'tk-setview__piece'; slot.innerHTML = '<img alt=\"\" decoding=\"async\">'; stage.appendChild(slot); }\n      var img = slot.querySelector('img');\n      if (src && img.getAttribute('src') !== src) { slot.classList.add('is-swapping'); img.onload = function () { slot.classList.remove('is-swapping'); }; img.src = src; }\n      img.alt = s.name + (s.color ? ' in ' + titleCase(s.color) : '');\n      var lab = slot.querySelector('.tk-setview__label');\n      if (!lab) { lab = document.createElement('span'); lab.className = 'tk-setview__label'; slot.appendChild(lab); }\n      lab.innerHTML = '<b>' + s.name.replace(/</g, '&lt;') + '</b>' + (s.color ? ' \u00B7 ' + titleCase(s.color) : '');\n    });\n    var all = stage.querySelectorAll('.tk-setview__piece');\n    for (var k = sels.length; k < all.length; k++) all[k].remove();\n    box.querySelector('.tk-setview__cap').innerHTML = '<span>Your set</span> ' + sels.map(function (s) { return '<b>' + s.name + '</b>' + (s.color ? ' \u00B7 ' + titleCase(s.color) : ''); }).join('<i>+</i>');\n  }\n  var t = null;\n  function soon() { clearTimeout(t); t = setTimeout(render, 60); }\n  document.addEventListener('click', function (e) { if (e.target.closest && e.target.closest('.sb-bundle [data-sb-option], .sb-swatch')) setTimeout(render, 40); });\n  document.addEventListener('change', function (e) { if (e.target.closest && e.target.closest('.pinfo-variants-options, variant-selects, [name=\"id\"]')) setTimeout(render, 300); });\n  new MutationObserver(function (m) {\n    for (var i = 0; i < m.length; i++) { var tg = m[i].target; if (tg.nodeType === 1 && tg.closest && tg.closest('.sb-bundle')) { soon(); return; } }\n  }).observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['aria-checked', 'hidden'] });\n  setTimeout(render, 700); setTimeout(render, 2000);\n  window.addEventListener('resize', function () { clearTimeout(t); t = setTimeout(render, 250); });\n})();\n\n/* Tapping a tile in the set jumps to that piece's color picker. */\ndocument.addEventListener('click', function (e) {\n  var tile = e.target.closest && e.target.closest('.tk-setview__piece'); if (!tile) return;\n  var idx = [].indexOf.call(tile.parentElement.querySelectorAll('.tk-setview__piece'), tile);\n  var b = window.tkVisibleBundle && window.tkVisibleBundle(); if (!b) return;\n  var panel = b.querySelector('.sb-bundle__panel:not([hidden])') || b;\n  var item = panel.querySelectorAll('.sb-bundle__item')[idx];\n  if (item) { item.scrollIntoView({ behavior: 'smooth', block: 'center' }); item.classList.add('tk-flash'); setTimeout(function () { item.classList.remove('tk-flash'); }, 1200); }\n});\n\n/* Outline Shop Pay button: send the selected variant + quantity straight to Shop Pay checkout */\n(function () {\n  document.addEventListener('click', function (e) {\n    var a = e.target.closest('[data-tk-shoppay]');\n    if (!a) return;\n    var form = a.closest('form') || document.querySelector('form[action*=\"/cart/add\"]');\n    if (!form) return;\n    var idEl = form.querySelector('[name=\"id\"]');\n    var submit = form.querySelector('[type=\"submit\"]');\n    if (!idEl || !idEl.value || (submit && submit.disabled)) {\n      e.preventDefault();\n      var picker = document.querySelector('pinfo-variant-picker');\n      if (picker) picker.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      return;\n    }\n    var qEl = form.querySelector('[name=\"quantity\"]');\n    var q = Math.max(1, parseInt(qEl && qEl.value, 10) || 1);\n    var url = '/cart/' + encodeURIComponent(idEl.value) + ':' + q + '?payment=shop_pay';\n    if (a.dataset.discount) url += '&discount=' + encodeURIComponent(a.dataset.discount);\n    e.preventDefault();\n    window.location.href = url;\n  });\n})();\n\n/* Menu best-sellers rail: arrow buttons (desktop has no swipe) */\n(function () {\n  document.addEventListener('click', function (e) {\n    var b = e.target.closest('[data-tk-rail]');\n    if (!b) return;\n    var rail = document.getElementById(b.getAttribute('aria-controls'));\n    if (!rail) return;\n    var li = rail.querySelector('li');\n    var step = li ? (li.getBoundingClientRect().width + 8) * 2 : 300;\n    rail.scrollBy({ left: step * parseInt(b.dataset.tkRail, 10), behavior: 'smooth' });\n  });\n})();\n\n/* Click outside to close: menu, bag, offer details. Dim the page while offer details are open. */\n(function () {\n  var dim = document.createElement('div');\n  dim.className = 'tk-dim'; dim.hidden = true; dim.setAttribute('aria-hidden', 'true');\n  document.body.appendChild(dim);\n\n  /* Offer details: keep the dim layer in sync with the panel */\n  var details = document.querySelector('.tk-offerbar__details');\n  function syncOffer() {\n    var on = details && !details.hidden;\n    dim.hidden = !on;\n    document.documentElement.classList.toggle('tk-offer-open', !!on);\n  }\n  if (details && 'MutationObserver' in window) {\n    new MutationObserver(syncOffer).observe(details, { attributes: true, attributeFilter: ['hidden'] });\n  }\n  dim.addEventListener('click', function () {\n    if (details && !details.hidden) {\n      details.hidden = true;\n      var b = document.querySelector('[data-tk-offer-toggle]');\n      if (b) b.setAttribute('aria-expanded', 'false');\n    }\n  });\n\n  document.addEventListener('click', function (e) {\n    /* Menu: anything outside the panel closes it */\n    var menu = document.querySelector('[data-tk-menu]');\n    if (menu && menu.open && menu.contains(e.target) && !e.target.closest('.tk-menu__panel')) {\n      var x = menu.querySelector('[data-tk-menu-close]'); if (x) x.click();\n      return;\n    }\n    /* Bag: anything outside the drawer panel closes it */\n    var cd = document.querySelector('cart-drawer');\n    if (cd && cd.classList.contains('active') && typeof cd.close === 'function') {\n      if (cd.contains(e.target) && !e.target.closest('.drawer__inner')) { cd.close(); }\n    }\n  });\n})();\n\n/* ===== Takeover card: colour swatches swap photo, price, link and sizes (alpha behaviour) ===== */\n(function () {\n  'use strict';\n  var WIDTHS = [400, 600, 800, 1200, 1600];\n\n  function sized(url, w) {\n    try { var u = new URL(url, location.href); u.searchParams.set('width', w); return u.toString(); }\n    catch (e) { return url; }\n  }\n  function srcset(url) {\n    return WIDTHS.map(function (w) { return sized(url, w) + ' ' + w + 'w'; }).join(', ');\n  }\n  function data(card) {\n    if (!card.__tk) {\n      var c = card.querySelector('[data-tk-colors]');\n      var v = card.querySelector('[data-tk-variants]');\n      var colors = {}, variants = [];\n      try { colors = c ? JSON.parse(c.textContent) : {}; } catch (e) {}\n      try { variants = (v ? JSON.parse(v.textContent) : []).filter(function (x) { return x[0]; }); } catch (e) {}\n      card.__tk = { colors: colors, variants: variants };\n    }\n    return card.__tk;\n  }\n\n  /* Tuple: [id, color, size, final, struck, label, available, url] */\n  function setMain(card, url) {\n    var img = card.querySelector('[data-tk-primary]');\n    if (!img || !url) return;\n    img.src = sized(url, 900);\n    img.srcset = srcset(url);\n  }\n  function setHover(card, c) {\n    var link = card.querySelector('.tk-card__media');\n    if (!link) return;\n    link.querySelectorAll('.tk-card__img--hover, .tk-card__hover-video').forEach(function (n) { n.remove(); });\n    if (c[4]) {\n      var img = document.createElement('img');\n      img.className = 'tk-card__img tk-card__img--hover';\n      img.alt = ''; img.width = 600; img.height = 750; img.decoding = 'async';\n      img.onload = function () { img.classList.add('is-loaded'); };\n      img.src = sized(c[4], 600);\n      card.dataset.hoverLoaded = '1';\n      link.appendChild(img);\n    } else if (c[5]) {\n      var vid = document.createElement('video');\n      vid.className = 'tk-card__hover-video';\n      vid.src = c[5]; vid.muted = true; vid.loop = true; vid.playsInline = true; vid.preload = 'metadata';\n      link.appendChild(vid);\n    }\n  }\n  function renderPrice(el, v) {\n    el.textContent = '';\n    if (v[4]) {\n      var sale = document.createElement('span');\n      sale.className = 'tk-card__sale'; sale.textContent = v[3];\n      var was = document.createElement('s'); was.textContent = v[4];\n      el.appendChild(sale);\n      el.appendChild(document.createTextNode(' '));\n      el.appendChild(was);\n      if (v[5]) {\n        var save = document.createElement('span');\n        save.className = 'tk-card__save'; save.textContent = v[5];\n        el.appendChild(save);\n      }\n    } else {\n      el.textContent = v[3];\n    }\n  }\n\n  function selectColor(card, key) {\n    var d = data(card);\n    var list = d.variants.filter(function (v) { return v[1] === key; });\n    if (!list.length) return;\n    var pick = list.filter(function (v) { return v[6]; })[0] || list[0];\n    var c = d.colors[key] || [];\n\n    card.dataset.tkSelected = key;\n    card.dataset.url = pick[7];\n\n    card.querySelectorAll('[data-tk-swatch]').forEach(function (s) {\n      var on = s.getAttribute('data-tk-swatch') === key;\n      s.setAttribute('aria-pressed', on ? 'true' : 'false');\n      s.classList.toggle('is-selected', on);\n    });\n    card.querySelectorAll('[data-tk-link]').forEach(function (a) { a.setAttribute('href', pick[7]); });\n\n    var price = card.querySelector('[data-tk-price]');\n    if (price) renderPrice(price, pick);\n\n    var row = card.querySelector('[data-tk-qa-row]');\n    if (row) {\n      row.innerHTML = '';\n      list.forEach(function (v) {\n        var b = document.createElement('button');\n        b.type = 'button';\n        b.className = 'tk-qa__btn';\n        b.setAttribute('data-tk-add', '');\n        b.setAttribute('data-id', v[0]);\n        b.setAttribute('aria-label', 'Add ' + card.dataset.title + ', size ' + v[2]);\n        if (!v[6]) b.disabled = true;\n        b.textContent = v[2];\n        row.appendChild(b);\n      });\n    }\n    var label = card.querySelector('[data-tk-qa-label]');\n    if (label) label.textContent = 'Add to bag' + (c[0] ? ' \u2014 ' + c[0] : '');\n\n    if (c.length && !card.querySelector('.tk-card__video')) {\n      if (c[3]) { setMain(card, c[3]); card.dataset.img = sized(c[3], 240); }\n      setHover(card, c);\n    }\n\n    var selectedLabel = card.querySelector('[data-tk-selected-color]');\n    if (selectedLabel) selectedLabel.textContent = key;\n  }\n\n  /* Click a swatch: switch colour, stop the link from navigating */\n  document.addEventListener('click', function (e) {\n    var s = e.target.closest && e.target.closest('[data-tk-swatch]');\n    if (s) {\n      var card = s.closest('[data-tk-card]');\n      if (!card) return;\n      e.preventDefault();\n      e.stopPropagation();\n      selectColor(card, s.getAttribute('data-tk-swatch'));\n      return;\n    }\n    var t = e.target.closest && e.target.closest('[data-tk-video-toggle]');\n    if (t) {\n      e.preventDefault();\n      e.stopPropagation();\n      var v = t.parentElement.querySelector('video');\n      if (!v) return;\n      if (v.paused) v.play().catch(function () {}); else v.pause();\n      t.classList.toggle('paused', v.paused);\n    }\n  });\n\n  /* Hover a swatch: preview its photo. Leaving the swatches: back to the selected colour. */\n  document.addEventListener('mouseover', function (e) {\n    var s = e.target.closest && e.target.closest('[data-tk-swatch]');\n    if (s) {\n      var card = s.closest('[data-tk-card]');\n      if (!card || card.querySelector('.tk-card__video')) return;\n      var c = data(card).colors[s.getAttribute('data-tk-swatch')];\n      if (c && c[3]) setMain(card, c[3]);\n      return;\n    }\n    var m = e.target.closest && e.target.closest('.tk-card__media');\n    if (m) {\n      var hv = m.querySelector('.tk-card__hover-video');\n      if (hv && hv.paused) hv.play().catch(function () {});\n    }\n  });\n  document.addEventListener('mouseout', function (e) {\n    var list = e.target.closest && e.target.closest('.tk-swatches');\n    if (list && !(e.relatedTarget && list.contains(e.relatedTarget))) {\n      var card = list.closest('[data-tk-card]');\n      if (card && !card.querySelector('.tk-card__video')) {\n        var c = data(card).colors[card.dataset.tkSelected];\n        if (c && c[3]) setMain(card, c[3]);\n      }\n    }\n    var m = e.target.closest && e.target.closest('.tk-card__media');\n    if (m && !(e.relatedTarget && m.contains(e.relatedTarget))) {\n      var hv = m.querySelector('.tk-card__hover-video');\n      if (hv) { hv.pause(); hv.currentTime = 0; }\n    }\n  });\n})();\n\n/* Installments: copy Shopify's monthly amount into \"or from $X/mo at checkout\" */\n(function () {\n  'use strict';\n  if (!document.querySelector('.pinfo-wrapper')) return;\n  var sheet = document.getElementById('tk-sheet');\n  var nocents = !!(sheet && sheet.hasAttribute('data-nocents'));\n  function amount(box) {\n    var el = box.querySelector('shopify-payment-terms');\n    if (!el) return null;\n    var txt = ((el.shadowRoot && el.shadowRoot.textContent) || '') + ' ' + (el.textContent || '');\n    var m = txt.match(/\\$\\s?([\\d,]+(?:\\.\\d{1,2})?)\\s*\\/\\s*mo/i);\n    return m ? parseFloat(m[1].replace(/,/g, '')) : null;\n  }\n  function fill() {\n    document.querySelectorAll('.tk-installments--short').forEach(function (box) {\n      var line = box.querySelector('[data-tk-inst]');\n      if (!line || line.dataset.done) return;\n      var a = amount(box);\n      if (a == null) return;\n      var shown = nocents ? '$' + Math.ceil(a).toLocaleString('en-US') : '$' + a.toFixed(2);\n      line.textContent = 'or from ' + shown + '/mo at checkout';\n      line.hidden = false;\n      line.dataset.done = '1';\n    });\n  }\n  var iv = null, tries = 0, deb = null;\n  function poll() {\n    tries = 0;\n    if (iv) return;\n    iv = setInterval(function () {\n      fill();\n      var pending = document.querySelector('.tk-installments--short [data-tk-inst]:not([data-done])');\n      if (!pending || ++tries > 40) { clearInterval(iv); iv = null; }\n    }, 250);\n  }\n  poll();\n  /* the price block re-renders when the colour or size changes */\n  new MutationObserver(function () { clearTimeout(deb); deb = setTimeout(poll, 150); })\n    .observe(document.querySelector('.pinfo-wrapper'), { childList: true, subtree: true });\n})();\n\n/* Product page: show the chosen value next to every option label (Style: Classic), not only Size */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname)) return;\n  function sync() {\n    document.querySelectorAll('pinfo-variant-picker .pinfo-variants-options.others-variant').forEach(function (g) {\n      if (g.querySelector('.size___wrap')) return;\n      var span = g.querySelector('.pinfo-selected-value');\n      var on = g.querySelector('input[type=\"radio\"]:checked');\n      if (span && on && !span.textContent.trim()) span.textContent = ' ' + on.value.charAt(0) + on.value.slice(1).toLowerCase();\n      else if (span && on && span.dataset.tkSync !== on.value) { span.textContent = ' ' + on.value.charAt(0) + on.value.slice(1).toLowerCase(); }\n      if (span && on) span.dataset.tkSync = on.value;\n    });\n  }\n  sync();\n  document.addEventListener('change', function (e) { if (e.target.closest && e.target.closest('pinfo-variant-picker')) setTimeout(sync, 0); });\n  var t = null;\n  new MutationObserver(function () { clearTimeout(t); t = setTimeout(sync, 120); })\n    .observe(document.querySelector('.pinfo-wrapper') || document.body, { childList: true, subtree: true });\n})();\n\n/* Product page: keep the \"Buy more, save more\" block (tiers + \"Add this\u2026\" line) in step with the bag */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname) || !document.querySelector('.tk-pdpoffer')) return;\n  var busy = false, again = false;\n  function update() {\n    if (busy) { again = true; return; }\n    busy = true;\n    var u = location.pathname + location.search + (location.search ? '&' : '?') + 'sections=takeover-pdp-offer';\n    fetch(u, { credentials: 'same-origin' }).then(function (r) { return r.json(); }).then(function (j) {\n      var html = j && j['takeover-pdp-offer'];\n      if (!html) return;\n      var d = document.createElement('div'); d.innerHTML = html;\n      var fresh = d.querySelector('.tk-pdpoffer');\n      document.querySelectorAll('.tk-pdpoffer').forEach(function (old) {\n        if (fresh) old.replaceWith(fresh.cloneNode(true)); else old.hidden = true;\n      });\n      document.dispatchEvent(new CustomEvent('tk:pdpoffer-updated'));\n    }).catch(function () {}).then(function () { busy = false; if (again) { again = false; update(); } });\n  }\n  if (typeof subscribe === 'function' && typeof PUB_SUB_EVENTS !== 'undefined') subscribe(PUB_SUB_EVENTS.cartUpdate, update);\n  document.addEventListener('cart:updated', update);\n  var prev = window.tkRefreshOffers;\n  window.tkRefreshOffers = function () { if (prev) prev.apply(this, arguments); update(); };\n})();\n\n/* Product page: if the reviews app shows no star rating (e.g. bundles before the review sync), show the theme's own stars from the product's rating fields */\n(function () {\n  'use strict';\n  if (!/\\/products\\//.test(location.pathname)) return;\n  function check() {\n    var fbs = document.querySelectorAll('[data-tk-stars-fallback]');\n    if (!fbs.length) return;\n    var live = [].some.call(document.querySelectorAll('.pinfo-app-block, .tk-stars-under-title'), function (b) {\n      return b.offsetParent !== null && /\\d/.test(b.textContent || '') && b.querySelector('[class*=\"yotpo\"], [class*=\"star\"]');\n    });\n    fbs.forEach(function (f) { f.hidden = live; });\n  }\n  setTimeout(check, 3500); setTimeout(check, 7000);\n})();\n\n/* Bundles: one combined reviews module built from each piece's Yotpo reviews (until Yotpo shows the group's reviews on the bundle itself).\n   Uses Yotpo's public widget API (the same one their widgets read), so ratings and reviews are exactly what each product page shows. */\n(function () {\n  'use strict';\n  var piecesEl = document.querySelector('[data-tk-bundle-pieces]');\n  if (!piecesEl) return;\n  var pieces = []; try { pieces = JSON.parse(piecesEl.textContent || '[]'); } catch (e) {}\n  pieces = pieces.filter(function (p) { return p && p.id; });\n  if (!pieces.length) return;\n  function appKey() {\n    var ss = document.querySelectorAll('script[src*=\"yotpo\"]');\n    for (var i = 0; i < ss.length; i++) {\n      var m = ss[i].src.match(/loader\\/([A-Za-z0-9]{20,})/) || ss[i].src.match(/yotpo\\.com\\/([A-Za-z0-9]{20,})\\//) || ss[i].src.match(/appKey=([A-Za-z0-9]{20,})/i);\n      if (m) return m[1];\n    }\n    var el = document.querySelector('[data-appkey], [data-app-key]');\n    return el ? (el.getAttribute('data-appkey') || el.getAttribute('data-app-key')) : '';\n  }\n  function mainWidget() {\n    var list = document.querySelectorAll('.yotpo-widget-instance[data-yotpo-instance-id]');\n    for (var i = 0; i < list.length; i++) { if (!list[i].closest('.pinfo-app-block, .tk-card, .tk-bundle-reviews')) return list[i]; }\n    return null;\n  }\n  function esc(t) { var d = document.createElement('div'); d.textContent = t == null ? '' : String(t); return d.innerHTML; }\n  function stars(n) { var s = ''; for (var i = 1; i <= 5; i++) s += '<span class=\"tk-br__star' + (i <= Math.round(n) ? ' is-on' : '') + '\">\u2605</span>'; return s; }\n  var started = false;\n  function start() {\n    if (started) return;\n    var w = mainWidget();\n    if (!w || !(w.textContent || '').trim()) return;           /* Yotpo's widget hasn't rendered yet */\n    var t = (w.textContent || '').toLowerCase();\n    if (t.indexOf('be the first') === -1) { started = true; return; } /* the bundle already shows the group's reviews */\n    var key = appKey(); if (!key) return;\n    started = true;\n    Promise.all(pieces.map(function (p) {\n      return fetch('https://api-cdn.yotpo.com/v1/widget/' + key + '/products/' + p.id + '/reviews.json?per_page=50&page=1&sort=date')\n        .then(function (r) { return r.json(); })\n        .then(function (j) { var r = (j && j.response) || {}; return { p: p, total: (r.bottomline || {}).total_review || 0, avg: (r.bottomline || {}).average_score || 0, reviews: r.reviews || [] }; })\n        .catch(function () { return { p: p, total: 0, avg: 0, reviews: [] }; });\n    })).then(function (res) {\n      var total = res.reduce(function (a, x) { return a + x.total; }, 0);\n      if (!total) return;                                         /* nothing to show: leave Yotpo's widget as is */\n      var avg = res.reduce(function (a, x) { return a + x.avg * x.total; }, 0) / total;\n      var all = [];\n      res.forEach(function (x) { x.reviews.forEach(function (r) { all.push({ r: r, p: x.p }); }); });\n      all.sort(function (a, b) { return new Date(b.r.created_at) - new Date(a.r.created_at); });\n      var sec = document.createElement('section');\n      sec.className = 'tk-bundle-reviews tk-wrap';\n      var html = '<h2 class=\"tk-br__title\">Customer reviews</h2>' +\n        '<div class=\"tk-br__summary\"><span class=\"tk-br__avg\">' + avg.toFixed(1) + '</span><span class=\"tk-br__stars\" aria-hidden=\"true\">' + stars(avg) + '</span>' +\n        '<span class=\"tk-br__count\">Based on ' + total + ' review' + (total === 1 ? '' : 's') + ' of the pieces in this set</span></div>' +\n        '<ul class=\"tk-br__pieces\" role=\"list\">' + res.map(function (x) {\n          return '<li><a href=\"/products/' + esc(x.p.handle) + '#reviews\">' + esc(x.p.title.replace(/\\s+/g, ' ')) + '</a> <span class=\"tk-br__mini\">' + (x.total ? x.avg.toFixed(1) + ' \u2605 \u00B7 ' + x.total + ' review' + (x.total === 1 ? '' : 's') : 'No reviews yet') + '</span></li>';\n        }).join('') + '</ul><ol class=\"tk-br__list\" role=\"list\">';\n      all.forEach(function (it, i) {\n        var r = it.r;\n        html += '<li class=\"tk-br__item\"' + (i >= 6 ? ' hidden' : '') + '>' +\n          '<div class=\"tk-br__head\"><span class=\"tk-br__stars\" aria-label=\"' + r.score + ' out of 5\">' + stars(r.score) + '</span>' +\n          (r.title ? '<strong class=\"tk-br__rtitle\">' + esc(r.title) + '</strong>' : '') + '</div>' +\n          '<p class=\"tk-br__body\">' + esc(r.content) + '</p>' +\n          '<p class=\"tk-br__meta\">' + esc((r.user && r.user.display_name) || 'Customer') + (r.verified_buyer ? ' \u00B7 Verified Buyer' : '') +\n          ' \u00B7 on the <a href=\"/products/' + esc(it.p.handle) + '\">' + esc(it.p.title.replace(/\\s+/g, ' ')) + '</a></p></li>';\n      });\n      html += '</ol>' + (all.length > 6 ? '<button type=\"button\" class=\"tk-btn tk-btn--outline tk-br__more\">Show more reviews</button>' : '');\n      sec.innerHTML = html;\n      var more = sec.querySelector('.tk-br__more');\n      if (more) more.addEventListener('click', function () {\n        var hid = sec.querySelectorAll('.tk-br__item[hidden]');\n        for (var i = 0; i < hid.length && i < 6; i++) hid[i].hidden = false;\n        if (!sec.querySelector('.tk-br__item[hidden]')) more.remove();\n      });\n      w.style.display = 'none';\n      w.insertAdjacentElement('afterend', sec);\n    });\n  }\n  var n = 0;\n  var iv = setInterval(function () { start(); if (started || ++n > 30) clearInterval(iv); }, 500);\n})();\n\n\n/* Sticky add-to-bag bars (the takeover bar and the theme's desktop quick-add bar): add straight to the bag.\n   The theme's own quick-add handler scrolled the page up to the product, so its click is taken over here. */\nwindow.tkAddForm = function (form, btn) {\n  if (!form) return;\n  var drawer = document.querySelector('cart-drawer');\n  var fd = new FormData(form);\n  var qty = document.querySelector('.pinfo-form-wrapper .qty-input, .quantity-selector .qty-input');\n  if (qty && qty.offsetParent !== null && +qty.value > 0) fd.set('quantity', qty.value);\n  if (!fd.get('quantity')) fd.set('quantity', '1');\n  if (drawer) { fd.append('sections', 'cart-drawer,cart-icon-bubble'); fd.append('sections_url', location.pathname); }\n  var label = btn ? btn.textContent : '';\n  if (btn) { btn.setAttribute('aria-busy', 'true'); btn.style.pointerEvents = 'none'; btn.textContent = 'Adding\\u2026'; }\n  fetch(((window.routes && window.routes.cart_add_url) || '/cart/add') + '.js', { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest', Accept: 'application/javascript' }, body: fd })\n    .then(function (r) { return r.json(); })\n    .then(function (res) {\n      if (res.status) { if (btn) { btn.textContent = res.description || 'Unavailable'; setTimeout(function () { btn.textContent = label; }, 2200); } return; }\n      if (drawer && typeof drawer.renderContents === 'function') {\n        drawer.classList.remove('is-empty');\n        drawer.renderContents(res);\n        if (typeof drawer.open === 'function' && !drawer.classList.contains('active')) { try { drawer.open(); } catch (e) {} }\n      } else {\n        location.href = (window.routes && window.routes.cart_url) || '/cart'; return;\n      }\n      if (window.tkRefreshOffers) window.tkRefreshOffers();\n      if (typeof publish === 'function' && typeof PUB_SUB_EVENTS !== 'undefined') publish(PUB_SUB_EVENTS.cartUpdate, { source: 'tk-sticky' });\n      if (btn) btn.textContent = label;\n    })\n    .catch(function () { if (btn) btn.textContent = label; })\n    .finally(function () { if (btn) { btn.removeAttribute('aria-busy'); btn.style.pointerEvents = ''; } });\n};\ndocument.addEventListener('click', function (e) {\n  var b = e.target.closest && e.target.closest('pqa-new .pqa-new-form button, pqa-new button[type=\"submit\"]');\n  if (!b) return;\n  e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation();\n  var form = b.closest('form');\n  if (b.disabled || !form) { var opts = document.querySelector('pinfo-variant-picker'); if (opts) opts.scrollIntoView({ behavior: 'smooth', block: 'center' }); return; }\n  window.tkAddForm(form, b);\n}, true);\n\n/* Collection pages: once the header scrolls out of view, Menu / Search / Bag appear in the sticky tab row */\n(function () {\n  'use strict';\n  var header = document.querySelector('.tk-header');\n  var mini = document.querySelector('[data-tk-mini]');\n  if (!header || !mini) return;\n  var root = document.documentElement;\n  function upd() { root.classList.toggle('tk-stuck', header.getBoundingClientRect().bottom <= 0); }\n  window.addEventListener('scroll', upd, { passive: true }); window.addEventListener('resize', upd); upd();\n  function vis(sel) { var l = document.querySelectorAll(sel); for (var i = 0; i < l.length; i++) if (l[i].offsetParent !== null) return l[i]; return l[0]; }\n  document.addEventListener('click', function (e) {\n    var b = e.target.closest && e.target.closest('[data-tk-mini]');\n    if (!b) return;\n    var k = b.getAttribute('data-tk-mini');\n    if (k === 'menu') { e.preventDefault(); var m = vis('[data-tk-menu-open]'); if (m) m.click(); }\n    else if (k === 'search') {\n      e.preventDefault();\n      window.scrollTo(0, 0);\n      setTimeout(function () { var s = vis('[data-tk-search-open]'); if (s) s.click(); }, 60);\n    } else if (k === 'bag') {\n      var bag = document.getElementById('cart-icon-bubble');\n      if (bag && document.querySelector('cart-drawer')) { e.preventDefault(); bag.click(); }\n    }\n  });\n  /* keep the bag count in step with the header's */\n  var bubble = document.getElementById('cart-icon-bubble'), cnt = document.querySelector('[data-tk-mini-count]');\n  function sync() { if (!bubble || !cnt) return; var s = bubble.querySelector('span'); var n = s ? parseInt(s.textContent, 10) || 0 : 0; cnt.textContent = n; cnt.hidden = n === 0; }\n  if (bubble && window.MutationObserver) new MutationObserver(sync).observe(bubble, { childList: true, subtree: true, characterData: true });\n  sync();\n})();\n"],
  "mappings": "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",
  "names": ["t", "list", "n"]
}
