{"title":"Final Stock","description":"\u003cp style=\"text-align: center;\"\u003eThe last of our retiring styles. These pieces won't be restocked, so once a size is gone, it's gone for good. Pick your size and see everything still available.\u003c\/p\u003e","products":[{"product_id":"bailie-beginner-palm-guards","title":"Bailie Beginner Palm Guards","description":"\u003cp\u003e\u003cstrong\u003eSoft leather palm protection for beginners, with no dowel.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eIdeal for first-time guard users, recreational and beginner gymnasts\u003c\/li\u003e\n\u003cli\u003eProtects palms from rips, and great against monkey bars too\u003c\/li\u003e\n\u003cli\u003eSoft leather palm piece with a velcro wrist strap\u003c\/li\u003e\n\u003cli\u003eSuitable for boys, girls and adults (not designed for elite training)\u003c\/li\u003e\n\u003cli\u003eSold as a pair\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePLEASE NOTE:\u003c\/strong\u003e Small 2\" towelling wristbands are required with these guards to prevent rubbing and blisters on the wrists.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e Measure the palm only, from the base of the palm (where the wrist creases) to the base of the middle finger. If you fall between two sizes, choose the smaller size (the leather palm piece stretches slightly with wear).\u003c\/p\u003e\n\u003ctable border=\"1\" cellpadding=\"4\" cellspacing=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSize\u003c\/th\u003e\n\u003cth\u003ecm\u003c\/th\u003e\n\u003cth\u003eInches\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eS\u003c\/td\u003e\n\u003ctd\u003e5 to 5.5cm\u003c\/td\u003e\n\u003ctd\u003e2\" to 2½\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eM\u003c\/td\u003e\n\u003ctd\u003e6 to 7cm\u003c\/td\u003e\n\u003ctd\u003e2½\" to 3\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eL\u003c\/td\u003e\n\u003ctd\u003e8 to 9cm\u003c\/td\u003e\n\u003ctd\u003e3\" to 3½\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXL\u003c\/td\u003e\n\u003ctd\u003e9 to 10cm\u003c\/td\u003e\n\u003ctd\u003e3½\" to 4\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cimg height=\"168\" width=\"128\" alt=\"Palm guards measurement points, gymnastics hand guards GMD\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/Palm_Guards_Measurement_large.jpg?v=1487291053\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e All guards should be checked with your coach before first use to make sure the size is right for you. Guards that have been named, worn or marked can't be exchanged or refunded. Incorrect use of guards may result in serious injury.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan style=\"text-decoration: underline;\"\u003eIMPORTANT WARNING:\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eReplace guards every year, or at the first sign of a tear.\u003c\/li\u003e\n\u003cli\u003eIf a tear appears, stop using the guards immediately and replace them.\u003c\/li\u003e\n\u003cli\u003eThe higher the skill level and training hours, the more often guards need replacing. This is for your safety on bars.\u003c\/li\u003e\n\u003cli\u003eNever use water on your guards. The leather will harden and can snap.\u003c\/li\u003e\n\u003cli\u003eIf finger holes are too tight, enlarge them slowly with sandpaper. Never use a knife or scissors, and don't make the holes too big, as the guards can slip off.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Bailie","offers":[{"title":"XS \/ Orange","offer_id":40412032958533,"sku":"GRD-BAILIEPG-ORG-XS","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"MED \/ Purple","offer_id":25901887120,"sku":"Bailie - PG M Purple","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/02-bailie-beginner-palm-guards_7aa876e0-de2b-4e43-887f-9bf9ca1489f2.jpg?v=1787192980"},{"product_id":"mint-jacket","title":"Mint Jacket","description":"\u003cp\u003e\u003cstrong\u003eThe Noosa Jacket is a snug-fitting performance jacket for warming up, training and everyday wear, from beach walks to bush walks.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e87% Nylon, 13% Spandex performance fabric, breathable and moisture-wicking\u003c\/li\u003e\n\u003cli\u003eFlat-locked seams to reduce chafing\u003c\/li\u003e\n\u003cli\u003eSmall phone pouch sewn into the left sleeve\u003c\/li\u003e\n\u003cli\u003eThumb pockets to keep hands warm, or roll the sleeves up to wear like a regular jacket\u003c\/li\u003e\n\u003cli\u003eGood balance of warmth without overheating, ideal for cool changes and sea breezes\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePlease note:\u003c\/strong\u003e The Noosa Jacket is a snug fit. If you prefer a looser style, size up.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable border=\"1\" cellpadding=\"4\" cellspacing=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSize\u003c\/th\u003e\n\u003cth\u003eHalf Chest (cm)\u003c\/th\u003e\n\u003cth\u003eCentre Back Length (cm)\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eChild 8\u003c\/td\u003e\n\u003ctd\u003e37\u003c\/td\u003e\n\u003ctd\u003e53½\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdult XS (Ladies 6 to 8)\u003c\/td\u003e\n\u003ctd\u003e82\u003c\/td\u003e\n\u003ctd\u003e62½\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdult S (Ladies 8 to 10)\u003c\/td\u003e\n\u003ctd\u003e86\u003c\/td\u003e\n\u003ctd\u003e64\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdult M (Ladies 12)\u003c\/td\u003e\n\u003ctd\u003e90\u003c\/td\u003e\n\u003ctd\u003e65½\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdult L (Ladies 14)\u003c\/td\u003e\n\u003ctd\u003e94\u003c\/td\u003e\n\u003ctd\u003e67\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdult XL (Ladies 16)\u003c\/td\u003e\n\u003ctd\u003e98\u003c\/td\u003e\n\u003ctd\u003e68\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","brand":"Mali \u0026 Sachi","offers":[{"title":"Child 8","offer_id":40530758139973,"sku":"MNS-NJM-C8","price":50.0,"currency_code":"AUD","in_stock":false},{"title":"Adult XS","offer_id":37617816144,"sku":"MNS-NJM-XS","price":50.0,"currency_code":"AUD","in_stock":true},{"title":"Adult S","offer_id":37617816208,"sku":"MNS-NJM-S","price":50.0,"currency_code":"AUD","in_stock":false},{"title":"Adult M","offer_id":37617816272,"sku":"MNS-NJM-M","price":50.0,"currency_code":"AUD","in_stock":true},{"title":"Adult L","offer_id":37617816336,"sku":"MNS-NJM-L","price":50.0,"currency_code":"AUD","in_stock":true},{"title":"Adult XL","offer_id":37617816400,"sku":"MNS-NJM-XL","price":50.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/noosa_mint_1.jpg?v=1571538628"},{"product_id":"mali-sachi-sandy-run-shorts","title":"Mali \u0026 Sachi Sandy Run Shorts","description":"\u003cp\u003e\u003cstrong\u003eSandy Run Shorts\u003c\/strong\u003e\u003cbr\u003eLightweight, quick-dry shorts with moisture-wicking fabric. Built-in undergarment, elastic drawcord, and both front hidden and back zip pockets for small items.\u003c\/p\u003e\n\u003cp\u003eModel wears A\/S (Ladies 8 to 10).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003ch2\u003eHOW TO SIZE:\u003c\/h2\u003e\n\u003ctable border=\"1\" cellpadding=\"4\" cellspacing=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eSIZE\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eC\/8\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eC\/10\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eC\/12\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/XS\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/S\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/M\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/L\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/XL\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\/2 Waistband (cm)\u003c\/td\u003e\n\u003ctd\u003e29.5\u003c\/td\u003e\n\u003ctd\u003e31.5\u003c\/td\u003e\n\u003ctd\u003e32.5\u003c\/td\u003e\n\u003ctd\u003e33.5\u003c\/td\u003e\n\u003ctd\u003e36\u003c\/td\u003e\n\u003ctd\u003e38.5\u003c\/td\u003e\n\u003ctd\u003e41\u003c\/td\u003e\n\u003ctd\u003e43.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLength (incl waistband)\u003c\/td\u003e\n\u003ctd\u003e19.5\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e20.5\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLength front rise (not incl waistband)\u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e \u003c\/td\u003e\n\u003ctd\u003e13.2\u003c\/td\u003e\n\u003ctd\u003e13.9\u003c\/td\u003e\n\u003ctd\u003e14.6\u003c\/td\u003e\n\u003ctd\u003e15.3\u003c\/td\u003e\n\u003ctd\u003e16\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","brand":"Mali \u0026 Sachi","offers":[{"title":"Adult MED","offer_id":37621063696,"sku":"MNS-SRS-M","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"Adult XL","offer_id":37621063888,"sku":"MNS-SRS-XL","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/Sandy_run_1.jpg?v=1571538628"},{"product_id":"cylinder-singlet-ebony-sale","title":"Cylinder Singlet- Ebony","description":"\u003cp\u003e\u003cstrong\u003eCylinder Singlet, Black\u003c\/strong\u003e\u003cbr\u003eA lightweight singlet with mesh panel detailing for breathability, cropped at the front with a longer back, perfect for layering over your favourite crop top.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLightweight fabric with mesh panel detailing\u003c\/li\u003e\n\u003cli\u003eCropped front, longer back hemline\u003c\/li\u003e\n\u003cli\u003eAlso available in black and white\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eModel wears Women’s size 10 (Small).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"Mali \u0026 Sachi","offers":[{"title":"Ladies XS \/ Black","offer_id":37629092496,"sku":"MNS-CSE-XS","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies S \/ Black","offer_id":37629092624,"sku":"MNS-CSE-S","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies M \/ Black","offer_id":37629092752,"sku":"MNS-CSE-M","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies L \/ Black","offer_id":37629092880,"sku":"MNS-CSE-L","price":15.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/ebony_1.jpg?v=1575093588"},{"product_id":"cylinder-singlet-sale","title":"Cylinder Singlet-  White- SALE","description":"\u003cp\u003e\u003cstrong\u003eCylinder Singlet, White\u003c\/strong\u003e\u003cbr\u003eA lightweight singlet with mesh panel detailing for breathability, cropped at the front with a longer back, perfect for layering over your favourite crop top.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLightweight fabric with mesh panel detailing\u003c\/li\u003e\n\u003cli\u003eCropped front, longer back hemline\u003c\/li\u003e\n\u003cli\u003eAlso available in black and white\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eModel wears Women’s size 10 (Small).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"Mali \u0026 Sachi","offers":[{"title":"Ladies XS \/ White","offer_id":37629333840,"sku":"MNS-CSW-XS","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies S \/ White","offer_id":37629333904,"sku":"MNS-CSW-S","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies M \/ White","offer_id":37629333968,"sku":"MNS-CSW-M","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies L \/ White","offer_id":37629334032,"sku":"MNS-CSW-L","price":15.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/cylinder_1.jpg?v=1571538628"},{"product_id":"mali-sachi-airlie-crop","title":"Mali \u0026 Sachi Airlie Crop","description":"\u003cp\u003eThis gem of a beach is located on Stradbroke Island, and well known to many! Although only a 30 minute ferry ride from Redland Bay, you are definitely on island time here!\u003c\/p\u003e\n\u003ctable width=\"100%\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eSIZE\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e A\/XS\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/S\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/M\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/L\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eA\/XL\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCentre Back Length (cm)\u003c\/td\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003ctd\u003e15.5\u003c\/td\u003e\n\u003ctd\u003e16\u003c\/td\u003e\n\u003ctd\u003e16.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e 1\/2 Chest Measurement (cm)\u003c\/td\u003e\n\u003ctd\u003e35.5\u003c\/td\u003e\n\u003ctd\u003e37\u003c\/td\u003e\n\u003ctd\u003e38.5\u003c\/td\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003ctd\u003e41.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFiner details:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e The cylinder singlet has been crafted for the hotter days, with mesh panels in between each fabric panel. This fabric gives a slightly sheer appearance, which pairs great with any of your favourite crop tops! This singlet has been designed with a slightly cropped front and a longer back. White not your colour?.. the cylinder singlet comes in black also!\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eModel Stats:\u003c\/strong\u003e Model is a size 10 women, and wears size S (small).\u003c\/p\u003e","brand":"Mali \u0026 Sachi","offers":[{"title":"Ladies XS \/ Grey","offer_id":38183246928,"sku":"MNS-AC-XS","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies S \/ Grey","offer_id":38183246992,"sku":"MNS-AC-S","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies M \/ Grey","offer_id":38183247056,"sku":"MNS-AC-M","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies L \/ Grey","offer_id":38183247120,"sku":"MNS-AC-L","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"Ladies XL \/ Grey","offer_id":43178236969029,"sku":null,"price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/airlie_crop_1.jpg?v=1571538628"},{"product_id":"berry-fuchsia-mystique-shorts","title":"Berry Fuchsia Mystique Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eBerry Fuchsia Mystique Shorts\u003c\/strong\u003e\u003cbr\u003eBright pink mystique shorts with a thin, comfy waistband. Simple style, perfect for training.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"ALA (c16) \/ Pink","offer_id":8694529622133,"sku":"GMDBL06","price":23.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/Berry_Shorts_1.PNG?v=1571538634"},{"product_id":"car-window-mag-tee","title":"Car\/Window  MAG Tee on Hanger","description":"\u003cp\u003eWe have created the very first awesome mini MAG outfit on a hanger, that can be suctioned onto the inside of your car as a display. Alternatively, you can stick these to a mirror for decoration, or even your gym locker!\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e14cm x 13cm\u003c\/li\u003e\n\u003cli\u003eCan be affixed to the back of your car window (inside), or a mirror, or gym locker!\u003c\/li\u003e\n\u003cli\u003eMAG Tee shirt\/shorts design\u003c\/li\u003e\n\u003cli\u003eGreat Christmas stocking stuffer, or team gift!\u003c\/li\u003e\n\u003cli\u003eExclusively designed by GMD Activewear, you won't find these anywhere else!\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Default Title","offer_id":12485070618741,"sku":"GIFT-HANGER-CARWINDOWMAGTEE-OS","price":8.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/MAG_20window_20outfit_20GMD_201_66782ac2-66c8-48e9-bc28-1a7620ab694f.jpg?v=1755230902"},{"product_id":"royal-mystique-leotard","title":"Royal Mystique Tank Leotard (round neck)","description":"\u003cul\u003e\n\u003cli\u003eRoyal blue mystique short sleeve leotard\u003c\/li\u003e\n\u003cli\u003eSimple, comfortable \u0026amp; functional round neck design \u003c\/li\u003e\n\u003cli\u003eElasticated neck, arm \u0026amp; legs\u003c\/li\u003e\n\u003cli\u003eFully front lined\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Girls_Leotard_Size_Chart_2026-_Diagram.jpg?v=1774597011\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e\n\n\u003cp\u003e\u003cstrong\u003e FABRIC WARNINGS:\u003c\/strong\u003e All of our leotards are tested in the gym prior to release for durability. Fabrics can encounter issues that are unavoidable with wear. Please pay attention to the washing instructions listed on the garment to keep it looking as new as possible, for as long as possible! Sublimation fabrics can pill when coming into contact with abrasive surfaces or Velcro, which is unfortunately unavoidable due to the nature of the fabric. The backside \u0026amp; bottom half of the leotard tends to pill easier than other areas. Mystique or foiled fabrics can dull, or discolour with repeated wash \u0026amp; wear. Areas incurring friction can show some loss of foiling or colour discolouration. \u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Blue","offer_id":19549587275845,"sku":"L-MYSTR-ROYL-INT","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"CMED (c6) \/ Blue","offer_id":19549587308613,"sku":"L-MYSTR-ROYL-CMED","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"CLA (c8) \/ Blue","offer_id":19549587341381,"sku":"L-MYSTR-ROYL-CLA","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"AXS (c10) \/ Blue","offer_id":19549587374149,"sku":"L-MYSTR-ROYL-AXS","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Blue","offer_id":19549587406917,"sku":"L-MYSTR-ROYL-ASML","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"AMED (c14) \/ Blue","offer_id":19549587439685,"sku":"L-MYSTR-ROYL-AMED","price":58.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Blue","offer_id":19549587472453,"sku":"L-MYSTR-ROYL-ALA","price":58.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-b6-053.jpg?v=1788395608"},{"product_id":"empire-leotard","title":"Empire Leotard Black","description":"\u003cp\u003e\u003cstrong\u003eEmpire Leotard\u003c\/strong\u003e in black is reminiscent of the architecture of the world's most beautiful cathedrals, mixing strong lines with delicate sparkle for a one-of-a-kind design.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFully lined at the front for comfort and discretion\u003c\/li\u003e\n\u003cli\u003eEmbellished with hundreds of high-quality AB crystals\u003c\/li\u003e\n\u003cli\u003eDesigned in collaboration with Australian Commonwealth Games gymnast Chloe Sims\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\u003cp\u003eModel wears size Adult Medium. Part of our Lustre Gymnastics Collection.\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cstrong\u003eFabric care:\u003c\/strong\u003e All our leotards are tested in the gym before release for durability. Please follow the washing instructions on the garment label to keep it looking its best for as long as possible. Sublimation fabrics can pill where they meet abrasive surfaces or velcro, and mystique or foiled fabrics may dull or lose some colour with repeated wear and wash, particularly in areas of friction.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Black","offer_id":29381197004869,"sku":"L-EMP-BLK-INT","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"CMED (c6) \/ Black","offer_id":29381197037637,"sku":"L-EMP-BLK-CMED","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"CLA (c8) \/ Black","offer_id":29381197070405,"sku":"L-EMP-BLK-CLA","price":55.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-4078832517189.jpg?v=1788316756"},{"product_id":"red-mystique-leotard","title":"Red Mystique Tank Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eFiery Red Mystique Leotard\u003c\/strong\u003e\u003cbr\u003eShiny red mystique short-sleeve tank, bold, comfy and perfect for gymnastics or dance training. Fully front lined for comfort.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eModel pictured wearing size AMED (C14).\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"ALA (c16) \/ Red","offer_id":31117612875845,"sku":"L-MYSTR-RED-ALA","price":40.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-6185801613381.jpg?v=1788316688"},{"product_id":"black-velour-bike-pants","title":"Black Velour Shorts","description":"\u003cul\u003e\n\u003cli\u003eBlack velvet bike pants\u003c\/li\u003e\n\u003cli\u003eBasic fitted style\u003c\/li\u003e\n\u003cli\u003ePerfect for dance, gymnastics, trampoline, acro, rhythmic, aerobics etc\u003c\/li\u003e\n\u003cli\u003eThin waistband for comfort\u003c\/li\u003e\n\u003cli\u003eGMD sizing is different to other brands. Please check the size chart in the product photos\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Black","offer_id":31820139692101,"sku":"BVBP-6","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Black","offer_id":31820139724869,"sku":"BVBP-7","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_5305-2_1200x1200_720d8628-d61d-46fa-8b17-5a8fa8235343.jpg?v=1788845820"},{"product_id":"tie-dye-crop-top","title":"Tie Dye Crop Top- SALE","description":"\u003cp\u003e\u003cstrong\u003eTie-Dye Crop Top\u003c\/strong\u003e\u003cbr\u003eMulti-colour tie-dye design with an elastic hem, straight back (bra-strap friendly) and front lining. Sizes 12 to 16 include removable cups.\u003c\/p\u003e\n\u003cp\u003ePart of our Throwback 20 collection. Model wears Child 10 (true to size).\u003c\/p\u003e\n\u003cp\u003eClearance: final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/gmd_staples_crop_top_size_chart_large.PNG?v=1546995201\" alt=\"GMD Activewear staples range crop top size chart\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 16 \/ Multi-Colour","offer_id":31964020375621,"sku":"C-TIEDYE-TIEDYE-C16","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_5312_1200x1200_c0f5340b-8591-479e-8798-f67e25a7110d.jpg?v=1788846137"},{"product_id":"hot-pink-lycra-shorts","title":"Hot Pink Lycra Shorts","description":"\u003cul\u003e\n\u003cli\u003eStunning hot pink lycra shorts\u003c\/li\u003e\n\u003cli\u003eBasic style, easy to match back with any crop top\u003c\/li\u003e\n\u003cli\u003eElasticated waistband for a comfortable, secure fit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBloom Long Sleeve Crop Top\u003c\/li\u003e\n\u003cli\u003eHot Pink Lycra Crop Top\u003c\/li\u003e\n\u003cli\u003eHot Pink Lycra Scrunchie\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLycraGymShortsSizeChart2023_2048x2048.jpg?v=1693878145\" alt=\"GMD girls lycra gymnastics shorts size chart\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"ALA (c16) \/ Pink","offer_id":32050430672965,"sku":"S-LYCS-PNK-ALA","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/BloomLongSleeveCropTop9_1200x1200_5ab23311-6e0a-4312-b6d4-178d00a4b9d4.jpg?v=1788846153"},{"product_id":"hot-pink-lycra-crop-top","title":"Hot Pink Lycra Crop Top","description":"\u003cul\u003e\n\u003cli\u003eStunning rich hot pink lycra crop top\u003c\/li\u003e\n\u003cli\u003eBasic style, to match back with any existing shorts\u003c\/li\u003e\n\u003cli\u003eFull front lining\u003c\/li\u003e\n\u003cli\u003eSlight racer back design \u003c\/li\u003e\n\u003cli\u003eElasticated waistband\u003c\/li\u003e\n\u003cli\u003eSlightly longer style crop\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eModel is wearing size Adult Large (c16) crop top\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_WAG_Leotard_Size_Chart_Without_Diagram_cea50363-e816-4970-bc07-12d21cfcd092.png?v=1727147578\"\u003e\u003c\/p\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca title=\"Hot Pink Lycra Hair Scrunchie by GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/products\/hot-pink-lycra-scrunchie\"\u003eHot pink lycra hair scrunchie\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/hot-pink-lycra-shorts\" title=\"Hot Pink Lycra Gymnastics Shorts\"\u003eHot Pink Lycra Shorts\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Pink","offer_id":32050430771269,"sku":"C-LYCC-HOTPNK-INT","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"CMED (c6) \/ Pink","offer_id":32050430804037,"sku":"C-LYCC-HOTPNK-CMED","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"CLA (c8) \/ Pink","offer_id":32050430836805,"sku":"C-LYCC-HOTPNK-CLA","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"AXS (c10) \/ Pink","offer_id":32050430869573,"sku":"C-LYCC-HOTPNK-AXS","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Pink","offer_id":32050430902341,"sku":"C-LYCC-HOTPNK-ASML","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Pink","offer_id":32050430935109,"sku":"C-LYCC-HOTPNK-AMED","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Pink","offer_id":32050430967877,"sku":"C-LYCC-HOTPNK-ALA","price":30.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/038A0984-WEBSITE-2_1200x1200_d3ad39de-3d96-41b2-a7f4-af5d86b796aa.jpg?v=1788846167"},{"product_id":"lilac-gymnast-crystal-shorts","title":"Lilac Gymnast Crystal Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eLilac Gymnast Shorts\u003c\/strong\u003e\u003cbr\u003eLilac lycra shorts with a crystal GYMNAST detail on the leg. Basic style with an elastic waistband, pairs with any crop top.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"Girls gymnastics shorts size chart, GMD Activewear Australia\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLycraGymShortsSizeChart2023_2048x2048.jpg?v=1693878145\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"ASML (c12) \/ Purple","offer_id":39395488202821,"sku":"S-CRYST-LIL-ASML","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Purple","offer_id":39395488235589,"sku":"S-CRYST-LIL-AMED","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Purple","offer_id":39395488268357,"sku":"S-CRYST-LIL-ALA","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/038A4043_1200x1200_ba6ad55c-ef30-4257-8ee4-642923f47502.jpg?v=1788846517"},{"product_id":"steel-gymnast-crystal-shorts","title":"Steel Crystal Gymnast Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eSteel Crystal Gymnast Shorts\u003c\/strong\u003e\u003cbr\u003eSteel grey lycra shorts with a crystal \"GYMNAST\" detail on the leg. Simple style with an elastic waistband, pairs with any crop.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eClearance: final sizes, final sale, no restock\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLycraGymShortsSizeChart2023_2048x2048.jpg?v=1693878145\" alt=\"Girls Gymnastics Shorts Size Chart. GMD Activewear Australia\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Grey","offer_id":45229133824069,"sku":"S-CRYST-GRY-INT","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Grey","offer_id":39395491053637,"sku":"S-CRYST-GRY-ASML","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Grey","offer_id":39395491086405,"sku":"S-CRYST-GRY-AMED","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Grey","offer_id":39395491119173,"sku":"S-CRYST-GRY-ALA","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Spooky_094_1200x1200_f0557628-49ef-46a2-a95c-3dc18e51c6b2.jpg?v=1788846518"},{"product_id":"steel-stardust-leotard","title":"Steel Stardust Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eSteel Stardust Leotard\u003c\/strong\u003e\u003cbr\u003eSteel grey lycra with AB crystal stardust design, strap back, and white mesh panel. Fully nude lined for comfort.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003e✨ Pairs with Steel Crystal Gymnast Shorts.\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg style=\"float: none;\" alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Grey","offer_id":39407679111237,"sku":"L-STDUST-GRY-INT","price":40.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/038A4124_1200x1200_09d7c5c9-2d3d-464a-b65d-363a89dce490.jpg?v=1788846526"},{"product_id":"rainbow-carnival-leotard","title":"Rainbow Carnival Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eRainbow Carnival Leotard\u003c\/strong\u003e\u003cbr\u003eNeon rainbow tones with a navy mystique lower, multicolour rhinestones and an elegant V-neck with a unique cut arm line. Fully lined for comfort, perfect for both training and performances.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eModel wears Adult LGE (C16).\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"CSML (c3\/4) \/ Multi-Colour","offer_id":39788591022149,"sku":"L-RNBWCRN-RNBWCRN-CSML","price":45.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9909_1200x1200_fc8a8ab4-81dd-432b-9633-35b80d027f50.jpg?v=1788846788"},{"product_id":"wild-leotard","title":"Wild Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eWild Leotard\u003c\/strong\u003e\u003cbr\u003eFun printed lycra with round neck, elasticated arms and neck, and full front lining. Tank style with good coverage for training comfort.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e\n\n\u003cp\u003eOur leotard estimates go off the standard lycra firm fit, however individual opinions may vary as to fit and comfort. If you would like extra room for growth, please choose a size up.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFabric care:\u003c\/strong\u003e All of our leotards are tested in the gym prior to release for durability. Fabrics can encounter issues that are unavoidable with wear. Please follow the washing instructions on the garment to keep it looking its best for as long as possible. Sublimation fabrics can pill when they come into contact with abrasive surfaces or velcro, which is unfortunately unavoidable due to the nature of the fabric. The back and bottom half of the leotard tend to pill more easily than other areas. Mystique or foiled fabrics can dull or discolour with repeated wash and wear, and areas with more friction can show some loss of foiling or colour.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Pink","offer_id":39578821197893,"sku":"L-WILD-PNK-AMED","price":40.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Pink","offer_id":39578821230661,"sku":"L-WILD-PNK-ALA","price":40.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD-JUNGLE-267A1802_1200x1200_1d87f492-b75a-4d3d-bc4f-a78e1d3ae01a.jpg?v=1788847332"},{"product_id":"island-time-crop-top","title":"Island Time Longline Crop Top- SALE","description":"\u003cp\u003e\u003cstrong\u003eIsland Time Crop Top\u003c\/strong\u003e\u003cbr\u003eMint seafoam crop in Active Edge Fabric. Longer style with thin straps, a built-in bra, and removable cups (sizes C12 to C16). True to size.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eMatches with Island Time Shorts.\u003cbr\u003eModel wears Child 16.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsCropTopSizeChartActiveEdgeyDynamic_1024x1024.jpg?v=1666157311\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 12 \/ Green","offer_id":44117551546437,"sku":"LC-ISLANDTIME-GRN-C12","price":27.0,"currency_code":"AUD","in_stock":false},{"title":"Child 14 \/ Green","offer_id":39588936941637,"sku":"LC-ISLANDTIME-GRN-C14","price":27.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Green","offer_id":39588936974405,"sku":"LC-ISLANDTIME-GRN-C16","price":27.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9834_1200x1200_66ab0cd6-434d-4538-9c1d-6773cb8d0ec5.jpg?v=1788847352"},{"product_id":"island-time-shorts","title":"Island Time Midrise Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eIsland Time Shorts\u003c\/strong\u003e\u003cbr\u003eMinty seafoam bike shorts in our Active Edge fabric. Mid-rise waistband, standard length, and flatlock stitching for comfort.\u003c\/p\u003e\n\u003cp\u003eWe recommend sizing down one size.\u003cbr\u003eMatches with our Island Time Crop Top.\u003cbr\u003eModel wears Child 16.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDActiveEdgeyDynamicfabricShortsSizeChart_1024x1024.jpg?v=1666158230\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 12 \/ Green","offer_id":39588938252357,"sku":"S-MIDR-GRN-ASML","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"Child 14 \/ Green","offer_id":39588938285125,"sku":"S-MIDR-GRN-AMED","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"Child 16 \/ Green","offer_id":39588938317893,"sku":"S-MIDR-GRN-ALA","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9837_1200x1200_b84c3cdd-3524-44e2-b89a-7aa74e9aa348.jpg?v=1788847353"},{"product_id":"ugly-christmas-crop-top","title":"Christmas Crop Top- SALE","description":"\u003cdiv style=\"text-align: left;\"\u003e\n\u003cp\u003e\u003cstrong\u003eUgly Christmas Crop\u003c\/strong\u003e\u003cbr\u003eFestive sublimation bauble print in Dynamic Fabric with criss-cross straps, pink shoulder bows and front lining. Sizes C12 to C14 include removable cups.\u003c\/p\u003e\n\u003cp\u003eMatches with Luxe Teal or Jet Shorts.\u003cbr\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsCropTopSizeChartActiveEdgeyDynamic_1024x1024.jpg?v=1666157311\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14","offer_id":39597760544837,"sku":"C-XMASCROP-C14","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDchristmas-individuals_038A2866_1200x1200_41dc2136-5642-4e3b-b2d1-affc6d4b6f12.jpg?v=1788848164"},{"product_id":"reef-crop-top","title":"Reef Crop Top- SALE","description":"\u003cp\u003e\u003cstrong\u003eReef Crop Top\u003c\/strong\u003e\u003cbr\u003eExclusive hand-drawn Great Barrier Reef print, designed in-house by the GMD team. Made in our Dynamic Fabric with a round neck, cross-over back and full front lining.\u003c\/p\u003e\n\u003cp\u003eClearance: final sizes, final sale, no restock. Matches with the Reef Shorts.\u003c\/p\u003e\n\u003cp\u003eModel wears Child 8.\u003c\/p\u003e\n\u003ch2\u003eHOW TO SIZE:\u003c\/h2\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsCropTopSizeChartActiveEdgeyDynamic_1024x1024.jpg?v=1666157311\" alt=\"\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14 \/ Multi-Colour","offer_id":39602249957445,"sku":"C-REEF-REEF-C14","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Multi-Colour","offer_id":39602249990213,"sku":"C-REEF-REEF-C16","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9790_1200x1200_3ef6cae7-5678-4977-b28e-49346e4a5a5b.jpg?v=1788848165"},{"product_id":"reef-shorts","title":"Reef Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eReef Shorts\u003c\/strong\u003e\u003cbr\u003eExclusive hand-drawn Great Barrier Reef print by GMD model Shauni. Made in our Dynamic Fabric with a mid-rise waistband and flatlock stitching for comfort.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe recommend sizing down one size\u003c\/li\u003e\n\u003cli\u003eClearance: final sizes, final sale, no restock\u003c\/li\u003e\n\u003cli\u003eMatches with the Reef Crop Top\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cem\u003eModel wears Child 6.\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDActiveEdgeyDynamicfabricShortsSizeChart_1024x1024.jpg?v=1666158230\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14","offer_id":39602252120133,"sku":"S-REEF-REEF-AMED","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16","offer_id":39602252152901,"sku":"S-REEF-REEF-ALA","price":25.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9787_1200x1200_482f74ea-e865-4f7a-9ae0-a2bae65b879f.jpg?v=1788848183"},{"product_id":"coral-crop-top","title":"Coral Crop Top- SALE","description":"\u003cp\u003e\u003cstrong\u003eCoral Crop Top\u003c\/strong\u003e\u003cbr\u003eFun 3-tone design in Dynamic Fabric with bright yellow, pink and coral tones. Features a criss-cross back, flatlock stitching and front lining. Sizes 12 to 16 include removable cups.\u003c\/p\u003e\n\u003cp\u003eMatches with Coral Shorts or black basics.\u003cbr\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eModel wears Child 8 crop (with Child 6 shorts).\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsCropTopSizeChartActiveEdgeyDynamic_1024x1024.jpg?v=1666157311\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14 \/ Multi-Colour","offer_id":39602280038469,"sku":"C-CORAL-CORAL-C14","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Multi-Colour","offer_id":39602280071237,"sku":"C-CORAL-CORAL-C16","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_0010_1200x1200_c23e211f-e492-4708-93c4-609b9527aab8.jpg?v=1788848184"},{"product_id":"coral-shorts","title":"Coral Shorts- SALE","description":"\u003cp\u003e\u003cstrong\u003eCoral Shorts\u003c\/strong\u003e\u003cbr\u003eBright 3-tone design in Dynamic Fabric with yellow, pink and coral tones. Mid-rise waistband with flatlock stitching for comfort.\u003c\/p\u003e\n\u003cp\u003e✨ Matches with the Coral Crop Top or any black crop.\u003cbr\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eModel wears Child 6 shorts (with Child 8 crop).\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDActiveEdgeyDynamicfabricShortsSizeChart_1024x1024.jpg?v=1666158230\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 12 \/ Multi-Colour","offer_id":39602281250885,"sku":"S-CORAL-CORAL-ASML","price":20.0,"currency_code":"AUD","in_stock":false},{"title":"Child 14 \/ Multi-Colour","offer_id":39602281283653,"sku":"S-CORAL-CORAL-AMED","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Multi-Colour","offer_id":39602281316421,"sku":"S-CORAL-CORAL-ALA","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9953_1200x1200_cdd24c57-37b0-4485-a4da-afa05228034e.jpg?v=1788848185"},{"product_id":"reef-leotard","title":"Reef 3\/4 Sleeve Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eReef Leotard\u003c\/strong\u003e\u003cbr\u003eHand-drawn by GMD model and designer Shauni, this leotard captures the beauty of the Great Barrier Reef with a vibrant under-the-sea print.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e\n\u003cul\u003e\n\u003cli\u003eHand-drawn and designed leotard print\u003c\/li\u003e\n\u003cli\u003eLycra leotard\u003c\/li\u003e\n\u003cli\u003eLycra twist back design\u003c\/li\u003e\n\u003cli\u003eComfortable round neck\u003c\/li\u003e\n\u003cli\u003eFull nude front lining\u003c\/li\u003e\n\u003cli\u003e3\/4 sleeve leotard\u003c\/li\u003e\n\u003cli\u003eModel is wearing size Adult LGE (C16)\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Multi-Colour","offer_id":39602306089029,"sku":"L-REEF-REEF-AMED","price":45.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Multi-Colour","offer_id":39602306121797,"sku":"L-REEF-REEF-ALA","price":45.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_9971_1200x1200_d3f225e3-22d3-47d8-ac74-e41d25d50e97.jpg?v=1788848185"},{"product_id":"mermaid-tails-leotard","title":"Mermaid Tails Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eMermaid Tails Leotard\u003c\/strong\u003e\u003cbr\u003eHot pink lycra with an ombre blue to silver mermaid tail design, crystal accents, V-neck and strappy V-back. Kinder-gym friendly with press-stud closure. Fully nude lined for comfort.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg style=\"float: none;\" alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/div\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Pink","offer_id":39656031486021,"sku":"L-MERTAIL-PNK-AMED","price":40.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Pink","offer_id":39656031518789,"sku":"L-MERTAIL-PNK-ALA","price":40.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_0054_websize_1200x1200_fe3c7f42-e35e-4b6f-82ba-d5ea8b2abd78.jpg?v=1788848464"},{"product_id":"tallulah-leotard","title":"Tallulah Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eTallulah Leotard\u003c\/strong\u003e\u003cbr\u003eNeon pink, yellow and sky blue lycra with crystal detailing. Round neck and striking cross-wrapped back straps. Fully nude lined for comfort.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Blue","offer_id":39656034304069,"sku":"L-TALL-BLU-AMED","price":40.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/KC_0029_websize_1200x1200_a4a14aac-48c6-404b-887a-d3f15e1227a8.jpg?v=1788848475"},{"product_id":"blush-mystique-shorts","title":"Blush Mystique Shorts - SALE","description":"\u003cp\u003eGorgeous shiny Blush mystique gymnastics shorts, to match perfectly with our Blush Empire Leotard \u0026amp; scrunchie. \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMystique fabric (ultra shine)\u003c\/li\u003e\n\u003cli\u003eGives off multiple colours in different lighting (aqua\/mint\/lilac)\u003c\/li\u003e\n\u003cli\u003eElasticated waistband\u003c\/li\u003e\n\u003cli\u003eBasic style, perfect for training \u003c\/li\u003e\n\u003cli\u003eMatch back with our Empire Blush leotard or Highline Jet Crop for a full outfit\u003c\/li\u003e\n\u003cli\u003ePictured wearing highline jet crop \u0026amp; blush mystique shorts\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"ASML (c12) \/ Pink","offer_id":39743232802885,"sku":"S-MYST-BLSH-ASML","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"AMED (c14) \/ Pink","offer_id":39743232835653,"sku":"S-MYST-BLSH-AMED","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Pink","offer_id":39743232868421,"sku":"S-MYST-BLSH-ALA","price":20.0,"currency_code":"AUD","in_stock":true},{"title":"AXS (c10) \/ Pink","offer_id":45553062150213,"sku":"S-MYST-BLSH-AXS","price":20.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD-JUNGLE-267A2204_1200x1200_aeae17bb-5e43-4039-a4fc-fa9a9eeed546.jpg?v=1788848717"},{"product_id":"train-hard-or-go-home-tee","title":"Train Hard Or Go Home Tee - SALE","description":"\u003cp\u003e\u003cstrong\u003eThe Train Hard Or Go Home Tee, a bold sublimation slogan tee for training days.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSublimation print with bold slogan\u003c\/li\u003e\n\u003cli\u003eBreathable micromesh fabric, quick dry\u003c\/li\u003e\n\u003cli\u003eRound neck, casual unisex fit\u003c\/li\u003e\n\u003cli\u003eAvailable in Child 6 to 16 and Adult Small\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClearance line: final sizes, final sale, no restock.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ch1\u003eHOW TO SIZE:\u003c\/h1\u003e\n\u003ctable border=\"1\" cellpadding=\"4\" cellspacing=\"0\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 6\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 8\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 10\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 12\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 14\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eChild 16\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eAdult Small\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e1\/2 Chest (cm)\u003c\/td\u003e\n\u003ctd\u003e37\u003c\/td\u003e\n\u003ctd\u003e39\u003c\/td\u003e\n\u003ctd\u003e41\u003c\/td\u003e\n\u003ctd\u003e43\u003c\/td\u003e\n\u003ctd\u003e45\u003c\/td\u003e\n\u003ctd\u003e48\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCentre Back (cm)\u003c\/td\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e54\u003c\/td\u003e\n\u003ctd\u003e58\u003c\/td\u003e\n\u003ctd\u003e62\u003c\/td\u003e\n\u003ctd\u003e65\u003c\/td\u003e\n\u003ctd\u003e67\u003c\/td\u003e\n\u003ctd\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 8","offer_id":39744876576837,"sku":"TEE-TRAINHARD-C8","price":15.0,"currency_code":"AUD","in_stock":false},{"title":"Child 16","offer_id":39744876707909,"sku":"TEE-TRAINHARD-C16","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Adult S","offer_id":39744876740677,"sku":"TEE-TRAINHARD-AXS","price":15.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/TrainHardB.png?v=1725595062"},{"product_id":"burgundy-racer-back-singlet","title":"Luxe Racer Back Singlet- Maroon - SALE","description":"\u003cp\u003e\u003cstrong\u003eLuxe Racer Back Singlet, Maroon\u003c\/strong\u003e\u003cbr\u003eTrain in comfort and style with our Luxe Racer Back Singlet, made from our Supreme Performance Fabric, a premium nylon and spandex blend that is soft, supportive and sweat wicking for all day comfort.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupreme Performance Fabric\u003c\/li\u003e\n\u003cli\u003eSweat wicking and quick dry\u003c\/li\u003e\n\u003cli\u003eRacer back design for easy movement\u003c\/li\u003e\n\u003cli\u003eFlatlock stitching\u003c\/li\u003e\n\u003cli\u003ePairs perfectly with our Luxe Maroon Shorts\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eSIZE CHART:\u003c\/h1\u003e\n\u003cp\u003eWe recommend selecting your regular size.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSizing note:\u003c\/strong\u003e Child 12 fits approximately Ladies 8, Child 14 fits approximately Ladies 10, and Child 16 fits approximately Ladies 12.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"GMD Activewear Australia Luxe Kids Gymnastics Singlet\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDLuxeRacerBackSingletSizeChart_1024x1024.jpg?v=1666156007\"\u003e\u003c\/p\u003e\n\u003ch1\u003eMATCH WITH:\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003eLuxe Maroon Shorts\u003c\/li\u003e\n\u003cli\u003eLuxe Jet Shorts\u003c\/li\u003e\n\u003cli\u003eLuxe Jet Highline Crop Top\u003c\/li\u003e\n\u003cli\u003eBlack Mystique Shorts (pictured)\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 6","offer_id":42003482181701,"sku":"SING-RACERBACK-MAROON-C6","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"Child 8","offer_id":39897193250885,"sku":"SING-RACERBACK-MAROON-C8","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"Child 10","offer_id":39897193283653,"sku":"SING-RACERBACK-MAROON-C10","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"Child 12","offer_id":39897193316421,"sku":"SING-RACERBACK-MAROON-C12","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"Child 14","offer_id":39897193349189,"sku":"SING-RACERBACK-MAROON-C14","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"Child 16","offer_id":40296961343557,"sku":"SING-RACERBACK-MAROON-C16","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 14","offer_id":42003632226373,"sku":"SING-RACERBACK-MAROON-LD14","price":30.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD-JUNGLE-267A2041_1200x1200_2966cb87-12fe-47dc-9536-e150597f2df6.jpg?v=1788848753"},{"product_id":"luscious-lilac-shorts","title":"Luscious Lilac Shorts","description":"\u003cp\u003e\u003cstrong\u003eLuscious Lilac Shorts\u003c\/strong\u003e\u003cbr\u003eLilac Active Edge fabric shorts with a mid-rise waistband and flatlock stitching for comfort.\u003c\/p\u003e\n\u003cp\u003eWe recommend sizing down one size.\u003cbr\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eMatches with our Luscious Lilac Crop Top.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"GMD Active Edge fabric shorts size chart\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDActiveEdgeyDynamicfabricShortsSizeChart_1024x1024.jpg?v=1666158230\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14 \/ Purple","offer_id":40059376762949,"sku":"S-LUSCIOUS-LIL-AMED","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"Child 16 \/ Purple","offer_id":40059376795717,"sku":"S-LUSCIOUS-LIL-ALA","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/LusciousLilac5_1200x1200_9420c93a-799c-4738-af29-70c5f4773780.jpg?v=1788848754"},{"product_id":"bloom-long-sleeve-crop","title":"Bloom Long Sleeve Crop","description":"\u003cp style=\"text-align: center;\"\u003eWelcome the cooler months in with our beautiful Bloom Long Sleeve Crop. \u003c\/p\u003e\n\u003cp style=\"text-align: center;\"\u003eThis crop is all business in the front, with long sophisticated lines and party in the back with a stunning curved cut out. All while keeping you warm during the cooler months.\u003c\/p\u003e\n\u003cp style=\"text-align: center;\"\u003e\u003cstrong\u003eThe best part,\u003c\/strong\u003e is that you can layer this over the top of our Bloom Leotard, for a winter gym outfit that will keep you warm, look cute \u0026amp; you'll be able to take a layer off at anytime when you warm up!\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDesigned as a versatile piece that can be worn over the top of a leotard for a \"long sleeve leotard\" look, or on its own\u003c\/li\u003e\n\u003cli\u003eWear with your bloom leotard, then take off this layer once you warm up! It has the benefits of creating a long sleeve AND short sleeve leotard all at once\u003c\/li\u003e\n\u003cli\u003eSublimated lycra long sleeve crop top with curved cut out design in the back\u003c\/li\u003e\n\u003cli\u003eFully front lined for comfort\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca title=\"Bloom Gymnastics Leotard by GMD Activewear AUS\" href=\"https:\/\/www.gmdirect.com.au\/products\/bloom-leotard\"\u003eBloom Leotard\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca title=\"Bloom Hair Scrunchie By GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/products\/bloom-scrunchie\"\u003eBloom Hair Scrunchie\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/bloom-lycra-guard-bag\" title=\"Bloom Gymnastics Guard Bag by GMD Activewear Australia\"\u003eBloom Guard Bag\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/hot-pink-lycra-scrunchie\" title=\"Hot Pink Lycra Hair Scrunchie\"\u003eHot Pink Lycra Hair Scrunchie\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Multi-Colour","offer_id":43148508954693,"sku":"LSC-BLOOM-BLOOM-INT","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"ASML (c12) \/ Multi-Colour","offer_id":40094732451909,"sku":"LSC-BLOOM-BLOOM-ASML","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Multi-Colour","offer_id":40094732484677,"sku":"LSC-BLOOM-BLOOM-AMED","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Multi-Colour","offer_id":40094732517445,"sku":"LSC-BLOOM-BLOOM-ALA","price":30.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/BloomLongSleeveCropTop12_1200x1200_426f363d-6210-421d-b43d-436532203bb0.jpg?v=1788848764"},{"product_id":"blueberry-frost-long-sleeve-crop","title":"Blueberry Frost Long Sleeve Crop- SALE","description":"\u003cp\u003e\u003cstrong\u003eBlueberry Frost Long Sleeve Crop\u003c\/strong\u003e\u003cbr\u003eSublimated lycra crop with sleek front lines and a curved back cut-out. Fully front lined for comfort. Layer over the \u003cem\u003eBlueberry Frost Leotard\u003c\/em\u003e for a long sleeve look, then remove when warm.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Blue","offer_id":45229131694149,"sku":"LSC-MYST-BLBF-INT","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Blue","offer_id":45228937609285,"sku":"LSC-MYST-BLBF-ASML","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"AMED (c14) \/ Blue","offer_id":40094733140037,"sku":"LSC-MYST-BLBF-AMED","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Blue","offer_id":40094733172805,"sku":"LSC-MYST-BLBF-ALA","price":30.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/BlueberryFrostLeotard10_1200x1200_eb14e9f1-a774-4444-8bcb-e6b9dfdc4d5e.jpg?v=1788848765"},{"product_id":"blueberry-frost-mystique-shorts","title":"Blueberry Frost Mystique Shorts","description":"\u003cp\u003eGorgeous shiny baby blue mystique gymnastics shorts, to match perfectly with our \"Blueberry Frost Leotard\"\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eBaby Blue Mystique fabric (ultra shine)\u003c\/li\u003e\n\u003cli\u003eElasticated waistband\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003eBasic style, perfect for training \u003c\/li\u003e\n\u003cli\u003eMatch back with our Blueberry Frost Leotard, or Blueberry Frost Crop Top for a full outfit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca title=\"Baby Blue mystique Longline Kids Gymnastics Crop Top by GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/collections\/newest-products\/products\/baby-blue-mystique-longline-crop-top\"\u003eBaby Blue Mystique Longline Crop Top\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003eBlueberry Frost Long Sleeve Crop Top\u003c\/li\u003e\n\u003cli\u003eBlueberry Frost Leotard\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Blue","offer_id":40094757093445,"sku":"S-MYST-BLBF-AMED","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Blue","offer_id":40094757126213,"sku":"S-MYST-BLBF-ALA","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-24090370179141.jpg?v=1788325254"},{"product_id":"luscious-lilac-crop-top","title":"Luscious Lilac Longline Crop Top- SALE","description":"\u003cp\u003e\u003cstrong\u003eLuscious Lilac Crop Top\u003c\/strong\u003e\u003cbr\u003eSoft lilac crop in our Active Edge Fabric. Longer style with thin straps, a built-in bra, and removable cups (sizes C12 to C16). Super comfy with no tight waistband.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003eMatches with Luscious Lilac Shorts and Wisteria Tights.\u003cbr\u003eModel wears Child 8.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsCropTopSizeChartActiveEdgeyDynamic_1024x1024.jpg?v=1666157311\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 14 \/ Purple","offer_id":40141434552389,"sku":"LC-LUSCIOUS-LIL-C14","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Purple","offer_id":40141434585157,"sku":"LC-LUSCIOUS-LIL-C16","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/LusciousLilac4_1200x1200_5fc2439c-6ebe-4954-a5fe-082649d44e2f.jpg?v=1788849133"},{"product_id":"burgundy-shine-lycra-long-sleeve-crop","title":"Burgundy Shine Lycra Long Sleeve Crop- SALE","description":"\u003cp\u003e\u003cstrong\u003eBurgundy Shine Long Sleeve Crop Top\u003c\/strong\u003e\u003cbr\u003eLayer-friendly crop in Burgundy Shine metallic lycra. Sleek front lines with a curved back cut-out. Wear over any leotard for an instant long sleeve look, then remove as you warm up. Fully front lined and training-durable.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Maroon","offer_id":45228940263493,"sku":"LSC-LYCLS-BURG-INT","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"CMED (c6) \/ Maroon","offer_id":40206170062917,"sku":"LSC-LYCLS-BURG-CMED","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"CLA (c8) \/ Maroon","offer_id":40206170095685,"sku":"LSC-LYCLS-BURG-CLA","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"ASML (c12) \/ Maroon","offer_id":40206170161221,"sku":"LSC-LYCLS-BURG-ASML","price":30.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Maroon","offer_id":40206170193989,"sku":"LSC-LYCLS-BURG-AMED","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Maroon","offer_id":40206170226757,"sku":"LSC-LYCLS-BURG-ALA","price":30.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Maroon","offer_id":40206170259525,"sku":"LSC-LYCLS-BURG-AXL","price":30.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/BurgundyShine6_1200x1200_706d6098-3d19-47e1-9311-6e29fd9808f0.jpg?v=1788849160"},{"product_id":"burgundy-shine-lycra-bike-pants","title":"Burgundy Shine Lycra Bike Pants","description":"\u003cul\u003e\n\u003cli\u003eBurgundy shine lycra bike pants\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli\u003ePerfect for gymnastics, trampoline, acro, rhythmic, aerobics etc\u003c\/li\u003e\n\u003cli\u003eElastic waistband for comfort \u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/burgundy-shine-lycra-long-sleeve-crop\" title=\"Burgundy Shine Long Sleeve Gymnastics Crop Top by GMD Activewear Aus\"\u003eBurgundy Shine Long Sleeve Crop Top\u003c\/a\u003e\u003cbr\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg alt=\"Girls Gymnastics Shorts Size Chart. GMD Activewear Australia\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLycraGymShortsSizeChart2023_2048x2048.jpg?v=1693878145\"\u003e\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AXS (c10) \/ Burgundy","offer_id":40206175830085,"sku":"S-LYCB-BURG-AXS","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Burgundy","offer_id":40206175895621,"sku":"S-LYCB-BURG-AMED","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Burgundy","offer_id":40206175928389,"sku":"S-LYCB-BURG-ALA","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Burgundy","offer_id":40226493825093,"sku":"S-LYCB-BURG-AXL","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Burgundy","offer_id":45559045980229,"sku":"S-LYCB-BURG-ASML","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/BurgundyShineLycraShorts1_1200x1200_236f0274-10f8-45db-bf8d-40e7125c2860.png?v=1788849337"},{"product_id":"girls-ladies-action-back-gym-singlet","title":"Action Back Gym Singlet - Baby Pink- SALE","description":"\u003cp\u003e\u003cstrong\u003eAction Back Gym Singlet, Baby Pink\u003c\/strong\u003e\u003cbr\u003eSupportive cotton and elastane jersey (240gsm) with a slight stretch and a flattering, action back cut for full freedom of movement in training.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e90% cotton, 10% elastane jersey knit, 240gsm\u003c\/li\u003e\n\u003cli\u003eSlight stretch with a flattering, supportive fit\u003c\/li\u003e\n\u003cli\u003eAction back style for full range of movement\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSizing note:\u003c\/strong\u003e Child 14 fits approximately Ladies 10.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 6 \/ Pink","offer_id":40211144933445,"sku":"SING-ACTBACK-BABYPNK-C6","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 8 \/ Pink","offer_id":40641693384773,"sku":"SING-ACTBACK-BABYPNK-LD8","price":15.0,"currency_code":"AUD","in_stock":false},{"title":"Child 14 \/ Pink","offer_id":40211144966213,"sku":"SING-ACTBACK-BABYPNK-C14","price":15.0,"currency_code":"AUD","in_stock":false},{"title":"Ladies 12 \/ Pink","offer_id":40211144998981,"sku":"SING-ACTBACK-BABYPNK-LD12","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 14 \/ Pink","offer_id":40211145031749,"sku":"SING-ACTBACK-BABYPNK-LD14","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 16 \/ Pink","offer_id":40211145064517,"sku":"SING-ACTBACK-BABYPNK-LD16","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 18 \/ Pink","offer_id":40641668677701,"sku":"SING-ACTBACK-BABYPNK-LD18","price":15.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/products\/Bocini-singletBabyPink.jpg?v=1658646785"},{"product_id":"girls-ladies-action-back-gym-singlet-hot-pink","title":"Action Back Gym Singlet - Hot Pink- SALE","description":"\u003cp\u003e\u003cstrong\u003eAction Back Gym Singlet, Hot Pink\u003c\/strong\u003e\u003cbr\u003eSupportive cotton and elastane jersey (240gsm) with a slight stretch and a flattering, action back cut for full freedom of movement in training.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e90% cotton, 10% elastane jersey knit, 240gsm\u003c\/li\u003e\n\u003cli\u003eSlight stretch with a flattering, supportive fit\u003c\/li\u003e\n\u003cli\u003eAction back style for full range of movement\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSizing note:\u003c\/strong\u003e Child 14 fits approximately Ladies 10.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 6 \/ Pink","offer_id":40211152371781,"sku":"SING-ACTBACK-HOTPNK-C6","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Child 14 \/ Pink","offer_id":40211152404549,"sku":"SING-ACTBACK-HOTPNK-C14","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Child 10 \/ Pink","offer_id":45567288442949,"sku":"SING-ACTBACK-HOTPNK-C10","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 12 \/ Pink","offer_id":40211152437317,"sku":"SING-ACTBACK-HOTPNK-LD12","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 14 \/ Pink","offer_id":40211152470085,"sku":"SING-ACTBACK-HOTPNK-LD14","price":15.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/PinkFront.png?v=1695957193"},{"product_id":"girls-ladies-action-back-gym-singlet-plum-purple","title":"Action Back Gym Singlet - Plum Purple- SALE","description":"\u003cp\u003e\u003cstrong\u003eAction Back Gym Singlet, Plum Purple\u003c\/strong\u003e\u003cbr\u003eSupportive cotton and elastane jersey (240gsm) with a slight stretch and a flattering, action back cut for full freedom of movement in training.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e90% cotton, 10% elastane jersey knit, 240gsm\u003c\/li\u003e\n\u003cli\u003eSlight stretch with a flattering, supportive fit\u003c\/li\u003e\n\u003cli\u003eAction back style for full range of movement\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 6 \/ Purple","offer_id":40211155910725,"sku":"SING-ACTBACK-PLUM-C6","price":15.0,"currency_code":"AUD","in_stock":false},{"title":"Child 8 \/ Purple","offer_id":45567289425989,"sku":"SING-ACTBACK-PLUM-C8","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 12 \/ Purple","offer_id":40211155976261,"sku":"SING-ACTBACK-PLUM-LD12","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 16 \/ Purple","offer_id":40211156041797,"sku":"SING-ACTBACK-PLUM-LD16","price":15.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/PlumFront.png?v=1695957214"},{"product_id":"ladies-action-back-gym-singlet-bright-blue-1","title":"Action Back Gym Singlet - Bright Blue- SALE","description":"\u003cp\u003e\u003cstrong\u003eAction Back Gym Singlet, Bright Blue\u003c\/strong\u003e\u003cbr\u003eSupportive cotton and elastane jersey (240gsm) with a slight stretch and a flattering, action back cut for full freedom of movement in training.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e90% cotton, 10% elastane jersey knit, 240gsm\u003c\/li\u003e\n\u003cli\u003eSlight stretch with a flattering, supportive fit\u003c\/li\u003e\n\u003cli\u003eAction back style for full range of movement\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSizing note:\u003c\/strong\u003e Child 14 fits approximately Ladies 10.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 6 \/ Blue","offer_id":40211156402245,"sku":"SING-ACTBACK-BLU-C6","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Child 14 \/ Blue","offer_id":40211156435013,"sku":"SING-ACTBACK-BLU-C14","price":15.0,"currency_code":"AUD","in_stock":false},{"title":"Ladies 12 \/ Blue","offer_id":40211156467781,"sku":"SING-ACTBACK-BLU-LD12","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 14 \/ Blue","offer_id":40211156500549,"sku":"SING-ACTBACK-BLU-LD14","price":15.0,"currency_code":"AUD","in_stock":true},{"title":"Ladies 16 \/ Blue","offer_id":40211156533317,"sku":"SING-ACTBACK-BLU-LD16","price":15.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/CyanFront_df8e3fc7-9ad9-4408-adfe-a709e49e910d.png?v=1695957103"},{"product_id":"mysterious-leotard","title":"Mysterious Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eMysterious Leotard\u003c\/strong\u003e\u003cbr\u003eSoft grey lycra with black mystique appliqués, round neck and full lining. Finished with magical colour-changing crystals that shift from purple to blue. Part of our \u003cem\u003eSpooky Collection\u003c\/em\u003e.\u003c\/p\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003cbr\u003e✨ Pairs with black or purple shorts and scrunchies.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Grey","offer_id":40227969007685,"sku":"L-MYSTER-GRY-AMED","price":50.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Grey","offer_id":40227969040453,"sku":"L-MYSTER-GRY-ALA","price":50.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Grey","offer_id":40227969073221,"sku":"L-MYSTER-GRY-AXL","price":50.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Spooky_057_1200x1200_eb1ea579-b84d-4dde-9f97-e53a163bbb95.jpg?v=1788849361"},{"product_id":"bubblegum-pink-mystique-shorts","title":"Bubblegum Pink Mystique Shorts","description":"\u003cp\u003eGorgeous shiny bubblegum pink mystique gymnastics shorts with a fun, glimmering foiled finish, easy to care for and perfect for training or everyday wear.\u003c\/p\u003e\n\u003ch2\u003eSIZE CHART\u003c\/h2\u003e\n\u003cp\u003e\u003cimg alt=\"Girls Gymnastics Shorts Size Chart. GMD Activewear Australia\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLycraGymShortsSizeChart2023_2048x2048.jpg?v=1693878145\"\u003e\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003eFEATURES\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eShiny mystique foiling shorts\u003c\/li\u003e\n\u003cli\u003eStandard fitted style gym shorts\u003c\/li\u003e\n\u003cli\u003eElastic waistband\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003e\u003cstrong\u003eMATCH ME WITH\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnchantress Leotard\u003c\/li\u003e\n\u003cli\u003e\u003ca title=\"Bubblegum Pink Mystique Hand Guard Bag - Gymnastics by GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/collections\/guard-bags\/products\/bubblegum-pink-guard-bag\"\u003eBubblegum pink guard bag\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003eCrystal ball leotard\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/bubblegum-pink-mystique-crystal-hair-bow\" title=\"Bubblegum pink mystique crystal hair bow by GMD Activewear Australia\"\u003eBubblegum pink mystique crystal hair bow\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca title=\"Bubblegum mystique teddy leotard by GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/products\/bubblegum-pink-mystique-teddy-leotard\"\u003eBubblegum pink mystique teddy leotard\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"AMED (c14) \/ Pink","offer_id":40227977691205,"sku":"S-MYST-BGPK-AMED","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Pink","offer_id":40227977723973,"sku":"S-MYST-BGPK-ALA","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Pink","offer_id":40227977756741,"sku":"S-MYST-BGPK-AXL","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Spooky_108_1200x1200_2d965697-fa9e-4b3f-9095-e24edbd9c210.jpg?v=1788849362"},{"product_id":"electra-blush-leotard","title":"Electra Blush Leotard- SALE","description":"\u003cp\u003e\u003cstrong\u003eBlush Leotard\u003c\/strong\u003e\u003cbr\u003eShimmery blush wet-look lycra with a V-neckline, AB stone motif and strappy open back. Soft, stretchy and fully nude-lined for comfort.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eClearance:\u003c\/strong\u003e final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/WAGLeotardSizeChart2023withoutdiagram_600x600.jpg?v=1680074903\"\u003e\u003c\/p\u003e\n\u003cp\u003eOur leotard estimates are based on a standard lycra firm fit, however individual fit and comfort can vary. If you would like extra room for growth, choose a size up.\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e\n\u003cp\u003e\u003cstrong\u003eFabric care:\u003c\/strong\u003e All our leotards are tested in the gym before release for durability. Please follow the washing instructions on the garment label to keep it looking its best for as long as possible. Sublimation fabrics can pill where they meet abrasive surfaces or velcro, and mystique or foiled fabrics may dull or lose some colour with repeated wear and wash, particularly in areas of friction.\u003c\/p\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Pink","offer_id":40238897168453,"sku":"L-ELECTRA-PNK-INT","price":55.0,"currency_code":"AUD","in_stock":false},{"title":"ASML (c12) \/ Pink","offer_id":40238897299525,"sku":"L-ELECTRA-PNK-ASML","price":55.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Pink","offer_id":40238897332293,"sku":"L-ELECTRA-PNK-AMED","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Pink","offer_id":40238897365061,"sku":"L-ELECTRA-PNK-ALA","price":55.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Spooky_118_1200x1200_42cdb7c3-2d83-4cac-830e-cd611d1be31b.jpg?v=1788849597"},{"product_id":"baby-blue-mystique-longline-crop-top","title":"Baby Blue Mystique Longline Crop Top","description":"\u003cul\u003e\n\u003cli\u003eBaby Blue Mystique Crop Top\u003c\/li\u003e\n\u003cli\u003eFull front lining\u003c\/li\u003e\n\u003cli\u003eLong line crop top\u003c\/li\u003e\n\u003cli\u003eRacerback design\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch1\u003eMATCH WITH:\u003cbr\u003e\n\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/blueberry-frost-mystique-shorts\" title=\"Baby Blue Mystique Gymnastics Shorts by GMD Activewear Australia\"\u003eBlueberry Frost Mystique Shorts\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/www.gmdirect.com.au\/products\/blueberry-frost-long-sleeve-crop\" title=\"Blueberry Frost Mystique Long Sleeve Gymnastics Crop Top\"\u003eBlueberry Frost Long Sleeve Crop Top \u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg style=\"float: none;\" alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMDGirlsLeotardSizeChart_1024x1024.jpg?v=1664507987\"\u003e\u003c\/div\u003e","brand":"GMD Activewear Australia","offers":[{"title":"INT (c4\/5) \/ Blue","offer_id":40486100205637,"sku":"LC-MYSTLC-SBL-INT","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"CMED (c6) \/ Blue","offer_id":40486100238405,"sku":"LC-MYSTLC-SBL-CMED","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"CLA (c8) \/ Blue","offer_id":40486100271173,"sku":"LC-MYSTLC-SBL-CLA","price":25.0,"currency_code":"AUD","in_stock":false},{"title":"AXS (c10) \/ Blue","offer_id":40486100303941,"sku":"LC-MYSTLC-SBL-AXS","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ASML (c12) \/ Blue","offer_id":40486100336709,"sku":"LC-MYSTLC-SBL-ASML","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"AMED (c14) \/ Blue","offer_id":40486100369477,"sku":"LC-MYSTLC-SBL-AMED","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"ALA (c16) \/ Blue","offer_id":40486100402245,"sku":"LC-MYSTLC-SBL-ALA","price":25.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Blue","offer_id":40486100435013,"sku":"LC-MYSTLC-SBL-AXL","price":25.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD-Beach-038A3552_1200x1200_31f618e8-4c6e-4d83-8e20-99bad75cbaf3.jpg?v=1788851059"},{"product_id":"bora-bora-toweling-set","title":"Bora Bora Toweling Set- SALE","description":"\u003cp data-start=\"67\" data-end=\"296\"\u003e\u003cstrong data-start=\"67\" data-end=\"93\"\u003eBora Bora Toweling Set\u003c\/strong\u003e\u003cbr data-start=\"93\" data-end=\"96\"\u003eSoft Terry toweling tee \u0026amp; shorts – perfect for the beach, pool, park, or to\/from gym. Features drawstring waistband, turquoise GMD embroidery, and \u003cem data-start=\"243\" data-end=\"252\"\u003eGYMNAST\u003c\/em\u003e embroidery on tee \u0026amp; shorts. Standard fit.\u003c\/p\u003e\n\u003cp data-start=\"298\" data-end=\"355\"\u003e⚠️ \u003cstrong data-start=\"301\" data-end=\"314\"\u003eClearance\u003c\/strong\u003e – final sizes, final sale, no restock.\u003c\/p\u003e\n\u003cp data-start=\"357\" data-end=\"389\"\u003eModel wears Child 10 (age 10).\u003c\/p\u003e\n\u003ch1\u003eMATCH WITH\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca title=\"Bora Bora turquoise toweling fabric scrunchie by GMD Activewear Australia\" href=\"https:\/\/www.gmdirect.com.au\/products\/bora-bora-toweling-scrunchie\"\u003eBora Bora Toweling Hair Scrunchie\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"GMD Activewear Australia","offers":[{"title":"Child 4 \/ Blue","offer_id":40487647051845,"sku":"BUNDLE-TOWELSET-BORABORA-C4","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 6 \/ Blue","offer_id":40487647084613,"sku":"BUNDLE-TOWELSET-BORABORA-C6","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 8 \/ Blue","offer_id":40487647117381,"sku":"BUNDLE-TOWELSET-BORABORA-C8","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 10 \/ Blue","offer_id":40487647150149,"sku":"BUNDLE-TOWELSET-BORABORA-C10","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 12 \/ Blue","offer_id":40487647182917,"sku":"BUNDLE-TOWELSET-BORABORA-C12","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 14 \/ Blue","offer_id":40487647215685,"sku":"BUNDLE-TOWELSET-BORABORA-C14","price":55.0,"currency_code":"AUD","in_stock":true},{"title":"Child 16 \/ Blue","offer_id":40487647248453,"sku":"BUNDLE-TOWELSET-BORABORA-C16","price":55.0,"currency_code":"AUD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-b13-023.jpg?v=1788484794"},{"product_id":"amira-leotard","title":"Amira Leotard - SALE","description":"\u003cp\u003e\u003cstrong\u003eThe Amira Leotard\u003c\/strong\u003e is the perfect blend of style and performance. Made with the most elegant metallic hinterland green lycra fabric, the high neckline and clasp back closure ensure a secure fit, so you can focus on nailing your routine. The clear crystal design adds a touch of elegance and sparkle that will leave a lasting impression.\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003eFEATURES\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn stock \u0026amp; ready to ship\u003c\/li\u003e\n\u003cli\u003eMetallic hinterland green lycra body\u003c\/li\u003e\n\u003cli\u003eMesh keyhole back strap design for breathability \u0026amp; style\u003c\/li\u003e\n\u003cli\u003eFull lining front \u0026amp; back\u003c\/li\u003e\n\u003cli\u003eHigh neckline\u003c\/li\u003e\n\u003cli\u003eClasp closure at back of the neck\u003c\/li\u003e\n\u003cli\u003eStunning clear crystal design at the front\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHOW TO SIZE:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/GMD_Girls_Leotard_Size_Chart_2026-_Diagram.jpg?v=1774597011\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv id=\"gmdlsf\" class=\"gmdlsf-wrap\"\u003e\n  \u003cstyle\u003e\n    #gmdlsf * { box-sizing: border-box; }\n    #gmdlsf.gmdlsf-wrap {\n      --gmdlsf-pink: #F4A7CD;\n      --gmdlsf-pink-deep: #D06A9E;\n      --gmdlsf-pink-mid: #FBDCEB;\n      --gmdlsf-pink-soft: #FDF2F7;\n      --gmdlsf-plum: #6E3050;\n      max-width: 560px;\n      margin: 24px 0;\n      padding: 20px 22px 22px;\n      background: var(--gmdlsf-pink-soft);\n      border: 1px solid var(--gmdlsf-pink);\n      border-radius: 14px;\n      color: var(--gmdlsf-plum);\n      font-size: 15px;\n      line-height: 1.5;\n    }\n    #gmdlsf .gmdlsf-title { margin: 0 0 6px; font-size: 19px; font-weight: 700; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-intro { margin: 0 0 16px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }\n    #gmdlsf .gmdlsf-tab {\n      flex: 1 1 auto; min-width: 170px; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink);\n      background: #fff; color: var(--gmdlsf-plum); border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;\n    }\n    #gmdlsf .gmdlsf-tab.is-active { background: var(--gmdlsf-pink); color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-panel { margin-bottom: 14px; }\n    #gmdlsf .gmdlsf-panel[hidden] { display: none; }\n    #gmdlsf label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }\n    #gmdlsf input[type=\"number\"], #gmdlsf select {\n      width: 100%; padding: 10px 12px; border: 1px solid var(--gmdlsf-pink-deep); border-radius: 8px;\n      background: #fff; color: var(--gmdlsf-plum); font-size: 15px; margin-bottom: 10px;\n    }\n    #gmdlsf .gmdlsf-row { display: flex; gap: 10px; }\n    #gmdlsf .gmdlsf-row \u003e div { flex: 1; }\n    #gmdlsf .gmdlsf-note { font-size: 13px; opacity: 0.8; margin: -2px 0 10px; }\n    #gmdlsf details.gmdlsf-howto { margin: 0 0 14px; }\n    #gmdlsf details.gmdlsf-howto summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--gmdlsf-plum); }\n    #gmdlsf details.gmdlsf-howto p { margin: 8px 0 0; font-size: 13.5px; opacity: 0.9; }\n    #gmdlsf .gmdlsf-toggle { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; font-size: 14px; margin-bottom: 16px; cursor: pointer; }\n    #gmdlsf .gmdlsf-toggle input { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }\n    #gmdlsf .gmdlsf-toggle em { font-style: normal; opacity: 0.75; }\n    #gmdlsf .gmdlsf-btn {\n      display: inline-block; width: 100%; padding: 12px 18px; background: var(--gmdlsf-plum);\n      color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;\n    }\n    #gmdlsf .gmdlsf-btn:hover { background: var(--gmdlsf-pink-deep); }\n    #gmdlsf .gmdlsf-result { margin-top: 16px; padding: 14px 16px; background: var(--gmdlsf-pink-mid); border-radius: 10px; font-size: 14.5px; }\n    #gmdlsf .gmdlsf-result[hidden] { display: none; }\n    #gmdlsf .gmdlsf-result strong { font-size: 17px; color: var(--gmdlsf-plum); }\n    #gmdlsf .gmdlsf-result .gmdlsf-size-line { margin: 0 0 8px; }\n    #gmdlsf .gmdlsf-result p { margin: 0 0 6px; }\n    #gmdlsf .gmdlsf-result p:last-child { margin-bottom: 0; }\n  \u003c\/style\u003e\n\n  \u003cp class=\"gmdlsf-title\"\u003eFind Your Leotard Size\u003c\/p\u003e\n  \u003cp class=\"gmdlsf-intro\"\u003eThe \u003cstrong\u003egirth\u003c\/strong\u003e measurement is the most accurate way to size a leotard.\u003c\/p\u003e\n\n  \u003cdiv class=\"gmdlsf-tabs\" role=\"tablist\"\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab is-active\" data-tab=\"girth\" role=\"tab\" aria-selected=\"true\"\u003eMeasure girth (most accurate)\u003c\/button\u003e\n    \u003cbutton type=\"button\" class=\"gmdlsf-tab\" data-tab=\"aus\" role=\"tab\" aria-selected=\"false\"\u003eAustralian clothing size\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"girth\"\u003e\n    \u003cdetails class=\"gmdlsf-howto\"\u003e\n      \u003csummary\u003eHow to measure girth\u003c\/summary\u003e\n      \u003cp\u003eUse a soft tape measure starting at one shoulder, run it down the front of the body, through the legs, and up the back to the same shoulder. Keep the tape snug but not tight, and stand straight.\u003c\/p\u003e\n    \u003c\/details\u003e\n    \u003clabel for=\"gmdlsf-girth\"\u003eGirth (cm)\u003c\/label\u003e\n    \u003cinput type=\"number\" id=\"gmdlsf-girth\" min=\"80\" max=\"180\" step=\"0.5\" placeholder=\"e.g. 120\" inputmode=\"decimal\"\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eIf the measurement falls on a partial cm, round up to the next full cm.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"gmdlsf-panel\" data-panel=\"aus\" hidden\u003e\n    \u003clabel for=\"gmdlsf-aus-size\"\u003eRegular Australian clothing size\u003c\/label\u003e\n    \u003cselect id=\"gmdlsf-aus-size\"\u003e\n      \u003coption value=\"\" selected disabled\u003eChoose a size…\u003c\/option\u003e\n      \u003coptgroup label=\"Child\"\u003e\n        \u003coption value=\"0\"\u003eChild 2-3\u003c\/option\u003e\n        \u003coption value=\"1\"\u003eChild 3-4\u003c\/option\u003e\n        \u003coption value=\"2\"\u003eChild 4-5\u003c\/option\u003e\n        \u003coption value=\"3\"\u003eChild 6\u003c\/option\u003e\n        \u003coption value=\"4\"\u003eChild 8\u003c\/option\u003e\n        \u003coption value=\"5\"\u003eChild 10\u003c\/option\u003e\n        \u003coption value=\"6\"\u003eChild 12\u003c\/option\u003e\n        \u003coption value=\"7\"\u003eChild 14\u003c\/option\u003e\n        \u003coption value=\"8\"\u003eChild 16\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n      \u003coptgroup label=\"Ladies\"\u003e\n        \u003coption value=\"9\"\u003eLadies 8-10\u003c\/option\u003e\n        \u003coption value=\"10\"\u003eLadies 10-12\u003c\/option\u003e\n      \u003c\/optgroup\u003e\n    \u003c\/select\u003e\n    \u003cp class=\"gmdlsf-note\"\u003eThis is a rough guide only. For the most accurate fit, measure girth using the tab above.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003clabel class=\"gmdlsf-toggle\"\u003e\n    \u003cinput type=\"checkbox\" id=\"gmdlsf-grow\"\u003e\n    \u003cspan\u003eExtra room to grow? \u003cem\u003e(sizes up one, so there's growing room for the season)\u003c\/em\u003e\u003c\/span\u003e\n  \u003c\/label\u003e\n\n  \u003cbutton type=\"button\" id=\"gmdlsf-btn\" class=\"gmdlsf-btn\"\u003eFind my size\u003c\/button\u003e\n\n  \u003cdiv id=\"gmdlsf-result\" class=\"gmdlsf-result\" aria-live=\"polite\" hidden\u003e\u003c\/div\u003e\n\n  \u003cp class=\"gmdlsf-note\"\u003eThis tool is a guide only. Individual fit preference may vary.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('gmdlsf');\n  if (!root || root.getAttribute('data-gmdlsf-init') === '1') return;\n  root.setAttribute('data-gmdlsf-init', '1');\n\n  \/\/ GMD's own Girls Leotard Size Chart (gmdirect.com.au\/pages\/size-chart), girth measurements in cm.\n  \/\/ CXS has no girth data on the current chart, so it's only reachable via the AUS clothing size dropdown.\n  \/\/ Array index lines up with the AUS clothing size dropdown's option values below - keep them in sync if sizes change.\n  var CHART = [\n    { size: 'CXS',       aus: null,     girth: null       }, \/\/ 0 - AUS Child 2-3\n    { size: 'CSML 24\"',  aus: 'C3\/4',   girth: [91, 96]   }, \/\/ 1 - AUS Child 3-4\n    { size: 'INT 26\"',   aus: 'C4\/5',   girth: [99, 106]  }, \/\/ 2 - AUS Child 4-5\n    { size: 'CMED 28\"',  aus: 'C6',     girth: [109, 119] }, \/\/ 3 - AUS Child 6\n    { size: 'CLA 30\"',   aus: 'C8',     girth: [119, 127] }, \/\/ 4 - AUS Child 8\n    { size: 'AXS 32\"',   aus: 'C10',    girth: [127, 134] }, \/\/ 5 - AUS Child 10\n    { size: 'ASML 34\"',  aus: 'C12',    girth: [134, 142] }, \/\/ 6 - AUS Child 12\n    { size: 'AMED 36\"',  aus: 'C14',    girth: [139, 147] }, \/\/ 7 - AUS Child 14\n    { size: 'ALA 38\"',   aus: 'C16',    girth: [147, 152] }, \/\/ 8 - AUS Child 16\n    { size: 'AXL 40\"',   aus: 'L8\/10',  girth: [154, 162] }, \/\/ 9 - AUS Ladies 8-10\n    { size: 'AXXL 42\"',  aus: 'L10\/12', girth: [165, 172] }  \/\/ 10 - AUS Ladies 10-12\n  ];\n\n  var tabs = root.querySelectorAll('.gmdlsf-tab');\n  var panels = root.querySelectorAll('.gmdlsf-panel');\n  var girthInput = root.querySelector('#gmdlsf-girth');\n  var ausSizeSelect = root.querySelector('#gmdlsf-aus-size');\n  var growBox = root.querySelector('#gmdlsf-grow');\n  var btn = root.querySelector('#gmdlsf-btn');\n  var resultBox = root.querySelector('#gmdlsf-result');\n\n  var activeTab = 'girth';\n\n  tabs.forEach(function (tab) {\n    tab.addEventListener('click', function () {\n      activeTab = tab.getAttribute('data-tab');\n      tabs.forEach(function (t) {\n        t.classList.toggle('is-active', t === tab);\n        t.setAttribute('aria-selected', t === tab ? 'true' : 'false');\n      });\n      panels.forEach(function (p) { p.hidden = p.getAttribute('data-panel') !== activeTab; });\n      resultBox.hidden = true;\n    });\n  });\n\n  \/\/ GMD's own rule: \"When a gymnast's measurement contains a partial cm always round up to the next full cm.\"\n  function roundUp(val) { return Math.ceil(val); }\n\n  \/\/ Finds the size(s) whose girth range contains `value`.\n  \/\/ Falls back to nearest size if the value sits in a gap between two ranges (the real chart has a couple of these).\n  function matchGirth(value) {\n    var girthIdxs = [];\n    CHART.forEach(function (s, i) { if (s.girth) girthIdxs.push(i); });\n\n    var hits = [];\n    girthIdxs.forEach(function (i) {\n      var r = CHART[i].girth;\n      if (value \u003e= r[0] \u0026\u0026 value \u003c= r[1]) hits.push(i);\n    });\n    if (hits.length) return { index: hits[0], hits: hits };\n\n    var firstIdx = girthIdxs[0], lastIdx = girthIdxs[girthIdxs.length - 1];\n    if (value \u003c CHART[firstIdx].girth[0]) return { tooSmall: true, firstIdx: firstIdx };\n    if (value \u003e CHART[lastIdx].girth[1]) return { tooBig: true, lastIdx: lastIdx };\n\n    for (var k = 0; k \u003c girthIdxs.length - 1; k++) {\n      var a = girthIdxs[k], b = girthIdxs[k + 1];\n      var loMax = CHART[a].girth[1], hiMin = CHART[b].girth[0];\n      if (value \u003e loMax \u0026\u0026 value \u003c hiMin) {\n        var distLo = value - loMax, distHi = hiMin - value;\n        var chosen = distHi \u003c= distLo ? b : a;\n        return { gap: true, index: chosen, lowerIndex: a, upperIndex: b };\n      }\n    }\n    return { index: firstIdx };\n  }\n\n  function sizeLabel(i) {\n    return CHART[i].aus ? (CHART[i].size + ' (AUS ' + CHART[i].aus + ')') : CHART[i].size;\n  }\n\n  \/\/ If \"extra room to grow\" is ticked, show the next size up from `index` (or note we're already at the largest).\n  function growLine(index) {\n    if (!growBox || !growBox.checked) return '';\n    if (index \u003e= CHART.length - 1) {\n      return '\u003cp\u003eThat\\'s already our largest available size, so there\\'s no larger option to size up into.\u003c\/p\u003e';\n    }\n    return '\u003cp class=\"gmdlsf-size-line\"\u003eWith extra room to grow: \u003cstrong\u003e' + sizeLabel(index + 1) + '\u003c\/strong\u003e\u003c\/p\u003e';\n  }\n\n  function showResult(html) {\n    resultBox.innerHTML = html;\n    resultBox.hidden = false;\n  }\n\n  function girthMessage(m, value) {\n    if (m.tooSmall) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is smaller than our smallest available size on this chart, ' + sizeLabel(m.firstIdx) + ' (girth ' + CHART[m.firstIdx].girth[0] + '-' + CHART[m.firstIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    if (m.tooBig) {\n      return '\u003cp\u003eA girth of ' + value + 'cm is larger than our largest available size, ' + sizeLabel(m.lastIdx) + ' (girth ' + CHART[m.lastIdx].girth[0] + '-' + CHART[m.lastIdx].girth[1] + 'cm). Please get in touch with our team for options.\u003c\/p\u003e';\n    }\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eTrue-to-size fit: \u003cstrong\u003e' + sizeLabel(m.index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(m.index);\n    if (m.gap) {\n      lines += '\u003cp\u003eYour girth of ' + value + 'cm sits between ' + sizeLabel(m.lowerIndex) + ' and ' + sizeLabel(m.upperIndex) + '. We\\'ve recommended the closer of the two.\u003c\/p\u003e';\n    } else if (m.hits.length \u003e 1) {\n      lines += '\u003cp\u003eThis girth fits more than one size on our chart. ' + sizeLabel(m.hits[0]) + ' will be the closer fit; ' + sizeLabel(m.hits[m.hits.length - 1]) + ' will have a little more room.\u003c\/p\u003e';\n    }\n    return lines;\n  }\n\n  function ausMessage(index) {\n    var lines = '\u003cp class=\"gmdlsf-size-line\"\u003eEstimated size: \u003cstrong\u003e' + sizeLabel(index) + '\u003c\/strong\u003e\u003c\/p\u003e';\n    lines += growLine(index);\n    return lines;\n  }\n\n  btn.addEventListener('click', function () {\n    if (activeTab === 'girth') {\n      var girth = parseFloat(girthInput.value);\n      if (!girth || girth \u003c= 0) {\n        showResult('\u003cp\u003ePlease enter a girth measurement in cm.\u003c\/p\u003e');\n        return;\n      }\n      girth = roundUp(girth);\n      showResult(girthMessage(matchGirth(girth), girth));\n      return;\n    }\n\n    if (ausSizeSelect.value === '') {\n      showResult('\u003cp\u003ePlease choose a regular Australian clothing size.\u003c\/p\u003e');\n      return;\n    }\n    showResult(ausMessage(parseInt(ausSizeSelect.value, 10)));\n  });\n})();\n\u003c\/script\u003e","brand":"GMD Activewear Australia","offers":[{"title":"CSML (c3\/4) \/ Green","offer_id":40533211316293,"sku":"L-AMIRA-GRN-CSML","price":60.0,"currency_code":"AUD","in_stock":true},{"title":"INT (c4\/5) \/ Green","offer_id":40533206990917,"sku":"L-AMIRA-GRN-INT","price":60.0,"currency_code":"AUD","in_stock":true},{"title":"CMED (c6) \/ Green","offer_id":40533207023685,"sku":"L-AMIRA-GRN-CMED","price":60.0,"currency_code":"AUD","in_stock":false},{"title":"CLA (c8) \/ Green","offer_id":40533207056453,"sku":"L-AMIRA-GRN-CLA","price":60.0,"currency_code":"AUD","in_stock":false},{"title":"AXS (c10) \/ Green","offer_id":40533207089221,"sku":"L-AMIRA-GRN-AXS","price":60.0,"currency_code":"AUD","in_stock":false},{"title":"ASML (c12) \/ Green","offer_id":40533207121989,"sku":"L-AMIRA-GRN-ASML","price":60.0,"currency_code":"AUD","in_stock":false},{"title":"AMED (c14) \/ Green","offer_id":40615211630661,"sku":"L-AMIRA-GRN-AMED","price":60.0,"currency_code":"AUD","in_stock":false},{"title":"ALA (c16) \/ Green","offer_id":40533207187525,"sku":"L-AMIRA-GRN-ALA","price":60.0,"currency_code":"AUD","in_stock":true},{"title":"AXL \/ Green","offer_id":40533207220293,"sku":"L-AMIRA-GRN-AXL","price":60.0,"currency_code":"AUD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1660\/5665\/files\/opt-b13-028.jpg?v=1788484795"}],"url":"https:\/\/www.gmdirect.com.au\/collections\/final-stock.oembed?page=2","provider":"GMD Activewear Australia","version":"1.0","type":"link"}