{"id":65,"date":"2026-01-13T08:01:13","date_gmt":"2026-01-13T08:01:13","guid":{"rendered":"http:\/\/www.ordertowin.com.au\/?page_id=65"},"modified":"2026-05-06T07:34:17","modified_gmt":"2026-05-06T07:34:17","slug":"game","status":"publish","type":"page","link":"https:\/\/wheel.loyaltyrewards.au\/","title":{"rendered":"GAME"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"65\" class=\"elementor elementor-65\"> \t\t\t\t\t\t<section data-ka-cursor-size=\"1\" class=\"elementor-section elementor-top-section elementor-element elementor-element-6ac5793 elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no\" data-id=\"6ac5793\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\"> \t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div> \t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\"> \t\t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-87ffb60 sparkle-bg\" data-id=\"87ffb60\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;none&quot;,&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\"> \t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\"> \t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div> \t\t\t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-element elementor-element-f217fea elementor-invisible elementor-widget elementor-widget-shortcode\" data-id=\"f217fea\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\" data-widget_type=\"shortcode.default\"> \t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"lucky-wheel-69ff12b77418f\" class=\"wxgiveaway-lucky-wheel-container\">             <div class=\"wheel-form-container template_one\">         <div>             <div>  <h3 style=\"text-align: center\">PLAY THE GAME!<\/h3>  <p style=\"text-align: center\"><span class=\"gameinstructions\">  Your unique code will get you <strong>TWO SPINS<\/strong> in this month's Order2Win game!<\/span><\/p>    <\/div>        <\/div>          <div class=\"wheel-form\">             <div class=\"lucky-wheel-form-group\">                 <label for=\"customer_code\">Your Code *<\/label>                 <input type=\"text\" id=\"customer_code\" name=\"customer_code\" value=\"\"  title=\"\" required>             <\/div>                                                                                               <div class=\"lucky-wheel-form-group\" style=\"margin-top: 10px;\">                     <div class=\"checkbox-group\">                         <input type=\"checkbox\" id=\"accept_terms\" name=\"accept_terms\" required>                         <label for=\"accept_terms\"> I agree to the terms and conditions *<\/label>                     <\/div>                 <\/div>                         <small class=\"lucky-wheel-error-success-message\"><\/small>             <button type=\"button\" class=\"lucky-wheel-submit-button\">                 Spin the Wheel!            <\/button>         <\/div>     <\/div>         <div class=\"wheel-container\">                 <div class=\"wheel-wrapper\">             <canvas id=\"lucky-wheel-69ff12b77418f-canvas\" width=\"500\" height=\"500\"><\/canvas>             <div class=\"wheel-pointer\"><\/div>             <div class=\"wheel-center-circle\">             <\/div>         <\/div>                     <div class=\"wheel-caption\" style=\"color: #ffffff;\">                 <p>Remember you can play as many times as you like through May 2026! Just spend $100 or more with ParagonCare.<\/p>             <\/div>             <\/div>      <script>\n        (function() {\n            const wheelData = [{\"slice_label\":\"$500 VISA Gift Card\",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"existing_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"25\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"$500 VISA Gift Card\",\"existing_coupon_code\":\"$500 VISA CARD\",\"existing_coupon_wining_description\":\"You have won a $500 VISA CARD\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"Better luck next time! Thanks for playing the wheel of fortune.\"},{\"slice_label\":\"$100 Gift Card\",\"probability\":\"100\",\"slice_no_prize\":\"no\",\"discount_type\":\"existing_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"fixed\",\"coupon_discount_amount\":\"100\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"$100 Gift Card\",\"existing_coupon_code\":\"$100 VISA CARD\",\"existing_coupon_wining_description\":\"You have won a $100 VISA CARD\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"You have won a $100 Visa Gift Card!\"},{\"slice_label\":\"ORDER TO WIN\",\"probability\":\"0\",\"slice_no_prize\":\"yes\",\"discount_type\":\"existing_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"ORDER TO WIN\",\"existing_coupon_code\":\"No win\",\"existing_coupon_wining_description\":\"No win\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"You are in the weekly draw for $250!\"},{\"slice_label\":\"$250 VISA Gift Card\",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"existing_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"50\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"$250 VISA Gift Card\",\"existing_coupon_code\":\"$250 VISA CARD\",\"existing_coupon_wining_description\":\"You have won a $250 VISA CARD\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"Better luck next time! Thanks for playing the wheel of fortune.\"},{\"slice_label\":\"ORDER TO WIN \",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"new_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"ORDER TO WIN\",\"existing_coupon_code\":\"\",\"existing_coupon_wining_description\":\"You have won a coupon! Code: {coupon_code}\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"You are in the weekly draw for $250!\"},{\"slice_label\":\"$250 VISA GIFT CARD\",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"new_coupon\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"$250 VISA GIFT CARD\",\"existing_coupon_code\":\"\",\"existing_coupon_wining_description\":\"You have won a coupon! Code: {coupon_code}\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"You are in the weekly draw for $250!\"},{\"slice_label\":\"slice 7\",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"none\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"You have won a {discount_amount}{discount_type} OFF coupon: {coupon_code} (Valid for {expiry_date})\",\"existing_coupon_code\":\"\",\"existing_coupon_wining_description\":\"You have won a coupon! Code: {coupon_code}\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"Better luck next time! Thanks for playing !\"},{\"slice_label\":\"slice 8\",\"probability\":\"0\",\"slice_no_prize\":\"no\",\"discount_type\":\"none\",\"slice_color\":\"#000000\",\"slice_bg_color\":\"#000000\",\"slice_font_color\":\"#000000\",\"slice_bg_image_url\":\"\",\"expiry_date\":\"1month\",\"coupon_discount_type\":\"percent\",\"coupon_discount_amount\":\"\",\"limit_per_percent\":\"\",\"limit_per_user\":\"\",\"new_coupon_wining_description\":\"You have won a {discount_amount}{discount_type} OFF coupon: {coupon_code} (Valid for {expiry_date})\",\"existing_coupon_code\":\"\",\"existing_coupon_wining_description\":\"You have won a coupon! Code: {coupon_code}\",\"tickets_quantity\":\"\",\"reward_ticket_valid_date_type\":\"specific\",\"reward_ticket_valid_date\":\"\",\"ticket_wining_description\":\"You won {tickets_count} free entries for our {giveaway_products}! Valid for {valid_date}\",\"reward_points\":\"\",\"reward_wining_description\":\"You earned {reward_points} reward points that can be used like coupons!\",\"none_wining_description\":\"Better luck next time! \"}];\n            const wheelId = 'lucky-wheel-69ff12b77418f';\n            const fullWheelImageUrl = \"https:\\\/\\\/www.ordertowin.com.au\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/wheel-2.png\";\n            const showBordersOverFullImage = false;\n            const canvas = document.getElementById(wheelId + '-canvas');\n            const ctx = canvas.getContext('2d');\n\n            const totalSlices = wheelData.length;\n            const sliceAngle = (2 * Math.PI) \/ totalSlices;\n            const pointerOffset = -Math.PI \/ 2; \/\/ Start from top (-90\u00b0)\n\n            let currentRotation = 0;\n            const sliceImageCache = {};\n            const fullWheelImage = {\n                loaded: false,\n                image: null\n            };\n\n            function loadFullWheelImage(url) {\n                if (!url) {\n                    return;\n                }\n                const img = new Image();\n                fullWheelImage.image = img;\n                img.onload = function() {\n                    fullWheelImage.loaded = true;\n                    drawWheel();\n                };\n                img.onerror = function() {\n                    fullWheelImage.loaded = false;\n                    fullWheelImage.image = null;\n                    drawWheel();\n                };\n                img.src = url;\n            }\n\n            function loadSliceImage(url) {\n                if (!url || sliceImageCache[url]) {\n                    return;\n                }\n\n                const img = new Image();\n                sliceImageCache[url] = { loaded: false, image: img };\n\n                img.onload = function() {\n                    sliceImageCache[url].loaded = true;\n                    drawWheel();\n                };\n                img.onerror = function() {\n                    delete sliceImageCache[url];\n                };\n                img.src = url;\n            }\n\n            if (fullWheelImageUrl) {\n                loadFullWheelImage(fullWheelImageUrl);\n            }\n            wheelData.forEach((slice) => {\n                if (slice.slice_bg_image_url) {\n                    loadSliceImage(slice.slice_bg_image_url);\n                }\n            });\n\n            \/\/ Function to wrap text into multiple lines\n            function wrapText(context, text, maxWidth, maxLines = 2) {\n                const words = text.split(' ');\n                const lines = [];\n                let currentLine = words[0];\n\n                for (let i = 1; i < words.length; i++) {\n                    const word = words[i];\n                    const width = context.measureText(currentLine + \" \" + word).width;\n                    if (width < maxWidth) {\n                        currentLine += \" \" + word;\n                    } else {\n                        lines.push(currentLine);\n                        currentLine = word;\n                        \/\/ Stop if we reach max lines\n                        if (lines.length >= maxLines - 1) {\n                            \/\/ Add ellipsis if text is too long\n                            if (i < words.length - 1) {\n                                currentLine += '...';\n                            }\n                            break;\n                        }\n                    }\n                }\n                lines.push(currentLine);\n                return lines;\n            }\n\n            \/\/ Draw static wheel (no rotation applied in drawing)\n            function drawWheel() {\n                const centerX = canvas.width \/ 2;\n                const centerY = canvas.height \/ 2;\n                const radius = Math.min(centerX, centerY) - 2;\n                \/\/ Responsive font size calculation\n                const isMobile = window.innerWidth < 768;\n                const fontSize = isMobile ? 20 : 20;\n\n                \/\/ Calculate maximum text width based on slice geometry\n                const maxTextWidth = radius * 0.8; \/\/ 60% of radius for text area\n\n                ctx.clearRect(0, 0, canvas.width, canvas.height);\n                ctx.save();\n                ctx.translate(centerX, centerY);\n\n                const isUsingFullImage = !!(fullWheelImageUrl && fullWheelImage.loaded && fullWheelImage.image);\n                const shouldDrawSliceLabels = !isUsingFullImage || showBordersOverFullImage;\n                if (isUsingFullImage) {\n                    ctx.save();\n                    ctx.beginPath();\n                    ctx.arc(0, 0, radius, 0, 2 * Math.PI);\n                    ctx.closePath();\n                    ctx.clip();\n                    ctx.drawImage(fullWheelImage.image, -radius, -radius, radius * 2, radius * 2);\n                    ctx.restore();\n                }\n\n                wheelData.forEach((slice, index) => {\n                    const startAngle = pointerOffset + (index * sliceAngle);\n                    const endAngle = startAngle + sliceAngle;\n                    const centerAngle = startAngle + (sliceAngle \/ 2);\n                    const borderColor = slice.slice_color || '#ff0000';\n\n                    if (!isUsingFullImage) {\n                        \/\/ Draw slice background (color or per-slice image)\n                        ctx.beginPath();\n                        ctx.moveTo(0, 0);\n                        ctx.arc(0, 0, radius, startAngle, endAngle);\n                        ctx.closePath();\n\n                        const bgColor = slice.slice_bg_color || ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FECA57', '#FF9FF3'][index % 6];\n                        const imageUrl = slice.slice_bg_image_url || '';\n                        const cachedImage = imageUrl ? sliceImageCache[imageUrl] : null;\n\n                        if (cachedImage && cachedImage.loaded) {\n                            ctx.save();\n                            ctx.clip();\n                            ctx.rotate(centerAngle);\n                            ctx.drawImage(cachedImage.image, -radius, -radius, radius * 2, radius * 2);\n                            ctx.restore();\n                        } else {\n                            ctx.fillStyle = bgColor;\n                            ctx.fill();\n                        }\n                        ctx.strokeStyle = borderColor;\n                        ctx.lineWidth = 1;\n                        ctx.stroke();\n                    } else if (showBordersOverFullImage) {\n                        \/\/ Draw slice borders above full wheel image if enabled\n                        ctx.beginPath();\n                        ctx.moveTo(0, 0);\n                        ctx.arc(0, 0, radius, startAngle, endAngle);\n                        ctx.closePath();\n                        ctx.strokeStyle = borderColor;\n                        ctx.lineWidth = 1;\n                        ctx.stroke();\n                    }\n\n                    if (shouldDrawSliceLabels) {\n                        \/\/ Draw text with wrapping\n                        ctx.save();\n                        ctx.rotate(centerAngle);\n                        ctx.textAlign = 'center';\n                        ctx.textBaseline = 'middle';\n                        ctx.font = `bold ${fontSize}px Arial`;\n                        ctx.fillStyle = slice.slice_font_color || '#000000';\n\n                        const text = slice.slice_label || 'Slice ' + (index + 1);\n\n                        \/\/ Set temporary font to calculate text width\n                        ctx.font = `bold ${fontSize}px Arial`;\n                        const textMetrics = ctx.measureText(text);\n\n                        \/\/ If text is too wide, wrap it\n                        if (textMetrics.width > maxTextWidth) {\n                            const lines = wrapText(ctx, text, maxTextWidth, 3); \/\/ Max 3 lines\n\n                            \/\/ Draw each line with vertical spacing\n                            const lineHeight = fontSize * 1.2;\n                            const totalHeight = lines.length * lineHeight;\n                            const startY = -totalHeight \/ 2 + lineHeight \/ 2;\n\n                            lines.forEach((line, lineIndex) => {\n                                ctx.fillText(line, radius * 0.6, startY + (lineIndex * lineHeight));\n                            });\n                        } else {\n                            \/\/ Single line text\n                            ctx.fillText(text, radius * 0.5, 0);\n                        }\n\n                        ctx.restore();\n                    }\n                });\n\n                ctx.restore();\n            }\n\n            window[wheelId + '_spinWheel'] = function(winnerSliceIndex) {\n                console.log('Spinning to slice index:', winnerSliceIndex);\n\n                const sliceAngleDeg = 360 \/ totalSlices;\n\n                \/\/ IMPORTANT: Remove transition temporarily to reset position instantly\n                canvas.style.transition = 'none';\n                canvas.style.transform = 'rotate(0deg)';\n                currentRotation = 0;\n\n                \/\/ Force browser to apply the reset before starting new animation\n                void canvas.offsetHeight; \/\/ Trigger reflow\n\n                \/\/ Now calculate the new spin\n                \/\/ Calculate how many degrees to rotate in 5 seconds at a reasonable speed\n                \/\/ 5 full rotations in 5 seconds = 1800 degrees (5 * 360)\n                const extraRotations = 5 * 360; \/\/ 5 full rotations for 5 seconds of spinning\n\n                \/\/ Calculate the center angle of the winning slice\n                const sliceCenterAngle = (winnerSliceIndex * sliceAngleDeg) + (sliceAngleDeg \/ 2);\n\n                \/\/ We want the slice center to land at the top (pointer position)\n                \/\/ Since pointer is at top (-90\u00b0 or 270\u00b0), we need to rotate so slice center aligns\n                const targetAngle = (360 - sliceCenterAngle);\n\n                \/\/ Add extra rotations for the 5 second spin\n                const finalRotation = extraRotations + targetAngle;\n\n                \/\/ Set animation duration to 5 seconds (5000ms) + original spin duration\n                const totalDuration = (5 * 1000) + 4000;\n\n                \/\/ Use setTimeout to ensure the reset has been applied before starting animation\n                setTimeout(() => {\n                    \/\/ Apply CSS rotation with extended duration\n                    canvas.style.transition = `transform ${totalDuration}ms cubic-bezier(0.17, 0.67, 0.12, 0.99)`;\n                    canvas.style.transform = `rotate(${finalRotation}deg)`;\n\n                    currentRotation = finalRotation % 360;\n\n                    console.log('Spinning for:', totalDuration + 'ms', 'Target slice:', winnerSliceIndex, 'Total rotation:', finalRotation + '\u00b0');\n                }, 50); \/\/ Small delay to ensure reset is applied\n\n                \/\/ Return the total duration so the form handler can use it\n                return totalDuration;\n            };\n\n            \/\/ Initial draw\n            drawWheel();\n\n            \/\/ Redraw on window resize for responsive text\n            window.addEventListener('resize', function() {\n                drawWheel();\n            });\n        })();\n    <\/script>         <div class=\"winner-modal\">         <div class=\"winner-content\">                             <button class=\"close-modal\">&times;<\/button>                         <div class=\"winner-modal-content\">                 <div style=\"text-align: center;padding: 20px;font-family: 'poppins'\">  <h1 style=\"color: #113171;margin-bottom: 20px\">Congratulations!<\/h1>  <h2>Your prize<\/h2>  <div style=\"background: linear-gradient(45deg, #ffd700, #ffed4a);padding: 20px;border-radius: 10px;margin: 20px 0\">  <h3 style=\"margin: 0;font-size: 24px;color: #52b6d5\"><\/h3>  <\/div>  <strong><\/strong>  <div style=\"margin: 20px 0;display: flex;flex-direction: column\">Winner:   Email:   <\/div>  <div style=\"margin-top: 30px;padding: 15px;background: #f8f9fa;border-radius: 8px\">  <p style=\"margin: 0;font-size: 14px;color: #000\"><strong>Instant winners will receive their voucher within 2 business days.<\/strong>  <strong>Winners of the <span style=\"color: #ff0000\">weekly draw for $250<\/span> will be published on this site every Friday and will be notified by email.<\/strong><\/p>    <\/div>  <\/div>            <\/div>         <\/div>     <\/div>             <div class=\"wxgiveaway-details-modal\" style=\"display:none;\">             <div class=\"wxgiveaway-details-content\">                 <button type=\"button\" class=\"wxgiveaway-details-close\">&times;<\/button>                 <div class=\"wxgiveaway-details-modal-header\">                     <div style=\"text-align: center;padding: 30px 30px 30px;font-family: 'arial';background-color: #041d47\">  <div>  <h2 style=\"color: #fff;margin: 0 0 10px\"><span style=\"color: #f2bb13\">Awesome! <\/span>Now let us know where to send the prize!<\/h2>  <\/div>  <div style=\"background: linear-gradient(45deg, #444, #999);padding: 16px;border-radius: 10px;margin: 0 0 15px\">  <h3 style=\"margin: 0;font-size: 22px;color: #f2bb13\">{slice_label}<\/h3>  <\/div>  <\/div>                <\/div>                 <form class=\"wxgiveaway-details-form\">                     <input type=\"hidden\" name=\"winner_id\" value=\"\">                     <input type=\"hidden\" name=\"slice_label\" value=\"\">                     <input type=\"hidden\" name=\"win_description\" value=\"\">                     <div class=\"wxgiveaway-details-error\" style=\"display:none;\"><\/div>                                              <label for=\"wxgiveaway-details-name\">Full Name *<\/label>                         <input id=\"wxgiveaway-details-name\" type=\"text\" name=\"customer_name\" required>                                                                  <label for=\"wxgiveaway-details-business\">Business Name *<\/label>                         <input id=\"wxgiveaway-details-business\" type=\"text\" name=\"customer_business\" required>                                                                  <label for=\"wxgiveaway-details-business-address\">Business Address *<\/label>                         <input id=\"wxgiveaway-details-business-address\" type=\"text\" name=\"customer_business_address\" required>                                                                  <label for=\"wxgiveaway-details-email\">Email Address *<\/label>                         <input id=\"wxgiveaway-details-email\" type=\"email\" name=\"customer_email\" required>                                                                  <label for=\"wxgiveaway-details-phone\">Phone Number *<\/label>                         <input id=\"wxgiveaway-details-phone\" type=\"tel\" name=\"customer_phone\" required>                                          <button type=\"submit\" class=\"button button-primary\">Submit<\/button>                 <\/form>             <\/div>         <\/div>         <div class=\"wxgiveaway-survey-modal\" style=\"display:none;\">         <div class=\"wxgiveaway-survey-content\">                             <button type=\"button\" class=\"wxgiveaway-survey-close\">&times;<\/button>                         <h3>Prize Claim Survey<\/h3>             <form class=\"wxgiveaway-survey-form\">                 <input type=\"hidden\" name=\"winner_id\" value=\"\">                 <div class=\"wxgiveaway-survey-error\" style=\"display:none;\"><\/div>                  <fieldset>                     <legend>Do you have a swimming pool at home?<\/legend>                     <label><input type=\"radio\" name=\"pool_at_home\" value=\"yes\" required> Yes<\/label>                     <label><input type=\"radio\" name=\"pool_at_home\" value=\"no\"> No<\/label>                 <\/fieldset>                  <fieldset>                     <legend>Do you have children living at home?<\/legend>                     <label><input type=\"checkbox\" name=\"children_at_home[]\" value=\"baby_toddler_preschool\"> Yes, Baby\/Toddler\/Pre-school (0-4yr)<\/label>                     <label><input type=\"checkbox\" name=\"children_at_home[]\" value=\"primary_school\"> Yes, Primary School<\/label>                     <label><input type=\"checkbox\" name=\"children_at_home[]\" value=\"high_school\"> Yes, High School<\/label>                     <label><input type=\"checkbox\" name=\"children_at_home[]\" value=\"no_children\"> No<\/label>                 <\/fieldset>                  <fieldset>                     <legend>Have you lived in Australia for the past five years?<\/legend>                     <label><input type=\"radio\" name=\"lived_in_australia_five_years\" value=\"yes\" required> Yes<\/label>                     <label><input type=\"radio\" name=\"lived_in_australia_five_years\" value=\"no\"> No<\/label>                 <\/fieldset>                  <fieldset>                     <legend>Have you been boating or fishing in the past 12 months?<\/legend>                     <label><input type=\"radio\" name=\"boating_or_fishing_last_twelve_months\" value=\"yes\" required> Yes<\/label>                     <label><input type=\"radio\" name=\"boating_or_fishing_last_twelve_months\" value=\"no\"> No<\/label>                 <\/fieldset>                  <fieldset>                     <legend>Which is your age category?<\/legend>                     <select name=\"age_category\" required>                         <option value=\"\">Select age category<\/option>                         <option value=\"18-24\">18-24 years<\/option>                         <option value=\"25-44\">25-44 years<\/option>                         <option value=\"45-64\">45-64 years<\/option>                         <option value=\"65+\">65+<\/option>                     <\/select>                 <\/fieldset>                  <fieldset>                     <legend>Entrant Details<\/legend>                     <input type=\"text\" name=\"entrant_name\" placeholder=\"Name\" required>                     <input type=\"email\" name=\"entrant_email\" placeholder=\"Email\" required>                     <input type=\"tel\" name=\"entrant_phone\" placeholder=\"Mobile Phone number\" required>                     <input type=\"text\" name=\"entrant_postcode\" placeholder=\"Postcode\" required>                 <\/fieldset>                  <button type=\"submit\" class=\"button button-primary\">Claim Prize<\/button>             <\/form>         <\/div>     <\/div>      <style>         .winner-modal {             display: none;             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0,0,0,0.8);             z-index: 1000;             justify-content: center;             align-items: center;         }          .winner-content {             background: white;             padding: 40px;             border-radius: 20px;             text-align: center;             max-width: 500px;             position: relative;             animation: bounceIn 0.6s ease;         }          .winner-modal-content {             text-align: left;         }          .winner-modal-content h2,         .winner-modal-content h3,         .winner-modal-content h4 {             text-align: center;             margin-bottom: 20px;         }          .winner-modal-content .prize-highlight {             background: linear-gradient(45deg, #ffd700, #ffed4a);             padding: 20px;             border-radius: 10px;             margin: 20px 0;             text-align: center;             font-weight: bold;         }          .winner-modal-content .winner-info {             margin: 20px 0;             padding: 15px;             background: #f8f9fa;             border-radius: 8px;         }          .close-modal {             position: absolute;             top: 10px;             right: 15px;             background: none;             border: none;             font-size: 24px;             cursor: pointer;             z-index: 1001;         }         .wxgiveaway-details-modal {             display: none;             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0, 0, 0, 0.8);             z-index: 1002;             justify-content: center;             align-items: center;             overflow-y: auto;             padding: 20px;             box-sizing: border-box;         }         .wxgiveaway-details-content {             background: #fff;             border-radius: 12px;             max-width: 560px;             width: 100%;             max-height: 90vh;             overflow-y: auto;             padding: 20px;             position: relative;             box-sizing: border-box;         }         .wxgiveaway-details-content h3 {             margin-top: 0;             margin-bottom: 12px;         }         .wxgiveaway-details-content label {             display: block;             margin: 8px 0 4px;             font-weight: 600;         }         .wxgiveaway-details-content input {             width: 100%;             margin: 6px 0;             box-sizing: border-box;         }         .wxgiveaway-details-close {             position: absolute;             top: 8px;             right: 12px;             border: none;             background: transparent;             font-size: 24px;             cursor: pointer;         }         .wxgiveaway-details-error {             color: #b00020;             margin-bottom: 10px;         }         .wxgiveaway-survey-modal {             display: none;             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0, 0, 0, 0.8);             z-index: 1002;             justify-content: center;             align-items: center;             overflow-y: auto;             padding: 20px;             box-sizing: border-box;         }         .wxgiveaway-survey-content {             background: #fff;             border-radius: 12px;             max-width: 760px;             width: 100%;             max-height: 90vh;             overflow-y: auto;             padding: 20px;             position: relative;         }         .wxgiveaway-survey-content fieldset {             border: 1px solid #ddd;             border-radius: 8px;             padding: 12px;             margin: 0 0 12px;         }         .wxgiveaway-survey-content label {             display: block;             margin: 6px 0;         }         .wxgiveaway-survey-content select,         .wxgiveaway-survey-content input[type=\"text\"],         .wxgiveaway-survey-content input[type=\"email\"],         .wxgiveaway-survey-content input[type=\"tel\"] {             width: 100%;             margin: 6px 0;         }         .wxgiveaway-survey-close {             position: absolute;             top: 8px;             right: 12px;             border: none;             background: transparent;             font-size: 24px;             cursor: pointer;         }         .wxgiveaway-survey-error {             color: #b00020;             margin-bottom: 10px;         }          @keyframes bounceIn {             0% { transform: scale(0.3); opacity: 0; }             50% { transform: scale(1.05); }             70% { transform: scale(0.9); }             100% { transform: scale(1); opacity: 1; }         }          @media (max-width: 768px) {             .winner-content {                 max-width: 90%;                 padding: 20px;                 margin: 20px;             }         }     <\/style>      <script>\n        (function() {\n            const surveyEnabled = false;\n            const detailsAfterSpinEnabled = true;\n            const detailsModalHeaderTemplate = `<div style=\\\"text-align: center; padding: 30px 30px 30px; font-family: \\'arial\\'; background-color: #041d47;\\\">\r\n<div>\r\n<h2 style=\\\"color: #fff; margin: 0 0 10px;\\\"><span style=\\\"color: #f2bb13;\\\">Awesome! <\/span>Now let us know where to send the prize!<\/h2>\r\n<\/div>\r\n<div style=\\\"background: linear-gradient(45deg, #444, #999); padding: 16px; border-radius: 10px; margin: 0 0 15px;\\\">\r\n<h3 style=\\\"margin: 0; font-size: 22px; color: #f2bb13;\\\">{slice_label}<\/h3>\r\n<\/div>\r\n<\/div>`;\n            window.wxgiveawayRequireSurveyOnWinnerModal = surveyEnabled;\n\n            function escapeHtml(input) {\n                const div = document.createElement('div');\n                div.textContent = input || '';\n                return div.innerHTML;\n            }\n\n            function buildSurveyButton(winnerData) {\n                if (!surveyEnabled || !winnerData || !winnerData.winner_id || !!winnerData.is_none) {\n                    return '';\n                }\n\n                return `<button type=\"button\" class=\"button button-primary wxgiveaway-open-survey\"\n                            data-winner-id=\"${parseInt(winnerData.winner_id, 10)}\"\n                            data-name=\"${escapeHtml(winnerData.customer_name || '')}\"\n                            data-email=\"${escapeHtml(winnerData.customer_email || '')}\"\n                            data-phone=\"${escapeHtml(winnerData.customer_phone || '')}\">\n                            Claim Prize                        <\/button>`;\n            }\n\n            function applyWinnerDataToTemplate(content, winnerData) {\n                let processed = content;\n                processed = processed.replace(\/{customer_name}\/g, winnerData.customer_name || '');\n                processed = processed.replace(\/{customer_business}\/g, winnerData.customer_business || '');\n                processed = processed.replace(\/{customer_business_address}\/g, winnerData.customer_business_address || '');\n                processed = processed.replace(\/{customer_email}\/g, winnerData.customer_email || '');\n                processed = processed.replace(\/{customer_phone}\/g, winnerData.customer_phone || '');\n                processed = processed.replace(\/{win_description}\/g, winnerData.win_description || '');\n                processed = processed.replace(\/{coupon_code}\/g, winnerData.coupon_code || '');\n                processed = processed.replace(\/{slice_label}\/g, winnerData.slice_label || '');\n                processed = processed.replace(\/{discount_amount}\/g, winnerData.discount_amount || '');\n                processed = processed.replace(\/{discount_type}\/g, winnerData.discount_type || '');\n                processed = processed.replace(\/{expiry_date}\/g, winnerData.expiry_date || '');\n                processed = processed.replace(\/{tickets_count}\/g, winnerData.tickets_count || '');\n                processed = processed.replace(\/{valid_date}\/g, winnerData.valid_date || '');\n                processed = processed.replace(\/{giveaway_products}\/g, winnerData.giveaway_products || '');\n                processed = processed.replace(\/{reward_points}\/g, winnerData.reward_points || '');\n                processed = processed.replace(\/{no_prize_text}\/g, winnerData.no_prize_text || '');\n                return processed;\n            }\n\n            \/\/ Function to update modal content with actual winner data\n            window.wxgiveawayUpdateWinnerModal = function(winnerData, modalElement, options) {\n                const modal = modalElement || document.querySelector('.winner-modal');\n                const modalContent = modal ? modal.querySelector('.winner-modal-content') : null;\n\n                if (!modal || !modalContent) return;\n                const skipDetailsStep = options && options.skipDetailsStep;\n                const forceDetailsOnly = options && options.forceDetailsOnly;\n\n                if (winnerData && winnerData.is_none) {\n                    const noPrizeMessage = winnerData.no_prize_text || 'Better luck next time! Thanks for playing the wheel of fortune.';\n                    modalContent.innerHTML = `\n                        <div style=\"text-align:center;padding:20px;\">\n                            <h3 style=\"margin-bottom:12px;\">Better luck next time!<\/h3>\n                            <p style=\"margin:0;\">${noPrizeMessage}<\/p>\n                        <\/div>\n                    `;\n                    modal._wxgiveawayWinnerData = winnerData;\n                    modal.dataset.requireSurvey = '0';\n                    modal.style.display = 'flex';\n                    return;\n                }\n\n                \/\/ Replace variables with actual data\n                let content = `<div style=\\\"text-align: center; padding: 20px; font-family: \\'poppins\\';\\\">\r\n<h1 style=\\\"color: #113171; margin-bottom: 20px;\\\">Congratulations!<\/h1>\r\n<h2>Your prize<\/h2>\r\n<div style=\\\"background: linear-gradient(45deg, #ffd700, #ffed4a); padding: 20px; border-radius: 10px; margin: 20px 0;\\\">\r\n<h3 style=\\\"margin: 0; font-size: 24px; color: #52b6d5;\\\">{slice_label}<\/h3>\r\n<\/div>\r\n<strong>{win_description}<\/strong>\r\n<div style=\\\"margin: 20px 0; display: flex; flex-direction: column;\\\">Winner: {customer_name}\r\nEmail: {customer_email}\r\n{customer_phone}<\/div>\r\n<div style=\\\"margin-top: 30px; padding: 15px; background: #f8f9fa; border-radius: 8px;\\\">\r\n<p style=\\\"margin: 0; font-size: 14px; color: #000;\\\"><strong>Instant winners will receive their voucher within 2 business days.<\/strong>\r\n<strong>Winners of the <span style=\\\"color: #ff0000;\\\">weekly draw for $250<\/span> will be published on this site every Friday and will be notified by email.<\/strong><\/p>\r\n\r\n<\/div>\r\n<\/div>`;\n\n                \/\/ Replace all variables\n                content = applyWinnerDataToTemplate(content, winnerData);\n                content = content.replace(\/{survey}\/g, buildSurveyButton(winnerData));\n                content = content.replace(\/{details_button}\/g, '');\n\n                modalContent.innerHTML = content;\n                \/\/ If custom modal template forgot {survey}, inject the claim button fallback.\n                if (\n                    surveyEnabled &&\n                    winnerData &&\n                    winnerData.winner_id &&\n                    !winnerData.is_none &&\n                    !modalContent.querySelector('.wxgiveaway-open-survey')\n                ) {\n                    const fallbackSurveyButton = buildSurveyButton(winnerData);\n                    if (fallbackSurveyButton) {\n                        const fallbackWrap = document.createElement('div');\n                        fallbackWrap.style.marginTop = '20px';\n                        fallbackWrap.style.textAlign = 'center';\n                        fallbackWrap.innerHTML = fallbackSurveyButton;\n                        modalContent.appendChild(fallbackWrap);\n                    }\n                }\n                modal._wxgiveawayWinnerData = winnerData;\n                modal.dataset.requireSurvey = (surveyEnabled && winnerData && winnerData.winner_id && !winnerData.is_none) ? '1' : '0';\n\n                if (\n                    detailsAfterSpinEnabled &&\n                    winnerData &&\n                    winnerData.winner_id &&\n                    !winnerData.is_none &&\n                    (forceDetailsOnly || !skipDetailsStep)\n                ) {\n                    openDetailsModal(winnerData, modal);\n                    if (forceDetailsOnly) {\n                        modal.style.display = 'none';\n                    }\n                    return;\n                }\n\n                modal.style.display = 'flex';\n            };\n\n            window.wxgiveawayShowModalMessage = function(title, message, modalElement) {\n                const modal = modalElement || document.querySelector('.winner-modal');\n                const modalContent = modal ? modal.querySelector('.winner-modal-content') : null;\n\n                if (!modal || !modalContent) return;\n\n                const safeTitle = title || 'Error';\n                modalContent.innerHTML = `<h3>${safeTitle}<\/h3><p>${message}<\/p>`;\n                modal.dataset.requireSurvey = '0';\n                modal.style.display = 'flex';\n            };\n\n            function openSurveyWithData(container, winnerModal, winnerData) {\n                const surveyModal = container.querySelector('.wxgiveaway-survey-modal');\n                const form = surveyModal ? surveyModal.querySelector('.wxgiveaway-survey-form') : null;\n                if (!surveyModal || !form) return;\n\n                form.reset();\n                form.querySelector('input[name=\"winner_id\"]').value = winnerData.winner_id || '';\n                form.querySelector('input[name=\"entrant_name\"]').value = winnerData.customer_name || '';\n                form.querySelector('input[name=\"entrant_email\"]').value = winnerData.customer_email || '';\n                form.querySelector('input[name=\"entrant_phone\"]').value = winnerData.customer_phone || '';\n\n                if (winnerModal) {\n                    winnerModal.style.display = 'none';\n                }\n                surveyModal.style.display = 'flex';\n            }\n\n            function openSurveyFromButton(button) {\n                const container = button.closest('.wxgiveaway-lucky-wheel-container');\n                if (!container) return;\n                const winnerModal = container.querySelector('.winner-modal');\n                openSurveyWithData(container, winnerModal, {\n                    winner_id: button.getAttribute('data-winner-id') || '',\n                    customer_name: button.getAttribute('data-name') || '',\n                    customer_email: button.getAttribute('data-email') || '',\n                    customer_phone: button.getAttribute('data-phone') || '',\n                });\n            }\n\n            function openDetailsModal(winnerData, winnerModalElement) {\n                if (!detailsAfterSpinEnabled) {\n                    return;\n                }\n                const container = winnerModalElement ? winnerModalElement.closest('.wxgiveaway-lucky-wheel-container') : null;\n                if (!container) return;\n\n                const detailsModal = container.querySelector('.wxgiveaway-details-modal');\n                const detailsForm = detailsModal ? detailsModal.querySelector('.wxgiveaway-details-form') : null;\n                const detailsHeader = detailsModal ? detailsModal.querySelector('.wxgiveaway-details-modal-header') : null;\n                if (!detailsModal || !detailsForm) return;\n\n                const errorEl = detailsForm.querySelector('.wxgiveaway-details-error');\n                detailsForm.reset();\n\n                const winnerIdInput = detailsForm.querySelector('input[name=\"winner_id\"]');\n                const sliceLabelInput = detailsForm.querySelector('input[name=\"slice_label\"]');\n                const winDescriptionInput = detailsForm.querySelector('input[name=\"win_description\"]');\n                const nameInput = detailsForm.querySelector('input[name=\"customer_name\"]');\n                const businessInput = detailsForm.querySelector('input[name=\"customer_business\"]');\n                const businessAddressInput = detailsForm.querySelector('input[name=\"customer_business_address\"]');\n                const emailInput = detailsForm.querySelector('input[name=\"customer_email\"]');\n                const phoneInput = detailsForm.querySelector('input[name=\"customer_phone\"]');\n\n                if (winnerIdInput) winnerIdInput.value = winnerData.winner_id || '';\n                if (sliceLabelInput) sliceLabelInput.value = winnerData.slice_label || '';\n                if (winDescriptionInput) winDescriptionInput.value = winnerData.win_description || '';\n                if (nameInput) nameInput.value = winnerData.customer_name || '';\n                if (businessInput) businessInput.value = winnerData.customer_business || '';\n                if (businessAddressInput) businessAddressInput.value = winnerData.customer_business_address || '';\n                if (emailInput) emailInput.value = winnerData.customer_email || '';\n                if (phoneInput) phoneInput.value = winnerData.customer_phone || '';\n                detailsForm.dataset.winnerData = JSON.stringify(winnerData || {});\n                if (detailsHeader) {\n                    detailsHeader.innerHTML = applyWinnerDataToTemplate(detailsModalHeaderTemplate, winnerData || {});\n                }\n                if (errorEl) {\n                    errorEl.textContent = '';\n                    errorEl.style.display = 'none';\n                }\n\n                if (winnerModalElement) {\n                    winnerModalElement.style.display = 'none';\n                }\n                detailsModal.style.display = 'flex';\n            }\n\n            function setupSurveyHandlers() {\n                document.addEventListener('click', function(e) {\n                    const surveyTrigger = e.target.closest('.wxgiveaway-open-survey');\n                    if (surveyTrigger) {\n                        e.preventDefault();\n                        openSurveyFromButton(surveyTrigger);\n                        return;\n                    }\n\n                    const closeButton = e.target.closest('.wxgiveaway-survey-close');\n                    if (closeButton) {\n                        const surveyModal = closeButton.closest('.wxgiveaway-survey-modal');\n                        const container = closeButton.closest('.wxgiveaway-lucky-wheel-container');\n                        const winnerModal = container ? container.querySelector('.winner-modal') : null;\n                        if (surveyModal) surveyModal.style.display = 'none';\n                        if (winnerModal) winnerModal.style.display = 'flex';\n                    }\n\n                    const closeDetailsButton = e.target.closest('.wxgiveaway-details-close');\n                    if (closeDetailsButton) {\n                        const detailsModal = closeDetailsButton.closest('.wxgiveaway-details-modal');\n                        const container = closeDetailsButton.closest('.wxgiveaway-lucky-wheel-container');\n                        const winnerModal = container ? container.querySelector('.winner-modal') : null;\n                        if (detailsModal) detailsModal.style.display = 'none';\n                        if (winnerModal && !detailsAfterSpinEnabled) winnerModal.style.display = 'flex';\n                    }\n                });\n\n                document.addEventListener('submit', function(e) {\n                    if (e.target.classList.contains('wxgiveaway-details-form')) {\n                        e.preventDefault();\n\n                        const form = e.target;\n                        const detailsModal = form.closest('.wxgiveaway-details-modal');\n                        const container = form.closest('.wxgiveaway-lucky-wheel-container');\n                        const winnerModal = container ? container.querySelector('.winner-modal') : null;\n                        const errorEl = form.querySelector('.wxgiveaway-details-error');\n                        const formData = new FormData(form);\n                        formData.append('action', 'wxgiveaway_submit_winner_details');\n                        formData.append('nonce', '73cd95c0bc');\n\n                        if (errorEl) {\n                            errorEl.textContent = '';\n                            errorEl.style.display = 'none';\n                        }\n\n                        fetch('https:\/\/wheel.loyaltyrewards.au\/wp-admin\/admin-ajax.php', {\n                            method: 'POST',\n                            body: formData\n                        })\n                        .then(response => response.json())\n                        .then(data => {\n                            if (!data.success) {\n                                if (errorEl) {\n                                    errorEl.textContent = (data.data && data.data.message) ? data.data.message : 'Unable to submit details.';\n                                    errorEl.style.display = 'block';\n                                }\n                                return;\n                            }\n\n                            if (detailsModal) detailsModal.style.display = 'none';\n                            if (winnerModal && window.wxgiveawayUpdateWinnerModal) {\n                                let winnerData = {};\n                                try {\n                                    winnerData = JSON.parse(form.dataset.winnerData || '{}');\n                                } catch (error) {\n                                    winnerData = {};\n                                }\n                                winnerData.customer_name = formData.get('customer_name') || winnerData.customer_name || '';\n                                winnerData.customer_business = formData.get('customer_business') || winnerData.customer_business || '';\n                                winnerData.customer_business_address = formData.get('customer_business_address') || winnerData.customer_business_address || '';\n                                winnerData.customer_email = formData.get('customer_email') || winnerData.customer_email || '';\n                                winnerData.customer_phone = formData.get('customer_phone') || winnerData.customer_phone || '';\n                                if (data.data && data.data.slice_data) {\n                                    winnerData.win_description = data.data.slice_data.details || winnerData.win_description || '';\n                                    winnerData.coupon_code = data.data.slice_data.coupon_code || winnerData.coupon_code || '';\n                                    winnerData.discount_amount = data.data.slice_data.discount_amount || winnerData.discount_amount || '';\n                                    winnerData.discount_type = data.data.slice_data.discount_type || winnerData.discount_type || '';\n                                    winnerData.expiry_date = data.data.slice_data.expiry_date || winnerData.expiry_date || '';\n                                    winnerData.tickets_count = data.data.slice_data.tickets_count || winnerData.tickets_count || '';\n                                    winnerData.reward_points = data.data.slice_data.reward_points || winnerData.reward_points || '';\n                                    winnerData.slice_label = data.data.slice_data.slice_label || winnerData.slice_label || '';\n                                    winnerData.is_none = !!data.data.slice_data.is_none;\n                                    winnerData.no_prize_text = data.data.slice_data.no_prize_text || winnerData.no_prize_text || '';\n                                }\n                                window.wxgiveawayUpdateWinnerModal(winnerData, winnerModal, { skipDetailsStep: true });\n                            } else if (winnerModal) {\n                                winnerModal.style.display = 'none';\n                            }\n                        })\n                        .catch(() => {\n                            if (errorEl) {\n                                errorEl.textContent = 'Network error while submitting details.';\n                                errorEl.style.display = 'block';\n                            }\n                        });\n                        return;\n                    }\n\n                    if (!e.target.classList.contains('wxgiveaway-survey-form')) {\n                        return;\n                    }\n                    e.preventDefault();\n\n                    const form = e.target;\n                    const surveyModal = form.closest('.wxgiveaway-survey-modal');\n                    const container = form.closest('.wxgiveaway-lucky-wheel-container');\n                    const winnerModal = container ? container.querySelector('.winner-modal') : null;\n                    const errorEl = form.querySelector('.wxgiveaway-survey-error');\n                    const selectedChildren = form.querySelectorAll('input[name=\"children_at_home[]\"]:checked');\n\n                    if (selectedChildren.length === 0) {\n                        if (errorEl) {\n                            errorEl.style.display = 'block';\n                            errorEl.textContent = 'Please select at least one option for children living at home.';\n                        }\n                        return;\n                    }\n\n                    if (errorEl) {\n                        errorEl.style.display = 'none';\n                        errorEl.textContent = '';\n                    }\n\n                    const formData = new FormData(form);\n                    formData.append('action', 'wxgiveaway_submit_winner_survey');\n                    formData.append('nonce', 'e004497e4d');\n\n                    fetch('https:\/\/wheel.loyaltyrewards.au\/wp-admin\/admin-ajax.php', {\n                        method: 'POST',\n                        body: formData\n                    })\n                    .then(response => response.json())\n                    .then(data => {\n                        if (!data.success) {\n                            if (errorEl) {\n                                errorEl.style.display = 'block';\n                                errorEl.textContent = (data.data && data.data.message) ? data.data.message : 'Unable to submit survey.';\n                            }\n                            return;\n                        }\n\n                        const submittedWinnerId = (data.data && data.data.winner_id) ? String(data.data.winner_id) : '';\n                        const successText = submittedWinnerId\n                            ? 'Your prize claim survey was submitted successfully.' + ' (ID: ' + submittedWinnerId + ')'\n                            : 'Your prize claim survey was submitted successfully.';\n\n                        if (surveyModal) surveyModal.style.display = 'none';\n                        if (winnerModal && window.wxgiveawayShowModalMessage) {\n                            window.wxgiveawayShowModalMessage(\n                                'Success',\n                                successText,\n                                winnerModal\n                            );\n                        } else if (winnerModal) {\n                            winnerModal.style.display = 'none';\n                        }\n                    })\n                    .catch(() => {\n                        if (errorEl) {\n                            errorEl.style.display = 'block';\n                            errorEl.textContent = 'Network error while submitting survey.';\n                        }\n                    });\n                });\n\n            }\n\n            setupSurveyHandlers();\n        })();\n    <\/script>         <\/div>      <style>         .wxgiveaway-lucky-wheel-container {             display: flex;             gap: 30px;             background: #000000;             margin: 0 auto;             padding: 20px;             \/*flex-wrap: wrap;*\/             box-shadow: 0 4px 15px rgba(0,0,0,0.1);         }          \/* Popup Styles *\/         .wxgiveaway-lucky-wheel-popup {             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             z-index: 999999;         }          .wxgiveaway-popup-overlay {             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0,0,0,0.7);             z-index: 1;         }          .wxgiveaway-popup-container {             position: fixed;             top: 50%;             left: 50%;             transform: translate(-50%, -50%);             z-index: 2;             max-width: 90%;             max-height: 90%;             overflow: auto;             background: transparent;         }          .wxgiveaway-popup-content {             position: relative;             background: transparent;             border-radius: 15px;         }          .wxgiveaway-close-popup {             position: absolute;             top: 10px;             right: 15px;             background: none;             border: none;             font-size: 24px;             cursor: pointer;             z-index: 3;             color: #333;         }          \/* Floating Modal Styles *\/         .wxgiveaway-floating-modal {             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             z-index: 999999;         }          .wxgiveaway-modal-overlay {             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0,0,0,0.7);             z-index: 1;         }          .wxgiveaway-modal-container {             position: fixed;             top: 50%;             left: 50%;             transform: translate(-50%, -50%);             z-index: 2;             max-width: 95%;             max-height: 95%;             width: max-content;             overflow: auto;             background: transparent;         }          .wxgiveaway-modal-content {             position: relative;             background: transparent;             border-radius: 15px;         }          .wxgiveaway-close-modal {             position: absolute;             top: 5px;             right: 5px;             background: none;             border: none;             font-size: 30px;             cursor: pointer;             z-index: 3;             color: white;             width: 40px;             height: 40px;             border-radius: 50%;             display: flex;             align-items: center;             justify-content: center;         }          .wxgiveaway-close-modal:hover {             background: rgba(255,255,255,0.1);         }          \/* Floating Icon Styles *\/         .wxgiveaway-floating-icon {             position: fixed;             bottom: 20px;             left: 20px;             width: 60px;             height: 60px;             background: linear-gradient(45deg, #4ecdc4, #44a08d);             border-radius: 50%;             display: flex;             align-items: center;             justify-content: center;             cursor: pointer;             z-index: 99999;             box-shadow: 0 4px 15px rgba(0,0,0,0.3);             transition: all 0.3s ease;         }          .wxgiveaway-floating-icon:hover {             transform: scale(1.1);             box-shadow: 0 6px 20px rgba(0,0,0,0.4);         }          .wxgiveaway-floating-icon svg {             width: 30px;             height: 30px;             fill: white;         }          .wheel-form-container {             flex: 1;             min-width: 300px;             color: #ffffff;             padding: 30px;         }          .wheel-container {             flex: 1;             min-width: 300px;             display: flex;             flex-direction: column;             align-items: center;             justify-content: center;             text-align: center;         }          .wheel-media img {             max-width: 100%;             height: auto;             display: block;             margin: 0 auto 15px;         }          .wheel-caption {             margin-top: 12px;             max-width: 420px;         }          .wheel-caption p {             margin: 0;         }          .wheel-wrapper {             position: relative;             margin-bottom: 20px;         }          .wheel-wrapper canvas {             width: 100%;             border-radius: 50%;             box-shadow: 0 8px 30px rgba(0,0,0,0.3);             transition: transform 4000ms cubic-bezier(0.23, 1, 0.32, 1);         }          .wheel-pointer {             position: absolute;             top: -10px;             left: 50%;             transform: translateX(-50%);             width: 0;             height: 0;             border-left: 20px solid transparent;             border-right: 20px solid transparent;             border-top: 30px solid #ff0000;             z-index: 10;             filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));         }          .wheel-center-circle {             position: absolute;             top: 50%;             left: 50%;             transform: translate(-50%, -50%);             width: 40px;             height: 40px;             background: linear-gradient(145deg, #210099, #123bde);             border-radius: 50%;             box-shadow: 0 0 20px #123bde80;             z-index: 10;             display: flex;             align-items: center;             justify-content: center;         }          .wheel-center-circle::before {             content: '';             position: absolute;             width: 10px;             height: 10px;             background: #fff;             border-radius: 50%;         }          .wheel-form {             display: flex;             flex-direction: column;             margin-top: 20px;         }          .lucky-wheel-form-group {             display: flex;             flex-direction: column;         }          .lucky-wheel-form-group label {             font-weight: 600;         }          .lucky-wheel-form-group input,         .lucky-wheel-form-group select {             padding: 12px;             border: 2px solid #ddd;             border-radius: 8px;             font-size: 16px;             transition: border-color 0.3s ease;         }          .lucky-wheel-form-group input:focus {             outline: none;             border-color: #ff6b6b;         }          .lucky-wheel-form-group input[readonly] {             background-color: #f3f3f3;             color: #666;             cursor: not-allowed;         }          .lucky-wheel-error-success-message{             color: red;         }          .lucky-wheel-submit-button {             padding: 15px;             background: linear-gradient(45deg, #4ecdc4, #44a08d);             color: white;             border: none;             border-radius: 8px;             font-size: 16px;             font-weight: bold;             cursor: pointer;             transition: all 0.3s ease;             outline: none;             margin-top: 10px;         }          .lucky-wheel-submit-button:hover {             background: linear-gradient(45deg, #44a08d, #4ecdc4);             transform: translateY(-2px);             box-shadow: 0 5px 15px rgba(68, 160, 141, 0.3);         }          .checkbox-group {             display: flex;             align-items: flex-start;             gap: 10px;         }          .checkbox-group input[type=\"checkbox\"] {             width: auto;         }          .winner-modal {             display: none;             position: fixed;             top: 0;             left: 0;             width: 100%;             height: 100%;             background: rgba(0,0,0,0.8);             z-index: 1000;             justify-content: center;             align-items: center;         }          .winner-content {             background: white;             padding: 40px;             border-radius: 20px;             text-align: center;             max-width: 500px;             max-height: 90vh;             overflow-y: auto;             position: relative;             animation: bounceIn 0.6s ease;         }          .winner-title {             font-size: 32px;             color: #ff6b6b;             margin-bottom: 20px;             font-weight: bold;         }          .winner-prize {             font-size: 24px;             margin: 20px 0;             padding: 20px;             background: linear-gradient(45deg, #ffd700, #ffed4a);             border-radius: 10px;             font-weight: bold;         }          .close-modal {             position: absolute;             top: 10px;             right: 15px;             background: none;             border: none;             font-size: 24px;             cursor: pointer;         }          @keyframes bounceIn {             0% { transform: scale(0.3); opacity: 0; }             50% { transform: scale(1.05); }             70% { transform: scale(0.9); }             100% { transform: scale(1); opacity: 1; }         }          @media (max-width: 768px) {             .wxgiveaway-lucky-wheel-container {                 flex-direction: column;                 gap: 20px;                 padding: 15px;                 margin: 10px;             }              .wxgiveaway-popup-container,             .wxgiveaway-modal-container {                 max-width: 95%;                 max-height: 95%;             }              .wxgiveaway-modal-content {                 padding: 10px;             }              .wxgiveaway-close-modal {                 top: -35px;                 right: -5px;                 font-size: 25px;             }              .lucky-wheel {                 width: 300px;                 height: 300px;             }              .wheel-slice {                 font-size: 12px;                 padding: 5px;             }         }     <\/style>      <script>\n        (function() {\n            \/\/ Use IIFE and closure to avoid conflicts\n            const wheelId = 'lucky-wheel-69ff12b77418f';\n            const wxgiveawayMessages = {\"required_fields\":\"Please fill in all required fields.\",\"accept_terms\":\"Please accept the terms and conditions.\",\"invalid_email\":\"Please enter a valid email address.\",\"invalid_phone\":\"Please enter a valid phone number.\",\"invalid_phone_digits\":\"Please enter a valid phone number with at least 10 digits.\",\"general_error\":\"Error occurred. Please try again.\",\"network_error\":\"Network error occurred. Please check your connection and try again.\"};\n\n            function initWheel() {\n                const wheelContainer = document.getElementById(wheelId);\n                if (!wheelContainer) {\n                    console.error('Wheel container not found:', wheelId);\n                    return;\n                }\n\n                const form = wheelContainer.querySelector('.wheel-form');\n                const submitButton = form ? form.querySelector('.lucky-wheel-submit-button') : null;\n                const errorMessage = form ? form.querySelector('.lucky-wheel-error-success-message') : null;\n                const modal = wheelContainer.querySelector('.winner-modal');\n                const closeModal = modal ? modal.querySelector('.close-modal') : null;\n\n                if (!form || !submitButton) {\n                    console.error('Form or submit button not found in:', wheelId);\n                    return;\n                }\n\n                let isSpinning = false;\n\n                \/\/ Validation functions\n                function isValidEmail(email) {\n                    const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n                    return emailRegex.test(email);\n                }\n\n                function isValidPhone(phone) {\n                    \/\/ Basic phone validation - allows numbers, spaces, parentheses, hyphens, plus sign\n                    \/\/ You can adjust this regex based on your specific requirements\n                    const phoneRegex = \/^[\\+]?[0-9\\s\\-\\(\\)]{10,}$\/;\n                    return phoneRegex.test(phone.replace(\/\\s\/g, ''));\n                }\n\n                function validateForm() {\n                    const requiredFields = form.querySelectorAll('[required]');\n                    let isValid = true;\n                    let errorMessages = [];\n\n                    \/\/ Clear previous error styles\n                    requiredFields.forEach(field => {\n                        field.style.borderColor = '';\n                        const label = form.querySelector(`label[for=\"${field.id}\"]`);\n                        if (label) label.style.color = '';\n                    });\n\n                    \/\/ Validate required fields\n                    requiredFields.forEach(field => {\n                        if (field.type === 'checkbox') {\n                            if (!field.checked) {\n                                isValid = false;\n                                field.style.borderColor = '#ff0000';\n                                const label = form.querySelector(`label[for=\"${field.id}\"]`);\n                                if (label) label.style.color = '#ff0000';\n                                errorMessages.push(wxgiveawayMessages.accept_terms);\n                            }\n                        } else {\n                            if (!field.value.trim()) {\n                                isValid = false;\n                                field.style.borderColor = '#ff0000';\n                                errorMessages.push(wxgiveawayMessages.required_fields);\n                            } else {\n                                \/\/ Specific field validations\n                                if (field.type === 'email' && field.value.trim()) {\n                                    if (!isValidEmail(field.value.trim())) {\n                                        isValid = false;\n                                        field.style.borderColor = '#ff0000';\n                                        errorMessages.push(wxgiveawayMessages.invalid_email);\n                                    }\n                                }\n\n                                if (field.type === 'tel' && field.value.trim()) {\n                                    if (!isValidPhone(field.value.trim())) {\n                                        isValid = false;\n                                        field.style.borderColor = '#ff0000';\n                                        errorMessages.push(wxgiveawayMessages.invalid_phone);\n                                    }\n                                }\n                            }\n                        }\n                    });\n\n                    return {\n                        isValid: isValid,\n                        messages: [...new Set(errorMessages)] \/\/ Remove duplicates\n                    };\n                }\n\n                \/\/ Real-time validation\n                function setupRealTimeValidation() {\n                    const emailField = form.querySelector('#customer_email');\n                    const phoneField = form.querySelector('#customer_phone');\n\n                    if (emailField) {\n                        emailField.addEventListener('blur', function() {\n                            if (this.value.trim() && !isValidEmail(this.value.trim())) {\n                                this.style.borderColor = '#ff0000';\n                                showErrorMessage(wxgiveawayMessages.invalid_email);\n                            } else {\n                                this.style.borderColor = '';\n                            }\n                        });\n                    }\n\n                    if (phoneField) {\n                        phoneField.addEventListener('blur', function() {\n                            if (this.value.trim() && !isValidPhone(this.value.trim())) {\n                                this.style.borderColor = '#ff0000';\n                                showErrorMessage(wxgiveawayMessages.invalid_phone);\n                            } else {\n                                this.style.borderColor = '';\n                            }\n                        });\n                    }\n\n                    \/\/ Clear error message when user starts typing\n                    const inputs = form.querySelectorAll('input, select, textarea');\n                    inputs.forEach(input => {\n                        input.addEventListener('input', function() {\n                            if (errorMessage) {\n                                errorMessage.innerHTML = \"\";\n                                errorMessage.style.display = 'none';\n                            }\n                            this.style.borderColor = '';\n                        });\n                    });\n                }\n\n                function showErrorMessage(message) {\n                    if (window.wxgiveawayShowModalMessage) {\n                        window.wxgiveawayShowModalMessage(\n                            'Error',\n                            message,\n                            modal\n                        );\n                        return;\n                    }\n\n                    if (errorMessage) {\n                        errorMessage.innerHTML = message;\n                        errorMessage.style.display = 'block';\n                        errorMessage.style.color = '#ff0000';\n\n                        setTimeout(function() {\n                            errorMessage.innerHTML = \"\";\n                            errorMessage.style.display = 'none';\n                        }, 7000);\n                    }\n                }\n\n                function showSuccessMessage(message) {\n                    if (errorMessage) {\n                        errorMessage.innerHTML = message;\n                        errorMessage.style.display = 'block';\n                        errorMessage.style.color = '#008000';\n\n                        setTimeout(function() {\n                            errorMessage.innerHTML = \"\";\n                            errorMessage.style.display = 'none';\n                        }, 5000);\n                    }\n                }\n\n                submitButton.addEventListener('click', function(e) {\n                    e.preventDefault();\n                    e.stopPropagation();\n\n                    const originalButtonText = submitButton.innerHTML;\n                    submitButton.innerHTML = \"Processing...\";\n                    submitButton.disabled = true;\n\n                    if (isSpinning) {\n                        submitButton.innerHTML = originalButtonText;\n                        submitButton.disabled = false;\n                        return;\n                    }\n\n                    \/\/ Validate form\n                    const validation = validateForm();\n\n                    if (!validation.isValid) {\n                        showErrorMessage(validation.messages.join('<br>'));\n                        submitButton.innerHTML = originalButtonText;\n                        submitButton.disabled = false;\n                        return;\n                    }\n\n                    const formData = new FormData();\n                    const inputs = form.querySelectorAll('input, select, textarea');\n                    inputs.forEach(input => {\n                        if (input.type === 'checkbox' || input.type === 'radio') {\n                            if (input.checked) {\n                                formData.append(input.name, input.value || 'on');\n                            }\n                        } else {\n                            formData.append(input.name, input.value);\n                        }\n                    });\n                    formData.append('action', 'wxgiveaway_spin_wheel');\n                    formData.append('nonce', '90f909a68b');\n\n                    fetch('https:\/\/wheel.loyaltyrewards.au\/wp-admin\/admin-ajax.php', {\n                        method: 'POST',\n                        body: formData\n                    })\n                        .then(response => response.json())\n                        .then(data => {\n                            if (data.success) {\n                                isSpinning = true;\n\n                                inputs.forEach(input => {\n                                    if (input.type === 'checkbox' || input.type === 'radio') {\n                                        input.checked = false;\n                                    } else if (input.type !== 'button' && input.type !== 'submit') {\n                                        input.value = '';\n                                    }\n                                });\n\n                                if (window[wheelId + '_spinWheel']) {\n                                    window[wheelId + '_spinWheel'](data.data.winner_slice_index);\n                                }\n                                const spinTotalDuration = (5 * 1000) + 4000;\n\n                                setTimeout(() => {\n                                    showWinner(data.data.slice_data, data.data.customer_data);\n                                    isSpinning = false;\n                                }, spinTotalDuration + 500);\n\n                                submitButton.innerHTML = originalButtonText;\n                                submitButton.disabled = false;\n                            } else {\n                                console.error('Lucky Wheel error response:', data);\n                                showErrorMessage(data.data.message || wxgiveawayMessages.general_error);\n                                submitButton.innerHTML = originalButtonText;\n                                submitButton.disabled = false;\n                            }\n                        })\n                        .catch(error => {\n                            console.error('Error:', error);\n                            showErrorMessage(wxgiveawayMessages.network_error);\n                            submitButton.innerHTML = originalButtonText;\n                            submitButton.disabled = false;\n                        });\n                });\n\n                function showWinner(sliceData, customerData = {}) {\n                    if (!modal) return;\n\n                    \/\/ Prepare winner data for modal\n                    const winnerData = {\n                        winner_id: customerData.winner_id || 0,\n                        customer_name: customerData.name || '',\n                        customer_business: customerData.business || '',\n                        customer_business_address: customerData.business_address || '',\n                        customer_email: customerData.email || '',\n                        customer_phone: customerData.phone || '',\n                        win_description: sliceData.details || '',\n                        coupon_code: sliceData.coupon_code || '',\n                        discount_amount: sliceData.discount_amount || '',\n                        discount_type: sliceData.discount_type || '',\n                        expiry_date: sliceData.expiry_date || '',\n                        tickets_count: sliceData.tickets_count || '',\n                        valid_date: sliceData.expiry_date || '', \/\/ Using expiry_date for valid_date\n                        giveaway_products: sliceData.giveaway_products || '',\n                        reward_points: sliceData.reward_points || '',\n                        slice_label: sliceData.slice_label || '',\n                        is_none: sliceData.is_none || false,\n                        no_prize_text: sliceData.no_prize_text || ''\n                    };\n\n                    \/\/ Use the global function to update modal content\n                    if (window.wxgiveawayUpdateWinnerModal) {\n                        window.wxgiveawayUpdateWinnerModal(winnerData, modal, { forceDetailsOnly: true });\n                    } else {\n                        modal.innerHTML = `\n                        <div>\n                            <p>Congratulations!<\/p>\n                            <p>${sliceData.slice_label}<\/p>\n                            <p>${sliceData.details}<\/p>\n                        <\/div>\n                    `;\n                        modal.style.display = 'flex';\n                    }\n                }\n\n                if (closeModal) {\n                    closeModal.addEventListener('click', function() {\n                        if (modal && modal.dataset.requireSurvey === '1') {\n                            return;\n                        }\n                        modal.style.display = 'none';\n                        if (form) form.style.display = 'flex';\n                    });\n                }\n\n                if (modal) {\n                    modal.addEventListener('click', function(e) {\n                        if (modal.dataset.requireSurvey === '1') {\n                            return;\n                        }\n                        if (e.target === modal) {\n                            if (closeModal) {\n                                closeModal.click();\n                            } else {\n                                modal.style.display = 'none';\n                                if (form) form.style.display = 'flex';\n                            }\n                        }\n                    });\n                }\n\n                \/\/ Initialize real-time validation\n                setupRealTimeValidation();\n            }\n\n            \/\/ Initialize when DOM is ready\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', initWheel);\n            } else {\n                \/\/ DOM already loaded, initialize immediately\n                initWheel();\n            }\n        })();\n    <\/script>     <\/div> \t\t\t\t\t\t<\/div> \t\t\t\t\t<\/div> \t\t<\/div> \t\t\t\t\t<\/div> \t\t<\/section> \t\t\t\t<section data-ka-cursor-size=\"1\" class=\"elementor-section elementor-top-section elementor-element elementor-element-8a96e8c kng-custom-css-yes elementor-section-boxed elementor-section-height-default elementor-section-height-default wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no\" data-id=\"8a96e8c\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;kng_custom_css_switch&quot;:&quot;yes&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\"> \t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\"> \t\t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f60fab0\" data-id=\"f60fab0\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\"> \t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\"> \t\t\t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-element elementor-element-6114b42 elementor-widget elementor-widget-menu-anchor\" data-id=\"6114b42\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\" data-widget_type=\"menu-anchor.default\"> \t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"terms\"><\/div> \t\t\t\t\t\t<\/div> \t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-element elementor-element-5152b6f elementor-widget elementor-widget-heading\" data-id=\"5152b6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\" data-widget_type=\"heading.default\"> \t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><span style=\"color: #062a61\"><strong>Order to Win \u2014 <span style=\"color: #d5a651\">Double Your Chances<\/span> - <\/strong><\/span><strong><span style=\"color: #062a61\">May 2026 Promotion -<\/span> <span style=\"color: #d5a651\">Terms and Conditions<\/span><\/strong><\/h2>\t\t\t\t<\/div> \t\t\t\t<div data-ka-cursor-size=\"1\" class=\"elementor-element elementor-element-a4d4315 terms kng-custom-css-yes elementor-widget elementor-widget-text-editor\" data-id=\"a4d4315\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;kng_custom_css_switch&quot;:&quot;yes&quot;,&quot;kng_custom_css&quot;:&quot;[current-element] { text-align: justify; }\\n\\n&quot;,&quot;kng_cursor_interaction&quot;:&quot;default&quot;,&quot;kng_cursor_magnetic&quot;:&quot;none&quot;,&quot;kng_cursor_size_multiplier&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\" data-widget_type=\"text-editor.default\"> \t\t\t\t\t\t\t\t\t<h2>1. General<\/h2><p><strong>1.1\u00a0 <\/strong>Information on how to enter and the prize(s) form part of these Terms and Conditions. Participation in this promotion is deemed acceptance of these Terms and Conditions.<\/p><h2>2. Eligibility<\/h2><p><strong>2.1\u00a0 <\/strong>Entry is open to Australian residents aged 18 years or over.<\/p><p><strong>2.2\u00a0 <\/strong>Employees (and their immediate families) of the Promoter and agencies associated with this promotion are ineligible to enter. Immediate family means any of the following: spouse, ex-spouse, de facto spouse, child or stepchild (whether natural or by adoption), parent, stepparent, grandparent, step-grandparent, uncle, aunt, niece, nephew, brother, sister, stepbrother, stepsister, or first cousin.<\/p><h2>3. Promotional Period<\/h2><p><strong>3.1\u00a0 <\/strong>Entries into the promotion open on 01\/05\/2025 and close at 11:59pm AEST on 31\/05\/2025 (\u201cPromotional Period\u201d).<\/p><h2>4. Entry Requirements<\/h2><p><strong>4.1\u00a0 <\/strong>To be eligible to enter, individuals must purchase $100 or more of stock from an eligible tile ad on the sales portal in one transaction during the Promotional Period (\u201cQualifying Transaction\u201d). If a purchase receipt is not automatically provided at the time of making a Qualifying Transaction, it is the entrant\u2019s responsibility to request one.<\/p><p><strong>4.2\u00a0 <\/strong>To enter, individuals must undertake the following steps during the Promotional Period:<\/p><p>(a)\u00a0 Click on the link provided in the confirmation email from their eligible sale OR access the entry portal directly via the sales portal.<\/p><p>(b)\u00a0 Play the digital Order to Win \u201cDouble Your Chances\u201d prize wheel game and enter their details if required, including their name, email address, phone number, and postal address.<\/p><p>(c)\u00a0 Keep the browser open and successfully complete and submit their entry.<\/p><p><strong>4.3\u00a0 <\/strong>Each entrant will be notified instantly online whether or not they are an instant winner. As part of the \u201cDouble Your Chances\u201d mechanic, each Qualifying Transaction entitles the entrant to two (2) spins of the prize wheel. Multiple entries are permitted, subject to a maximum of two (2) spins per Qualifying Transaction.<\/p><p><strong>4.4\u00a0 <\/strong>Entrants must retain their original purchase receipt(s) for all entries as proof of purchase. Failure to produce proof of purchase for all entries when requested may, at the absolute discretion of the Promoter, result in invalidation of all of an entrant\u2019s entries and forfeiture of any right to a prize.<\/p><h2>5. Verification<\/h2><p><strong>5.1\u00a0 <\/strong>The Promoter reserves the right, at any time, to verify the validity of entries and entrants (including an entrant\u2019s identity, age, and place of residence) and reserves the right, in its sole discretion, to disqualify any individual the Promoter has reason to believe has breached any of these Terms and Conditions, tampered with the entry process, or engaged in any unlawful or other improper misconduct calculated to jeopardise the fair and proper conduct of the promotion.<\/p><p><strong>5.2\u00a0 <\/strong>Errors and omissions may be accepted at the Promoter\u2019s discretion. Failure by the Promoter to enforce any of its rights at any stage does not constitute a waiver of those rights. The Promoter\u2019s legal rights to recover damages or other compensation from such an offender are reserved.<\/p><p><strong>5.3\u00a0 <\/strong>Incomplete or illegible entries will be deemed invalid.<\/p><p><strong>5.4\u00a0 <\/strong>If there is a dispute as to the identity of an entrant, the Promoter reserves the right, in its sole discretion, to determine the identity of the entrant.<\/p><h2>6. Prize Details<\/h2><p><strong>6.1\u00a0 <\/strong>A total prize pool of $2,450 will be awarded during the promotional period, comprising one (1) prize valued at $500, one (1) prize valued at $250, and seventeen (17) prizes valued at $100 each. Prizes will be drawn on selected days throughout the promotional period, with a total of nineteen (19) winners. All draws will be conducted in accordance with the promotional schedule, and winners will be notified as per the terms outlined herein<\/p><p><strong>6.2\u00a0 <\/strong>All prizes are issued electronically, are not transferable, not redeemable for cash, and are subject to the terms and conditions of the prize issuer. Availability of prizes is subject to change at the Promoter\u2019s discretion.<\/p><p><strong>6.3\u00a0 <\/strong>The Promoter\u2019s decision is final, and no correspondence will be entered into.<\/p><p><strong>6.4\u00a0 <\/strong>If for any reason a winner does not take or redeem a prize (or an element of the prize) at\/by the time stipulated by the Promoter, then the prize (or that element of the prize) will be forfeited. If a prize is forfeited or an entry is deemed invalid, the Promoter may redraw or allocate the prize to another eligible entrant at its discretion.<\/p><p><strong>6.5\u00a0 <\/strong>If any prize (or part of any prize) is unavailable, the Promoter, in its discretion, reserves the right to substitute the prize (or that part of the prize) with a prize of equal or greater value and\/or specification, subject to any written directions from a regulatory authority.<\/p><p><strong>6.6\u00a0 <\/strong>Prizes, or any unused portion of a prize, are not transferable or exchangeable and cannot be taken as cash unless otherwise specified, and are subject to the terms and conditions of the card issuer.<\/p><h2>7. Media and Publicity<\/h2><p><strong>7.1\u00a0 <\/strong>Entrants consent to the Promoter using their name, likeness, image, and\/or voice in the event they are a winner (including photograph, film, and\/or recording) in any media for an unlimited period without remuneration for the purpose of promoting this promotion (including any outcome) and promoting any products manufactured, distributed, and\/or supplied by the Promoter.<\/p><h2>8. Interference and Technical Issues<\/h2><p><strong>8.1\u00a0 <\/strong>If this promotion is interfered with in any way or is not capable of being conducted as reasonably anticipated due to any reason beyond the reasonable control of the Promoter, including but not limited to technical difficulties, unauthorised intervention, or fraud, the Promoter reserves the right, in its sole discretion, to the fullest extent permitted by law:<\/p><p>(a)\u00a0 disqualify any entrant; or<\/p><p>(b)\u00a0 subject to any written directions from a regulatory authority, to modify, suspend, terminate, or cancel the promotion, as appropriate.<\/p><p><strong>8.2\u00a0 <\/strong>Any cost associated with accessing the digital game is the entrant\u2019s responsibility and is dependent on the Internet service provider used.<\/p><p><strong>8.3\u00a0 <\/strong>The use of any automated entry software or any other mechanical or electronic means that allows an entrant to automatically enter repeatedly is prohibited and will render all entries submitted by that entrant invalid.<\/p><h2>9. Liability<\/h2><p><strong>9.1\u00a0 <\/strong>Nothing in these Terms and Conditions limits, excludes, or modifies the statutory consumer guarantees as provided under the Competition and Consumer Act, as well as any other implied warranties under the ASIC Act or similar consumer protection laws in Victoria (\u201cNon-Excludable Guarantees\u201d).<\/p><p><strong>9.2\u00a0 <\/strong>Except for any liability that cannot by law be excluded, including the Non-Excludable Guarantees, the Promoter (including its officers, employees, and agents) excludes all liability (including negligence) for any personal injury or any loss or damage (including loss of opportunity), whether direct, indirect, special, or consequential, arising in any way out of the promotion.<\/p><h2>10. Privacy<\/h2><p><strong>10.1\u00a0 <\/strong>The Promoter collects personal information (\u201cPI\u201d) to conduct the promotion and may, for this purpose, disclose such PI to third parties, including but not limited to agents, contractors, service providers, prize suppliers, and, as required, Australian regulatory authorities. Entry is conditional on providing this PI.<\/p><p><strong>10.2\u00a0 <\/strong>The Promoter will also use and handle PI as set out in its Privacy Policy, which can be viewed at the Promoter\u2019s website.<\/p><p><strong>10.3\u00a0 <\/strong>In addition to any use outlined in the Promoter\u2019s Privacy Policy, the Promoter may, for an indefinite period unless otherwise advised, use the PI for promotional, marketing, publicity, research, and profiling purposes, including sending electronic messages or telephoning the entrant.<\/p><p><strong>10.4\u00a0 <\/strong>The Privacy Policy also contains information about how entrants may opt out, access, update, or correct their PI, how entrants may complain about a breach of the Australian Privacy Principles or any other applicable law, and how those complaints will be dealt with.<\/p><p><strong>10.5\u00a0 <\/strong>All entries become the property of the Promoter. The Promoter will not disclose PI to any entity outside of Australia.<\/p><h2>11. Promoter Details<\/h2><p><strong>11.1\u00a0 <\/strong>The Promoter is Clifford Hallam Healthcare Limited trading as Paragon Care Australia (ABN: 38 001 655 554) of 17 Hudson Court, Keysborough VIC 3173. Phone: 1300 724 274.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div> \t\t\t\t\t<\/div> \t\t<\/div> \t\t\t\t\t<\/div> \t\t<\/section> \t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Order to Win \u2014 Double Your Chances &#8211; May 2026 Promotion &#8211; Terms and Conditions 1. General 1.1\u00a0 Information on how to enter and the prize(s) form part of these Terms and Conditions. Participation in this promotion is deemed acceptance of these Terms and Conditions. 2. Eligibility 2.1\u00a0 Entry is open to Australian residents aged 18 years or over. 2.2\u00a0 Employees (and their immediate families) of the Promoter and agencies associated with this promotion are ineligible to enter. Immediate family means any of the following: spouse, ex-spouse, de facto spouse, child or stepchild (whether natural or by adoption), parent, stepparent, grandparent, step-grandparent, uncle, aunt, niece, nephew, brother, sister, stepbrother, stepsister, or first cousin. 3. Promotional Period 3.1\u00a0 Entries into the promotion open on 01\/05\/2025 and close at 11:59pm AEST on 31\/05\/2025 (\u201cPromotional Period\u201d). 4. Entry Requirements 4.1\u00a0 To be eligible to enter, individuals must purchase $100 or more of stock from an eligible tile ad on the sales portal in one transaction during the Promotional Period (\u201cQualifying Transaction\u201d). If a purchase receipt is not automatically provided at the time of making a Qualifying Transaction, it is the entrant\u2019s responsibility to request one. 4.2\u00a0 To enter, individuals must undertake the following steps during the Promotional Period: (a)\u00a0 Click on the link provided in the confirmation email from their eligible sale OR access the entry portal directly via the sales portal. (b)\u00a0 Play the digital Order to Win \u201cDouble Your Chances\u201d prize wheel game and enter their details if required, including their name, email address, phone number, and postal address. (c)\u00a0 Keep the browser open and successfully complete and submit their entry. 4.3\u00a0 Each entrant will be notified instantly online whether or not they are an instant winner. As part of the \u201cDouble Your Chances\u201d mechanic, each Qualifying Transaction entitles the entrant to two (2) spins of the prize wheel. Multiple entries are permitted, subject to a maximum of two (2) spins per Qualifying Transaction. 4.4\u00a0 Entrants must retain their original purchase receipt(s) for all entries as proof of purchase. Failure to produce proof of purchase for all entries when requested may, at the absolute discretion of the Promoter, result in invalidation of all of an entrant\u2019s entries and forfeiture of any right to a prize. 5. Verification 5.1\u00a0 The Promoter reserves the right, at any time, to verify the validity of entries and entrants (including an entrant\u2019s identity, age, and place of residence) and reserves the right, in its sole discretion, to disqualify any individual the Promoter has reason to believe has breached any of these Terms and Conditions, tampered with the entry process, or engaged in any unlawful or other improper misconduct calculated to jeopardise the fair and proper conduct of the promotion. 5.2\u00a0 Errors and omissions may be accepted at the Promoter\u2019s discretion. Failure by the Promoter to enforce any of its rights at any stage does not constitute a waiver of those rights. The Promoter\u2019s legal rights to recover damages or other compensation from such an offender are reserved. 5.3\u00a0 Incomplete or illegible entries will be deemed invalid. 5.4\u00a0 If there is a dispute as to the identity of an entrant, the Promoter reserves the right, in its sole discretion, to determine the identity of the entrant. 6. Prize Details 6.1\u00a0 A total prize pool of $2,450 will be awarded during the promotional period, comprising one (1) prize valued at $500, one (1) prize valued at $250, and seventeen (17) prizes valued at $100 each. Prizes will be drawn on selected days throughout the promotional period, with a total of nineteen (19) winners. All draws will be conducted in accordance with the promotional schedule, and winners will be notified as per the terms outlined herein 6.2\u00a0 All prizes are issued electronically, are not transferable, not redeemable for cash, and are subject to the terms and conditions of the prize issuer. Availability of prizes is subject to change at the Promoter\u2019s discretion. 6.3\u00a0 The Promoter\u2019s decision is final, and no correspondence will be entered into. 6.4\u00a0 If for any reason a winner does not take or redeem a prize (or an element of the prize) at\/by the time stipulated by the Promoter, then the prize (or that element of the prize) will be forfeited. If a prize is forfeited or an entry is deemed invalid, the Promoter may redraw or allocate the prize to another eligible entrant at its discretion. 6.5\u00a0 If any prize (or part of any prize) is unavailable, the Promoter, in its discretion, reserves the right to substitute the prize (or that part of the prize) with a prize of equal or greater value and\/or specification, subject to any written directions from a regulatory authority. 6.6\u00a0 Prizes, or any unused portion of a prize, are not transferable or exchangeable and cannot be taken as cash unless otherwise specified, and are subject to the terms and conditions of the card issuer. 7. Media and Publicity 7.1\u00a0 Entrants consent to the Promoter using their name, likeness, image, and\/or voice in the event they are a winner (including photograph, film, and\/or recording) in any media for an unlimited period without remuneration for the purpose of promoting this promotion (including any outcome) and promoting any products manufactured, distributed, and\/or supplied by the Promoter. 8. Interference and Technical Issues 8.1\u00a0 If this promotion is interfered with in any way or is not capable of being conducted as reasonably anticipated due to any reason beyond the reasonable control of the Promoter, including but not limited to technical difficulties, unauthorised intervention, or fraud, the Promoter reserves the right, in its sole discretion, to the fullest extent permitted by law: (a)\u00a0 disqualify any entrant; or (b)\u00a0 subject to any written directions from a regulatory authority, to modify, suspend, terminate, or cancel the promotion, as appropriate. 8.2\u00a0 Any cost associated with accessing the digital game is the entrant\u2019s responsibility and is dependent on the Internet service provider used. 8.3\u00a0 The use of any automated entry software or any other mechanical or electronic means that<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-65","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/pages\/65","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/comments?post=65"}],"version-history":[{"count":133,"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/pages\/65\/revisions"}],"predecessor-version":[{"id":603,"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/pages\/65\/revisions\/603"}],"wp:attachment":[{"href":"https:\/\/wheel.loyaltyrewards.au\/index.php\/wp-json\/wp\/v2\/media?parent=65"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}