{"product_id":"vintage-style-crochet-bag-pattern","title":"Vintage Style Crochet Bag Pattern","description":"\u003cdiv class=\"cs-product-wrapper\"\u003e\n\n  \u003c!-- 🎯 HERO SECTION --\u003e\n  \u003cdiv class=\"cs-hero-section\"\u003e\n    \u003cdiv class=\"cs-hero-content\"\u003e\n      \u003cspan class=\"cs-hero-badge\"\u003e✨ Instant Digital Download\u003c\/span\u003e\n      \u003ch1 class=\"cs-hero-title\"\u003eThe Granny Square Shoulder Bag 🌸\u003c\/h1\u003e\n      \u003cp class=\"cs-hero-subtitle\"\u003eA boho-chic crochet pattern with a vintage granny-square design and statement buckle. Make it in any color palette you love!\u003c\/p\u003e\n      \n      \u003cdiv class=\"cs-hero-features\"\u003e\n        \u003cdiv class=\"cs-hero-feature\"\u003e\n          \u003cspan class=\"cs-hero-feature-icon\"\u003e📖\u003c\/span\u003e\n          \u003cspan\u003eBeginner-friendly guide\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cs-hero-feature\"\u003e\n          \u003cspan class=\"cs-hero-feature-icon\"\u003e🎨\u003c\/span\u003e\n          \u003cspan\u003e4 stunning colorways\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cs-hero-feature\"\u003e\n          \u003cspan class=\"cs-hero-feature-icon\"\u003e🧶\u003c\/span\u003e\n          \u003cspan\u003eClassic granny squares\u003c\/span\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"cs-hero-feature\"\u003e\n          \u003cspan class=\"cs-hero-feature-icon\"\u003e👜\u003c\/span\u003e\n          \u003cspan\u003eStylish everyday bag\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \n    \u003cdiv class=\"cs-hero-image\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/ChatGPT_Image_17_mai_2026_21_52_15_430x.webp?v=1779025959\" alt=\"Granny Square Shoulder Bag Pattern\" class=\"cs-hero-img\" loading=\"eager\"\u003e\n      \u003cdiv class=\"cs-hero-image-badge\"\u003e\n        \u003cspan class=\"cs-badge-icon\"\u003e🌸\u003c\/span\u003e\n        \u003cdiv class=\"cs-badge-text\"\u003e\n          \u003cstrong\u003eBoho Style\u003c\/strong\u003e\n          \u003cspan\u003eGranny-square charm\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- ⭐⭐⭐ PHOTO REVIEWS SLIDER ⭐⭐⭐ --\u003e\n  \u003cdiv class=\"cs-photo-reviews-section\"\u003e\n    \u003cdiv class=\"cs-photo-reviews-header\"\u003e\n      \u003cdiv class=\"cs-pr-rating\"\u003e\n        \u003cdiv class=\"cs-pr-stars\"\u003e★★★★★\u003c\/div\u003e\n        \u003cdiv class=\"cs-pr-rating-text\"\u003e\n          \u003cstrong\u003e4.9\u003c\/strong\u003e · \u003cspan\u003eReal reviews from real makers\u003c\/span\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-pr-title\"\u003e💛 Loved by Crochet Makers\u003c\/div\u003e\n      \u003cdiv class=\"cs-pr-subtitle\"\u003eReal bags made by real customers\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cs-photo-reviews-slider\" id=\"csPhotoReviewSlider\"\u003e\n      \u003cdiv class=\"cs-photo-reviews-track\"\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_21.59_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Patricia\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"The granny squares were so satisfying to make! This bag turned out even prettier than I imagined. 🌸\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003ePatricia B.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_21.59_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Emma\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"I love the buckle detail — it makes the bag look so high-end. The pattern was easy to follow! 💕\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eEmma L.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.00_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Jessica\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Made this in the coral colorway and I get compliments everywhere I go! So happy with it. 🧶\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eJessica R.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.00_430x.webp?v=1779026921\" alt=\"Granny Square Bag by Rachel\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Made one for my daughter and now she wants me to make one for all her friends! 🌸\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eRachel K.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.01_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Linda\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"The color combinations in the pattern are gorgeous. Such a fun and relaxing project! 🎨\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eLinda P.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.01_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Maria\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"This is my third pattern from CrochetSchool and they never disappoint. Beautiful bag! 💛\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eMaria S.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.02_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Sophie\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"I made the lilac version and it's the perfect spring bag. Instructions were crystal clear. ✨\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eSophie D.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.02_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Jennifer\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Such a stylish bag and surprisingly roomy! It's become my everyday go-to. 👜\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eJennifer W.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.03_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Claire\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Loved learning the granny square technique. The photos made everything so easy to follow! 📸\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eClaire M.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.03_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Karen\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"The black version is so chic! This pattern is worth every penny. Highly recommend. 🖤\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eKaren T.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.04_1_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Amy\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"I'm a beginner and this was totally doable. So proud of how my bag turned out! 🎉\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eAmy H.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.04_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Michelle\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Already planning my next one in different colors. This pattern is so versatile! 🌈\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eMichelle D.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.05_1_430x.webp?v=1779026921\" alt=\"Granny Square Bag by Sarah\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Made this as a gift and the reaction was priceless. Such a special handmade present. 🎁\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eSarah M.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cs-photo-review-card\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/Image_17-5-2026_at_22.05_430x.webp?v=1779026922\" alt=\"Granny Square Bag by Nicole\" class=\"cs-pr-image\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"cs-pr-content\"\u003e\n            \u003cdiv class=\"cs-pr-stars-small\"\u003e★★★★★\u003c\/div\u003e\n            \u003cp class=\"cs-pr-text\"\u003e\"Beautiful pattern, beautiful result. The buckle really sets it apart from other bags! 💕\"\u003c\/p\u003e\n            \u003cdiv class=\"cs-pr-author\"\u003e\n              \u003cspan class=\"cs-pr-name\"\u003eNicole F.\u003c\/span\u003e\n              \u003cspan class=\"cs-pr-verified\"\u003e✓ Verified Buyer\u003c\/span\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cs-pr-dots\" id=\"csPhotoReviewDots\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- DELIVERY \u0026 INFO BOX --\u003e\n  \u003cdiv class=\"cs-info-box\"\u003e\n    \u003cdiv class=\"cs-info-item\"\u003e\n      \u003csvg class=\"cs-info-icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#8b6f47\" stroke-width=\"2\"\u003e\n        \u003cpath d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      \u003cdiv class=\"cs-info-text\"\u003e\n        \u003cstrong\u003eInstant Delivery\u003c\/strong\u003e \u003cspan\u003ePDF arrives in your email within 1 minute\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cs-info-divider\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"cs-info-item\"\u003e\n      \u003csvg class=\"cs-info-icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#8b6f47\" stroke-width=\"2\"\u003e\n        \u003cpath d=\"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      \u003cdiv class=\"cs-info-text\"\u003e\n        \u003cstrong\u003eLifetime Access\u003c\/strong\u003e \u003cspan\u003eDownload forever, print anytime\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cs-info-divider\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"cs-info-item\"\u003e\n      \u003csvg class=\"cs-info-icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#8b6f47\" stroke-width=\"2\"\u003e\n        \u003cpath d=\"M20 6L9 17l-5-5\"\u003e\u003c\/path\u003e\n      \u003c\/svg\u003e\n      \u003cdiv class=\"cs-info-text\"\u003e\n        \u003cstrong\u003eBeginner-Friendly\u003c\/strong\u003e \u003cspan\u003eStep-by-step photos + instructions\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 🎨 GALLERY IMAGE 1 --\u003e\n  \u003cdiv class=\"cs-lifestyle-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/ChatGPTImage17mai2026_21_07_02_430x.webp?v=1779025072\" alt=\"Granny Square Bag styled outfit\" class=\"cs-lifestyle-img\" loading=\"lazy\"\u003e\n    \u003cdiv class=\"cs-lifestyle-caption\"\u003e\n      \u003cspan class=\"cs-lifestyle-icon\"\u003e🌸\u003c\/span\u003e\n      \u003cp\u003eA boho statement piece that pairs with any outfit\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- WHAT YOU'LL RECEIVE --\u003e\n  \u003cdiv class=\"cs-receive-section\"\u003e\n    \u003ch2 class=\"cs-section-title\"\u003e📦 What You'll Receive\u003c\/h2\u003e\n    \u003cdiv class=\"cs-receive-grid\"\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e📖\u003c\/span\u003e\n        \u003ch4\u003eComplete Pattern\u003c\/h4\u003e\n        \u003cp\u003eClear, beginner-friendly instructions with helpful tips\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e📸\u003c\/span\u003e\n        \u003ch4\u003eVisual Guidance\u003c\/h4\u003e\n        \u003cp\u003eStep-by-step photos for every technique\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e🧶\u003c\/span\u003e\n        \u003ch4\u003eGranny Square Guide\u003c\/h4\u003e\n        \u003cp\u003eLearn the classic motif from scratch\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e🎨\u003c\/span\u003e\n        \u003ch4\u003e4 Color Palettes\u003c\/h4\u003e\n        \u003cp\u003eCoral, beige, lilac, black — or design your own!\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e📏\u003c\/span\u003e\n        \u003ch4\u003eMaterials List\u003c\/h4\u003e\n        \u003cp\u003eExact yarn requirements and buckle hardware\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-receive-item\"\u003e\n        \u003cspan class=\"cs-receive-emoji\"\u003e📥\u003c\/span\u003e\n        \u003ch4\u003eInstant PDF Download\u003c\/h4\u003e\n        \u003cp\u003eNo shipping. No waiting. Start crocheting in 1 minute.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 🎨 GALLERY IMAGE 3 --\u003e\n  \u003cdiv class=\"cs-lifestyle-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/ChatGPT_Image_17_mai_2026_20_57_20_430x.webp?v=1779028703\" alt=\"Granny Square Bag detail\" class=\"cs-lifestyle-img\" loading=\"lazy\"\u003e\n    \u003cdiv class=\"cs-lifestyle-caption\"\u003e\n      \u003cspan class=\"cs-lifestyle-icon\"\u003e🧶\u003c\/span\u003e\n      \u003cp\u003eHandmade detail in every stitch — a bag you'll be proud to carry\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 🎨 GALLERY IMAGE 2 --\u003e\n  \u003cdiv class=\"cs-lifestyle-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/ChatGPTImage17mai2026_21_35_00_430x.webp?v=1779025073\" alt=\"Granny Square Bag color options\" class=\"cs-lifestyle-img\" loading=\"lazy\"\u003e\n    \u003cdiv class=\"cs-lifestyle-caption\"\u003e\n      \u003cspan class=\"cs-lifestyle-icon\"\u003e🎨\u003c\/span\u003e\n      \u003cp\u003eOne pattern, endless colorways — make it uniquely yours\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- HOW IT WORKS --\u003e\n  \u003cdiv class=\"cs-how-section\"\u003e\n    \u003ch2 class=\"cs-section-title\"\u003e✨ How It Works\u003c\/h2\u003e\n    \u003cdiv class=\"cs-steps-container\"\u003e\n      \u003cdiv class=\"cs-step\"\u003e\n        \u003cdiv class=\"cs-step-number\"\u003e1\u003c\/div\u003e\n        \u003cdiv class=\"cs-step-content\"\u003e\n          \u003ch4\u003eOrder Placed\u003c\/h4\u003e\n          \u003cp\u003eToday · Secure checkout\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-step-arrow\"\u003e→\u003c\/div\u003e\n      \u003cdiv class=\"cs-step\"\u003e\n        \u003cdiv class=\"cs-step-number\"\u003e2\u003c\/div\u003e\n        \u003cdiv class=\"cs-step-content\"\u003e\n          \u003ch4\u003ePayment Confirmed\u003c\/h4\u003e\n          \u003cp\u003eWithin 1 minute\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-step-arrow\"\u003e→\u003c\/div\u003e\n      \u003cdiv class=\"cs-step\"\u003e\n        \u003cdiv class=\"cs-step-number\"\u003e3\u003c\/div\u003e\n        \u003cdiv class=\"cs-step-content\"\u003e\n          \u003ch4\u003ePDF Delivered\u003c\/h4\u003e\n          \u003cp\u003eInstantly to your email\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- WHY MAKERS LOVE --\u003e\n  \u003cdiv class=\"cs-why-section\"\u003e\n    \u003ch2 class=\"cs-section-title\"\u003e💛 Why Makers Love This Pattern\u003c\/h2\u003e\n    \u003cdiv class=\"cs-why-grid\"\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003eBeginner-friendly\u003c\/strong\u003e — clear instructions with photos\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003eClassic granny squares\u003c\/strong\u003e — timeless, satisfying motif\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003e4 colorways included\u003c\/strong\u003e — or invent your own palette\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003eStatement buckle detail\u003c\/strong\u003e — elevates the whole look\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003ePerfect gift\u003c\/strong\u003e — handmade and one-of-a-kind\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"cs-why-item\"\u003e\n        \u003cspan class=\"cs-why-icon\"\u003e✓\u003c\/span\u003e\n        \u003cp\u003e\u003cstrong\u003eLifetime access\u003c\/strong\u003e — make unlimited bags forever\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- FAQ --\u003e\n  \u003cdiv class=\"cs-faq-section\"\u003e\n    \u003ch2 class=\"cs-section-title\"\u003e❓ Frequently Asked Questions\u003c\/h2\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eIs this pattern beginner-friendly?\u003c\/summary\u003e\n      \u003cp\u003eYes! If you can crochet basic granny squares — or are willing to learn — you can make this bag. The pattern includes step-by-step photos and clear instructions.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eHow long does it take to make?\u003c\/summary\u003e\n      \u003cp\u003eMost makers complete the bag in 10-15 hours. The granny squares are easy to work on in small sessions, so it's a great pick-up-and-go project.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eWhat materials do I need?\u003c\/summary\u003e\n      \u003cp\u003eYou'll need DK or worsted cotton yarn in your chosen colors, a crochet hook, and one buckle for the strap detail. The complete materials list is included in the PDF.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eWill I receive the pattern immediately?\u003c\/summary\u003e\n      \u003cp\u003eYes! Within 1 minute of payment, the PDF will arrive in your email inbox. You can also download it from your order confirmation page.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eCan I sell the bags I make?\u003c\/summary\u003e\n      \u003cp\u003eYes! You can sell the finished bags you create. However, the pattern itself is for personal use only — please don't resell or share the PDF.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003cdetails class=\"cs-faq-item\"\u003e\n      \u003csummary\u003eCan I use my own colors?\u003c\/summary\u003e\n      \u003cp\u003eAbsolutely! The pattern includes 4 colorways, but granny squares are perfect for using any palette you love. Mix and match to make it your own.\u003c\/p\u003e\n    \u003c\/details\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .cs-product-wrapper {\n    --cs-primary: #8b6f47;\n    --cs-primary-dark: #6f5836;\n    --cs-cream: #faf7f2;\n    --cs-cream-dark: #f5efe5;\n    --cs-text: #2a2a2a;\n    --cs-text-light: #6a6a6a;\n    --cs-success: #4a7c59;\n    --cs-pink: #E91E63;\n    font-family: inherit;\n    color: var(--cs-text);\n    line-height: 1.6;\n    max-width: 100%;\n    margin: 0 auto;\n  }\n  .cs-product-wrapper * { box-sizing: border-box; }\n  .cs-product-wrapper h1, .cs-product-wrapper h2, .cs-product-wrapper h3, .cs-product-wrapper h4 { margin: 0 0 12px; line-height: 1.3; }\n  .cs-product-wrapper p { margin: 0 0 12px; }\n\n  .cs-hero-section { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding: 48px 24px; background: linear-gradient(135deg, var(--cs-cream) 0%, #fdfbf6 100%); border-radius: 20px; margin-bottom: 32px; }\n  .cs-hero-badge { display: inline-block; background: var(--cs-pink); color: white; padding: 8px 16px; border-radius: 50px; font-size: 12px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 16px; }\n  .cs-hero-title { font-size: 36px; font-weight: 800; color: var(--cs-primary-dark); margin-bottom: 16px; line-height: 1.2; }\n  .cs-hero-subtitle { font-size: 17px; color: var(--cs-text-light); margin-bottom: 24px; }\n  .cs-hero-features { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n  .cs-hero-feature { display: flex; align-items: center; gap: 8px; font-size: 14px; }\n  .cs-hero-feature-icon { font-size: 20px; }\n  .cs-hero-image { position: relative; }\n  .cs-hero-img { width: 100%; height: auto; border-radius: 16px; box-shadow: 0 12px 32px rgba(139, 111, 71, 0.2); }\n  .cs-hero-image-badge { position: absolute; bottom: 20px; right: 20px; background: white; padding: 12px 20px; border-radius: 50px; display: flex; align-items: center; gap: 10px; box-shadow: 0 8px 24px rgba(0,0,0,0.15); }\n  .cs-badge-icon { font-size: 22px; }\n  .cs-badge-text strong { display: block; font-size: 16px; color: var(--cs-primary-dark); line-height: 1.2; }\n  .cs-badge-text span { font-size: 12px; color: var(--cs-text-light); }\n\n  .cs-photo-reviews-section { background: linear-gradient(135deg, var(--cs-cream) 0%, #fdfbf6 100%); border-radius: 20px; padding: 32px 24px; margin: 0 0 28px; border: 1px solid #e8dfd0; box-shadow: 0 4px 16px rgba(139,111,71,0.06); }\n  .cs-photo-reviews-header { text-align: center; margin-bottom: 24px; }\n  .cs-pr-rating { display: inline-flex; align-items: center; gap: 12px; background: #fff; padding: 8px 18px; border-radius: 50px; border: 1px solid #e8dfd0; margin-bottom: 14px; box-shadow: 0 2px 8px rgba(139,111,71,0.08); }\n  .cs-pr-stars { color: #f5b800; font-size: 18px; letter-spacing: 2px; }\n  .cs-pr-rating-text { font-size: 14px; color: var(--cs-text-light); }\n  .cs-pr-rating-text strong { color: var(--cs-primary-dark); font-size: 16px; font-weight: 700; }\n  .cs-pr-title { font-size: 24px; color: var(--cs-primary-dark); font-weight: 700; margin-bottom: 6px; }\n  .cs-pr-subtitle { font-size: 14px; color: var(--cs-text-light); font-style: italic; }\n\n  .cs-photo-reviews-slider { overflow: hidden; margin: 0 -8px; padding: 8px; }\n  .cs-photo-reviews-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 8px; scrollbar-width: thin; scrollbar-color: var(--cs-primary) transparent; }\n  .cs-photo-reviews-track::-webkit-scrollbar { height: 6px; }\n  .cs-photo-reviews-track::-webkit-scrollbar-track { background: var(--cs-cream-dark); border-radius: 4px; }\n  .cs-photo-reviews-track::-webkit-scrollbar-thumb { background: var(--cs-primary); border-radius: 4px; }\n  .cs-photo-review-card { flex: 0 0 280px; background: #fff; border-radius: 14px; overflow: hidden; border: 1px solid #e8dfd0; scroll-snap-align: start; transition: all 0.3s ease; display: flex; flex-direction: column; }\n  .cs-photo-review-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(139,111,71,0.15); border-color: var(--cs-primary); }\n  .cs-pr-image { width: 100%; height: 280px; object-fit: cover; display: block; transition: transform 0.5s ease; background: var(--cs-cream); }\n  .cs-photo-review-card:hover .cs-pr-image { transform: scale(1.05); }\n  .cs-pr-content { padding: 16px 18px; flex-grow: 1; display: flex; flex-direction: column; }\n  .cs-pr-stars-small { color: #f5b800; font-size: 14px; letter-spacing: 1px; margin-bottom: 8px; }\n  .cs-pr-text { font-size: 14px; color: var(--cs-text); line-height: 1.5; font-style: italic; margin-bottom: 12px; flex-grow: 1; }\n  .cs-pr-author { display: flex; flex-direction: column; gap: 2px; padding-top: 10px; border-top: 1px solid var(--cs-cream-dark); }\n  .cs-pr-name { font-size: 13px; font-weight: 700; color: var(--cs-primary-dark); }\n  .cs-pr-verified { font-size: 11px; color: var(--cs-success); font-weight: 600; }\n  .cs-pr-dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }\n  .cs-pr-dot { width: 8px; height: 8px; border-radius: 50%; background: #d8cfc0; border: none; cursor: pointer; transition: all 0.3s ease; padding: 0; }\n  .cs-pr-dot.active { background: var(--cs-primary); width: 24px; border-radius: 4px; }\n\n  .cs-info-box { background: var(--cs-cream); border: 1px solid #e8dfd0; border-radius: 12px; padding: 18px 20px; margin: 24px 0; display: flex; align-items: center; justify-content: space-around; gap: 16px; flex-wrap: wrap; }\n  .cs-info-item { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 200px; }\n  .cs-info-icon { width: 28px; height: 28px; flex-shrink: 0; }\n  .cs-info-text strong { display: block; font-size: 14px; color: var(--cs-primary-dark); font-weight: 700; }\n  .cs-info-text span { font-size: 12px; color: var(--cs-text-light); }\n  .cs-info-divider { width: 1px; height: 36px; background: #d8cfc0; }\n\n  .cs-lifestyle-image { margin: 32px 0; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 24px rgba(139,111,71,0.1); background: var(--cs-cream); }\n  .cs-lifestyle-img { width: 100%; height: auto; display: block; }\n  .cs-lifestyle-caption { padding: 20px 24px; background: linear-gradient(135deg, var(--cs-cream) 0%, #fdfbf6 100%); display: flex; align-items: center; gap: 12px; border-top: 1px solid #e8dfd0; }\n  .cs-lifestyle-icon { font-size: 24px; flex-shrink: 0; }\n  .cs-lifestyle-caption p { font-size: 15px; color: var(--cs-text); font-weight: 500; margin: 0; }\n\n  .cs-section-title { font-size: 22px; color: var(--cs-primary-dark); font-weight: 700; text-align: center; margin-bottom: 20px; }\n\n  .cs-receive-section { margin: 36px 0; }\n  .cs-receive-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }\n  .cs-receive-item { background: #fff; border: 1px solid #e8dfd0; border-radius: 12px; padding: 20px 16px; text-align: center; transition: all 0.3s ease; }\n  .cs-receive-item:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(139,111,71,0.12); border-color: var(--cs-primary); }\n  .cs-receive-emoji { font-size: 32px; display: block; margin-bottom: 8px; }\n  .cs-receive-item h4 { font-size: 15px; color: var(--cs-primary-dark); font-weight: 700; }\n  .cs-receive-item p { font-size: 13px; color: var(--cs-text-light); margin: 0; }\n\n  .cs-how-section { background: var(--cs-cream); border-radius: 16px; padding: 28px 20px; margin: 36px 0; }\n  .cs-steps-container { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }\n  .cs-step { flex: 1; min-width: 180px; display: flex; align-items: center; gap: 12px; }\n  .cs-step-number { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--cs-primary), var(--cs-primary-dark)); color: #fff; font-weight: 700; font-size: 18px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(139,111,71,0.3); }\n  .cs-step-content h4 { font-size: 14px; color: var(--cs-primary-dark); margin: 0; }\n  .cs-step-content p { font-size: 12px; color: var(--cs-text-light); margin: 0; }\n  .cs-step-arrow { font-size: 22px; color: var(--cs-primary); font-weight: 700; }\n\n  .cs-why-section { margin: 36px 0; }\n  .cs-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }\n  .cs-why-item { background: #fff; border: 1px solid #e8dfd0; border-radius: 10px; padding: 14px 16px; display: flex; align-items: flex-start; gap: 10px; }\n  .cs-why-icon { width: 24px; height: 24px; border-radius: 50%; background: var(--cs-success); color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n  .cs-why-item p { font-size: 14px; margin: 0; }\n\n  .cs-faq-section { margin: 36px 0; }\n  .cs-faq-item { background: #fff; border: 1px solid #e8dfd0; border-radius: 10px; padding: 14px 18px; margin-bottom: 10px; transition: all 0.3s ease; }\n  .cs-faq-item:hover { border-color: var(--cs-primary); }\n  .cs-faq-item summary { font-weight: 600; color: var(--cs-primary-dark); cursor: pointer; list-style: none; position: relative; padding-right: 30px; font-size: 15px; }\n  .cs-faq-item summary::-webkit-details-marker { display: none; }\n  .cs-faq-item summary::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: var(--cs-primary); font-weight: 300; }\n  .cs-faq-item[open] summary::after { content: '−'; }\n  .cs-faq-item p { margin-top: 12px; font-size: 14px; color: var(--cs-text-light); }\n\n  @media (max-width: 749px) {\n    .cs-hero-section { grid-template-columns: 1fr; gap: 28px; padding: 32px 20px; }\n    .cs-hero-title { font-size: 28px; }\n    .cs-hero-subtitle { font-size: 15px; }\n    .cs-hero-features { grid-template-columns: 1fr; }\n    .cs-photo-reviews-section { padding: 24px 16px; border-radius: 16px; }\n    .cs-pr-title { font-size: 20px; }\n    .cs-photo-review-card { flex: 0 0 240px; }\n    .cs-pr-image { height: 240px; }\n    .cs-info-box { flex-direction: column; gap: 14px; padding: 18px; }\n    .cs-info-divider { display: none; }\n    .cs-info-item { width: 100%; }\n    .cs-steps-container { flex-direction: column; }\n    .cs-step-arrow { transform: rotate(90deg); }\n    .cs-section-title { font-size: 20px; }\n    .cs-lifestyle-caption { padding: 16px 18px; }\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (function() {\n    try {\n      var prSlider = document.getElementById('csPhotoReviewSlider');\n      var prDots = document.getElementById('csPhotoReviewDots');\n      if (!prSlider || !prDots) return;\n      var prTrack = prSlider.querySelector('.cs-photo-reviews-track');\n      if (!prTrack) return;\n      var prCards = prTrack.querySelectorAll('.cs-photo-review-card');\n      if (prCards.length === 0) return;\n\n      var cardsPerView = window.innerWidth \u003c 750 ? 1 : 3;\n      var totalGroups = Math.ceil(prCards.length \/ cardsPerView);\n\n      prDots.innerHTML = '';\n      for (var i = 0; i \u003c totalGroups; i++) {\n        var dot = document.createElement('button');\n        dot.className = 'cs-pr-dot' + (i === 0 ? ' active' : '');\n        dot.setAttribute('data-index', i);\n        dot.setAttribute('aria-label', 'Go to review group ' + (i + 1));\n        dot.setAttribute('type', 'button');\n        prDots.appendChild(dot);\n      }\n\n      prDots.addEventListener('click', function(e) {\n        try {\n          if (e.target \u0026\u0026 e.target.classList.contains('cs-pr-dot')) {\n            var index = parseInt(e.target.getAttribute('data-index')) || 0;\n            var cardWidth = prCards[0].offsetWidth + 16;\n            prTrack.scrollTo({ left: index * cardWidth * cardsPerView, behavior: 'smooth' });\n            var dots = document.querySelectorAll('.cs-pr-dot');\n            for (var j = 0; j \u003c dots.length; j++) { dots[j].classList.remove('active'); }\n            e.target.classList.add('active');\n          }\n        } catch (err) {}\n      });\n\n      var scrollTimeout;\n      prTrack.addEventListener('scroll', function() {\n        clearTimeout(scrollTimeout);\n        scrollTimeout = setTimeout(function() {\n          try {\n            var cardWidth = prCards[0].offsetWidth + 16;\n            var activeIndex = Math.round(prTrack.scrollLeft \/ (cardWidth * cardsPerView));\n            var dots = document.querySelectorAll('.cs-pr-dot');\n            for (var j = 0; j \u003c dots.length; j++) { dots[j].classList.toggle('active', j === activeIndex); }\n          } catch (err) {}\n        }, 100);\n      });\n    } catch (e) {\n      console.log('Review slider initialization skipped');\n    }\n  })();\n\u003c\/script\u003e","brand":"crochetschool.shop","offers":[{"title":"Default Title","offer_id":40736062144641,"sku":null,"price":8.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0604\/9451\/2257\/files\/ChatGPT_Image_17_mai_2026_21_42_38.webp?v=1779025403","url":"https:\/\/crochetschool.shop\/products\/vintage-style-crochet-bag-pattern","provider":"crochetschool.shop","version":"1.0","type":"link"}