{"product_id":"embrace-fa-szek-ajanlat","title":"Embrace fa szék","description":"\u003c!--bm-outlet-badges:v1--\u003e\u003cstyle id=\"bm-showroom-pdp-css\"\u003e@keyframes bm-stock-pulse {\n  0%, 100% { transform: scale(1); filter: brightness(1); }\n  50% { transform: scale(1.07); filter: brightness(1.15); }\n}\n.product-label.bm-stock-pulse,\n.product-label--custom {\n  animation: bm-stock-pulse 1.35s ease-in-out infinite;\n  transform-origin: center right;\n}\n.product-label.bm-label-sale,\n.product-label--sale {\n  background-color: #b42318;\n  color: #fff;\n}\n.card--product .product-label-wrapper,\n.product-label-container .product-label-wrapper {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  gap: 4px;\n}\n.card--product .product-label--new,\n.product-info .product-label--new { display: none; }\n.card--product .price__was {\n  display: inline !important;\n  text-decoration: line-through;\n  opacity: .72;\n  margin-inline-start: .35em;\n  white-space: nowrap;\n}\u003c\/style\u003e\u003cscript id=\"bm-showroom-pdp-js\"\u003e(function(){\n  var el = document.getElementById(\"bm-showroom-data\");\n  var DATA = {};\n  if (el) {\n    try { DATA = JSON.parse(el.textContent || \"{}\"); } catch (e) {}\n  }\n  function money(n){\n    return new Intl.NumberFormat(\"hu-HU\").format(Math.round(Number(n))) + \" Ft\";\n  }\n  function stockText(q){\n    q = Math.max(0, parseInt(q, 10) || 0);\n    if (q \u003c= 0) return \"Elfogyott\";\n    return q === 1 ? \"Még 1 db\" : (\"Még \" + q + \" db\");\n  }\n  function handleOf(href){\n    if (!href) return \"\";\n    return href.split(\"?\")[0].replace(\/\\\/+$\/, \"\").split(\"\/\").pop();\n  }\n  function infoFromProduct(p){\n    var v = (p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]) || {};\n    var price = Number(v.price || (p \u0026\u0026 p.price) || 0) \/ 100;\n    var compare = Number(v.compare_at_price || (p \u0026\u0026 p.compare_at_price) || 0) \/ 100;\n    var qty = 1;\n    var tags = (p \u0026\u0026 p.tags) || [];\n    if (typeof tags === \"string\") tags = tags.split(\",\");\n    for (var i = 0; i \u003c tags.length; i++) {\n      var m = String(tags[i]).trim().match(\/^bm-qty-(\\d+)$\/);\n      if (m) qty = parseInt(m[1], 10);\n    }\n    return { p: price, c: compare \u003e price + 0.5 ? compare : 0, q: qty };\n  }\n  function isStockLabel(el){\n    var t = (el.textContent || \"\").trim();\n    return t.indexOf(\"Még \") === 0 || t === \"Elfogyott\";\n  }\n  function dedupeStock(root){\n    var nodes = root.querySelectorAll(\".product-label\");\n    var kept = null;\n    for (var i = 0; i \u003c nodes.length; i++) {\n      if (!isStockLabel(nodes[i])) continue;\n      if (!kept) {\n        kept = nodes[i];\n        kept.classList.add(\"bm-stock-pulse\");\n      } else {\n        nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n      }\n    }\n    return kept;\n  }\n  function addLabel(wrap, className, text){\n    var existing = wrap.querySelectorAll(\".product-label\");\n    for (var i = 0; i \u003c existing.length; i++) {\n      if (existing[i].textContent.trim() === text) return existing[i];\n    }\n    var s = document.createElement(\"span\");\n    s.className = className;\n    s.textContent = text;\n    wrap.appendChild(s);\n    return s;\n  }\n  function wrapOf(card){\n    var w = card.querySelector(\".product-label-wrapper\");\n    if (w) return w;\n    var media = card.querySelector(\".card__media\") || card;\n    var box = document.createElement(\"div\");\n    box.className = \"product-label-container absolute top-0 end\";\n    box.innerHTML = '\u003cdiv class=\"product-label-wrapper flex justify-end\"\u003e\u003c\/div\u003e';\n    media.appendChild(box);\n    return box.querySelector(\".product-label-wrapper\");\n  }\n  function applyInfo(card, info){\n    var wrap = wrapOf(card);\n    var news = card.querySelectorAll(\".product-label--new\");\n    for (var n = 0; n \u003c news.length; n++) news[n].remove();\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\n      var pct = Math.round((1 - Number(info.p) \/ Number(info.c)) * 100);\n      addLabel(wrap, \"product-label product-label--sale bm-label-sale\", pct \u003e 0 ? (\"Megtakarítás: \" + pct + \"%\") : \"Akció\");\n      var was = card.querySelector(\".price__was\");\n      if (was \u0026\u0026 !was.textContent.trim()) was.textContent = money(info.c);\n    }\n    var qtyLabel = stockText(info.q);\n    var stock = dedupeStock(card);\n    if (stock) {\n      stock.textContent = qtyLabel;\n      stock.classList.add(\"product-label\", \"product-label--custom\", \"bm-stock-pulse\");\n    } else {\n      addLabel(wrap, \"product-label product-label--custom bm-stock-pulse\", qtyLabel);\n    }\n  }\n  function loadInfo(handle, done){\n    if (DATA[handle]) { done(DATA[handle]); return; }\n    fetch(\"\/products\/\" + handle + \".js\")\n      .then(function(r){ if (!r.ok) throw new Error(\"missing\"); return r.json(); })\n      .then(function(p){\n        var info = infoFromProduct(p);\n        DATA[handle] = info;\n        done(info);\n      })\n      .catch(function(){ done({ p: 0, c: 0, q: 1 }); });\n  }\n  function enhanceCard(card){\n    if (card.getAttribute(\"data-bm-outlet\") === \"1\" || card.getAttribute(\"data-bm-pending\") === \"1\") return;\n    var a = card.querySelector(\"a[href*='\/products\/']\");\n    var handle = handleOf(a \u0026\u0026 a.getAttribute(\"href\"));\n    if (!handle || handle.indexOf(\"-ajanlat\") === -1) return;\n    var info = DATA[handle];\n    if (info) {\n      card.setAttribute(\"data-bm-outlet\", \"1\");\n      applyInfo(card, info);\n      return;\n    }\n    card.setAttribute(\"data-bm-pending\", \"1\");\n    loadInfo(handle, function(next){\n      card.removeAttribute(\"data-bm-pending\");\n      card.setAttribute(\"data-bm-outlet\", \"1\");\n      applyInfo(card, next);\n    });\n  }\n  function enhancePdp(){\n    var handle = handleOf(location.pathname);\n    if (!handle || handle.indexOf(\"-ajanlat\") === -1) return;\n    var wrap = document.querySelector(\".product-info .product-label-wrapper\") || document.querySelector(\".product-label-wrapper\");\n    if (!wrap || wrap.getAttribute(\"data-bm-outlet\") === \"1\" || wrap.getAttribute(\"data-bm-pending\") === \"1\") return;\n    wrap.setAttribute(\"data-bm-pending\", \"1\");\n    var news = document.querySelectorAll(\".product-info .product-label--new, .product-gallery .product-label--new, .product-label-container .product-label--new\");\n    for (var n = 0; n \u003c news.length; n++) news[n].remove();\n    loadInfo(handle, function(info){\n      wrap.removeAttribute(\"data-bm-pending\");\n      wrap.setAttribute(\"data-bm-outlet\", \"1\");\n      var compare = info \u0026\u0026 info.c, price = info \u0026\u0026 info.p;\n      if (!(compare \u0026\u0026 price)) {\n        var was = document.querySelector(\".product-info .price__was, .price__was\");\n        var cur = document.querySelector(\".product-info .price__current, .price__current\");\n        function parseHu(t){\n          t = String(t || \"\").replace(\/\\s\/g, \"\").replace(\"Ft\", \"\").replace(\/\\.\/g, \"\").replace(\",\", \".\");\n          return parseFloat(t);\n        }\n        if (was \u0026\u0026 cur) { compare = parseHu(was.textContent); price = parseHu(cur.textContent); }\n      }\n      if (compare \u0026\u0026 price \u0026\u0026 Number(compare) \u003e Number(price) + 0.5) {\n        var pct = Math.round((1 - Number(price) \/ Number(compare)) * 100);\n        addLabel(wrap, \"product-label product-label--sale bm-label-sale\", pct \u003e 0 ? (\"Megtakarítás: \" + pct + \"%\") : \"Akció\");\n      }\n      var root = document.querySelector(\".product-info\") || document;\n      var qtyLabel = stockText((info \u0026\u0026 info.q) || 1);\n      var stock = dedupeStock(root);\n      if (stock) {\n        stock.textContent = qtyLabel;\n        stock.classList.add(\"product-label\", \"product-label--custom\", \"bm-stock-pulse\");\n      } else {\n        addLabel(wrap, \"product-label product-label--custom bm-stock-pulse\", qtyLabel);\n      }\n    });\n  }\n  function run(){\n    var cards = document.querySelectorAll(\"product-card\");\n    for (var i = 0; i \u003c cards.length; i++) enhanceCard(cards[i]);\n    if (document.body \u0026\u0026 document.body.className.indexOf(\"template-product\") !== -1) enhancePdp();\n    else if (location.pathname.indexOf(\"\/products\/\") !== -1) enhancePdp();\n  }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", run);\n  else run();\n  var t = null;\n  new MutationObserver(function(){\n    if (t) clearTimeout(t);\n    t = setTimeout(run, 80);\n  }).observe(document.documentElement, { childList: true, subtree: true });\n})();\u003c\/script\u003e\u003c!--\/bm-outlet-badges--\u003e\u003cp\u003eAz Embrace étkezőszék a holland Vtwonen márka kollekciójából származik, és elegáns megjelenésű. Az étkezőszék bükkfából készült, mely kényelmes fonott ülőfelülettel rendelkezik. Időtlen dizájnjával, enyhén ívelt háttámlájával, és karfáival kényelmes ülésélményt kínál, így ez az étkezőszék nem hiányozhat otthonodból.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Vtwonen Showroom","offers":[{"title":"Sötétbarna","offer_id":57222390022468,"sku":"VW-400534-D-SR","price":142990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/36_7aea8a90-d4a1-4c62-99aa-04b97014c41f.png?v=1768574682","url":"https:\/\/dutchhome.hu\/en\/products\/embrace-fa-szek-ajanlat","provider":"Dutch Home","version":"1.0","type":"link"}