{"title":"Personalisierte Geschenke","description":"\u003cp\u003eEinzigartige, personalisierte Geschenke für dich und deine Liebsten – individuell graviert oder bestickt.\u003c\/p\u003e","products":[{"product_id":"personalisierter-leder-anhanger-mit-gravur-individuelles-geschenk","title":"Personalisierter Anhänger aus Kunstleder mit Gravur – Individuelles Geschenk","description":"\u003cp\u003eEin zeitloses Accessoire, das genauso einzigartig ist wie die Person, die es trägt. Dieser hochwertige Anhänger aus PU-Kunstleder wird auf Wunsch mit Namen, Datum oder einer persönlichen Botschaft graviert – ein Geschenk, das im Gedächtnis bleibt.\u003c\/p\u003e\u003ch3\u003eWarum du diesen Anhänger lieben wirst:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e✨ Individuelle Gravur nach deinen Wünschen – perfekt für Geburtstage, Jahrestage oder als Erinnerungsstück\u003c\/li\u003e\n\u003cli\u003e🎨 Erhältlich in mehreren Farbvarianten für jeden Stil\u003c\/li\u003e\n\u003cli\u003e🪶 Leicht und kompakt (ca. 40g) – ideal am Schlüsselbund, in der Tasche oder als Anhänger\u003c\/li\u003e\n\u003cli\u003e🎁 Wunderschön als Geschenkidee für Familie, Freunde oder Partner\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eDetails:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eMaterial: hochwertiges PU-Kunstleder\u003c\/li\u003e\n\u003cli\u003eGewicht: ca. 40g\u003c\/li\u003e\n\u003cli\u003eIndividualisierung: Gravur mit Name, Datum oder kurzem Text\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cem\u003ePflegehinweis: Vor Feuchtigkeit schützen, trocken aufbewahren, um die Gravur und Materialqualität langfristig zu erhalten.\u003c\/em\u003e\u003c\/p\u003e","brand":"Nestory","offers":[{"title":"Braun","offer_id":64474415858041,"sku":null,"price":22.99,"currency_code":"EUR","in_stock":true},{"title":"Blau","offer_id":64498282791289,"sku":null,"price":22.99,"currency_code":"EUR","in_stock":true},{"title":"Dunkelbraun","offer_id":64498282824057,"sku":null,"price":22.99,"currency_code":"EUR","in_stock":true},{"title":"Schwarz","offer_id":64498282856825,"sku":null,"price":22.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/IMG-7620.png?v=1788466744"},{"product_id":"personalisiertes-hundehalsband-wolke-mit-namensschild","title":"Personalisiertes Hundehalsband „Wolke“ mit Namensschild – weich gepolstert \u0026 verstellbar","description":"\u003cp\u003eEin Halsband, das genauso einzigartig ist wie dein Vierbeiner. Aus hochwertigem, weich gepolstertem PU-Kunstleder gefertigt und mit einem individuell gravierten Namensschild versehen – für Komfort, Stil und Sicherheit in einem.\u003c\/p\u003e\u003ch3\u003eWarum du dieses Halsband lieben wirst:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🐾 Persönliche Gravur mit Hundename und Telefonnummer – praktisch, falls dein Hund mal verloren geht\u003c\/li\u003e\n\u003cli\u003e✍️ Wähle aus mehreren Schriftarten für die Gravur – von verspielt bis klassisch\u003c\/li\u003e\n\u003cli\u003e🧵 Weich gepolstertes Kunstleder für höchsten Tragekomfort, auch bei langen Spaziergängen\u003c\/li\u003e\n\u003cli\u003e📏 Verstellbar – passend für kleine, mittlere und große Hunde (Größe XS bis XL)\u003c\/li\u003e\n\u003cli\u003e🎨 Erhältlich in mehreren Farbvarianten\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eDetails:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eMaterial: hochwertiges PU-Kunstleder\u003c\/li\u003e\n\u003cli\u003eIndividualisierung: Namensschild mit Gravur (Name + Telefonnummer), Schriftart wählbar\u003c\/li\u003e\n\u003cli\u003eGrößen: XS, S, M, L, XL (siehe Größentabelle)\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cem\u003eBitte beachte: Die Größe anhand des Halsumfangs deines Hundes wählen – lass ca. zwei Finger Platz zwischen Halsband und Hals für optimalen Tragekomfort.\u003c\/em\u003e\u003c\/p\u003e","brand":"Nestory","offers":[{"title":"XS \/ Braun","offer_id":64487341621625,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"S \/ Braun","offer_id":64494109131129,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"M \/ Braun","offer_id":64494109163897,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"L \/ Braun","offer_id":64494109196665,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Braun","offer_id":64494109229433,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Grün","offer_id":64654289011065,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Rot","offer_id":64654289043833,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Grau","offer_id":64654289076601,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XS \/ Rosa","offer_id":64654289109369,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"S \/ Grün","offer_id":64654289142137,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"S \/ Rot","offer_id":64654289174905,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"S \/ Grau","offer_id":64654289207673,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"S \/ Rosa","offer_id":64654289240441,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"M \/ Grün","offer_id":64654289273209,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"M \/ Rot","offer_id":64654289305977,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"M \/ Grau","offer_id":64654289338745,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"M \/ Rosa","offer_id":64654289371513,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"L \/ Grün","offer_id":64654289404281,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"L \/ Rot","offer_id":64654289437049,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"L \/ Grau","offer_id":64654289469817,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"L \/ Rosa","offer_id":64654289502585,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Grün","offer_id":64654289535353,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Rot","offer_id":64654289568121,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Grau","offer_id":64654289600889,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"XL \/ Rosa","offer_id":64654289633657,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/IMG-7742.png?v=1788616775"},{"product_id":"personalisiertes-hundehalsband-aus-samt-mit-gravur","title":"Personalisiertes Hundehalsband \"Polarlicht\"","description":"\u003cp\u003eSamtig weich, dabei genauso robust wie ein klassisches Halsband – mit einer goldfarbenen Steckschnalle, auf der Name und Telefonnummer deines Hundes eingraviert werden. Falls dein Vierbeiner mal ausbüxt, weiß jeder sofort, wohin er gehört.\u003c\/p\u003e\n\u003cp\u003eDas Samtmaterial fühlt sich auf dem Fell angenehm weich an, ohne an Stabilität einzubüßen – ideal für Hunde, die viel unterwegs sind, aber trotzdem Komfort verdient haben.\u003c\/p\u003e\n\u003ch3\u003eWarum du dieses Halsband lieben wirst:\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAngenehm weiches Samtmaterial, sanft zu Fell und Haut\u003c\/li\u003e\n\u003cli\u003eGravur direkt auf der Schnalle: Name und Telefonnummer – praktische Sicherheit für unterwegs\u003c\/li\u003e\n\u003cli\u003eVerstellbar, in 5 Größen von XS bis XL\u003c\/li\u003e\n\u003cli\u003eGoldfarbene Schnalle und D-Ring für die Leine\u003c\/li\u003e\n\u003cli\u003eElegante Optik, die trotzdem alltagstauglich bleibt – auch ein schönes Geschenk für Hundefreunde\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGrößentabelle\u003c\/h3\u003e\n\u003ctable style=\"width:100%;border-collapse:collapse;text-align:center;\"\u003e\n\u003cthead\u003e\u003ctr style=\"background:#f3e9de;\"\u003e\n\u003cth style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eGröße\u003c\/th\u003e\n\u003cth style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eHalsumfang\u003c\/th\u003e\n\u003cth style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eBreite\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eXS\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e23–30 cm\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e2,0 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eS\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e31–41 cm\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e2,0 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eM\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e42–48 cm\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e2,5 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eL\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e49–55 cm\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e2,5 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003eXL\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e56–62 cm\u003c\/td\u003e\n\u003ctd style=\"padding:8px;border:1px solid #e0d3c4;\"\u003e2,5 cm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cstrong\u003eSo misst du richtig:\u003c\/strong\u003e Leg ein Maßband locker um den Hals deines Hundes und lass zwei Finger Platz. Liegt der Wert zwischen zwei Größen, wähle die größere. Messtoleranz: 1–3 cm.\u003c\/p\u003e\n\u003ch3\u003eDetails:\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMaterial: Samt\u003c\/li\u003e\n\u003cli\u003eVerschluss: Steckschnalle mit Gravur\u003c\/li\u003e\n\u003cli\u003eGrößen: XS bis XL (23–62 cm Halsumfang)\u003c\/li\u003e\n\u003cli\u003ePersonalisierung: Name und Telefonnummer\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Nestory","offers":[{"title":"Braun \/ XS (23–30 cm)","offer_id":64504131191161,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Lila \/ XS (23–30 cm)","offer_id":64757527806329,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ XS (23–30 cm)","offer_id":64757527839097,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rosa \/ XS (23–30 cm)","offer_id":64757527871865,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Hellblau \/ XS (23–30 cm)","offer_id":64757527904633,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Grün \/ XS (23–30 cm)","offer_id":64757527937401,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rot \/ XS (23–30 cm)","offer_id":64757527970169,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Braun \/ S (31–41 cm)","offer_id":64774212485497,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Braun \/ M (42–48 cm)","offer_id":64774212518265,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Braun \/ L (49–55 cm)","offer_id":64774212551033,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Braun \/ XL (56–62 cm)","offer_id":64774212583801,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Lila \/ S (31–41 cm)","offer_id":64774212616569,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Lila \/ M (42–48 cm)","offer_id":64774212649337,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Lila \/ L (49–55 cm)","offer_id":64774212682105,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Lila \/ XL (56–62 cm)","offer_id":64774212714873,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ S (31–41 cm)","offer_id":64774212747641,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ M (42–48 cm)","offer_id":64774212780409,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ L (49–55 cm)","offer_id":64774212813177,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ XL (56–62 cm)","offer_id":64774212845945,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rosa \/ S (31–41 cm)","offer_id":64774212878713,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rosa \/ M (42–48 cm)","offer_id":64774212911481,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rosa \/ L (49–55 cm)","offer_id":64774212944249,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rosa \/ XL (56–62 cm)","offer_id":64774212977017,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Hellblau \/ S (31–41 cm)","offer_id":64774213009785,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Hellblau \/ M (42–48 cm)","offer_id":64774213042553,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Hellblau \/ L (49–55 cm)","offer_id":64774213075321,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Hellblau \/ XL (56–62 cm)","offer_id":64774213108089,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Grün \/ S (31–41 cm)","offer_id":64774213140857,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Grün \/ M (42–48 cm)","offer_id":64774213173625,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Grün \/ L (49–55 cm)","offer_id":64774213206393,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Grün \/ XL (56–62 cm)","offer_id":64774213239161,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rot \/ S (31–41 cm)","offer_id":64774213271929,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rot \/ M (42–48 cm)","offer_id":64774213304697,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rot \/ L (49–55 cm)","offer_id":64774213337465,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true},{"title":"Rot \/ XL (56–62 cm)","offer_id":64774213370233,"sku":null,"price":25.55,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/26CB44F3-59A0-430A-AD64-D594650D2E88.png?v=1792053955"},{"product_id":"personalisierte-haustiermatte-mit-gravur-optik","title":"Personalisierte Haustiermatte mit Gravur-Optik","description":"\u003cp\u003eOb im Flur, vor dem Sofa oder als dekorativer Blickfang drinnen – diese kuschelige Matte sagt: \"Hier wohnt jemand, der seine Vierbeiner liebt.\" Wähl das Rassenmotiv deines Haustiers oder lad ein komplett eigenes Design hoch – mit Namen, individuellem Spruch und bis zu 4 Haustieren auf einer Matte.\u003c\/p\u003e\u003ch3\u003eWarum du diese Matte lieben wirst:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e🐾 16 Rassen zur Auswahl, jeweils in Schwarz oder Braun – oder dein eigenes Design\u003c\/li\u003e\n\u003cli\u003e✍️ Namen und Zusatztext frei wählbar – live in der Vorschau sichtbar, bevor du bestellst\u003c\/li\u003e\n\u003cli\u003e🏠 Bis zu 4 Haustiere auf einer Matte – perfekt für Mehrtierhaushalte\u003c\/li\u003e\n\u003cli\u003e🎁 Ein Blickfang für dich – und ein Geschenk, das garantiert kein zweites Mal existiert\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003eDetails:\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eGrößen: 40×60 cm, 50×80 cm\u003c\/li\u003e\n\u003cli\u003eIndividualisierung: Rassenmotiv, Namen, optionaler Zusatztext oder eigenes Design\u003c\/li\u003e\n\u003cli\u003eFür den Innenbereich konzipiert – weiche, kurzflorige Oberfläche (kein Fußabtreter für draußen)\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003e\u003cem\u003eBitte prüfe deine Eingabe sorgfältig – die Matte wird genau so bedruckt, wie du sie in der Vorschau siehst.\u003c\/em\u003e\u003c\/p\u003e\u003chr\u003e\n\n\u003cdiv class=\"pet-mat-widget\"\u003e\n  \u003clabel class=\"pet-mat-label\"\u003eWie soll deine Matte aussehen? *\u003c\/label\u003e\n\n  \u003cdiv class=\"pet-mode-toggle\"\u003e\n    \u003cbutton type=\"button\" class=\"mode-btn active\" data-mode=\"breed\"\u003e🐾 Rassen-Design wählen\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"mode-btn\" data-mode=\"custom\"\u003e🖼️ Eigenes Design hochladen\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"pet-mat-preview\"\u003e\n    \u003cdiv class=\"pet-mat-mockup\"\u003e\n      \u003cdiv id=\"breedPreviewContent\"\u003e\n        \u003cdiv class=\"pet-mat-title\" id=\"petMatTitle\"\u003eWillkommen bei\u003c\/div\u003e\n        \u003cdiv class=\"pet-mat-names\" id=\"petMatNames\"\u003eBello\u003c\/div\u003e\n        \u003cdiv class=\"pet-mat-icons\" id=\"petMatIcons\"\u003e\n          \u003cimg id=\"petIcon1\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/0DBA16BE-3078-48AA-AF7E-749E915F3414.png\" alt=\"Haustier 1\"\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"pet-mat-subtext\" id=\"petMatSubtext\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv id=\"customPreviewContent\" style=\"display:none;width:100%;height:100%;\"\u003e\n        \u003cimg id=\"customPreviewImg\" src=\"\" alt=\"Dein Design\" style=\"display:none;width:100%;height:100%;object-fit:cover;\"\u003e\n        \u003cdiv id=\"customPlaceholder\" class=\"portrait-placeholder\"\u003eDein Design erscheint hier\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp id=\"genStatus\" style=\"font-size:11px;color:#8a6a4d;margin-top:8px;\"\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv id=\"breedModeBlock\"\u003e\n    \u003cdiv class=\"pet-mat-selectors\" id=\"petSelectors\"\u003e\n      \u003cdiv class=\"pet-selector-block\" data-pet-index=\"1\"\u003e\n        \u003cp class=\"pet-mat-sublabel\"\u003eHaustier 1\u003c\/p\u003e\n        \u003cselect class=\"pet-breed-select\"\u003e\n          \u003coption value=\"labrador\"\u003eLabrador\u003c\/option\u003e\n          \u003coption value=\"golden-retriever\"\u003eGolden Retriever\u003c\/option\u003e\n          \u003coption value=\"schaeferhund\"\u003eDeutscher Schäferhund\u003c\/option\u003e\n          \u003coption value=\"franzoesische-bulldogge\"\u003eFranzösische Bulldogge\u003c\/option\u003e\n          \u003coption value=\"dackel\"\u003eDackel\u003c\/option\u003e\n          \u003coption value=\"siberian-husky\"\u003eSiberian Husky\u003c\/option\u003e\n          \u003coption value=\"dalmatiner\"\u003eDalmatiner\u003c\/option\u003e\n          \u003coption value=\"samojede\"\u003eSamojede\u003c\/option\u003e\n          \u003coption value=\"cane-corso\"\u003eCane Corso\u003c\/option\u003e\n          \u003coption value=\"yorkshire-terrier\"\u003eYorkshire Terrier\u003c\/option\u003e\n          \u003coption value=\"boxer\"\u003eBoxer\u003c\/option\u003e\n          \u003coption value=\"pudel\"\u003ePudel\u003c\/option\u003e\n          \u003coption value=\"rottweiler\"\u003eRottweiler\u003c\/option\u003e\n          \u003coption value=\"border-collie\"\u003eBorder Collie\u003c\/option\u003e\n          \u003coption value=\"australian-shepherd\"\u003eAustralian Shepherd\u003c\/option\u003e\n          \u003coption value=\"shih-tzu\"\u003eShih Tzu\u003c\/option\u003e\n        \u003c\/select\u003e\n        \u003cdiv class=\"pet-color-toggle\"\u003e\n          \u003cbutton type=\"button\" class=\"color-btn active\" data-color=\"schwarz\"\u003eSchwarz\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"color-btn\" data-color=\"braun\"\u003eBraun\u003c\/button\u003e\n        \u003c\/div\u003e\n        \u003cinput type=\"text\" class=\"pet-input\" name=\"properties[Name Haustier 1]\" placeholder=\"Name (z.B. Bello)\" maxlength=\"14\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cbutton type=\"button\" id=\"addPetBtn\" class=\"pet-mat-add-btn\"\u003e+ Weiteres Haustier hinzufügen\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv id=\"customModeBlock\" style=\"display:none;\"\u003e\n    \u003cinput type=\"file\" id=\"customFileInput\" name=\"properties[Eigenes Design]\" accept=\"image\/*\" class=\"portrait-file-input\"\u003e\n    \u003clabel for=\"customFileInput\" class=\"portrait-file-btn\"\u003e🖼️ Bild oder Design hochladen\u003c\/label\u003e\n    \u003cinput type=\"text\" class=\"pet-input\" name=\"properties[Wunschtext auf Design]\" placeholder=\"Optionaler Text auf der Matte, z.B. Namen\" maxlength=\"40\" style=\"margin-top:6px;\"\u003e\n    \u003cp class=\"pet-mat-hint\" style=\"margin-top:8px;\"\u003eAm besten funktionieren Bilder\/Designs mit hoher Auflösung. Du kannst z.B. ein eigenes Foto, Logo oder eine fertige Grafik hochladen.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cinput type=\"text\" id=\"zusatzTextInput\" class=\"pet-input\" name=\"properties[Zusatztext]\" placeholder=\"Zusatztext, optional (z.B. Peter und Maria wohnen hier auch)\" maxlength=\"40\" style=\"margin-top:14px;\"\u003e\n\n  \u003cinput type=\"hidden\" name=\"properties[Design-Modus]\" id=\"designModeField\" value=\"Rassen-Motiv\"\u003e\n  \u003cinput type=\"hidden\" name=\"properties[Haustier 1 Rasse]\" id=\"breedField1\" value=\"Labrador Schwarz\"\u003e\n  \u003cinput type=\"hidden\" name=\"properties[Haustier 2 Rasse]\" id=\"breedField2\" value=\"\"\u003e\n  \u003cinput type=\"hidden\" name=\"properties[Haustier 3 Rasse]\" id=\"breedField3\" value=\"\"\u003e\n  \u003cinput type=\"hidden\" name=\"properties[Haustier 4 Rasse]\" id=\"breedField4\" value=\"\"\u003e\n\n  \u003ccanvas id=\"printCanvas\" width=\"2400\" height=\"1600\" style=\"display:none;\"\u003e\u003c\/canvas\u003e\n\n  \u003cp class=\"pet-mat-hint\"\u003eBitte prüfe deine Eingabe sorgfältig – die Matte wird genau so bedruckt.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.pet-mat-widget{max-width:520px;margin:20px 0;font-family:inherit;}\n.pet-mat-label{display:block;font-weight:600;margin-bottom:10px;font-size:15px;}\n.pet-mat-sublabel{font-weight:600;font-size:13px;margin:14px 0 8px 0;opacity:0.75;}\n\n.pet-mode-toggle{display:flex;gap:8px;margin-bottom:16px;}\n.mode-btn{flex:1;padding:11px 10px;border:1px solid #ccc;background:#fff;border-radius:20px;cursor:pointer;font-size:13px;}\n.mode-btn.active{background:#2C332F;color:#fff;border-color:#2C332F;}\n\n.pet-mat-preview{display:flex;flex-direction:column;align-items:center;margin-bottom:18px;padding:20px;background:#f4ede4;border-radius:8px;}\n.pet-mat-mockup{\n  width:100%;max-width:340px;min-height:210px;\n  background:#c9a876;\n  border:10px solid #8a6a4d;\n  border-radius:4px;\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\n  padding:14px;\n  box-shadow:0 4px 10px rgba(0,0,0,.2);\n  text-align:center;\n  overflow:hidden;\n}\n.pet-mat-title{font-size:14px;font-weight:600;color:#3d2b1f;margin-bottom:2px;}\n.pet-mat-names{font-size:18px;font-weight:700;color:#3d2b1f;margin-bottom:10px;word-break:break-word;}\n.pet-mat-icons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}\n.pet-mat-icons img{width:60px;height:60px;object-fit:contain;}\n.pet-mat-subtext{font-size:13px;color:#5a4632;margin-top:10px;font-style:italic;font-weight:600;min-height:14px;word-break:break-word;}\n.portrait-placeholder{color:#8a6a4d;font-size:13px;text-align:center;padding:20px;}\n\n.pet-breed-select{width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:6px;font-size:14px;margin-bottom:10px;background:#fff;}\n\n.pet-color-toggle{display:flex;gap:8px;margin-bottom:10px;}\n.color-btn{padding:7px 16px;border:1px solid #ccc;background:#fff;border-radius:20px;cursor:pointer;font-size:13px;}\n.color-btn.active{background:#3F5147;color:#fff;border-color:#3F5147;}\n\n.pet-input{padding:11px 12px;border:1px solid #ccc;border-radius:6px;font-size:14px;width:100%;box-sizing:border-box;margin-top:4px;}\n.pet-input:focus{outline:none;border-color:#8a6a4d;}\n\n.pet-mat-add-btn{margin-top:14px;padding:10px 18px;border:1px dashed #2C332F;background:transparent;color:#2C332F;border-radius:20px;cursor:pointer;font-size:13px;}\n.pet-selector-block{padding-top:10px;border-top:1px solid rgba(0,0,0,.08);margin-top:14px;}\n.pet-selector-block:first-child{border-top:none;margin-top:0;padding-top:0;}\n\n.portrait-file-input{display:none;}\n.portrait-file-btn{display:block;text-align:center;padding:12px;border:1px dashed #2C332F;border-radius:20px;cursor:pointer;font-size:14px;color:#2C332F;margin-bottom:6px;}\n.portrait-file-btn:hover{background:rgba(44,51,47,0.05);}\n\n.pet-mat-hint{font-size:12px;color:#777;margin-top:12px;}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function(){\n  var MAX_PETS = 4;\n  var breedImages = {\n    'labrador-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/0DBA16BE-3078-48AA-AF7E-749E915F3414.png',\n    'labrador-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/D1C8FF6F-C842-4CE7-B87A-31C49C158648.png',\n    'golden-retriever-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/281FA725-6CB4-4B3D-A1EC-39799757D035.png',\n    'golden-retriever-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/D5DBDC13-102C-4F7F-8A5C-9DF57EB62C41.png',\n    'schaeferhund-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/01FC6BFA-2B7F-453C-8EDD-A5D982F55442.png',\n    'schaeferhund-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/A88A5CAB-DE9A-4829-9AAE-4EB25963C1D2.png',\n    'franzoesische-bulldogge-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/C7B127C5-12C1-449C-AE92-F15E61F4F5C2.png',\n    'franzoesische-bulldogge-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/241605B6-0FEE-47C2-ABD9-3147BD3C71D8.png',\n    'dackel-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/947E2183-AAF8-451B-AC17-1F66057F67FE.png',\n    'dackel-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/ADB29C4B-EEEE-4985-9A0F-6A8B4BDD9431.png',\n    'siberian-husky-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/3E8CD3CF-2162-41EC-B428-F1EF6BCC4639.png',\n    'siberian-husky-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/2B958A3D-1244-4D0C-9AD9-6EDB62DF13A3.png',\n    'dalmatiner-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/8138AE17-8B46-445A-B5D7-EF8ECE7EC07B.png',\n    'dalmatiner-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/481BE8AD-4A1E-4874-852D-46DE9DA4437A.png',\n    'samojede-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/14722399-62F3-4353-BD20-72390114B11B.png',\n    'samojede-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/66D28F63-7A98-48FB-BEB6-AF63B79E1B16.png',\n    'cane-corso-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/EA39F397-80E6-4FF0-88B9-C8D7178CC252.png',\n    'cane-corso-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/46458BD4-FCC9-4BED-AE79-D908A6581213.png',\n    'yorkshire-terrier-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/6D10A633-02F4-49DF-9785-7F97D31F7539.png',\n    'yorkshire-terrier-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/BE4B90F1-EA7F-468E-A17B-1035CB781C56.png',\n    'boxer-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/5E23330D-21E2-49EF-BE46-65D33BF00A00.png',\n    'boxer-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/462CB850-C411-40E5-B3CD-8F888FE5DFEB.png',\n    'pudel-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/48FAEC2E-7FD4-4AC3-97B0-B13D008107EB.png',\n    'pudel-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/6CA84875-45F5-42C7-B10D-B142D57ABB88.png',\n    'rottweiler-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/A02AF96B-3694-4401-A463-25E716EC2878.png',\n    'rottweiler-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/0AAEF1D5-E5E7-497A-989C-0C78FEB313A6.png',\n    'border-collie-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/6C73EF48-9E11-4D45-A58A-002E3CD1FD2C.png',\n    'border-collie-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/5483F92A-05DD-46FF-8BA2-3DF80A98EA60.png',\n    'australian-shepherd-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/08E9AC10-B53B-4832-AEC1-75D93E303DE3.png',\n    'australian-shepherd-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/773F0138-7EE5-4116-A0F3-C35BFE27C92C.png',\n    'shih-tzu-schwarz':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/5BEC3DC3-9AE5-4F94-9A97-7428EA936D6F.png',\n    'shih-tzu-braun':'https:\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/67126BA1-CAD6-405E-8519-B3E31D4B3FC9.png'\n  };\n  var breedNames = {\n    'labrador':'Labrador','golden-retriever':'Golden Retriever','schaeferhund':'Deutscher Schäferhund',\n    'franzoesische-bulldogge':'Französische Bulldogge','dackel':'Dackel','siberian-husky':'Siberian Husky',\n    'dalmatiner':'Dalmatiner','samojede':'Samojede','cane-corso':'Cane Corso','yorkshire-terrier':'Yorkshire Terrier',\n    'boxer':'Boxer','pudel':'Pudel','rottweiler':'Rottweiler','border-collie':'Border Collie',\n    'australian-shepherd':'Australian Shepherd','shih-tzu':'Shih Tzu'\n  };\n\n  var petState = {1:{breed:'labrador',color:'schwarz',name:''}};\n  var petCount = 1;\n  var currentMode = 'breed';\n  var genStatus = document.getElementById('genStatus');\n  var genToken = 0;\n\n  function updatePreview(){\n    var names = [];\n    var icons = '';\n    for(var i=1;i\u003c=MAX_PETS;i++){\n      var p = petState[i];\n      var field = document.getElementById('breedField'+i);\n      if(!p){ if(field) field.value=''; continue; }\n      names.push(p.name || breedNames[p.breed]);\n      var key = p.breed + '-' + p.color;\n      var src = breedImages[key] || breedImages[p.breed + '-schwarz'];\n      icons += '\u003cimg src=\"'+src+'\" alt=\"Haustier '+i+'\"\u003e';\n      if(field) field.value = breedNames[p.breed] + ' ' + (p.color.charAt(0).toUpperCase()+p.color.slice(1));\n    }\n    document.getElementById('petMatNames').textContent = names.join(' \u0026 ') || 'Bello';\n    document.getElementById('petMatIcons').innerHTML = icons;\n    var extra = document.getElementById('zusatzTextInput');\n    document.getElementById('petMatSubtext').textContent = extra ? extra.value : '';\n    if(currentMode === 'breed'){ scheduleGenerate(); }\n  }\n\n  var generateTimer = null;\n  function scheduleGenerate(){\n    if(generateTimer) clearTimeout(generateTimer);\n    generateTimer = setTimeout(generatePrintFile, 400);\n  }\n\n  function loadImage(src){\n    return new Promise(function(resolve){\n      var img = new Image();\n      img.crossOrigin = 'anonymous';\n      img.onload = function(){ resolve(img); };\n      img.onerror = function(){ resolve(null); };\n      img.src = src;\n    });\n  }\n\n  function fitFontSize(ctx, text, weight, family, maxWidth, startSize, minSize){\n    var size = startSize;\n    while(size \u003e minSize){\n      ctx.font = weight+' '+size+'px '+family;\n      if(ctx.measureText(text).width \u003c= maxWidth) break;\n      size -= 4;\n    }\n    return size;\n  }\n\n  function generatePrintFile(){\n    var myToken = ++genToken;\n    if(genStatus) genStatus.textContent = 'Druckdatei wird erstellt …';\n    var canvas = document.getElementById('printCanvas');\n    var ctx = canvas.getContext('2d');\n    var W = canvas.width, H = canvas.height;\n\n    var names = [];\n    var iconSrcs = [];\n    for(var i=1;i\u003c=MAX_PETS;i++){\n      var p = petState[i];\n      if(!p) continue;\n      names.push(p.name || breedNames[p.breed]);\n      var key = p.breed + '-' + p.color;\n      iconSrcs.push(breedImages[key] || breedImages[p.breed + '-schwarz']);\n    }\n    var subtext = (document.getElementById('zusatzTextInput') || {}).value || '';\n\n    Promise.all(iconSrcs.map(loadImage)).then(function(images){\n      if(myToken !== genToken) return;\n\n      ctx.fillStyle = '#c9a876';\n      ctx.fillRect(0,0,W,H);\n      ctx.strokeStyle = '#8a6a4d';\n      ctx.lineWidth = 60;\n      ctx.strokeRect(30,30,W-60,H-60);\n      ctx.strokeStyle = 'rgba(138,106,77,0.25)';\n      ctx.lineWidth = 3;\n      for(var y=100;y\u003cH-100;y+=14){\n        ctx.beginPath(); ctx.moveTo(100,y); ctx.lineTo(W-100,y); ctx.stroke();\n      }\n\n      ctx.textAlign = 'center';\n      var maxTextWidth = W - 240;\n\n      var titleText = 'Willkommen bei';\n      var titleSize = fitFontSize(ctx, titleText, '600', 'Georgia, serif', maxTextWidth, 78, 40);\n\n      var nameLine = names.join(' \u0026 ') || 'Bello';\n      var nameSize = fitFontSize(ctx, nameLine, '700', 'Georgia, serif', maxTextWidth, 150, 40);\n\n      var subLine = subtext || '';\n      var subSize = subLine ? fitFontSize(ctx, subLine, 'italic 700', 'Georgia, serif', maxTextWidth, 90, 30) : 0;\n\n      var iconSize = images.length \u003e 2 ? 460 : 520;\n      var iconGap = 50;\n\n      var gap1 = 25, gap2 = 45, gap3 = 55;\n      var totalH = titleSize + gap1 + nameSize + gap2 + iconSize + gap3 + subSize;\n      var startY = (H - totalH)\/2;\n\n      var y = startY + titleSize*0.8;\n      ctx.fillStyle = '#3d2b1f';\n      ctx.font = '600 '+titleSize+'px Georgia, serif';\n      ctx.fillText(titleText, W\/2, y);\n\n      y += gap1 + nameSize*0.85;\n      ctx.font = '700 '+nameSize+'px Georgia, serif';\n      ctx.fillText(nameLine, W\/2, y);\n\n      y += gap2;\n      var totalWidth = images.length * iconSize + (images.length-1)*iconGap;\n      var startX = (W - totalWidth)\/2;\n      images.forEach(function(img, idx){\n        if(!img) return;\n        var x = startX + idx*(iconSize+iconGap);\n        ctx.drawImage(img, x, y, iconSize, iconSize);\n      });\n      y += iconSize + gap3;\n\n      if(subLine){\n        ctx.font = 'italic 700 '+subSize+'px Georgia, serif';\n        ctx.fillStyle = '#5a4632';\n        ctx.fillText(subLine, W\/2, y + subSize*0.75);\n      }\n\n      canvas.toBlob(function(blob){\n        if(myToken !== genToken || !blob) return;\n        try{\n          var file = new File([blob], 'haustiermatte-design.png', {type:'image\/png'});\n          var dt = new DataTransfer();\n          dt.items.add(file);\n          var input = document.getElementById('customFileInput');\n          input.files = dt.files;\n          if(genStatus) genStatus.textContent = '✓ Druckdatei automatisch erstellt';\n        }catch(err){\n          if(genStatus) genStatus.textContent = 'Automatische Datei-Erstellung nicht unterstützt – bitte Design manuell hochladen.';\n        }\n      }, 'image\/png', 0.92);\n    });\n  }\n\n  function bindPetBlock(block, petIndex){\n    block.querySelector('.pet-breed-select').addEventListener('change', function(e){\n      petState[petIndex].breed = e.target.value;\n      updatePreview();\n    });\n    block.querySelectorAll('.color-btn').forEach(function(btn){\n      btn.addEventListener('click', function(){\n        block.querySelectorAll('.color-btn').forEach(function(b){b.classList.remove('active');});\n        btn.classList.add('active');\n        petState[petIndex].color = btn.getAttribute('data-color');\n        updatePreview();\n      });\n    });\n    block.querySelector('.pet-input').addEventListener('input', function(e){\n      petState[petIndex].name = e.target.value;\n      updatePreview();\n    });\n  }\n\n  document.querySelectorAll('.pet-selector-block').forEach(function(block){\n    bindPetBlock(block, parseInt(block.getAttribute('data-pet-index'),10));\n  });\n\n  document.getElementById('zusatzTextInput').addEventListener('input', updatePreview);\n\n  var breedSelectHtml = document.querySelector('.pet-breed-select').innerHTML;\n\n  var addBtn = document.getElementById('addPetBtn');\n  addBtn.addEventListener('click', function(){\n    if(petCount \u003e= MAX_PETS) return;\n    petCount++;\n    petState[petCount] = {breed:'labrador', color:'schwarz', name:''};\n    var wrapper = document.getElementById('petSelectors');\n    var block = document.createElement('div');\n    block.className = 'pet-selector-block';\n    block.setAttribute('data-pet-index', petCount);\n    block.innerHTML = '\u003cp class=\"pet-mat-sublabel\"\u003eHaustier '+petCount+'\u003c\/p\u003e' +\n      '\u003cselect class=\"pet-breed-select\"\u003e'+breedSelectHtml+'\u003c\/select\u003e' +\n      '\u003cdiv class=\"pet-color-toggle\"\u003e' +\n      '\u003cbutton type=\"button\" class=\"color-btn active\" data-color=\"schwarz\"\u003eSchwarz\u003c\/button\u003e' +\n      '\u003cbutton type=\"button\" class=\"color-btn\" data-color=\"braun\"\u003eBraun\u003c\/button\u003e' +\n      '\u003c\/div\u003e' +\n      '\u003cinput type=\"text\" class=\"pet-input\" name=\"properties[Name Haustier '+petCount+']\" placeholder=\"Name\" maxlength=\"14\"\u003e';\n    wrapper.appendChild(block);\n    bindPetBlock(block, petCount);\n    if(petCount \u003e= MAX_PETS){ addBtn.style.display = 'none'; }\n    updatePreview();\n  });\n\n  var customFileInput = document.getElementById('customFileInput');\n  var customPreviewImg = document.getElementById('customPreviewImg');\n  var customPlaceholder = document.getElementById('customPlaceholder');\n  customFileInput.addEventListener('change', function(e){\n    var file = e.target.files[0];\n    if(!file) return;\n    var reader = new FileReader();\n    reader.onload = function(ev){\n      customPreviewImg.src = ev.target.result;\n      customPreviewImg.style.display = 'block';\n      customPlaceholder.style.display = 'none';\n    };\n    reader.readAsDataURL(file);\n  });\n\n  var modeButtons = document.querySelectorAll('.mode-btn');\n  modeButtons.forEach(function(btn){\n    btn.addEventListener('click', function(){\n      modeButtons.forEach(function(b){b.classList.remove('active');});\n      btn.classList.add('active');\n      currentMode = btn.getAttribute('data-mode');\n      var isBreed = currentMode === 'breed';\n      document.getElementById('breedModeBlock').style.display = isBreed ? 'block' : 'none';\n      document.getElementById('customModeBlock').style.display = isBreed ? 'none' : 'block';\n      document.getElementById('breedPreviewContent').style.display = isBreed ? 'block' : 'none';\n      document.getElementById('customPreviewContent').style.display = isBreed ? 'none' : 'flex';\n      document.getElementById('customPreviewContent').style.flexDirection = 'column';\n      document.getElementById('customPreviewContent').style.alignItems = 'center';\n      document.getElementById('customPreviewContent').style.justifyContent = 'center';\n      document.getElementById('designModeField').value = isBreed ? 'Rassen-Motiv' : 'Eigenes Design';\n      if(genStatus) genStatus.textContent = '';\n      if(isBreed){ scheduleGenerate(); }\n    });\n  });\n\n  var form = document.querySelector('.pet-mat-widget').closest('form');\n  if(form){\n    form.addEventListener('submit', function(e){\n      if(currentMode === 'breed' \u0026\u0026 !petState[1].name){\n        e.preventDefault();\n        alert('Bitte gib mindestens einen Namen für Haustier 1 ein.');\n        return;\n      }\n      if(currentMode === 'custom' \u0026\u0026 (!customFileInput.files || customFileInput.files.length === 0)){\n        e.preventDefault();\n        alert('Bitte lade ein Design hoch, bevor du das Produkt in den Warenkorb legst.');\n      }\n    });\n  }\n\n  scheduleGenerate();\n})();\n\u003c\/script\u003e","brand":"Nestory","offers":[{"title":"40x60cm","offer_id":64520878457209,"sku":null,"price":26.99,"currency_code":"EUR","in_stock":true},{"title":"50x80cm","offer_id":64520878489977,"sku":null,"price":32.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1034\/8272\/0633\/files\/DE0124BF-E6E9-4077-9207-DD5B577EF460.png?v=1788981644"}],"url":"https:\/\/nestory-store.de\/collections\/personalisierte-geschenke.oembed","provider":"Nestory","version":"1.0","type":"link"}