{
  "version": 3,
  "sources": ["/cdn/shop/t/103/assets/rt.js?x=17746"],
  "sourcesContent": ["/* R36: no prices on the homepage */\nvar NOPRICE = document.body && document.body.classList.contains('template-index');\n/* Riviera Towel Co. \u2014 Concept A behaviors: hero slider, Colorful Search, add-set, gift note, recently viewed. */\n(function () {\n  'use strict';\n  var money = function (cents) {\n    try { return new Intl.NumberFormat('en-US', { style: 'currency', currency: (window.Shopify && Shopify.currency && Shopify.currency.active) || 'USD', minimumFractionDigits: cents % 100 ? 2 : 0 }).format(cents / 100); }\n    catch (e) { return '$' + (cents / 100).toFixed(2); }\n  };\n  var esc = function (s) { return String(s == null ? '' : s).replace(/[&<>\"']/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c]; }); };\n  var root = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/';\n\n  /* ---------- hero slider ---------- */\n  document.querySelectorAll('[data-rt-slider]').forEach(function (el) {\n    var slides = el.querySelectorAll('[data-slide]'), dots = el.querySelectorAll('[data-dot]');\n    if (slides.length < 2) return;\n    var i = 0, ms = parseInt(el.getAttribute('data-interval'), 10) || 7000, t;\n    var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    function go(n) {\n      slides[i].classList.remove('is-active'); if (dots[i]) dots[i].classList.remove('is-active');\n      i = (n + slides.length) % slides.length;\n      slides[i].classList.add('is-active'); if (dots[i]) dots[i].classList.add('is-active');\n    }\n    function play() { if (reduce) return; clearInterval(t); t = setInterval(function () { go(i + 1); }, ms); }\n    el.addEventListener('click', function (e) {\n      var b = e.target.closest('button'); if (!b) return;\n      if (b.hasAttribute('data-next')) go(i + 1); else if (b.hasAttribute('data-prev')) go(i - 1); else if (b.hasAttribute('data-dot')) go(+b.getAttribute('data-dot'));\n      play();\n    });\n    el.addEventListener('mouseenter', function () { clearInterval(t); });\n    el.addEventListener('mouseleave', play);\n    play();\n  });\n\n  /* ---------- color families (same as RivieraGift) ---------- */\n  var FAMS = [\n    { id: 'pink', label: 'Pink', hex: '#f06ea9', keys: ['pink', 'fuchsia', 'fuschia', 'rose', 'peony', 'blush', 'magenta', 'flamingo', 'raspberry'] },\n    { id: 'red', label: 'Red', hex: '#d62b2b', keys: ['red', 'burgundy', 'maroon', 'wine', 'cherry', 'crimson', 'brick', 'cranberry'] },\n    { id: 'orange', label: 'Orange', hex: '#f28a3a', keys: ['orange', 'coral', 'mango', 'tangerine', 'peach', 'rust', 'terracotta', 'apricot', 'salmon'] },\n    { id: 'yellow', label: 'Yellow', hex: '#f3cf3a', keys: ['yellow', 'yolk', 'mustard', 'gold', 'lemon', 'sunflower'] },\n    { id: 'green', label: 'Green', hex: '#4aa564', keys: ['green', 'hunter', 'mint', 'sage', 'olive', 'lime', 'aloe', 'emerald', 'forest', 'moss', 'kelly'] },\n    { id: 'teal', label: 'Teal', hex: '#27b3b0', keys: ['teal', 'turquoise', 'aqua', 'seafoam', 'turq'] },\n    { id: 'blue', label: 'Blue', hex: '#3b7fd1', keys: ['blue', 'denim', 'royal', 'sky', 'aegean', 'indigo', 'cobalt', 'azure', 'ocean'] },\n    { id: 'navy', label: 'Navy', hex: '#1d2f5c', keys: ['navy', 'marine'] },\n    { id: 'purple', label: 'Purple', hex: '#8559c4', keys: ['purple', 'violet', 'lilac', 'lavender', 'plum', 'grape', 'mauve', 'orchid'] },\n    { id: 'white', label: 'White', hex: '#f4f1ea', keys: ['white', 'cream', 'ivory', 'natural', 'ecru'] },\n    { id: 'beige', label: 'Beige', hex: '#d6c2a0', keys: ['beige', 'sand', 'taupe', 'khaki', 'camel', 'oat', 'stone', 'mink', 'tan'] },\n    { id: 'brown', label: 'Brown', hex: '#7a5a40', keys: ['brown', 'mocha', 'chocolate', 'espresso', 'coffee', 'chestnut', 'cocoa', 'walnut'] },\n    { id: 'grey', label: 'Grey', hex: '#9aa3ad', keys: ['grey', 'gray', 'silver', 'charcoal', 'slate', 'graphite'] },\n    { id: 'black', label: 'Black', hex: '#222222', keys: ['black', 'onyx'] }\n  ];\n  FAMS.forEach(function (f) { f.re = new RegExp('\\\\b(' + f.keys.join('|') + ')', 'i'); });\n  var famById = {}; FAMS.forEach(function (f) { famById[f.id] = f; });\n  function famsOf(name) { return FAMS.filter(function (f) { return f.re.test(name); }).map(function (f) { return f.id; }); }\n\n  var cache = {};\n  function loadCollection(handle) {\n    if (cache[handle]) return cache[handle];\n    var all = [];\n    function page(n) {\n      return fetch(root + 'collections/' + encodeURIComponent(handle) + '/products.json?limit=250&page=' + n, { credentials: 'same-origin' })\n        .then(function (r) { return r.ok ? r.json() : { products: [] }; })\n        .then(function (d) { all = all.concat(d.products || []); return (d.products || []).length === 250 && n < 6 ? page(n + 1) : all; })\n        .catch(function () { return all; });\n    }\n    cache[handle] = page(1);\n    return cache[handle];\n  }\n  /* returns one entry per product+color: the first available variant whose title matches a selected family */\n  function matchProducts(products, fams) {\n    var out = [], seen = {};\n    products.forEach(function (p) {\n      (p.variants || []).forEach(function (v) {\n        var name = [v.title, v.option1, v.option2, v.option3].join(' ');\n        var hit = famsOf(name).some(function (f) { return fams.indexOf(f) > -1; });\n        if (!hit || !v.available) return; /* R46: an in-stock size of a color counts, even if another size is sold out */\n        var colorKey = p.id + '|' + (v.option1 || v.title);\n        if (seen[colorKey]) return;\n        seen[colorKey] = 1;\n        var img = (v.featured_image && v.featured_image.src) || (p.images && p.images[0] && p.images[0].src) || '';\n        out.push({ p: p, v: v, img: img, avail: v.available });\n      });\n    });\n    /* available first, then round-robin across products so one towel doesn't fill the grid */\n    var groups = [], gi = {};\n    out.forEach(function (m) { if (!(m.p.id in gi)) { gi[m.p.id] = groups.length; groups.push([]); } groups[gi[m.p.id]].push(m); });\n    groups.forEach(function (g) { g.sort(function (a, b) { return (b.avail ? 1 : 0) - (a.avail ? 1 : 0); }); });\n    var mixed = [], more = true, r = 0;\n    while (more) { more = false; groups.forEach(function (g) { if (g[r]) { mixed.push(g[r]); more = true; } }); r++; }\n    /* R37: only in-stock colors in search results, never a \"Sold out\" card */\n    return mixed.filter(function (m) { return m.avail; });\n  }\n  function sized(src, w) { return src ? src.replace(/(\\.[a-z]+)(\\?|$)/i, '_' + w + 'x$1$2') : ''; }\n  function cardHtml(m) {\n    var title = m.p.title.split(' - RT')[0];\n    var color = m.v.option1 && m.v.option1 !== 'Default Title' ? m.v.option1 : '';\n    var price = Math.round(parseFloat(m.v.price) * 100);\n    return '<a class=\"rt-card\" href=\"' + root + 'products/' + m.p.handle + '?variant=' + m.v.id + '\">' +\n      '<span class=\"rt-arch\" style=\"aspect-ratio:4/5\">' + (m.img ? '<img src=\"' + esc(sized(m.img, 600)) + '\" srcset=\"' + esc(sized(m.img, 360)) + ' 360w, ' + esc(sized(m.img, 600)) + ' 600w\" sizes=\"(min-width:990px) 260px, 46vw\" alt=\"' + esc(title + ' ' + color) + '\" loading=\"lazy\">' : '') +\n      '</span>' +\n      '<span class=\"rt-card__name\">' + esc(title) + '</span>' +\n      '<span class=\"rt-card__price\">' + esc(color) + (NOPRICE ? '' : (color ? ' \u00B7 ' : '') + money(price)) + '</span></a>';\n  }\n\n  document.querySelectorAll('[data-rt-cs]').forEach(function (cs) {\n    var swWrap = cs.querySelector('[data-sws]'), go = cs.querySelector('[data-go]'), hint = cs.querySelector('[data-hint]'), res = cs.querySelector('[data-results]');\n    var handles = (cs.getAttribute('data-handles') || '').split(',').filter(Boolean);\n    var limit = parseInt(cs.getAttribute('data-limit'), 10) || 12;\n    var sel = [], cat = '', shown = limit, last = [];\n    FAMS.forEach(function (f) {\n      var b = document.createElement('button'); b.type = 'button'; b.className = 'rt-cs__sw'; b.setAttribute('data-fam', f.id); b.setAttribute('aria-pressed', 'false');\n      b.innerHTML = '<i class=\"rt-hx\" style=\"--c:' + f.hex + '\"></i><span>' + f.label + '</span>';\n      swWrap.appendChild(b);\n    });\n    function render() {\n      [].forEach.call(swWrap.children, function (b) { b.setAttribute('aria-pressed', String(sel.indexOf(b.getAttribute('data-fam')) > -1)); });\n      go.disabled = !sel.length;\n      hint.textContent = sel.length ? 'Showing: ' + sel.map(function (id) { return famById[id].label; }).join(' + ') : 'Tap one or more colors';\n    }\n    function names() { return sel.map(function (id) { return famById[id].label; }).join(' + '); }\n    function head() {\n      var what = cat ? (cs.querySelector('[data-cat=\"' + cat + '\"]') || {}).textContent : 'pieces';\n      return '<div class=\"rt-cs__rhead\"><h3 class=\"rt-cs__rtitle\" tabindex=\"-1\" data-rhead>' +\n        (last.length ? 'Showing ' + last.length + ' ' + (what || 'pieces').toLowerCase() + ' in ' + names() : 'Nothing in ' + names() + ' right now') +\n        '</h3><button type=\"button\" class=\"rt-cs__up\" data-up>Change colors &uarr;</button></div>';\n    }\n    function scrollToResults() {\n      var hdr = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--rt-hdr-h'), 10) || 120;\n      var y = res.getBoundingClientRect().top + window.pageYOffset - hdr - 16;\n      var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n      window.scrollTo({ top: y, behavior: reduce ? 'auto' : 'smooth' });\n      var h = res.querySelector('[data-rhead]'); if (h) setTimeout(function () { h.focus({ preventScroll: true }); }, reduce ? 0 : 450);\n    }\n    function draw() {\n      if (!last.length) {\n        var tips = FAMS.filter(function (f) { return sel.indexOf(f.id) < 0; }).slice(0, 4);\n        res.innerHTML = head() + '<div class=\"rt-cs__empty\"><p>We do not have that shade in stock right now. Try one of these, or <a href=\"/collections/essential-collection\">browse all towels</a>.</p><div class=\"rt-cs__tips\">' +\n          tips.map(function (f) { return '<button type=\"button\" class=\"rt-cs__tip\" data-tip=\"' + f.id + '\"><i class=\"rt-hx\" style=\"--c:' + f.hex + '\"></i>' + f.label + '</button>'; }).join('') + '</div></div>';\n        return;\n      }\n      res.innerHTML = head() + '<div class=\"rt-grid4\">' + last.slice(0, shown).map(cardHtml).join('') + '</div>' +\n        (last.length > shown ? '<div class=\"rt-cs__more\"><button type=\"button\" class=\"rt-btn rt-btn--light\" data-more>Show more (' + (last.length - shown) + ')</button></div>' : '');\n    }\n    function run() {\n      if (!sel.length) return;\n      var list = cat ? [cat] : handles;\n      if (!list.length) list = ['all'];\n      res.hidden = false; res.innerHTML = '<p class=\"rt-cs__empty\">Gathering colors\u2026</p>'; scrollToResults();\n      go.disabled = true;\n      Promise.all(list.map(loadCollection)).then(function (arrs) {\n        var byId = {}, products = [];\n        arrs.forEach(function (a) { a.forEach(function (p) { if (!byId[p.id]) { byId[p.id] = 1; products.push(p); } }); });\n        last = matchProducts(products, sel); shown = limit; draw();\n        hint.textContent = last.length + ' match' + (last.length === 1 ? '' : 'es') + ' in ' + names();\n        requestAnimationFrame(scrollToResults);\n        go.disabled = false;\n        try { history.replaceState(null, '', '#col=' + sel.join(',')); } catch (e) {}\n      });\n    }\n    swWrap.addEventListener('click', function (e) {\n      var b = e.target.closest('.rt-cs__sw'); if (!b) return;\n      var id = b.getAttribute('data-fam'), k = sel.indexOf(id);\n      if (k > -1) sel.splice(k, 1); else sel.push(id);\n      render();\n    });\n    cs.addEventListener('click', function (e) {\n      var c = e.target.closest('[data-cat]');\n      if (c) { cat = c.getAttribute('data-cat'); cs.querySelectorAll('[data-cat]').forEach(function (x) { x.setAttribute('aria-pressed', String(x === c)); }); if (sel.length && !res.hidden) run(); }\n      if (e.target.closest('[data-more]')) { shown += limit; draw(); }\n      if (e.target.closest('[data-up]')) { var r = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; cs.scrollIntoView({ behavior: r ? 'auto' : 'smooth' }); var f = swWrap.querySelector('.rt-cs__sw'); if (f) f.focus({ preventScroll: true }); }\n      var t = e.target.closest('[data-tip]'); if (t) { sel = [t.getAttribute('data-tip')]; render(); run(); }\n    });\n    go.addEventListener('click', run);\n    // Enter on a swatch or category chip runs the search (Space still toggles)\n    cs.addEventListener('keydown', function (e) {\n      if (e.key !== 'Enter') return;\n      var sw = e.target.closest('.rt-cs__sw'), ch = e.target.closest('[data-cat]');\n      if (!sw && !ch) return;\n      e.preventDefault();\n      if (sw) { var id = sw.getAttribute('data-fam'); if (sel.indexOf(id) < 0) { sel.push(id); render(); } }\n      if (ch) ch.click();\n      if (sel.length) run();\n    });\n    render();\n    var m = (location.hash || '').match(/col=([a-z,]+)/);\n    if (m) { sel = m[1].split(',').filter(function (id) { return famById[id]; }); render(); if (sel.length) { try { history.scrollRestoration = 'manual'; } catch (e) {} run(); var again = function () { setTimeout(scrollToResults, 400); }; if (document.readyState === 'complete') again(); else window.addEventListener('load', again); setTimeout(scrollToResults, 1800); } }\n  });\n\n  /* ---------- color ribbon on collection pages: filter in place ---------- */\n  document.querySelectorAll('[data-rt-ribbon]').forEach(function (rb) {\n    var handle = rb.getAttribute('data-collection'), out = document.querySelector(rb.getAttribute('data-target') || '[data-rt-ribbon-results]');\n    var row = rb.querySelector('.rt-ribbon__row');\n    FAMS.forEach(function (f) {\n      var b = document.createElement('button'); b.type = 'button'; b.className = 'rt-ribbon__sw'; b.setAttribute('data-fam', f.id); b.setAttribute('aria-pressed', 'false');\n      b.innerHTML = '<i class=\"rt-hx\" style=\"--c:' + f.hex + '\"></i><span>' + f.label + '</span>';\n      row.appendChild(b);\n    });\n    /* R46: only offer colors this collection has in stock; the rest sit greyed out on a second row */\n    loadCollection(handle).then(function (ps) {\n      var none = row.parentNode.querySelector('.rt-ribbon__row--none');\n      FAMS.forEach(function (f) {\n        var b = row.querySelector('[data-fam=\"' + f.id + '\"]'); if (!b) return;\n        var n = matchProducts(ps, [f.id]).length;\n        if (n) { b.setAttribute('title', f.label + ' \\u00b7 ' + n + ' in stock'); return; }\n        if (!none) { none = document.createElement('div'); none.className = 'rt-ribbon__row rt-ribbon__row--none'; none.setAttribute('aria-label', 'Colors not in stock right now'); row.parentNode.insertBefore(none, row.nextSibling); }\n        b.disabled = true; b.classList.add('rt-ribbon__sw--none'); b.setAttribute('title', f.label + ' \\u00b7 not in stock right now'); b.setAttribute('aria-disabled', 'true');\n        none.appendChild(b);\n      });\n      if (none) rb.classList.add('rt-ribbon--split');\n    }).catch(function () {});\n    var clearAll = function () {\n      row.querySelectorAll('.rt-ribbon__sw').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); });\n      if (out) { out.hidden = true; out.innerHTML = ''; }\n      rb.classList.remove('rt-ribbon--on');\n      try { history.replaceState(null, '', location.pathname + location.search); } catch (x) {}\n      var g = document.querySelector('.rt-chero') || rb; var hdr = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--rt-hdr-h'), 10) || 120;\n      window.scrollTo({ top: Math.max(0, g.getBoundingClientRect().bottom + window.pageYOffset - hdr - 12), behavior: 'smooth' });\n    };\n    var clr = document.createElement('button'); clr.type = 'button'; clr.className = 'rt-ribbon__clear'; clr.innerHTML = '&times; All colors'; clr.addEventListener('click', clearAll);\n    row.parentNode.insertBefore(clr, row.nextSibling);\n    if (out) out.addEventListener('click', function (e) { if (e.target.closest('[data-ribbon-clear]')) { clearAll(); return; } if (e.target.closest('[data-ribbon-up]')) { rb.scrollIntoView({ behavior: 'smooth', block: 'center' }); var f = row.querySelector('[aria-pressed=\"true\"]') || row.querySelector('.rt-ribbon__sw'); if (f) f.focus({ preventScroll: true }); } });\n    row.addEventListener('click', function (e) {\n      var b = e.target.closest('.rt-ribbon__sw'); if (!b || !out || b.disabled) return;\n      var on = b.getAttribute('aria-pressed') !== 'true';\n      row.querySelectorAll('.rt-ribbon__sw').forEach(function (x) { x.setAttribute('aria-pressed', 'false'); });\n      if (!on) { clearAll(); return; }\n      b.setAttribute('aria-pressed', 'true'); rb.classList.add('rt-ribbon--on');\n      out.hidden = false; out.innerHTML = '<p class=\"rt-cs__empty\" style=\"color:var(--rt-navy)\">Finding ' + famById[b.getAttribute('data-fam')].label.toLowerCase() + '\u2026</p>';\n      var goDown = function () {\n        var hdr = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--rt-hdr-h'), 10) || 120;\n        var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n        window.scrollTo({ top: out.getBoundingClientRect().top + window.pageYOffset - hdr - 12, behavior: reduce ? 'auto' : 'smooth' });\n        var h = out.querySelector('[data-rhead]'); if (h) setTimeout(function () { h.focus({ preventScroll: true }); }, reduce ? 0 : 450);\n      };\n      goDown();\n      loadCollection(handle).then(function (ps) {\n        var hits = matchProducts(ps, [b.getAttribute('data-fam')]);\n        var lbl = esc(famById[b.getAttribute('data-fam')].label);\n        var hd = '<div class=\"rt-cs__rhead\"><h2 class=\"rt-cs__rtitle\" tabindex=\"-1\" data-rhead>' + (hits.length ? 'Showing ' + hits.length + ' in ' + lbl : 'No ' + lbl.toLowerCase() + ' here right now') + '</h2><span class=\"rt-cs__rbtns\"><button type=\"button\" class=\"rt-cs__up\" data-ribbon-up>Change color &uarr;</button><button type=\"button\" class=\"rt-cs__up rt-cs__up--clear\" data-ribbon-clear>&times; Show all</button></span></div>';\n        out.innerHTML = '<div class=\"rt-wrap\" style=\"padding-top:34px;padding-bottom:30px\">' + hd + (hits.length ? '<div class=\"rt-grid4\">' + hits.slice(0, 48).map(cardHtml).join('') + '</div>' : '<p class=\"rt-cs__empty\" style=\"color:var(--rt-navy)\">Try another color, or scroll down to see the whole collection.</p>') + '</div>';\n        requestAnimationFrame(goDown);\n      });\n    });\n  });\n\n  /* ---------- add several variants to cart (Build a Set, Complete the set) ---------- */\n  function addToCart(items, btn, msgEl, okText) {\n    if (btn) btn.disabled = true;\n    return fetch(root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify({ items: items }) })\n      .then(function (r) { return r.json().then(function (j) { if (!r.ok) throw j; return j; }); })\n      .then(function () {\n        if (msgEl) msgEl.textContent = okText || 'Added to your bag \u2713';\n        return fetch(root + 'cart.js').then(function (r) { return r.json(); }).then(function (c) {\n          var bubble = document.getElementById('cart-icon-bubble');\n          if (bubble) {\n            var n = bubble.querySelector('.cart-count-bubble');\n            if (!n) { n = document.createElement('div'); n.className = 'cart-count-bubble'; bubble.appendChild(n); }\n            n.innerHTML = '<span aria-hidden=\"true\">' + c.item_count + '</span>';\n          }\n          document.dispatchEvent(new CustomEvent('rt:cart', { detail: c }));\n        });\n      })\n      .catch(function (err) { if (msgEl) msgEl.textContent = (err && (err.description || err.message)) || 'Sorry, that could not be added.'; })\n      .then(function () { if (btn) btn.disabled = false; });\n  }\n  document.addEventListener('click', function (e) {\n    var b = e.target.closest('[data-add]'); if (!b) return;\n    var ids = b.getAttribute('data-add').split(',').filter(Boolean);\n    var card = b.closest('[data-rt-set], .rt-complete__item');\n    addToCart(ids.map(function (id) { return { id: +id, quantity: 1 }; }), b, card && card.querySelector('[data-msg]'));\n  });\n\n  /* ---------- gift wrap + handwritten note on product page ---------- */\n  document.querySelectorAll('[data-rt-giftcard]').forEach(function (g) {\n    var cb = g.querySelector('input[type=checkbox]'), ta = g.querySelector('textarea');\n    var form = document.querySelector('form[action*=\"/cart/add\"][data-type=\"add-to-cart-form\"]') || document.querySelector('product-form form');\n    cb.addEventListener('change', function () { g.classList.toggle('is-on', cb.checked); if (cb.checked) ta.focus(); });\n    if (!form) return;\n    form.addEventListener('submit', function () {\n      if (!cb.checked) return;\n      var wrapId = g.getAttribute('data-variant');\n      var note = ta.value.trim();\n      var items = [];\n      if (wrapId) items.push({ id: +wrapId, quantity: 1, properties: note ? { 'Handwritten note': note } : {} });\n      if (items.length) setTimeout(function () { addToCart(items, null, null); }, 900);\n      if (note && !wrapId) fetch(root + 'cart/update.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ note: 'Handwritten note: ' + note }) });\n    }, true);\n  });\n\n  /* ---------- free shipping progress ---------- */\n  function shipBars(cart) {\n    document.querySelectorAll('[data-rt-ship]').forEach(function (s) {\n      var goal = parseInt(s.getAttribute('data-goal'), 10) || 7500, have = cart ? cart.total_price : parseInt(s.getAttribute('data-have'), 10) || 0;\n      var left = Math.max(0, goal - have), pct = Math.min(100, Math.round(have / goal * 100));\n      var t = s.querySelector('[data-text]'), bar = s.querySelector('i');\n      if (t) t.innerHTML = left ? 'You\\'re <b>' + money(left) + '</b> away from free shipping' : '<b>You\\'ve unlocked free shipping!</b>';\n      if (bar) bar.style.width = pct + '%';\n    });\n  }\n  shipBars(null);\n  document.addEventListener('rt:cart', function (e) { shipBars(e.detail); });\n  ['cart:updated', 'cart-update'].forEach(function (ev) { document.addEventListener(ev, function () { fetch(root + 'cart.js').then(function (r) { return r.json(); }).then(shipBars); }); });\n\n  /* ---------- recently viewed ---------- */\n  var KEY = 'rt_recent';\n  var cur = document.querySelector('[data-rt-product-handle]');\n  var list = [];\n  try { list = JSON.parse(localStorage.getItem(KEY) || '[]'); } catch (e) {}\n  if (cur) {\n    var h = cur.getAttribute('data-rt-product-handle');\n    list = [h].concat(list.filter(function (x) { return x !== h; })).slice(0, 12);\n    try { localStorage.setItem(KEY, JSON.stringify(list)); } catch (e) {}\n  }\n  document.querySelectorAll('[data-rt-recent]').forEach(function (box) {\n    var skip = cur ? cur.getAttribute('data-rt-product-handle') : '';\n    var hs = list.filter(function (x) { return x !== skip; }).slice(0, 4);\n    if (!hs.length) return;\n    Promise.all(hs.map(function (hh) { return fetch(root + 'products/' + hh + '.js').then(function (r) { return r.ok ? r.json() : null; }).catch(function () { return null; }); }))\n      .then(function (ps) {\n        ps = ps.filter(Boolean); if (!ps.length) return;\n        box.querySelector('[data-grid]').innerHTML = ps.map(function (p) {\n          var img = p.featured_image ? (p.featured_image.indexOf('//') === 0 ? 'https:' + p.featured_image : p.featured_image) : '';\n          return '<a class=\"rt-card\" href=\"' + p.url + '\"><span class=\"rt-arch\" style=\"aspect-ratio:4/5\">' + (img ? '<img src=\"' + esc(sized(img, 600)) + '\" alt=\"' + esc(p.title) + '\" loading=\"lazy\">' : '') + '</span><span class=\"rt-card__name\">' + esc(p.title.split(' - RT')[0]) + '</span>' + (NOPRICE ? '' : '<span class=\"rt-card__price\">' + (p.price_varies ? 'from ' : '') + money(p.price) + '</span>') + '</a>';\n        }).join('');\n        box.hidden = false;\n      });\n  });\n  /* ---------- color dots on product color pills ---------- */\n  function dotify(scope) {\n    (scope || document).querySelectorAll('fieldset.product-form__input').forEach(function (fs) {\n      var lg = fs.querySelector('legend'); if (!lg || !/colou?r/i.test(lg.textContent)) return;\n      fs.querySelectorAll('input[type=radio] + label').forEach(function (lb) {\n        if (lb.querySelector('.rt-dot')) return;\n        var name = (lb.textContent || '').trim(), hexes = FAMS.filter(function (f) { return f.re.test(name); }).map(function (f) { return f.hex; });\n        if (!hexes.length) return;\n        var d = document.createElement('i'); d.className = 'rt-dot';\n        d.style.background = hexes.length > 1 ? 'linear-gradient(135deg,' + hexes[0] + ' 50%,' + hexes[1] + ' 50%)' : hexes[0];\n        lb.insertBefore(d, lb.firstChild);\n      });\n    });\n  }\n  dotify();\n  var vp = document.querySelector('variant-selects');\n  if (vp && window.MutationObserver) new MutationObserver(function () { dotify(); }).observe(vp.parentNode, { childList: true, subtree: true });\n\n  /* ---------- mega menus: open under their own item, forgiving hover, clamp to viewport ---------- */\n  document.querySelectorAll('.rt-nav__item.has-mega').forEach(function (li) {\n    var panel = li.querySelector('[data-rt-mega]'), t;\n    if (!panel) return;\n    function place() {\n      panel.classList.remove('is-right');\n      var r = panel.getBoundingClientRect();\n      if (r.right > window.innerWidth - 16) panel.classList.add('is-right');\n    }\n    function open() { clearTimeout(t); var ae = document.activeElement; if (ae && ae.closest && ae.closest('.rt-nav__item') && !li.contains(ae)) ae.blur(); document.querySelectorAll('.rt-nav__item.is-open').forEach(function (o) { if (o !== li) o.classList.remove('is-open'); }); li.classList.add('is-open'); place(); }\n    function close() { clearTimeout(t); t = setTimeout(function () { li.classList.remove('is-open'); }, 260); }\n    li.addEventListener('mouseenter', open);\n    li.addEventListener('mouseleave', close);\n    li.addEventListener('focusin', open);\n    li.addEventListener('focusout', function (e) { if (!li.contains(e.relatedTarget)) close(); });\n    li.addEventListener('keydown', function (e) { if (e.key === 'Escape') { li.classList.remove('is-open'); li.querySelector('.rt-nav__link').focus(); } });\n  });\n})();\n\n/* Bundler (\"You got $X OFF your order\") pop-up: show it once, then hide it for 7 days. The bundle discount itself is untouched. */\n(function () {\n  var K = 'rt_bndlr_seen', DAY = 864e5, seen = 0;\n  try { seen = +localStorage.getItem(K) || 0; } catch (e) {}\n  if (Date.now() - seen < 7 * DAY) document.documentElement.classList.add('rt-bndlr-seen');\n  function mark() { try { localStorage.setItem(K, String(Date.now())); } catch (e) {} }\n  var mo = new MutationObserver(function () {\n    var m = document.getElementById('bndlr-discount-message');\n    if (!m) return;\n    if (document.documentElement.classList.contains('rt-bndlr-seen')) { m.style.display = 'none'; return; }\n    if (getComputedStyle(m).display !== 'none') { mark(); m.addEventListener('click', function () { document.documentElement.classList.add('rt-bndlr-seen'); }, { once: true }); }\n  });\n  mo.observe(document.documentElement, { childList: true, subtree: true });\n})();\n\n/* Collection header: 2-line description with Read more; chips keep the chosen color; #col= on load picks it and scrolls */\n(function () {\n  // Collection intro: two lines max, with \"Read more\" inline at the end of the second line\n  var d = document.querySelector('[data-rt-desc]');\n  if (d) {\n    var full = d.textContent.replace(/\\s+/g, ' ').trim(), open = false;\n    var btn = document.createElement('button'); btn.type = 'button'; btn.className = 'rt-chero__more';\n    var fit = function () {\n      d.classList.add('is-open'); d.textContent = full;\n      var lh = parseFloat(getComputedStyle(d).lineHeight) || 24, max = lh * 2 + 2;\n      if (open || d.scrollHeight <= max) { if (open) { d.appendChild(document.createTextNode(' ')); btn.textContent = 'Show less'; d.appendChild(btn); } return; }\n      btn.textContent = 'Read more';\n      var lo = 0, hi = full.length, cut = 0;\n      while (lo <= hi) {\n        var mid = (lo + hi) >> 1;\n        d.textContent = full.slice(0, mid).replace(/[\\s,.;:]+\\S*$/, '') + '\\u2026 '; d.appendChild(btn);\n        if (d.scrollHeight <= max) { cut = mid; lo = mid + 1; } else hi = mid - 1;\n      }\n      d.textContent = full.slice(0, cut).replace(/[\\s,.;:]+\\S*$/, '') + '\\u2026 '; d.appendChild(btn);\n    };\n    btn.addEventListener('click', function () { open = !open; fit(); });\n    fit();\n    var rz; window.addEventListener('resize', function () { clearTimeout(rz); rz = setTimeout(fit, 150); });\n  }\n  var rb = document.querySelector('.rt-chero__colors[data-rt-ribbon]'); if (!rb) return;\n  var pills = document.querySelector('[data-rt-pills]');\n  if (pills) pills.addEventListener('click', function (e) {\n    var a = e.target.closest('a'); if (a) a.href = a.href.split('#')[0]; /* switching collections always shows everything, no color filter */\n  });\n  var mm = (location.hash || '').match(/col=([a-z]+)/);\n  if (mm) {\n    try { history.scrollRestoration = 'manual'; } catch (e) {}\n    var tries = 0, t = setInterval(function () {\n      var b = rb.querySelector('.rt-ribbon__sw[data-fam=\"' + mm[1] + '\"]');\n      if (b || ++tries > 40) { clearInterval(t); if (b) b.click(); }\n    }, 100);\n  }\n  rb.addEventListener('click', function (e) {\n    var b = e.target.closest('.rt-ribbon__sw'); if (!b) return;\n    setTimeout(function () { try { history.replaceState(null, '', b.getAttribute('aria-pressed') === 'true' ? '#col=' + b.getAttribute('data-fam') : location.pathname + location.search); } catch (x) {} }, 0);\n  });\n})();\n\n/* Product page color picker: photo swatches, selected name in the label, sold-out colors tucked behind a toggle */\n(function () {\n  var fsAll = document.querySelectorAll('variant-selects fieldset.product-form__input'); if (!fsAll.length) return;\n  var handle = (document.querySelector('[data-rt-product-handle]') || {}).getAttribute ? document.querySelector('[data-rt-product-handle]').getAttribute('data-rt-product-handle') : null;\n  if (!handle) return;\n  fetch('/products/' + handle + '.js').then(function (r) { return r.json(); }).then(function (p) {\n    var ci = p.options.findIndex(function (o) { return /colou?r/i.test(o.name || o); }); if (ci < 0) return;\n    var key = 'option' + (ci + 1), img = {}, avail = {};\n    var qty = {}, RTQ = {}; try { var qe = document.querySelector('[data-rt-qty]'); if (qe) RTQ = JSON.parse(qe.textContent) || {}; } catch (e) {}\n    p.variants.forEach(function (v) { var val = v[key]; if (v.featured_image && !img[val]) img[val] = v.featured_image.src; avail[val] = avail[val] || v.available; if (v.inventory_quantity > 0) qty[val] = (qty[val] || 0) + v.inventory_quantity; });\n    function build() {\n      document.querySelectorAll('variant-selects fieldset.product-form__input').forEach(function (fs) {\n        var lg = fs.querySelector('legend'); if (!lg || !/colou?r/i.test(lg.textContent)) return;\n        if (fs.classList.contains('rt-swatched') && fs.querySelector('.rt-sw')) return;\n        fs.classList.add('rt-swatched');\n        var labels = [].slice.call(fs.querySelectorAll('input[type=radio] + label')), sold = 0, total = labels.length;\n        labels.forEach(function (lb) {\n          /* R39: name from the option value (the label text also holds Dawn's hidden \"Variant sold out or unavailable\") */\n          var inp = lb.previousElementSibling, val = inp.value, name = val;\n          var note = avail[val] === false ? 'sold out' : (RTQ[val] > 0 ? RTQ[val] + ' in stock in Santa Barbara' : 'in stock in Santa Barbara');\n          lb.setAttribute('title', name + ' \\u00b7 ' + note);\n          lb.setAttribute('aria-label', name + ', ' + note);\n          lb.classList.add('rt-sw');\n          if (img[val]) { var u = img[val].replace(/(\\.(jpe?g|png|webp))(\\?|$)/i, '_120x$1$3'); lb.style.setProperty('--sw', 'url(\"' + u + '\")'); lb.classList.add('rt-sw--img'); }\n          if (avail[val] === false) { lb.classList.add('rt-sw--sold'); inp.parentNode && (sold++); }\n        });\n        var cur = fs.querySelector('input[type=radio]:checked');\n        var name = cur ? cur.value : '';\n        if (!lg.querySelector('.rt-sw-name')) lg.insertAdjacentHTML('beforeend', ' <span class=\"rt-sw-name\"></span><span class=\"rt-sw-count\"></span>');\n        lg.querySelector('.rt-sw-name').textContent = name;\n        rtStockLabel(); /* R40: show the highlighted color's Santa Barbara count, not how many colors are in stock */\n        if (false && sold && !fs.querySelector('.rt-sw-more')) { /* R34: sold-out colors stay visible, struck through */\n          fs.classList.add('rt-hide-sold');\n          var b = document.createElement('button'); b.type = 'button'; b.className = 'rt-sw-more'; b.textContent = '+ ' + sold + ' sold out';\n          b.addEventListener('click', function () { var h = fs.classList.toggle('rt-hide-sold'); b.textContent = h ? '+ ' + sold + ' sold out' : 'Hide sold out'; });\n          fs.appendChild(b);\n        }\n      });\n    }\n    function rtStockLabel() {\n      var c = document.querySelector('.rt-swatched .rt-sw-count'); if (!c) return;\n      var inv = document.querySelector('.product__inventory, [id^=\"Inventory-\"]');\n      var t = inv ? inv.textContent.replace(/\\s+/g, ' ').trim() : '', m;\n      var cur = document.querySelector('.rt-swatched input[type=radio]:checked');\n      if (cur && cur.nextElementSibling && cur.nextElementSibling.classList.contains('rt-sw--sold')) c.textContent = ' \\u00b7 sold out';\n      else if ((m = t.match(/(\\d+)\\s+in stock/i))) c.textContent = ' \\u00b7 ' + m[1] + ' in stock in Santa Barbara';\n      else if ((m = t.match(/(\\d+)\\s+left/i))) c.textContent = ' \\u00b7 only ' + m[1] + ' left in Santa Barbara';\n      else c.textContent = '';\n    }\n    var invEl = document.querySelector('.product__inventory, [id^=\"Inventory-\"]');\n    if (invEl && window.MutationObserver) new MutationObserver(function () { setTimeout(rtStockLabel, 20); }).observe(invEl, { childList: true, subtree: true, characterData: true });\n    build();\n    document.addEventListener('change', function (e) { if (e.target.closest && e.target.closest('variant-selects')) setTimeout(build, 60); });\n    var vs = document.querySelector('variant-selects');\n    if (vs && window.MutationObserver) new MutationObserver(function () { setTimeout(build, 30); }).observe(vs.parentNode, { childList: true, subtree: true });\n  }).catch(function () {});\n})();\n\n/* R50: Show more on collection grids */\ndocument.addEventListener('click', function (e) {\n  var b = e.target.closest && e.target.closest('[data-rt-more-grid]'); if (!b) return;\n  var hidden = document.querySelectorAll('.grid__item.rt-more-hidden'), n = 0;\n  for (var i = 0; i < hidden.length && n < 36; i++) { hidden[i].classList.remove('rt-more-hidden'); n++; }\n  var left = document.querySelectorAll('.grid__item.rt-more-hidden').length;\n  if (left) b.textContent = 'Show more (' + left + ')'; else b.parentNode.removeChild(b);\n});\n"],
  "mappings": "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",
  "names": ["h", "list", "name"]
}
