{"product_id":"hot-dog-shaped-pet-bed","title":"Hot Dog Shaped Pet Bed","description":"\u003cdiv style=\"font-family: Inter,Arial,sans-serif; color: #16171b; max-width: 720px;\"\u003e\n\u003cdiv style=\"display: flex; align-items: center; gap: 8px; font-size: 14px; color: #57585f; margin-bottom: 10px;\"\u003e\n\u003cspan style=\"color: #b8862e; letter-spacing: 1px;\"\u003e★★★★★\u003c\/span\u003e \u003cstrong style=\"color: #16171b;\"\u003e4.8\/5\u003c\/strong\u003e (263 reviews) · 970+ sold\u003c\/div\u003e\n\u003cdiv id=\"vsDynamicPrice_hotdogbed\" style=\"display: flex; align-items: baseline; gap: 12px; margin-bottom: 4px; flex-wrap: wrap;\"\u003e\n\u003cspan id=\"vsSalePrice_hotdogbed\" style=\"font-size: 30px; font-weight: bold;\"\u003e€34.90\u003c\/span\u003e \u003cspan id=\"vsComparePrice_hotdogbed\" style=\"font-size: 16px; color: #57585f; text-decoration: line-through;\"\u003e€54.90\u003c\/span\u003e \u003cspan id=\"vsDiscountBadge_hotdogbed\" style=\"background: #FFF1EA; color: #c43813; font-size: 12px; font-weight: bold; padding: 4px 10px; border-radius: 99px;\"\u003e-36%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp id=\"vsVariantPriceNote_hotdogbed\" style=\"font-size: 12.5px; color: #57585f; margin: 0 0 18px;\"\u003eTax included. Shipping calculated at checkout.\u003c\/p\u003e\n\u003cscript\u003e\n(function(){\n  var saleEl = document.getElementById('vsSalePrice_hotdogbed');\n  var compareEl = document.getElementById('vsComparePrice_hotdogbed');\n  var badgeEl = document.getElementById('vsDiscountBadge_hotdogbed');\n  var noteEl = document.getElementById('vsVariantPriceNote_hotdogbed');\n  var productData = null;\n  var lastVariantId = null;\n\n  if (!saleEl || !compareEl || !badgeEl) return;\n\n  function productJsonUrl(){\n    return window.location.pathname.replace(\/\\\/$\/, '') + '.js';\n  }\n\n  function formatMoney(cents){\n    var currency = (window.Shopify \u0026\u0026 Shopify.currency \u0026\u0026 Shopify.currency.active) || 'EUR';\n    try {\n      return new Intl.NumberFormat(document.documentElement.lang || 'en', {\n        style: 'currency',\n        currency: currency\n      }).format(cents \/ 100);\n    } catch (e) {\n      return '€' + (cents \/ 100).toFixed(2);\n    }\n  }\n\n  function selectedVariantId(){\n    \/*\n      Spotlight updates the variant ID in the page URL.\n      Read the URL first because some hidden product-form inputs can remain\n      on the initially selected variant.\n    *\/\n    var fromUrl = new URL(window.location.href).searchParams.get('variant');\n    if (fromUrl) return String(fromUrl);\n\n    var checkedRadio = document.querySelector(\n      'input[type=\"radio\"][name^=\"options\"]:checked, ' +\n      'input[type=\"radio\"][name=\"id\"]:checked'\n    );\n\n    if (checkedRadio \u0026\u0026 checkedRadio.value) {\n      var directVariant = productData \u0026\u0026 productData.variants\n        ? productData.variants.find(function(item){\n            return String(item.id) === String(checkedRadio.value);\n          })\n        : null;\n\n      if (directVariant) return String(directVariant.id);\n    }\n\n    var forms = document.querySelectorAll(\n      'form[action*=\"\/cart\/add\"], product-form form'\n    );\n\n    for (var i = 0; i \u003c forms.length; i++) {\n      var input = forms[i].querySelector('[name=\"id\"]');\n      if (input \u0026\u0026 input.value) return String(input.value);\n    }\n\n    var fallback = document.querySelector(\n      'input[name=\"id\"], select[name=\"id\"]'\n    );\n\n    return fallback \u0026\u0026 fallback.value ? String(fallback.value) : null;\n  }\n\n  function render(variant){\n    var price = Number(variant.price || 0);\n    var compareAt = Number(variant.compare_at_price || 0);\n\n    saleEl.textContent = formatMoney(price);\n\n    if (compareAt \u003e price) {\n      compareEl.textContent = formatMoney(compareAt);\n      compareEl.style.display = '';\n      badgeEl.textContent = '-' + Math.round(((compareAt - price) \/ compareAt) * 100) + '%';\n      badgeEl.style.display = '';\n    } else {\n      compareEl.style.display = 'none';\n      badgeEl.style.display = 'none';\n    }\n\n    if (noteEl) {\n      var variantText = variant.title \u0026\u0026 variant.title !== 'Default Title'\n        ? ' Selected variant: ' + variant.title + '.'\n        : '';\n      noteEl.textContent = 'Tax included. Shipping calculated at checkout.' + variantText;\n    }\n  }\n\n  function update(){\n    if (!productData || !Array.isArray(productData.variants)) return;\n\n    var id = selectedVariantId();\n    if (!id) return;\n\n    var variant = productData.variants.find(function(item){\n      return String(item.id) === id;\n    });\n\n    if (!variant) return;\n\n    if (lastVariantId !== id) {\n      lastVariantId = id;\n      render(variant);\n    }\n  }\n\n  function queueUpdate(){\n    [0, 50, 150, 350].forEach(function(delay){\n      setTimeout(update, delay);\n    });\n  }\n\n  fetch(productJsonUrl(), {\n    credentials: 'same-origin',\n    headers: { 'Accept': 'application\/json' }\n  })\n  .then(function(response){\n    if (!response.ok) throw new Error('Unable to load product data');\n    return response.json();\n  })\n  .then(function(data){\n    productData = data;\n    queueUpdate();\n  })\n  .catch(function(error){\n    console.warn('Dynamic variant price could not be loaded:', error);\n  });\n\n  document.addEventListener('change', queueUpdate, true);\n  document.addEventListener('input', queueUpdate, true);\n  document.addEventListener('variant:change', queueUpdate);\n  document.addEventListener('variantChange', queueUpdate);\n\n  var observer = new MutationObserver(queueUpdate);\n  observer.observe(document.body, {\n    childList: true,\n    subtree: true,\n    attributes: true,\n    attributeFilter: ['value', 'selected', 'checked']\n  });\n\n  window.addEventListener('popstate', queueUpdate);\n\n  \/*\n    Shopify themes commonly change ?variant= with history.replaceState,\n    which does not fire popstate. This lightweight check catches that\n    change and refreshes the custom price immediately.\n  *\/\n  var lastUrl = window.location.href;\n\n  setInterval(function(){\n    if (window.location.href !== lastUrl) {\n      lastUrl = window.location.href;\n      lastVariantId = null;\n      queueUpdate();\n    } else {\n      update();\n    }\n  }, 250);\n})();\n\u003c\/script\u003e\n\u003cdiv style=\"display: flex; background: linear-gradient(135deg,#FFF6F1,#FFEDE3); border: 1px solid #F3CBBB; border-radius: 12px; overflow: hidden; margin-bottom: 12px; box-shadow: 0 1px 3px rgba(196,56,19,0.06);\"\u003e\n\u003cdiv style=\"flex: 1; padding: 14px 18px;\"\u003e\n\u003cdiv style=\"font-family: monospace; font-size: 11px; font-weight: bold; letter-spacing: .05em; text-transform: uppercase; color: #c43813; margin-bottom: 9px;\"\u003eOffer ends in\u003c\/div\u003e\n\u003cdiv id=\"vsTimer_hotdogbed\" style=\"font-family: monospace; font-weight: bold; font-size: 19px; color: #16171b; display: inline-block; background: linear-gradient(180deg,#ffffff,#f7f5f0); padding: 6px 14px; border-radius: 8px; box-shadow: 0 2px 5px rgba(196,56,19,0.15), inset 0 1px 0 rgba(255,255,255,0.8);\"\u003e24:00:00\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"flex: 1; padding: 14px 18px; border-left: 1px solid #F3CBBB;\"\u003e\n\u003cdiv style=\"font-family: monospace; font-size: 11px; font-weight: bold; letter-spacing: .05em; text-transform: uppercase; color: #c43813; margin-bottom: 9px;\"\u003eStock left\u003c\/div\u003e\n\u003cdiv style=\"height: 6px; background: #F3CBBB; border-radius: 4px; overflow: hidden; margin-bottom: 8px;\"\u003e\n\u003cdiv id=\"vsStockBar_hotdogbed\" style=\"height: 100%; width: 24%; background: linear-gradient(90deg,#E8481C,#C43813); border-radius: 4px; transition: width .35s ease;\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"vsStockText_hotdogbed\" style=\"font-size: 12.5px; color: #c43813; font-weight: bold;\"\u003eOnly 12 left in stock\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var KEY = 'vs_offer_deadline_hotdogbed';\n  var CYCLE = 24 * 60 * 60 * 1000;\n  function getDeadline(){\n    var d = localStorage.getItem(KEY);\n    var now = Date.now();\n    if (!d || now \u003e= parseInt(d, 10)) {\n      d = now + CYCLE;\n      localStorage.setItem(KEY, d);\n    }\n    return parseInt(d, 10);\n  }\n  function tick(){\n    var el = document.getElementById('vsTimer_hotdogbed');\n    if (!el) return;\n    var diff = Math.max(0, getDeadline() - Date.now());\n    var h = String(Math.floor(diff \/ 3600000)).padStart(2, '0');\n    var m = String(Math.floor((diff % 3600000) \/ 60000)).padStart(2, '0');\n    var s = String(Math.floor((diff % 60000) \/ 1000)).padStart(2, '0');\n    el.textContent = h + ':' + m + ':' + s;\n    if (diff \u003c= 0) localStorage.removeItem(KEY);\n  }\n  tick();\n  setInterval(tick, 1000);\n})();\n\u003c\/script\u003e \u003cscript\u003e\n(function(){\n  var PRODUCT_KEY = 'hotdogbed';\n  var stockText = document.getElementById('vsStockText_' + PRODUCT_KEY);\n  var stockBar = document.getElementById('vsStockBar_' + PRODUCT_KEY);\n\n  if (!stockText || !stockBar) return;\n\n  var inventoryData = null;\n  var lastVariantId = null;\n  var lastUrl = window.location.href;\n  var FALLBACK_STOCK = 12;\n\n  function loadInventoryData(){\n    var dataElement = document.getElementById('vsInventoryData_' + PRODUCT_KEY);\n\n    if (!dataElement) return false;\n\n    try {\n      inventoryData = JSON.parse(dataElement.textContent);\n      FALLBACK_STOCK = Number(inventoryData.fallback || 12);\n      return true;\n    } catch (error) {\n      console.warn('Dynamic inventory data could not be read:', error);\n      return false;\n    }\n  }\n\n  function selectedVariantId(){\n    var fromUrl = new URL(window.location.href).searchParams.get('variant');\n    if (fromUrl) return String(fromUrl);\n\n    var forms = document.querySelectorAll(\n      'form[action*=\"\/cart\/add\"], product-form form'\n    );\n\n    for (var i = 0; i \u003c forms.length; i++) {\n      var input = forms[i].querySelector('[name=\"id\"]');\n      if (input \u0026\u0026 input.value) return String(input.value);\n    }\n\n    var fallbackInput = document.querySelector(\n      'input[name=\"id\"], select[name=\"id\"]'\n    );\n\n    return fallbackInput \u0026\u0026 fallbackInput.value\n      ? String(fallbackInput.value)\n      : null;\n  }\n\n  function setBar(quantity, isFallback){\n    var percent;\n\n    if (isFallback) {\n      percent = 24;\n    } else if (quantity \u003c= 0) {\n      percent = 0;\n    } else {\n      percent = Math.max(6, Math.min(100, (quantity \/ 50) * 100));\n    }\n\n    stockBar.style.width = percent + '%';\n  }\n\n  function showFallback(){\n    stockText.textContent =\n      FALLBACK_STOCK === 1\n        ? 'Only 1 left in stock'\n        : 'Only ' + FALLBACK_STOCK + ' left in stock';\n\n    stockText.style.color = '#C43813';\n    setBar(FALLBACK_STOCK, true);\n  }\n\n  function render(variant){\n    if (!variant) {\n      showFallback();\n      return;\n    }\n\n    var isTracked =\n      variant.inventory_management !== null \u0026\u0026\n      variant.inventory_management !== false \u0026\u0026\n      variant.inventory_management !== '' \u0026\u0026\n      Number.isFinite(Number(variant.inventory_quantity));\n\n    if (!isTracked) {\n      showFallback();\n      return;\n    }\n\n    var quantity = Math.max(0, Number(variant.inventory_quantity));\n\n    if (quantity \u003e 1) {\n      stockText.textContent = 'Only ' + quantity + ' left in stock';\n      stockText.style.color = '#C43813';\n      setBar(quantity, false);\n      return;\n    }\n\n    if (quantity === 1) {\n      stockText.textContent = 'Only 1 left in stock';\n      stockText.style.color = '#C43813';\n      setBar(1, false);\n      return;\n    }\n\n    if (variant.available) {\n      stockText.textContent = 'Available to order';\n      stockText.style.color = '#C43813';\n    } else {\n      stockText.textContent = 'Out of stock';\n      stockText.style.color = '#8A1C1C';\n    }\n\n    setBar(0, false);\n  }\n\n  function update(){\n    if (!inventoryData \u0026\u0026 !loadInventoryData()) {\n      showFallback();\n      return;\n    }\n\n    if (!inventoryData || !Array.isArray(inventoryData.variants)) {\n      showFallback();\n      return;\n    }\n\n    var variantId = selectedVariantId();\n\n    if (!variantId) {\n      showFallback();\n      return;\n    }\n\n    var variant = inventoryData.variants.find(function(item){\n      return String(item.id) === String(variantId);\n    });\n\n    if (!variant) {\n      showFallback();\n      return;\n    }\n\n    if (lastVariantId !== variantId) {\n      lastVariantId = variantId;\n      render(variant);\n    }\n  }\n\n  function queueUpdate(){\n    [0, 50, 150, 350].forEach(function(delay){\n      setTimeout(update, delay);\n    });\n  }\n\n  document.addEventListener('change', function(){\n    lastVariantId = null;\n    queueUpdate();\n  }, true);\n\n  document.addEventListener('input', function(){\n    lastVariantId = null;\n    queueUpdate();\n  }, true);\n\n  document.addEventListener('variant:change', function(){\n    lastVariantId = null;\n    queueUpdate();\n  });\n\n  document.addEventListener('variantChange', function(){\n    lastVariantId = null;\n    queueUpdate();\n  });\n\n  window.addEventListener('popstate', function(){\n    lastVariantId = null;\n    queueUpdate();\n  });\n\n  setInterval(function(){\n    if (window.location.href !== lastUrl) {\n      lastUrl = window.location.href;\n      lastVariantId = null;\n      queueUpdate();\n    } else {\n      update();\n    }\n  }, 250);\n\n  var attempts = 0;\n  var loader = setInterval(function(){\n    attempts++;\n\n    if (loadInventoryData()) {\n      clearInterval(loader);\n      queueUpdate();\n    }\n\n    if (attempts \u003e= 20) {\n      clearInterval(loader);\n      showFallback();\n    }\n  }, 250);\n\n  queueUpdate();\n})();\n\u003c\/script\u003e\n\u003cp style=\"font-size: 12px; color: #57585f; text-align: center; margin: 4px 0 24px;\"\u003eSecure payment · Shipped within 24h\u003c\/p\u003e\n\u003cvideo autoplay=\"autoplay\" muted=\"\" loop=\"loop\" playsinline=\"\" controls=\"controls\" style=\"width: 100%; border-radius: 14px; margin-bottom: 24px; display: block;\"\u003e\n\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/9bee8c354f004eeca5bfff5de72b2c97.mp4\" type=\"video\/mp4\"\u003e\nYour browser does not support the video tag.\n\u003c\/source\u003e\u003c\/video\u003e\n\u003cdiv style=\"display: flex; justify-content: space-around; flex-wrap: wrap; gap: 14px; padding: 18px 0; border-top: 1px solid #E4E1D8; border-bottom: 1px solid #E4E1D8; margin-bottom: 28px; text-align: center;\"\u003e\n\u003cdiv style=\"font-size: 12px; color: #57585f; font-weight: 600;\"\u003e🚚\u003cbr\u003eFast shipping\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #57585f; font-weight: 600;\"\u003e🔒\u003cbr\u003eSecure payment\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #57585f; font-weight: 600;\"\u003e🔁\u003cbr\u003e30 day returns\u003c\/div\u003e\n\u003cdiv style=\"font-size: 12px; color: #57585f; font-weight: 600;\"\u003e💬\u003cbr\u003e24\/7 support\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch3 style=\"font-family: Georgia,serif; font-size: 20px; font-weight: bold; margin: 28px 0 14px;\"\u003eWhy you'll love it\u003c\/h3\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; margin-bottom: 10px;\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 50%; vertical-align: top; padding: 10px 12px 10px 0;\"\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003e🌭 Playful Hot Dog Shape\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f; line-height: 1.5;\"\u003eA bun inspired design with raised sides that gives small dogs and cats a cozy, nest like spot to curl up.\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd style=\"width: 50%; vertical-align: top; padding: 10px 0 10px 12px;\"\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003e🧼 Removable, Washable Cover\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f; line-height: 1.5;\"\u003eThe zip off cover goes straight in the machine, so fur and daily mess are never a hassle.\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 50%; vertical-align: top; padding: 10px 12px 10px 0;\"\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003e🛑 Non Slip Base\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f; line-height: 1.5;\"\u003eA textured PVC bottom keeps the bed steady on wood, tile and laminate floors.\u003c\/span\u003e\n\u003c\/td\u003e\n\u003ctd style=\"width: 50%; vertical-align: top; padding: 10px 0 10px 12px;\"\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003e🧸 Soft, Secure Padding\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f; line-height: 1.5;\"\u003ePlush micro suede and corduroy filling gives a warm, supportive spot for naps and everyday rest.\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n#vsWhy_hotdogbed{opacity:0 !important;transform:translateY(14px) !important;transition:opacity .6s ease, transform .6s ease !important;}\n#vsWhy_hotdogbed.vs-in{opacity:1 !important;transform:translateY(0) !important;}\n#vsWhy_hotdogbed .vs-why-box{display:flex !important;gap:12px !important;align-items:flex-start !important;background:#FFF6F1 !important;border-left:3px solid #E8481C !important;border-radius:8px !important;padding:16px 18px !important;margin:0 !important;}\n#vsWhy_hotdogbed .vs-why-emoji{font-size:22px !important;line-height:1 !important;flex:none !important;animation:vsPulse 2.4s ease-in-out infinite !important;}\n#vsHow_hotdogbed .vs-step{display:flex !important;gap:14px !important;align-items:flex-start !important;padding:10px 0 !important;opacity:0 !important;transform:translateX(-10px) !important;transition:opacity .5s ease, transform .5s ease !important;}\n#vsHow_hotdogbed .vs-step.vs-in{opacity:1 !important;transform:translateX(0) !important;}\n#vsHow_hotdogbed .vs-step-emoji{width:34px !important;height:34px !important;flex:none !important;border-radius:50% !important;background:#FFF1EA !important;display:flex !important;align-items:center !important;justify-content:center !important;font-size:16px !important;}\n@keyframes vsPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.15);}}\n\u003c\/style\u003e\n\u003cdiv style=\"font-family: Inter,Arial,sans-serif; color: #16171b; max-width: 720px;\"\u003e\n\u003ch3 style=\"font-family: Georgia,serif; font-size: 20px; font-weight: bold; margin: 28px 0 14px;\"\u003e🤔 Why This Product?\u003c\/h3\u003e\n\u003cdiv id=\"vsWhy_hotdogbed\"\u003e\n\u003cdiv class=\"vs-why-box\"\u003e\n\u003cspan class=\"vs-why-emoji\"\u003e💡\u003c\/span\u003e\n\u003cp style=\"font-size: 13.5px; line-height: 1.6; color: #57585f; margin: 0;\"\u003eMost pet beds are flat cushions that dogs and cats slide off within a week. The Hot Dog Shaped Pet Bed is built like a nest, with raised bun like sides that give your pet something to lean into and curl around, the same instinct that makes them burrow into blankets and couch corners. It looks fun on your floor and feels secure to them, so naps actually last.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch3 style=\"font-family: Georgia,serif; font-size: 20px; font-weight: bold; margin: 28px 0 14px;\"\u003e⚙️ How Does It Work?\u003c\/h3\u003e\n\u003cdiv id=\"vsHow_hotdogbed\"\u003e\n\u003cdiv class=\"vs-step\"\u003e\n\u003cdiv class=\"vs-step-emoji\"\u003e📏\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003ePick the right size\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f;\"\u003efor your dog or cat, based on their curled up length.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-step\"\u003e\n\u003cdiv class=\"vs-step-emoji\"\u003e🛋️\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003ePlace the bed\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f;\"\u003ein a quiet corner, by the sofa, or beside your bed.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-step\"\u003e\n\u003cdiv class=\"vs-step-emoji\"\u003e😴\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong style=\"font-size: 14px;\"\u003eLet them settle in\u003c\/strong\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #57585f;\"\u003eand machine wash the cover whenever it needs a refresh.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"background: #FFFFFF; border: 1px solid #E4E1D8; border-radius: 16px; padding: 6px 26px 4px; box-shadow: 0 4px 18px rgba(22,23,27,0.06); margin: 28px 0 0;\"\u003e\n\u003ch3 style=\"font-family: Georgia,serif; font-size: 20px; font-weight: bold; margin: 20px 0 4px;\"\u003e❓ Frequently asked questions\u003c\/h3\u003e\n\u003cdiv style=\"padding: 14px 0; border-bottom: 1px solid #E4E1D8;\"\u003e\n\u003cp style=\"font-size: 13.5px; font-weight: bold; margin: 0 0 6px;\"\u003eIs this bed only for dachshunds?\u003c\/p\u003e\n\u003cp style=\"font-size: 13.5px; color: #57585f; margin: 0; line-height: 1.6;\"\u003eNo, it fits many small dogs, puppies and cats who enjoy a cozy, curled up spot to rest.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"padding: 14px 0; border-bottom: 1px solid #E4E1D8;\"\u003e\n\u003cp style=\"font-size: 13.5px; font-weight: bold; margin: 0 0 6px;\"\u003eIs the cover easy to clean?\u003c\/p\u003e\n\u003cp style=\"font-size: 13.5px; color: #57585f; margin: 0; line-height: 1.6;\"\u003eYes, the removable cover is machine washable, so fur and daily mess are simple to handle.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"padding: 14px 0; border-bottom: 1px solid #E4E1D8;\"\u003e\n\u003cp style=\"font-size: 13.5px; font-weight: bold; margin: 0 0 6px;\"\u003eWill it slide on my floors?\u003c\/p\u003e\n\u003cp style=\"font-size: 13.5px; color: #57585f; margin: 0; line-height: 1.6;\"\u003eNo, the non slip PVC base helps keep it steady on wood, tile and other smooth floors.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"padding: 14px 0; border-bottom: 1px solid #E4E1D8;\"\u003e\n\u003cp style=\"font-size: 13.5px; font-weight: bold; margin: 0 0 6px;\"\u003eWhat are the shipping times?\u003c\/p\u003e\n\u003cp style=\"font-size: 13.5px; color: #57585f; margin: 0; line-height: 1.6;\"\u003e4 to 8 business days, with a tracking number sent as soon as your order ships.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"padding: 14px 0 20px;\"\u003e\n\u003cp style=\"font-size: 13.5px; font-weight: bold; margin: 0 0 6px;\"\u003eWhat if it's not right for my pet?\u003c\/p\u003e\n\u003cp style=\"font-size: 13.5px; color: #57585f; margin: 0; line-height: 1.6;\"\u003eYou have 30 days after delivery to request a return or refund, no questions asked.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n#vsReviews_hotdogbed .vs-rv-head{display:flex !important;justify-content:space-between !important;align-items:flex-end !important;flex-wrap:wrap !important;gap:16px !important;margin-bottom:20px !important;}\n#vsReviews_hotdogbed .vs-rv-card-summary{display:flex !important;align-items:center !important;gap:18px !important;background:#FAFAF7 !important;border:1px solid #E4E1D8 !important;border-radius:12px !important;padding:16px 20px !important;}\n#vsReviews_hotdogbed .vs-rv-score{text-align:center !important;flex:none !important;}\n#vsReviews_hotdogbed .vs-rv-score .num{font-family:Georgia,serif !important;font-size:32px !important;font-weight:700 !important;line-height:1 !important;}\n#vsReviews_hotdogbed .vs-rv-score .stars{color:#B8862E !important;font-size:14px !important;letter-spacing:1px !important;margin-top:4px !important;display:block !important;}\n#vsReviews_hotdogbed .vs-rv-score .count{font-size:11.5px !important;color:#57585F !important;margin-top:4px !important;}\n#vsReviews_hotdogbed .vs-rv-bars{display:flex !important;flex-direction:column !important;gap:5px !important;width:170px !important;flex:none !important;}\n#vsReviews_hotdogbed .vs-rv-bar-row{display:flex !important;align-items:center !important;gap:6px !important;font-size:10.5px !important;color:#57585F !important;width:100% !important;}\n#vsReviews_hotdogbed .vs-rv-bar-row span:first-child{width:8px !important;flex:none !important;}\n#vsReviews_hotdogbed .vs-rv-bar-row span:last-child{width:28px !important;flex:none !important;text-align:right !important;}\n#vsReviews_hotdogbed .vs-rv-bar-track{flex:1 1 auto !important;width:100% !important;height:5px !important;background:#E4E1D8 !important;border-radius:99px !important;overflow:hidden !important;display:block !important;}\n#vsReviews_hotdogbed .vs-rv-bar-fill{display:block !important;height:100% !important;width:0% !important;background:#B8862E !important;border-radius:99px !important;transition:width 1.1s ease !important;}\n#vsReviews_hotdogbed .vs-rv-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:14px !important;}\n#vsReviews_hotdogbed .vs-rv-card{border:1px solid #E4E1D8 !important;border-radius:12px !important;padding:18px !important;background:#FFFFFF !important;opacity:0 !important;transform:translateY(12px) !important;transition:opacity .5s ease, transform .5s ease, box-shadow .2s ease !important;}\n#vsReviews_hotdogbed .vs-rv-card.vs-in{opacity:1 !important;transform:translateY(0) !important;}\n#vsReviews_hotdogbed .vs-rv-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.08) !important;transform:translateY(-3px) !important;}\n#vsReviews_hotdogbed .vs-rv-top{display:flex !important;justify-content:space-between !important;align-items:center !important;margin-bottom:8px !important;}\n#vsReviews_hotdogbed .vs-rv-stars{color:#B8862E !important;font-size:13px !important;letter-spacing:1px !important;}\n#vsReviews_hotdogbed .vs-rv-verified{display:flex !important;align-items:center !important;gap:3px !important;font-size:10.5px !important;color:#1F7A4D !important;font-family:monospace !important;font-weight:600 !important;}\n#vsReviews_hotdogbed .vs-rv-verified svg{width:11px !important;height:11px !important;fill:#1F7A4D !important;animation:vsCheckPulse 2.6s ease-in-out infinite !important;}\n#vsReviews_hotdogbed .vs-rv-text{font-size:13px !important;color:#57585F !important;line-height:1.55 !important;margin:0 0 10px !important;}\n#vsReviews_hotdogbed .vs-rv-name{font-size:12px !important;font-weight:700 !important;color:#16171B !important;}\n#vsReviews_hotdogbed .vs-rv-dots{display:none !important;justify-content:center !important;gap:6px !important;margin-top:12px !important;}\n#vsReviews_hotdogbed .vs-rv-dots span{width:6px !important;height:6px !important;border-radius:50% !important;background:#E4E1D8 !important;cursor:pointer !important;}\n#vsReviews_hotdogbed .vs-rv-dots span.active{background:#B8862E !important;}\n@keyframes vsCheckPulse{0%,100%{opacity:1;}50%{opacity:.5;}}\n@media(max-width:640px){\n  #vsReviews_hotdogbed .vs-rv-head{flex-direction:column !important;align-items:stretch !important;}\n  #vsReviews_hotdogbed .vs-rv-grid{display:flex !important;overflow-x:auto !important;scroll-snap-type:x mandatory !important;-webkit-overflow-scrolling:touch !important;gap:12px !important;padding-bottom:6px !important;scrollbar-width:none !important;}\n  #vsReviews_hotdogbed .vs-rv-grid::-webkit-scrollbar{display:none !important;}\n  #vsReviews_hotdogbed .vs-rv-card{flex:0 0 82% !important;scroll-snap-align:center !important;}\n  #vsReviews_hotdogbed .vs-rv-dots{display:flex !important;}\n}\n\u003c\/style\u003e\n\u003cdiv style=\"font-family: Inter,Arial,sans-serif; color: #16171b; max-width: 720px;\"\u003e\n\u003cdiv id=\"vsReviews_hotdogbed\"\u003e\n\u003ch3 style=\"font-family: Georgia,serif; font-size: 20px; font-weight: bold; margin: 28px 0 14px;\"\u003e💬 What Our Customers Say\u003c\/h3\u003e\n\u003cdiv class=\"vs-rv-head\"\u003e\n\u003cp style=\"font-size: 13px; color: #57585f; margin: 0; max-width: 380px;\"\u003eReal feedback from pet owners whose dogs and cats have claimed this bed as their own.\u003c\/p\u003e\n\u003cdiv class=\"vs-rv-card-summary\"\u003e\n\u003cdiv class=\"vs-rv-score\"\u003e\n\u003cdiv class=\"num\"\u003e4.8\u003c\/div\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\n\u003cdiv class=\"count\"\u003e263 reviews\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-bars\"\u003e\n\u003cdiv class=\"vs-rv-bar-row\"\u003e\n\u003cspan\u003e5\u003c\/span\u003e\n\u003cdiv class=\"vs-rv-bar-track\"\u003e\n\u003cdiv class=\"vs-rv-bar-fill\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan\u003e78%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-bar-row\"\u003e\n\u003cspan\u003e4\u003c\/span\u003e\n\u003cdiv class=\"vs-rv-bar-track\"\u003e\n\u003cdiv class=\"vs-rv-bar-fill\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan\u003e15%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-bar-row\"\u003e\n\u003cspan\u003e3\u003c\/span\u003e\n\u003cdiv class=\"vs-rv-bar-track\"\u003e\n\u003cdiv class=\"vs-rv-bar-fill\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan\u003e4%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-bar-row\"\u003e\n\u003cspan\u003e2\u003c\/span\u003e\n\u003cdiv class=\"vs-rv-bar-track\"\u003e\n\u003cdiv class=\"vs-rv-bar-fill\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan\u003e2%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-bar-row\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e\n\u003cdiv class=\"vs-rv-bar-track\"\u003e\n\u003cdiv class=\"vs-rv-bar-fill\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan\u003e1%\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-grid\" id=\"vsReviewsGrid_hotdogbed\"\u003e\n\u003cdiv class=\"vs-rv-card\"\u003e\n\u003cdiv class=\"vs-rv-top\"\u003e\n\u003cspan class=\"vs-rv-stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan class=\"vs-rv-verified\"\u003e\u003csvg viewbox=\"0 0 20 20\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 111.4-1.4l3.8 3.8 6.8-6.8a1 1 0 011.4 0z\" clip-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified buyer\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"vs-rv-text\"\u003eMy dachshund refuses to sleep anywhere else now. He climbs in, wedges himself against the sides and just melts. Best purchase I have made for him. 🐶\u003c\/p\u003e\n\u003cdiv class=\"vs-rv-name\"\u003eEmma L.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-card\"\u003e\n\u003cdiv class=\"vs-rv-top\"\u003e\n\u003cspan class=\"vs-rv-stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan class=\"vs-rv-verified\"\u003e\u003csvg viewbox=\"0 0 20 20\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 111.4-1.4l3.8 3.8 6.8-6.8a1 1 0 011.4 0z\" clip-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified buyer\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"vs-rv-text\"\u003eBought it as a joke for my cat and now it is her favorite spot in the house. The cover comes off so easily for washing too. 😻\u003c\/p\u003e\n\u003cdiv class=\"vs-rv-name\"\u003eThomas R.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-card\"\u003e\n\u003cdiv class=\"vs-rv-top\"\u003e\n\u003cspan class=\"vs-rv-stars\"\u003e★★★★☆\u003c\/span\u003e\u003cspan class=\"vs-rv-verified\"\u003e\u003csvg viewbox=\"0 0 20 20\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M16.7 5.3a1 1 0 010 1.4l-7.5 7.5a1 1 0 01-1.4 0L3.3 9.7a1 1 0 111.4-1.4l3.8 3.8 6.8-6.8a1 1 0 011.4 0z\" clip-rule=\"evenodd\"\u003e\u003c\/path\u003e\u003c\/svg\u003eVerified buyer\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"vs-rv-text\"\u003eDoes not slide around on our tile floor at all like our old bed did. Sized up to L for our cocker spaniel and it fits perfectly. 👍\u003c\/p\u003e\n\u003cdiv class=\"vs-rv-name\"\u003eSophie M.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vs-rv-dots\" id=\"vsReviewsDots_hotdogbed\"\u003e\n\u003cspan class=\"active\"\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  var grid = document.getElementById('vsReviewsGrid_hotdogbed');\n  var dots = document.querySelectorAll('#vsReviewsDots_hotdogbed span');\n  if(grid \u0026\u0026 dots.length){\n    grid.addEventListener('scroll', function(){\n      var cardWidth = grid.children[0] ? grid.children[0].offsetWidth + 12 : 1;\n      var idx = Math.round(grid.scrollLeft \/ cardWidth);\n      dots.forEach(function(d,i){ d.classList.toggle('active', i===idx); });\n    }, {passive:true});\n    dots.forEach(function(d,i){\n      d.addEventListener('click', function(){\n        var cardWidth = grid.children[0] ? grid.children[0].offsetWidth + 12 : 0;\n        grid.scrollTo({left: i*cardWidth, behavior:'smooth'});\n      });\n    });\n  }\n\n  function setBarWidth(fill){\n    var w = fill.getAttribute('data-w') + '%';\n    fill.style.setProperty('width', w, 'important');\n  }\n\n  var revealTargets = []\n    .concat(Array.prototype.slice.call(document.querySelectorAll('#vsWhy_hotdogbed')))\n    .concat(Array.prototype.slice.call(document.querySelectorAll('#vsHow_hotdogbed .vs-step')))\n    .concat(Array.prototype.slice.call(document.querySelectorAll('#vsReviews_hotdogbed .vs-rv-card')));\n\n  var barFills = document.querySelectorAll('#vsReviews_hotdogbed .vs-rv-bar-fill');\n  var barsRevealed = false;\n\n  if ('IntersectionObserver' in window) {\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(entry, i){\n        if (entry.isIntersecting) {\n          setTimeout(function(){ entry.target.classList.add('vs-in'); }, i * 90);\n          io.unobserve(entry.target);\n        }\n      });\n    }, { threshold: 0.2 });\n    revealTargets.forEach(function(el){ io.observe(el); });\n\n    var barIo = new IntersectionObserver(function(entries){\n      entries.forEach(function(entry){\n        if (entry.isIntersecting \u0026\u0026 !barsRevealed) {\n          barsRevealed = true;\n          barFills.forEach(function(fill, i){\n            setTimeout(function(){ setBarWidth(fill); }, i * 120);\n          });\n          barIo.disconnect();\n        }\n      });\n    }, { threshold: 0.1 });\n    var summaryEl = document.querySelector('#vsReviews_hotdogbed .vs-rv-card-summary');\n    if (summaryEl) barIo.observe(summaryEl);\n  } else {\n    revealTargets.forEach(function(el){ el.classList.add('vs-in'); });\n    barFills.forEach(function(fill){ setBarWidth(fill); });\n  }\n\n  setTimeout(function(){ barFills.forEach(function(fill){ setBarWidth(fill); }); }, 2500);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"viralselection.com","offers":[{"title":"S","offer_id":54847406309705,"sku":null,"price":34.9,"currency_code":"EUR","in_stock":true},{"title":"M","offer_id":54847406342473,"sku":null,"price":44.9,"currency_code":"EUR","in_stock":true},{"title":"L","offer_id":54847406375241,"sku":null,"price":54.9,"currency_code":"EUR","in_stock":true},{"title":"XL","offer_id":54847406408009,"sku":null,"price":64.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1018\/8341\/2809\/files\/viralselection.comhotdogbeddogscatsanimalspets_1.png?v=1783957597","url":"https:\/\/viralselection.com\/products\/hot-dog-shaped-pet-bed","provider":"viralselection.com","version":"1.0","type":"link"}