{"product_id":"plaid-contrast-puff-sleeve-ruffle-top","title":"Plaid Contrast Puff Sleeve Ruffle Front Button Down Top | JM Looks","description":"\u003ch2\u003ePlaid Contrast Puff Sleeve Ruffle Top: Effortless Charm Meets Everyday Style\u003c\/h2\u003e\n\u003cp\u003eStep into the season with a top that carries a quiet, fashionable temperament. This plaid contrast blouse blends a sumptuous ruffle front with playful puff sleeves, creating a silhouette that feels both retro and refreshingly modern. Designed for women who appreciate superior detailing, this button down top elevates any summer wardrobe with effortless flair.\u003c\/p\u003e\n\u003ch3\u003eWhy You'll Love It\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCheckered plaid paneling for a deluxe, layered look\u003c\/li\u003e\n\u003cli\u003eRuffle front detail adds a touch of glorification to everyday dressing\u003c\/li\u003e\n\u003cli\u003ePuff short sleeves bring a fashionable, statement-making shape\u003c\/li\u003e\n\u003cli\u003eFitted crop top silhouette flatters every figure\u003c\/li\u003e\n\u003cli\u003eVersatile enough for office wear, casual outings, or evening plans\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eCrafted with a distinct design sense, this top carries a niche temperament that sets it apart from ordinary basics. It's the kind of piece that feels priceless in how it transforms an outfit instantly.\u003c\/p\u003e\n\u003cp\u003eAdd this plaid ruffle top to your cart today and give your wardrobe the deluxe refresh it deserves.\u003c\/p\u003e\n\u003cp\u003eTP-21\u003c\/p\u003e\n\u003c!-- Placeholder where the chart will render --\u003e\n\u003cdiv id=\"sizechart-placeholder\"\u003e\u003c\/div\u003e\n\u003c!-- UI container (hidden until rendered) --\u003e\n\u003cdiv style=\"max-width: 760px; margin: 14px auto 0; display: none;\" id=\"sizechart-ui\"\u003e\n\u003cdiv style=\"display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;\"\u003e\n\u003ch3 style=\"margin: 0; font-size: 18px;\"\u003eProduct Size\u003c\/h3\u003e\n\u003c!-- Toggle --\u003e\n\u003cdiv style=\"display: flex; align-items: center; gap: 8px; font-size: 14px; color: #333;\"\u003e\n\u003cspan style=\"font-weight: 600;\" id=\"unitLabel\"\u003ecm\u003c\/span\u003e \u003cbutton style=\"width: 44px; height: 24px; border-radius: 24px; border: 1px solid #ccc; background: #fff; position: relative; cursor: pointer; padding: 0;\" aria-label=\"Toggle units cm \/ inch\" aria-pressed=\"false\" id=\"unitToggle\"\u003e \u003cspan style=\"display: block; width: 20px; height: 20px; border-radius: 50%; background: #111; position: absolute; top: 1px; left: 1px; transition: left .18s;\" id=\"knob\"\u003e\u003c\/span\u003e \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"border: 1px solid #e6e6e6; border-radius: 10px; overflow: hidden;\"\u003e\n\u003ctable style=\"width: 100%; border-collapse: separate; border-spacing: 0; text-align: center; font-size: 15px;\" id=\"sizeTable\"\u003e\n\u003cthead\u003e\n\u003ctr style=\"background: #f5f5f5;\"\u003e\n\u003cth style=\"padding: 14px 12px; border-right: 1px solid #eee; font-weight: 600;\"\u003eSize\u003c\/th\u003e\n\u003cth style=\"padding: 14px 12px; border-right: 1px solid #eee; font-weight: 600;\"\u003eIN Size\u003c\/th\u003e\n\u003cth style=\"padding: 14px 12px; border-right: 1px solid #eee; font-weight: 600;\"\u003eBust\u003c\/th\u003e\n\u003cth style=\"padding: 14px 12px; font-weight: 600;\"\u003eTop Length\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody id=\"sizeTableBody\"\u003e\u003c!-- generated rows go here --\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp style=\"margin: 10px 0 0; color: #666; font-size: 13px;\"\u003eMeasurements default to \u003cstrong\u003ecm\u003c\/strong\u003e. Toggle to view values in inches.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- Script: normalize rows (accepts inches), build table, handle toggle --\u003e\u003c!-- USAGE NOTES:\n       - Now you can put measures in inches using 'bust_in' and 'top_length_in' keys\n         OR in cm using 'bust_cm' and 'top_length_cm'. The script will normalize.\n       - Example inch row: { size:'XS', inSize:'XS', bust_in: 37.8, top_length_in: 26.1 }\n       - If you want to update dynamically: call renderSizeTable('#placeholder', newRows)\n       - For Shopify: output your metafield JSON into the `rows` var (Liquid).\n  --\u003e","brand":"JM LOOKS","offers":[{"title":"Black \/ XS","offer_id":54006654501156,"sku":"TP-21-Black-XS","price":849.0,"currency_code":"INR","in_stock":true},{"title":"Black \/ S","offer_id":54006654533924,"sku":"TP-21-Black-S","price":849.0,"currency_code":"INR","in_stock":true},{"title":"Black \/ M","offer_id":54006654566692,"sku":"TP-21-Black-M","price":849.0,"currency_code":"INR","in_stock":true},{"title":"Black \/ L","offer_id":54006654599460,"sku":"TP-21-Black-L","price":849.0,"currency_code":"INR","in_stock":true},{"title":"Black \/ XL","offer_id":54006654632228,"sku":"TP-21-Black-XL","price":849.0,"currency_code":"INR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0829\/5156\/9700\/files\/1745733131b1d8e1515455d19684943a9ca66f522e_thumbnail_900x_3f107bc2-d68e-4255-83c7-3eecea1196f2.jpg?v=1779185425","url":"https:\/\/jmlooks.com\/products\/plaid-contrast-puff-sleeve-ruffle-top","provider":"JM LOOKS","version":"1.0","type":"link"}