{
  "version": 3,
  "sources": ["/cdn/shop/t/254/assets/takeover.js?tk=zr85"],
  "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    lockPage();\n  }\n\n  /* Mobile: stop the page behind the quick view from scrolling while it is open. */\n  var MOBILE = window.matchMedia ? window.matchMedia('(max-width: 749px)') : null;\n  var prevBodyOverflow = null;\n  function lockPage() {\n    if (!MOBILE || !MOBILE.matches || prevBodyOverflow !== null) return;\n    prevBodyOverflow = document.body.style.overflow;\n    document.body.style.overflow = 'hidden';\n  }\n  function unlockPage() {\n    if (prevBodyOverflow === null) return;\n    document.body.style.overflow = prevBodyOverflow;\n    prevBodyOverflow = null;\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    /* Fires for every way the sheet closes: X button, backdrop, Esc, and after Add to bag. */\n    sheet.addEventListener('close', unlockPage);\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        if (next) Array.prototype.slice.call(next.children).forEach(function (li) { grid.appendChild(document.adoptNode(li)); }); /* copy the list first: moving nodes out of a live list skipped every other product */\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'); }\n        else { t.parentElement.remove(); }\n      }).catch(function () { window.location.href = t.href; });\n    }\n  });\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  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  var head = panel.closest('.tk-header');\n  var MOBILE = window.matchMedia ? window.matchMedia('(max-width: 749px)') : null;\n\n  function money(v) {\n    var n = parseFloat(v);\n    if (isNaN(n)) return '';\n    var out;\n    try { out = new Intl.NumberFormat(locale, { style: 'currency', currency: currency }).format(n); } catch (e) { out = '$' + n.toFixed(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    /* Desktop: the panel normally sits at the top of the header. When the shopper has scrolled down, pin it to\n       the top of the screen instead, so it opens where they are (mobile already uses a full-screen fixed panel). */\n    if (head && !(MOBILE && MOBILE.matches)) {\n      panel.style.position = 'fixed';\n      panel.style.top = Math.max(0, Math.round(head.getBoundingClientRect().top)) + 'px';\n    }\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({ preventScroll: true }); 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    panel.style.position = ''; panel.style.top = '';\n    if (lastFocus && lastFocus.focus) lastFocus.focus({ preventScroll: true });\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 price = money(p.price), was = p.compare_at_price_max && parseFloat(p.compare_at_price_max) > parseFloat(p.price) ? money(p.compare_at_price_max) : '';\n      return '<li><a role=\"option\" id=\"tk-sp-' + i + '\" class=\"tk-search__prod\" href=\"' + esc(p.url) + '\">' +\n        (p.image ? '<img src=\"' + esc(sized(p.image, 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 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) curBand.replaceWith(nb);\n          }\n          tkRefreshPdpOffer();\n          var curNeon = document.querySelector('[data-tk-neon]');\n          if (band && curNeon) {\n            var d3 = new DOMParser().parseFromString(band, 'text/html');\n            var nn = d3.querySelector('[data-tk-neon]');\n            if (nn) curNeon.replaceWith(nn);\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  /* Any bag change (quick add, sticky bar, kit, bag drawer +/-/remove) refreshes the offer bar and banner. */\n  document.addEventListener('tk:cart-changed', refresh);\n  if (window.fetch && !window.__tkCartWatch) {\n    window.__tkCartWatch = true;\n    var _f = window.fetch;\n    window.fetch = function (input) {\n      var u = typeof input === 'string' ? input : (input && input.url) || '';\n      var pr = _f.apply(this, arguments);\n      if (/\\/cart\\/(add|change|update|clear)/.test(u)) pr.then(function () { refresh(); }).catch(function () {});\n      return pr;\n    };\n  }\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 = '.p-info-add-to-cart, .custom__atc-global-btn, .pinfo-add-to-cart, form[action*=\"/cart/add\"] [type=\"submit\"][name=\"add\"]';\n  var real = document.querySelector(REAL);\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    var price = document.querySelector('.p-info-rgular-price, .pinfo__price_app .price, .price__collection_wrap .price-item--regular, .price__collection_wrap .price');\n    if (price && price.textContent.trim() && !sub.hasAttribute('data-tk-satc-fixed')) sub.textContent = price.textContent.replace(/\\s+/g, ' ').trim();\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  function pickReal() {\n    var list = document.querySelectorAll(REAL);\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  /* Add directly from the visible product form (the theme renders separate phone and desktop forms).\n     Nothing addable (no size picked, sold out): scroll to the options instead. */\n  function visibleForm() {\n    var forms = document.querySelectorAll('form[action*=\"/cart/add\"]');\n    for (var i = 0; i < forms.length; i++) {\n      var f = forms[i];\n      if (f.closest('[data-tk-satc], cart-drawer, [data-tk-kit], .tk-sheet, .tk-card, pqa-new')) continue;\n      var sb = f.querySelector('[type=\"submit\"], .pinfo-add-to-cart') || f;\n      if (f.offsetParent !== null || sb.offsetParent !== null) return f;\n    }\n    return null;\n  }\n  btn.addEventListener('click', function () {\n    real = pickReal();\n    /* Custom logo and monogram products: their Add to Bag runs the theme's customizer flow (logo, placement,\n       monogram text) and its own bag update. The sticky button hands off to that real button instead of adding. */\n    if (bar.hasAttribute('data-tk-satc-native')) {\n      if (real) {\n        real.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        if (!real.disabled && !real.classList.contains('hidden')) setTimeout(function () { real.click(); }, 350);\n      }\n      return;\n    }\n    var form = visibleForm();\n    var idEl = form && form.querySelector('[name=\"id\"]');\n    var fBtn = form && form.querySelector(REAL); if (fBtn) real = fBtn;\n    var blocked = !form || !idEl || !idEl.value || real.disabled || real.classList.contains('hidden');\n    if (blocked) {\n      var opts = document.querySelector('.p-info-variants, .p-info-variants-option, variant-selects, .pinfo-variant-picker') || real;\n      opts.scrollIntoView({ behavior: 'smooth', block: 'center' });\n      return;\n    }\n    var fd = new FormData(form);\n    if (window.tkResolveVariant) { var rv = window.tkResolveVariant([]); if (rv && rv.available) fd.set('id', rv.id); }\n    fd.append('sections', 'cart-drawer,cart-icon-bubble');\n    fd.append('sections_url', location.pathname);\n    btn.disabled = true; var label = btn.textContent; btn.textContent = 'Adding\u2026';\n    fetch('/cart/add.js', { method: 'POST', headers: { Accept: 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: fd })\n      .then(function (r) { return r.json().then(function (j) { return { ok: r.ok, j: j }; }); })\n      .then(function (res) {\n        btn.disabled = false; btn.textContent = label;\n        if (!res.ok) { btn.textContent = res.j.description ? 'Unavailable' : label; setTimeout(function () { btn.textContent = label; }, 1800); return; }\n        var d = document.querySelector('cart-drawer');\n        if (d && typeof d.renderContents === 'function' && res.j.sections) d.renderContents({ sections: res.j.sections, id: res.j.variant_id || res.j.id });\n        else location.href = '/cart';\n        document.dispatchEvent(new CustomEvent('tk:cart-changed'));\n      })\n      .catch(function () { btn.disabled = false; btn.textContent = label; });\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    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  var sy = 0, inRow = false;\n  function scrollsSideways(el) {\n    while (el && el !== dlg) {\n      if (el.scrollWidth > el.clientWidth + 2) { var ox = getComputedStyle(el).overflowX; if (ox === 'auto' || ox === 'scroll') return true; }\n      el = el.parentElement;\n    }\n    return false;\n  }\n  dlg.addEventListener('touchstart', function (e) { sx = e.touches[0].clientX; sy = e.touches[0].clientY; inRow = !!(e.target.closest && e.target.closest('.tk-menu__tiles, .tk-chips, [data-tk-hscroll]')) || scrollsSideways(e.target); }, { passive: true });\n  dlg.addEventListener('touchend', function (e) {\n    if (inRow) 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 = w.querySelectorAll('input[type=\"radio\"]');\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:#000000!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 #DCDDDE!important;border-radius:0!important;background:#fff!important;color:#000000!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('.p-info-add-to-cart, .custom__atc-global-btn, .pinfo-add-to-cart, form[action*=\"/cart/add\"] [type=\"submit\"][name=\"add\"]');\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 money = function (c) { var v = c / 100; return '$' + (v % 1 ? v.toFixed(2) : v.toFixed(0)); };\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 ' + money(total - 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, .p-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 = '<div class=\"tk-setview__bar\"><p class=\"tk-setview__hint\">Your set <span>\u00B7 pick colors to see it here</span></p>'\n        + '<div class=\"tk-setview__modes\" role=\"group\" aria-label=\"Image view\"><button type=\"button\" class=\"is-on\" data-tk-setview-mode=\"set\" aria-pressed=\"true\">Your set</button><button type=\"button\" data-tk-setview-mode=\"photos\" aria-pressed=\"false\">Photos</button></div></div>'\n        + '<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/* Clicking the dimmed area outside an open dialog (menu, sheets) closes it. */\ndocument.addEventListener('click', function (e) {\n  var d = e.target;\n  if (d && d.tagName === 'DIALOG' && d.open && d.closest('html.tk-on')) {\n    var r = d.getBoundingClientRect();\n    var inside = e.clientX >= r.left && e.clientX <= r.right && e.clientY >= r.top && e.clientY <= r.bottom;\n    var panel = d.firstElementChild; var pr = panel && panel.getBoundingClientRect();\n    var inPanel = pr && e.clientX >= pr.left && e.clientX <= pr.right && e.clientY >= pr.top && e.clientY <= pr.bottom;\n    if (!inPanel || !inside) d.close();\n  }\n});\n\n/* Bundle hero: switch between the live set preview and the bundle's own photos. */\ndocument.addEventListener('click', function (e) {\n  var b = e.target.closest && e.target.closest('[data-tk-setview-mode]'); if (!b) return;\n  var host = b.closest('product-info-media, .p-info-media'); if (!host) return;\n  var photos = b.getAttribute('data-tk-setview-mode') === 'photos';\n  host.classList.toggle('tk-has-setview', !photos);\n  host.classList.toggle('tk-setview-photos', photos);\n  b.parentElement.querySelectorAll('[data-tk-setview-mode]').forEach(function (x) { var on = x === b; x.classList.toggle('is-on', on); x.setAttribute('aria-pressed', on ? 'true' : 'false'); });\n  if (photos) { var sw = host.querySelector('.p-info-thumb'); if (sw && sw.swiper) { sw.swiper.update(); } window.dispatchEvent(new Event('resize')); }\n});\n\n/* Product page: Description / Material & Care / Returns move into the buy box, under Add to Bag.\n   Reviews and \"Style with\" stay in the details section below. Runs after the theme wires the accordions,\n   so their click handlers move with them. */\nwindow.addEventListener('load', function () {\n  var html = document.documentElement;\n  if (!html.classList.contains('tk-on') || !html.classList.contains('tk-pdp')) return;\n  var sec = document.querySelector('.pdp-details-section'); if (!sec) return;\n  var buy = document.querySelector('.p-info-content .p-info-top') || document.querySelector('.p-info-top'); if (!buy) return;\n  var items = [].filter.call(sec.querySelectorAll('.faq__wrapp'), function (w) {\n    return !w.classList.contains('faq__wrapp-review') && w.id !== 'faq__wrapp--container' && !w.closest('#faq__wrapp--container');\n  });\n  if (!items.length) return;\n  var box = document.createElement('div'); box.className = 'tk-buydetails';\n  items.forEach(function (w) { box.appendChild(w); });\n  var anchor = buy.querySelector('.tk-assure-card, .tk-assure, .tk-bset');\n  if (anchor) { var blk = anchor; while (blk.parentElement && blk.parentElement !== buy) blk = blk.parentElement; blk.insertAdjacentElement(anchor.classList.contains('tk-bset') ? 'afterend' : 'beforebegin', box); }\n  else buy.appendChild(box);\n  html.classList.add('tk-details-moved');\n  /* if nothing but reviews (or nothing) is left below, drop the empty section */\n  if (!sec.querySelector('.faq__wrapp')) sec.style.display = 'none';\n});\n\n/* Product page deal block (tiers, \"Add this for $X\") re-renders when the bag changes. */\nfunction tkRefreshPdpOffer() {\n  var cur = document.querySelector('.tk-pdpoffer'); if (!cur) return;\n  var sec = cur.closest('.shopify-section'); if (!sec || !sec.id) return;\n  var sid = sec.id.replace('shopify-section-', '');\n  var q = location.search ? location.search + '&' : '?';\n  fetch(location.pathname + q + 'sections=' + encodeURIComponent(sid))\n    .then(function (r) { return r.json(); })\n    .then(function (j) {\n      var html = j && j[sid]; if (!html) return;\n      var doc = new DOMParser().parseFromString(html, 'text/html');\n      var fresh = doc.querySelector('.tk-pdpoffer'); var now = document.querySelector('.tk-pdpoffer');\n      if (fresh && now) now.replaceWith(fresh);\n    }).catch(function () {});\n}\n/* Also re-render it when the shopper switches color or size (the price per tier changes). */\ndocument.addEventListener('change', function (e) {\n  if (!document.querySelector('.tk-pdpoffer')) return;\n  if (e.target.closest && e.target.closest('.p-info-content, variant-selects, .p-info-variants')) setTimeout(tkRefreshPdpOffer, 450);\n});\n\n/* Product gallery: horizontal trackpad swipe and arrow keys move between images. */\n(function () {\n  if (!document.documentElement.classList.contains('tk-pdp')) return;\n  var lock = 0;\n  document.addEventListener('wheel', function (e) {\n    var el = e.target.closest && e.target.closest('.p-info-thumb'); if (!el || !el.swiper) return;\n    if (Math.abs(e.deltaX) <= Math.abs(e.deltaY) || Math.abs(e.deltaX) < 12) return;\n    e.preventDefault();\n    var now = Date.now(); if (now - lock < 450) return; lock = now;\n    if (e.deltaX > 0) el.swiper.slideNext(); else el.swiper.slidePrev();\n  }, { passive: false });\n  document.addEventListener('keydown', function (e) {\n    if (e.key !== 'ArrowRight' && e.key !== 'ArrowLeft') return;\n    var t = e.target; if (t && (t.closest('input, select, textarea, [role=\"tablist\"], [data-tk-tab]'))) return;\n    var el = document.querySelector('.p-info-thumb'); if (!el || !el.swiper) return;\n    var r = el.getBoundingClientRect(); if (r.bottom < 0 || r.top > innerHeight) return;\n    if (e.key === 'ArrowRight') el.swiper.slideNext(); else el.swiper.slidePrev();\n  });\n})();\n\n/* Sticky tab row picks up menu, search and bag once the header scrolls away. */\n(function () {\n  var html = document.documentElement;\n  if (!html.classList.contains('tk-on')) return;\n  var head = document.querySelector('.tk-header'); var tabs = document.querySelector('.tk-tabs');\n  if (!head || !tabs || !('IntersectionObserver' in window)) return;\n  var tools = tabs.querySelectorAll('[data-tk-stuck-tools]');\n  function setStuck(on) {\n    html.classList.toggle('tk-stuck', on);\n    tools.forEach(function (t) {\n      t.setAttribute('aria-hidden', on ? 'false' : 'true');\n      t.querySelectorAll('button').forEach(function (b) { b.tabIndex = on ? 0 : -1; });\n    });\n  }\n  new IntersectionObserver(function (e) { setStuck(!e[0].isIntersecting); }, { threshold: 0 }).observe(head);\n  document.addEventListener('click', function (e) {\n    if (!e.target.closest('[data-tk-stuck-bag]')) return;\n    var d = document.querySelector('cart-drawer');\n    if (d && typeof d.open === 'function') d.open(); else location.href = '/cart';\n  });\n  function sync() {\n    var c = document.querySelector('#cart-icon-bubble span:not(.visually-hidden)');\n    var n = c ? c.textContent.trim() : '';\n    tabs.querySelectorAll('[data-tk-stuck-count]').forEach(function (s) { s.textContent = n; });\n  }\n  var bubble = document.getElementById('cart-icon-bubble');\n  if (bubble) new MutationObserver(sync).observe(bubble.parentElement || bubble, { childList: true, subtree: true, characterData: true });\n  sync();\n})();\n\n/* Header bag icon opens the bag pop-up instead of going to the cart page. */\ndocument.addEventListener('click', function (e) {\n  if (!document.documentElement.classList.contains('tk-on')) return;\n  var a = e.target.closest && e.target.closest('#cart-icon-bubble, .tk-header a[href$=\"/cart\"], .tk-header [data-tk-bag]');\n  if (!a) return;\n  var d = document.querySelector('cart-drawer');\n  if (d && typeof d.open === 'function') { e.preventDefault(); d.open(a); }\n});\n\n/* Filters: dark overlay over everything except the filter bar while a filter is open; clicking it closes the filter. */\n(function () {\n  if (!document.documentElement.classList.contains('tk-on')) return;\n  var ov = document.createElement('div'); ov.className = 'tk-filter-overlay'; ov.setAttribute('aria-hidden', 'true'); document.body.appendChild(ov);\n  function anyOpen() { return !!document.querySelector('.tk-filter[open]'); }\n  /* Open panel sits directly under its label, measured on screen, so a sticky bar mid-page and the\n     sideways-scrolling bar on phones can't hide or clip it. */\n  function place() {\n    var d = document.querySelector('.tk-filter[open]'); if (!d) return;\n    var sum = d.querySelector('summary'), pnl = d.querySelector('.tk-filter__panel'); if (!sum || !pnl) return;\n    var r = sum.getBoundingClientRect(), vw = window.innerWidth, vh = window.innerHeight;\n    var w = Math.min(Math.max(pnl.offsetWidth || 260, 260), vw - 16);\n    var left = Math.max(8, Math.min(r.left, vw - w - 8));\n    var top = Math.round(r.bottom + 8);\n    if (vw < 750) pnl.style.minWidth = Math.min(280, vw - 16) + 'px';\n    w = Math.max(pnl.offsetWidth, Math.min(280, vw - 16)); left = Math.max(8, Math.min(r.left, vw - w - 8));\n    pnl.style.top = top + 'px'; pnl.style.left = left + 'px'; pnl.style.maxWidth = (vw - 16) + 'px';\n    pnl.style.maxHeight = Math.max(160, vh - top - 16) + 'px';\n  }\n  function sync() {\n    document.documentElement.classList.toggle('tk-filter-open', anyOpen());\n    if (anyOpen()) requestAnimationFrame(place);\n    else document.querySelectorAll('.tk-filter__panel').forEach(function (p) { p.style.top = p.style.left = p.style.maxHeight = p.style.maxWidth = p.style.minWidth = ''; });\n  }\n  window.addEventListener('resize', function () { if (anyOpen()) place(); });\n  /* iOS ignores overflow on the page: block page scrolling by touch/wheel outside the open panel instead */\n  function blockOutside(e) {\n    if (!document.documentElement.classList.contains('tk-filter-open')) return;\n    if (e.target.closest && e.target.closest('.tk-filter__panel')) return;\n    e.preventDefault();\n  }\n  document.addEventListener('touchmove', blockOutside, { passive: false });\n  document.addEventListener('wheel', blockOutside, { passive: false });\n  document.addEventListener('toggle', function (e) { if (e.target.classList && e.target.classList.contains('tk-filter')) sync(); }, true);\n  ov.addEventListener('click', function (e) {\n    e.preventDefault(); e.stopPropagation();\n    document.querySelectorAll('.tk-filter[open]').forEach(function (d) { d.open = false; });\n    sync();\n  });\n  document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && anyOpen()) { document.querySelectorAll('.tk-filter[open]').forEach(function (d) { d.open = false; }); sync(); } });\n})();\n\n/* Mobile sticky size selector (pqa-new): its size buttons carry variant links rendered for the color that was\n   selected when the bar was drawn, so after a color change they could add the wrong color. Here every size pick\n   and every Add is resolved against the CURRENT main selections (color etc.) + the size picked in the bar. */\n(function () {\n  function mainPosOf(value) {\n    var pi = document.querySelector('product-information'); if (!pi || value == null) return null;\n    var list = pi.querySelectorAll('input[type=\"radio\"]');\n    for (var i = 0; i < list.length; i++) {\n      if (list[i].value === value) { var m = (list[i].id || '').match(/^(\\d+)-/); if (m) return parseInt(m[1], 10); }\n    }\n    return null;\n  }\n  function currentOptions() {\n    var sel = [];\n    var pi = document.querySelector('product-information');\n    var idEl = pi && pi.querySelector('form[action*=\"/cart/add\"] [name=\"id\"]');\n    var vs = window.productVariants || [];\n    var cur = idEl && vs.find(function (v) { return String(v.id) === String(idEl.value); });\n    if (cur) sel = [cur.option1, cur.option2, cur.option3];\n    if (pi) pi.querySelectorAll('input[type=\"radio\"]:checked').forEach(function (r) {\n      var m = (r.id || '').match(/^(\\d+)-/); if (m) sel[parseInt(m[1], 10) - 1] = r.value;\n    });\n    return sel;\n  }\n  function pqaValue(el) {\n    if (!el) return null;\n    if (el.tagName === 'SELECT') { var o = el.options[el.selectedIndex]; return o ? o.textContent.replace(/\\s+/g, ' ').trim() : null; }\n    return el.getAttribute('data-label') || null;\n  }\n  function resolve(extra) {\n    var vs = window.productVariants; if (!vs || !vs.length) return null;\n    var sel = currentOptions();\n    (extra || []).forEach(function (v) { var p = mainPosOf(v); if (p) sel[p - 1] = v; });\n    var exact = vs.find(function (v) { return [v.option1, v.option2, v.option3].every(function (o, i) { return sel[i] == null || o == null || o === sel[i]; }); });\n    return exact || null;\n  }\n  window.tkResolveVariant = resolve;\n  function pqaPicks(root) {\n    var out = [];\n    root.querySelectorAll('input[type=\"radio\"]:checked').forEach(function (r) { var v = pqaValue(r); if (v) out.push(v); });\n    root.querySelectorAll('select').forEach(function (s) { var v = pqaValue(s); if (v) out.push(v); });\n    return out;\n  }\n  var lastPqa = null;\n  document.addEventListener('change', function (e) {\n    if (e.target.closest && e.target.closest('product-information') && !e.target.closest('pqa-new')) lastPqa = null;\n  }, true);\n  /* a size picked in the bar: open the right variant (current color + that size) */\n  document.addEventListener('input', function (e) {\n    var root = e.target.closest && e.target.closest('pqa-new'); if (!root) return;\n    lastPqa = pqaValue(e.target);\n    if (!(e.target.matches('input[type=\"radio\"]') || e.target.matches('select'))) return;\n    var v = resolve([pqaValue(e.target)]); if (!v) return;\n    e.stopPropagation();\n    var pi = document.querySelector('product-information');\n    var url = location.pathname + '?variant=' + v.id;\n    if (pi && typeof pi.handleOptions === 'function') pi.handleOptions(url);\n    var f = root.querySelector('form[action*=\"/cart/add\"] [name=\"id\"]'); if (f) f.value = v.id;\n  }, true);\n  /* Any Add to Bag on the product page (the size bar's or the main .p-info-add-to-cart): the theme's variant\n     update is a network round trip, so a quick tap could submit the previous variant. Before the theme sees\n     the click, every add form gets the variant resolved from what is selected right now. */\n  function stampForms(v) {\n    document.querySelectorAll('product-information form[action*=\"/cart/add\"] [name=\"id\"], pqa-new form[action*=\"/cart/add\"] [name=\"id\"]').forEach(function (f) { f.value = v.id; });\n  }\n  document.addEventListener('click', function (e) {\n    if (!e.target.closest) return;\n    var btn = e.target.closest('.p-info-add-to-cart, .custom__atc-global-btn, pqa-new form[action*=\"/cart/add\"] button, product-information form[action*=\"/cart/add\"] [type=\"submit\"]');\n    if (!btn) return;\n    var v = resolve(lastPqa ? [lastPqa] : []); if (!v) return;\n    if (!v.available) { e.preventDefault(); e.stopImmediatePropagation(); var t = btn.textContent; btn.textContent = 'Sold out in this size'; setTimeout(function () { btn.textContent = t; }, 1600); return; }\n    stampForms(v);\n  }, true);\n  document.addEventListener('submit', function (e) {\n    var f = e.target; if (!f.matches || !f.matches('form[action*=\"/cart/add\"]')) return;\n    if (!f.closest('product-information, pqa-new')) return;\n    var v = resolve(lastPqa ? [lastPqa] : []); if (v && v.available) stampForms(v);\n  }, true);\n})();\n\n/* Load more, faster: ask Shopify for just the collection section (not the whole page), and start that\n   request as soon as the button is getting close to the screen, so the click usually has nothing to wait for. */\nvar tkMoreCache = {};\n/* Ask for the section that actually holds the grid on this page: search results use takeover-search,\n   collections use takeover-collection. (Using the collection section on /search returned an empty grid.) */\nfunction tkMoreSection() {\n  var a = document.querySelector('[data-tk-more]'); var sec = a && a.closest('.shopify-section');\n  if (sec && sec.id && sec.id.indexOf('shopify-section-') === 0) return sec.id.replace('shopify-section-', '');\n  return location.pathname.indexOf('/search') === 0 ? 'takeover-search' : 'takeover-collection';\n}\nfunction tkMoreUrl(href) { var u = new URL(href, location.href); u.searchParams.set('section_id', tkMoreSection()); return u.toString(); }\nfunction tkMoreFetch(href) {\n  if (!tkMoreCache[href]) {\n    tkMoreCache[href] = fetch(tkMoreUrl(href), { headers: { Accept: 'text/html' } })\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 || html.indexOf('data-tk-card') === -1) throw new Error('no grid'); return html; })\n      .catch(function (err) { delete tkMoreCache[href]; return fetch(href).then(function (r) { return r.text(); }); });\n  }\n  return tkMoreCache[href];\n}\n(function () {\n  if (!('IntersectionObserver' in window)) return;\n  var seen = new WeakSet();\n  var io = new IntersectionObserver(function (en) {\n    en.forEach(function (x) { if (x.isIntersecting) { var a = x.target; if (a.href) tkMoreFetch(a.href); } });\n  }, { rootMargin: '1200px 0px' });\n  function watch() {\n    document.querySelectorAll('[data-tk-more]').forEach(function (a) { if (!seen.has(a)) { seen.add(a); io.observe(a); } else { io.unobserve(a); io.observe(a); } });\n  }\n  watch();\n  var pend = false;\n  new MutationObserver(function () { if (pend) return; pend = true; requestAnimationFrame(function () { pend = false; watch(); }); }).observe(document.body, { childList: true, subtree: true });\n  /* the button's link changes after each load: start the next page right away */\n  document.addEventListener('click', function (e) {\n    var a = e.target.closest && e.target.closest('[data-tk-more]'); if (!a) return;\n    setTimeout(function () { if (a.isConnected && a.href) tkMoreFetch(a.href); }, 400);\n  });\n})();\n\n/* Product gallery + thumbnail rail: if a photo fails to load (seen intermittently on some connections), retry it\n   once from Shopify's CDN at its original size, ignoring the <picture> size variants. */\ndocument.addEventListener('error', function (e) {\n  var img = e.target;\n  if (!img || img.tagName !== 'IMG' || img.dataset.tkRetried) return;\n  if (!document.documentElement.classList.contains('tk-on')) return;\n  img.dataset.tkRetried = '1';\n  var pic = img.closest('picture'); if (pic) pic.querySelectorAll('source').forEach(function (s) { s.remove(); });\n  var src = img.getAttribute('src') || ''; if (!src) return;\n  var u = src.replace(/([?&])width=\\d+&?/, '$1').replace(/[?&]$/, '');\n  u += (u.indexOf('?') > -1 ? '&' : '?') + 'tkr=1';\n  img.removeAttribute('srcset'); img.loading = 'eager'; img.src = u;\n}, true);\n"],
  "mappings": "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",
  "names": ["t", "list"]
}
