{"title":"Design Outlet","description":"\u003cp\u003eBemutatótermi készlet — azonnal vihető darabok akciós áron. A rendelhető (utánrendelhető) változatok a szokásos kategóriákban maradnak.\u003c\/p\u003e\u003cstyle id=\"bm-showroom-badge-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  display: none !important;\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\n\u003cscript type=\"application\/json\" id=\"bm-showroom-data\"\u003e{\"albert-kuip-karfa-nelkuli-pp-szek-ajanlat\":{\"p\":72191.0,\"c\":0,\"q\":2},\"addi-bukle-fotel-ajanlat\":{\"p\":152990.0,\"c\":0,\"q\":2},\"addi-zsenilia-szek-ajanlat\":{\"p\":79990.0,\"c\":0,\"q\":2},\"admit-nougat-bukle-szek-ajanlat\":{\"p\":127990.0,\"c\":0,\"q\":3},\"alagon-fa-etkezoasztal-180x90-ajanlat\":{\"p\":409590.0,\"c\":0,\"q\":1},\"albert-kuip-karfas-szovet-szek-ajanlat\":{\"p\":105441.0,\"c\":0,\"q\":1},\"albert-kuip-pp-alacsony-barszek-1-ajanlat\":{\"p\":102990.0,\"c\":0,\"q\":1},\"albert-kuip-swivel-fotel-forgotalpas-kivitel-karpitozott-ulofelulettel-ajanlat\":{\"p\":143990.0,\"c\":0,\"q\":1},\"alexander-jones-geneva-pad-barna-tweed-es-vas-148-cm-ajanlat\":{\"p\":213518.0,\"c\":340650.0,\"q\":1},\"almira-fa-etkezoasztal-o115-ajanlat\":{\"p\":277990.0,\"c\":298887.0,\"q\":2},\"alton-tukor-ajanlat\":{\"p\":247561.0,\"c\":0,\"q\":1},\"amaya-fa-konzolasztal-ajanlat\":{\"p\":106192.0,\"c\":0,\"q\":1},\"anshin-uveg-allolampa-ajanlat\":{\"p\":71060.0,\"c\":0,\"q\":1},\"avola-szovet-barszek-ajanlat\":{\"p\":74990.0,\"c\":0,\"q\":1},\"avola-szovet-forgoszek-fa-labbal-ajanlat\":{\"p\":102990.0,\"c\":0,\"q\":1},\"avola-szovet-forgoszek-fem-labbal-ajanlat\":{\"p\":100990.0,\"c\":0,\"q\":3},\"ayla-fa-dohanyzoasztal-ajanlat\":{\"p\":77990.0,\"c\":0,\"q\":1},\"babington-szovet-szek-ajanlat\":{\"p\":105441.0,\"c\":0,\"q\":1},\"ball-fa-barszek-ajanlat\":{\"p\":345000.0,\"c\":0,\"q\":2},\"bar-barsony-fotel-ajanlat\":{\"p\":261990.0,\"c\":0,\"q\":1},\"bar-barsony-labtarto-ajanlat\":{\"p\":130790.0,\"c\":0,\"q\":1},\"barbara-barsony-szek-ajanlat\":{\"p\":74990.0,\"c\":0,\"q\":2},\"barlow-fa-alacsony-barszek-ajanlat\":{\"p\":37990.0,\"c\":0,\"q\":1},\"barrali-2-ajtos-fa-kabinet-ajanlat\":{\"p\":338290.0,\"c\":0,\"q\":1},\"bastia-fem-lerakoasztal-ajanlat\":{\"p\":8990.0,\"c\":0,\"q\":1},\"batilda-textilbor-szek-ajanlat\":{\"p\":62990.0,\"c\":0,\"q\":1},\"bay-szovet-puff-o40-ajanlat\":{\"p\":61900.0,\"c\":0,\"q\":1},\"bean-kordbarsony-kanape-bal-ottomanos-1-ajanlat\":{\"p\":685990.0,\"c\":0,\"q\":2},\"billy-fa-gyerek-fesulkodo-asztal-ajanlat\":{\"p\":95990.0,\"c\":0,\"q\":1},\"blackwood-textilbor-szek-ajanlat\":{\"p\":85491.0,\"c\":0,\"q\":2},\"blocci-asztali-lampa-ajanlat\":{\"p\":21990.0,\"c\":0,\"q\":1},\"boavista-fa-etkezoasztal-100x210-ajanlat\":{\"p\":230990.0,\"c\":0,\"q\":1},\"bolton-fa-etkezoasztal-o120-ajanlat\":{\"p\":219990.0,\"c\":0,\"q\":1},\"bon-textilbor-fotel-ajanlat\":{\"p\":161990.0,\"c\":175890.0,\"q\":1},\"bora-pp-karfas-kerti-szek-ajanlat\":{\"p\":22270.0,\"c\":0,\"q\":6},\"bora-pp-karfas-kerti-szek-copy-ajanlat\":{\"p\":24639.0,\"c\":0,\"q\":4},\"borre-fa-uloke-ajanlat\":{\"p\":53990.0,\"c\":73990.0,\"q\":1},\"botanical-stairs-dizajn-vaszonkep-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":1},\"bowie-fa-fali-kabinet-ajanlat\":{\"p\":272020.0,\"c\":0,\"q\":1},\"brenda-szovet-szek-ajanlat\":{\"p\":70990.0,\"c\":0,\"q\":1},\"briar-tukor-lagy-formavilag-barna-kerettel-ajanlat\":{\"p\":115447.0,\"c\":0,\"q\":1},\"brice-forgo-szovet-fotel-ajanlat\":{\"p\":870990.0,\"c\":0,\"q\":1},\"bright-szovet-szek-ajanlat\":{\"p\":89990.0,\"c\":0,\"q\":1},\"brit-ll-textilbor-alacsony-barszek-ajanlat\":{\"p\":142990.0,\"c\":0,\"q\":2},\"bronco-2-ajtos-fem-kabinet-140-ajanlat\":{\"p\":189990.0,\"c\":0,\"q\":1},\"cactus-party-dizajn-vaszonkep-ajanlat\":{\"p\":94990.0,\"c\":0,\"q\":1},\"calgary-szovet-fotel-ajanlat\":{\"p\":120990.0,\"c\":0,\"q\":1},\"carno-bovitheto-fa-etkezoasztal-190x100-ajanlat\":{\"p\":420990.0,\"c\":0,\"q\":1},\"carno-bovitheto-fa-etkezoasztal-o120-ajanlat\":{\"p\":364399.0,\"c\":365590.0,\"q\":1},\"carno-toloajtos-fa-kabinet-ajanlat\":{\"p\":547399.0,\"c\":0,\"q\":1},\"casami-bruges-411-fa-gyerek-butor-szett-ajanlat\":{\"p\":399990.0,\"c\":0,\"q\":1},\"catelyn-szovet-szek-ajanlat\":{\"p\":79990.0,\"c\":0,\"q\":1},\"cavo-toloajtos-fa-kabinet-ajanlat\":{\"p\":235990.0,\"c\":0,\"q\":1},\"cazar-textilbor-szek-fekete-labbal-ajanlat\":{\"p\":118990.0,\"c\":0,\"q\":1},\"century-bovitheto-fa-etkezoasztal-ajanlat\":{\"p\":378990.0,\"c\":0,\"q\":1},\"cesura-fa-etkezoasztal-o100-ajanlat\":{\"p\":114990.0,\"c\":0,\"q\":1},\"chair31-szek-ajanlat\":{\"p\":69990.0,\"c\":0,\"q\":1},\"chiru-antelope-dizajn-vaszonkep-ajanlat\":{\"p\":94990.0,\"c\":0,\"q\":1},\"chromeo-fem-asztali-lampa-ajanlat\":{\"p\":47990.0,\"c\":0,\"q\":1},\"claes-barszek-ajanlat\":{\"p\":74090.0,\"c\":74091.0,\"q\":1},\"claes-szovet-alacsony-barszek-ajanlat\":{\"p\":70291.0,\"c\":0,\"q\":2},\"claes-szovet-szek-ajanlat\":{\"p\":69292.0,\"c\":0,\"q\":1},\"class-2-ajtos-fa-kabinet-ajanlat\":{\"p\":675990.0,\"c\":0,\"q\":1},\"cloudy-thoughts-dizajn-vaszonkep-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":1},\"clyde-szovet-parna-ajanlat\":{\"p\":12990.0,\"c\":0,\"q\":1},\"coctail-marvany-lerakoasztal-ajanlat\":{\"p\":73990.0,\"c\":0,\"q\":1},\"collada-3-fiokos-fa-ejjeliszekreny-ajanlat\":{\"p\":326829.0,\"c\":0,\"q\":2},\"como-rattan-kerti-fotel-ajanlat\":{\"p\":416990.0,\"c\":0,\"q\":1},\"connor-szovet-forgoszek-fa-labbal-ajanlat\":{\"p\":151990.0,\"c\":0,\"q\":1},\"contigo-szovet-szek-ajanlat\":{\"p\":176829.0,\"c\":0,\"q\":1},\"conway-szovet-szek-ajanlat\":{\"p\":70291.0,\"c\":0,\"q\":1},\"cooler-be-cool-gurulos-fem-hutolada-ajanlat\":{\"p\":128241.0,\"c\":0,\"q\":1},\"cooper-bukle-alacsony-barszek-szettben-ajanlat\":{\"p\":432990.0,\"c\":0,\"q\":1},\"copy-of-glee-bukle-szek-koris-labbal-ajanlat\":{\"p\":109990.0,\"c\":0,\"q\":5},\"coral-10-porcelan-vaza-ajanlat\":{\"p\":110990.0,\"c\":0,\"q\":1},\"corby-marvany-dohanyzoasztal-ajanlat\":{\"p\":166990.0,\"c\":167990.0,\"q\":1},\"corfu-marvany-dohanyzoasztal-ajanlat\":{\"p\":251990.0,\"c\":0,\"q\":1},\"crib-art-textilbor-alacsony-barszek-ajanlat\":{\"p\":200990.0,\"c\":0,\"q\":1},\"dalina-fem-lerakoasztal-ajanlat\":{\"p\":177990.0,\"c\":0,\"q\":1},\"denza-2-ajtos-fem-kabinet-ajanlat\":{\"p\":151290.0,\"c\":0,\"q\":1},\"diamond-akril-allolampa-ajanlat\":{\"p\":130990.0,\"c\":0,\"q\":1},\"diamond-akril-asztali-lampa-ajanlat\":{\"p\":99990.0,\"c\":0,\"q\":1},\"dice-marvanyhatasu-dohanyzoasztal-szettben-100x60-ajanlat\":{\"p\":206990.0,\"c\":0,\"q\":2},\"dima-pu-barszek-ajanlat\":{\"p\":44990.0,\"c\":0,\"q\":1},\"doga-pp-kerti-karfas-fotel-ajanlat\":{\"p\":35538.0,\"c\":0,\"q\":1},\"doga-pp-kerti-karfas-szek-ajanlat\":{\"p\":27483.0,\"c\":0,\"q\":6},\"doga-pp-kerti-lerakoasztal-ajanlat\":{\"p\":20849.0,\"c\":0,\"q\":3},\"donta-meszko-lerakoasztal-ajanlat\":{\"p\":130990.0,\"c\":0,\"q\":1},\"doodly-szovet-puff-ajanlat\":{\"p\":55990.0,\"c\":0,\"q\":1},\"dope-as-hell-mugyanta-dohanyzoasztal-ajanlat\":{\"p\":220990.0,\"c\":0,\"q\":1},\"doppio-marvany-lerakoasztal-ajanlat\":{\"p\":81990.0,\"c\":0,\"q\":1},\"doutzen-fem-tukor-o80cm-ajanlat\":{\"p\":57000.0,\"c\":0,\"q\":1},\"dover-szovet-forgoszek-ajanlat\":{\"p\":76990.0,\"c\":0,\"q\":1},\"dropz-fem-tukor-ajanlat\":{\"p\":69990.0,\"c\":0,\"q\":1},\"duct-karfas-bukle-szek-ajanlat\":{\"p\":156990.0,\"c\":0,\"q\":1},\"duncan-fa-etkezoasztal-o105-ajanlat\":{\"p\":161590.0,\"c\":0,\"q\":1},\"easton-szovet-szek-ajanlat\":{\"p\":59990.0,\"c\":0,\"q\":3},\"edina-szovet-szek-ajanlat\":{\"p\":55990.0,\"c\":0,\"q\":1},\"edson-fa-komod-ajanlat\":{\"p\":215641.0,\"c\":0,\"q\":1},\"eleanor-szovet-barszek-ajanlat\":{\"p\":67990.0,\"c\":0,\"q\":2},\"eleanor-szovet-szek-fekete-labbal-ajanlat\":{\"p\":53990.0,\"c\":0,\"q\":1},\"elim-bukle-szek-ajanlat\":{\"p\":60990.0,\"c\":0,\"q\":1},\"elin-pp-kerek-etkezoasztal-o130-ajanlat\":{\"p\":576990.0,\"c\":0,\"q\":1},\"elyna-bukle-szek-bezs-labbal-ajanlat\":{\"p\":81990.0,\"c\":0,\"q\":1},\"emila-barsony-szek-fekete-labbal-ajanlat\":{\"p\":80990.0,\"c\":0,\"q\":1},\"enid-fa-viragtarto-ajanlat\":{\"p\":40990.0,\"c\":0,\"q\":1},\"eris-textilbor-szek-krom-labbal-ajanlat\":{\"p\":35990.0,\"c\":0,\"q\":1},\"femia-szovet-parna-ajanlat\":{\"p\":16990.0,\"c\":0,\"q\":1},\"fenna-bukle-szek-ajanlat\":{\"p\":76990.0,\"c\":0,\"q\":1},\"fenne-mubor-forgoszek-ajanlat\":{\"p\":98990.0,\"c\":0,\"q\":1},\"fer-fem-dohanyzo-es-lerakoasztal-o-40-cm-ajanlat\":{\"p\":17990.0,\"c\":0,\"q\":1},\"feston-szovet-barszek-ajanlat\":{\"p\":148191.0,\"c\":0,\"q\":1},\"fictus-meszko-dohanyzoasztal-130-ajanlat\":{\"p\":336179.0,\"c\":0,\"q\":1},\"flash-uveg-dohanyzoasztal-ajanlat\":{\"p\":170990.0,\"c\":0,\"q\":1},\"floris-etkezoasztal-ajanlat\":{\"p\":216885.0,\"c\":0,\"q\":1},\"folio-pp-kerti-karfas-hintaszek-ajanlat\":{\"p\":70270.0,\"c\":0,\"q\":1},\"folio-pp-kerti-karfas-szek-ajanlat\":{\"p\":48805.0,\"c\":0,\"q\":1},\"fother-mucker-uveg-lerakoasztal-ajanlat\":{\"p\":126686.0,\"c\":0,\"q\":1},\"franky-barsony-barszek-ajanlat\":{\"p\":116461.0,\"c\":0,\"q\":2},\"franky-textilbor-alacsony-barszek-ajanlat\":{\"p\":122590.0,\"c\":0,\"q\":1},\"fringe-szovet-allolampa-ajanlat\":{\"p\":57990.0,\"c\":0,\"q\":1},\"garcon-fem-lerakoasztal-ajanlat\":{\"p\":51990.0,\"c\":0,\"q\":1},\"glam-bukle-alacsony-barszek-ajanlat\":{\"p\":153990.0,\"c\":205990.0,\"q\":1},\"glam-bukle-alacsony-barszek-antik-labbal-ajanlat\":{\"p\":215990.0,\"c\":0,\"q\":1},\"glam-bukle-forgoszek-fekete-labbal-ajanlat\":{\"p\":132990.0,\"c\":170990.0,\"q\":1},\"glam-fem-dohanyzoasztal-ajanlat\":{\"p\":189990.0,\"c\":200488.0,\"q\":1},\"glam-fem-gyertyatarto-kicsi-ajanlat\":{\"p\":11900.0,\"c\":0,\"q\":2},\"glamour-fem-tukor-ajanlat\":{\"p\":147990.0,\"c\":0,\"q\":1},\"glasgow-bukle-fotel-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":1},\"glimps-boviheto-fa-etkezoasztal-180x90-ajanlat\":{\"p\":450990.0,\"c\":0,\"q\":1},\"graham-zsenilia-forgoszek-ajanlat\":{\"p\":72990.0,\"c\":0,\"q\":1},\"guard-fa-allolampa-ajanlat\":{\"p\":141990.0,\"c\":0,\"q\":1},\"hanna-fem-kabinet-ajanlat\":{\"p\":184990.0,\"c\":0,\"q\":1},\"heaven-bovitheto-keramia-etkezoasztal-168-210x90-ajanlat\":{\"p\":421990.0,\"c\":0,\"q\":1},\"holy-berry-szovet-szek-ajanlat\":{\"p\":181990.0,\"c\":0,\"q\":1},\"hydra-szovet-fotel-ajanlat\":{\"p\":723990.0,\"c\":0,\"q\":1},\"hype-textilbor-szek-metal-labbal-ajanlat\":{\"p\":155990.0,\"c\":0,\"q\":1},\"hypnotising-fem-etkezoasztal-ajanlat\":{\"p\":294828.0,\"c\":0,\"q\":1},\"hypnotising-fem-fali-fogas-ajanlat\":{\"p\":30990.0,\"c\":0,\"q\":2},\"iceland-mariposa-short-baranybor-fotel-ajanlat\":{\"p\":494990.0,\"c\":0,\"q\":1},\"indy-karfas-bukle-szek-ajanlat\":{\"p\":110288.0,\"c\":0,\"q\":1},\"inverness-szovet-puff-ajanlat\":{\"p\":38990.0,\"c\":0,\"q\":1},\"j-line-bukle-szek-ajanlat\":{\"p\":68990.0,\"c\":0,\"q\":1},\"j-line-fa-ejjeliszekreny-ajanlat\":{\"p\":120990.0,\"c\":0,\"q\":1},\"jake-worn-textilbor-szek-ajanlat\":{\"p\":59990.0,\"c\":0,\"q\":1},\"jason-mdf-dohanyzoasztal-ajanlat\":{\"p\":110288.0,\"c\":0,\"q\":1},\"jena-fali-fa-ejjeliszekreny-ajanlat\":{\"p\":25990.0,\"c\":0,\"q\":1},\"jenny-szovet-szek-ajanlat\":{\"p\":73990.0,\"c\":0,\"q\":1},\"jezebel-kanape-premium-mikroszalas-karpitozassal-es-massziv-fa-vazzal-ajanlat\":{\"p\":893902.0,\"c\":0,\"q\":1},\"joa-szovet-szek-ajanlat\":{\"p\":59841.0,\"c\":0,\"q\":2},\"jolien-szovet-karfas-szek-ajanlat\":{\"p\":89291.0,\"c\":0,\"q\":3},\"jolien-szovet-szek-ajanlat\":{\"p\":81691.0,\"c\":0,\"q\":2},\"jordy-fa-etkezoasztal-250x100-ajanlat\":{\"p\":523990.0,\"c\":0,\"q\":1},\"jorre-fa-etkezoasztal-o120-ajanlat\":{\"p\":299990.0,\"c\":0,\"q\":1},\"josh-fa-dohanyzoasztal-ajanlat\":{\"p\":313990.0,\"c\":0,\"q\":1},\"josh-fa-etkezoasztal-300x110-ajanlat\":{\"p\":891990.0,\"c\":0,\"q\":1},\"josse-taupe-cipotarto-ajanlat\":{\"p\":38990.0,\"c\":0,\"q\":2},\"junzo-rib-szovet-szek-ajanlat\":{\"p\":59990.0,\"c\":0,\"q\":2},\"kaat-fa-iroasztal-ajanlat\":{\"p\":325947.0,\"c\":0,\"q\":1},\"kaelle-barsony-fotel-ajanlat\":{\"p\":282192.0,\"c\":0,\"q\":1},\"karish-fem-faliampa-ajanlat\":{\"p\":65826.0,\"c\":0,\"q\":1},\"karula-keramia-lerakoasztal-kicsi-ajanlat\":{\"p\":77990.0,\"c\":81586.0,\"q\":1},\"kate-barsony-fotel-ajanlat\":{\"p\":315290.0,\"c\":0,\"q\":1},\"katrine-uveg-konzolasztal-ajanlat\":{\"p\":72990.0,\"c\":0,\"q\":1},\"kazi-szonyeg-190x290-ajanlat\":{\"p\":223990.0,\"c\":0,\"q\":2},\"kelly-3-5-szemelyes-bukle-kanape-ajanlat\":{\"p\":1932990.0,\"c\":0,\"q\":1},\"kelly-bukle-fotel-ajanlat\":{\"p\":966990.0,\"c\":0,\"q\":1},\"kency-uveg-vaza-ajanlat\":{\"p\":28990.0,\"c\":0,\"q\":1},\"kira-marvany-dohanyzoasztal-129x84-ajanlat\":{\"p\":340990.0,\"c\":0,\"q\":1},\"kira-marvany-iroasztal-ajanlat\":{\"p\":445990.0,\"c\":0,\"q\":1},\"kiss-pluss-tukor-49x66-ajanlat\":{\"p\":30990.0,\"c\":0,\"q\":2},\"kiss-pluss-tukor-60x130-ajanlat\":{\"p\":69990.0,\"c\":0,\"q\":1},\"kiss-the-froggy-szovet-szek-ajanlat\":{\"p\":109990.0,\"c\":0,\"q\":1},\"laban-fa-tukor-72x180-ajanlat\":{\"p\":109990.0,\"c\":0,\"q\":1},\"laban-xl-fa-tukor-ajanlat\":{\"p\":165990.0,\"c\":0,\"q\":1},\"latina-fa-konzolasztal-ajanlat\":{\"p\":209990.0,\"c\":231990.0,\"q\":1},\"laurel-keramia-lerakoasztal-ajanlat\":{\"p\":47990.0,\"c\":0,\"q\":1},\"leo-bukle-szek-ajanlat\":{\"p\":91990.0,\"c\":0,\"q\":1},\"line-of-action-study-dizajn-vaszonkep-ajanlat\":{\"p\":94990.0,\"c\":0,\"q\":1},\"linje-pamut-parna-40x60-ajanlat\":{\"p\":11990.0,\"c\":0,\"q\":1},\"lion-fa-dohanyzoasztal-ajanlat\":{\"p\":83990.0,\"c\":0,\"q\":1},\"lionel-szovet-alacsony-barszek-ajanlat\":{\"p\":79990.0,\"c\":0,\"q\":2},\"lionel-szovet-szek-ajanlat\":{\"p\":79791.0,\"c\":0,\"q\":1},\"lise-fem-lerakoasztal-ajanlat\":{\"p\":86990.0,\"c\":0,\"q\":1},\"livo-textilbor-szek-ajanlat\":{\"p\":58990.0,\"c\":0,\"q\":4},\"loft-bukle-allolampa-130cm-ajanlat\":{\"p\":75990.0,\"c\":0,\"q\":1},\"loft-bukle-allolampa-187-ajanlat\":{\"p\":134990.0,\"c\":0,\"q\":1},\"london-dontheto-szovet-fotel-1-ajanlat\":{\"p\":288990.0,\"c\":0,\"q\":1},\"lucy-zsenilia-barszek-ajanlat\":{\"p\":66990.0,\"c\":0,\"q\":2},\"luka-bukle-etkezopad-ajanlat\":{\"p\":288990.0,\"c\":0,\"q\":1},\"luka-bukle-szek-ajanlat\":{\"p\":114990.0,\"c\":0,\"q\":3},\"luxor-4-ajto-fa-komod-ajanlat\":{\"p\":1110990.0,\"c\":1167073.0,\"q\":1},\"macaron-gyanta-lerakoasztal-ajanlat\":{\"p\":92990.0,\"c\":0,\"q\":1},\"malta-keramia-etkezoasztal-o90-ajanlat\":{\"p\":139990.0,\"c\":0,\"q\":2},\"mari-meszko-lerakoasztal-ajanlat\":{\"p\":131990.0,\"c\":0,\"q\":1},\"marilla-szovet-barszek-ajanlat\":{\"p\":72990.0,\"c\":0,\"q\":1},\"marilla-szovet-forgoszek-fa-labbal-ajanlat\":{\"p\":102990.0,\"c\":0,\"q\":1},\"marilla-szovet-forgoszek-fem-labbal-ajanlat\":{\"p\":74990.0,\"c\":0,\"q\":1},\"maru-marvany-hatasu-etkezoasztal-o110-ajanlat\":{\"p\":299990.0,\"c\":0,\"q\":1},\"matz-fem-tukor-kicsi-ajanlat\":{\"p\":55765.0,\"c\":0,\"q\":1},\"matz-fem-tukor-nagy-ajanlat\":{\"p\":109250.0,\"c\":0,\"q\":1},\"maud-fa-lerakoasztal-kicsi-ajanlat\":{\"p\":31990.0,\"c\":0,\"q\":1},\"maud-fa-lerakoasztal-nagy-ajanlat\":{\"p\":45990.0,\"c\":0,\"q\":1},\"maxim-marvany-dohanyzoasztal-ajanlat\":{\"p\":208990.0,\"c\":0,\"q\":1},\"mesa-fa-lerakoasztal-kicsi-ajanlat\":{\"p\":23000.0,\"c\":0,\"q\":1},\"mesita-fem-dohanyzoasztal-ajanlat\":{\"p\":112990.0,\"c\":0,\"q\":1},\"mesita-fem-lerakoasztal-ajanlat\":{\"p\":81990.0,\"c\":0,\"q\":1},\"mikky-szovet-szek-natur-labbal-ajanlat\":{\"p\":135990.0,\"c\":0,\"q\":1},\"monkey-mugyanta-fuggolampa-ajanlat\":{\"p\":145990.0,\"c\":0,\"q\":1},\"mood-cloud-dizajn-vaszonkep-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":2},\"moreno-marvany-asztali-ora-ajanlat\":{\"p\":28990.0,\"c\":0,\"q\":1},\"morris-leem-fa-iroasztal-ajanlat\":{\"p\":126500.0,\"c\":0,\"q\":1},\"my-secret-place-mugyanta-asztali-lampa-ajanlat\":{\"p\":83690.0,\"c\":0,\"q\":1},\"naia-uveg-lerakoasztal-ajanlat\":{\"p\":48970.0,\"c\":52893.0,\"q\":1},\"nardi-doga-bistrot-szekparna-ajanlat\":{\"p\":17058.0,\"c\":0,\"q\":6},\"nardi-folio-szekparna-ajanlat\":{\"p\":38854.0,\"c\":0,\"q\":1},\"nardi-net-padparna-ajanlat\":{\"p\":34571.0,\"c\":0,\"q\":2},\"nardi-net-pp-alacsony-barszek-ajanlat\":{\"p\":34590.0,\"c\":0,\"q\":2},\"ndsm-bukle-szek-ajanlat\":{\"p\":143990.0,\"c\":260164.0,\"q\":1},\"net-pp-kerti-etkezoszek-ajanlat\":{\"p\":28904.0,\"c\":0,\"q\":11},\"net-pp-kerti-pad-ajanlat\":{\"p\":59230.0,\"c\":0,\"q\":2},\"net-pp-kerti-pihenofotel-ajanlat\":{\"p\":43119.0,\"c\":0,\"q\":1},\"net-pp-kulteri-barszek-ajanlat\":{\"p\":30800.0,\"c\":0,\"q\":4},\"net-pp-kulteri-relax-fotel-ajanlat\":{\"p\":34116.0,\"c\":0,\"q\":1},\"new-gravure-fenyofa-tv-szekreny-150-ajanlat\":{\"p\":210990.0,\"c\":0,\"q\":1},\"nikko-fa-tv-szekreny-ajanlat\":{\"p\":73990.0,\"c\":0,\"q\":1},\"no-offence-fem-dohanyzoasztal-ajanlat\":{\"p\":79990.0,\"c\":0,\"q\":1},\"nola-dohanyzoasztal-ajanlat\":{\"p\":156990.0,\"c\":0,\"q\":2},\"nola-fa-etkezoasztal-250x110-ajanlat\":{\"p\":733990.0,\"c\":0,\"q\":1},\"nola-fa-etkezoasztal-o120-ajanlat\":{\"p\":245990.0,\"c\":0,\"q\":1},\"nola-toloajtos-fa-kabinet-ajanlat\":{\"p\":184590.0,\"c\":0,\"q\":2},\"nola-toloajtos-fa-komod-120-ajanlat\":{\"p\":188990.0,\"c\":0,\"q\":1},\"nola-toloajtos-fa-komod-180-ajanlat\":{\"p\":244990.0,\"c\":0,\"q\":1},\"nola-toloajtos-fa-tv-allvany-120-ajanlat\":{\"p\":135590.0,\"c\":0,\"q\":1},\"nolan-szovet-szek-ajanlat\":{\"p\":61990.0,\"c\":0,\"q\":2},\"north-mugyanta-lerakoasztal-ajanlat\":{\"p\":196990.0,\"c\":0,\"q\":1},\"nova-bukle-fotel-ajanlat\":{\"p\":175990.0,\"c\":0,\"q\":1},\"oily-folds-keramia-lerakoasztal-ajanlat\":{\"p\":86990.0,\"c\":0,\"q\":2},\"olympa-fem-tal-ajanlat\":{\"p\":28990.0,\"c\":0,\"q\":4},\"opulent-bukle-fotel-ajanlat\":{\"p\":263990.0,\"c\":0,\"q\":1},\"osaka-bovitheto-fa-etkezoasztal-ajanlat\":{\"p\":370990.0,\"c\":389990.0,\"q\":1},\"ottava-diszparna-ajanlat\":{\"p\":17566.0,\"c\":0,\"q\":2},\"ottowa-barsony-szek-ajanlat\":{\"p\":55599.0,\"c\":0,\"q\":1},\"owen-szovet-fotel-ajanlat\":{\"p\":261990.0,\"c\":0,\"q\":1},\"palm-street-dizajn-vaszonkep-ajanlat\":{\"p\":152990.0,\"c\":0,\"q\":1},\"pappagallo-fem-asztali-lampa-ajanlat\":{\"p\":18990.0,\"c\":0,\"q\":1},\"parade-szovet-szek-ajanlat\":{\"p\":63990.0,\"c\":0,\"q\":1},\"paragon-uveg-vaza-kicsi-ajanlat\":{\"p\":20990.0,\"c\":0,\"q\":2},\"paul-szek-modern-sziluett-strapabiro-karpitozassal-ajanlat\":{\"p\":93990.0,\"c\":0,\"q\":2},\"pekela-bor-alacsony-barszek-ajanlat\":{\"p\":134990.0,\"c\":0,\"q\":1},\"pensacola-3-fiokos-fa-komod-ajanlat\":{\"p\":91990.0,\"c\":0,\"q\":1},\"permit-szovet-szek-ajanlat\":{\"p\":121990.0,\"c\":0,\"q\":4},\"pero-fa-szek-ajanlat\":{\"p\":58990.0,\"c\":0,\"q\":4},\"pilar-fa-etkezoasztal-o100-ajanlat\":{\"p\":348090.0,\"c\":348091.0,\"q\":1},\"pillowscape-szovet-labtarto-ajanlat\":{\"p\":78990.0,\"c\":0,\"q\":1},\"plump-textilbor-barszek-ajanlat\":{\"p\":42990.0,\"c\":0,\"q\":1},\"poa-grass-munoveny-ajanlat\":{\"p\":6990.0,\"c\":0,\"q\":1},\"polly-bukle-labtarto-ajanlat\":{\"p\":91191.0,\"c\":0,\"q\":1},\"pop-pp-kerti-lerakoasztal-ajanlat\":{\"p\":17532.0,\"c\":0,\"q\":1},\"prague-lerakoasztal-szeles-ajanlat\":{\"p\":28990.0,\"c\":0,\"q\":1},\"puyi-keramia-vaza-ajanlat\":{\"p\":93990.0,\"c\":0,\"q\":2},\"rayven-fa-szek-ajanlat\":{\"p\":135990.0,\"c\":0,\"q\":1},\"remi-2-ajtos-fa-kabinet-ajanlat\":{\"p\":576990.0,\"c\":0,\"q\":1},\"remi-6-ajtos-fa-tv-allvany-ajanlat\":{\"p\":472990.0,\"c\":0,\"q\":1},\"revere-szovet-szek-ajanlat\":{\"p\":125990.0,\"c\":0,\"q\":1},\"reverse-fa-tukor-ajanlat\":{\"p\":241990.0,\"c\":453986.0,\"q\":1},\"ridge-rib-karfas-kordbarsony-szek-ajanlat\":{\"p\":98990.0,\"c\":178163.0,\"q\":2},\"ringar-fem-lerakoasztal-kicsi-ajanlat\":{\"p\":48790.0,\"c\":0,\"q\":1},\"rodeo-barsony-fotel-ajanlat\":{\"p\":355990.0,\"c\":360990.0,\"q\":1},\"rosalin-szovet-szek-ajanlat\":{\"p\":124990.0,\"c\":0,\"q\":4},\"roxana-szovet-forgoszek-fem-labbal-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":1},\"roxby-fa-etkezoasztal-o120-ajanlat\":{\"p\":115990.0,\"c\":0,\"q\":1},\"roxby-fa-etkezoasztal-o140-ajanlat\":{\"p\":177990.0,\"c\":0,\"q\":1},\"rupert-szovet-szek-ajanlat\":{\"p\":48990.0,\"c\":0,\"q\":3},\"sabi-szovet-diszparna-ajanlat\":{\"p\":11990.0,\"c\":0,\"q\":2},\"sahil-uveg-vaza-ajanlat\":{\"p\":23990.0,\"c\":0,\"q\":1},\"salerno-marvany-lerakoasztal-kicsi-ajanlat\":{\"p\":65190.0,\"c\":0,\"q\":1},\"salerno-marvany-lerakoasztal-nagy-ajanlat\":{\"p\":73390.0,\"c\":0,\"q\":1},\"sanne-fa-lerakoasztal-ajanlat\":{\"p\":103990.0,\"c\":0,\"q\":4},\"sanou-fem-tukor-ajanlat\":{\"p\":92990.0,\"c\":0,\"q\":2},\"sansa-uveg-etkezoasztal-180x90-ajanlat\":{\"p\":368590.0,\"c\":0,\"q\":1},\"sara-fotel-ajanlat\":{\"p\":119990.0,\"c\":151990.0,\"q\":1},\"sara-meszko-etkezoasztal-o130-ajanlat\":{\"p\":471990.0,\"c\":0,\"q\":1},\"saroo-2-ajtos-2-fiokos-fa-kabinet-kicsi-ajanlat\":{\"p\":260990.0,\"c\":0,\"q\":1},\"sassy-granny-barsony-fotel-ajanlat\":{\"p\":323990.0,\"c\":0,\"q\":2},\"seaford-fa-polc-114x78-ajanlat\":{\"p\":54990.0,\"c\":0,\"q\":1},\"seaford-fiokos-fa-ejjeliszekreny-ajanlat\":{\"p\":44990.0,\"c\":0,\"q\":2},\"seashell-textilbor-barszek-ajanlat\":{\"p\":69990.0,\"c\":0,\"q\":1},\"seki-pp-lerakoasztal-ajanlat\":{\"p\":109990.0,\"c\":0,\"q\":1},\"shane-fa-dohanyzoasztal-ajanlat\":{\"p\":61990.0,\"c\":111072.0,\"q\":1},\"sharon-bukle-fotel-ajanlat\":{\"p\":303990.0,\"c\":0,\"q\":1},\"sheepskin-baranyszor-uloke-ajanlat\":{\"p\":114990.0,\"c\":0,\"q\":1},\"shelly-fa-lerakoasztal-ajanlat\":{\"p\":106990.0,\"c\":193073.0,\"q\":1},\"siena-toloajtos-fa-tv-allvany-ajanlat\":{\"p\":305490.0,\"c\":0,\"q\":1},\"sirius-fem-allolampa-ajanlat\":{\"p\":122590.0,\"c\":222893.0,\"q\":1},\"slides-fa-konzolasztal-ajanlat\":{\"p\":204990.0,\"c\":0,\"q\":1},\"smokes-dizajn-vaszonkep-ajanlat\":{\"p\":94990.0,\"c\":0,\"q\":1},\"snow-leopard-dizajn-vaszonkep-ajanlat\":{\"p\":152990.0,\"c\":0,\"q\":1},\"solitaire-marvany-dekoracio-ajanlat\":{\"p\":23990.0,\"c\":0,\"q\":1},\"solva-fa-etkezoasztal-ajanlat\":{\"p\":344990.0,\"c\":0,\"q\":1},\"soof-fa-konzolasztal-ajanlat\":{\"p\":75990.0,\"c\":0,\"q\":1},\"sora-allolampa-ajanlat\":{\"p\":82990.0,\"c\":0,\"q\":1},\"spool-barsony-diszparna-ajanlat\":{\"p\":15300.0,\"c\":0,\"q\":2},\"spring-frolic-dizajn-vaszonkep-ajanlat\":{\"p\":94900.0,\"c\":94990.0,\"q\":1},\"spritz-pp-kerti-lerakoasztal-copy-ajanlat\":{\"p\":24166.0,\"c\":0,\"q\":1},\"stack-maxi-pp-kerti-barszek-ajanlat\":{\"p\":25587.0,\"c\":0,\"q\":4},\"stack-mini-pp-kerti-barszek-ajanlat\":{\"p\":19428.0,\"c\":0,\"q\":2},\"storm-fa-etkezoasztal-220x90-ajanlat\":{\"p\":512100.0,\"c\":0,\"q\":1},\"strike-lucky-fa-lerakoasztal-ajanlat\":{\"p\":67650.0,\"c\":0,\"q\":1},\"strington-fem-dohanyzoasztal-o65-ajanlat\":{\"p\":61990.0,\"c\":0,\"q\":1},\"swan-bukle-szek-ajanlat\":{\"p\":61299.0,\"c\":0,\"q\":2},\"swing-monkey-mugyanta-fuggolampa-ajanlat\":{\"p\":129990.0,\"c\":0,\"q\":1},\"tabassum-fa-etkezoasztal-260x100-ajanlat\":{\"p\":576990.0,\"c\":0,\"q\":1},\"tahiti-szovet-kerti-szek-ajanlat\":{\"p\":104990.0,\"c\":0,\"q\":2},\"talika-fa-szek-ajanlat\":{\"p\":93790.0,\"c\":0,\"q\":4},\"taranto-szovet-pad-ajanlat\":{\"p\":480990.0,\"c\":0,\"q\":1},\"tee-fa-konyvallvany-ajanlat\":{\"p\":21990.0,\"c\":0,\"q\":1},\"tess-bukle-szek-ajanlat\":{\"p\":109990.0,\"c\":0,\"q\":1},\"the-look-dizajn-vaszonkep-ajanlat\":{\"p\":152990.0,\"c\":0,\"q\":1},\"tiwa-bukle-fotel-ajanlat\":{\"p\":201990.0,\"c\":0,\"q\":1},\"toma-fekete-fa-lerakoasztal-ajanlat\":{\"p\":151990.0,\"c\":0,\"q\":1},\"tonez-asztali-lampa-ajanlat\":{\"p\":26990.0,\"c\":0,\"q\":1},\"torrance-szovet-szek-ajanlat\":{\"p\":92141.0,\"c\":0,\"q\":2},\"totem-szovet-allolampa-ajanlat\":{\"p\":207983.0,\"c\":0,\"q\":1},\"tray-fa-lerakoasztal-ajanlat\":{\"p\":69290.0,\"c\":130456.0,\"q\":1},\"tubi-uveg-asztali-lampa-ajanlat\":{\"p\":60990.0,\"c\":0,\"q\":1},\"tulip-szek-ajanlat\":{\"p\":73990.0,\"c\":0,\"q\":1},\"tuve-fa-lerakoasztal-ajanlat\":{\"p\":99990.0,\"c\":0,\"q\":1},\"ty-fa-polc-180x80-ajanlat\":{\"p\":576990.0,\"c\":0,\"q\":1},\"veglia-fem-etkezoasztal-ajanlat\":{\"p\":485990.0,\"c\":0,\"q\":1},\"venezia-uveg-dohanyzoasztal-ajanlat\":{\"p\":50990.0,\"c\":0,\"q\":1},\"villano-konzolasztal-bronz-es-biztonsagi-uveg-ajanlat\":{\"p\":245122.0,\"c\":0,\"q\":1},\"vince-kordbarsony-fotel-ajanlat\":{\"p\":311211.0,\"c\":0,\"q\":1},\"vinny-bukle-forgo-szek-ajanlat\":{\"p\":134990.0,\"c\":0,\"q\":1},\"vintage-window-fem-tukor-ajanlat\":{\"p\":93890.0,\"c\":0,\"q\":1},\"vista-szovet-parna-ajanlat\":{\"p\":11990.0,\"c\":0,\"q\":3},\"vogue-barsony-barszek-ajanlat\":{\"p\":114990.0,\"c\":0,\"q\":1},\"vogue-barsony-szek-ajanlat\":{\"p\":99990.0,\"c\":0,\"q\":2},\"vogue-bor-szek-ajanlat\":{\"p\":89990.0,\"c\":0,\"q\":1},\"vojens-fa-etkezoasztal-120x70-ajanlat\":{\"p\":52990.0,\"c\":0,\"q\":1},\"volan-3-ajtos-fa-komod-ajanlat\":{\"p\":325990.0,\"c\":744709.0,\"q\":1},\"webster-fa-komod-135x82-ajanlat\":{\"p\":192990.0,\"c\":364525.0,\"q\":1},\"westlake-karfas-szek-ajanlat\":{\"p\":112091.0,\"c\":0,\"q\":4},\"white-flowers-dizajn-vaszonkep-ajanlat\":{\"p\":94900.0,\"c\":94990.0,\"q\":1},\"wolf-porcelan-dekoracio-ajanlat\":{\"p\":140990.0,\"c\":0,\"q\":1},\"ynez-marvany-etkezoasztal-ajanlat\":{\"p\":386990.0,\"c\":0,\"q\":1},\"yossi-szovet-szek-barna-fem-labbal-ajanlat\":{\"p\":89990.0,\"c\":0,\"q\":1},\"yves-szovet-szek-ajanlat\":{\"p\":63990.0,\"c\":0,\"q\":1},\"zistra-002-fa-barszek-ajanlat\":{\"p\":46990.0,\"c\":0,\"q\":1},\"zistra-011-szovet-barszek-ajanlat\":{\"p\":83990.0,\"c\":0,\"q\":1},\"zistra-016-szovet-szek-ajanlat\":{\"p\":41990.0,\"c\":0,\"q\":1},\"zistra-029-szovet-szek-ajanlat\":{\"p\":83990.0,\"c\":0,\"q\":1},\"zistra-155-keramia-dohanyzoasztal-szettben-ajanlat\":{\"p\":55990.0,\"c\":0,\"q\":1},\"zistra-197-uveg-lerakoasztal-ajanlat\":{\"p\":55990.0,\"c\":0,\"q\":1},\"zistra-466-uveg-allolampa-ajanlat\":{\"p\":74990.0,\"c\":0,\"q\":1},\"zone-szovet-pad-ajanlat\":{\"p\":277990.0,\"c\":0,\"q\":1},\"abbracci-modularis-kanape-ajanlat\":{\"p\":1056990.0,\"c\":0,\"q\":1},\"alvin-xl-u-alaku-kanape-ajanlat\":{\"p\":1307990.0,\"c\":0,\"q\":2},\"amy-labtarto-ajanlat\":{\"p\":175990.0,\"c\":0,\"q\":1},\"asta-modularis-kanape-ajanlat\":{\"p\":637990.0,\"c\":0,\"q\":1},\"barbara-bukle-szek-ajanlat\":{\"p\":74990.0,\"c\":78841.0,\"q\":1},\"barbier-fa-konzolasztal-ajanlat\":{\"p\":192990.0,\"c\":200488.0,\"q\":1},\"barrali-toloajtos-fa-komod-ajanlat\":{\"p\":334590.0,\"c\":349990.0,\"q\":1},\"bas-tesztilbor-szek-ajanlat\":{\"p\":54990.0,\"c\":0,\"q\":1},\"batilda-bukle-szek-ajanlat\":{\"p\":54990.0,\"c\":68990.0,\"q\":1},\"beetle-fotel-ajanlat\":{\"p\":365990.0,\"c\":0,\"q\":1},\"bellis-balos-bukle-sarokkanape-282x155-ajanlat\":{\"p\":679992.0,\"c\":0,\"q\":1},\"benson-kordbarsony-alacsony-barszek-ajanlat\":{\"p\":114990.0,\"c\":0,\"q\":3},\"besso-balos-sarokkanape-ajanlat\":{\"p\":880990.0,\"c\":0,\"q\":2},\"bonnet-szek-ajanlat\":{\"p\":59990.0,\"c\":62691.0,\"q\":2},\"bora-pp-kerti-szek-1-ajanlat\":{\"p\":19428.0,\"c\":0,\"q\":4},\"boto-textilbor-szek-ajanlat\":{\"p\":150990.0,\"c\":0,\"q\":1},\"boy-szovet-szek-ajanlat\":{\"p\":61990.0,\"c\":0,\"q\":2},\"brook-fekvo-fem-konyvtarto-ajanlat\":{\"p\":12250.0,\"c\":0,\"q\":2},\"bruno-fotel-ajanlat\":{\"p\":209990.0,\"c\":418990.0,\"q\":1},\"casel-barsony-puff-ajanlat\":{\"p\":24990.0,\"c\":0,\"q\":1},\"clement-relax-fotel-beepitett-labtartoval-ajanlat\":{\"p\":898900.0,\"c\":1083900.0,\"q\":1},\"cloud-art-textilbor-szek-ajanlat\":{\"p\":75990.0,\"c\":0,\"q\":1},\"clover-szovet-uloke-ajanlat\":{\"p\":131990.0,\"c\":0,\"q\":1},\"crazy-keramia-vaza-ajanlat\":{\"p\":91500.0,\"c\":432990.0,\"q\":1},\"cupid-marvany-printelt-uveg-lerakoasztal-ajanlat\":{\"p\":47990.0,\"c\":0,\"q\":1},\"curvy-keramia-uloke-ajanlat\":{\"p\":86990.0,\"c\":90990.0,\"q\":1},\"domani-bukle-fotel-ajanlat\":{\"p\":468990.0,\"c\":0,\"q\":1},\"domani-modularis-kanape-ajanlat\":{\"p\":416990.0,\"c\":0,\"q\":1},\"domani-set-4-ajanlat\":{\"p\":1246990.0,\"c\":0,\"q\":2},\"dont-stop-szovet-szek-ajanlat\":{\"p\":99990.0,\"c\":0,\"q\":1},\"dora-szovet-szek-ajanlat\":{\"p\":83990.0,\"c\":0,\"q\":1},\"dot-fem-uloke-ajanlat\":{\"p\":119990.0,\"c\":0,\"q\":1},\"doulton-szovet-szek-ajanlat\":{\"p\":110191.0,\"c\":0,\"q\":1},\"egon-fotel-ajanlat\":{\"p\":271990.0,\"c\":0,\"q\":1},\"embrace-fa-szek-ajanlat\":{\"p\":142990.0,\"c\":147990.0,\"q\":1},\"feston-szovet-szek-ajanlat\":{\"p\":136990.0,\"c\":139641.0,\"q\":1},\"gappa-2-kanape-ajanlat\":{\"p\":588990.0,\"c\":0,\"q\":1},\"glenda-szovet-forgoszek-ajanlat\":{\"p\":73990.0,\"c\":0,\"q\":1},\"hype-textilbor-barszek-ajanlat\":{\"p\":80990.0,\"c\":0,\"q\":1},\"ilusio-l-kanape-masolat-1-ajanlat\":{\"p\":1220990.0,\"c\":1284990.0,\"q\":1},\"kelly-fotel-ajanlat\":{\"p\":232927.0,\"c\":0,\"q\":1},\"lagos-s-kanape-masolat-1-ajanlat\":{\"p\":1012990.0,\"c\":0,\"q\":1},\"mesa-fa-lerakoasztal-kozepes-ajanlat\":{\"p\":25400.0,\"c\":0,\"q\":1},\"middelfart-barsony-barszek-ajanlat\":{\"p\":38990.0,\"c\":0,\"q\":3},\"miley-4-szemelyes-jobbos-bukle-kanape-ajanlat\":{\"p\":599990.0,\"c\":719990.0,\"q\":1},\"mini-fotel-ajanlat\":{\"p\":248990.0,\"c\":0,\"q\":1},\"nikki-textilbor-fotel-ajanlat\":{\"p\":241490.0,\"c\":409255.0,\"q\":1},\"notice-2-ajtos-fa-kabinet-ajanlat\":{\"p\":294990.0,\"c\":0,\"q\":1},\"oily-spike-keramia-lerakoasztal-ajanlat\":{\"p\":86990.0,\"c\":0,\"q\":2},\"omg-ll-textilbor-szek-ajanlat\":{\"p\":102090.0,\"c\":170713.0,\"q\":1},\"omg-soft-szovet-szek-ajanlat\":{\"p\":93990.0,\"c\":170713.0,\"q\":1},\"orca-modularis-kanape-ajanlat\":{\"p\":537990.0,\"c\":0,\"q\":1},\"pebble-ko-dohanyzoasztal-ajanlat\":{\"p\":89990.0,\"c\":104990.0,\"q\":1},\"pelican-szovet-uloke-ajanlat\":{\"p\":21990.0,\"c\":0,\"q\":4},\"pero-fa-alacsony-barszek-ajanlat\":{\"p\":60990.0,\"c\":70990.0,\"q\":1},\"ridge-rib-kordbarsony-szek-1-ajanlat\":{\"p\":125982.0,\"c\":0,\"q\":1},\"rio-fem-kerti-asztal-padokkal-ajanlat\":{\"p\":192990.0,\"c\":619068.0,\"q\":1},\"roll-puff-ajanlat\":{\"p\":62700.0,\"c\":0,\"q\":1},\"rondo-forgo-fotel-ajanlat\":{\"p\":734990.0,\"c\":0,\"q\":2},\"samone-kombinalhato-kanape-ajanlat\":{\"p\":479900.0,\"c\":0,\"q\":1},\"seam-fa-dohanyzoasztal-1-ajanlat\":{\"p\":149990.0,\"c\":0,\"q\":1},\"seashell-textilbor-alacsony-barszek-ajanlat\":{\"p\":59990.0,\"c\":0,\"q\":1},\"soul-puff-ajanlat\":{\"p\":185990.0,\"c\":0,\"q\":1},\"stilo-fotel-ajanlat\":{\"p\":400900.0,\"c\":0,\"q\":1},\"stone-jobbos-bukle-kanape-ajanlat\":{\"p\":237990.0,\"c\":0,\"q\":1},\"stripy-kordbarsony-parna-ajanlat\":{\"p\":23990.0,\"c\":0,\"q\":1},\"summer-szovet-fotel-ajanlat\":{\"p\":489990.0,\"c\":893801.0,\"q\":1},\"thirsty-karfa-nelkuli-szovet-szek-ajanlat\":{\"p\":122990.0,\"c\":200524.0,\"q\":1},\"tip-tap-pp-uloke-ajanlat\":{\"p\":152990.0,\"c\":0,\"q\":1},\"torino-kombinalhato-kanape-ajanlat\":{\"p\":306900.0,\"c\":0,\"q\":1},\"urban-charger-uveg-asztali-lampa-ajanlat\":{\"p\":36490.0,\"c\":66342.0,\"q\":1},\"velpa-s-jobbos-sarokkanape-ajanlat\":{\"p\":955990.0,\"c\":0,\"q\":2},\"vogue-zsenilia-szek-fekete-labbal-ajanlat\":{\"p\":89990.0,\"c\":103990.0,\"q\":1},\"vogue-zsenilia-szek-krom-labbal-ajanlat\":{\"p\":110990.0,\"c\":134990.0,\"q\":1},\"whistler-szovet-szek-ajanlat\":{\"p\":44990.0,\"c\":50599.0,\"q\":1},\"wire-zig-zag-fem-uloke-ajanlat\":{\"p\":130990.0,\"c\":136990.0,\"q\":2},\"zistra-238-fa-fali-ejjeliszekreny-ajanlat\":{\"p\":46990.0,\"c\":0,\"q\":1},\"golden-heron-fem-gyertyatarto-ajanlat\":{\"p\":9990.0,\"c\":0,\"q\":4},\"mauk-1-mugyanta-dekoracio-ajanlat\":{\"p\":30990.0,\"c\":0,\"q\":4},\"scholar-bor-magazin-tarto-ajanlat\":{\"p\":81590.0,\"c\":0,\"q\":2},\"monica-uveg-asztali-lampa-ajanlat\":{\"p\":41300.0,\"c\":0,\"q\":1},\"dunja-sargarez-vaza-m-meret-ajanlat\":{\"p\":31400.0,\"c\":0,\"q\":4},\"leia-kavezoasztal-ajanlat\":{\"p\":166990.0,\"c\":0,\"q\":1},\"i-feel-soft-diszparna-ajanlat\":{\"p\":20990.0,\"c\":0,\"q\":1},\"chisel-4-ajtos-fa-komod-ajanlat\":{\"p\":389090.0,\"c\":0,\"q\":2},\"monica-fustuveg-asztali-lampa-ajanlat\":{\"p\":41300.0,\"c\":0,\"q\":3},\"dunja-sargarez-vaza-l-meret-ajanlat\":{\"p\":35900.0,\"c\":0,\"q\":3},\"devi-fem-asztali-lampa-ajanlat\":{\"p\":65190.0,\"c\":0,\"q\":1},\"landa-fa-kerti-fotel-ajanlat\":{\"p\":204590.0,\"c\":0,\"q\":1},\"jaylee-allo-lampa-ajanlat\":{\"p\":81000.0,\"c\":0,\"q\":1},\"filo-szovet-asztali-lampa-kicsi-ajanlat\":{\"p\":24190.0,\"c\":0,\"q\":1},\"sweet-mesh-fem-asztali-lampa-ajanlat\":{\"p\":70500.0,\"c\":0,\"q\":1},\"the-golden-heron-fem-gyertyatarto-kicsi-ajanlat\":{\"p\":8990.0,\"c\":0,\"q\":2},\"ovid-alacsony-barszek-ajanlat\":{\"p\":58800.0,\"c\":0,\"q\":1},\"mil-fem-zsurkocsi-ajanlat\":{\"p\":204590.0,\"c\":0,\"q\":1},\"lily-fem-lerakoasztal-ajanlat\":{\"p\":40500.0,\"c\":0,\"q\":1},\"brandon-barsony-szek-ajanlat\":{\"p\":95990.0,\"c\":0,\"q\":1},\"solos-uveg-zsurkocsi-ajanlat\":{\"p\":97990.0,\"c\":0,\"q\":1},\"waldo-szovet-szek-ajanlat\":{\"p\":101990.0,\"c\":0,\"q\":1},\"i-am-not-a-croissant-kanape-ajanlat\":{\"p\":619990.0,\"c\":0,\"q\":1},\"gauri-marvany-lerakoasztal-ajanlat\":{\"p\":118490.0,\"c\":0,\"q\":1},\"lunar-barsony-szek-ajanlat\":{\"p\":163590.0,\"c\":0,\"q\":2},\"robusto-barsony-fotel-ajanlat\":{\"p\":384990.0,\"c\":0,\"q\":1},\"such-a-stud-barsony-fotel-ajanlat\":{\"p\":299990.0,\"c\":0,\"q\":1},\"sir-william-szovet-fotel-ajanlat\":{\"p\":290690.0,\"c\":0,\"q\":1},\"magnus-szovet-szek-ajanlat\":{\"p\":110290.0,\"c\":0,\"q\":2},\"fring-me-up-barsony-fotel-ajanlat\":{\"p\":350990.0,\"c\":0,\"q\":1},\"my-lover-and-best-friend-puff-ajanlat\":{\"p\":94990.0,\"c\":0,\"q\":2},\"stitched-cognac-textilbor-szek-ajanlat\":{\"p\":118480.0,\"c\":0,\"q\":1},\"glodis-barsony-fotel-ajanlat\":{\"p\":315290.0,\"c\":0,\"q\":1},\"such-a-stud-barsony-fotel-sotetkek-ajanlat\":{\"p\":299990.0,\"c\":0,\"q\":1},\"gappa-kanape-ajanlat\":{\"p\":969990.0,\"c\":1212488.0,\"q\":1},\"samone-kanape-ajanlat\":{\"p\":1249600.0,\"c\":1562000.0,\"q\":1},\"abracci-kanape-ajanlat\":{\"p\":2629990.0,\"c\":3287488.0,\"q\":1},\"sacai-modularis-kanape-puffal-es-parnaval-ajanlat\":{\"p\":3829990.0,\"c\":4787488.0,\"q\":1},\"formosa-chaise-lounge-bezs-relax-ajanlat\":{\"p\":576990.0,\"c\":721238.0,\"q\":1},\"formosa-modularis-kanape-barna-ajanlat\":{\"p\":967990.0,\"c\":1209988.0,\"q\":1},\"formosa-chaise-lounge-bezs-ajanlat\":{\"p\":754990.0,\"c\":943738.0,\"q\":1},\"mojo-etkezo-kanape-szett-3-elem-ajanlat\":{\"p\":1042300.0,\"c\":1302875.0,\"q\":1},\"blue-sofa-ajanlat\":{\"p\":599990.0,\"c\":749988.0,\"q\":1},\"bezs-szinu-balos-kanape-ajanlat\":{\"p\":399990.0,\"c\":499988.0,\"q\":1},\"trivio-egyedi-gyartasu-kanape-ajanlat\":{\"p\":601990.0,\"c\":752488.0,\"q\":1},\"jaey-2-5-uleses-szovet-kanape-ajanlat\":{\"p\":399990.0,\"c\":499988.0,\"q\":1},\"twist-sit-akusztikus-fotel-akasztoval-es-asztallal-ajanlat\":{\"p\":780990.0,\"c\":976238.0,\"q\":1},\"norscape-forgoszek-ajanlat\":{\"p\":364990.0,\"c\":456238.0,\"q\":1},\"aura-vezetoi-szek-karfaval-ajanlat\":{\"p\":369990.0,\"c\":462488.0,\"q\":1},\"sandie-forgo-fotel-ajanlat\":{\"p\":664990.0,\"c\":831238.0,\"q\":1}}\u003c\/script\u003e\n\u003cscript id=\"bm-showroom-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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\n","products":[{"product_id":"albert-kuip-karfa-nelkuli-pp-szek-ajanlat","title":"Albert Kuip karfa nélküli PP szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003eAz Albert Kuip étkezőszék egy karfa nélküli modell, melynek ülőlapja 100% PP-ből készült, míg a lábai tömör kőrisfából készültek, festett fém merevítéssel. Ez a stílusos étkezőszék elérhető nyolc féle színben, így könnyen illeszthető bármilyen enteriőrhöz.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"Zuiver Showroom","offers":[{"title":"Világosszürke","offer_id":57221724275012,"sku":"ZU-1100294-SR","price":72191.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/6054da9bf585bb243b4079abded83f34b709df3d_bc0f9a5b-f0ae-43af-883c-5a0fe9bf24cb.jpg?v=1768501841"},{"product_id":"addi-bukle-fotel-ajanlat","title":"Addi buklé fotel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eAz Addi fotel nélkül egyetlen pillanat sem érezhető igazán teljesnek. Akár a nappaliban helyezed el, akár az irodában, ez a szék számos célra megfelel. Olajozott tölgyfa vázzal és lábakkal készült, kifinomult formája és bézs bouclé kárpitja pedig kifinomult skandináv dizájnnal tölti meg a teret. Párnázata, és íves háttámlája miatt maximális kényelmet biztosít.\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\"\u003e\u003c\/form\u003e","brand":"Actona Showroom","offers":[{"title":"Bézs","offer_id":57221741543748,"sku":"AC-0000108777-SR","price":152990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/32_49e1e4a4-181d-4b1c-aa12-4f7e40fb7e3d.png?v=1768840472"},{"product_id":"addi-zsenilia-szek-ajanlat","title":"Addi zsenília szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eAz Addi zsenília széket könnyű forma és a letisztult esztétika jellemzi, a karfás és nyitott háttámlájú szék kortárs skandináv hangulatával tűnik ki. Az olajjal kezelt keret meleg és hívogató légkört áraszt a térben. A szék eleganciájának fokozása érdekében az ülőkét bézs színű, puha zsenília anyag borítja.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' data-product_id=\"596\" enctype=\"multipart\/form-data\" method=\"post\" class=\"variations_form cart\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"Actona Showroom","offers":[{"title":"Bézs","offer_id":57221742002500,"sku":"AC-0000102361-SR","price":79990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1_04ee63d9-09ac-47e1-b0b2-014df2bfa4a9.png?v=1768841409"},{"product_id":"admit-nougat-bukle-szek-ajanlat","title":"Admit nougat buklé szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eAz étkezőszék kárpitja 100% poliészterből készült buklé szövet, mely kellemes tapintású és tartós anyag. A fekete festett fém lábak stabil alapot biztosítanak, és esztétikailag is passzolnak a modern enteriőrbe.  Kapható három különböző színben, így könnyen illeszthető bármely étkező vagy konyha stílusához.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"De Eekhoorn Showroom","offers":[{"title":"Fehér","offer_id":57221742461252,"sku":"BPH-800172-A-SR","price":127990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/admit43_95680f89-500d-4ae9-a7c5-ed5753196483.jpg?v=1768842305"},{"product_id":"alagon-fa-etkezoasztal-180x90-ajanlat","title":"Alagon fa étkezőasztal 180x90","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAsztallap anyaga: 40 mm vastag dió furnérozott MDF\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: fekete porfestett fém Ø 5-3 cm tűláb\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eMaximális terhelhetőség: 140 kg\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Sötétbarna","offer_id":57221742952772,"sku":"DB-2100076-SR","price":409590.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/2100076_0_180.jpg?v=1736684220"},{"product_id":"albert-kuip-karfas-szovet-szek-ajanlat","title":"Albert Kuip karfás szövet szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 Albert Kuip szék egy kényelmes és elegáns kialakítású bútordarab, melyet puha szövet borítás tesz még vonzóbbá. Négyféle színben érhető el, így könnyen illeszthető bármilyen enteriőrhöz. Modern megjelenése és kiváló minősége miatt ideális választás otthoni vagy irodai használatra egyaránt. Fekete fém lába stabilitást biztosít, míg a karfás ülőfelülete a komfortért felel.\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"Zuiver Showroom","offers":[{"title":"Rózsaszín","offer_id":57221743345988,"sku":"ZU-1200209-SR","price":105441.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/3d437669470b3969fd111d09977b8723_aed1a2b7-262d-45f1-b8d5-29cd65390be5.jpg?v=1768501408"},{"product_id":"albert-kuip-pp-alacsony-barszek-1-ajanlat","title":"Albert Kuip PP alacsony  bárszék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eÜlőlap anyaga: 100% PP\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLáb: tömör kőrisfa festett fém merevítéssel \u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eMaximális terhelhetőség: 120 kg \u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eÜlésmagasság: 66 cm \u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eÜlésmélység: 40,5 cm \u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eLábtartó magassága: 20,5 cm\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTervező: APE Amsterdam\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Zuiver Showroom","offers":[{"title":"Fehér","offer_id":57221743739204,"sku":"ZU-1500051-SR","price":102990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/a92b1adc9362a50edcc1e9b9e25cb934_843a6784-e3ba-49ce-ad0b-12b32e2b7dde.jpg?v=1768501646"},{"product_id":"albert-kuip-swivel-fotel-forgotalpas-kivitel-karpitozott-ulofelulettel-ajanlat","title":"Albert Kuip Swivel fotel – Forgótalpas kivitel, kárpitozott ülőfelülettel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 data-path-to-node=\"3\" id=\"p-rc_b0b27c07d3dd44bc-39\"\u003e\u003cspan class=\"citation-47 citation-end-47\"\u003eAz Albert Kuip Swivel fotel – ahogy a neve is sugallja – forgatható talppal rendelkezik, így tökéletes választás tárgyalótermekbe vagy otthoni dolgozószobákba.\u003csup class=\"superscript\" data-turn-source-index=\"1\"\u003e\u003c!----\u003e\u003c\/sup\u003e\u003c\/span\u003e Természetesen az étkezőasztal mellett is megállja a helyét, hiszen a kényelem és a design itt kéz a kézben jár. A Zuiver és a holland APE tervezőstúdió közös munkájának gyümölcse ez a különleges darab, amelyet úgy alkottak meg, hogy a munka és a pihenés egyaránt élmény legyen benne.\u003c\/p\u003e\n\u003cdiv class=\"source-inline-chip-container ng-star-inserted\"\u003e\n\u003cbutton class=\"button ng-star-inserted\" aria-label=\"A következő forráson alapuló hivatkozás forrásrészleteinek megtekintése: Dutch Home. Megnyitja az oldalsó panelt.\" data-hveid=\"0\" data-ved=\"0CAAQvoAQahgKEwiruuTR5vGSAxUAAAAAHQAAAAAQnAQ\"\u003e\u003c!----\u003e\u003c!----\u003e\u003c\/button\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c\/p\u003e\n\u003cul data-path-to-node=\"4\"\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"4,0,0\"\u003e\u003cb data-path-to-node=\"4,0,0\" data-index-in-node=\"0\"\u003eExtra kényelem:\u003c\/b\u003e Az ülőfelület puha kárpitozást és párnázást kapott, hogy a hosszabb megbeszélések során is maximális komfortot nyújtson.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"4,1,0\"\u003e\u003cb data-path-to-node=\"4,1,0\" data-index-in-node=\"0\"\u003eSokoldalú funkció:\u003c\/b\u003e A forgótalpas mechanizmus szabadságot ad a mozgásban, miközben a fotel elegáns sziluettje megmarad.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"4,2,0\"\u003e\u003cb data-path-to-node=\"4,2,0\" data-index-in-node=\"0\"\u003eProfesszionális minőség:\u003c\/b\u003e A rendkívül magas kopásállóságú szövet biztosítja, hogy a bútor hosszú évekig megőrizze eredeti állapotát.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Zuiver Showroom","offers":[{"title":"Sötétzöld","offer_id":57221744263492,"sku":"ZU-1200234-SR","price":143990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1200234_01_150232_large_3ad5e9a7-144d-4251-916c-9695f9b3ff7d.jpg?v=1771929192"},{"product_id":"almira-fa-etkezoasztal-o115-ajanlat","title":"Almira fa étkezőasztal Ø115","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 Almira fa étkezőasztal egy igazán különleges bútordarab. Kerek asztallapja márvány hatású, míg az asztalláb fából készült. A natúr szín anyaga tölgy, a sötétbarna anyaga dió. Párosítsd kedvenc étkezőszékeddel és élvezd a mindennapi étkezéseket luxus környezetben.\u003c\/p\u003e","brand":"White Label Showroom","offers":[{"title":"Natúr","offer_id":57221745115460,"sku":"WL-1000328-SR","price":277990.0,"currency_code":"HUF","in_stock":true},{"title":"Sötétbarna","offer_id":57221745148228,"sku":"WL-1000327-SR","price":298990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1000328_01_140668_large_4c92210b-763b-44a3-a2b9-ac05dd764bc3.jpg?v=1768582682"},{"product_id":"alton-tukor-ajanlat","title":"Alton tükör","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 Alton tükör egy elegáns és modern megjelenésű darab, mely rendkívül tartós és nagy méretű. Ideális választás bármely otthoni vagy irodai térbe, kiemelve a helyiség stílusát és eleganciáját. Minőségi anyaghasználata és precíz kivitelezése garantálja hosszú élettartamát és megbízhatóságát. Ez a stílusos tükör nemcsak dekoratív elem, hanem praktikus funkcióval is bír, optikailag is növelve a teret.\u003c\/p\u003e\n\u003c!----\u003e","brand":"Richmond Showroom","offers":[{"title":"Arany","offer_id":57221745705284,"sku":"RI-MI-0081-SR","price":247561.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/MI-0081-1-1024x1024.jpg?v=1736714249"},{"product_id":"amaya-fa-konzolasztal-ajanlat","title":"Amaya fa konzolasztal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e\n\u003cli\u003e\u003cb\u003eAnyaga: bézs színű MDF és natúr színű rattan \u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cb\u003eLáb: bézs színű porfestetett fém\u003c\/b\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"White Label Showroom","offers":[{"title":"Bézs","offer_id":57221746131268,"sku":"WL-2600035-SR","price":106192.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/N_C3_A9vtelen_20terv_20-_202023-01-25T112554.592.jpg?v=1736681777"},{"product_id":"anshin-uveg-allolampa-ajanlat","title":"Anshin üveg állólámpa","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eLámpabúra anyaga: füstüveg \u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eVáz: króm színű fém\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003e180 cm hosszú kábel be-ki kapcsolóval\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eFoglalat: E27 \u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eAz ár az izzót nem tartalmazza!\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"White Label Showroom","offers":[{"title":"Világosszürke","offer_id":57221746491716,"sku":"WL-5100129-SR","price":71060.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/129.jpg?v=1736690679"},{"product_id":"avola-szovet-barszek-ajanlat","title":"Avola szövet bárszék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003e\u003cspan\u003eAz Avola szövet bárszék egy modern és stílusos ülőalkalmatosság. Ránézésre is látszik, hogy ez a szék jól párnázott, így hosszabb időtöltés esetén is kényelmes. Fém lábai biztosítják a stabilitást, magassága állítható 95,5-110 cm között. Tartós és esztétikus választás bármilyen enteriőrbe.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eElőrendelhető, várható érkezés: 2025.03.17.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\"\u003e\u003c\/form\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Világosszürke","offer_id":57221747212612,"sku":"U-54850004-SR","price":74990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1_3242cd08-5598-4732-ae5b-4e36bb11c0d9.png?v=1736869268"},{"product_id":"avola-szovet-forgoszek-fa-labbal-ajanlat","title":"Avola szövet forgószék fa lábbal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003e\u003cspan\u003eAz Avola szövet szék egy modern és stílusos ülőalkalmatosság. Ránézésre is látszik, hogy ez a szék jól párnázott, így hosszabb időtöltés esetén is kényelmes. Forgó tölgy lábai biztosítják a stabilitást. Tartós és esztétikus választás bármilyen enteriőrbe.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eElőrendelhető, várható érkezés: 2025.02.24.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\"\u003e\u003c\/form\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Világosszürke","offer_id":57221747802436,"sku":"U-53250004-SR","price":102990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/53250002-select-avola-armchair-iv-rust_1_6d2cad6e-c7eb-4ebb-bbe8-b6af5f599763.jpg?v=1768575105"},{"product_id":"avola-szovet-forgoszek-fem-labbal-ajanlat","title":"Avola szövet forgószék fém lábbal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003e\u003cspan\u003eAz Avola szövet szék egy modern és stílusos ülőalkalmatosság. Ránézésre is látszik, hogy ez a szék jól párnázott, így hosszabb időtöltés esetén is kényelmes. Forgó fém lábai biztosítják a stabilitást.Tartós és esztétikus választás bármilyen enteriőrbe.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\"\u003e\u003c\/form\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Világosszürke","offer_id":57221748621636,"sku":"U-51140004-SR","price":100990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/51140002-select-avola-chair-iii-rust_1_d3605c38-8a05-419f-a7e3-7f58e53214fd.jpg?v=1768575106"},{"product_id":"ayla-fa-dohanyzoasztal-ajanlat","title":"Ayla fa dohányzóasztal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 elegáns Ayla dohányzóasztal tökéletes választás bármely otthonba. A nagy méretének köszönhetően ideális a kényelmes kávézás vagy teázás mellett, de akár egy esti filmnézéshez is. A természetes natúr szín tökéletesen illeszkedik bármilyen enteriőrhöz, így könnyedén beilleszthető a már meglévő bútorok közé. Az asztal masszív kialakítása garantálja a hosszú élettartamot és a stabil felületet. A stílusos megjelenésével pedig igazi dísze lehet a nappalidnak.\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Natúr","offer_id":57221749309764,"sku":"DB-2300391-SR","price":77990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/2300391_01.jpg?v=1736724512"},{"product_id":"babington-szovet-szek-ajanlat","title":"Babington szövet szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eTeremts elbűvölő hangulatot az étkezőben olyan karakteres bútorokkal, mint a Dutchbone Babington széke. Ez az étkezőszék azonnal eszünkbe juttatja a minőséget, és vintage megjelenést. A tölgyfa keret úgy van kidolgozva, hogy a váz beleolvad a háttámlába, a mély sötétbarna, vagy natúr szín pedig meleg megjelenést kölcsönöz, amely harmóniában van az ülés és a háttámla világosbarna anyagával.\u003c\/p\u003e\n\u003cp\u003eA barna előrendelhető!\u003c\/p\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Sötétbarna","offer_id":57221750456644,"sku":"DB-1000130-SR","price":105441.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/29_0c06724d-fbc5-4637-b233-74590781e00a.png?v=1768582094"},{"product_id":"ball-fa-barszek-ajanlat","title":"Ball fa bárszék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAnyaga: kézzel faragott tömörfa\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Pols Potten Showroom","offers":[{"title":"Natúr","offer_id":57221751669060,"sku":"PP-500-030-052-SR","price":345000.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/500-030-052.jpg?v=1736686189"},{"product_id":"bar-barsony-fotel-ajanlat","title":"Bar bársony fotel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eÜlőlap anyaga: 100% poliészter aranybarna bársony\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: matt fekete fém, forgó\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003e40.000 Martindale\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eMaximális terhelhetőség: 120 kg\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eÜlésmagasság: 41 cm\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eÜlésmélység: 45 cm\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Sötétzöld","offer_id":57221752455492,"sku":"DB-3100081-SR","price":261990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/3100080_0_165a0adb-766d-472c-8743-a31afedabba2.jpg?v=1768842246"},{"product_id":"bar-barsony-labtarto-ajanlat","title":"Bar bársony lábtartó","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Dutchbone által gyártott bársony Bar lábtartó egy luxus és praktikus kiegészítő a lehet nappalidban. Minőségi kárpitja elegáns megjelenést kölcsönöz, míg a matt fekete fém lábak stabilitást biztosítanak. Ez a forgó lábtartó ideális választás a kényelem és a stílus kombinálására otthoni vagy üzleti környezetben.\u003c\/p\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Sötétzöld","offer_id":57221753307460,"sku":"DB-3300034-SR","price":130790.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/3300033_0-1-1000x1000.webp?v=1736676517"},{"product_id":"barbara-barsony-szek-ajanlat","title":"Barbara bársony szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003eAz étkezőszék kárpitja luxus és stílusérzet sugárzását hordozza, hiszen 100% poliészter bársony anyagból készült, mely rendkívül elegáns megjelenést kölcsönöz neki. A lábak dió színű tömörfából készültek, ami melegséget és tartósságot biztosít az étkezőszéknek. Kapható hat különböző élénk színben.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\"\u003e\u003c\/form\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Terrakotta","offer_id":57221754224964,"sku":"DB-1100339-SR","price":74990.0,"currency_code":"HUF","in_stock":true},{"title":"Sárga","offer_id":57221754257732,"sku":"DB-1100341-SR","price":74990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/barbaraszek43_4c87c98a-06d8-4682-8cbf-304226683d62.webp?v=1768842300"},{"product_id":"barlow-fa-alacsony-barszek-ajanlat","title":"Barlow fa alacsony bárszék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Barlow bárszék a skandináv esztétikát, a kortárs hatásokkal ötvözi. Természetes anyaga, és színei melegséget hoznak minden étkezőhelyiségbe. A masszív szerkezet stabilitást, míg a lábtartó kényelmes ülést biztosít. A lakkozott tölgy, és a lekerekített vonalak lágy megjelenést kölcsönöznek a széknek, fokozva hívogató jellegét.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Actona Showroom","offers":[{"title":"Natúr","offer_id":57221755306308,"sku":"AC-0000108753-SR","price":37990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/9_769cce58-8f37-41a8-8cb5-0e73b2d463a9.png?v=1768581605"},{"product_id":"barrali-2-ajtos-fa-kabinet-ajanlat","title":"Barrali 2 ajtós fa kabinet","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAnyaga: natúr lakkozott tölgy furnér és rattan \u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eVáz: natúr lakkozott tömör tölgy\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Natúr","offer_id":57221756059972,"sku":"U-46720200-SR","price":338290.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/Nevtelen-terv-35-1.png?v=1736697553"},{"product_id":"bastia-fem-lerakoasztal-ajanlat","title":"Bastia fém lerakóasztal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAsztallap anyaga: porfestett fém \u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eVáz: porfestett fém\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"House Nordic Showroom","offers":[{"title":"Fekete","offer_id":57221756944708,"sku":"HN-2101350-SR","price":8990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/2101350-1.webp?v=1742468804"},{"product_id":"batilda-textilbor-szek-ajanlat","title":"Batilda textilbőr szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eAz olajozott tölgy lábak fekete porfestett fém merevítéssel párosulva a Batilda étkezőszéket egyedivé és stílusossá teszi. A kárpit anyaga 100% PU r textilbőr készült, ami egy elegáns megjelenést kölcsönöz az étkezőszéknek. Két féle színben elérhető.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' data-product_id=\"596\" enctype=\"multipart\/form-data\" method=\"post\" class=\"variations_form cart\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"Actona Showroom","offers":[{"title":"Világosbarna","offer_id":57221757698372,"sku":"AC-H000018217-SR","price":62990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/getimage_7d03abac-16cd-4c4e-b1ca-14147fa21266.jpg?v=1768502442"},{"product_id":"bay-szovet-puff-o40-ajanlat","title":"Bay szövet puff Ø40","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Bay puff egy praktikus és stílusos bútor, amely tökéletes kiegészítője lehet otthonodnak. Kompakt méretének köszönhetően könnyen beillesztheted bármelyik szobádba. A puff puha bézs szövetpárnával rendelkezik, így ideális ülőhelynek vagy lábtartónak is. Beépített tároló résszel készült, amelyben kisebb tárgyakat tárolhatsz. Megjelenése klasszikus és letisztult, ami a sötétbarna fa váznak köszönhető.\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"Dutchbone Showroom","offers":[{"title":"Bézs","offer_id":57221758452036,"sku":"DB-7900039-SR","price":61900.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/7900039_01.jpg?v=1736722482"},{"product_id":"billy-fa-gyerek-fesulkodo-asztal-ajanlat","title":"Billy fa gyerek fésülködő asztal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Billy gyerek bútorok egyik kiemelkedő tagja ez az elegáns, és praktikus fésülködő asztal. Egy fiókkal, ovális tükörrel, vékony, hosszú lábakkal és arany színű részletekkel rendelkezik. Letisztult és elegáns fehér színe miatt könnyen alkalmazkodik bármilyen enteriőrhöz, és dekorációhoz. Mérete 70x40x128.7cm.\u003c\/p\u003e","brand":"Vipack Showroom","offers":[{"title":"Fehér","offer_id":57221760254276,"sku":"VI-BIDT7014-SR","price":95990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/12_9f6ffe4f-b7c9-4cbc-8679-e842ce7b74b5.png?v=1736740372"},{"product_id":"blocci-asztali-lampa-ajanlat","title":"Blocci asztali lámpa","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 data-path-to-node=\"3\"\u003eA BLOCCI asztali lámpa a modern, letisztult formavilág és a hordozható funkcionalitás tökéletes fúziója. A lámpa szerkezete tartós fém (metal) és prémium melamin (melamine) kombinációjából készült, amely egyszerre garantálja a stabilitást, a könnyed eleganciát és a hosszú élettartamot. Minimalista kialakításának köszönhetően zökkenőmentesen illeszkedik bármely skandináv, modern vagy kortárs enteriőrbe.\u003c\/p\u003e\n\u003cp data-path-to-node=\"4\"\u003eKompakt, 21 cm-es méretével ez a vezeték nélküli világítótest rendkívül sokoldalúan használható. Nem kötődik fix hálózati aljzathoz, így szabadon elhelyezhető komódokon, egy stílusos lerakóasztal felületén, éjjeliszekrényeken, vagy akár a lakás olyan pontjain is, ahol nem áll rendelkezésre konnektor. A lámpa tartozéka egy praktikus USB-töltőkábel (inclusief USB oplaadsnoer), amellyel egyszerűen újra tölthető. Karbantartása rendkívül egyszerű, csupán egy száraz törlőkendővel való áttörlést igényel.\u003c\/p\u003e\n\u003cul data-path-to-node=\"5\"\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,0,0\"\u003e\u003cb data-path-to-node=\"5,0,0\" data-index-in-node=\"0\"\u003eHordozható, vezeték nélküli szabadság\u003c\/b\u003e: A beépített akkumulátornak köszönhetően a lámpa bárhol elhelyezhető, a csomag pedig tartalmazza a feltöltéshez szükséges USB-kábelt.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,1,0\"\u003e\u003cb data-path-to-node=\"5,1,0\" data-index-in-node=\"0\"\u003eModern anyagkombináció\u003c\/b\u003e: A fém és a melamin ötvözete tartós szerkezetet és letisztult esztétikát biztosít.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,2,0\"\u003e\u003cb data-path-to-node=\"5,2,0\" data-index-in-node=\"0\"\u003eEgyszerű tisztítás\u003c\/b\u003e: A lámpa felületeinek tisztán tartásához elegendő egy száraz törlőkendő használata.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"By-Boo Showroom","offers":[{"title":"Kék","offer_id":57221761990980,"sku":"BB-260102-SR","price":21990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/260102.jpg?v=1782735285"},{"product_id":"boavista-fa-etkezoasztal-100x210-ajanlat","title":"Boavista fa étkezőasztal 100x210","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eEgyedi és innovatív megjelenésű étkezőasztal. Az asztal mérete 100x210x75 cm, így tökéletes egy nagyobb család számára is. A lekerekített éleknek köszönhetően biztonságos és kényelmes használatot nyújt. A sötétbarna vagy natúr színű felület elegáns és modern megjelenést kölcsönöz a Boavista étkezőasztalnak.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"House Nordic Showroom","offers":[{"title":"Natúr","offer_id":57221763760452,"sku":"HN-2601011-SR","price":230990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/2601010.jpg?v=1736705773"},{"product_id":"bolton-fa-etkezoasztal-o120-ajanlat","title":"Bolton fa étkezőasztal Ø120","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Bolton étkezőasztal fa anyaga és letisztult kinézete szinte bármilyen enteriőrbe passzol. 120x76 cm-es mérete elég nagy ahhoz, hogy négy személy kényelmesen elférjen körülötte. Kiváló lehet akár kisebb nappalikba, étkezőkbe is, olyan otthonokba, ahol a stílus és a funkcionalitás egyaránt számít.\u003c\/p\u003e","brand":"House Nordic Showroom","offers":[{"title":"Sötétbarna","offer_id":57221764645188,"sku":"HN-1001625-SR","price":219990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1001620.webp?v=1736747462"},{"product_id":"bon-textilbor-fotel-ajanlat","title":"Bon textilbőr fotel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\n\u003cstrong\u003eÜlőlap anyaga: 64% PU\u003c\/strong\u003e\u003cstrong\u003e 20% PVC 16% poliészter barna textilbőr\u003c\/strong\u003e\n\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: fekete festett fém\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003e50.000 Martindale\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eMaximális terhelhetőség: 200 kg\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eÜlésmagasság: 42 cm\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eÜlésmélység: 54 cm\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eKarfa magassága: 63 cm\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"White Label Showroom","offers":[{"title":"Sötétbarna","offer_id":57221765595460,"sku":"WL-3100040-SR","price":161990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/3100040_0_a62465f1-95ff-4550-948a-e6a288948842.jpg?v=1768842027"},{"product_id":"bora-pp-karfas-kerti-szek-ajanlat","title":"Nardi Bora PP karfás kerti szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Bora szék egy könnyű és stílusos választás, amely üvegszálas műgyanta anyagból készült, integrált karfákkal, varratmentes csővázzal és lekerekített profillal. Az ülés és háttámla egyetlen darabban öntött, kényelmes szövetpárnázattal. A szék monoblokk kialakítású, UV-adalékokkal kezelt egységesen színezett polipropilén gyantából készült, matt felületkezeléssel, csúszásmentes lábakkal, és újrahasznosítható.\u003c\/p\u003e","brand":"Nardi Showroom","offers":[{"title":"Sötétzöld","offer_id":57221766381892,"sku":"N-40242.16.000.06-SR","price":22270.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/img_3835_c6d5ff7d-381d-4fdf-9d14-c7d3f8336ff6.webp?v=1768841864"},{"product_id":"bora-pp-karfas-kerti-szek-copy-ajanlat","title":"Nardi Bit PP kerti szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Bit egy karfa nélküli szék, amely UV-kezelt, tömegszínű üvegszálas gyantából készült, kifinomult formatervezéssel és odafigyeléssel a részletekre. A perforációs mintázata és széles színválasztéka teszi alkalmassá mind beltéri, mind kültéri használatra. Monoblokk kialakítású, egységesen színezett polipropilén gyantából, matt felületkezeléssel, csúszásmentes lábakkal, újrahasznosítható anyagból.\u003c\/p\u003e","brand":"Nardi Showroom","offers":[{"title":"Piros","offer_id":57221767299396,"sku":"N-40328.75.000.06-SR","price":24639.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/img_2155.jpg?v=1768841862"},{"product_id":"borre-fa-uloke-ajanlat","title":"Borre fa ülőke","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eBorre ülőke egy stílusos és egyedi bútordarab, mely feketére festett császárfából készült, melyen vésett minta található.  A \"Borre ülőke\" tökéletes választás lehet otthoni vagy üzleti környezetben, hogy stílust és kényelmet egyaránt nyújtson.\u003c\/p\u003e","brand":"De Eekhoorn Showroom","offers":[{"title":"Fekete","offer_id":57221768151364,"sku":"W-377153-Z-SR","price":53990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/377153-Z-01_VS_FA_Borre_kruk_hout_zwart_40XO28CM_EA.png?v=1768503045"},{"product_id":"botanical-stairs-dizajn-vaszonkep-ajanlat","title":"Botanical Stairs dizájn vászonkép","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Botanical Stairs egy modern és feltűnő műalkotás, mely élénk meleg színekkel és éles vonalakkal rendelkezik. Az egyedi design és kompozíció miatt azonnal magára vonja a figyelmet, és izgalmas vizuális élményt nyújt. Különböző méretekben kapható, így minden otthonba könnyedén illeszkedhet.\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"Urban Cotton Showroom","offers":[{"title":"110x145","offer_id":57221769331012,"sku":"UC-WK23084-M-SR","price":115990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/7CD855AB0AE9E9913ABE9098B3E05ED8D833459B.webp?v=1736715649"},{"product_id":"bowie-fa-fali-kabinet-ajanlat","title":"Bowie fa fali kabinet","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eEgyedülálló megjelenésével és arany színével a Bowie fali kabinet tökéletes választás az otthonodba. Ez a kabinet nem csak praktikus tárolóhelyet biztosít, hanem egy igazi stílusos díszt is jelent a szobádban. Az arany és fekete színek tökéletes harmóniája, valamint a fa anyag minősége garantálja, hogy ez a kabinet hosszú évekig szép maradjon.\u003c\/p\u003e\n\u003c!----\u003e","brand":"Richmond Showroom","offers":[{"title":"Arany","offer_id":57221770150212,"sku":"RI-825236-SR","price":272020.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/825236-1-1024x1024.jpg?v=1736712635"},{"product_id":"brenda-szovet-szek-ajanlat","title":"Brenda szövet szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 élet túl rövid ahhoz, hogy kényelmetlenül ülj. Szerencsére a bézs színű Brenda szék a segítségedre lesz minőségi kárpitjával, karfáival és stabil fekete durva porszórt fém lábaival. Az enyhe fotel megjelenésnek köszönhetően egyszerre étkezhetsz és pihenhetsz. A négyzetes varrás csak egy szép bónusz, mely stílusossá varázsolja minden belső térben.\u003cbr\u003e\u003c\/p\u003e","brand":"Actona Showroom","offers":[{"title":"Bézs","offer_id":57221770805572,"sku":"AC-0000097541-SR","price":70990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/50_2c489aa5-d050-47e5-b52b-9c7b77134a34.png?v=1768580906"},{"product_id":"briar-tukor-lagy-formavilag-barna-kerettel-ajanlat","title":"Briar tükör – Lágy formavilág, barna kerettel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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 data-path-to-node=\"4\"\u003eA \u003cb data-path-to-node=\"4\" data-index-in-node=\"2\"\u003eBriar\u003c\/b\u003e tükör lágyan lekerekített formájával és meleg barna tónusú keretével a természetes eleganciát képviseli. Az egyenletes keretkialakítás visszafogott és letisztult megjelenést biztosít, amely lehetővé teszi, hogy a tükör észrevétlenül simuljon bele a földszínekkel dominált belső terekbe. Nem csupán funkcionális tárgy, hanem dekoratív elem is, amely vizuális mélységet ad a térnek, és tágítja a szobát. Kézműves kidolgozása és sokoldalú rögzíthetősége révén bármely helyiség – legyen az nappali, előszoba vagy hálószoba – stílusos kiegészítője lehet.\u003c\/p\u003e\n\u003cul data-path-to-node=\"5\"\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,0,0\"\u003e\u003cb data-path-to-node=\"5,0,0\" data-index-in-node=\"0\"\u003eOrganikus forma:\u003c\/b\u003e Lekerekített szélek, amelyek lágyítják a belső tér szigorú vonalait.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,1,0\"\u003e\u003cb data-path-to-node=\"5,1,0\" data-index-in-node=\"0\"\u003eTermészetes tónusok:\u003c\/b\u003e A meleg barna keret otthonos és hívogató hangulatot áraszt.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,2,0\"\u003e\u003cb data-path-to-node=\"5,2,0\" data-index-in-node=\"0\"\u003eKézműves minőség:\u003c\/b\u003e Egyedileg megmunkált darab (Handcrafted), amely garantálja a különlegességet.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,3,0\"\u003e\u003cb data-path-to-node=\"5,3,0\" data-index-in-node=\"0\"\u003eSokoldalú elhelyezés:\u003c\/b\u003e Függőlegesen és vízszintesen is felszerelhető, alkalmazkodva a falfelület adottságaihoz.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 data-path-to-node=\"7\"\u003e\u003cb data-path-to-node=\"7\" data-index-in-node=\"0\"\u003eAnyag és felépítés:\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp data-path-to-node=\"8\"\u003eA tükör kerete precíz kézi munkával készült, a felületkezelés pedig kiemeli a barna tónus mélységét. A biztonság érdekében \u003cb data-path-to-node=\"8\" data-index-in-node=\"123\"\u003ebiztonsági üveggel (Safety glass)\u003c\/b\u003e van felszerelve, és a konstrukció vízálló tulajdonságokkal is rendelkezik, ami növeli a tartósságát.\u003c\/p\u003e","brand":"Richmond Showroom","offers":[{"title":"Barna","offer_id":57221771526468,"sku":"RI-214204-SR","price":115447.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/74bf9c2a-ca4a-414d-bf12-91dab27c85ec.jpg?v=1770646412"},{"product_id":"brice-forgo-szovet-fotel-ajanlat","title":"Brice forgó szövet fotel","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003ePörögj és lazíts szíved szerint a Brice forgó szövet fotellel, amely ideális kiegészítője otthonodnak. Meghitt és modern megjelenést képvisel. Ez az elegánsan ívelt forgó fotel minőségi kárpitozással és matt sárgaréz forgó talppal rendelkezik. A tökéletes összhatás érdekében kombináld az Eichholtz Brice kollekció egyéb darabjaival! A kiváló minőségű anyagoknak köszönhetően hosszú távon is megőrzi szépségét és tartósságát.\u003c\/p\u003e","brand":"Eichholtz Showroom","offers":[{"title":"Világosbarna","offer_id":57221774016836,"sku":"EI-115324-SR","price":870990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/115168_1_efddbdca-d650-4c6e-bbd0-ab4188fbc41f.png?v=1768842220"},{"product_id":"bright-szovet-szek-ajanlat","title":"Bright szövet szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA nappalitól az étkezőn át talán még a hálószobában is: a Bright minden helyiségben ragyog. Ennek az étkezőszéknek a világos, tölgyfa váza friss megjelenést kölcsönöz, amely életre kelti a belső teret. A feltűnő, varrott szélekkel ellátott kárpitozás kiegészíti és melegséget kölcsönöz az egésznek. De ami még fontosabb, a szék csodálatosan kényelmes, és sok órás ülési élményt nyújt. Kapható karfás vagy karfa nélküli változatban, illetve fotelként is.\u003c\/p\u003e\n\u003c!----\u003e","brand":"Zuiver Showroom","offers":[{"title":"Bézs","offer_id":57221774803268,"sku":"ZU-1001053-SR","price":89990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1001053_01_198726_large_022a09b6-2c66-4349-90bb-57fea14725cc.jpg?v=1768817599"},{"product_id":"bronco-2-ajtos-fem-kabinet-140-ajanlat","title":"Bronco 2 ajtós fém kabinet 140","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper container tabbed-content\"\u003e\u003cdiv class=\"tab-panels\"\u003e\u003cdiv id=\"tab-description\" class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content active\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\u003e\u003cul\u003e \t\u003cli\u003e\n\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper container tabbed-content\"\u003e\u003cdiv class=\"tab-panels\"\u003e\u003cdiv id=\"tab-description\" class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content active\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\u003e\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAnyaga: acélkék festett fém strukturált edzett üveg ajtókkal 2db arany színű fém fogantyúval\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: acélkék festett fém\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLábmagasság: 14 cm\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eMaximális terhelhetőség: 100 kg\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cdiv class=\"related related-products-wrapper product-section\"\u003e\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Sötétkék","offer_id":57221777785156,"sku":"U-44590400-SR","price":189990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/Nevtelen-terv-98-1.png?v=1736690043"},{"product_id":"cactus-party-dizajn-vaszonkep-ajanlat","title":"Cactus Party dizájn vászonkép","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Cactus Party vászonkép egy igazán hangulatos és vidám csendéletet ábrázoló műalkotás. Az élénk színekkel rendelkező kép tökéletes választás lehet bármelyik szoba számára, hiszen feldobja a teret. Háromféle méretben kapható, így könnyedén megtalálhatod a számodra megfelelőt.\u003cbr\u003e\u003c\/p\u003e\n\u003c!----\u003e","brand":"Urban Cotton Showroom","offers":[{"title":"80x110","offer_id":57221779292484,"sku":"UC-WK24015-S-SR","price":94990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/D317661F32A507CDFA036795FB8A921C6891CC41.webp?v=1736715557"},{"product_id":"carno-bovitheto-fa-etkezoasztal-190x100-ajanlat","title":"Carno bővíthető fa étkezőasztal 190x100","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAsztallap anyaga: natúr színű tölgy\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: natúr színű tölgyfa\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eA bővítő elem nem az asztal tartozéka.\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Natúr","offer_id":57221780930884,"sku":"U-46010200-SR","price":420990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/N_C3_A9vtelen_20terv_20-_202022-12-15T100747.856.jpg?v=1736695124"},{"product_id":"carno-bovitheto-fa-etkezoasztal-o120-ajanlat","title":"Carno bővíthető fa étkezőasztal Ø120","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e \t\u003cli\u003e\u003cstrong\u003eAsztallap anyaga: natúr színű tölgy\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eLáb: natúr színű tölgyfa\u003c\/strong\u003e\u003c\/li\u003e \t\u003cli\u003e\u003cstrong\u003eA bővítő elem nem az asztal tartozéka.\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Natúr","offer_id":57221781651780,"sku":"U-45990200-SR","price":364399.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/Nevtelen-terv-2022-11-09T110859.748.jpg?v=1736680426"},{"product_id":"carno-toloajtos-fa-kabinet-ajanlat","title":"Carno tolóajtós fa kabinet","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cul\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"1\"\u003eA Carno szekrény a Nordic design tradíció legszebb elemeit ötvözi a modern funkcionalitással. A kollekció különlegessége a tömör tölgyfából készült, függőlegesen lamellázott (slatted) tolóajtókban rejlik, amelyek nemcsak helytakarékos megoldást nyújtanak, hanem különleges 3D textúrát és vizuális mélységet is adnak a bútornak. Az organikus formák, a finoman elvékonyodó fa részletek és a süllyesztett fogantyúk a prémium kézműves bútorok világát idézik. A természetes tölgyfa melegsége és a letisztult, minimalista vonalvezetés tökéletes harmóniát teremt bármely modern otthonban.\u003c\/p\u003e\n\u003cul data-path-to-node=\"2\"\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"2,0,0\"\u003e\u003cb data-path-to-node=\"2,0,0\" data-index-in-node=\"0\"\u003e3D lamellás frontok:\u003c\/b\u003e Az egyedi, lécezett ajtók stílusos textúrát visznek a térbe, miközben elrejtik a tárolt tárgyakat.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"2,1,0\"\u003e\u003cb data-path-to-node=\"2,1,0\" data-index-in-node=\"0\"\u003eHelytakarékos tolóajtók:\u003c\/b\u003e Ideális megoldás szűkebb helyiségekbe is, mivel az ajtók nyitása nem igényel extra helyet.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"2,2,0\"\u003e\u003cb data-path-to-node=\"2,2,0\" data-index-in-node=\"0\"\u003ePrémium tölgyfa:\u003c\/b\u003e A tartós alapanyag és az őszinte asztalosipari megoldások generációkon átívelő minőséget képviselnek.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Natúr","offer_id":57221782339908,"sku":"U-46040200-SR","price":547399.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/Nevtelen-terv-12.jpg?v=1736689001"},{"product_id":"casami-bruges-411-fa-gyerek-butor-szett-ajanlat","title":"Casami Bruges 411 fa gyerek bútor szett","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA Casami Bruges 411 gyerek bútor szett egy igazán ötletes, különleges kialakítású, és praktikus készlet, amely nem hiányozhat egy gyerek szobájából. Ez a teljesen fehér, fából készült szett két szekrényt, és egy polcrendszert tartalmaz. Megjelenését a belga dizájnnak köszönheti, mely a hagyományos városi utcák házainak egymásutánját adja vissza. Külön külön is teheted a bútorokat, és variálhatod a stílusokat is, hiszen a Casami Bruges több különböző színkombinációban érhető el.\u003c\/p\u003e","brand":"Vipack Showroom","offers":[{"title":"Fehér","offer_id":57221783060804,"sku":"VI-CSCO3411-SR","price":399990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/16_1b2ed73d-5a49-428c-b8ff-101c19ce982c.png?v=1736740843"},{"product_id":"catelyn-szovet-szek-ajanlat","title":"Catelyn szövet szék","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv class=\"woocommerce-product-details__short-description\"\u003e\n\u003cp\u003eA szék ülőlapja 100% poliészter bársonyból készült, ami lágy és luxus érzetet kölcsönöz. A szék lábai porfestett fekete fémek, amelyek stabil alapot biztosítanak. Ez a karfás és párnás szék kényelmes ülési élményt nyújt, ideális választás az étkezőbe, nappaliba vagy akár irodába. \u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform class=\"variations_form cart\" method=\"post\" enctype=\"multipart\/form-data\" data-product_id=\"596\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"White Label Showroom","offers":[{"title":"Fekete","offer_id":57221783978308,"sku":"WL-1200161-SR","price":79990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/Catelynszurkekarfasszek0_35e2bd8f-8887-4470-b706-1f0c0a57291e.webp?v=1768842285"},{"product_id":"cavo-toloajtos-fa-kabinet-ajanlat","title":"Cavo tolóajtós fa kabinet","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eEgyedi és innovatív megoldás a tárolásra! A Cavo tölgyfa kabinet elegáns kialakítással rendelkezik, mely tökéletesen illeszkedik bármely enteriőrbe. A tolóajtók praktikus megoldást nyújtanak a helytakarékos tárolásra, így nem kell aggódnia a nyitási terület miatt. A kabinet háromféle színben kapható, így könnyedén megtalálhatja a leginkább harmonizáló változatot. A méretei pedig ideálisak, hogy bármely szobában elférjen, 90x113x40 cm.\u003c\/p\u003e\n\u003cp\u003eElőrendelhető, várható érkezés: 2025.04.14.\u003c\/p\u003e","brand":"Unique Furniture Showroom","offers":[{"title":"Natúr","offer_id":57221784666436,"sku":"U-48952781-SR","price":235990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/1_6628f922-0f36-4c81-8b52-10540adb39af.png?v=1736706340"},{"product_id":"cazar-textilbor-szek-fekete-labbal-ajanlat","title":"Cazar textilbőr szék fekete lábbal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003cdiv\u003e\n\u003cp\u003eA Cazar szék ívei egyetlen modern bútorban egyesítik a kényelmet és a kortárs stílust. A pihenőszéket fekete színű szánkólábak egészítik ki, amelyek elegáns kontrasztot alkotnak a világosbarna textilbőr üléssel. A műanyag lábsapkák minimalizálják a padlón lévő karcolások kockázatát. Elegáns megjelenése miatt kiválóan illeszkedik a klasszikus és modern belső terekbe is.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cform action=\"https:\/\/dutchhometeszt.hu\/termek\/westlake-karfas-szek\/\" data-product_variations='[{\"attributes\":{\"attribute_pa_szin\":\"dio\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake di\\u00f3 sz\\u00e9k\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"alt\":\"Westlake di\\u00f3 sz\\u00e9k\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-dio-szek-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":311,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100535\",\"variation_description\":\"\",\"variation_id\":841,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"},{\"attributes\":{\"attribute_pa_szin\":\"fekete\"},\"availability_html\":\"\",\"backorders_allowed\":false,\"dimensions\":{\"length\":\"52\",\"width\":\"58\",\"height\":\"76\"},\"dimensions_html\":\"52 \u0026amp;times; 58 \u0026amp;times; 76 cm\",\"display_price\":117990,\"display_regular_price\":117990,\"image\":{\"title\":\"Westlake sz\\u00e9k fekete\",\"caption\":\"\",\"url\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"alt\":\"Westlake sz\\u00e9k fekete\",\"src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp\",\"srcset\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-600x600.webp 600w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp 300w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp 150w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-768x768.webp 768w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-100x100.webp 100w, https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp 1000w\",\"sizes\":\"(max-width: 600px) 100vw, 600px\",\"full_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1.webp\",\"full_src_w\":1000,\"full_src_h\":1000,\"gallery_thumbnail_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-150x150.webp\",\"gallery_thumbnail_src_w\":150,\"gallery_thumbnail_src_h\":150,\"thumb_src\":\"https:\\\/\\\/dutchhometeszt.hu\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/Westlake-szek-fekete-1-300x300.webp\",\"thumb_src_w\":300,\"thumb_src_h\":300,\"src_w\":600,\"src_h\":600},\"image_id\":580,\"is_downloadable\":false,\"is_in_stock\":true,\"is_purchasable\":true,\"is_sold_individually\":\"no\",\"is_virtual\":false,\"max_qty\":\"\",\"min_qty\":1,\"price_html\":\"\",\"sku\":\"DB-1100536\",\"variation_description\":\"\",\"variation_id\":842,\"variation_is_active\":true,\"variation_is_visible\":true,\"weight\":\"6.50\",\"weight_html\":\"6.50 kg\"}]' data-product_id=\"596\" enctype=\"multipart\/form-data\" method=\"post\" class=\"variations_form cart\" current-image=\"311\"\u003e\u003c\/form\u003e","brand":"Actona Showroom","offers":[{"title":"Fekete","offer_id":57221785551172,"sku":"AC-0000071939-SR","price":118990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/27_7623b524-3607-44e9-9dba-7a37bcbf3a67.png?v=1768840456"},{"product_id":"century-bovitheto-fa-etkezoasztal-ajanlat","title":"Century bővíthető fa étkezőasztal","description":"\u003c!--bm-outlet-badges:v2--\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  display: none !important;\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 stripSaleLabels(root){\n    var nodes = root.querySelectorAll(\".product-label--sale, .product-label.bm-label-sale\");\n    for (var i = 0; i \u003c nodes.length; i++) {\n      nodes[i].parentNode \u0026\u0026 nodes[i].parentNode.removeChild(nodes[i]);\n    }\n    var all = root.querySelectorAll(\".product-label\");\n    for (var j = 0; j \u003c all.length; j++) {\n      var t = (all[j].textContent || \"\").trim();\n      if (t.indexOf(\"Megtakarítás\") === 0 || t === \"Akció\") {\n        all[j].parentNode \u0026\u0026 all[j].parentNode.removeChild(all[j]);\n      }\n    }\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    stripSaleLabels(card);\n    if (info.c \u0026\u0026 info.p \u0026\u0026 Number(info.c) \u003e Number(info.p) + 0.5) {\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      stripSaleLabels(document.querySelector(\".product-info\") || document);\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\u003eA skandináv dizájnból eredő Century étkezőasztalt úgy tervezték, hogy modern klasszikussá váljon. A letisztult vonalak és a minimalista megjelenés jellemzi. A téglalap alakú asztallap fehér pigmentált tölgy furnérral büszkélkedhet, míg a karcsú tölgyfa lábak könnyű érzetet kölcsönöznek. A bővítő külön kapható.\u003cbr\u003e\u003c\/p\u003e","brand":"Actona Showroom","offers":[{"title":"Natúr","offer_id":57221786304836,"sku":"AC-0000064580-SR","price":378990.0,"currency_code":"HUF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0803\/1381\/1268\/files\/35_f585362a-6fb9-4a0f-9472-37e376983418.png?v=1768580800"}],"url":"https:\/\/dutchhome.hu\/collections\/ajanlataink.oembed?page=2","provider":"Dutch Home","version":"1.0","type":"link"}