PageSourceSearch

https://jackkeller.com/tax-record-search/

html jackkeller.com collected 2026-10-06 14:04:52 UTC 760,625 bytes, 6,945 lines download raw bytes

1<!DOCTYPE html>
2
3<html lang="en-US" prefix="og: https://ogp.me/ns#">
4
5<head><meta charset="UTF-8">
5<script type="968bfde1705c18b9099319f7-text/javascript">if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script>
5<script type="968bfde1705c18b9099319f7-text/javascript">(()=>{class RocketLazyLoadScripts{constructor(){this.v="2.0.5",this.userEvents=["keydown","keyup","mousedown","mouseup","mousemove","mouseover","mouseout","touchmove","touchstart","touchend","touchcancel","wheel","click","dblclick","input"],this.attributeEvents=["onblur","onclick","oncontextmenu","ondblclick","onfocus","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onscroll","onsubmit"]}async t(){this.i(),this.o(),/iP(ad|hone)/.test(navigator.userAgent)&&this.h(),this.u(),this.l(this),this.m(),this.k(this),this.p(this),this._(),await Promise.all([this.R(),this.L()]),this.lastBreath=Date.now(),this.S(this),this.P(),this.D(),this.O(),this.M(),await this.C(this.delayedScripts.normal),await this.C(this.delayedScripts.defer),await this.C(this.delayedScripts.async),await this.T(),await this.F(),await this.j(),await this.A(),window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this.everythingLoaded=!0,this.lastTouchEnd&&await new Promise(t=>setTimeout(t,500-Date.now()+this.lastTouchEnd)),this.I(),this.H(),this.U(),this.W()}i(){this.CSPIssue=sessionStorage.getItem("rocketCSPIssue"),document.addEventListener("securitypolicyviolation",t=>{this.CSPIssue||"script-src-elem"!==t.violatedDirective||"data"!==t.blockedURI||(this.CSPIssue=!0,sessionStorage.setItem("rocketCSPIssue",!0))},{isRocket:!0})}o(){window.addEventListener("pageshow",t=>{this.persisted=t.persisted,this.realWindowLoadedFired=!0},{isRocket:!0}),window.addEventListener("pagehide",()=>{this.onFirstUserAction=null},{isRocket:!0})}h(){let t;function e(e){t=e}window.addEventListener("touchstart",e,{isRocket:!0}),window.addEventListener("touchend",function i(o){o.changedTouches[0]&&t.changedTouches[0]&&Math.abs(o.changedTouches[0].pageX-t.changedTouches[0].pageX)<10&&Math.abs(o.changedTouches[0].pageY-t.changedTouches[0].pageY)<10&&o.timeStamp-t.timeStamp<200&&(window.removeEventListener("touchstart",e,{isRocket:!0}),window.removeEventListener("touchend",i,{isRocket:!0}),"INPUT"===o.target.tagName&&"text"===o.target.type||(o.target.dispatchEvent(new TouchEvent("touchend",{target:o.target,bubbles:!0})),o.target.dispatchEvent(new MouseEvent("mouseover",{target:o.target,bubbles:!0})),o.target.dispatchEvent(new PointerEvent("click",{target:o.target,bubbles:!0,cancelable:!0,detail:1,clientX:o.changedTouches[0].clientX,clientY:o.changedTouches[0].clientY})),event.preventDefault()))},{isRocket:!0})}q(t){this.userActionTriggered||("mousemove"!==t.type||this.firstMousemoveIgnored?"keyup"===t.type||"mouseover"===t.type||"mouseout"===t.type||(this.userActionTriggered=!0,this.onFirstUserAction&&this.onFirstUserAction()):this.firstMousemoveIgnored=!0),"click"===t.type&&t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),"touchstart"===this.lastEvent&&"touchend"===t.type&&(this.lastTouchEnd=Date.now()),"click"===t.type&&(this.lastTouchEnd=0),this.lastEvent=t.type,t.composedPath&&t.composedPath()[0].getRootNode()instanceof ShadowRoot&&(t.rocketTarget=t.composedPath()[0]),this.savedUserEvents.push(t)}u(){this.savedUserEvents=[],this.userEventHandler=this.q.bind(this),this.userEvents.forEach(t=>window.addEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0})),document.addEventListener("visibilitychange",this.userEventHandler,{isRocket:!0})}U(){this.userEvents.forEach(t=>window.removeEventListener(t,this.userEventHandler,{passive:!1,isRocket:!0})),document.removeEventListener("visibilitychange",this.userEventHandler,{isRocket:!0}),this.savedUserEvents.forEach(t=>{(t.rocketTarget||t.target).dispatchEvent(new window[t.constructor.name](t.type,t))})}m(){const t="return false",e=Array.from(this.attributeEvents,t=>"data-rocket-"+t),i="["+this.attributeEvents.join("],[")+"]",o="[data-rocket-"+this.attributeEvents.join("],[data-rocket-")+"]",s=(e,i,o)=>{o&&o!==t&&(e.setAttribute("data-rocket-"+i,o),e["rocket"+i]=new Function("event",o),e.setAttribute(i,t))};new MutationObserver(t=>{for(const n of t)"attributes"===n.type&&(n.attributeName.startsWith("data-rocket-")||this.everythingLoaded?n.attributeName.startsWith("data-rocket-")&&this.everythingLoaded&&this.N(n.target,n.attributeName.substring(12)):s(n.target,n.attributeName,n.target.getAttribute(n.attributeName))),"childList"===n.type&&n.addedNodes.forEac
5h(t=>{if(t.nodeType===Node.ELEMENT_NODE)if(this.everythingLoaded)for(const i of[t,...t.querySelectorAll(o)])for(const t of i.getAttributeNames())e.includes(t)&&this.N(i,t.substring(12));else for(const e of[t,...t.querySelectorAll(i)])for(const t of e.getAttributeNames())this.attributeEvents.includes(t)&&s(e,t,e.getAttribute(t))})}).observe(document,{subtree:!0,childList:!0,attributeFilter:[...this.attributeEvents,...e]})}I(){this.attributeEvents.forEach(t=>{document.querySelectorAll("[data-rocket-"+t+"]").forEach(e=>{this.N(e,t)})})}N(t,e){const i=t.getAttribute("data-rocket-"+e);i&&(t.setAttribute(e,i),t.removeAttribute("data-rocket-"+e))}k(t){Object.defineProperty(HTMLElement.prototype,"onclick",{get(){return this.rocketonclick||null},set(e){this.rocketonclick=e,this.setAttribute(t.everythingLoaded?"onclick":"data-rocket-onclick","this.rocketonclick(event)")}})}S(t){function e(e,i){let o=e[i];e[i]=null,Object.defineProperty(e,i,{get:()=>o,set(s){t.everythingLoaded?o=s:e["rocket"+i]=o=s}})}e(document,"onreadystatechange"),e(window,"onload"),e(window,"onpageshow");try{Object.defineProperty(document,"readyState",{get:()=>t.rocketReadyState,set(e){t.rocketReadyState=e},configurable:!0}),document.readyState="loading"}catch(t){console.log("WPRocket DJE readyState conflict, bypassing")}}l(t){this.originalAddEventListener=EventTarget.prototype.addEventListener,this.originalRemoveEventListener=EventTarget.prototype.removeEventListener,this.savedEventListeners=[],EventTarget.prototype.addEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")||t.everythingLoaded?t.originalAddEventListener.call(this,e,i,o):(t.savedEventListeners.push({target:this,remove:!1,type:e,func:i,options:o}),"mouseenter"!==e&&"mouseleave"!==e||t.originalAddEventListener.call(this,e,t.savedUserEvents.push,o))},EventTarget.prototype.removeEventListener=function(e,i,o){o&&o.isRocket||!t.B(e,this)&&!t.userEvents.includes(e)||t.B(e,this)&&!t.userActionTriggered||e.startsWith("rocket-")||t.everythingLoaded?t.originalRemoveEventListener.call(this,e,i,o):t.savedEventListeners.push({target:this,remove:!0,type:e,func:i,options:o})}}J(t,e){this.savedEventListeners=this.savedEventListeners.filter(i=>{let o=i.type,s=i.target||window;return e!==o||t!==s||(this.B(o,s)&&(i.type="rocket-"+o),this.$(i),!1)})}H(){EventTarget.prototype.addEventListener=this.originalAddEventListener,EventTarget.prototype.removeEventListener=this.originalRemoveEventListener,this.savedEventListeners.forEach(t=>this.$(t))}$(t){t.remove?this.originalRemoveEventListener.call(t.target,t.type,t.func,t.options):this.originalAddEventListener.call(t.target,t.type,t.func,t.options)}p(t){let e;function i(e){return t.everythingLoaded?e:e.split(" ").map(t=>"load"===t||t.startsWith("load.")?"rocket-jquery-load":t).join(" ")}function o(o){function s(e){const s=o.fn[e];o.fn[e]=o.fn.init.prototype[e]=function(){return this[0]===window&&t.userActionTriggered&&("string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=i(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(t=>{const e=arguments[0][t];delete arguments[0][t],arguments[0][i(t)]=e})),s.apply(this,arguments),this}}if(o&&o.fn&&!t.allJQueries.includes(o)){const e={DOMContentLoaded:[],"rocket-DOMContentLoaded":[]};for(const t in e)document.addEventListener(t,()=>{e[t].forEach(t=>t())},{isRocket:!0});o.fn.ready=o.fn.init.prototype.ready=function(i){function s(){parseInt(o.fn.jquery)>2?setTimeout(()=>i.bind(document)(o)):i.bind(document)(o)}return"function"==typeof i&&(t.realDomReadyFired?!t.userActionTriggered||t.fauxDomReadyFired?s():e["rocket-DOMContentLoaded"].push(s):e.DOMContentLoaded.push(s)),this},s("on"),s("one"),s("off"),t.allJQueries.push(o)}e=o}t.allJQueries=[],o(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){o(t)}})}P(){const t=new Map;document.write=document.writeln=function(e){const i=document.currentScript,o=document.createRange(),s=i.parentElement;let n=t.get(i);void 0===n&&(n=i.nextSibling,t.set(i,n));const c=document.createDocumentFragment();o.setStart(c,0),c.appendChild(o.createContextualFragment(e)),s.insertBefore(c,n)}}async R(){return new Promise(t=>{this.userActionTriggered?t():this.onFirstUserAction=t})}async L(){return new Promise(t=>{document.addEventListener("DOMContentLoaded",()=>{this.realDomReadyFired=!0,t()},{isRocket:!0})})}async j(){return this.realWindowLoadedFired?Promise.resolve():new Promise(t=>{window.addEventListener("load",t,{isRocket:!0})})}M(){this.pendingScripts=[];this.scriptsMutationObserver=new MutationObserver(t=>
5{for(const e of t)e.addedNodes.forEach(t=>{"SCRIPT"!==t.tagName||!t.src||t.noModule||t.isWPRocket||this.pendingScripts.push({script:t,promise:new Promise(e=>{const i=()=>{const i=this.pendingScripts.findIndex(e=>e.script===t);i>=0&&this.pendingScripts.splice(i,1),e()};t.addEventListener("load",i,{isRocket:!0}),t.addEventListener("error",i,{isRocket:!0}),setTimeout(i,1e3)})})})}),this.scriptsMutationObserver.observe(document,{childList:!0,subtree:!0})}async F(){await this.X(),this.pendingScripts.length?(await this.pendingScripts[0].promise,await this.F()):this.scriptsMutationObserver.disconnect()}D(){this.delayedScripts={normal:[],async:[],defer:[]},document.querySelectorAll("script[type$=rocketlazyloadscript]").forEach(t=>{t.hasAttribute("data-rocket-src")?t.hasAttribute("async")&&!1!==t.async?this.delayedScripts.async.push(t):t.hasAttribute("defer")&&!1!==t.defer||"module"===t.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(t):this.delayedScripts.normal.push(t):this.delayedScripts.normal.push(t)})}async _(){await this.L();let t=[];document.querySelectorAll("script[type$=rocketlazyloadscript][data-rocket-src]").forEach(e=>{let i=e.getAttribute("data-rocket-src");if(i&&!i.startsWith("data:")){i.startsWith("//")&&(i=location.protocol+i);try{const o=new URL(i).origin;o!==location.origin&&t.push({src:o,crossOrigin:e.crossOrigin||"module"===e.getAttribute("data-rocket-type")})}catch(t){}}}),t=[...new Map(t.map(t=>[JSON.stringify(t),t])).values()],this.Y(t,"preconnect")}
5async G(t){if(await this.K(),!0!==t.noModule||!("noModule"in HTMLScriptElement.prototype))return new Promise(e=>{let i;function o(){(i||t).setAttribute("data-rocket-status","executed"),e()}try{if(navigator.userAgent.includes("Firefox/")||""===navigator.vendor||this.CSPIssue)i=document.createElement("script"),[...t.attributes].forEach(t=>{let e=t.nodeName;"type"!==e&&("data-rocket-type"===e&&(e="type"),"data-rocket-src"===e&&(e="src"),i.setAttribute(e,t.nodeValue))}),t.text&&(i.text=t.text),t.nonce&&(i.nonce=t.nonce),i.hasAttribute("src")?(i.addEventListener("load",o,{isRocket:!0}),i.addEventListener("error",()=>{i.setAttribute("data-rocket-status","failed-network"),e()},{isRocket:!0}),setTimeout(()=>{i.isConnected||e()},1)):(i.text=t.text,o()),i.isWPRocket=!0,t.parentNode.replaceChild(i,t);else{const i=t.getAttribute("data-rocket-type"),s=t.getAttribute("data-rocket-src");i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",o,{isRocket:!0}),t.addEventListener("error",i=>{this.CSPIssue&&i.target.src.startsWith("data:")?(console.log("WPRocket: CSP fallback activated"),t.removeAttribute("src"),this.G(t).then(e)):(t.setAttribute("data-rocket-status","failed-network"),e())},{isRocket:!0}),s?(t.fetchPriority="high",t.removeAttribute("data-rocket-src"),t.src=s):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}}catch(i){t.setAttribute("data-rocket-status","failed-transform"),e()}});t.setAttribute("data-rocket-status","skipped")}async C(t){const e=t.shift();return e?(e.isConnected&&await this.G(e),this.C(t)):Promise.resolve()}O(){this.Y([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}Y(t,e){this.trash=this.trash||[];let i=!0;var o=document.createDocumentFragment();t.forEach(t=>{const s=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(s&&!s.startsWith("data:")){const n=document.createElement("link");n.href=s,n.rel=e,"preconnect"!==e&&(n.as="script",n.fetchPriority=i?"high":"low"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),t.nonce&&(n.nonce=t.nonce),o.appendChild(n),this.trash.push(n),i=!1}}),document.head.appendChild(o)}W(){this.trash.forEach(t=>t.remove())}async T(){try{document.readyState="interactive"}catch(t){}this.fauxDomReadyFired=!0;try{await this.K(),this.J(document,"readystatechange"),document.dispatchEvent(new Event("rocket-readystatechange")),await this.K(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.K(),this.J(document,"DOMContentLoaded"),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this.K(),this.J(window,"DOMContentLoaded"),window.dispatchEvent(new Event("rocket-DOMContentLoaded"))}catch(t){console.error(t)}}async A(){try{document.readyState="complete"}catch(t){}try{await this.K(),this.J(document,"readystatechange"),document.dispatchEvent(new Event("rocket-readystatechange")),await this.K(),document.rocketonreadystatechange&&document.rocketonreadystatechange(),await this.K(),this.J(window,"load"),window.dispatchEvent(new Event("rocket-load")),await this.K(),window.rocketonload&&window.rocketonload(),await this.K(),this.allJQueries.forEach(t=>t(window).trigger("rocket-jquery-load")),await this.K(),this.J(window,"pageshow");const t=new Event("rocket-pageshow");t.persisted=this.persisted,window.dispatchEvent(t),await this.K(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}catch(t){console.error(t)}}async K(){Date.now()-this.lastBreath>45&&(await this.X(),this.lastBreath=Date.now())}async X(){return document.hidden?new Promise(t=>setTimeout(t)):new Promise(t=>requestAnimationFrame(t))}B(t,e=window){return e===document&&"readystatechange"===t||(e===document&&"DOMContentLoaded"===t||(e===window&&"DOMContentLoaded"===t||(e===window&&"load"===t||e===window&&"pageshow"===t)))}static run(){(new RocketLazyLoadScripts).t()}}RocketLazyLoadScripts.run()})();
6</script>
6
7
8
9
10
11<meta name="viewport" content="width=device-width, initial-scale=1">
12
13<link rel="profile" href="https://gmpg.org/xfn/11">
14
15<link rel="pingback" href="https://jackkeller.com/xmlrpc.php">
16
17<script type="text/rocketlazyloadscript">window._wca = window._wca || [];</script>
17
18
19<!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ -->
20<title>Tax Record Search | List On MLS &amp; REALTOR.com+ From $75.</title>
21
22<link data-rocket-prefetch href="https://stats.wp.com" rel="dns-prefetch">
23<link data-rocket-preload as="style" href="https://fonts.googleapis.com/css?family=Lato%3A300%2C400%2C700%2C400italic%7CMontserrat%3A700%7CHomemade%20Apple%7COpen%20Sans%3A400%2C300%2C300italic%2C400italic%2C600italic%2C600%2C700%2C700italic%2C800%2C800italic&#038;display=swap" rel="preload">
vendor: 137 bytes, lines 23-24
23
24<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="968bfde1705c18b9099319f7-|49"></script>
24<style type="text/css">@font-face {font-family:'Lato';font-style:normal;font-weight:300;src:url(/cf-fonts/s/lato/5.2.7/latin/300/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:300;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/300/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:700;src:url(/cf-fonts/s/lato/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:normal;font-weight:700;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Lato';font-style:italic;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin/400/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Lato';font-style:italic;font-weight:400;src:url(/cf-fonts/s/lato/5.2.7/latin-ext/400/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Montserrat';font-style:normal;font-weight:700;src:url(/cf-fonts/s/montserrat/5.2.8/cyrillic/700/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Montserrat';font-style:normal;font-weight:700;src:url(/cf-fonts/s/montserrat/5.2.8/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Montserrat';font-style:normal;font-weight:700;src:url(/cf-fonts/s/montserrat/5.2.8/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Montserrat';font-style:normal;font-weight:700;src:url(/cf-fonts/s/montserrat/5.2.8/vietnamese/700/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Montserrat';font-style:normal;font-weight:700;src:url(/cf-fonts/s/montserrat/5.2.8/cyrillic-ext/700/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Homemade Apple';font-style:normal;font-weight:400;src:url(/cf-fonts/s/homemade-apple/5.2.8/latin/400/normal.woff2);
24unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/math/400/normal.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/400/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/400/normal.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/400/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/400/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/400/normal.woff2);
24unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/greek/400/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/400/normal.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/latin/300/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/300/normal.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/300/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/300/normal.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/300/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/math/300/normal.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/300/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/greek/300/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/300/normal.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/300/normal.woff2);
24unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/300/italic.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/300/italic.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/greek/300/italic.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/300/italic.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/300/italic.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/math/300/italic.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/latin/300/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/300/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/300/italic.woff2);
24unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:300;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/300/italic.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/400/italic.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/400/italic.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/400/italic.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/400/italic.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/latin/400/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/400/italic.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/math/400/italic.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/400/italic.woff2);
24unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/400/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:400;src:url(/cf-fonts/s/open-sans/5.2.7/greek/400/italic.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/math/600/italic.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/600/italic.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/latin/600/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/600/italic.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/greek/600/italic.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/600/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/600/italic.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/600/italic.woff2);
24unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/600/italic.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/600/italic.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/math/600/normal.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/600/normal.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/greek/600/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/600/normal.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/600/normal.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/600/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/600/normal.woff2);
24unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/600/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/latin/600/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:600;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/600/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/greek/700/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/700/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/700/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/math/700/normal.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/700/normal.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/700/normal.woff2);
24unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/700/normal.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/700/normal.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/700/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/700/italic.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/700/italic.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/700/italic.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/700/italic.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/700/italic.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/latin/700/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/greek/700/italic.woff2);
24unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/math/700/italic.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:700;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/700/italic.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/greek/800/normal.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/800/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/800/normal.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/800/normal.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/800/normal.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/800/normal.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/math/800/normal.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2
24038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/800/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/800/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:normal;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/latin/800/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/latin-ext/800/italic.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic/800/italic.woff2);unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/cyrillic-ext/800/italic.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/symbols/800/italic.woff2);unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/math/800/italic.woff2);unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2
24038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/hebrew/800/italic.woff2);unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/latin/800/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/greek-ext/800/italic.woff2);unicode-range:U+1F00-1FFF;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/vietnamese/800/italic.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Open Sans';font-style:italic;font-weight:800;src:url(/cf-fonts/s/open-sans/5.2.7/greek/800/italic.woff2);unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-display:swap;}</style>
25<style id="wpr-usedcss">.wpautoterms-footer{background-color:#545454;text-align:center}.wpautoterms-footer a{color:#000;font-family:Arial,sans-serif;font-size:12px}.wpautoterms-footer .separator{color:#009;font-family:Arial,sans-serif;font-size:12px}img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}@font-face{font-display:swap;font-family:dashicons;src:url("https://jackkeller.com/wp-includes/fonts/dashicons.eot?99ac726223c749443b642ce33df8b800");src:url("https://jackkeller.com/wp-includes/fonts/dashicons.eot?99ac726223c749443b642ce33df8b800#iefix") format("embedded-opentype"),url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff"),url("https://jackkeller.com/wp-includes/fonts/dashicons.ttf?99ac726223c749443b642ce33df8b800") format("truetype");font-weight:400;font-style:normal}.dashicons{font-family:dashicons;display:inline-block;line-height:1;font-weight:400;font-style:normal;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px;height:20px;font-size:20px;vertical-align:top;text-align:center;transition:color .1s ease-in}.dashicons-admin-customizer:before{content:"\f540"}.dashicons-admin-home:before{content:"\f102"}.dashicons-admin-multisite:before{content:"\f541"}.dashicons-admin-tools:before{content:"\f107"}.dashicons-admin-users:before{content:"\f110"}.dashicons-awards:before{content:"\f313"}.dashicons-clock:before{content:"\f469"}.dashicons-edit:before{content:"\f464"}.dashicons-feedback:before{content:"\f175"}.dashicons-format-chat:before{content:"\f125"}.dashicons-images-alt2:before{content:"\f233"}.dashicons-location-alt:before{content:"\f231"}.dashicons-phone:before{content:"\f525"}.dashicons-search:before{content:"\f179"}.dashicons-testimonial:before{content:"\f473"}.dashicons-thumbs-up:before{content:"\f529"}.dashicons-tickets-alt:before{content:"\f524"}.dashicons-update:before{content:"\f463"}.dashicons-upload:before{content:"\f317"}.dashicons-welcome-learn-more:before{content:"\f118"}.dashicons-format-links:before{content:"\f103"}[class*=el-icon-]{font-family:Elusive-Icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-shopping-cart-sign:before{content:"\e63e"}.el-icon-return-key:before{content:"\e64c"}.el-icon-hourglass:before{content:"\e6a1"}.el-icon-adjust-alt:before{content:"\e726"}.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-newspaper:before{content:"\f1ea"}.fa-question:before{content:"\3f"}.fa-ticket-alt:before{content:"\f3ff"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:swap;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-accessible-icon:before{content:"\f368"}:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}.far{font-family:"Font Awesome 6 Free";font-weight:400}:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:swap;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:swap;font-weight:400;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:swap;font-weight:900;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}
25@font-face{font-family:FontAwesome;font-display:swap;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:swap;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:FontAwesome;font-display:swap;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-v4compatibility.woff2) format("woff2"),url(https://jackkeller.com/wp-content/plugins/menu-icons/css/fontawesome/webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}@font-face{font-display:swap;font-family:foundation-icons;src:url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.eot);src:url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.eot?#iefix) format("embedded-opentype"),url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.woff) format("woff"),url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.ttf) format("truetype"),url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.svg#fontcustom) format("svg");font-weight:400;font-style:normal}.fi-dollar-bill:before,.fi-dollar:before,.fi-megaphone:before,.fi-pricetag-multiple:before,.fi-shopping-cart:before,.fi-torsos-female-male:before,.fi-universal-access:before{font-family:foundation-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;display:inline-block;text-decoration:inherit}.fi-dollar-bill:before{content:"\f141"}.fi-dollar:before{content:"\f142"}.fi-megaphone:before{content:"\f173"}.fi-pricetag-multiple:before{content:"\f19e"}.fi-shopping-cart:before{content:"\f1b1"}.fi-torsos-female-male:before{content:"\f201"}.fi-universal-access:before{content:"\f208"}@font-face{font-display:swap;font-family:Genericons;src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkS
25Hja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q0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") format("woff"),url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.ttf) format("truetype"),url(https://jackkeller.com/wp-content/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.svg#Genericons) format("svg");font-weight:400;font-style:normal}.genericon{font-size:16px;vertical-align:top;text-align:center;-moz-transition:color .1s ease-in 0;-webkit-transition:color .1s ease-in 0;display:inline-block;font-family:Genericons;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-decoration:inherit;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.genericon-help:before{content:"\f457"}.genericon-send-to-tablet:before{content:"\f454"}.genericon-show:before{content:"\f403"}.menu-item i._mi,.menu-item img._mi{display:inline-block;vertical-align:middle}.menu-item i._mi{width:auto;height:auto;margin-top:-.265em;font-size:1.2em;line-height:1}.menu-item i._before{margin-right:.25em}.menu-item img._before{margin-right:.5em}.menu-item i.elusive{margin-top:-.3em}:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}:root{--wp--preset--font-size--normal:16px;
25--wp--preset--font-size--huge:42px}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}:root{--wp--preset--aspect-ratio--square:1;--wp--preset--aspect-ratio--4-3:4/3;--wp--preset--aspect-ratio--3-4:3/4;--wp--preset--aspect-ratio--3-2:3/2;--wp--preset--aspect-ratio--2-3:2/3;--wp--preset--aspect-ratio--16-9:16/9;--wp--preset--aspect-ratio--9-16:9/16;--wp--preset--color--black:#000000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#ffffff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;
25--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgb(6, 147, 227) 0%,rgb(155, 81, 224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,rgb(122, 220, 180) 0%,rgb(0, 208, 130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgb(252, 185, 0) 0%,rgb(255, 105, 0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgb(255, 105, 0) 0%,rgb(207, 46, 46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,rgb(238, 238, 238) 0%,rgb(169, 184, 195) 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,rgb(74, 234, 220) 0%,rgb(151, 120, 209) 20%,rgb(207, 42, 186) 40%,rgb(238, 44, 130) 60%,rgb(251, 105, 98) 80%,rgb(254, 248, 76) 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,rgb(255, 206, 236) 0%,rgb(152, 150, 240) 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,rgb(254, 205, 165) 0%,rgb(254, 45, 45) 50%,rgb(107, 0, 62) 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,rgb(255, 203, 112) 0%,rgb(199, 81, 192) 50%,rgb(65, 88, 208) 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,rgb(255, 245, 203) 0%,rgb(182, 227, 212) 50%,rgb(51, 167, 181) 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,rgb(202, 248, 128) 0%,rgb(113, 206, 126) 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,rgb(2, 3, 129) 0%,rgb(40, 116, 252) 100%);--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:0.44rem;--wp--preset--spacing--30:0.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0, 0, 0, .2);--wp--preset--shadow--deep:12px 12px 50px rgba(0, 0, 0, .4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0, 0, 0, .2);--wp--preset--shadow--outlined:6px 6px 0px -3px rgb(255, 255, 255),6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp:6px 6px 0px rgb(0, 0, 0)}:where(body){margin:0}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.5em}body{padding-top:0;padding-right:0;padding-bottom:0;padding-left:0}:root :where(.wp-element-button,.wp-block-button__link){background-color:#32373c;border-width:0;color:#fff;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-top:calc(.667em + 2px);padding-right:calc(1.333em + 2px);
25padding-bottom:calc(.667em + 2px);padding-left:calc(1.333em + 2px);text-decoration:none;text-transform:inherit}.wpautoterms-footer{display:block;width:100%;position:relative;z-index:10000002}.wpautoterms-footer a:hover{text-decoration:underline}#wpautoterms-bottom-static-container{width:100%;position:relative;z-index:10000002}@media (max-width:768px){li.obfx-hide-mobile-socials{display:none}}.woocommerce div.product div.images{float:left;width:48%}.woocommerce div.product div.images.woocommerce-product-gallery .flex-viewport{touch-action:pan-y pinch-zoom}.woocommerce div.product div.thumbnails::after,.woocommerce div.product div.thumbnails::before{content:" ";display:table}.woocommerce div.product div.thumbnails::after{clear:both}.woocommerce div.product div.thumbnails a{float:left;width:30.75%;margin-right:3.8%;margin-bottom:1em}.woocommerce div.product div.thumbnails a.last{margin-right:0}.woocommerce div.product div.thumbnails a.first{clear:both}.woocommerce div.product div.thumbnails.columns-1 a{width:100%;margin-right:0;float:none}.woocommerce div.product div.thumbnails.columns-2 a{width:48%}.woocommerce div.product div.thumbnails.columns-4 a{width:22.05%}.woocommerce div.product div.thumbnails.columns-5 a{width:16.9%}.woocommerce div.product div.summary{float:right;width:48%;clear:none}.woocommerce div.product .woocommerce-tabs{clear:both}.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs::before{content:" ";display:table}.woocommerce div.product .woocommerce-tabs ul.tabs::after{clear:both}.woocommerce div.product .woocommerce-tabs ul.tabs li{display:inline-block}.woocommerce div.product #reviews .comment::after,.woocommerce div.product #reviews .comment::before{content:" ";display:table}.woocommerce div.product #reviews .comment::after{clear:both}.woocommerce div.product #reviews .comment img{float:right;height:auto}:root{--woocommerce:#720eec;--wc-green:#007518;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, .8);--wc-form-border-radius:4px;--wc-form-border-width:1px;--wc-destructive:#cc1818;--wc-card-border-radius:8px}@keyframes spin{100%{transform:rotate(360deg)}}.woocommerce form .form-row.woocommerce-invalid .select2-container:not(.select2-container--open) .select2-selection{border-color:var(--wc-red)}.woocommerce form .form-row.woocommerce-validated .select2-container:not(.select2-container--open) .select2-selection{border-color:var(--wc-green)}:where(.woocommerce) .select2-container{width:100%}:where(.woocommerce) .select2-container .select2-selection--single{height:auto}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__rendered{padding:.5em;line-height:normal;box-sizing:border-box;color:var(--wc-form-color-text,#444);font-weight:400}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__placeholder{color:var(--wc-form-color-text,#444)}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__arrow{position:absolute;top:2px;right:.5em;height:100%;width:16px}:where(.woocommerce) .select2-container .select2-selection--single .select2-selection__arrow b{border:none;display:block;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;background-size:16px;width:16px;height:16px;position:absolute;top:50%;left:0;margin:-8px 0 0}:where(.woocommerce) .select2-container .select2-dropdown,:where(.woocommerce) .select2-container .select2-selection{background-color:var(--wc-form-color-background,#fff);border:var(--wc-form-border-width,1px) solid var(--wc-form-border-color,#aaa
25);border-radius:var(--wc-form-border-radius,4px)}:where(.woocommerce) .select2-container.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}:where(.woocommerce) .select2-container.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}:where(.woocommerce) .select2-results__options{list-style:none;margin:0;padding:0}:where(.woocommerce) .select2-results__option{margin:0}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product .product_title{clear:none;margin-top:0;padding:0}.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{background:inherit;font-weight:700;display:inline-block}.woocommerce div.product p.price del,.woocommerce div.product span.price del{opacity:.7;display:inline-block}.woocommerce div.product p.stock{font-size:.92em}.woocommerce div.product .woocommerce-product-rating{margin-bottom:1.618em}.woocommerce div.product div.images{margin-bottom:2em}.woocommerce div.product div.images img{display:block;width:100%;height:auto;box-shadow:none}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.images.woocommerce-product-gallery{position:relative}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{transition:all cubic-bezier(.795, -.035, 0, 1) .5s;margin:0;padding:0}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg{background-color:#fff;opacity:0}.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder{border:1px solid #f2f2f2}.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2){width:25%;display:inline-block}.woocommerce div.product div.images .woocommerce-product-gallery__image a{display:block;outline-offset:-2px}.woocommerce div.product div.images .woocommerce-product-gallery__video .wp-post-video{display:block;width:100%;height:auto}.woocommerce div.product div.images .woocommerce-product-gallery__trigger{background:#fff;border:none;box-sizing:content-box;border-radius:100%;cursor:pointer;font-size:2em;height:36px;padding:0;position:absolute;right:.5em;text-indent:-9999px;top:.5em;width:36px;z-index:99}.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before{border:2px solid #000;border-radius:100%;box-sizing:content-box;content:"";display:block;height:10px;left:9px;top:9px;position:absolute;width:10px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after{background:#000;border-radius:6px;box-sizing:content-box;content:"";display:block;height:8px;left:22px;position:absolute;top:19px;transform:rotate(-45deg);width:2px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger span[aria-hidden=true]{border:0;clip-path:inset(50%);height:1px;left:50%;margin:-1px;overflow:hidden;position:absolute;top:50%;width:1px}.woocommerce div.product div.images .flex-control-thumbs{overflow:hidden;zoom:1;margin:0;padding:0}.woocommerce div.product div.images .flex-control-thumbs li{width:25%;float:left;margin:0;list-style:none;position:relative}.woocommerce div.product div.images .flex-control-thumbs li .woocommerce-product-gallery__video-thumbnail-preview,.woocommerce div.product div.images .flex-control-thumbs li img{cursor:pointer;opacity:.5;margin:0}.woocommerce div.product div.images .flex-control-thumbs li .woocommerce-product-gallery__video-thumbnail-preview.flex-active,.woocommerce div.product div.images .flex-control-thumbs li .woocommerce-product-gallery__video-thumbnail-preview:hover,.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,.woocommerce div.product div.images .flex-control-thumbs li img:hover{opacity:1}.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail::before{content:"▶";position:absolute;
25left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;color:#fff;font-size:1.4em;text-shadow:0 0 .25em rgba(0,0,0,.8);pointer-events:none}.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail img.woocommerce-product-gallery__video-thumbnail-placeholder,.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail img.woocommerce-product-gallery__video-thumbnail-placeholder.flex-active,.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail img.woocommerce-product-gallery__video-thumbnail-placeholder:hover{opacity:0}.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail .woocommerce-product-gallery__video-thumbnail-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail .woocommerce-product-gallery__video-thumbnail-placeholder.flex-active+.woocommerce-product-gallery__video-thumbnail-preview,.woocommerce div.product div.images .flex-control-thumbs li.woocommerce-product-gallery__video-thumbnail:hover .woocommerce-product-gallery__video-thumbnail-preview{opacity:1}.woocommerce div.product .woocommerce-product-gallery--columns-3 .flex-control-thumbs li:nth-child(3n+1){clear:left}.woocommerce div.product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n+1){clear:left}.woocommerce div.product .woocommerce-product-gallery--columns-5 .flex-control-thumbs li:nth-child(5n+1){clear:left}.woocommerce div.product div.summary{margin-bottom:2em}.woocommerce div.product div.social{text-align:right;margin:0 0 1em}.woocommerce div.product div.social span{margin:0 0 0 2px}.woocommerce div.product div.social span span{margin:0}.woocommerce div.product div.social span .stButton .chicklets{padding-left:16px;width:0}.woocommerce div.product div.social iframe{float:left;margin-top:3px}.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;padding:0 0 0 1em;margin:0 0 1.618em;overflow:hidden;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:1px solid #cfc8d8;background-color:#e9e6ed;color:#515151;display:inline-block;position:relative;z-index:0;border-radius:4px 4px 0 0;margin:0 -5px;padding:0 1em}.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:inline-block;padding:.5em 0;font-weight:700;color:#515151;text-decoration:none}.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{text-decoration:none;color:#6b6b6b}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;color:#515151;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after{box-shadow:-2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li::after,.woocommerce div.product .woocommerce-tabs ul.tabs li::before{border:1px solid #cfc8d8;position:absolute;bottom:-1px;width:5px;height:5px;content:" ";box-sizing:border-box}.woocommerce div.product .woocommerce-tabs ul.tabs li::before{left:-5px;border-bottom-right-radius:4px;border-width:0 1px 1px 0;box-shadow:2px 2px 0 #e9e6ed}.woocommerce div.product .woocommerce-tabs ul.tabs li::after{right:-5px;border-bottom-left-radius:4px;border-width:0 0 1px 1px;box-shadow:-2px 2px 0 #e9e6ed}.woocommerce div.product .woocommerce-tabs ul.tabs::before{position:absolute;content:" ";width:100%;bottom:0;left:0;border-bottom:1px solid #cfc8d8;z-index:1}.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em;padding:0}.woocommerce div.product p.cart{margin-bottom:2em}.woocommerce div.product p.cart::after,.woocommerce div.product p.cart::before{content:" ";display:table}.woocommerce div.product p.cart::after{clear:both}.woocommerce div.product form.cart{margin-bottom:2em}.woocommerce div.product form.cart::after,.woocommerce div.product form.cart::before{content:" ";display:table}.woocommerce div.product form.cart::after{clear:both}.woocommerce div.product form.cart div.quantity{float:left;margin:0 4px 0 0}.woocommerce div.product form.cart table{border-width:0 0 1px}.woocommerce div.product form.cart table td{padding-left:0}.woocommerce div.product form.cart table div.quantity{float:none;margin:0}.woocommerce div.product form.cart table small.stock{display:block;float:none}.woocommerce div.product form.cart .variations{margin-bottom:1em;border:0;width:100%}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{border:0;line-height:2em;vertical-align:top}.woocommerce div.product form.cart .variations label{font-weight:700;text-align:left}.woocommerce div.product form.cart .variations select{max-width:100%;min-width:75%;display:inline-block;margin-right:1em;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:3em;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;background-size:16px;-webkit-background-size:16px;background-position:calc(100% - 12px) 50%;-webkit-background-position:calc(100% - 12px) 50%}.woocommerce div.product form.cart .variations td.label{padding-right:1em}.woocommerce div.product form.cart .woocommerce-variation-description p{margin-bottom:1em}.woocommerce div.product form.cart .reset_variations{visibility:hidden;font-size:.83em}.woocommerce div.product form.cart .wc-no-matching-variations{display:none}.woocommerce div.product form.cart .button{vertical-align:middle;float:left}.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label{padding-right:1em;padding-left:1em}.woocommerce div.product form.cart .group_table td{vertical-align:top;padding-bottom:.5em;border:0}.woocommerce div.product form.cart .group_table td:first-child{width:4em;text-align:center}.woocommerce div.product form.cart .group_table .wc-grouped-product-add-to-cart-checkbox{display:inline-block;width:auto;margin:0 auto;transform:scale(1.5,1.5)}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not
25(.edit-post-visual-editor)) .woocommerce #respond input#submit,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button{font-size:100%;margin:0;line-height:1;cursor:pointer;position:relative;text-decoration:none;overflow:visible;padding:.618em 1em;font-weight:700;border-radius:3px;left:auto;color:#515151;background-color:#e9e6ed;border:0;display:inline-block;background-image:none;box-shadow:none;text-shadow:none}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce button.button.loading,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.loading{opacity:.25;padding-right:2.618em}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.loading::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.loading::after{font-family:WooCommerce;content:"\e01c";vertical-align:top;font-weight:400;position:absolute;top:.618em;right:1em;animation:2s linear infinite spin}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce a.button.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.added::after,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.added::after{font-family:WooCommerce;content:"\e017";margin-left:.53em;vertical-align:bottom}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:hover{background-color:#dcd7e2;text-decoration:none;background-image:none;color:#515151}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce #respond input#submit.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt{background-color:#7f54b3;color:#fff;-webkit-font-smoothing:antialiased}:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:hover{background-color:#7249a4;color:#fff}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce #respond input#submit.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce a.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce button.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.alt:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.alt:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce input.button.alt:disabled[disabled]:hover{background-color:#7f54b3;color:#fff}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce a.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled[disabled],:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled[disabled]{color:inherit;cursor:not-allowed;opacity:.5;padding:.618em 1em}.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.disabled:hover,.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce #respond input#submit.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce #respond input#submit:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce a.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce button.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .w
25oocommerce button.button:disabled[disabled]:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button.disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled:hover,:where(body:not(.woocommerce-block-theme-has-button-styles)):where(:not(.edit-post-visual-editor)) .woocommerce input.button:disabled[disabled]:hover{color:inherit;background-color:#e9e6ed}:root{--affwp-creative-preview-width:10rem;--affwp-card-padding:1.5rem}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}@font-face{font-family:Lato;font-style:normal;font-weight:400;src:url(https://jackkeller.com/cf-fonts/s/lato/5.2.7/latin/400/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}@font-face{font-family:Lato;font-style:normal;font-weight:700;src:url(https://jackkeller.com/cf-fonts/s/lato/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}@font-face{font-family:Lato;font-style:italic;font-weight:400;src:url(https://jackkeller.com/cf-fonts/s/lato/5.2.7/latin/400/italic.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;src:url(https://jackkeller.com/cf-fonts/s/montserrat/5.2.8/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}[hidden],template{display:none}a{background:0 0}h1{font-size:2em;margin:.67em 0}img{border:0}svg:not(:root){overflow:hidden}code{font-family:monospace,monospace;font-size:1em}button,input,select{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=submit]{-webkit-appearance:button;cursor:pointer}input{line-height:normal}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}@media print{*{text-shadow:none!important;color:#000!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.label{border:1px solid #000}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:focus,a:hover{color:#2a6496;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}img{vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1{font-size:36px}h2{font-size:30px}p{margin:0 0 10px}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}ul{margin-top:0;margin-bottom:10px}ul ul{margin-bottom:0}dl{margin-top:0;margin-bottom:20px}dt{line-height:1.42857143}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}
25.col-md-3,.col-md-9,.col-sm-4,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-12{float:left}.col-xs-12{width:100%}@media (min-width:768px){.col-sm-4{float:left}.col-sm-4{width:33.33333333%}}@media (min-width:992px){.col-md-3,.col-md-9{float:left}.col-md-9{width:75%}.col-md-3{width:25%}}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.btn.disabled{cursor:not-allowed;pointer-events:none;opacity:.65;-webkit-box-shadow:none;box-shadow:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover{background-color:#fff;border-color:#ccc}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover{background-color:#428bca;border-color:#357ebd}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover{background-color:#5bc0de;border-color:#46b8da}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover{background-color:#f0ad4e;border-color:#eea236}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover{background-color:#d9534f;border-color:#d43f3a}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;cursor:not-allowed}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.container>.navbar-header{margin-right:0;margin-left:0}.navbar>.container .navbar-brand{margin-left:-15px}.navbar-toggle{display:none}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.container:after,.container:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before{content:" ";display:table}.container:after,.navbar-header:after,.navbar:after{clear:both}.pull-right{float:right!important}.hidden{display:none!important;visibility:hidden!important}@-ms-viewport{width:device-width}@font-face{font-display:swap;
25font-family:FontAwesome;src:url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.eot?v=4.6.3');src:url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('https://jackkeller.com/wp-content/themes/zerif-pro/assets/fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pull-right{float:right}.fa.pull-right{margin-left:.3em}.fa-camera:before{content:"\f030"}.fa-info-circle:before{content:"\f05a"}.fa-facebook:before{content:"\f09a"}.fa-list-ol:before{content:"\f0cb"}.fa-question:before{content:"\f128"}.fa-youtube:before{content:"\f167"}.fa-google:before{content:"\f1a0"}.fa-database:before{content:"\f1c0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}a,address,body,caption,code,div,dl,dt,em,form,h1,h2,h3,html,iframe,label,li,object,p,span,strong,tr,tt,ul{border:0;font-family:inherit;font-size:16px;font-style:inherit;font-weight:inherit;margin:0;outline:0;padding:0;vertical-align:baseline}html{overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{background:#fff;-ms-word-wrap:break-word;word-wrap:break-word}@supports (-webkit-overflow-scrolling:touch){body.custom-background{background-size:100%!important;background-attachment:scroll!important}}article,aside,footer,header,main,nav{display:block}ul{list-style:none}a:focus{outline:dotted thin}a:active,a:hover{outline:0}a img{border:0}body{font-family:Lato,Helvetica,sans-serif!important;font-size:14px;color:grey;font-weight:400;line-height:25px;text-align:center}@-webkit-viewport{width:device-width}@-moz-viewport{width:device-width}@-o-viewport{width:device-width}@viewport{width:device-width}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}i{vertical-align:middle}ul{padding-left:0!important}::selection{background:#fc6d6d;color:#fff}::-moz-selection{background:#fc6d6d;color:#fff}a{color:#e96656;-webkit-transition:.7s;transition:all .7s}a,a:hover{text-decoration:none}a:hover{color:#cb4332}p{margin:0}body,button,input,select{color:#404040;font-family:sans-serif;font-size:16px;font-size:1.6rem;line-height:1.5}h1,h2,h3{clear:both}p{margin-bottom:1.5em}b,strong{font-weight:700}em,i{font-style:italic}address{margin:0 0 1.5em}code,tt{font:15px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;white-space:initial}dl{margin:0 20px}h1,h2,h3{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;margin-bottom:10px;display:block;clear:both}h1,h2{font-family:Montserrat,Helvetica,sans-serif;font-weight:700;line-height:35px}h1,h1 span{font-size:30px}h2{font-size:26px}h3{font-size:24px}ul{margin:0 0 1.5em 3em}ul{list-style:disc}li>ul{margin-bottom:0;margin-left:1.5em}dt{font-weight:700}img{height:auto;max-width:100%}.site-main p{margin:0 0 24px}caption{font-weight:400;text-align:left}caption{font-size:16px;margin:20px 0}.red-text{color:#e96656}.green-text{color:#34d293}.blue-text{color:#3ab0e2}button,input,select{font-size:100%;margin:0;vertical-align:baseline}button,input[type=button],input[type=submit]{text-align:center;text-transform:uppercase;padding:13px 35px;border-radius:4px;margin:10px;border:none;background-color:#e96656;box-shadow:none;text-shadow:none;font-weight:400;vertical-align:middle;cursor:pointer;white-space:nowrap;font-size:14px;color:#fff}button:hover,input[type=button]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 15px 17px rgba(255,255,255,.8),inset 0 -5px 12px rgba(0,0,0,.02)}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb;box-shadow:inset 0 -1px 0 rgba(255,255,255,.5),inset 0 2px 5px rgba(0,0,0,.15)}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=email],input[type=password],input[type=search],input[type=text],input[type=url]{color:#a0a0a0;border:1px solid rgba(0,0,0,.1);border-radius:0}input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,input[type=url]:focus{color:#111}input[type=email],input[type=password],input[type=search],input[type=text],input[type=url]{padding:3px}.entry-content button,.entry-content input[type=button],.entry-content input[type=submit]{padding:13px 35px}.entry-content button:hover,.entry-content input[type=button]:hover,.entry-content input[type=submit]:hover{background:#cb4332}
25input:active,input:focus,input:hover{outline:0!important;outline-color:#e96656!important;-webkit-box-shadow:none!important;box-shadow:none!important}a{color:#4169e1}a:visited{color:purple}a:active,a:focus,a:hover{color:#191970}.navbar.navbar-inverse .primary-menu ul{list-style:none;margin:0;padding-left:0}.navbar.navbar-inverse .primary-menu li{float:left;position:relative}.navbar.navbar-inverse .primary-menu a{display:block;text-decoration:none}.navbar.navbar-inverse .primary-menu ul ul{box-shadow:0 3px 3px rgba(0,0,0,.2);display:none;float:left;left:0;position:absolute;top:1.5em;z-index:99999}.navbar.navbar-inverse .primary-menu ul ul{top:2em}.navbar.navbar-inverse .primary-menu ul ul ul{left:100%;top:0}.navbar.navbar-inverse .primary-menu ul ul a{width:200px}.navbar.navbar-inverse .primary-menu ul li:hover>ul{display:block}.clear:after,.clear:before,.entry-content:after,.entry-content:before,.site-content:after,.site-content:before{content:'';display:table}.clear:after,.entry-content:after,.site-content:after{clear:both}.sidebar-wrap{border-left:1px solid rgba(0,0,0,.05)}.widget .widget-title{color:#404040;text-transform:uppercase;margin-bottom:30px;font-weight:700;font-size:17px;position:relative;text-align:left;margin-top:30px;padding-bottom:5px;float:none}.widget .widget-title:before{position:absolute;margin:auto;z-index:1;content:"";width:35%;height:2px;background:#e96656;bottom:-9px;left:0}.widget select{max-width:100%;width:100%;padding:10px;border:1px solid #e9e9e9}.widget_search .search-submit{display:block;width:46px;height:46px;position:absolute;top:0;right:0;padding:0;margin:0;background:url(https://jackkeller.com/wp-content/themes/zerif-pro/images/search_icon.png) center center no-repeat;text-indent:-9999999px}.widget_search label{margin-bottom:5px;width:100%;position:relative}.widget_search form{position:relative}.widget_search input{width:83%;padding:12px 15% 12px 2%}.widget ul{margin:0;padding:0;display:block}.widget li{list-style:none;margin:15px 0;text-align:left;margin-left:3%;position:relative;padding-left:10px}.widget li:before{content:'';width:4px;height:4px;background:#e9e9e9;float:left;position:absolute;margin-top:11px;left:0}.widget li a{color:grey}.widget li a:hover{color:#404040}.widget-area{float:left;width:100%}.widget-area .widget{clear:both}.container>.navbar-header{margin-right:0;margin-left:0}.hentry{margin:0 0 1.5em}.byline,.updated{display:none}.entry-content{margin:1.5em 0 0}.entry-title{float:none;position:relative}.entry-title:after{position:absolute;margin:auto;z-index:1;content:"";width:10%;height:2px;background:#e96656;bottom:-9px;left:0}.content-area .entry-header{display:inline-block;width:100%}iframe,object{max-width:100%}.focus{padding-top:100px}.status{width:200px;height:200px;position:absolute;left:50%;top:50%;background-image:url(https://jackkeller.com/wp-content/themes/zerif-pro/images/loading.gif);background-repeat:no-repeat;background-position:center;margin:-100px 0 0 -100px}header.header{min-height:76px}.header.header>.navbar{-webkit-box-shadow:0 5px 11px 0 rgba(50,50,50,.08);box-shadow:0 5px 11px 0 rgba(50,50,50,.08)}.navbar{background:#fff;border:0;border-radius:0!important;text-align:left}#main-nav{position:fixed;width:100%;z-index:1000;min-height:75px;margin-bottom:0}.navbar-brand{height:76px;position:relative;line-height:60px;padding:7px 15px;display:inline-block;text-align:center}.navbar-brand>a>img{max-height:62px}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#999;text-decoration:none}.navbar-brand>img{max-height:100%}.navbar-toggle{border:0;background-color:grey;margin-top:23px}.navbar-inverse .navbar-toggle,.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#e96656;opacity:1;box-shadow:none}.navbar-toggle.collapsed{background-color:grey!important}.navbar.navbar-inverse .primary-menu ul>li.current-menu-item.menu-item-home>a:before,.navbar.navbar-inverse .primary-menu ul>li.current_page_item.menu-item-home a:before{content:"";display:none}.focus{padding-bottom:100px;overflow:hidden;background:#fff}.item{width:100%;height:260px;display:block;-webkit-background-size:100%;background-size:100%;position:relative;margin:auto;margin-bottom:30px;z-index:5;-webkit-backface-visibility:hidden;overflow:hidden;border-radius:4px}#footer{background:#272727;line-height:20px}
25.company-details{color:#939393;padding-top:67px;padding-bottom:30px}.company-details a{color:#939393;text-decoration:none}.company-details a:hover{color:#e96656}.company-details .icon-top{font-size:30px;margin-bottom:10px}.copyright{padding-top:72px;padding-bottom:68px;background:#171717}.copyright p{margin-bottom:0;color:#939393}.social{margin:0 0 1.5em!important}.social li{display:inline-block;margin:5px}.social li a{color:#939393;font-size:18px}.social li a:hover{color:#e96656}.footer-box-wrap{float:left;width:100%}.footer-widget-wrap>.container{text-align:center}.footer-widget{float:none;display:inline-block;vertical-align:top}.footer-widget{padding:0 15px}.footer-widget ul{margin-left:0;padding-left:0}.footer-widget li{list-style:none;margin-left:0}.footer-widget-wrap{background:rgba(255,255,255,.05)}.footer-widget-wrap .widget .widget-title{color:#fff!important}.footer-widget-wrap .widget li a{color:#ccc}.footer-widget-wrap .widget li a:hover{color:#fff}.footer-widget-wrap .widget{color:#ccc;padding-bottom:30px}.entry-content ul{clear:left}article.hentry:not(.large-container){float:left;width:100%;padding-top:0;padding-left:0;padding-right:0;margin-bottom:30px;border-bottom:1px solid rgba(0,0,0,.05)}article.sticky{background:#f9f9f9;padding:10px!important}article{text-align:left}.entry-title,.entry-title a,.widget-title,.widget-title a{font-size:20px;line-height:22px;color:#404040}.entry-title a:hover{color:#e96656}.clear{clear:both}.content-left-wrap{padding-top:60px}.sidebar-wrap.content-left-wrap{margin-top:60px;padding-top:0}.entry-title{font-size:20px}.entry-content{line-height:20px}.entry-content p{text-align:justify}.entry-content{margin:1em 0 0}#map{height:500px}:focus{outline:0}.woocommerce div.product p.price{color:#000}.woocommerce div.product .woocommerce-product-rating{float:left;text-align:left;margin-top:30px;margin-bottom:0}.woocommerce div.product form.cart .button{display:inline-block;text-align:center;text-transform:uppercase;padding:13px 35px;border-radius:4px;margin:10px;border:none;background:#e96656;color:#fff;margin-left:0}.woocommerce div.product form.cart .button:hover{background:#bf3928}.woocommerce div.product form.cart{margin-bottom:0}.woocommerce-page .select2-drop{text-align:left}.woocommerce div.product .woocommerce-tabs ul.tabs li:after,.woocommerce div.product .woocommerce-tabs ul.tabs li:before{content:"";display:none}.woocommerce div.product .woocommerce-tabs ul.tabs{overflow:visible}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom:2px solid #e96656;margin-bottom:-1px}.woocommerce div.product .woocommerce-tabs ul.tabs li{box-shadow:none}.woocommerce div.product div.thumbnails a{margin-bottom:1em}.woocommerce div.product form.cart label{color:#404040}.woocommerce div.product .related{clear:both}.woocommerce div.product{width:100%;float:left}.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2){width:30.75%}.woocommerce div.product div.images .flex-control-thumbs li{padding-top:1em;float:left;width:30.75%}.woocommerce div.product div.images .flex-control-thumbs li{margin-right:3.8%}.woocommerce div.product div.images .flex-control-thumbs li:nth-child(3n){margin:0}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{vertical-align:inherit}.woocommerce div.product div.images .flex-control-thumbs li:nth-child(4n+1){clear:none}@media (max-width:768px){.page-template-default article.hentry{padding-bottom:30px}.navbar.navbar-inverse .primary-menu .menu-item-has-children>a:after,.navbar.navbar-inverse .primary-menu .sub-menu .menu-item-has-children>a:after{content:'';display:none}}.navbar.navbar-inverse .primary-menu .menu-item-has-children>a:after{content:'\f0d7';
25font-family:FontAwesome;margin:0 0 0 6px;color:inherit}@media (min-width:768px) and (max-width:1024px){footer .footer-box{padding-top:40px}footer .footer-box.copyright{padding-top:72px}.company-details{padding-top:0;padding-bottom:33px}.four-cell.copyright{width:100%}.four-cell{width:33%;float:left}}@media (max-width:992px){#main-nav nav>ul>li{float:none;display:inline-block}.focus{padding-top:60px;padding-bottom:60px}.sidebar-wrap.pull-right{float:none!important}}@media (max-width:767px){#main-nav{overflow:hidden!important}.navbar.navbar-inverse .primary-menu>li a{text-align:left}.navbar.navbar-inverse .primary-menu ul.sub-menu{display:none!important;position:relative;top:0;box-shadow:none;width:100%}.navbar.navbar-inverse .primary-menu ul.sub-menu li{width:100%;float:left}.navbar.navbar-inverse .primary-menu ul.sub-menu li:last-child a{border-bottom:none}.navbar.navbar-inverse .primary-menu ul.sub-menu ul.sub-menu{position:relative;left:0;top:0}#main-nav{overflow:visible}#main-nav,#main-nav.fixed{position:relative}.navbar.navbar-inverse .primary-menu ul.sub-menu li{padding-left:20px}.navbar.navbar-inverse .primary-menu ul.sub-menu li{padding-bottom:0;padding-top:0}.navbar.navbar-inverse .primary-menu ul.sub-menu li{margin-right:0;padding-right:0}.navbar.navbar-inverse .primary-menu>li>a:hover{color:#40404}.header{min-height:inherit;padding-bottom:0!important}.footer-box-wrap .footer-box:first-child{padding-top:40px}.company-details{padding-top:0;padding-bottom:33px}.copyright{width:100%;padding-top:33px;padding-bottom:33px}.four-cell{width:100%;float:left}}@media (max-width:480px){h2{font-size:6.5vw!important}.four-cell{width:100%;float:left}}@media print{body{font-size:11.25pt}a:link:after,a:visited:after{content:""}header.header{min-height:0!important}#main-nav{position:relative}.focus{padding-top:15px}.focus{padding-bottom:0}.company-details{width:33%!important;margin-right:0;margin-left:0;padding-left:0;padding:0 1.5%;float:left}.copyright{width:100%}.content-left-wrap{padding-top:0}}.navbar.navbar-inverse .primary-menu a,.navbar.navbar-inverse .primary-menu>li>a{color:grey}.navbar.navbar-inverse .primary-menu a:hover,.navbar.navbar-inverse .primary-menu>li>a:hover{color:#00c}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px}.primary-menu nav{float:right}.primary-menu ul{list-style:none;margin:0}.primary-menu ul li{display:inline-block;position:relative;margin-right:20px;margin-top:20px;float:left}.primary-menu ul li:last-child{margin-right:0}.primary-menu ul li a:focus,.primary-menu ul li:hover>a{color:#e96656}.primary-menu ul li a{text-decoration:none;display:block;color:#404040;line-height:35px}.primary-menu ul li:hover>.sub-menu{left:0;margin:0}.primary-menu ul ul li:hover>.sub-menu{left:200px;top:0}.sub-menu{position:absolute;left:-9999px;top:100%;background:#fff;width:200px;box-shadow:3px 3px 2px rgba(50,50,50,.08);z-index:9999}.primary-menu ul.sub-menu li{display:block;width:100%;float:none;position:relative;list-style:none;padding:10px;margin:0}.primary-menu ul.sub-menu li a{display:block;line-height:initial}.skip-link{display:inline-block;position:absolute;top:1em;left:.5em;overflow:hidden;width:1px;height:1px;clip:rect(0,0,0,0)}.skip-link:focus{width:auto;height:auto;clip:auto;z-index:9999;padding:10px;border:1px solid;background-color:#efefef;color:#176ba1;text-decoration:none;font-weight:700}@media (min-width:768px){.primary-menu{display:block!important}}@media (max-width:767px){.primary-menu{display:none}.primary-menu ul li{width:100%;border-bottom:1px solid #ededed;position:relative;margin:8px 0 0;padding:0 0 8px}.navbar.navbar-inverse .primary-menu ul.sub-menu li a{width:100%;float:left;padding:8px 25px 8px 0}.primary-menu nav{float:none;padding-right:15px;padding-left:15px}.sub-menu{position:relative;display:none;width:100%;box-shadow:none;z-index:initial;right:0}.primary-menu ul.sub-menu li:last-child{border-bottom:none}}#af_tbw_tipping_donation_div .af_tbw_other_options_fixed_wrap .select2-container--default,.af_tbw_other_options_fixed_wrap .select2-container .select2-selection--single,.af_tbw_other_options_fixed_wrap .select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;padding:0!important}.af_tbw_other_options_fixed_wrap .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:46px}.af_tbw_other_options_fixed_wrap .select2-container--default{width:100%!important}.af_tbw_slected_option .select2-container--default{width:100%!important;margin-bottom:14px}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;
25cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #000;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:0 0;border:none;outline:0}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f6f6f6;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top,#fff 50%,#eee 100%);background-image:-o-linear-gradient(top,#fff 50%,#eee 100%);background-image:linear-gradient(to bottom,#fff 50%,#eee 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;
25height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top,#eee 50%,#ccc 100%);background-image:-o-linear-gradient(top,#eee 50%,#ccc 100%);background-image:linear-gradient(to bottom,#eee 50%,#ccc 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:0 0;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top,#fff 0,#eee 50%);background-image:-o-linear-gradient(top,#fff 0,#eee 50%);background-image:linear-gradient(to bottom,#fff 0,#eee 50%);background-repeat:repeat-x}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top,#eee 50%,#fff 100%);background-image:-o-linear-gradient(top,#eee 50%,#fff 100%);background-image:linear-gradient(to bottom,#eee 50%,#fff 100%);background-repeat:repeat-x}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}:root{--rwp-banner-padding:1rem;--rwp-banner-gap:0.75rem;--rwp-banner-radius:0.5rem;--rwp-banner-icon-size:1.5rem;--rwp-banner-font-size:0.875rem;--rwp-banner-line-height:1.5;--rwp-banner-heading-size:1rem;--rwp-banner-button-bg:var(--color-rwp-brand, #374151);--rwp-banner-button-text:var(--color-rwp-widget-button-text, #ffffff)}:root,rewards-panel{--color-rwp-brand:#000099;--color-rwp-brand-hover:color-mix(in srgb, white 20%, #000099);--color-rwp-brand-foreground:#ffffff;--color-rwp-widget-button-text:#ffffff;--rwp-header-text:#ffffff;--rwp-button-text:#ffffff}:root{--rwp-panel-position:fixed;--rwp-panel-top:auto;--rwp-panel-bottom:96px;--rwp-panel-left:24px;--rwp-panel-right:auto;--rwp-panel-transform-origin:bottom left;--rwp-launcher-position:fixed;--rwp-launcher-bottom:24px;--rwp-launcher-left:24px;--rwp-launcher-right:auto}.site-content{background:#fff}.navbar{background:#fff}.entry-title,.entry-title a,.widget-title,.widget-title a{color:#404040!important}.entry-title:after,.entry-title:before,.navbar.navbar-inverse .primary-menu ul li.current-menu-item>a:before,.widget .widget-title:before{background:#00c!important}.widget .textwidget,.widget p,body,button,input,select{color:#404040}.site-content a,.widget a,.widget li a,article .entry-content a{color:grey}.site-content a:hover,.widget a:hover,.widget li a:hover,article .entry-content a:hover{color:#00c}.focus{background:#fff}#footer{background:#272727}.copyright{background:#171717}
25#footer .company-details,#footer .company-details a,#footer .footer-widget a,#footer .footer-widget p{color:#939393!important}#footer .social li a{color:#00b1dd}#footer .social li a:hover{color:#009}#footer .company-details a:hover,#footer .footer-widget a:hover{color:#00b1dd!important}#footer .footer-widget h1{color:#fff!important}#footer .footer-widget h1:before{background:#009!important}.page button,.post button{background-color:#1e73be!important}.page button:hover,.post button:hover{background-color:#00c!important;box-shadow:none}.page button,.post button{color:#fff!important}body.custom-background{background-image:url("https://jackkeller.com/wp-content/uploads/2026/02/enhance-the-uploaded.png");background-position:center top;background-size:contain;background-repeat:no-repeat;background-attachment:fixed}:root{--primarybtnbg:#1876d6;--primarybtncolor:#fff;--sp-text-color:#000;--sp-site-bg:#fff;--sp-text-dark-bg:#fff;--sp-c-1:#9ca2c0;--formfieldbgcolor:#fff;--formfieldbordercolor:#ddd;--formfieldborderwidth:2px;--formfieldpadding:10px 12px;--bodyfontfamily:inherit;--primarybtnhoverbg:var(--sp-primary-accent);--bodyfontsize:inherit;--sp-primary-accent:#0366d6;--sp-secondary-accent:#0e509a}.entry-title:after{background:#009!important}.navbar-toggle.collapsed{background-color:#009!important}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#009!important}</style><link rel="preload" data-rocket-preload as="image" href="https://jackkeller.com/wp-content/uploads/2025/12/cropped-JKI-no-addr-1975.jpg" fetchpriority="high">
26<meta name="description" content="Alachua - (352) 374-5230"/>
27<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
28<link rel="canonical" href="https://jackkeller.com/tax-record-search/" />
29<meta property="og:locale" content="en_US" />
30<meta property="og:type" content="article" />
31<meta property="og:title" content="Tax Record Search | List On MLS &amp; REALTOR.com+ From $75." />
32<meta property="og:description" content="Alachua - (352) 374-5230" />
33<meta property="og:url" content="https://jackkeller.com/tax-record-search/" />
34<meta property="og:site_name" content="List on MLS &amp; REALTOR.com+ from $75." />
35<meta property="article:publisher" content="https://www.facebook.com/Flat-Fee-MLS-Listings-1624103311168131" />
36<meta property="og:updated_time" content="2022-09-02T13:35:12-04:00" />
37<meta property="og:image" content="https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg" />
38<meta property="og:image:secure_url" content="https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg" />
39<meta property="og:image:width" content="475" />
40<meta property="og:image:height" content="365" />
41<meta property="og:image:alt" content="JKI WEB" />
42<meta property="og:image:type" content="image/jpeg" />
43<meta property="article:published_time" content="2015-12-11T16:55:19-05:00" />
44<meta property="article:modified_time" content="2022-09-02T13:35:12-04:00" />
45<meta name="twitter:card" content="summary" />
46<meta name="twitter:title" content="Tax Record Search | List On MLS &amp; REALTOR.com+ From $75." />
47<meta name="twitter:description" content="Alachua - (352) 374-5230" />
48<meta name="twitter:image" content="https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg" />
49<meta name="twitter:label1" content="Time to read" />
50<meta name="twitter:data1" content="Less than a minute" />
51<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Place","@id":"https://jackkeller.com/#place","address":{"@type":"PostalAddress","streetAddress":"2440 West Bay Dr","addressLocality":"Largo","addressRegion":"FL","postalCode":"33770","addressCountry":"USA"}},{"@type":["RealEstateAgent","Organization"],"@id":"https://jackkeller.com/#organization","name":"Jack Keller Inc., REALTORS","url":"https://www.jackkeller.com","sameAs":["https://www.facebook.com/Flat-Fee-MLS-Listings-1624103311168131"],"email":"[email protected]","address":{"@type":"PostalAddress","streetAddress":"2440 West Bay Dr","addressLocality":"Largo","addressRegion":"FL","postalCode":"33770","addressCountry":"USA"},"logo":{"@type":"ImageObject","@id":"https://jackkeller.com/#logo","url":"https://jackkeller.com/wp-content/uploads/2015/08/JKI-letter-head2.jpg","contentUrl":"https://jackkeller.com/wp-content/uploads/2015/08/JKI-letter-head2.jpg","caption":"List on MLS &amp; REALTOR.com+ from $75.","inLanguage":"en-US","width":"96","height":"60"},"priceRange":"From $75","openingHours":["Mo,Tu,We,Th,Fr 09:00-17:00"],"location":{"@id":"https://jackkeller.com/#place"},"image":{"@id":"https://jackkeller.com/#logo"},"telephone":"+17275861497"},{"@type":"WebSite","@id":"https://jackkeller.com/#website","url":"https://jackkeller.com","name":"List on MLS &amp; REALTOR.com+ from $75.","alternateName":"List on MLS &amp; REALTOR.com, Zillow, Redfin, Homes.com+ from $75.","publisher":{"@id":"https://jackkeller.com/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg","url":"https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg","width":"475","height":"365","caption":"JKI WEB","inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://jackkeller.com/tax-record-search/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://jackkeller.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://jackkeller.com/tax-record-search/","name":"Tax Record Search"}}]},{"@type":"WebPage","@id":"https://jackkeller.com/tax-record-search/#webpage","url":"https://jackkeller.com/tax-record-search/","name":"Tax Record Search | List On MLS &amp; REALTOR.com+ From $75.","datePublished":"2015-12-11T16:55:19-05:00","dateModified":"2022-09-02T13:35:12-04:00","isPartOf":{"@id":"https://jackkeller.com/#website"},"primaryImageOfPage":{"@id":"https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg"},"inLanguage":"en-US","breadcrumb":{"@id":"https://jackkeller.com/tax-record-search/#breadcrumb"}},{"@type":"Person","@id":"https://jackkeller.com/tax-record-search/#author","name":"jackkellerinc","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/33640dfad3ca25fc0a3847ad94015640b6542ac14f344a47260d8c87f358e2b4?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/33640dfad3ca25fc0a3847ad94015640b6542ac14f344a47260d8c87f358e2b4?s=96&amp;d=mm&amp;r=g","caption":"jackkellerinc","inLanguage":"en-US"},"worksFor":{"@id":"https://jackkeller.com/#organization"}},{"@type":"Article","headline":"Tax Record Search | List On MLS &amp; REALTOR.com+ From $75.","keywords":"MLS,multiple,listing,service,flat,fee,low,fee,fsbo,flat,fee,mls,cheap,mls,low,fee,mls,south,florida,florida,fl,fla,for,sale,by,owner,owner,by,owner,listing,for,sale,cheap,central,florida,Pinellas,Hillsborough,Pasco,Polk,Broward,Palm,Beach,Miami-Dade,St,Lucie,Martin,Orange,Seminole,Sarasota,Manatee,Charlotte,Osceola,Lake,Desoto,Sumter,W,Volusia,Counties,tampa,tampa,bay,mls,listings,fee,for,service,real,estate,flat,fee,real,estate,low,fee,real,estate,fee,for,service,real,estate,Pinellas,mls,Hillsborough,mls,Pasco,mls,Polk,mls,Broward,mls,Palm,Beach,mls,Miami-Dade,mls,St,Lucie,mls,Martin,mls,Orange,mls,Seminole,mls,Sarasota,mls,Manatee,mls,Charlotte,mls,Osceola,mls,Lake,mls,Desoto,mls,Sumter,,mls,W,Volusia,Pinellas,Hillsborough,fsbo,Pasco,fsbo,Polk,fsbo,Broward,fsbo,Palm,Beach,fsbo,Miami-Dade,fsbo,St,Lucie,fsbo,Martin,fsbo,Orange,fsbo,Seminole,fsbo,Sarasota,fsbo,Manatee,f
51sbo,Charlotte,fsbo,Osceola,fsbo,Lake,fsbo,Desoto,fsbo,Sumter,fsbo,W,Volusia,fsbo,Counties,Belleair,North Redington Beach,Belleair Beach,Oldsmar,Belleair Bluffs,Pinellas Park,Belleair Shore,Redington Beach,Clearwater,Redington Shores,Dunedin,Safety Harbor,Gulfport,St.Pete Beach,Indian Rocks Beach,St. Petersburg,Indian Shores,Seminole,Kenneth City,South Pasadena,Largo,Tarpon Springs,Madeira Beach,Treasure Island,Apollo Beach,Balm,Bloomingdale,Boyette,Brandon,Carrollwood,Carrollwood Village,Cheval,Citrus Park,Clair-Mel,Dover,East,Lake Egypt,Lake-Leto,FishHawk,Gibsonton,Keystone,Lake Magdalene,Lutz,Mango,Northdale,Orient Park,Palm River-Clair Mel,Pebble Creek,Progress Village,Riverview,Ruskin,SeffnerSun City CenterThonotosassa,Town 'n' Country,University,Valrico,Westchase,Wimauma, Belleair mls,North Redington Beach mls,Belleair Beach mls,Oldsmar mls,Belleair Bluffs mls,Pinellas Park mls,Belleair Shore mls,Redington Beach mls,Clearwater mls,Redington Shores mls,Dunedin mls,Safety Harbor mls,Gulfport mls,St.Pete Beach mls,Indian Rocks Beach mls,St. Petersburg mls,Indian Shores mls,Seminole mls,Kenneth City mls,South Pasadena mls,Largo mls,Tarpon Springs mls,Madeira Beach mls,Treasure Island mls,Apollo Beach mls,Balm mls,Bloomingdale mls,Boyette mls,Brandon mls,Carrollwood mls,Carrollwood Village mls,Cheval mls,Citrus Park mls,Clair-Mel mls,Dover mls,East mls,Lake Egypt mls,Lake-Leto mls,FishHawk mls,Gibsonton mls,Keystone mls,Lake Magdalene mls,Lutz mls,Mango mls,Northdale mls,Orient Park mls,Palm River-Clair Mel mls,Pebble Creek mls,Progress Village mls,Riverview mls,Ruskin mls,Seffner,Sun City Center,Thonotosassa mls,Town 'n' Country mls,University mls,Valrico mls,Westchase mls,Wimauma, Belleair fsbo,North Redington Beach fsbo,Belleair Beach fsbo,Oldsmar fsbo,Belleair Bluffs fsbo,Pinellas Park fsbo,Belleair Shore fsbo,Redington Beach fsbo,Clearwater fsbo,Redington Shores fsbo,Dunedin fsbo,Safety Harbor fsbo,Gulfport fsbo,St.Pete Beach fsbo,Indian Rocks Beach fsbo,St. Petersburg fsbo,Indian Shores fsbo,Seminole fsbo,Kenneth City fsbo,South Pasadena fsbo,Largo fsbo,Tarpon Springs fsbo,Madeira Beach fsbo,Treasure Island fsbo,Apollo Beach fsbo,Balm fsbo,Bloomingdale fsbo,Boyette fsbo,Brandon fsbo,Carrollwood fsbo,Carrollwood Village fsbo,Cheval fsbo,Citrus Park fsbo,Clair-Mel fsbo,Dover fsbo,East fsbo,Lake Egypt fsbo,Lake-Leto fsbo,FishHawk fsbo,Gibsonton fsbo,Keystone fsbo,Lake Magdalene fsbo,Lutz fsbo,Mango fsbo,Northdale fsbo,Orient Park fsbo,Palm River-Clair Mel fsbo,Pebble Creek fsbo,Progress Village fsbo,Riverview fsbo,Ruskin fsbo,Seffner,Sun City Center,Thonotosassa fsbo,Town 'n' Country fsbo,University fsbo,Valrico fsbo,Westchase fsbo,Wimauma","datePublished":"2015-12-11T16:55:19-05:00","dateModified":"2022-09-02T13:35:12-04:00","author":{"@id":"https://jackkeller.com/tax-record-search/#author","name":"jackkellerinc"},"publisher":{"@id":"https://jackkeller.com/#organization"},"description":"Alachua - (352) 374-5230","name":"Tax Record Search | List On MLS &amp; REALTOR.com+ From $75.","@id":"https://jackkeller.com/tax-record-search/#richSnippet","isPartOf":{"@id":"https://jackkeller.com/tax-record-search/#webpage"},"image":{"@id":"https://jackkeller.com/wp-content/uploads/2020/07/JKI-WEB.jpg"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://jackkeller.com/tax-record-search/#webpage"}}]}</script>
51
52<!-- /Rank Math WordPress SEO plugin -->
53
54<link rel='dns-prefetch' href='//www.googletagmanager.com' />
55
56
57<link rel="alternate" type="application/rss+xml" title="List on MLS &amp; REALTOR.com+ from $75. &raquo; Feed" href="https://jackkeller.com/feed/" />
58<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://jackkeller.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjackkeller.com%2Ftax-record-search%2F" />
59<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://jackkeller.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjackkeller.com%2Ftax-record-search%2F&#038;format=xml" />
60		<!-- This site uses the Google Analytics by MonsterInsights plugin v11.3.0 - Using Analytics tracking - https://www.monsterinsights.com/ -->
vendor: 104 bytes, lines 60-61
60
61							<script type="text/rocketlazyloadscript" data-rocket-src="//www.googletagmanager.com/gtag/js?id=
61G-VMZCK0DKVX
vendor: 68 bytes, lines 61-62
61"  data-cfasync="false" data-wpfc-render="false" async></script>
62			
62<script type="text/rocketlazyloadscript" data-cfasync="false" data-wpfc-render="false">
63				var mi_version = '11.3.0';
64				var mi_track_user = true;
65				var mi_no_track_reason = '';
66								var MonsterInsightsDefaultLocations = {"page_location":"https:\/\/jackkeller.com\/tax-record-search\/"};
67								if ( typeof MonsterInsightsPrivacyGuardFilter === 'function' ) {
68					var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsPrivacyGuardFilter( MonsterInsightsExcludeQuery ) : MonsterInsightsPrivacyGuardFilter( MonsterInsightsDefaultLocations );
69				} else {
70					var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsExcludeQuery : MonsterInsightsDefaultLocations;
71				}
72
73								var disableStrs = [
74										'ga-disable-G-VMZCK0DKVX',
75									];
76
77				/* Function to detect opted out users */
78				function __gtagTrackerIsOptedOut() {
79					for (var index = 0; index < disableStrs.length; index++) {
80						if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) {
81							return true;
82						}
83					}
84
85					return false;
86				}
87
88				/* Disable tracking if the opt-out cookie exists. */
89				if (__gtagTrackerIsOptedOut()) {
90					for (var index = 0; index < disableStrs.length; index++) {
91						window[disableStrs[index]] = true;
92					}
93				}
94
95				/* Opt-out function */
96				function __gtagTrackerOptout() {
97					for (var index = 0; index < disableStrs.length; index++) {
98						document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
99						window[disableStrs[index]] = true;
100					}
101				}
102
103				if ('undefined' === typeof gaOptout) {
104					function gaOptout() {
105						__gtagTrackerOptout();
106					}
107				}
108								window.dataLayer = window.dataLayer || [];
109
110				window.MonsterInsightsDualTracker = {
111					helpers: {},
112					trackers: {},
113				};
114				if (mi_track_user) {
115					function __gtagDataLayer() {
116						dataLayer.push(arguments);
117					}
118
119					function __gtagTracker(type, name, parameters) {
120						if (!parameters) {
121							parameters = {};
122						}
123
124						if (parameters.send_to) {
125							__gtagDataLayer.apply(null, arguments);
126							return;
127						}
128
129						if (type === 'event') {
130														parameters.send_to = monsterinsights_frontend.v4_id;
131							var hookName = name;
132							if (typeof parameters['event_category'] !== 'undefined') {
133								hookName = parameters['event_category'] + ':' + name;
134							}
135
136							if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') {
137								MonsterInsightsDualTracker.trackers[hookName](parameters);
138							} else {
139								__gtagDataLayer('event', name, parameters);
140							}
141							
142						} else {
143							__gtagDataLayer.apply(null, arguments);
144						}
145					}
146
147					__gtagTracker('js', new Date());
148					__gtagTracker('set', {
149						'developer_id.dZGIzZG': true,
150											});
151					if ( MonsterInsightsLocations.page_location ) {
152						__gtagTracker('set', MonsterInsightsLocations);
153					}
154										__gtagTracker('config', 'G-VMZCK0DKVX', {"forceSSL":"true","link_attribution":"true"} );
155										window.gtag = __gtagTracker;										(function () {
156						/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */
157						/* ga and __gaTracker compatibility shim. */
158						var noopfn = function () {
159							return null;
160						};
161						var newtracker = function () {
162							return new Tracker();
163						};
164						var Tracker = function () {
165							return null;
166						};
167						var p = Tracker.prototype;
168						p.get = noopfn;
169						p.set = noopfn;
170						p.send = function () {
171							var args = Array.prototype.slice.call(arguments);
172							args.unshift('send');
173							__gaTracker.apply(null, args);
174						};
175						var __gaTracker = function () {
176							var len = arguments.length;
177							if (len === 0) {
178								return;
179							}
180							var f = arguments[len - 1];
181							if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') {
182								if ('send' === arguments[0]) {
183									var hitConverted, hitObject = false, action;
184									if ('event' === arguments[1]) {
185										if ('undefined' !== typeof arguments[3]) {
186											hitObject = {
187												'eventAction': arguments[3],
188												'eventCategory': arguments[2],
189												'eventLabel': arguments[4],
190												'value': arguments[5] ? arguments[5] : 1,
191											}
192										}
193									}
194									if ('pageview' === arguments[1]) {
195										if ('undefined' !== typeof arguments[2]) {
196											hitObject = {
197												'eventAction': 'page_view',
198												'page_path': arguments[2],
199											}
200										}
201									}
202									if (typeof arguments[2] === 'object') {
203										hitObject = arguments[2];
204									}
205									if (typeof arguments[5] === 'object') {
206										Object.assign(hitObject, arguments[5]);
207									}
208									if ('undefined' !== typeof arguments[1].hitType) {
209										hitObject = arguments[1];
210										if ('pageview' === hitObject.hitType) {
211											hitObject.eventAction = 'page_view';
212										}
213									}
214									if (hitObject) {
215										action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction;
216										hitConverted = mapArgs(hitObject);
217										__gtagTracker('event', action, hitConverted);
218									}
219								}
220								return;
221							}
222
223							function mapArgs(args) {
224								var arg, hit = {};
225								var gaMap = {
226									'eventCategory': 'event_category',
227									'eventAction': 'event_action',
228									'eventLabel': 'event_label',
229									'eventValue': 'event_value',
230									'nonInteraction': 'non_interaction',
231									'timingCategory': 'event_category',
232									'timingVar': 'name',
233									'timingValue': 'value',
234									'timingLabel': 'event_label',
235									'page': 'page_path',
236									'location': 'page_location',
237									'title': 'page_title',
238									'referrer' : 'page_referrer',
239								};
240								for (arg in args) {
241																		if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) {
242										hit[gaMap[arg]] = args[arg];
243									} else {
244										hit[arg] = args[arg];
245									}
246								}
247								return hit;
248							}
249
250							try {
251								f.hitCallback();
252							} catch (ex) {
253							}
254						};
255						__gaTracker.create = newtracker;
256						__gaTracker.getByName = newtracker;
257						__gaTracker.getAll = function () {
258							return [];
259						};
260						__gaTracker.remove = noopfn;
261						__gaTracker.loaded = true;
262						window['__gaTracker'] = __gaTracker;
263					})();
264									} else {
265										console.log("");
266					(function () {
267						function __gtagTracker() {
268							return null;
269						}
270
271						window['__gtagTracker'] = __gtagTracker;
272						window['gtag'] = __gtagTracker;
273					})();
274									}
275			</script>
275
276							<!-- / Google Analytics by MonsterInsights -->
277		
278<style type="text/css" media="all"></style>
279<style id="wp-img-auto-sizes-contain-inline-css"></style>
280
281
282
283
284
285
286<style id="wp-emoji-styles-inline-css"></style>
287<style id="wp-block-library-inline-css"></style>
288<style id="classic-theme-styles-inline-css"></style>
289
290<style id="global-styles-inline-css"></style>
291
292
293
294
295
296
297<style id="woocommerce-layout-inline-css"></style>
298
299
300<style id="woocommerce-inline-inline-css"></style>
301
302
303<style id="jetpack-stats-inline-css">
304img#wpstats{display:none}
305/*# sourceURL=jetpack-stats-inline-css */
306</style>
307
308
309
310
311
312
313<style id="zerif_style-inline-css"></style>
314
315
316
317<style id="rewardswp-components-inline-css"></style>
318
319<style id="rocket-lazyload-inline-css">
320.rll-youtube-player{position:relative;padding-bottom:56.23%;height:0;overflow:hidden;max-width:100%;}.rll-youtube-player:focus-within{outline: 2px solid currentColor;outline-offset: 5px;}.rll-youtube-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;background:0 0}.rll-youtube-player img{bottom:0;display:block;left:0;margin:auto;max-width:100%;width:100%;position:absolute;right:0;top:0;border:none;height:auto;-webkit-transition:.4s all;-moz-transition:.4s all;transition:.4s all}.rll-youtube-player img:hover{-webkit-filter:brightness(75%)}.rll-youtube-player .play{height:100%;width:100%;left:0;top:0;position:absolute;background:url(https://jackkeller.com/wp-content/plugins/wp-rocket/assets/img/youtube.png) no-repeat center;background-color: transparent !important;cursor:pointer;border:none;}
321/*# sourceURL=rocket-lazyload-inline-css */
322</style>
323<script type="text/rocketlazyloadscript" id="jquery-core-js" data-rocket-src="https://jackkeller.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 323
323
324<script type="text/rocketlazyloadscript" id="jquery-migrate-js" data-rocket-src="https://jackkeller.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 324
324
325<script type="text/rocketlazyloadscript" id="wp-dom-ready-js" data-rocket-src="https://jackkeller.com/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23" data-rocket-defer defer></script>
vendor: 1 bytes, line 325
325
326<script type="text/rocketlazyloadscript" data-minify="1" id="wpautoterms_base-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/auto-terms-of-service-and-privacy-policy/js/base.js?ver=1789818262" data-rocket-defer defer></script>
vendor: 1 bytes, line 326
326
327<script type="text/rocketlazyloadscript" async data-wp-strategy="async" id="monsterinsights-frontend-script-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend-gtag.min.js?ver=11.3.0"></script>
vendor: 1 bytes, line 327
327
328<script data-cfasync="false" data-wpfc-render="false" id='monsterinsights-frontend-script-js-extra'>var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/jackkeller.com","hash_tracking":"false","v4_id":"G-VMZCK0DKVX"};</script>
vendor: 1 bytes, line 328
328
329<script type="text/rocketlazyloadscript" data-wp-strategy="defer" id="wc-jquery-blockui-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 329
329
330<script id="wc-add-to-cart-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
331var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https://jackkeller.com/cart-2/","is_cart":"","cart_redirect_after_add":"yes"};
332//# sourceURL=wc-add-to-cart-js-extra
333</script>
vendor: 1 bytes, line 333
333
334<script type="text/rocketlazyloadscript" data-wp-strategy="defer" defer id="wc-add-to-cart-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=11.1.1"></script>
vendor: 1 bytes, line 334
334
335<script id="wc-address-autocomplete-common-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
336var wc_address_autocomplete_common_params = {"address_providers":"[{\"id\":\"woocommerce_payments\",\"name\":\"WooCommerce Payments\",\"branding_html\":\"Powered by\u00a0\\u003Cimg style=\\\"height: 15px;width: 45px;margin-bottom: -2px\\\" src=\\\"https://jackkeller.com/wp-content/plugins/woocommerce/assets/images/address-autocomplete/google.svg\\\" alt=\\\"Google logo\\\" /\\u003E\"}]"};
337//# sourceURL=wc-address-autocomplete-common-js-extra
338</script>
vendor: 1 bytes, line 338
338
339<script type="text/rocketlazyloadscript" data-wp-strategy="defer" defer id="wc-address-autocomplete-common-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/frontend/utils/address-autocomplete-common.min.js?ver=11.1.1"></script>
vendor: 1 bytes, line 339
339
340<script type="text/rocketlazyloadscript" data-wp-strategy="defer" defer id="wc-dompurify-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/dompurify/purify.min.js?ver=11.1.1"></script>
vendor: 1 bytes, line 340
340
341<script type="text/rocketlazyloadscript" data-wp-strategy="defer" defer id="wc-address-autocomplete-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/frontend/address-autocomplete.min.js?ver=11.1.1"></script>
vendor: 1 bytes, line 341
341
342<script type="text/rocketlazyloadscript" data-wp-strategy="defer" id="wc-js-cookie-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 342
342
343<script type="text/rocketlazyloadscript" data-wp-strategy="defer" id="wc-jquery-cookie-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js?ver=1.4.1-wc.11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 343
343
344<script id="jquery-cookie-js-extra" type="968bfde1705c18b9099319f7-text/javascript">window.addEventListener('DOMContentLoaded', function() {
345var affwp_scripts = {"ajaxurl":"https://jackkeller.com/wp-admin/admin-ajax.php"};
346//# sourceURL=jquery-cookie-js-extra
347});</script>
vendor: 1 bytes, line 347
347
348<script id="affwp-tracking-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
349var affwp_debug_vars = {"integrations":{"paypal":"PayPal Buttons","woocommerce":"WooCommerce"},"version":"2.36.3","currency":"USD","ref_cookie":"affwp_ref","visit_cookie":"affwp_ref_visit_id","campaign_cookie":"affwp_campaign"};
350//# sourceURL=affwp-tracking-js-extra
351</script>
vendor: 1 bytes, line 351
351
352<script type="text/rocketlazyloadscript" id="affwp-tracking-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/affiliate-wp/assets/js/tracking.min.js?ver=2.36.3" data-rocket-defer defer></script>
vendor: 1 bytes, line 352
352
353<script id="WCPAY_ASSETS-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
354var wcpayAssets = {"url":"https://jackkeller.com/wp-content/plugins/woocommerce-payments/dist/"};
355//# sourceURL=WCPAY_ASSETS-js-extra
356</script>
vendor: 1 bytes, line 356
356
357<script data-wp-strategy="defer" defer id="woocommerce-analytics-js" src="https://stats.wp.com/s-202641.js" type="968bfde1705c18b9099319f7-text/javascript"></script>
vendor: 1 bytes, line 357
357
358<script type="text/rocketlazyloadscript" data-minify="1" id="front-block-script-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/addify-tipping-at-cart-checkout/assets/js/afwtd-block-script.js?ver=1789818262" data-rocket-defer defer></script>
358
359
360<!-- Google tag (gtag.js) snippet added by Site Kit -->
361<!-- Google Analytics snippet added by Site Kit -->
vendor: 125 bytes, lines 361-362
361
362<script type="text/rocketlazyloadscript" id="google_gtagjs-js" data-rocket-src="https://www.googletagmanager.com/gtag/js?id=
362G-7LKY7WJ6X8
vendor: 18 bytes, line 362
362" async></script>
363<script type="text/rocketlazyloadscript" id="google_gtagjs-js-after">
364window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
365gtag("set","linker",{"domains":["jackkeller.com"]});
366gtag("js", new Date());
367gtag("set", "developer_id.dZTNiMT", true);
368gtag("config", "G-7LKY7WJ6X8", {"googlesitekit_post_type":"page"});
369 window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }; 
370//# sourceURL=google_gtagjs-js-after
371</script>
371
372<link rel="https://api.w.org/" href="https://jackkeller.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://jackkeller.com/wp-json/wp/v2/pages/646" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://jackkeller.com/xmlrpc.php?rsd" />
373
374<link rel='shortlink' href='https://jackkeller.com/?p=646' />
375<style type="text/css"></style>
376		<meta name="generator" content="Site Kit by Google 1.187.0" />
376<script type="text/rocketlazyloadscript" id='pixel-script-poptin' data-rocket-src='https://cdn.popt.in/pixel.js?id=b57cf64a7f0a1' async='true'></script>
376 <!-- Enter your scripts here -->		
376<script type="text/rocketlazyloadscript" data-rocket-type="text/javascript">
377		var AFFWP = AFFWP || {};
378		AFFWP.referral_var = 'ref';
379		AFFWP.expiration = 88;
380		AFFWP.debug = 0;
381
382				AFFWP.cookie_domain = 'jackkeller.com';
383
384				AFFWP.referral_credit_last = 0;
385		</script>
385
386				<style></style>
387		<style></style>		<style></style>
388			<noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
389			<style></style>
390		
390<script type="text/rocketlazyloadscript" data-minify="1" async data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/insights/v1/paypal-insights.sandbox.min.js?ver=1789818263"></script>
390<style id="custom-background-css"></style>
391
392<!-- Google Tag Manager snippet added by Site Kit -->
393<script type="text/rocketlazyloadscript">
vendor: 420 bytes, lines 393-402
393
394			( function( w, d, s, l, i ) {
395				w[l] = w[l] || [];
396				w[l].push( {'gtm.start': new Date().getTime(), event: 'gtm.js'} );
397				var f = d.getElementsByTagName( s )[0],
398					j = d.createElement( s ), dl = l != 'dataLayer' ? '&l=' + l : '';
399				j.async = true;
400				j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
401				f.parentNode.insertBefore( j, f );
402			} )( window, document, 'script', 'dataLayer', '
402GTM-MKRT2Z3
vendor: 9 bytes, lines 402-403
402' );
403			
404</script>
404
405
406<!-- End Google Tag Manager snippet added by Site Kit -->
407<style></style><link rel="icon" href="https://jackkeller.com/wp-content/uploads/2015/08/cropped-favicon-32x32.jpg" sizes="32x32" />
408<link rel="icon" href="https://jackkeller.com/wp-content/uploads/2015/08/cropped-favicon-192x192.jpg" sizes="192x192" />
409<link rel="apple-touch-icon" href="https://jackkeller.com/wp-content/uploads/2015/08/cropped-favicon-180x180.jpg" />
410<meta name="msapplication-TileImage" content="https://jackkeller.com/wp-content/uploads/2015/08/cropped-favicon-270x270.jpg" />
411<style id="sccss"></style><noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript>
412
413
414
415<style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style><meta name="generator" content="WP Rocket 3.23.3.3" data-wpr-features="wpr_remove_unused_css wpr_delay_js wpr_defer_js wpr_minify_js wpr_lazyload_images wpr_lazyload_iframes wpr_preconnect_external_domains wpr_automatic_lazy_rendering wpr_oci wpr_image_dimensions wpr_minify_css wpr_cdn wpr_preload_links wpr_desktop" />
415<script data-cfasync="false" nonce="a3b199d9-7255-40aa-8ebb-d1031bc23603">try{(function(w,d){!function(kP,kQ,kR,kS){if(kP.zaraz)console.error("zaraz is loaded twice");else{kP[kR]=kP[kR]||{};kP[kR].executed=[];kP.zaraz={deferred:[],listeners:[]};kP.zaraz._v="20";kP.zaraz._n="a3b199d9-7255-40aa-8ebb-d1031bc23603";kP.zaraz.q=[];kP.zaraz._f=function(kT){return async function(){var kU=Array.prototype.slice.call(arguments);kP.zaraz.q.push({m:kT,a:kU})}};for(const kV of["track","set","debug"])kP.zaraz[kV]=kP.zaraz._f(kV);kP.zaraz.init=()=>{var kW=kQ.getElementsByTagName(kS)[0],kX=kQ.createElement(kS),kY=kQ.getElementsByTagName("title")[0];kY&&(kP[kR].t=kQ.getElementsByTagName("title")[0].text);kP[kR].x=Math.random();kP[kR].w=kP.screen.width;kP[kR].h=kP.screen.height;kP[kR].j=kP.innerHeight;kP[kR].e=kP.innerWidth;kP[kR].l=kP.location.href;kP[kR].r=kQ.referrer;kP[kR].k=kP.screen.colorDepth;kP[kR].n=kQ.characterSet;kP[kR].o=(new Date).getTimezoneOffset();if(kP.dataLayer)for(const kZ of Object.entries(Object.entries(dataLayer).reduce((k$,la)=>({...k$[1],...la[1]}),{})))zaraz.set(kZ[0],kZ[1],{scope:"page"});kP[kR].q=[];for(;kP.zaraz.q.length;){const lb=kP.zaraz.q.shift();kP[kR].q.push(lb)}kX.defer=!0;for(const lc of[localStorage,sessionStorage])Object.keys(lc||{}).filter(le=>le.startsWith("_zaraz_")).forEach(ld=>{try{kP[kR]["z_"+ld.slice(7)]=JSON.parse(lc.getItem(ld))}catch{kP[kR]["z_"+ld.slice(7)]=lc.getItem(ld)}});kX.referrerPolicy="origin";kX.src="/cdn-cgi/zaraz/s.js?z="+btoa(encodeURIComponent(JSON.stringify(kP[kR])));kW.parentNode.insertBefore(kX,kW)};["complete","interactive"].includes(kQ.readyState)?zaraz.init():kP.addEventListener("DOMContentLoaded",zaraz.init)}}(w,d,"zarazData","script");window.zaraz._p=async kH=>new Promise(kI=>{if(kH){kH.e&&kH.e.forEach(kJ=>{try{const kK=d.querySelector("script[nonce]"),kL=kK?.nonce||kK?.getAttribute("nonce"),kM=d.createElement("script");kL&&(kM.nonce=kL);kM.innerHTML=kJ;kM.onload=()=>{d.head.removeChild(kM)};d.head.appendChild(kM)}catch(kN){console.error(`Error executing script: ${kJ}\n`,kN)}});Promise.allSettled((kH.f||[]).map(kO=>fetch(kO[0],kO[1])))}kI()});zaraz._p({"e":["(function(w,d){})(window,document)"]});})(window,document)}catch(e){throw fetch("/cdn-cgi/zaraz/t"),e;};</script>
415</head>
416
417		<body class="wp-singular page-template-default page page-id-646 custom-background wp-custom-logo wp-theme-zerif-pro theme-zerif-pro woocommerce-no-js prad-page" itemscope="itemscope" itemtype="http://schema.org/WebPage">
418								<a class="skip-link screen-text-reader" href="#content">Skip to content</a>
419					
420				
421	
422	
423		
424		<header  id="home" class="header" itemscope="itemscope" itemtype="http://schema.org/WPHeader">
425
426			
427				<div id="main-nav" class="navbar navbar-inverse bs-docs-nav">
428
429					<div  class="container">
430
431						<div class="navbar-header responsive-logo">
432
433							<button class="navbar-toggle collapsed" type="button" data-toggle="collapse"
434									data-target=".bs-navbar-collapse">
435
436								<span class="screen-reader-text">Menu</span>
437
438								<span class="icon-bar"></span>
439
440								<span class="icon-bar"></span>
441
442								<span class="icon-bar"></span>
443
444							</button>
445
446							
447							<div class="navbar-brand">
448
449								
450									<a href="https://jackkeller.com/">
451
452										<img fetchpriority="high" width="150" height="113" src="https://jackkeller.com/wp-content/uploads/2025/12/cropped-JKI-no-addr-1975.jpg" alt="List on MLS &amp; REALTOR.com+ from $75.">
453									</a>
454
455									
456							</div> <!-- /.navbar-brand -->
457
458						</div> <!-- /.navbar-header -->
459
460											<div class='primary-menu'>
461									<nav aria-label='Primary Menu '>
462			<h3 class="screen-reader-text">Primary Menu</h3>
463			<div class="menu-menu-1-container"><ul id="menu-menu-1" class="menu"><li id="menu-item-33" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-33"><a href="#"><i class="_mi _before genericon genericon-help" aria-hidden="true" style="font-size:1.6em;"></i><span>Help</span></a>
464<ul class="sub-menu">
465	<li id="menu-item-39" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-39"><a href="https://jackkeller.freshdesk.com/support/solutions/folders/6000034451"><i class="_mi _before dashicons dashicons-admin-tools" aria-hidden="true"></i><span>Getting Started</span></a></li>
466	<li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a href="https://jackkeller.tawk.help/"><i class="_mi _before dashicons dashicons-edit" aria-hidden="true"></i><span>Changes</span></a></li>
467	<li id="menu-item-34" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-34"><a href="https://jackkeller.tawk.help/"><i class="_mi _before genericon genericon-help" aria-hidden="true"></i><span>Support</span></a>
468	<ul class="sub-menu">
469		<li id="menu-item-35" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-35"><a href="https://jackkeller.tawk.help/"><i class="_mi _before dashicons dashicons-tickets-alt" aria-hidden="true"></i><span>New Support Ticket</span></a></li>
470		<li id="menu-item-36" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-36"><a href="https://jackkeller.tawk.help/"><i class="_mi _before dashicons dashicons-update" aria-hidden="true"></i><span>Check Ticket Status</span></a></li>
471		<li id="menu-item-2858" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2858"><a href="https://jackkeller.com/return-cancellation-refund-policy/"><i class="_mi _before elusive el-icon-return-key" aria-hidden="true"></i><span>Return/Cancellation/Refund policy</span></a></li>
472	</ul>
473</li>
474	<li id="menu-item-591" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-591"><a href="https://jackkeller.tawk.help/"><i class="_mi _before fa fa-camera" aria-hidden="true"></i><span>Photos</span></a></li>
475	<li id="menu-item-651" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-646 current_page_item menu-item-651"><a href="https://jackkeller.com/tax-record-search/" aria-current="page"><i class="_mi _before dashicons dashicons-search" aria-hidden="true"></i><span>Tax Record Search</span></a></li>
476	<li id="menu-item-5872" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5872"><a href="https://jackkeller.com/shop-selling-supplies/"><i class="_mi _before elusive el-icon-shopping-cart-sign" aria-hidden="true"></i><span>Shop Selling Supplies</span></a></li>
477</ul>
478</li>
479<li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-76"><a href="#"><i class="_mi _before fa fa-database" aria-hidden="true"></i><span>Services</span></a>
480<ul class="sub-menu">
481	<li id="menu-item-44" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-44"><a href="https://jackkeller.com/list-now/"><i class="_mi _before elusive el-icon-hourglass" aria-hidden="true"></i><span>List Now!!</span></a>
482	<ul class="sub-menu">
483		<li id="menu-item-576" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-576"><a href="https://jackkeller.com/#pricingtable"><i class="_mi _before foundation-icons fi-pricetag-multiple" aria-hidden="true"></i><span>Pricing and Packages</span></a></li>
484	</ul>
485</li>
486	<li id="menu-item-5561" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-5561"><a href="https://jackkeller.com/upgrades/"><i class="_mi _before dashicons dashicons-upload" aria-hidden="true"></i><span>Upgrades</span></a>
487	<ul class="sub-menu">
488		<li id="menu-item-670" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-670"><a href="https://jackkeller.com/realtor-com-upgrade/"><i class="_mi _before dashicons dashicons-upload" aria-hidden="true"></i><span>REALTOR.com Upgrade</span></a></li>
489		<li id="menu-item-406" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-406"><a href="https://jackkeller.com/showingtime-2/"><i class="_mi _before dashicons dashicons-clock" aria-hidden="true"></i><span>ShowingTime</span></a></li>
490		<li id="menu-item-5534" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5534"><a href="https://jackkeller.com/listtrac-reports-upgrade/"><i class="_mi _before elusive el-icon-adjust-alt" aria-hidden="true"></i><span>ListTrac Reports</span></a></li>
491		<li id="menu-item-451" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-451"><a href="https://jackkeller.freshdesk.com/support/solutions/folders/6000210355"><i class="_mi _before dashicons dashicons-images-alt2" aria-hidden="true"></i><span>Add Pics</span></a></li>
492		<li id="menu-item-449" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-449"><a href="https://jackkeller.com/open-houses/"><i class="_mi _before dashicons dashicons-admin-home" aria-hidden="true"></i><span>Open Houses</span></a></li>
493		<li id="menu-item-567" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-567"><a href="https://jackkeller.com/expert-seller-package-3/"><i class="_mi _before dashicons dashicons-awards" aria-hidden="true"></i><span>EXPERT Seller Package</span></a></li>
494	</ul>
495</li>
496	<li id="menu-item-2707" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2707"><a href="https://jackkeller.com/shop-selling-supplies/"><i class="_mi _before elusive el-icon-shopping-cart-sign" aria-hidden="true"></i><span>Shop Selling Supplies</span></a></li>
497	<li id="menu-item-21382" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21382"><a href="https://jackkeller.com/feature-requests/"><i class="_mi _before foundation-icons fi-megaphone" aria-hidden="true"></i><span>Feature Requests</span></a></li>
498	<li id="menu-item-21214" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21214"><a href="https://jackkeller.com/affiliate-area/"><i class="_mi _before foundation-icons fi-universal-access" aria-hidden="true"></i><span>Affiliate Area</span></a>
499	<ul class="sub-menu">
500		<li id="menu-item-21215" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21215"><a href="https://jackkeller.com/affiliate-terms-of-use/"><i class="_mi _before dashicons dashicons-admin-customizer" aria-hidden="true"></i><span>Affiliate Terms of Use</span></a></li>
501	</ul>
502</li>
503	<li id="menu-item-87" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-87"><a href="#">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</a></li>
504	<li id="menu-item-88" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-88"><a href="https://jackkellerinc.managebuilding.com/Resident/PublicPages/CustomPage.aspx?cp=21"><i class="_mi _before dashicons dashicons-admin-multisite" aria-hidden="true"></i><span>Property Management</span></a></li>
505	<li id="menu-item-86" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-86"><a href="http://www.wheelchairaccessiblehomes.com"><i class="_mi _before fab fa-accessible-icon" aria-hidden="true"></i><span>ADA / Wheelchair Accessible Homes</span></a></li>
506</ul>
507</li>
508<li id="menu-item-41" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-41"><a href="#"><i class="_mi _before fa fa-info-circle" aria-hidden="true" style="font-size:1.4em;"></i><span>More Details</span></a>
509<ul class="sub-menu">
510	<li id="menu-item-2857" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2857"><a href="https://jackkeller.com/more-details-3-2/"><i class="_mi _before dashicons dashicons-welcome-learn-more" aria-hidden="true"></i><span>Learn More</span></a>
511	<ul class="sub-menu">
512		<li id="menu-item-575" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-575"><a href="https://jackkeller.com/#pricingtable"><i class="_mi _before dashicons dashicons-feedback" aria-hidden="true"></i><span>Packages</span></a></li>
513	</ul>
514</li>
515	<li id="menu-item-21" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21"><a href="https://jackkeller.com/how/"><i class="_mi _before genericon genericon-show" aria-hidden="true"></i><span>How?</span></a></li>
516	<li id="menu-item-32" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-32"><a href="https://jackkeller.tawk.help/"><i class="_mi _before fa fa-question" aria-hidden="true"></i><span>FAQ&#8217;s</span></a></li>
517	<li id="menu-item-37" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-37"><a href="https://jackkeller.tawk.help/"><i class="_mi _before fa fa-list-ol" aria-hidden="true"></i><span>Tips</span></a></li>
518	<li id="menu-item-535" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-535"><a href="https://jackkeller.com/links/"><i class="_mi _before dashicons dashicons-format-links" aria-hidden="true"></i><span>Links</span></a></li>
519	<li id="menu-item-664" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-664"><a href="https://jackkeller.com/areas-served-list-on-mls-realtor-com/"><i class="_mi _before dashicons dashicons-location-alt" aria-hidden="true"></i><span>Areas Served</span></a></li>
520	<li id="menu-item-686" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-686"><a href="https://jackkeller.com/#testimonials"><i class="_mi _before dashicons dashicons-thumbs-up" aria-hidden="true"></i><span>Testimonials</span></a>
521	<ul class="sub-menu">
522		<li id="menu-item-895" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-895"><a href="https://www.surveymonkey.com/results/SM-JLWWGLJG/"><i class="_mi _before dashicons dashicons-testimonial" aria-hidden="true"></i><span>More Testimonials</span></a></li>
523	</ul>
524</li>
525	<li id="menu-item-687" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-687"><a href="https://jackkeller.com/#team"><i class="_mi _before foundation-icons fi-torsos-female-male" aria-hidden="true"></i><span>About Us</span></a></li>
526	<li id="menu-item-5873" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5873"><a href="https://jackkeller.com/shop-selling-supplies/"><i class="_mi _before elusive el-icon-shopping-cart-sign" aria-hidden="true"></i><span>Shop Selling Supplies</span></a></li>
527	<li id="menu-item-960" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-960"><a href="https://jackkeller.com/category/real-estate-news/"><i class="_mi _before far fa-newspaper" aria-hidden="true"></i><span>Real Estate News</span></a>
528	<ul class="sub-menu">
529		<li id="menu-item-961" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-961"><a href="https://jackkeller.com/category/real-estate-news/miami-metro/">Miami-Dade Metro</a></li>
530		<li id="menu-item-962" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-962"><a href="https://jackkeller.com/category/real-estate-news/orlando-metro/">Orlando Metro</a></li>
531		<li id="menu-item-963" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-963"><a href="https://jackkeller.com/category/real-estate-news/palm-beach-metro/">Palm Beach Metro</a></li>
532		<li id="menu-item-964" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-964"><a href="https://jackkeller.com/category/real-estate-news/tampa-bay-metro/">Tampa Bay Metro</a></li>
533	</ul>
534</li>
535</ul>
536</li>
537<li id="menu-item-23144" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-23144"><a href="https://jackkeller.com/pay-now/"><i class="_mi _before foundation-icons fi-dollar" aria-hidden="true"></i><span>Pay</span></a>
538<ul class="sub-menu">
539	<li id="menu-item-105" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-105"><a href="https://jackkeller.com/pay-now-3/"><i class="_mi _before foundation-icons fi-dollar-bill" aria-hidden="true"></i><span>Alt Pay</span></a></li>
540	<li id="menu-item-23145" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23145"><a href="https://jackkeller.com/pay-now-3/"><i class="_mi _before foundation-icons fi-dollar" aria-hidden="true"></i><span>Pay Now</span></a></li>
541</ul>
542</li>
543<li id="menu-item-566" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-566"><a href="https://jackkeller.com/contact-us/"><i class="_mi _before dashicons dashicons-phone" aria-hidden="true"></i><span>Contact Us</span></a>
544<ul class="sub-menu">
545	<li id="menu-item-16383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16383"><a href="https://jackkeller.com/contact-us-2/"><i class="_mi _before dashicons dashicons-admin-users" aria-hidden="true"></i><span>Contact Us</span></a></li>
546	<li id="menu-item-2470" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2470"><a href="tel:+1-727-586-1497"><i class="_mi _before genericon genericon-send-to-tablet" aria-hidden="true"></i><span>Call</span></a></li>
547	<li id="menu-item-21386" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21386"><a href="https://jackkeller.com/live-chat/"><i class="_mi _before dashicons dashicons-format-chat" aria-hidden="true"></i><span>Live Chat</span></a></li>
548	<li id="menu-item-2472" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2472"><a href="https://jackkeller.tawk.help/"><i class="_mi _before fas fa-ticket-alt" aria-hidden="true"></i><span>Submit Support Ticket</span></a></li>
549</ul>
550</li>
551<li id="menu-item-23141" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-23141"><a href="https://jackkeller.com/cart-2/"><i class="_mi _before foundation-icons fi-shopping-cart" aria-hidden="true"></i><span>
551Cart</span></a>
552<ul class="sub-menu">
553	<li id="menu-item-23148" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-23148"><a href="https://jackkeller.com/my-account/">My account</a>
554	<ul class="sub-menu">
555		<li id="menu-item-23146" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23146"><a href="https://jackkeller.com/affiliate-area/">Affiliate Area</a></li>
556	</ul>
557</li>
558	<li id="menu-item-23147" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23147"><a href="https://jackkeller.com/checkout/">Checkout</a></li>
559</ul>
560</li>
561</ul></div>		</nav>
562									</div>
563							
564					</div>
565
566				</div>
567							<!-- / END TOP BAR -->
568
569<div  class="clear"></div>
570
571</header> <!-- / END HOME SECTION  -->
572<div  id="content" class="site-content">
573	<div  class="container">
574				<div  class="content-left-wrap col-md-9">		<div id="primary" class="content-area">
575			<main itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage" id="main" class="site-main">
576				
577<article id="post-646" class="post-646 page type-page status-publish hentry">
578
579	<header class="entry-header">
580
581		<span class="date updated published">December 11, 2015</span>
582		<span class="vcard author byline"><a href="https://jackkeller.com/author/admin/" class="fn">jackkellerinc</a></span>
583		<h1 class="entry-title" itemprop="headline">Tax Record Search</h1>	</header><!-- .entry-header -->
584	
585	<div class="entry-content" itemprop="text">
586
587		<p style="text-align: center;"><b><span style="color: #000099; font-size: large;">Where can I find the Public Record information for my property?<br />
588</span></b><br />
589<span style="color: #666666;"><strong>Click on the county below to go directly to it&#8217;s website</strong>:</span></p>
590<p style="text-align: center;" align="center"><a href="https://qpublic.schneidercorp.com/Application.aspx?AppID=1081&amp;LayerID=26490&amp;PageTypeID=2&amp;PageID=10768&amp;KeyValue=02241-000-000" target="_blank" rel="noopener">Alachua</a> &#8211; (352) 374-5230</p>
591<p style="text-align: center;" align="center"><a href="http://www.bakerpa.com/search.html" target="_blank" rel="noopener noreferrer">Baker</a> &#8211; (904) 259-3191</p>
592<p style="text-align: center;" align="center"><a href="http://bradfordappraiser.com/GISv1/" target="_blank" rel="noopener noreferrer">Bradford</a> &#8211; (904) 966-6216</p>
593<p style="text-align: center;" align="center"><a href="http://www.bcpa.net/search.asp?page=search" target="_blank" rel="noopener noreferrer">Broward</a> &#8211; (954) 357-6830</p>
594<p style="text-align: center;"><a href="https://www.ccappraiser.com/RPSearchEnter.asp?" target="_blank" rel="noopener noreferrer">Charlotte</a> &#8211; (941) 743-1498</p>
595<p style="text-align: center;"><a href="https://qpublic.schneidercorp.com/Application.aspx?AppID=830&amp;LayerID=15008&amp;PageTypeID=2&amp;PageID=6754" target="_blank" rel="noopener noreferrer">Clay</a> &#8211; (352) 473-3711</p>
596<p style="text-align: center;"><a href="https://www.collierappraiser.com/" target="_blank" rel="noopener noreferrer">Collier &#8211; </a>(239) 252-8141</p>
597<p style="text-align: center;"><a href="https://www8.miamidade.gov/Apps/PA/propertysearch/#/" target="_blank" rel="noopener noreferrer">Dade (Miami)</a> &#8211; (305) 375-4099</p>
598<p style="text-align: center;"><a href="http://www.desotopa.com/GIS/Search_F.asp" target="_blank" rel="noopener noreferrer">Desoto</a> &#8211; (863) 993-4866</p>
599<p style="text-align: center;"><a href="https://paopropertysearch.coj.net/Tangible/Search.aspx" target="_blank" rel="noopener noreferrer">Duval</a> &#8211; <span class="style1">(904) 630-2489</span></p>
600<p style="text-align: center;"><a href="https://www.hernandopa-fl.us/Propertysearch/" target="_blank" rel="noopener">Hernando</a> &#8211; <span style="font-family: Arial;">(352) 754-4190</span></p>
601<p style="text-align: center;"><a href="http://gis.hcpafl.org/PropertySearch/#/nav/Basic%20Search" target="_blank" rel="noopener noreferrer">Hillsborough</a> &#8211; (813) 272-6100</p>
602<p style="text-align: center;"><a href="http://www.lakecopropappr.com/property-disclaimer.aspx?to=%2fproperty-search.aspx?" target="_blank" rel="noopener noreferrer">Lake</a> &#8211; (352) 343-9748</p>
603<p style="text-align: center;"><a href="https://leepa.org/Search/PropertySearch.aspx" target="_blank" rel="noopener noreferrer">Lee &#8211;</a> (888) 721-0510</p>
604<p style="text-align: center;"><a href="https://www.manateepao.com/search/" target="_blank" rel="noopener noreferrer">Manatee</a> &#8211; (941) 748-8208</p>
605<p style="text-align: center;"><a href="https://www.pa.marion.fl.us/PropertySearch.aspx" target="_blank" rel="noopener noreferrer">Marion</a> &#8211; <span class="_Xbe _ZWk kno-fv">(352) 368-8300</span></p>
606<p style="text-align: center;"><a href="https://www.pa.martin.fl.us/-code/property-search/" target="_blank" rel="noopener noreferrer">Martin</a> &#8211; (772) 288-5608</p>
607<p style="text-align: center;"><a href="https://maps.nassauflpa.com/NassauSearch/IS_SearchResults2015/ShowIS_NewSearchResults2015Table.aspx" target="_blank" rel="noopener noreferrer">Nassau</a> &#8211; <span class="_Xbe _ZWk kno-fv">(352) 368-8300</span></p>
608<p style="text-align: center;"><a href="http://www.okeechobeepa.com/gis/" target="_blank" rel="noopener noreferrer">Okeechobee </a>&#8211; (863) 763-4422</p>
609<p style="text-align: center;"><a href="http://www.ocpafl.org/searches/ParcelSearch.aspx" target="_blank" rel="noopener noreferrer">Orange</a> &#8211; (407) 836-5046</p>
610<p style="text-align: center;"><a href="http://ira.property-appraiser.org/" target="_blank" rel="noopener noreferrer">Osceola</a> &#8211; (407) 343-3500</p>
611<p style="text-align: center;"><a href="http://www.co.palm-beach.fl.us/papa/" target="_blank" rel="noopener noreferrer">Palm Beach</a> &#8211; (561) 355-2358</p>
612<p style="text-align: center;"><a href="http://search.pascopa.com/" target="_blank" rel="noopener noreferrer">Pasco</a> &#8211; (813) 929-1280</p>
613<p style="text-align: center;"><a href="http://www.pcpao.org/" target="_blank" rel="noopener noreferrer">Pinellas</a> &#8211; (727) 464-3207</p>
614<p style="text-align: center;"><a href="http://www.polkpa.org/CamaDisplay.aspx" target="_blank" rel="noopener noreferrer">Polk</a> &#8211; (863) 534-4777</p>
615<p style="text-align: center;"><a href="https://apps.putnam-fl.com/pa/property/" target="_blank" rel="noopener">Putnam</a> &#8211; (386) 329-0286</p>
616<p style="text-align: center;"><a href="https://www.sc-pa.com/propertysearch" target="_blank" rel="noopener noreferrer">Sarasota</a> &#8211; (941) 861-8200</p>
617<p style="text-align: center;"><a href="http://www.scpafl.org" target="_blank" rel="noopener noreferrer">Seminole</a> &#8211; (407) 665-7555</p>
618<p style="text-align: center;"><a href="https://qpublic.schneidercorp.com/Application.aspx?App=StJohnsCountyFL&amp;Layer=Parcels&amp;PageType=Search" target="_blank" rel="noopener noreferrer">St. Johns</a> &#8211; (904) 827-5500</p>
619<p style="text-align: center;"><a href="https://www.paslc.org/mobile-property-search/home" target="_blank" rel="noopener noreferrer">St. Lucie</a> &#8211; (772) 462-1000</p>
620<p style="text-align: center;">
620<a href="http://www.sumterpa.com/GIS/Search_F.asp" target="_blank" rel="noopener noreferrer">Sumter</a> &#8211; (352) 793-0210</p>
621<div align="center">
622<p style="text-align: center;" align="left"><a href="https://vcpa.vcgov.org/searches.html" target="_blank" rel="noopener noreferrer">Volusia</a> &#8211; (386) 736-5901</p>
623</div>
624
625		
626	</div><!-- .entry-content -->
627
628	
629</article><!-- #post-## -->
630			</main><!-- #main -->
631		</div><!-- #primary -->
632		</div>		<div  class="sidebar-wrap col-md-3 content-left-wrap pull-right">
633			
634<div id="secondary" class="widget-area" role="complementary" itemscope="itemscope" itemtype="http://schema.org/WPSideBar">
635
636	
637	<aside id="search-2" class="widget widget_search"><form role="search" method="get" class="search-form" action="https://jackkeller.com/">
638				<label>
639					<span class="screen-reader-text">Search for:</span>
640					<input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" />
641				</label>
642				<input type="submit" class="search-submit" value="Search" />
643			</form></aside><aside id="text-2" class="widget widget_text"><h2 class="widget-title">Home Improvement</h2>			<div class="textwidget"><p><a target="_blank" href="https://www.amazon.com/promocode/AWO63DPKQ1I57?linkCode=pf4&linkId=z7b5638deb81af5805803e8dc94cfdez&_encoding=UTF-8&ref_=assoc_tag_ph_1524315487264&tag=wwwjackkell06-20&creative=9325&camp=1789">Save 50.0% on select products from APSPOW with promo code CHXMG62X, through 6/8 while supplies last.</a></p>
644</div>
645		</aside>
646		<aside id="recent-posts-2" class="widget widget_recent_entries">
647		<h2 class="widget-title">Recent News</h2>
648		<ul>
649											<li>
650					<a href="https://jackkeller.com/condo-prices-stall-across-the-us-not-just-in-florida-analysis-shows/">Condo prices stall across the US — not just in Florida — analysis shows</a>
651											<span class="post-date">October 6, 2026</span>
652									</li>
653											<li>
654					<a href="https://jackkeller.com/floridas-affordability-advantage-is-gone-inside-the-sharp-drop-in-east-coast-migration-to-miami/">Florida’s Affordability Advantage Is Gone: Inside the Sharp Drop in East Coast Migration to Miami</a>
655											<span class="post-date">October 6, 2026</span>
656									</li>
657											<li>
658					<a href="https://jackkeller.com/freddie-mac-reshuffles-risk-leadership-as-hinduja-exits-glessner-steps-in/">Freddie Mac reshuffles risk leadership as Hinduja exits, Glessner steps in</a>
659											<span class="post-date">October 5, 2026</span>
660									</li>
661											<li>
662					<a href="https://jackkeller.com/lawmakers-float-a-housing-2-0-push-to-build-faster-and-cheaper/">Lawmakers float a housing 2.0 push to build faster and cheaper</a>
663											<span class="post-date">October 5, 2026</span>
664									</li>
665											<li>
666					<a href="https://jackkeller.com/aging-owners-could-free-up-13-9m-homes-by-2036/">Aging owners could free up 13.9M homes by 2036</a>
667											<span class="post-date">October 5, 2026</span>
668									</li>
669					</ul>
670
671		</aside><aside id="categories-2" class="widget widget_categories"><h2 class="widget-title">News Categories</h2><form action="https://jackkeller.com" method="get"><label class="screen-reader-text" for="cat">News Categories</label><select  name='cat' id='cat' class='postform'>
672	<option value='-1'>Select Category</option>
673	<option class="level-0" value="4">Real Estate News&nbsp;&nbsp;(122)</option>
674	<option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(3)</option>
675</select>
676</form>
676<script type="text/rocketlazyloadscript">
677( ( dropdownId ) => {
678	const dropdown = document.getElementById( dropdownId );
679	function onSelectChange() {
680		setTimeout( () => {
681			if ( 'escape' === dropdown.dataset.lastkey ) {
682				return;
683			}
684			if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) {
685				dropdown.parentElement.submit();
686			}
687		}, 250 );
688	}
689	function onKeyUp( event ) {
690		if ( 'Escape' === event.key ) {
691			dropdown.dataset.lastkey = 'escape';
692		} else {
693			delete dropdown.dataset.lastkey;
694		}
695	}
696	function onClick() {
697		delete dropdown.dataset.lastkey;
698	}
699	dropdown.addEventListener( 'keyup', onKeyUp );
700	dropdown.addEventListener( 'click', onClick );
701	dropdown.addEventListener( 'change', onSelectChange );
702})( "cat" );
703
704//# sourceURL=WP_Widget_Categories%3A%3Awidget
705</script>
705
706</aside><aside id="archives-2" class="widget widget_archive"><h2 class="widget-title">News Archives</h2>		<label class="screen-reader-text" for="archives-dropdown-2">News Archives</label>
707		<select id="archives-dropdown-2" name="archive-dropdown">
708			
709			<option value="">Select Month</option>
710				<option value='https://jackkeller.com/2026/10/'> October 2026 &nbsp;(16)</option>
711	<option value='https://jackkeller.com/2026/09/'> September 2026 &nbsp;(106)</option>
712	<option value='https://jackkeller.com/2025/12/'> December 2025 &nbsp;(3)</option>
713
714		</select>
715
716			
716<script type="text/rocketlazyloadscript">
717( ( dropdownId ) => {
718	const dropdown = document.getElementById( dropdownId );
719	function onSelectChange() {
720		setTimeout( () => {
721			if ( 'escape' === dropdown.dataset.lastkey ) {
722				return;
723			}
724			if ( dropdown.value ) {
725				document.location.href = dropdown.value;
726			}
727		}, 250 );
728	}
729	function onKeyUp( event ) {
730		if ( 'Escape' === event.key ) {
731			dropdown.dataset.lastkey = 'escape';
732		} else {
733			delete dropdown.dataset.lastkey;
734		}
735	}
736	function onClick() {
737		delete dropdown.dataset.lastkey;
738	}
739	dropdown.addEventListener( 'keyup', onKeyUp );
740	dropdown.addEventListener( 'click', onClick );
741	dropdown.addEventListener( 'change', onSelectChange );
742})( "archives-dropdown-2" );
743
744//# sourceURL=WP_Widget_Archives%3A%3Awidget
745</script>
745
746</aside>
747</div><!-- #secondary -->
748
749		</div><!-- .sidebar-wrap -->
750			</div><!-- .container -->
751</div><!-- .site-content -->
752
753
754	<footer  id="footer" itemscope="itemscope" itemtype="http://schema.org/WPFooter">
755
756		<div  class="footer-widget-wrap"><div  class="container"><div class="footer-widget col-xs-12 col-sm-4"><aside id="text-5" class="widget footer-widget-footer widget_text">			<div class="textwidget"><p>* = contact us for details</p>
757<p>** = or the max # allowed by MLS</p>
758</div>
759		</aside></div><div class="footer-widget col-xs-12 col-sm-4"><aside id="block-14" class="widget footer-widget-footer widget_block"><div id="JFWebsiteWidget-019fac7a4ca0700088f20971d58ccfb80b1b"></div>
760<script type="text/rocketlazyloadscript" data-rocket-src="https://www.jotform.com/website-widgets/embed/019fac7a4ca0700088f20971d58ccfb80b1b" data-rocket-defer defer></script>
760</aside></div></div></div>
761		<div class="container">
762			
763			
764
765			<div  class="footer-box-wrap">
766				<div class="col-md-3 footer-box four-cell company-details"><div class="icon-top red-text"><a target="_blank" href="https://www.google.com.sg/maps/place/Jack%20Keller%20Inc.%2C%20REALTORS%0A2440%20West%20Bay%20Dr.Largo%2C%20FL%2033770-1933"><img width="30" height="27" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2030%2027'%3E%3C/svg%3E" alt="kissclipart trucker hat mockup clipart baseball cap mockup de6aed396c5cc905 e1573193547373" data-lazy-src="https://jackkeller.com/wp-content/uploads/2019/11/kissclipart-trucker-hat-mockup-clipart-baseball-cap-mockup-de6aed396c5cc905-e1573193547373.png" /><noscript><img width="30" height="27" src="https://jackkeller.com/wp-content/uploads/2019/11/kissclipart-trucker-hat-mockup-clipart-baseball-cap-mockup-de6aed396c5cc905-e1573193547373.png" alt="kissclipart trucker hat mockup clipart baseball cap mockup de6aed396c5cc905 e1573193547373" /></noscript></a></div><div class="zerif-footer-address">Jack Keller Inc., REALTORS<br />
7672440 West Bay Dr.<br />Largo, FL 33770-1933</div></div><div class="col-md-3 footer-box four-cell company-details"><div class="icon-top green-text"><a href=""><img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" alt="" data-lazy-src="https://jackkeller.com/wordpress/wp-content/uploads/2016/03/credit-cards-paypal-1-e1458409434415.png" /><noscript><img src="https://jackkeller.com/wordpress/wp-content/uploads/2016/03/credit-cards-paypal-1-e1458409434415.png" alt="" /></noscript></a></div><div class="zerif-footer-email"><div></div>
768    
769www.Support.JackKeller.com</div></div><div class="col-md-3 footer-box four-cell company-details"><div class="icon-top blue-text"><a href="tel:Main:727-586-1497TollFree:(888)374-7692"><img width="30" height="30" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2030%2030'%3E%3C/svg%3E" alt="" data-lazy-src="https://jackkeller.com/wp-content/themes/zerif-pro/images/telephone65-blue.png" /><noscript><img width="30" height="30" src="https://jackkeller.com/wp-content/themes/zerif-pro/images/telephone65-blue.png" alt="" /></noscript></a></div><div class="zerif-footer-phone"><a href="tel:+1-727-586-1497">
770Main: 727-586-1497<br />Toll Free: (888) 374-7692</a></div></div>			<div class="col-md-3 footer-box four-cell copyright">
771										<ul class="social">
772								<li
773		 id="footer_facebook">
774			<a  title="Facebook link" href="https://www.facebook.com/pages/Flat-Fee-MLS-Listings/1624103311168131">
775				<span class="screen-reader-text">Facebook link</span>				<i class="fa fa-facebook"></i>
776			</a>
777		</li>
778				<li
779		 id="footer_google">
780			<a  title="Google Plus link" href="https://plus.google.com/u/0/102391989704606890001/posts">
781				<span class="screen-reader-text">Google Plus link</span>				<i class="fa fa-google"></i>
782			</a>
783		</li>
784				<li
785		 id="footer_youtube">
786			<a  title="Youtube link" href="https://www.youtube.com/channel/UCzzUGvyWs-qTEJRQHPTYfig">
787				<span class="screen-reader-text">Youtube link</span>				<i class="fa fa-youtube"></i>
788			</a>
789		</li>
790							</ul>
791											<p id="zerif-copyright">
792							©1975-2026, Jack Keller Inc. <br />FL RE Brokerage, Lic# CQ182464.  <div></div>          					</p>
793									</div>
794						</div>
795
796					</div> <!-- / END CONTAINER -->
797
798	</footer> <!-- / END FOOOTER  -->
799
800	
801<script type="speculationrules">
802{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/zerif-pro/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
803</script>
803
804	<ul class="obfx-sharing
805	obfx-sharing-left obfx-sharing-bottom	">
806					<li class="">
807				<a class="facebook"
808					aria-label="Facebook"
809										href="https://www.facebook.com/sharer.php?u=https://jackkeller.com/tax-record-search/">
810
811					<svg viewbox="38.658 12.828 207.085 207.085"><path d="m158.232 219.912v-94.461h31.707l4.747-36.813h-36.454v-23.504c0-10.658 2.96-17.922 18.245-17.922l19.494-.009v-32.925c-3.373-.447-14.944-1.449-28.406-1.449-28.106 0-47.348 17.155-47.348 48.661v27.149h-31.789v36.813h31.788v94.461z" /></svg><span>Facebook</span>				</a>
812			</li>
813					<li class="">
814				<a class="twitter"
815					aria-label="X"
816										href="https://twitter.com/intent/tweet?url=https://jackkeller.com/tax-record-search/&#038;text=Tax%20Record%20Search&#038;hashtags=">
817
818					<svg viewbox="0 0 512 512"><path d="m389.2 48h70.6l-154.2 176.2 181.4 239.8h-142l-111.3-145.4-127.2 145.4h-70.7l164.9-188.5-173.9-227.5h145.6l100.5 132.9zm-24.8 373.8h39.1l-252.4-333.8h-42z" /></svg><span>X</span>				</a>
819			</li>
820					<li class="">
821				<a class="linkedin"
822					aria-label="LinkedIn"
823										href="https://www.linkedin.com/shareArticle?url=https://jackkeller.com/tax-record-search/&#038;title=Tax%20Record%20Search">
824
825					<svg viewbox="0 0 27 26"><path d="m26.325 25.325c-1.575-.0375-3.1125-.0375-4.6875 0-.3375 0-.4125-.075-.4125-.4125 0-2.775 0-5.5875 0-8.3625 0-.6375-.0375-1.275-.225-1.875-.5625-1.95-2.8125-2.6625-4.425-1.35-.8625.675-1.2 1.6125-1.2 2.7375v7.875c0 .3375-.0375.675 0 1.05.0375.3-.1125.375-.375.3375-1.6125 0-3.1875 0-4.8 0-.29999 0-.37499-.075-.37499-.375.0375-2.3625.0375-4.725.0375-7.125 0-2.925 0-5.85-.0375-8.73748 0-.3375.075-.4125.37499-.4125h4.8c.3 0 .375.075.375.375v1.91248c.1125-.1125.15-.15.1875-.1875 1.4625-2.13748 3.525-2.73748 5.9625-2.36248 2.8125.45 4.6125 2.39998 5.0625 5.39998.1125.7125.15 1.425.15 2.1375v8.9625c0 .3-.075.4125-.4125.4125z" /><path d="m6.825 17v7.875c0 .3375-.075.45-.4125.45-1.575-.0375-3.15 0-4.725 0-.3 0-.375-.075-.375-.375 0-5.2875 0-10.6125 0-15.89995 0-.2625.075-.375.375-.375h4.8375c.3375 0 .375.1125.375.4125-.075 2.62495-.075 5.24995-.075 7.91245z" /><path d="m7.08751 4.32502c-.375 1.5-1.9125 2.3625-3.675 2.0625-1.875-.3-2.925003-2.1375-2.25-3.9375.45-1.125 1.5375-1.8 2.925-1.7625 2.1-.0375 3.4875 1.65 3 3.6375z" /></svg><span>LinkedIn</span>				</a>
826			</li>
827					<li class="obfx-hide-mobile-socials ">
828				<a class="reddit"
829					aria-label="Reddit"
830										href="https://reddit.com/submit?url=https://jackkeller.com/tax-record-search/&#038;title=Tax%20Record%20Search">
831
832					<svg viewbox="0 0 32 29"><path clip-rule="evenodd" d="m31.3757 13.1169c.388.5536.6076 1.2076.6323 1.8831.0103.6613-.1669 1.312-.5109 1.8769-.344.5648-.8408 
8321.0208-1.4331 1.3151.027.3515.027.7046 0 1.056 0 5.376-6.264 9.744-13.992 9.744-7.72798 0-13.99198-4.368-13.99198-9.744-.02702-.3514-.02702-.7045 0-1.056-.46162-.212-.8716-.522-1.201535-.9082-.329935-.3863-.571932-.8397-.709221-1.3288-.1372892-.4891-.16658691-1.0022-.0858627-1.5038.0807237-.5015.2695397-.9795.5533617-1.4009.283821-.4213.655857-.7759 1.090337-1.0391.43448-.2633.921-.4289 1.42585-.4854.50485-.0566 1.01595-.0026 1.4979.158.48194.1606.92319.4241 1.29317.7722 2.76545-1.8755 6.01888-2.90159 9.35998-2.95196l1.776-8.328c.02-.09641.0588-.1879.1144-.269174s.1267-.150712.2093-.204289c.0826-.053578.175-.090228.2719-.107828.0969-.017601.1963-.0158.2924.005296l5.88 1.175995c.2872-.49334.7408-.868191 1.2794-1.057248.5386-.189058 1.127-.179945 1.6595.025701s.9742.594357 1.246 1.096367c.2717.502.3556 1.08443.2366 1.64272-.1189.5583-.433 1.0559-.8858 1.4035s-1.0147.52242-1.5848.49309c-.57-.02933-1.111-.26089-1.5257-.65312-.4148-.39223-.6761-.91945-.7372-1.487l-5.136-1.08-1.56 7.48799c3.3005.0708 6.5098 1.09616 9.24 2.95196.4877-.4681 1.1004-.7851 1.7643-.9128.6638-.1277 1.3504-.0607 1.977.193.6266.2536 1.1664.6832 1.5544 1.2367zm-9.8444 6.68c1.3246 0 2.3984-1.0738 2.3984-2.3984s-1.0738-2.3984-2.3984-2.3984c-1.3247 0-2.3985 1.0738-2.3985 2.3984s1.0738 2.3984 2.3985 2.3984zm-8.7188-2.3984c0 1.3246-1.0738 2.3984-2.3984 2.3984-1.32464 0-2.39846-1.0738-2.39846-2.3984s1.07382-2.3984 2.39846-2.3984c1.3246 0 2.3984 1.0738 2.3984 2.3984zm3.2112 7.1728-.0119.0001-.0118-.0001v.0001c-1.7106.0104-2.9755-.3728-3.8034-.7483-.417-.1891-.7248-.377-.9237-.5134-.0993-.0681-.1714-.1233-.2161-.1592-.0224-.0179-.0379-.031-.0466-.0385l-.007-.0061c-.0002-.0002-.0005-.0004-.0007-.0006-.2644-.2407-.6739-.2227-.9161.0409-.24293.2643-.22556.6755.0388.9184l.001.0009.0012.0011.0029.0027.0079.0071.024.021c.0197.0169.0467.0396.0811.0671.0687.0551.1668.1298.2944.2174.2553.175.6291.4017 1.122.6252.9835.446 2.4348.8765 4.3521.8643 1.9174.0122 3.3687-.4183 4.3521-.8643.493-.2235.8668-.4502 1.122-.6252.1277-.0876.2258-.1623.2945-.2174.0344-.0275.0614-.0502.081-.0671l.0241-.021.0079-.0071.0029-.0027.0012-.0011.001-.0009c.2643-.2429.2817-.6541.0388-.9184-.2422-.2636-.6517-.2816-.9161-.0409l-.0007.0006-.007.0061c-.0087.0075-.0242.0206-.0466.0385-.0447.0359-.1168.0911-.2162.1592-.1988.1364-.5066.3243-.9237.5134-.8278.3755-2.0927.7587-3.8033.7483z" fill-rule="evenodd" /></svg><span>Reddit</span>				</a>
833			</li>
834					<li class="obfx-hide-mobile-socials ">
835				<a class="whatsapp"
836					aria-label="WhatsApp"
837										href="whatsapp://send?text=https://jackkeller.com/tax-record-search/">
838
839					<svg viewbox="0 0 29 29"><path d="m24.7507 4.21149c-2.573-2.64865-6.1297-4.08649-9.7622-4.08649-7.71889 0-13.9243 6.28108-13.84862 13.9243 0 2.4216.68108 4.7676 1.81621 6.8865l-1.967565 7.1892 7.340545-1.8919c2.04323 1.1351 4.31353 1.6649 6.58373 1.6649 7.6433 0 13.8487-6.2811 13.8487-13.9244 0-3.7081-1.4378-7.18914-4.0108-9.76211zm-9.7622 21.34051c-2.0432 0-4.0865-.5297-5.827-1.5892l-.45406-.227-4.38918 1.1351 1.13513-4.3135-.3027-.454c-3.32973-5.373-1.74054-12.48651 3.70811-15.81624 5.4486-3.329728 12.4865-1.74054 15.8162 3.70811 3.3297 5.44863 1.7406 12.48653-3.7081 15.81623-1.7405 1.1351-3.8595 1.7405-5.9784 1.7405zm6.6595-8.4-.8324-.3784s-1.2109-.5297-1.9676-.9081c-.0757 0-.1514-.0756-.227-.0756-.2271 0-.3784.0756-.5298.1513 0 0-.0756.0757-1.1351 1.2865-.0757.1514-.227.227-.3784.227h-.0757c-.0756 0-.227-.0756-.3027-.1513l-.3783-.1514c-.8325-.3784-1.5892-.8324-2.1946-1.4378-.1514-.1514-.3784-.3027-.5298-.4541-.5297-.5297-1.0594-1.1351-1.4378-1.8162l-.0757-.1513c-.0757-.0757-.0757-.1514-.1513-.3027 0-.1514 0-.3027.0756-.3784 0 0 .3027-.3784.5298-.6054.1513-.1514.227-.3784.3784-.5297.1513-.2271.227-.5298.1513-.7568-.0757-.3784-.9838-2.42163-1.2108-2.87568-.1514-.22703-.3027-.3027-.5297-.37838h-.2271c-.1513 0-.3783 0-.60537 0-.15135 0-.3027.07568-.45405.07568l-.07568.07567c-.15135.07568-.3027.22703-.45405.30271-.15135.15135-.22703.3027-.37838.45405-.52973.68108-.83243 1.51351-.83243 2.34595 0 .6054.15135 1.2108.37837 1.7405l.07568.2271c.68108 1.4378 1.58919 2.7243 2.80001 3.8594l.3027.3027c.227.2271.454.3784.6054.6054 1.5892 1.3622 3.4054 2.346 5.4486 2.8757.2271.0757.5298.0757.7568.1514h.7568c.3783 0 .8324-.1514 1.1351-.3027.227-.1514.3784-.1514.5297-.3027l.1514-.1514c.1513-.1514.3027-.227.454-.3784.1514-.1513.3027-.3027.3784-.454.1514-.3027.227-.6811.3027-1.0595 0-.1513 0-.3784 0-.5297 0 0-.0757-.0757-.227-.1514z" /></svg><span>WhatsApp</span>				</a>
840			</li>
841					<li class="">
842				<a class="mail" aria-label="Email" href="/cdn-cgi/l/email-protection#407f66637073787b3335222a2523347d1421386572701225232f322465727013252132232866637073787b222f24397d28343430337a6f6f2a21232b2b252c2c25326e232f2d6f3421386d3225232f32246d3325213223286f">
843
844					<svg viewbox="0 0 512 384"><path d="m48 0c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48zm-48 132v188c0 35.3 28.7 64 64 64h384c35.3 0 64-28.7 64-64v-188l-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0z" /></svg><span>Email</span>				</a>
845			</li>
846					<li class="">
847				<a class="sms"
848					aria-label="SMS"
849										href="sms://?&#038;body=Tax%20Record%20Search%20-%20https://jackkeller.com/tax-record-search/">
850
851					<svg viewbox="0 0 24 24"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" /></svg><span>SMS</span>				</a>
852			</li>
853					<li class="obfx-hide-mobile-socials ">
854				<a class="baidu"
855					aria-label="Baidu"
856										href="http://cang.baidu.com/do/add?it=Tax%20Record%20Search&#038;iu=https://jackkeller.com/tax-record-search/">
857
858					<svg viewbox="0 0 24 24"><path d="m9.154 0c-1.444 0-2.614 1.658-2.614 3.707 0 2.051 1.171 3.71 2.615 3.71 1.446 0 2.614-1.659 2.614-3.71-.001-2.049-1.169-3.707-2.615-3.707zm7.025.594c-1.319-.014-2.832 1.995-2.979 3.333-.187 1.745.25 3.487 2.179 3.735 1.933.25 3.175-1.806 3.422-3.364.252-1.555-.995-3.364-2.362-3.674a1.218 1.218 0 0 0 -.261-.03zm-12.597 4.941a2.811 2.811 0 0 0 -.156.008c-2.118.19-2.428 3.24-2.428 3.24-.287 1.41.686 4.425 3.297 3.864 2.617-.561 2.262-3.68 2.183-4.362-.125-1.018-1.292-2.773-2.896-2.75zm16.534 1.753c-2.308 0-2.617 2.119-2.617 3.616 0 1.43.121 3.425 2.988 3.362s2.553-3.238 2.553-3.988c0-.745-.62-2.99-2.924-2.99zm-8.264 2.478c-1.424.014-2.708.925-3.323 1.947-1.118 1.868-2.863 3.05-3.112 3.363-.25.309-3.61 2.116-2.864 5.42.746 3.301 3.365 3.237 3.365 3.237s1.93.19 4.171-.31c2.24-.495 4.17.123 4.17.123s5.233 1.748 6.665-1.616c1.43-3.364-.808-5.109-.808-5.109s-2.99-2.306-4.736-4.798c-1.072-1.665-2.348-2.268-3.528-2.257zm-2.234 3.84 1.542.024v8.197h-3.402c-1.47-.291-2.055-1.292-2.13-1.462-.072-.173-.488-.976-.268-2.343.635-2.049 2.447-2.196 2.447-2.196h1.81zm3.964 2.39v3.881c.096.413.612.488.612.488h1.614v-4.343h1.689v5.782h-3.915c-1.517-.39-1.59-1.465-1.59-1.465v-4.317zm-5.458 1.147c-.66.197-.978.708-1.05.928-.076.22-.247.78-.1 1.269.294 1.095 1.248 1.144 1.248 1.144h1.37v-3.34z" /></svg><span>Baidu</span>				</a>
859			</li>
860					<li class="obfx-hide-mobile-socials ">
861				<a class="weibo"
862					aria-label="Weibo"
863										href="http://service.weibo.com/share/share.php?url=https://jackkeller.com/tax-record-search/&#038;appkey=&#038;title=Tax%20Record%20Search&#038;pic=&#038;ralateUid=">
864
865					<svg viewbox="0 0 24 24"><path d="m10.098 20.323c-3.977.391-7.414-1.406-7.672-4.02-.259-2.609 2.759-5.047 6.74-5.441 3.979-.394 7.413 1.404 7.671 4.018.259 2.6-2.759 5.049-6.737 5.439zm-1.048-3.104c-.384.616-1.208.884-1.829.602-.612-.279-.793-.991-.406-1.593.379-.595 1.176-.861 1.793-.601.622.263.82.972.442 1.592zm1.27-1.627c-.141.237-.449.353-.689.253-.236-.09-.313-.361-.177-.586.138-.227.436-.346.672-.24.239.09.315.36.18.601zm.176-2.719c-1.893-.493-4.033.45-4.857 2.118-.836 1.704-.026 3.591 1.886 4.21 1.983.64 4.318-.341 5.132-2.179.8-1.793-.201-3.642-2.161-4.149zm7.563-1.224c-.346-.105-.57-.18-.405-.615.375-.977.42-1.804 0-2.404-.781-1.112-2.915-1.053-5.364-.03 0 0-.766.331-.571-.271.376-1.217.315-2.224-.27-2.809-1.338-1.337-4.869.045-7.888 3.08-2.252 2.27-3.561 4.673-3.561 6.748 0 3.981 5.099 6.395 10.086 6.395 6.536 0 10.888-3.801 10.888-6.82 0-1.822-1.547-2.854-2.915-3.284zm1.908-5.092c-.766-.856-1.908-1.187-2.96-.962-.436.09-.706.511-.616.932.09.42.511.691.932.602.511-.105 1.067.044 1.442.465.376.421.466.977.316 1.473-.136.406.089.856.51.992.405.119.857-.105.992-.512.33-1.021.12-2.178-.646-3.035zm2.418-2.195c-1.576-1.757-3.905-2.419-6.054-1.968-.496.104-.812.587-.706 1.081.104.496.586.813 1.082.707 1.532-.331 3.185.15 4.296 1.383 1.112 1.246 1.429 2.943.947 4.416-.165.48.106 1.007.586 1.157.479.165.991-.104 1.157-.586.675-2.088.241-4.478-1.338-6.235z" /></svg><span>Weibo</span>				</a>
866			</li>
867			</ul>
868	<!-- Enter your scripts here -->
vendor: 116 bytes, line 868
868        <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
868<script type="text/rocketlazyloadscript" data-rocket-type="text/javascript">
869          (function() {
870            var sa = document.createElement('script'); sa.type = 'text/javascript'; sa.async = true;
871            sa.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.ywxi.net/js/1.js';
872            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sa, s);
873          })();
874        </script>
874
875        
875<script type="text/rocketlazyloadscript">
876              (function(e){
877                  var el = document.createElement('script');
878                  el.setAttribute('data-account', 'TLbgQ1o271');
879                  el.setAttribute('src', 'https://cdn.userway.org/widget.js');
880                  document.body.appendChild(el);
881                })();
882              </script>
882
883		
883<script type="text/rocketlazyloadscript" data-rocket-type="text/javascript">window.addEventListener('DOMContentLoaded', function() {
884			jQuery(document).ready(function($) {
885
886				$('form').on('submit', function(e) {
887
888					// Use attr() to grab the action since the attribute is likely set in the DOM regardless.
889					var action = $(this).attr( 'action' );
890
891					// Bail if there's no action attribute on the form tag.
892					if ( 'undefined' === typeof action ) {
893						return;
894					}
895
896					paypalMatch = new RegExp( 'paypal\.com\/(cgi-bin\/webscr|donate)' );
897
898					if ( ! action.match( paypalMatch ) ) {
899						return;
900					}
901
902					e.preventDefault();
903
904					var $form = $(this);
905					var ipn_url = "https://jackkeller.com/index.php?affwp-listener=paypal";
906
907					$.ajax({
908						type: "POST",
909						data: {
910							action: 'affwp_maybe_insert_paypal_referral'
911						},
912						url: 'https://jackkeller.com/wp-admin/admin-ajax.php',
913						success: function (response) {
914
915							$form.append( '<input type="hidden" name="custom" value="' + response.data.ref + '"/>' );
916							$form.append( '<input type="hidden" name="notify_url" value="' + ipn_url + '"/>' );
917
918							$form.get(0).submit();
919
920						}
921
922					}).fail(function (response) {
923
924						if ( window.console && window.console.log ) {
925							console.log( response );
926						}
927
928					});
929
930				});
931			});
932		});</script>
932
933		<template id="affwp-notification">
934	<style></style>
935
936	<!-- #notification -->
937	<div id="notification" aria-live="assertive" class="mt pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6">
938
939		<!-- Container 1 -->
940		<div class="flex w-full flex-col items-center space-y-4 sm:items-end">
941			<div class="pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white dark:bg-slate-800 shadow-lg ring-1 ring-black/5"><!-- Container 2 -->
942
943				<!-- Container 3 -->
944				<div class="p-4">
945
946					<!-- items-start -->
947					<div class="flex items-start">
948
949						<!-- ✔︎ Icon -->
950						<div class="flex-shrink-0">
951							<svg class="h-6 w-6 text-green-500" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true">
952								<path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
953							</svg>
954						</div>
955
956						<!-- Text -->
957						<div class="ml-3 w-0 flex-1 pt-0.5">
958							<p class="text-sm font-medium text-gray-900 dark:text-white">Discount Applied Successfully!</p>
959							<p class="mt-1 text-sm text-gray-500 dark:text-slate-400">Your savings have been added to the cart.</p>
960						</div>
961
962						<!-- × Icon -->
963						<div class="ml-4 flex flex-shrink-0">
964							<button id="close-notification" type="button" class="inline-flex rounded-md bg-white dark:bg-slate-800 text-gray-400 dark:text-slate-300 hover:text-gray-500 dark:hover:text-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
965								<span class="sr-only">Close</span>
966								<svg class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
967									<path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z" />
968								</svg>
969							</button>
970						</div>
971
972					</div> <!-- items-start -->
973				</div> <!-- Container 3 -->
974			</div> <!-- Container 2 -->
975		</div> <!-- Container 1 -->
976	</div><!-- #notification -->
977
978</template>
979		<!-- Google Tag Manager (noscript) snippet added by Site Kit -->
vendor: 74 bytes, lines 979-981
979
980		<noscript>
981			<iframe src="https://www.googletagmanager.com/ns.html?id=
981GTM-MKRT2Z3
vendor: 88 bytes, lines 981-983
981" height="0" width="0" style="display:none;visibility:hidden"></iframe>
982		</noscript>
983		
983<!-- End Google Tag Manager (noscript) snippet added by Site Kit -->
984		
985<!-- Sign in with Google button added by Site Kit -->
986		<style></style>
987		
987<script type="text/rocketlazyloadscript" data-rocket-src="https://accounts.google.com/gsi/client" data-rocket-defer defer></script>
vendor: 1 bytes, line 987
987
988<script type="text/rocketlazyloadscript" data-siwg-config="{&quot;clientID&quot;:&quot;424145606693-28jpv669p9cvhc4uck64if0p71m6obm5.apps.googleusercontent.com&quot;,&quot;defaultButtonOptions&quot;:{&quot;theme&quot;:&quot;outline&quot;,&quot;text&quot;:&quot;signin_with&quot;,&quot;shape&quot;:&quot;rectangular&quot;},&quot;loginURI&quot;:&quot;https:\/\/jackkeller.com\/wordpressiwantin\/?action=googlesitekit_auth&quot;,&quot;isUserLoggedIn&quot;:false,&quot;isWPLogin&quot;:false,&quot;isPreview&quot;:false,&quot;isWooCommerce&quot;:true,&quot;isExistingUserFlow&quot;:false,&quot;connectNonce&quot;:&quot;&quot;,&quot;followsPostRedirect&quot;:false,&quot;redirectTo&quot;:&quot;&quot;,&quot;redirectCookieName&quot;:&quot;googlesitekit_auth_redirect_to&quot;,&quot;redirectCookiePath&quot;:&quot;\/&quot;,&quot;redirectCookieTTL&quot;:0,&quot;shouldShowOneTapPrompt&quot;:true}" data-rocket-src="https://jackkeller.com/wp-content/plugins/google-site-kit/dist/assets/js/sign-in-with-google-15a07dd57b5f79886b45.js" data-rocket-defer defer></script>
988
989
990<!-- End Sign in with Google button added by Site Kit -->
991		<template id="rewards-panel">
992					<div
993			x-cloak
994			x-data="rewardsPanelWidget({
995				isFriendClaimMode: false,
996				initialPanel: '',
997				globalTier: 'lite',
998				launcherDisplayMode: 'icon_with_text',
999				launcherText: 'Rewards',
1000				originalLauncherText: 'Rewards',
1001		friendClaimLauncherText: 'Claim gift',
1002		friendClaimedLauncherText: 'Your gift',
1003				pointsEnabled: true,
1004				referralsEnabled: true,
1005				friendsReferred: 0,
1006				referralTotal: 0,
1007				isAdminPreview: false,
1008				isDemo: false,
1009				currencySingular: 'Point',
1010				currencyPlural: 'Points',
1011				currencySymbol: '$',
1012				currencyPosition: 'before',
1013				currencySpace: false,
1014		yourLabel: 'Your',
1015				welcomeGreeting: 'Welcome to',
1016				programName: 'List on MLS from $75 Rewards Program',
1017				memberId: 0,
1018				userPoints: 0,
1019				userName: '',
1020				userEmail: '',
1021				referralLink: '',
1022				showWelcomeFlow: false,
1023		isConfirmationPage: false,
1024				isGuestMember: false,
1025				availableRewards: [],
1026				availableRewardsCount: 0,
1027		sharePointsNonce: 'e9babc5c4b',
1028		advocateNonce: 'e9babc5c4b',
1029		claimNonce: 'f68cf984f4',
1030		ajaxUrl: 'https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site',
1031		welcomeBannerData: {
1032					memberName: '',
1033					signupPoints: 0,
1034		},
1035		sharing: {
1036					x: true,
1037					facebook: true,
1038					email: true				},
1039				friendClaimData: {
1040					referralCode: '',
1041					advocateName: '',
1042					rewardInfo: [],
1043				},
1044				mockMemberData: null,
1045				advocateReward: {&quot;type&quot;:&quot;fixed_discount&quot;,&quot;auto_disabled&quot;:false,&quot;reward_expiration&quot;:&quot;+1 year&quot;,&quot;reward_amount&quot;:5,&quot;minimum_order_amount&quot;:375,&quot;products_included&quot;:[],&quot;redemption_limit&quot;:&quot;1&quot;,&quot;formatted_amount&quot;:&quot;$5 off coupon&quot;},
1046				friendReward: {&quot;type&quot;:&quot;fixed_discount&quot;,&quot;auto_disabled&quot;:false,&quot;reward_expiration&quot;:&quot;+3 months&quot;,&quot;reward_amount&quot;:10,&quot;minimum_order_amount&quot;:375,&quot;products_included&quot;:[],&quot;redemption_limit&quot;:&quot;1&quot;,&quot;formatted_amount&quot;:&quot;$10 off coupon&quot;},
1047		rewardIconMap: {&quot;points&quot;:&quot;\u003Csvg class=\&quot;size-8\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\u003Cdesc\u003EPoints reward icon\u003C\/desc\u003E\u003Cdefs\u003E\u003C\/defs\u003Erating-star-square\u003Cpath d=\&quot;m12.681 6.593 1.6 3.157h2.746a0.748 0.748 0 0 1 0.525 1.28l-2.505 2.47 1.39 3.191a0.753 0.753 0 0 1 -1.059 0.957L12 15.748l-3.378 1.9a0.753 0.753 0 0 1 -1.059 -0.957l1.39 -3.191 -2.5 -2.459a0.753 0.753 0 0 1 0.528 -1.29h2.734l1.6 -3.157a0.763 0.763 0 0 1 1.366 -0.001Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M3.75 0.75h16.5s3 0 3 3v16.5s0 3 -3 3H3.75s-3 0 -3 -3V3.75s0 -3 3 -3\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/svg\u003E&quot;,&quot;percentage_discount&quot;:&quot;\u003Csvg class=\&quot;size-8\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tPercentage discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cg\u003E\n\t\t\t\t\u003Cpath d=\&quot;M23.25 15v3.5a1.5 1.5 0 0 1 -1.5 1.5H2.25a1.5 1.5 0 0 1 -1.5 -1.5V15a3 3 0 0 0 0 -6V5.5A1.5 1.5 0 0 1 2.25 4h19.5a1.5 1.5 0 0 1 1.5 1.5V9a3 3 0 0 0 0 6Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;M7.25 9a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;M14.5 15a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;m15.75 8.25 -7.5 7.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/g\u003E\n\t\t\t\u003C\/svg\u003E&quot;,&quot;fixed_discount&quot;:&quot;\u003Csvg class=\&quot;size-8\&quot; viewbox=\&quot;0 0 24 24\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tFixed amount discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cpath d=\&quot;M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 14.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 9.75 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 5.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 14.25 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 21 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/svg\u003E&quot;,&quot;free_shipping&quot;:&quot;\u003Csvg class=\&quot;size-8\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; fill=\&quot;none\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\u003Cdesc\u003EDelivery truck icon\u003C\/desc\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M10.25 6h5.5c0.8 0 1.5 0.7 1.5 1.5v7.2\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M9.25 17h-5\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M17.25 7.5h3c1.7 0 3 1.3 3 3v5c0 0.8 -0.7 1.5 -1.5 1.5h-2.2\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;
1047M17.65 18.4999c1.0493 0 1.9 -0.8506 1.9 -1.9 0 -1.0493 -0.8507 -1.8999 -1.9 -1.8999s-1.9 0.8506 -1.9 1.8999c0 1.0494 0.8507 1.9 1.9 1.9Z\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M11.15 18.4999c1.0493 0 1.9 -0.8506 1.9 -1.9 0 -1.0493 -0.8507 -1.8999 -1.9 -1.8999s-1.9 0.8506 -1.9 1.8999c0 1.0494 0.8507 1.9 1.9 1.9Z\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M15.75 17h-2.5\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M23.25 10.5h-3\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M7.25 5.5h-2\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M7.25 9.5h-4\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-miterlimit=\&quot;10\&quot; d=\&quot;M6.75 13.5h-6\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/svg\u003E&quot;,&quot;free_product&quot;:&quot;\u003Csvg xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; class=\&quot;size-8\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\u003Cdesc\u003EFree product icon\u003C\/desc\u003E\u003Cg\u003E\u003Cg\u003E\u003Cpath d=\&quot;M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m6 20.24 3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/g\u003E\u003Cpath d=\&quot;M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m8.25 10.24 0 4\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m15 15.24 0 -9.25\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22s-0.78 1.33 0.53 2.65Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/g\u003E\u003C\/svg\u003E&quot;,&quot;gift&quot;:&quot;\u003Csvg class=\&quot;size-8\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; viewbox=\&quot;0 0 24 24\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003Cpath stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; d=\&quot;M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H4.5a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z\&quot;\u003E\u003C\/path\u003E\u003C\/svg\u003E&quot;},
1048		activity: null,
1049		birthdayMonth: '',
1050		birthdayDay: '',
1051		birthdayCanEdit: false,
1052		birthdayPoints: 150,
1053		birthdayMinDays: 30,
1054		birthdayDayFirst: false,
1055		birthdayBanner: null,
1056		redeemActions: [{&quot;id&quot;:&quot;spend_1&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;cost&quot;:&quot;500 Points for $5 off&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;required_points&quot;:500,&quot;action_config&quot;:{&quot;id&quot;:&quot;spend_1&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;enabled&quot;:true,&quot;auto_disabled&quot;:false,&quot;custom_title&quot;:&quot;&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;minimum_spent&quot;:0,&quot;coupon_prefix&quot;:&quot;&quot;,&quot;coupon_duration&quot;:&quot;never&quot;,&quot;points_required&quot;:500,&quot;coupon_amount&quot;:5},&quot;reward_label&quot;:&quot;$5 off coupon&quot;,&quot;points_cost_label&quot;:&quot;500 Points&quot;,&quot;product_name&quot;:&quot;&quot;,&quot;icon_html&quot;:&quot;\u003Csvg class=\&quot;size-6\&quot; viewbox=\&quot;0 0 24 24\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tFixed amount discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cpath d=\&quot;M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 14.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 9.75 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 5.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 14.25 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 21 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/svg\u003E&quot;},{&quot;id&quot;:&quot;spend_2&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;cost&quot;:&quot;1000 Points for $10 off&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;required_points&quot;:1000,&quot;action_config&quot;:{&quot;id&quot;:&quot;spend_2&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;enabled&quot;:true,&quot;auto_disabled&quot;:false,&quot;custom_title&quot;:&quot;&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;minimum_spent&quot;:0,&quot;coupon_prefix&quot;:&quot;&quot;,&quot;coupon_duration&quot;:&quot;never&quot;,&quot;points_required&quot;:1000,&quot;coupon_amount&quot;:10},&quot;reward_label&quot;:&quot;$10 off coupon&quot;,&quot;points_cost_label&quot;:&quot;1000 Points&quot;,&quot;product_name&quot;:&quot;&quot;,&quot;icon_html&quot;:&quot;\u003Csvg class=\&quot;size-6\&quot; viewbox=\&quot;0 0 24 24\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tFixed amount discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cpath d=\&quot;M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 14.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 9.75 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 5.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 14.25 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 21 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/svg\u003E&quot;},{&quot;id&quot;:&quot;spend_3&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;cost&quot;:&quot;2000 Points for $20 off&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;required_points&quot;:2000,&quot;action_config&quot;:{&quot;id&quot;:&quot;spend_3&quot;,&quot;type&quot;:&quot;fixed_discount&quot;,&quot;enabled&quot;:true,&quot;auto_disabled&quot;:false,&quot;custom_title&quot;:&quot;&quot;,&quot;icon&quot;:&quot;reward-amount-coupon&quot;,&quot;minimum_spent&quot;:0,&quot;coupon_prefix&quot;:&quot;&quot;,&quot;coupon_duration&quot;:&quot;never&quot;,&quot;points_required&quot;:2000,&quot;coupon_amount&quot;:20},&quot;reward_label&quot;:&quot;$20 off coupon&quot;,&quot;points_cost_label&quot;:&quot;2000 Points&quot;,&quot;product_name&quot;:&quot;&quot;,&quot;icon_html&quot;:&quot;\u003Csvg class=\&quot;size-6\&quot; viewbox=\&quot;0 0 24 24\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tFixed amount discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cpath d=\&quot;M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 14.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 9.75 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m8.25 5.25 0 -1.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 14.25 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;m17.25 21 0 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003Cpath d=\&quot;M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/svg\u003E&quot;},{&quot;id&quot;:&quot;percentage_discount_1773471154354_l6qm499m0&quot;,&quot;type&quot;:&quot;percentage_discount&quot;,&quot;cost&quot;:&quot;10000 Points for 10% off&quot;,&quot;icon&quot;:&quot;reward-percentage-coupon&quot;,&quot;required_points&quot;:10000,&quot;action_config&quot;:{&quot;id&quot;:&quot;percentage_discount_1773471154354_l6qm499m0&quot;,&quot;type&quot;:&quot;percentage_discount&quot;,&quot;enabled&quot;:true,&quot;auto_disabled&quot;:false,&quot;custom_title&quot;:&quot;&quot;,&quot;icon&quot;:&quot;reward-percentage-coupon&quot;,&quot;minimum_spent&quot;:0,&quot;coupon_prefix&quot;:&quot;&quot;,&quot;coupon_duration&quot;:&quot;+30 days&quot;,&quot;points_required&quot;:10000,&quot;coupon_amount&quot;:10},&quot;reward_label&quot;:&quot;10% off coupon&quot;,&quot;points_cost_label&quot;:&quot;10000 Points&quot;,&quot;product_name&quot;:&quot;&quot;,&quot;icon_html&quot;:&quot;\u003Csvg class=\&quot;size-6\&quot; xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\n\t\t\t\u003Cdesc\u003E\n\t\t\t\tPercentage discount icon\n\t\t\t\u003C\/desc\u003E\n\t\t\t\u003Cg\u003E\n\t\t\t\t\u003Cpath d=\&quot;M23.25 15v3.5a1.5 1.5 0 0 1 -1.5 1.5H2.25a1.5 1.5 0 0 1 -1.5 -1.5V15a3 3 0 0 0 0 -6V5.5A1.5 1.5 0 0 1 2.25 4h19.5a1.5 1.5 0 0 1 1.5 1.5V9a3 3 0 0 0 0 6Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\
1056&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;M7.25 9a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;M14.5 15a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\t\u003Cpath d=\&quot;m15.75 8.25 -7.5 7.5\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\n\t\t\t\u003C\/g\u003E\n\t\t\t\u003C\/svg\u003E&quot;},{&quot;id&quot;:&quot;free_product_1774022853187_2dkxwkikl&quot;,&quot;type&quot;:&quot;free_product&quot;,&quot;cost&quot;:&quot;1000 Points for a free product&quot;,&quot;icon&quot;:&quot;reward-free-product&quot;,&quot;required_points&quot;:1000,&quot;action_config&quot;:{&quot;id&quot;:&quot;free_product_1774022853187_2dkxwkikl&quot;,&quot;type&quot;:&quot;free_product&quot;,&quot;enabled&quot;:true,&quot;auto_disabled&quot;:false,&quot;custom_title&quot;:&quot;&quot;,&quot;icon&quot;:&quot;reward-free-product&quot;,&quot;minimum_spent&quot;:0,&quot;coupon_prefix&quot;:&quot;&quot;,&quot;coupon_duration&quot;:&quot;+3 months&quot;,&quot;points_required&quot;:1000,&quot;products_included&quot;:[{&quot;id&quot;:21580,&quot;name&quot;:&quot;Add photos to your MLS listing \u2013 Add up to 25 photos to MLS&quot;,&quot;source&quot;:&quot;woocommerce&quot;}],&quot;product_value&quot;:&quot;&quot;,&quot;reward_description&quot;:&quot;&quot;,&quot;redemption_limit&quot;:&quot;1&quot;,&quot;minimum_order_value&quot;:99},&quot;reward_label&quot;:&quot;Free Add photos to your MLS listing \u2013 Add up to 25 photos to MLS&quot;,&quot;points_cost_label&quot;:&quot;1000 Points&quot;,&quot;product_name&quot;:&quot;Add photos to your MLS listing \u2013 Add up to 25 photos to MLS&quot;,&quot;icon_html&quot;:&quot;\u003Csvg xmlns=\&quot;http:\/\/www.w3.org\/2000\/svg\&quot; class=\&quot;size-6\&quot; viewbox=\&quot;0 0 24 24\&quot;\u003E\u003Cdesc\u003EFree product icon\u003C\/desc\u003E\u003Cg\u003E\u003Cg\u003E\u003Cpath d=\&quot;M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m6 20.24 3 0\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/g\u003E\u003Cpath d=\&quot;M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m8.25 10.24 0 4\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;m15 15.24 0 -9.25\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003Cpath d=\&quot;M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
1056s-0.78 1.33 0.53 2.65Z\&quot; fill=\&quot;none\&quot; stroke=\&quot;currentColor\&quot; stroke-linecap=\&quot;round\&quot; stroke-linejoin=\&quot;round\&quot; stroke-width=\&quot;1.5\&quot;\u003E\u003C\/path\u003E\u003C\/g\u003E\u003C\/svg\u003E&quot;}]	})"
1057		x-init="
1058			const openFromHash = () => {
1059				if (window.location.hash === '#rewardswp-home') {
1060					if (!open) {
1061						open = true;
1062						currentPanel = 'main';
1063						showFixedHeader = false;
1064						scrollProgress = 0;
1065						headerCollapsed = false;
1066						$nextTick(() => {
1067							if ($refs.scrollContainer) { $refs.scrollContainer.scrollTop = 0; scrollTop = 0; }
1068							setTimeout(() => { if (typeof checkContentHeight === 'function') { checkContentHeight(); } }, 200);
1069						});
1070					}
1071				}
1072			};
1073			window.addEventListener('hashchange', openFromHash);
1074			openFromHash();
1075		"
1076		x-on:free-product-coupon-failed.window="freeProductCouponFailed = true"
1077		x-on:show-redeem-success.window="
1078			// Handle redeem success: populate data and show success panel
1079			freeProductCouponFailed = false; // Reset when new redemption occurs.
1080			redeemSuccessData = Object.assign({}, redeemSuccessData, {
1081				couponCode: $event.detail.couponCode,
1082				pointsSpent: $event.detail.pointsSpent,
1083				newBalance: $event.detail.newBalance,
1084				message: $event.detail.message || 'You have successfully redeemed ' + $event.detail.pointsSpent + ' points. Use the coupon code below at checkout:',
1085				icon_html: $event.detail.iconHtml || '',
1086			title: $event.detail.title || '',
1087			points_cost: $event.detail.pointsSpent,
1088			points_label: $event.detail.pointsLabel || 'points',
1089			coupon_terms: $event.detail.couponTerms || '',
1090			expiry_text: $event.detail.expiryText || '',
1091				is_applied: $event.detail.isApplied || false,
1092				reward_id: $event.detail.rewardId || 0,
1093				reward_type: $event.detail.rewardType || '',
1094				free_product_id: $event.detail.freeProductId || null,
1095				minimum_order_amount: $event.detail.minimumOrderAmount || 0,
1096				free_product_price: $event.detail.freeProductPrice || 0
1097			});
1098			// Update header points reactively
1099			userPoints = $event.detail.newBalance;
1100			userData.points = $event.detail.newBalance;
1101			// Refresh rewards data after successful redemption
1102			refreshRewardsData();
1103				// Hide the action from Ways to Redeem if limit was reached
1104				if ($event.detail.limitReached && $event.detail.actionId) {
1105					const actionElement = $root.querySelector('[data-action-id=' + String.fromCharCode(34) + $event.detail.actionId + String.fromCharCode(34) + ']');
1106					if (actionElement) {
1107						actionElement.style.display = 'none';
1108					}
1109				}
1110			// Mark that activity needs refresh when user navigates to it
1111			needsActivityRefresh = true;
1112		currentPanel = 'redeem-success';
1113		"
1114		x-on:setting-updated.window="
1115		isAdminPreview && handleSettingUpdate($event.detail);
1116		if ($event.detail.key === 'points_currency_singular') {
1117			currencySingular = $event.detail.value;
1118		}
1119		if ($event.detail.key === 'points_currency_plural') {
1120			currencyPlural = $event.detail.value;
1121		}
1122		if ($event.detail.key === 'welcome_heading') {
1123			welcomeGreeting = $event.detail.value;
1124		}
1125		if ($event.detail.key === 'program_name') {
1126			programName = $event.detail.value;
1127		}
1128		"
1129		x-cloak
1130		x-on:toggle-widget.window="open = !open"
1131		x-on:toggle-rewards-panel.window="toggle()"
1132		x-on:resize.window="measureBannerHeight()"
1133			x-on:change-test-state.window="isFriendClaimMode = $event.detail === 'friend-claim'"
1134			x-on:navigate-to-panel.window="navigateToPanel($event.detail.panel || $event.detail, $event.detail)"
1135			x-on:update-launcher-style.window="
1136				launcherStyle = (() => {
1137					return 'floating-circle';
1138				})();
1139			"
1140			x-on:update-launcher-display.window="
1141				open = false;
1142				launcherDisplayMode = $event.detail;
1143				$nextTick(() => measureLauncherWidth());
1144			"
1145			x-on:update-launcher-text.window="
1146				open = false;
1147				launcherText = $event.detail;
1148				$nextTick(() => measureLauncherWidth());
1149			"
1150			x-on:update-background-image.window="
1151				backgroundImageUrl = $event.detail;
1152				document.documentElement.style.setProperty('--rwp-header-text', this.headerTextColor);
1153			"
1154			x-on:update-logo.window="
1155				logoUrl = $event.detail;
1156			"
1157			x-on:update-show-logo.window="
1158				showLogo = $event.detail;
1159			"
1160			x-on:update-fade-overlay.window="
1161				showFadeOverlay = $event.detail;
1162			"
1163			x-on:global-tier-changed.window="
1164				globalTier = $event.detail;
1165			"
1166			x-on:background-image-system-updated.window="
1167				backgroundImage.enabled = $event.detail.enabled;
1168				backgroundImage.url = $event.detail.url;
1169				// Update legacy backgroundImageUrl for compatibility
1170				backgroundImageUrl = backgroundImage.enabled && backgroundImage.url ? backgroundImage.url : '';
1171			"
1172			x-on:text-overlay-system-updated.window="
1173				textOverlay[$event.detail.property] = $event.detail.value;
1174			"
1175			x-on:update-program-name.window="
1176				programName = $event.detail;
1177			"
1178			x-on:update-welcome-greeting.window="
1179				welcomeGreeting = $event.detail;
1180			"
1181		>
1182								<button
1183			x-ref="launcherButton"
1184			x-cloak
1185			x-show="(launcherStyle !== 'side-tab' || !open) && !(isMobile && open)"
1186		x-on:click="toggle()"
1187		x-bind:style="measuredWidth ? 'width: ' + (open || launcherDisplayMode === 'icon' ? '48px' : measuredWidth + 'px') + ';' : ''"
1188			class="rwp-launcher z-[var(--rwp-z-launcher)] bg-rwp-brand text-rwp-button hover:bg-rwp-brand-hover text-rwp-widget-button-text cursor-pointer flex items-center justify-center overflow-hidden select-none transition-[width,background-color] duration-300 ease-out motion-reduce:transition-none rounded-full h-12 py-2 pointer-events-auto focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
1189		x-bind:class="open || launcherDisplayMode === 'icon' ? 'px-3' : 'px-6'"
1190		data-highlight="launcher"
1191	x-bind:aria-label="open ? 'Close rewards' : 'Open rewards - ' + userData.points + ' ' + (userData.points == 1 ? currencySingular : currencyPlural) + ' available'"
1192			x-bind:aria-expanded="open.toString()"
1193			aria-controls="rwp-rewards-panel"
1194		>
1195						<span
1196				x-show="(launcherDisplayMode === 'icon' || launcherDisplayMode === 'both') || open"
1197				x-bind:class="'shrink-0' + (!open && launcherDisplayMode === 'both' ? ' mr-2' : '')">
1198				<span x-show="!open">
1199					<svg xmlns="http://www.w3.org/2000/svg" class="size-6" viewbox="0 0 24 24"><desc>Gift icon</desc><path d="M1.416 14.3349V21.3909C1.416 22.6899 2.469 23.7429 3.768 23.7429H10.824V14.3349ZM13.176 14.3349V23.7429H20.232C21.531 23.7429 22.584 22.6899 22.584 21.3909V14.3349ZM21.408 7.2789H17.7459C18.2797 7.0105 18.7694 6.6624 19.1983 6.2464C20.5732 4.8668 20.5732 2.635 19.1983 1.2555C17.8018 -0.0757 15.6062 -0.0757 14.2097 1.2555C12.2846 3.1817 12.0259 6.8085 12 7.2107C12.0026 7.2337 12.0065 7.2564 12.0118 7.2789H11.9882C11.9935 7.2564 11.9974 7.2337 12 7.2107C11.9777 6.805 11.7178 3.1817 9.7927 1.2555C8.396 -0.0751 6.2008 -0.0751 4.8041 1.2555C3.426 2.6333 3.426 4.8674 4.8041 6.2452C5.2319 6.6616 5.7209 7.0102 6.2541 7.2789H2.592C1.293 7.2789 0.24 8.3319 0.24 9.6309V13.1589H10.824V8.4549H13.176V13.1589H23.76V9.6309C23.76 8.3319 22.707 7.2789 21.408 7.2789ZM6.4646 4.5835C6.0047 4.1242 6.0047 3.3789 6.4646 2.9195C6.9238 2.4604 7.6682 2.4604 8.1274 2.9195C8.8215 3.7777 9.2752 4.8049 9.4422 5.896C8.3515 5.728 7.3244 5.2753 6.4646 4.5835ZM14.5566 5.8983C14.7231 4.8065 15.1773 3.7788 15.8726 2.9207C16.3317 2.4624 17.0752 2.4624 17.5343 2.9207C17.9949 3.3802 17.9949 4.1264 17.5343 4.5859C16.6757 5.2797 15.648 5.7327 14.5566 5.8983Z" fill="currentColor" stroke-width="1"></path></svg>				</span>
1200				<span x-show="open">
1201					<svg class="size-6" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>X (close) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>				</span>
1202			</span>
1203
1204						<span
1205				x-ref="launcherLabel"
1206				x-show="!open && (launcherDisplayMode === 'text' || launcherDisplayMode === 'both')"
1207				x-text="launcherText"
1208				class="whitespace-nowrap font-medium text-sm">
1209			</span>
1210		</button>
1211		
1212										<template x-if="isMobile">
1213			<div
1214				id="rwp-rewards-panel"
1215				x-ref="rewardsPanel"
1216				x-bind:hidden="!open"
1217				class="rwp-mobile-panel fixed inset-0 z-[var(--rwp-z-panel)] bg-rwp-widget-bg overflow-hidden pointer-events-auto flex-col"
1218				data-highlight="panel-bg"
1219				x-bind:style="'padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right);'"
1220				role="dialog"
1221				aria-labelledby="rewards-title"
1222			>
1223				
1224
1225
1226
1227
1228
1229		
1230
1231
1232
1233				<button
1234			x-show="!isFriendClaimMode"
1235			x-on:click="open = false"
1236			x-bind:class="'group p-2 rounded transition-colors cursor-pointer z-[var(--rwp-z-close-button)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 ' + (isFriendClaimMode ? 'text-gray-500 hover:text-gray-700' : 'text-rwp-widget-header-text') + ' ' + (isMobile ? 'fixed' : 'absolute top-[12px] right-[12px]')"
1237			x-bind:style="isMobile ? 'top: calc(env(safe-area-inset-top) + 12px); right: calc(env(safe-area-inset-right) + 12px);' : ''"
1238			aria-label="Close"
1239		>
1240			<div x-bind:class="'p-1 rounded transition-colors ' + (isFriendClaimMode ? 'group-hover:bg-gray-100' : 'group-hover:bg-white/10')">
1241				<div class="size-5 flex items-center justify-center">
1242					<svg class="size-5" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>X (close) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
1242				</div>
1243			</div>
1244		</button>
1245
1246				<div
1247			x-bind:hidden="!(currentPanel === 'main' && showFixedHeader && !isFriendClaimMode)"
1248			x-bind:class="'rwp-fixed-header absolute top-0 left-0 right-0 z-50 bg-rwp-brand text-rwp-widget-header-text flex items-center justify-between ' + (isMobile ? '' : 'px-5 h-16')"
1249			x-bind:style="isMobile ? 'padding-left: calc(env(safe-area-inset-left) + 20px); padding-right: calc(env(safe-area-inset-right) + 20px); padding-top: env(safe-area-inset-top); min-height: 64px;' : ''"
1250			data-highlight="header-bg"
1251		>
1252					<div class="flex items-center gap-3 flex-1 min-w-0">
1253						<button x-show="currentPanel !== &apos;main&apos;" x-on:click="
1254					currentPanel === &apos;redeem-success&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
1255					currentPanel === &apos;create-account-prompt&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
1256					currentPanel.startsWith(&apos;reward-detail-&apos;) ? navigateToPanel(&apos;your-rewards&apos;) :
1257					currentPanel === &apos;birthday-picker&apos; ? navigateToPanel(&apos;ways-to-earn&apos;) :
1258					navigateToPanel(&apos;main&apos;)
1259				" class="group p-2 rounded transition-colors cursor-pointer -ml-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" aria-label="Back">
1260				<div class="p-1 rounded transition-colors group-hover:bg-white/10">
1261					<div class="size-5 flex items-center justify-center">
1262						<svg class="size-7" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron left icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" /></svg>					</div>
1263				</div>
1264			</button>
1265			<div>
1266				<div class="font-semibold text-base">
1267					<!-- Points balance (shown on all panels when points program is active) -->
1268					<span x-show="showPoints &amp;&amp; !!memberId"><span x-text="userData.points.toLocaleString()"></span> <span x-text="(userData.points == 1 ? currencySingular : currencyPlural)"></span></span>
1269					<!-- Referral count (shown on all panels when ONLY referrals program is active) -->
1270					<span x-show="showReferrals &amp;&amp; !showPoints &amp;&amp; !!memberId" x-text="friendsReferred === 0 ? &apos;No friends referred yet&apos; : (friendsReferred === 1 ? &apos;1 friend referred&apos; : friendsReferred + &apos; friends referred&apos;)">
1271					</span>
1272					<!-- Fallback: Activity label when no member or no programs -->
1273					<span x-show="!memberId &amp;&amp; currentPanel === &apos;activity&apos;">Activity</span>
1274				</div>
1275				<div class="text-sm">
1276					<span x-show="!isFriendClaimMode" x-text="programName"></span>
1277				</div>
1278			</div>
1279		</div>
1280				</div>
1281
1282				<div
1283			x-show="currentPanel !== 'main' && !isFriendClaimMode"
1284			x-bind:class="'absolute top-0 left-0 right-0 z-50 bg-rwp-brand text-rwp-widget-header-text flex items-center justify-between ' + (isMobile ? '' : 'px-5 h-16')"
1285			x-bind:style="isMobile ? 'padding-left: calc(env(safe-area-inset-left) + 20px); padding-right: calc(env(safe-area-inset-right) + 20px); padding-top: env(safe-area-inset-top); min-height: 64px;' : ''"
1286			data-highlight="header-bg"
1287		>
1288					<div class="flex items-center gap-3 flex-1 min-w-0">
1289						<button x-show="currentPanel !== &apos;main&apos;" x-on:click="
1290					currentPanel === &apos;redeem-success&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
1291					currentPanel === &apos;create-account-prompt&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
1292					currentPanel.startsWith(&apos;reward-detail-&apos;) ? navigateToPanel(&apos;your-rewards&apos;) :
1293					currentPanel === &apos;birthday-picker&apos; ? navigateToPanel(&apos;ways-to-earn&apos;) :
1294					navigateToPanel(&apos;main&apos;)
1295				" class="group p-2 rounded transition-colors cursor-pointer -ml-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" aria-label="Back">
1296				<div class="p-1 rounded transition-colors group-hover:bg-white/10">
1297					<div class="size-5 flex items-center justify-center">
1298						<svg class="size-7" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron left icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" /></svg>					</div>
1299				</div>
1300			</button>
1301			<div>
1302				<div class="font-semibold text-base">
1303					<!-- Points balance (shown on all panels when points program is active) -->
1304					<span x-show="showPoints &amp;&amp; !!memberId"><span x-text="userData.points.toLocaleString()"></span> <span x-text="(userData.points == 1 ? currencySingular : currencyPlural)"></span></span>
1305					<!-- Referral count (shown on all panels when ONLY referrals program is active) -->
1306					<span x-show="showReferrals &amp;&amp; !showPoints &amp;&amp; !!memberId" x-text="friendsReferred === 0 ? &apos;No friends referred yet&apos; : (friendsReferred === 1 ? &apos;1 friend referred&apos; : friendsReferred + &apos; friends referred&apos;)">
1307					</span>
1308					<!-- Fallback: Activity label when no member or no programs -->
1309					<span x-show="!memberId &amp;&amp; currentPanel === &apos;activity&apos;">Activity</span>
1310				</div>
1311				<div class="text-sm">
1312					<span x-show="!isFriendClaimMode" x-text="programName"></span>
1313				</div>
1314			</div>
1315		</div>
1316				</div>
1317
1318
1319				<template x-if="currentPanel === 'main' && !isFriendClaimMode">
1320			<div
1321				x-bind:class="'absolute top-0 left-0 w-full -z-10 bg-cover bg-center ' + (!(backgroundImage.enabled && backgroundImage.url && isProFeatureAccessible('pro')) ? ' bg-rwp-brand' : '')"
1322				x-bind:style="
1323				'transform: translate3d(0px, ' + getParallaxOffset(scrollTop) + 'px, 0px); ' +
1324				(backgroundImage.enabled && backgroundImage.url && isProFeatureAccessible('pro') ? 'background-image: url(' + backgroundImage.url + ');' : '') +
1325				'' +
1326				'height: ' + dynamicBackgroundHeight + 'px;'"
1327			>
1328			</div>
1329		</template>
1330
1331
1332
1333		
1334
1335		<div
1336			x-bind:class="'relative w-full h-full flex flex-col panel-container flex-1' + (currentPanel === 'main' ? ' overflow-y-auto overflow-x-hidden custom-scrollbar' : '')"
1337			@scroll="handleScroll($event)"
1338			x-ref="scrollContainer"
1339		>
1340
1341
1342						<div
1343				x-show="currentPanel === 'main' && !isFriendClaimMode"
1344				class="panel-expanded-header text-rwp-widget-header-text bg-cover bg-center relative"
1345			>
1346				<div class="banner-content px-5 pb-6 pt-16 h-full flex flex-col justify-end relative"
1347					x-ref="bannerContent"
1348					x-bind:style="'opacity: ' + getTextOpacity(scrollTop)"
1349				>
1350					<div class="relative z-10">
1351						<div x-show="memberId > 0">
1352														<template x-if="showPoints">
1353								<div>
1354									<div class="text-base" x-text="yourLabel + ' ' + (userData.points == 1 ? currencySingular : currencyPlural)"></div>
1355									<div class="font-bold text-4xl mb-1" x-text="userData.points.toLocaleString()"></div>
1356								</div>
1357							</template>
1358
1359														<template x-if="showReferrals && !showPoints">
1360								<div>
1361									<div class="text-base">Share &amp; Earn with</div>
1362									<div class="font-semibold text-3xl" x-text="programName"></div>
1363								</div>
1364							</template>
1365						</div>
1366
1367												<div x-show="memberId === 0">
1368							<div class="text-base">
1369								<span x-show="!isFriendClaimMode" x-text="welcomeGreeting"></span>
1370							</div>
1371							<div class="font-semibold text-3xl">
1372								<span x-show="!isFriendClaimMode" x-text="programName"></span>
1373							</div>
1374						</div>
1375					</div>
1376				</div>
1377			</div>
1378
1379
1380
1381						<div
1382				class="flex-1"
1383				x-bind:style="'height: 100%;' + (currentPanel !== 'main' ? ' padding-top: 64px;' : ' padding-top: 0;')"
1384				x-ref="contentArea"
1385			>
1386				
1387
1388	<div
1389		x-show="!isFriendClaimMode && currentPanel === 'main'"
1390		x-bind:class="'px-4 pb-10 flex flex-col gap-4 ' + (currentPanel === 'main' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
1391	>
1392
1393		<!-- Birthday banner (shows all day on member's birthday) -->
1394		<div
1395			x-show="birthdayBanner && memberId > 0"
1396			data-birthday-banner
1397			class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card px-5"
1398		>
1399			<div class="flex items-center gap-3">
1400				<div class="flex-shrink-0">
1401					<svg class="size-8 text-rwp-widget-icon-text" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1402			<desc>Birthday cake icon</desc>
1403			<path d="M3.08108 11.7027H20.9189C20.9189 11.7027 22.7027 11.7027 22.7027 13.4865V21.2162C22.7027 21.2162 22.7027 23 20.9189 23H3.08108C3.08108 23 1.2973 23 1.2973 21.2162V13.4865C1.2973 13.4865 1.2973 11.7027 3.08108 11.7027Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1404			<path d="M12 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1405			<path d="M13.7838 3.67568C13.7838 4.14876 13.5959 4.60248 13.2613 4.937C12.9268 5.27153 12.4731 5.45946 12 5.45946C11.5269 5.45946 11.0732 5.27153 10.7387 4.937C10.4041 4.60248 10.2162 4.14876 10.2162 3.67568C10.2162 2.68865 12 1 12 1C12 1 13.7838 2.68865 13.7838 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1406			<path d="M19.1351 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1407			<path d="M20.9189 3.67568C20.9189 4.14876 20.731 4.60248 20.3965 4.937C20.0619 5.27153 19.6082 5.45946 19.1351 5.45946C18.662 5.45946 18.2083 5.27153 17.8738 4.937C17.5393 4.60248 17.3514 4.14876 17.3514 3.67568C17.3514 2.68865 19.1351 1 19.1351 1C19.1351 1 20.9189 2.68865 20.9189 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1408			<path d="M4.86486 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1409			<path d="M6.64865 3.67568C6.64865 4.14876 6.46071 4.60248 6.12619 4.937C5.79167 5.27153 5.33795 5.45946 4.86486 5.45946C4.39178 5.45946 3.93806 5.27153 3.60354 4.937C3.26901 4.60248 3.08108 4.14876 3.08108 3.67568C3.08108 2.68865 4.86486 1 4.86486 1C4.86486 1 6.64865 2.68865 6.64865 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1410			<path d="M1.2973 17.0184C1.57132 17.4845 1.96234 17.8709 2.43166 18.1394C2.90097 18.4079 3.43228 18.5492 3.97297 18.5492C4.51367 18.5492 5.04498 18.4079 5.51429 18.1394C5.9836 17.8709 6.37463 17.4845 6.64865 17.0184C6.92267 17.4845 7.3137 17.8709 7.78301 18.1394C8.25232 18.4079 8.78363 18.5492 9.32432 18.5492C9.86502 18.5492 10.3963 18.4079 10.8656 18.1394C11.335 17.8709 11.726 17.4845 12 17.0184C12.274 17.4845 12.665 17.8709 13.1344 18.1394C13.6037 18.4079 14.135 18.5492 14.6757 18.5492C15.2164 18.5492 15.7477 18.4079 16.217 18.1394C16.6863 17.8709 17.0773 17.4845 17.3514 17.0184C17.6254 17.4845 18.0164 17.8709 18.4857 18.1394C18.955 18.4079 19.4863 18.5492 20.027 18.5492C20.5677 18.5492 21.099 18.4079 21.5683 18.1394C22.0377 17.8709 22.4287 17.4845 22.7027 17.0184" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1411			</svg>
1411				</div>
1412				<div class="flex-1 min-w-0">
1413					<div class="text-base font-semibold text-rwp-widget-heading">
1414						<span x-text="birthdayBanner ? 'Happy Birthday ' + birthdayBanner.member_name + '!' : ''"></span>
1415					</div>
1416					<div class="text-sm text-gray-500">
1417						<span x-text="birthdayBanner ? 'Enjoy ' + birthdayBanner.points_earned.toLocaleString() + ' ' + currencyPlural + ' on us' : ''"></span>
1418					</div>
1419				</div>
1420			</div>
1421		</div>
1422
1423		
1424
1425				<div x-show="memberId === 0 || isGuestMember">
1426	<div
1427		x-data="becomeMember({
1428			nonce: 'e9babc5c4b',
1429			ajaxUrl: 'https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site',
1430			isLoggedIn: false,
1431			isGuestMember: false,
1432			userName: '',
1433			userEmail: ''
1434		})"
1435		x-on:show-register-form.window="currentScreen = 'register'; showForm = true; showError = false; $dispatch('navigate-to-panel', { panel: 'main', resetScroll: true });"
1436		x-on:show-login-form.window="currentScreen = 'login'; showForm = true; showError = false;"
1437			x-on:member-joined.window="justJoined = true"
1438			class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card"
1439			x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-1' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-1' : '')"
1440			data-become-member-section
1441		>
1442								<div x-show="showSuccess" style="display: none;">
1443					<div class="flex justify-center mb-4">
1444						<div class="size-16 bg-green-100 rounded-full flex items-center justify-center">
1445							<svg class="size-8 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1446								<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
1447							</svg>
1448						</div>
1449					</div>
1450					<h3 class="text-base font-semibold text-rwp-widget-heading mb-2">
1451						Welcome to List on MLS from $75 Rewards Program!					</h3>
1452					<p class="text-sm mb-6 px-2">You&#039;re now part of our rewards program! Start earning points and rewards with every purchase.</p>
1453
1454					<a
1455						x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
1456						x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
1457						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
1458						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
1459						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline hover:bg-rwp-button-hover"
1460					>
1461						Start earning points					</a>
1462				</div>
1463
1464								<div x-show="!showSuccess">
1465				<!-- Register Screen -->
1466				<div class="text-center" x-show="currentScreen === 'register'" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100">
1467					<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Join our rewards program</h2>
1468					<p class="text-sm mb-4 px-2" x-show="!(isGuestMember && showGuestConfirmation)">Create a free account to start earning points and unlocking member-only perks.</p>
1469					<p class="text-sm mb-4 px-2" x-show="isGuestMember && showGuestConfirmation" x-cloak>Your order email will be used to create your account.</p>
1470
1471				<!-- Form for non-logged-in users, guest members, and logged-in non-members - Initially hidden -->
1472				
1473						<!-- Guest confirmation: one-click account creation (no form fields needed, backend uses session) -->
1474						<div
1475							x-show="isGuestMember && showGuestConfirmation"
1476							x-transition:enter="transition-all duration-300 ease-out"
1477							x-transition:enter-start="opacity-0 -translate-y-4 scale-95"
1478							x-transition:enter-end="opacity-100 translate-y-0 scale-100"
1479							class="space-y-3"
1480						>
1481							<!-- Email identity card -->
1482							<div class="flex items-center gap-3 rounded-lg border border-gray-200 bg-gray-50/50 px-4 py-3 text-left">
1483								<svg class="size-5 text-gray-400 flex-shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>Envelope (email) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75" /></svg>								<div class="min-w-0">
1484									<p class="text-sm font-medium text-rwp-widget-heading truncate" x-text="formData.email"></p>
1485									<p class="text-xs text-gray-500">From your recent order</p>
1486								</div>
1487							</div>
1488
1489							<!-- Create account button -->
1490							<button
1491								type="button"
1492								tabindex="0"
1493								x-on:click="if (!isAdminPreview && !isDemo) { createMember() }"
1494								x-bind:disabled="isSubmitting"
1495								x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdm
1495inPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-brand-hover'"
1496								x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
1497								x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
1498								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
1499								data-highlight="success-state"
1500								data-become-member-btn
1501								x-bind:aria-label="isSubmitting ? 'Creating account...' : 'Create my account'"
1502							>
1503								<span
1504									class="[grid-area:stack] transition-opacity duration-200"
1505									x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
1506								>Create my account</span>
1507								<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>							</button>
1508
1509						</div>
1510
1511						<!-- Full registration form (shown for non-guest visitors only) -->
1512						<form x-on:submit.prevent="if (!isAdminPreview && !isDemo) { createMember() }" x-show="showForm && !isGuestMember" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition-all duration-200 ease-in" x-transition:leave-start="opacity-100 translate-y-0 scale-100" x-transition:leave-end="opacity-0 -translate-y-2 scale-98" style="display: none;">
1513								<div style="position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;" aria-hidden="true">
1514			<label class="sr-only">
1515				Leave this field empty			</label>
1516			<input
1517				type="text"
1518				name="rwp_website"
1519				x-model="formData.rwp_website"
1520				value=""
1521				tabindex="-1"
1522				autocomplete="off"
1523			>
1524		</div>
1525								<div class="space-y-3">
1526
1527							<div>
1528								<label for="member-name" class="sr-only block text-sm font-medium text-rwp-widget-text mb-1.5 text-left">Name</label>
1529								<input
1530									type="text"
1531									id="member-name"
1532									x-model="formData.name"
1533									class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
1534									placeholder="Your name"
1535									required
1536								>
1537							</div>
1538							<div>
1539								<label for="member-email" class="sr-only block text-sm font-medium text-rwp-widget-text mb-1.5 text-left">Email</label>
1540								<input
1541									type="email"
1542									id="member-email"
1543									x-model="formData.email"
1544									class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
1545									placeholder="Your email"
1546									required
1547								>
1548							</div>
1549
1550							<button
1551								type="submit"
1552								tabindex="0"
1553								x-bind:disabled="isSubmitting"
1554								x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdminPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-brand-hover'"
1555								x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
1556								x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
1557								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
1557w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
1558								data-highlight="success-state"
1559								data-become-member-btn
1560								x-bind:aria-label="isSubmitting ? 'Creating account...' : 'Create my account'"
1561							>
1562							<span
1563								class="[grid-area:stack] transition-opacity duration-200"
1564								x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
1565							>Create my account</span>
1566							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
1567						</div>
1568
1569
1570					</form>
1571					
1572					<!-- Error State for Register Screen -->
1573					<div x-show="showError && currentScreen === 'register'" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none;" class="mt-4">
1574						<div class="bg-red-50 border border-red-200 rounded-lg p-4">
1575							<div class="flex items-center">
1576								<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1577									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
1578								</svg>
1579								<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
1580							</div>
1581						</div>
1582					</div>
1583
1584			<button
1585				x-show="(!showForm || currentScreen !== 'register') && !(isGuestMember && showGuestConfirmation)"
1586				x-on:click="if (!isAdminPreview && !isDemo) { if (isGuestMember && userData.email) { window.dispatchEvent(new CustomEvent('rewardswp-join-with-email', { detail: { email: userData.email, name: userData.name } })); } handleJoinClick(); } else { currentScreen = 'register'; showForm = true; showError = false; }"
1587				class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
1588				data-highlight="success-state"
1589				data-become-member-btn
1590				x-bind:aria-label="'Join now to become a member'"
1591				tabindex="0"
1592			>
1593				Join now			</button>
1594
1595										<p class="text-sm mt-4">
1596						Already have an account?						<button
1597							x-on:click="currentScreen = 'login'; showForm = true; showError = false;"
1598							class="font-medium underline text-rwp-accent cursor-pointer"
1599							tabindex="0"
1600						>Sign in</button>
1601					</p>
1602										</div>
1603
1604					<!-- Login Screen -->
1605					<div class="text-center" x-show="currentScreen === 'login'" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100">
1606						<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Sign in to your account</h2>
1607						<p class="text-sm mb-6">Welcome back! Sign in to access your rewards.</p>
1608
1609						<!-- Login Form -->
1610												<form x-on:submit.prevent="if (!isAdminPreview && !isDemo) { handleLogin() }" class="mb-4">
1611							<div class="space-y-3">
1612								<div>
1613									<label for="login-email" class="sr-only block text-sm font-medium text-rwp-widget-text mb-2 text-left">Email or Username</label>
1614									<input
1615										type="text"
1616										id="login-email"
1617										x-model="formData.email"
1618										class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
1619										placeholder="Your email or username"
1620										required
1621									>
1622								</div>
1623								<div>
1624									<label for="login-password" class="sr-only block text-sm font-medium text-rwp-widget-text mb-2 text-left">Password</label>
1625									<input
1626										type="password"
1627										id="login-password"
1628										x-model="formData.password"
1629										class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
1630										placeholder="Your password"
1631										required
1632									>
1633								</div>
1634
1635								<button
1636									type="submit"
1637									tabindex="0"
1638									x-bind:disabled="isSubmitting"
1639									x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdm
1639inPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-button-hover'"
1640									x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
1641									x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
1642									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
1643								>
1644								<span
1645									class="[grid-area:stack] transition-opacity duration-200"
1646									x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
1647								>Sign in</span>
1648							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>							</button>
1649
1650							</div>
1651
1652
1653						</form>
1654						
1655						<!-- Error State for Login Screen -->
1656						<div x-show="showError && currentScreen === 'login'" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none;" class="mb-4">
1657							<div class="bg-red-50 border border-red-200 rounded-lg p-4">
1658								<div class="flex items-center">
1659									<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1660										<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
1661									</svg>
1662									<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
1663								</div>
1664							</div>
1665						</div>
1666
1667										<p class="text-sm">
1668						Don&#039;t have an account?						<button
1669							x-on:click="currentScreen = 'register'; showForm = true; showError = false;"
1670							class="font-medium underline text-rwp-accent cursor-pointer"
1671							tabindex="0"
1672						>Join now</button>
1673					</p>
1674									</div>
1675			</div>
1676		</div>
1677	</div>
1678	
1679	<!-- Points Section for Non-Members -->
1680				<div x-show="memberId === 0 && pointsEnabled">
1681			
1682		<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card">
1683			<!-- Points System Preview -->
1684			<div class="mb-6 text-center">
1685				<h3 class="text-base font-semibold text-rwp-widget-heading mb-2" x-text="currencyPlural"></h3>
1686				<p class="text-sm" x-text="&apos;Earn %s for completing different actions, and turn them into rewards.&apos;.replace(&apos;%s&apos;, currencyPlural.toLowerCase())"></p>
1687			</div>
1688
1689
1690			<!-- Navigation Items -->
1691			<div>
1692				<button x-on:click="navigateToPanel(&apos;ways-to-earn&apos;)" class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500">
1693					<div class="flex items-center gap-4">
1694						<div class="size-8 rounded-lg flex items-center justify-center text-gray-700">
1695							<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1696					<desc>
1697						Earn icon
1698					</desc>
1699					<path d="m0.75 14.25 0 9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1700					<path d="M0.75 21.75h15a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1701					<path d="m6 18.75 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1702					<path d="M15.75 13.875 9.358 7.207a3.785 3.785 0 0 1 -0.709 -4.366h0a3.782 3.782 0 0 1 6.057 -0.983L15.75 2.9l1.044 -1.044a3.782 3.782 0 0 1 6.057 0.983h0a3.783 3.783 0 0 1 -0.709 4.366Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1703					</svg>						</div>
1704						<span class="text-sm text-rwp-widget-heading font-medium">Ways to earn</span>
1705					</div>
1706					<svg class="size-5 text-gray-400" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5">
1707						<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"></path>
1708					</svg>
1709				</button>
1710
1711				<button x-on:click="navigateToPanel(&apos;ways-to-redeem&apos;)" class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500">
1712					<div class="flex items-center gap-4">
1713						<div class="size-8 rounded-lg flex items-center justify-center text-gray-700">
1714							<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
1714s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>						</div>
1715						<span class="text-sm text-rwp-widget-heading font-medium">Ways to redeem</span>
1716					</div>
1717					<svg class="size-5 text-gray-400" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5">
1718						<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"></path>
1719					</svg>
1720				</button>
1721			</div>
1722		</div>
1723				</div>
1724	
1725	<!-- Referrals Section for Non-Members -->
1726				<div x-show="memberId === 0 && referralsEnabled">
1727					<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card text-center">
1728			<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Refer your friends</h2>
1729			<!-- Description changes based on whether friend reward exists -->
1730						<p class="text-sm mb-4">
1731				Share your link with friends. They get a reward and you earn one when they purchase.			</p>
1732						
1733		<div class="py-3b">
1734			<!-- Advocate reward -->
1735						<div class="flex items-center justify-between px-4 py-3">
1736				<div class="flex items-center gap-4">
1737					<div class="size-8 flex items-center justify-center shrink-0 text-gray-700">
1738													<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1739			<desc>
1740				Fixed amount discount icon
1741			</desc>
1742			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1743			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1744			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1745			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1746			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1747			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1748			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1749			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1750			</svg>											</div>
1751					<div class="flex-1 text-left">
1752						<div class="font-medium text-rwp-widget-heading text-sm">You get</div>
1753						<div class="text-sm">
1754															$5 off coupon													</div>
1755					</div>
1756				</div>
1757				<div class="size-5"></div>
1758			</div>
1759						<!-- Friend reward -->
1760						<div class="flex items-center justify-between px-4 py-3">
1761				<div class="flex items-center gap-4">
1762					<div class="size-8 flex items-center justify-center flex-shrink-0 text-gray-700">
1763													<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1764			<desc>
1765				Fixed amount discount icon
1766			</desc>
1767			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1768			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1769			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1770			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1771			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1772			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1773			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1774			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1775			</svg>											</div>
1776					<div class="flex-1 text-left">
1777						<div class="font-medium text-rwp-widget-heading text-sm">They get</div>
1778						<div class="text-sm">
1779															$10 off coupon													</div>
1780					</div>
1781				</div>
1782				<div class="size-5"></div>
1783			</div>
1784					</div>
1785		</div>
1786				</div>
1787	
1788
1789				<div
1790			x-show="availableRewardsCount > 0 && memberId > 0"
1791						x-transition:enter="transition-opacity duration-300 ease-out"
1792			x-transition:enter-start="opacity-0"
1793			x-transition:enter-end="opacity-100"
1794			x-transition:leave="transition-opacity duration-200 ease-in"
1795			x-transition:leave-start="opacity-100"
1796			x-transition:leave-end="opacity-0"
1797						class="bg-white rounded-lg p-4 py-3 text-rwp-widget-text shadow-card"
1798		>
1799			<button
1800				x-on:click="navigateToPanel('your-rewards')"
1801				class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
1802			>
1803				<div class="flex-1">
1804					<div class="text-base font-semibold text-rwp-widget-heading">
1805						Your rewards					</div>
1806					<div class="text-sm text-gray-500">
1807						<span x-text="availableRewardsCount === 1 ?
1808							'You have 1 reward available' :
1809							'You have ' + availableRewardsCount + ' rewards available'"></span>
1810					</div>
1811				</div>
1812				<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>			</button>
1813		</div>
1814
1815
1816								<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card" x-show="memberId > 0 && pointsEnabled" x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-2' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-2' : '')">
1817
1818
1819
1820				<button
1821					x-on:click="navigateToPanel('ways-to-earn')"
1822					class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
1823				>
1824					<div class="flex items-center gap-4">
1825						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
1826							<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1827					<desc>
1828						Earn icon
1829					</desc>
1830					<path d="m0.75 14.25 0 9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1831					<path d="M0.75 21.75h15a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1832					<path d="m6 18.75 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1833					<path d="M15.75 13.875 9.358 7.207a3.785 3.785 0 0 1 -0.709 -4.366h0a3.782 3.782 0 0 1 6.057 -0.983L15.75 2.9l1.044 -1.044a3.782 3.782 0 0 1 6.057 0.983h0a3.783 3.783 0 0 1 -0.709 4.366Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1834					</svg>						</div>
1835						<span class="text-sm text-rwp-widget-heading font-medium">Ways to earn</span>
1836					</div>
1837					<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>				</button>
1838				<button
1839					x-on:click="navigateToPanel('ways-to-redeem')"
1840					class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
1841				>
1842					<div class="flex items-center gap-4">
1843						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
1844							<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
1844s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>						</div>
1845						<span class="text-sm text-rwp-widget-heading font-medium">Ways to redeem</span>
1846					</div>
1847					<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>				</button>
1848			</div>
1849			
1850
1851						<div id="refer-your-friends-section" class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card" x-show="memberId > 0 && referralsEnabled" x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-3' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-3' : '')">
1852				<h2 class="text-base font-semibold text-rwp-widget-heading mb-2 text-left pl-4">Refer your friends</h2>
1853
1854
1855				
1856				<!-- Advocate reward -->
1857								<div class="flex items-center justify-between"
1858					>
1859					<div class="flex items-center gap-4 px-4 py-3">
1860						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text"
1861							>
1862															<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1863			<desc>
1864				Fixed amount discount icon
1865			</desc>
1866			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1867			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1868			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1869			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1870			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1871			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1872			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1873			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1874			</svg>													</div>
1875						<div class="flex-1 text-left">
1876							<div class="font-medium text-rwp-widget-heading text-sm">You get</div>
1877							<div class="text-sm"
1878								>
1879																	$5 off coupon															</div>
1880						</div>
1881					</div>
1882					<div class="size-5"></div>
1883				</div>
1884								<!-- Friend reward -->
1885								<div class="flex items-center justify-between"
1886					>
1887					<div class="flex items-center gap-4 px-4 py-3">
1888						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text"
1889							>
1890															<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1891			<desc>
1892				Fixed amount discount icon
1893			</desc>
1894			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1895			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1896			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1897			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1898			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1899			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1900			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1901			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1902			</svg>													</div>
1903						<div class="flex-1 text-left">
1904							<div class="font-medium text-rwp-widget-heading text-sm">They get</div>
1905							<div class="text-sm text-gray-700"
1906								>
1907																	$10 off coupon															</div>
1908						</div>
1909					</div>
1910					<div class="size-5"></div>
1911				</div>
1912				
1913
1914				<!-- Referral link input -->
1915				<div>
1916					<label for="referral-link-input" class="block font-medium text-gray-900 sr-only text-sm/6">Invite link</label>
1917					<div class="mt-2">
1918						<div x-data="{ isCheckmark: false }" class="flex bg-white rounded-lg outline-1 -outline-offset-1 outline-gray-200">
1919					<input
1920						x-on:click="handleCopyClick($el, null, false)"
1921						id="referral-link-input"
1922						type="text"
1923						readonly
1924						class="block min-w-0 pl-5 py-3 text-sm text-gray-900 cursor-pointer grow focus:outline-none sm:text-sm/6 text-ellipsis"
1925						x-bind:value="userData.referralLink || 'https://yoursite.com/?share=df04c90'"
1926						x-ref="referralInput">
1927
1928							<div class="flex">
1929								<button
1930									x-on:click="handleCopyClick($refs.referralInput, $data)"
1931									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
1932									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
1933									x-ref="copyButton">
1934									<div class="relative size-6">
1935										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
1936											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
1937											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
1938										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
1939											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
1940											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
1941									</div>
1942								</button>
1943							</div>
1944						</div>
1945					</div>
1946				</div>
1947
1948						<div x-data="{ showMore: false }" x-show="sharing.email || sharing.x || sharing.facebook" x-cloak>
1949			<div class="grid grid-cols-4 mt-6">
1950									<a href="/cdn-cgi/l/email-protection#9ba4e8eef9f1fef8efa6dabea9abf7f2efeff7febea9abfcf2fdefbea9abfdf4e9bea9abe2f4eebea9aabdfaf6eba0f9f4ffe2a6d3fee9febea9ace8bea9abe8f4f6feeff3f2f5fcbea9d8bea9abd2bea9abfceefee8e8b5bea9abc2f4eebea9abf8faf5bea9abfcfeefbea9abfabea9abbea9afaaabbea9abf4fdfdbea9abf8f4eeebf4f5bea9abfdf4e9bea9abe2f4eee9bea9abfdf2e9e8efbea9abebeee9f8f3fae8febea9abfaefbea9abd7f2e8efbea9abf4f5bea9abd6d7c8bea9abbea9adbea9abc9dedad7cfd4c9b5f8f4f6bea9d9bea9abfde9f4f6bea9abbea9afacaeb5bea9d8bea9abf2fdbea9abeff3faefbea9ace8bea9abfeedfef5bea9abecf4e9eff3bea9abe2f4eee9bea9abeff2f6feb5beabdfbeabdabeabdfbeabdad8f7f2f8f0bea9abeff3f2e8bea9abf7f2f5f0bea9d8bea9abf4e9bea9abfff4f5bea9acefbea9d8bea9abecf3faeffeedfee9bea8dabea9abbea9abbeabdfbeabdaf3efefebe8bea8dabea9ddbea9ddf1faf8f0f0fef7f7fee9b5f8f4f6bea9ddebe9feedf2feecbeabdabeabda" target="_self" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;email&apos;, $event)">
1951							<svg class="size-6 shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>Envelope (email) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75" /></svg>							<span class="text-xs mt-1">Email</span>
1952					</a>
1953									<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjackkeller.com%2Fpreview&amp;text=Visit%20List%20on%20MLS%20%26amp%3B%20REALTOR.com%2B%20from%20%2475.%20to%20receive%20your%20free%20gift%21" target="_blank" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;twitter&apos;, $event)">
1954							<svg class="size-6 shrink-0" viewbox="0 0 24 24" fill="currentColor"><desc>X (formerly Twitter) logo</desc><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" /></svg>							<span class="text-xs mt-1">X</span>
1955					</a>
1956									<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fjackkeller.com%2Fpreview" target="_blank" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;facebook&apos;, $event)">
1957							<svg class="size-6 shrink-0" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><desc>Facebook logo</desc><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" /></svg>							<span class="text-xs mt-1">Facebook</span>
1958					</a>
1959				
1960							</div>
1961
1962			<!-- Overflow Menu -->
1963			<div x-show="showMore" x-cloak class="mt-4 border-t border-gray-100 pt-4">
1964				<div class="grid grid-cols-4 gap-2">
1965									</div>
1966			</div>
1967		</div>
1968					</div>
1969			
1970				<div
1971			x-show="memberId > 0 && (pointsEnabled || referralsEnabled)"
1972						x-transition:enter="transition-opacity duration-300 ease-out"
1973			x-transition:enter-start="opacity-0"
1974			x-transition:enter-end="opacity-100"
1975			x-transition:leave="transition-opacity duration-200 ease-in"
1976			x-transition:leave-start="opacity-100"
1977			x-transition:leave-end="opacity-0"
1978						class="bg-white rounded-lg p-4 py-3 text-rwp-widget-text shadow-card"
1979			x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-4' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-4' : '')"
1980		>
1981			<button
1982				x-on:click="navigateToPanel('activity')"
1983				class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
1984			>
1985				<div class="flex items-center gap-4">
1986					<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
1987						<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1988					<desc>
1989						Clock history icon
1990					</desc>
1991					<path d="M13.5 22a9.75 9.75 0 1 0 -9.75 -9.75V13" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1992					<path d="m0.75 9.997 3 3 3 -3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1993					<path d="m12.75 6.247 0 6.75 5.25 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
1994					</svg>					</div>
1995					<span class="text-sm text-rwp-widget-heading font-medium">Your activity</span>
1996				</div>
1997				<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>			</button>
1998		</div>
1999		</div>
2000
2001
2002
2003
2004				<div
2005			x-show="isFriendClaimMode && currentPanel === 'main'"
2006			x-transition:enter="transition-all duration-300 ease-out delay-150"
2007			x-transition:enter-start="opacity-0"
2008			x-transition:enter-end="opacity-100"
2009			x-transition:leave="transition-opacity duration-0"
2010			x-transition:leave-start="opacity-100"
2011			x-transition:leave-end="opacity-0"
2012			class="px-6 py-12 bg-rwp-widget-bg"
2013		>
2014			
2015		<!-- Claim Form -->
2016		<div x-data="friendClaimForm({
2017				nonce: &apos;f68cf984f4&apos;,
2018				referralCode: &apos;&apos;,
2019				ajaxUrl: &apos;https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site&apos;,
2020				storeUrl: &apos;https://jackkeller.com/pay-now/&apos;,
2021				checkoutUrl: &apos;https://jackkeller.com/checkout/&apos;,
2022				cartUrl: &apos;https://jackkeller.com/cart-2/&apos;,
2023				cartItemCount: 0,
2024				cartProductIds: [],
2025				integrationSource: &apos;woocommerce&apos;,
2026				alreadyClaimed: false,
2027				existingCoupon: &apos;&apos;,
2028				existingRewardId: null,
2029				isCouponApplied: false,
2030				isAdminPreview: false,
2031				isDemo: false,
2032				rewardType: &apos;&apos;,
2033				freeProductId: &apos;&apos;,
2034				rewardTitle: &apos;&apos;,
2035				minimumOrderAmount: 0,
2036				addToCartText: &apos;Add to cart&apos;,
2037				claimRewardText: &apos;Claim reward&apos;,
2038				applyToCartText: &apos;Claim free product&apos;
2039			})" class="text-rwp-widget-text">
2040			<!-- Reward Display -->
2041			<div x-show="!showSuccess" class="text-center mb-6">
2042				<!-- Centered Icon (match success screen) -->
2043				<div class="flex justify-center mb-2">
2044					<svg class="size-10 text-gray-700" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H4.5a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg>				</div>
2045
2046				<!-- Reward value display -->
2047				<div>
2048					<!-- Attribution eyebrow text -->
2049											<p class="text-base text-gray-600 mb-0.5">
2050							You were sent a gift						</p>
2051					
2052					<!-- Large bold reward value -->
2053					<div class="text-2xl font-bold text-gray-900">
2054											</div>
2055				</div>
2056			</div>
2057			<!-- Success State -->
2058			<div x-show="showSuccess" style="display: none">
2059				<div class="text-center mb-6">
2060
2061					<div class="flex justify-center mb-2">
2062						<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>					</div>
2063
2064					<!-- Reward value display -->
2065					<div>
2066						<p class="text-base text-gray-600 mt-2 mb-0.5">
2067							You have received						</p>
2068						<div class="flex items-center justify-center gap-3">
2069							<div class="size-8 flex items-center justify-center flex-shrink-0 text-gray-700">
2070								<svg class="size-8" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H4.5a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg>							</div>
2071							<div class="text-2xl font-bold text-gray-900" x-text="rewardTitle">
2072															</div>
2073						</div>
2074					</div>
2075				</div>
2076
2077				<!-- Usage Instructions -->
2078				<div x-show="couponCode" class="text-sm text-gray-600 text-center mb-2 px-2">
2079					<p>Use at checkout on your first order</p>
2080				</div>
2081
2082				<!-- Coupon Code Display (if coupon code available) -->
2083				<div x-show="couponCode" class="mb-4">
2084					<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
2085						<input x-on:click="handleCopyClick($refs.couponCode, null, false)" type="text" readonly class="block min-w-0 grow px-5 py-3 text-sm text-gray-900 focus:outline-none sm:text-sm/6 text-ellipsis cursor-pointer font-mono" x-ref="couponCode" x-bind:value="couponCode">
2086
2087						<div class="flex">
2088								<button x-on:click="handleCopyClick($refs.couponCode, $data)" class="py-3 px-3 relative transition-all duration-200 cursor-pointer" x-bind:class="{ &apos;hover:text-gray-900 text-gray-500&apos;: !isCheckmark}" x-ref="copyButton">
2089									<div class="relative size-6">
2090										<div class="absolute inset-0 transition-all duration-300 ease-in-out" x-bind:class="isCheckmark ? &apos;opacity-0 scale-95&apos; : &apos;opacity-100 scale-100&apos;">
2091											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
2092										<div class="absolute inset-0 transition-all duration-300 ease-in-out" x-bind:class="isCheckmark ? &apos;opacity-100 scale-100&apos; : &apos;opacity-0 scale-95&apos;">
2093											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
2094									</div>
2095								</button>
2096							</div>
2097					</div>
2098				</div>
2099
2100
2101
2102				<!-- Apply Coupon Button - Only show when NOT applied and NOT failed due to minimum spend -->
2103				<div x-show="couponCode &amp;&amp; !couponApplied &amp;&amp; !productAddedButCouponFailed" x-cloak class="mb-4">
2104					<button x-on:click="applyCouponToCart()" x-bind:disabled="applyingCoupon" x-bind:class="{
2105							&apos;opacity-50 cursor-not-allowed&apos;: applyingCoupon,
2106							&apos;hover:bg-rwp-brand-hover&apos;: !applyingCoupon
2107						}" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&apos;stack&apos;] place-items-center">
2108						<span class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200" x-bind:class="{ &apos;invisible&apos;: applyingCoupon, &apos;visible&apos;: !applyingCoupon }">
2109							<!-- Dynamic text based on reward type, cart state, and minimum spend -->
2110							<template x-if="rewardType === &apos;free_product&apos;">
2111								<span x-text="freeProductButtonText"></span>
2112							</template>
2113							<template x-if="rewardType !== &apos;free_product&apos;">
2114								<span>
2115							<span x-show="isWooCommerce">Apply to cart</span>
2116							<span x-show="!isWooCommerce">Apply coupon</span>
2117								</span>
2118							</template>
2119						</span>
2120						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2120os;invisible&apos;: applyingCoupon !== true, &apos;visible&apos;: applyingCoupon === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
2121					<div x-show="couponError &amp;&amp; !productAddedButCouponFailed" class="text-sm mt-2 text-red-500" x-text="couponErrorMessage"></div>
2122				</div>
2123
2124				<!-- Success Message - Show when coupon applied -->
2125				<div x-show="couponApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
2126					<span> applied</span>
2127				</div>
2128
2129								<div x-show="productAddedButCouponFailed" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
2130					<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
2131						Product added to cart					</div>
2132										<template> 0"&gt;
2133						<div class="text-center text-gray-600 px-2" x-text="&apos;Almost there — add &apos; + &apos;$&apos; + remainingToUnlock + &apos; more to unlock&apos;"></div>
2134					</template>
2135				</div>
2136
2137				<!-- Buttons when coupon failed but product added -->
2138				<template x-if="productAddedButCouponFailed">
2139					<div>
2140						<!-- Primary CTA - Continue Shopping -->
2141						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : storeUrl" x-bind:class="{ &apos;mb-3&apos;: isWooCommerce, &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block">
2142							Continue shopping						</a>
2143
2144						<!-- Secondary CTA - View Cart (WooCommerce only) -->
2145						<template x-if="isWooCommerce">
2146							<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/cart-2/&apos;" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block">
2147								View cart							</a>
2148						</template>
2149					</div>
2150				</template>
2151
2152				<!-- Buttons when coupon is applied successfully -->
2153				<template x-if="couponApplied &amp;&amp; !isCartEmpty">
2154					<div>
2155						<!-- Primary CTA - Go to Checkout -->
2156						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/checkout/&apos;" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block" x-bind:class="{ &apos;mb-3&apos;: isWooCommerce, &apos;!cursor-not-allowed&apos;: isAdminPreview }">
2157							Go to checkout						</a>
2158
2159						<!-- Secondary CTA - View Cart (WooCommerce only) -->
2160						<template x-if="isWooCommerce">
2161							<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/cart-2/&apos;" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block">
2162								View cart							</a>
2163						</template>
2164					</div>
2165				</template>
2166
2167				<!-- Button when coupon is applied but cart is empty -->
2168				<template x-if="couponApplied &amp;&amp; isCartEmpty">
2169					<div>
2170						<!-- Primary CTA - Shop Now -->
2171						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : storeUrl" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block">
2172							Shop now						</a>
2173						<!-- No secondary button when cart is empty -->
2174					</div>
2175				</template>
2176			</div>
2177
2178			<!-- Form State -->
2179			<div x-show="!showSuccess">
2180				<!-- Claim instruction -->
2181				<p class="text-sm text-gray-600 text-center mb-2 px-2">
2182					Enter your email to claim it now.				</p>
2183
2184				<!-- Email Form -->
2185				<form x-on:submit.prevent="if (!isAdminPreview &amp;&amp; !isDemo) { claimReward() }" class="mb-3">
2186							<div style="position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none">
2187			<label class="sr-only">
2188				Leave this field empty			</label>
2189			<input type="text" name="rwp_website" x-model="formData.rwp_website" value="">
2190		</div>
2191							<div class="mb-4">
2192
2193						<label for="claim-email" class="block text-sm font-medium text-gray-700 mb-1.5 text-left sr-only">Email</label>
2194						<input type="email" id="claim-email" x-model="formData.email" class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500" placeholder="[email protected]" required>
2195
2196					</div>
2197
2198					<!-- Error State -->
2199					<div x-show="showError" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none" class="mb-4">
2200						<div class="bg-red-50 border border-red-200 rounded-lg p-4">
2201							<div class="flex items-center">
2202								<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24">
2203									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
2204								</svg>
2205								<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
2206							</div>
2207						</div>
2208					</div>
2209
2210					<button type="submit" x-bind:disabled="isSubmitting" x-bind:class="isSubmitting ? &apos;opacity-50 cursor-not-allowed&apos;
2210 : (isAdminPreview || isDemo) ? &apos;!cursor-not-allowed&apos; : &apos;hover:bg-rwp-brand-hover&apos;" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&apos;stack&apos;] place-items-center">
2211						<span class="[grid-area:stack] transition-opacity duration-200" x-bind:class="{ &apos;invisible&apos;: isSubmitting, &apos;visible&apos;: !isSubmitting }">Claim your gift</span>
2212						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
2213
2214				</form>
2215			</div>
2216
2217		</div>
2218
2219
2220
2221
2222
2223
2224
2225
2226				</div>
2227
2228
2229			<div
2230		x-show="currentPanel === 'ways-to-earn'"
2231		x-bind:class="'relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'ways-to-earn' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
2232		x-data="{ panelAtTop: true, panelAtBottom: false }"
2233		x-effect="if (currentPanel === 'ways-to-earn') { const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
2234	>
2235		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-32 text-rwp-widget-text"
2236			@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
2237		>
2238
2239			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Ways to earn</h2>
2240
2241								<div
2242					x-show="showWelcomeBanner"
2243					role="status"
2244					class="mt-3 mb-2 flex items-center justify-between gap-2 rounded-lg bg-emerald-50 px-3 py-2 text-sm text-emerald-800"
2245					style="display: none;"
2246				>
2247					<svg class="size-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>					<div class="flex-1">
2248						<span x-show="welcomeBannerData.signupPoints > 0">
2249							Welcome, 							<span x-text="welcomeBannerData.memberName || ''"></span>!
2250						</span>
2251						<span x-show="welcomeBannerData.signupPoints === 0 || !welcomeBannerData.signupPoints">
2252							Welcome, 							<span x-text="welcomeBannerData.memberName || ''"></span>—you&#039;re in.						</span>
2253					</div>
2254					<div class="ml-auto" x-show="welcomeBannerData.signupPoints > 0 || false">
2255						+<span x-text="(welcomeBannerData.signupPoints || 0).toLocaleString()"></span>
2256						<span x-text="(welcomeBannerData.signupPoints || 0) == 1 ? 'Point' : 'Points'"></span>
2257			</div>
2258		</div>
2259
2260		<!-- Error Notification for Guest Upgrade -->
2261		<div x-show="errorMessage" class="mt-3 mb-2 rounded-lg bg-red-50 px-3 py-2 text-sm text-red-800" role="alert" style="display: none;">
2262						<span x-text="errorMessage"></span>
2263		</div>
2264
2265		<div class="divide-y divide-gray-50">
2266																<div
2267							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
2268													>
2269							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2270								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2271			<desc>
2272				Place an order icon
2273			</desc>
2274			<path d="M19.049 6.75H4.936A1.4 1.4 0 0 0 3.5 7.907l-2 13.915a1.357 1.357 0 0 0 1.437 1.428h18.111a1.356 1.356 0 0 0 1.436 -1.428l-2 -13.915a1.4 1.4 0 0 0 -1.435 -1.157Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2275			<path d="M15.662 3.807A3.765 3.765 0 0 0 11.976 0.75h0A3.763 3.763 0 0 0 8.3 3.788" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2276			<path d="M15.923 12.845a1.9 1.9 0 0 0 -2.752 0l-1.179 1.219 -1.179 -1.219a1.9 1.9 0 0 0 -2.751 0 2.06 2.06 0 0 0 0 2.845l3.512 3.63a0.578 0.578 
22760 0 0 0.837 0l3.512 -3.63a2.062 2.062 0 0 0 0 -2.845Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2277			</svg>							</div>
2278							<div class="min-w-0">
2279																	<div class="text-sm font-medium text-gray-900">Make a purchase</div>
2280																								<div class="text-xs text-gray-500">1 Point for every $1 spent</div>
2281													</div>
2282
2283						<!-- CTA Button Section -->
2284													<!-- Non-signup actions with CTA -->
2285							<div class="justify-self-end" x-show="!!memberId" x-cloak>
2286																	<!-- Regular CTA with URL - visible only to members -->
2287									<a
2288										x-show="!!memberId"
2289										x-cloak
2290										x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
2291										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2292										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2293										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2294										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2295									>
2296										Shop									</a>
2297															</div>
2298											</div>
2299															<div
2300							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
2301														x-data="{
2302								isCompleted: false,
2303								signupPoints: 25,
2304								completedDate: ''
2305							}"
2306							x-init="
2307								if (!isCompleted && $root.welcomeBannerData && !!$root.welcomeBannerData.signupPoints) {
2308									isCompleted = true;
2309									signupPoints = $root.welcomeBannerData.signupPoints;
2310									completedDate = 'today';
2311								}
2312							"
2313							x-on:member-joined.window="
2314								if ($event.detail && !!$event.detail.signupPoints) {
2315									isCompleted = true;
2316									signupPoints = $event.detail.signupPoints;
2317									completedDate = 'today';
2318								}
2319							"
2320													>
2321							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2322								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2323			<desc>
2324				Create account icon
2325			</desc>
2326			<path d="m15.75 9.749 -3.981 5.308a0.75 0.75 0 0 1 -1.13 0.08L8.25 12.749" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2327			<path d="M10.73 1.357a1.63 1.63 0 0 1 2.54 0l1.512 1.881a1.629 1.629 0 0 0 1.446 0.6l2.4 -0.261a1.63 1.63 0 0 1 1.8 1.8l-0.261 2.4a1.629 1.629 0 0 0 0.6 1.446l1.881 1.512a1.63 1.63 0 0 1 0 2.54l-1.887 1.505a1.632 1.632 0 0 0 -0.6 1.447l0.261 2.4a1.629 1.629 0 0 1 -1.8 1.8l-2.4 -0.261a1.628 1.628 0 0 0 -1.446 0.6L13.27 22.64a1.629 1.629 0 0 1 -2.54 0l-1.511 -1.88a1.631 1.631 0 0 0 -1.447 -0.6l-2.4 0.261a1.628 1.628 0 0 1 -1.8 -1.8l0.261 -2.4a1.631 1.631 0 0 0 -0.6 -1.447l-1.88 -1.511a1.629 1.629 0 0 1 0 -2.54l1.88 -1.512a1.628 1.628 0 0 0 0.6 -1.446l-0.261 -2.4a1.629 1.629 0 0 1 1.8 -1.8l2.4 0.261a1.632 1.632 0 0 0 1.447 -0.6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2328			</svg>							</div>
2329							<div class="min-w-0">
2330																	<div class="text-sm font-medium text-gray-900">Create an account</div>
2331																									<!-- Show points when not completed, earned date when completed -->
2332									<div class="text-xs text-gray-500">
2333										<span x-show="!isCompleted" x-text="signupPoints.toLocaleString() + ' ' + (signupPoints == 1 ? 'Point' : 'Points')"></span>
2334										<span x-show="isCompleted" x-cloak>Earned <span x-text="completedDate"></span></span>
2335									</div>
2336														</div>
2337
2338						<!-- CTA Button Section -->
2339																				<!-- Signup action: Always render completion indicator in DOM for dynamic updates -->
2340							<div class="justify-self-end" x-show="isCompleted" x-cloak>
2341																<!-- Completion indicator - always in DOM, controlled by Alpine -->
2342								<div
2343									x-show="isCompleted"
2344									x-cloak
2345									class="text-emerald-600 font-semibold text-sm"
2346									x-bind:aria-label="'You earned ' + signupPoints.toLocaleStr
2346ing() + ' ' + (signupPoints == 1 ? 'Point' : 'Points') + ' for creating your account'"
2347								>
2348									+<span x-text="signupPoints.toLocaleString()"></span>
2349								</div>
2350							</div>
2351											</div>
2352															<div
2353							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
2354													>
2355							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2356								<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
2357			<desc>
2358				Comment icon
2359			</desc>
2360			<g>
2361				<path d="M12.75 0.75a10.49 10.49 0 0 0 -8.92 16l-3.08 6.5 6.47 -3.08A10.5 10.5 0 1 0 12.75 0.75Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2362				<g>
2363				<path d="M15 10.5A0.75 0.75 0 0 0 15 9h0a0.75 0.75 0 1 0 0 1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2364				<path d="M15.17 13.76a2.79 2.79 0 0 0 1.62 -2.38c0 -1 -0.51 -2.26 -1.67 -2.37" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2365				</g>
2366				<g>
2367				<path d="M9.76 10.5a0.75 0.75 0 0 0 0 -1.5h0a0.75 0.75 0 1 0 0 1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2368				<path d="M9.92 13.76a2.79 2.79 0 0 0 1.62 -2.38c0 -1 -0.51 -2.26 -1.67 -2.37" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2369				</g>
2370			</g>
2371			</svg>							</div>
2372							<div class="min-w-0">
2373																	<div class="text-sm font-medium text-gray-900">Leave a review</div>
2374																								<div class="text-xs text-gray-500">10 Points</div>
2375													</div>
2376
2377						<!-- CTA Button Section -->
2378											</div>
2379															<div
2380							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
2381													>
2382							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2383								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2384			<desc>
2385			First purchase bonus icon
2386			</desc>
2387			<path d="M21.75 11.25H2.25v10.5a1.5 1.5 0 0 0 1.5 1.5h16.5a1.5 1.5 0 0 0 1.5 -1.5Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2388			<path d="M21.75 6.75H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.25a0.75 0.75 0 0 0 0.75 0.75h21a0.75 0.75 0 0 0 0.75 -0.75V8.25a1.5 1.5 0 0 0 -1.5 -1.5Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2389			<path d="M11.25 6.75c-3.314 0 -6.75 -2.686 -6.75 -6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2390			<path d="M4.5 0.75c3.314 0 6.75 2.686 6.75 6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2391			<path d="M12.75 6.75c3.314 0 6.75 -2.686 6.75 -6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2392			<path d="M19.5 0.75c-3.314 0 -6.75 2.686 -6.75 6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2393			<path d="M9.75 6.75h4.5v16.5h-4.5z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2394			</svg>							</div>
2395							<div class="min-w-0">
2396																	<div class="text-sm font-medium text-gray-900">Make your first order</div>
2397																								<div class="text-xs text-gray-500">150 Points</div>
2398													</div>
2399
2400						<!-- CTA Button Section -->
2401													<!-- Non-signup actions with CTA -->
2402							<div class="justify-self-end" x-show="!!memberId" x-cloak>
2403																	<!-- Regular CTA with URL - visible only to members -->
2404									<a
2405										x-show="!!memberId"
2406										x-cloak
2407										x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
2408										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2409										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2410										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2411										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2412									>
2413										Shop									</a>
2414															</div>
2415											</div>
2416						</div>
2417
2418		</div>
2419
2420		<!-- Top scroll fade -->
2421		<div x-show="!panelAtTop"
2422			class="pointer-events-none absolute top-0 left-0 h-8 z-10"
2423			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
2424		<!-- Bottom scroll fade — hidden when guest join section is visible -->
2425		<div x-show="!panelAtBottom && memberId !== 0"
2426			class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
2427			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
2428
2429				<div x-show="memberId === 0">
2430		<!-- Fade Overlay -->
2431		<div
2432			class="absolute bottom-0 left-0 right-0 h-24 pointer-events-none"
2433			style="background: linear-gradient(to top, var(--color-rwp-widget-bg), var(--color-rwp-widget-bg) 20%, transparent);"
2434			x-data="{ hideJoinSection: false }"
2435			x-on:member-joined.window="hideJoinSection = true"
2436			x-show="!hideJoinSection"
2437		></div>
2438
2439		<!-- Sticky Join Section -->
2440		<div
2441			class="absolute bottom-0 left-0 right-0 bg-white px-6 py-4 border-t border-gray-100"
2442			x-data="{ hideJoinSection: false, isLoggedIn: false }"
2443			x-on:member-joined.window="hideJoinSection = true"
2444			x-show="!hideJoinSection"
2445		>
2446	<div>
2447	<button
2448		type="button"
2449		x-on:click="isLoggedIn ? window.dispatchEvent(new CustomEvent('create-member-direct')) : window.dispatchEvent(new CustomEvent('show-register-form'))"
2450		class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
2450w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
2451		style="--tw-ring-color: var(--rwp-accent);"
2452	>
2453			Join now	</button>
2454		</div>
2455				<div x-show="!isLoggedIn" x-cloak class="mt-3 text-center text-rwp-widget-text">
2456					<p class="text-sm">
2457						Already have an account?						<button
2458							x-on:click="navigateToPanel('main', { resetScroll: true }); $dispatch('show-login-form');"
2459							class="font-medium underline text-rwp-accent cursor-pointer"
2460						>Sign in</button>
2461					</p>
2462				</div>
2463			</div>
2464		</div>
2465					</div>
2466
2467			<div
2468		x-show="currentPanel === 'birthday-picker'"
2469		x-bind:class="'relative h-full flex flex-col ' + (currentPanel === 'birthday-picker' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
2470	>
2471		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 text-rwp-widget-text">
2472
2473			<!-- Success State -->
2474			<div x-show="birthdaySuccess" x-transition class="text-center">
2475				<div class="flex justify-center mb-3">
2476					<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>				</div>
2477				<h3 class="text-lg font-semibold text-rwp-widget-heading mb-1">Birthday set!</h3>
2478				<template x-if="birthdayRewardDate">
2479					<p class="text-sm text-gray-500 mb-6">You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on <span x-text="birthdayRewardDate"></span></p>
2480				</template>
2481				<template x-if="!birthdayRewardDate">
2482					<p class="text-sm text-gray-500 mb-6">You&#039;ll earn bonus points on your special day!</p>
2483				</template>
2484				<button
2485					type="button"
2486					x-on:click="resetBirthdayPicker(); navigateToPanel('ways-to-earn')"
2487					class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
2488				>
2489					Keep earning				</button>
2490			</div>
2491
2492			<!-- Form State -->
2493			<div x-show="!birthdaySuccess">
2494				<div class="text-center mb-4">
2495					<div class="flex justify-center mx-auto mb-3">
2496						<svg class="size-10 text-rwp-widget-icon-text" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2497			<desc>Birthday cake icon</desc>
2498			<path d="M3.08108 11.7027H20.9189C20.9189 11.7027 22.7027 11.7027 22.7027 13.4865V21.2162C22.7027 21.2162 22.7027 23 20.9189 23H3.08108C3.08108 23 1.2973 23 1.2973 21.2162V13.4865C1.2973 13.4865 1.2973 11.7027 3.08108 11.7027Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2499			<path d="M12 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2500			<path d="M13.7838 3.67568C13.7838 4.14876 13.5959 4.60248 13.2613 4.937C12.9268 5.27153 12.4731 5.45946 12 5.45946C11.5269 5.45946 11.0732 5.27153 10.7387 4.937C10.4041 4.60248 10.2162 4.14876 10.2162 3.67568C10.2162 2.68865 12 1 12 1C12 1 13.7838 2.68865 13.7838 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2501			<path d="M19.1351 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2502			<path d="M20.9189 3.67568C20.9189 4.14876 20.731 4.60248 20.3965 4.937C20.0619 5.27153 19.6082 5.45946 19.1351 5.45946C18.662 5.45946 18.2083 5.27153 17.8738 4.937C17.5393 4.60248 17.3514 4.14876 17.3514 3.67568C17.3514 2.68865 19.1351 1 19.1351 1C19.1351 1 20.9189 2.68865 20.9189 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2503			<path d="M4.86486 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2504			<path d="M6.64865 3.67568C6.64865 4.14876 6.46071 4.60248 6.12619 4.937C5.79167 5.27153 5.33795 5.45946 4.86486 5.45946C4.39178 5.45946 3.93806 5.27153 3.60354 4.937C3.26901 4.60248 3.08108 4.14876 3.08108 3.67568C3.08108 2.68865 4.86486 1 4.86486 1C4.86486 1 6.64865 2.68865 6.64865 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2505			<path d="M1.2973 17.0184C1.57132 17.4845 1.96234 17.8709 2.43166 18.1394C2.90097 18.4079 3.43228 18.5492 3.97297 18.5492C4.51367 18.5492 5.04498 18.4079 5.51429 18.1394C5.9836 17.8709 6.37463 17.4845 6.64865 17.0184C6.92267 17.4845 7.3137 17.8709 7.78301 18.1394C8.25232 18.4079 8.78363 18.5492 9.32432 18.5492C9.86502 18.5492 10.3963 18.4079 10.8656 18.1394C11.335 17.8709 11.726 17.4845 12 17.0184C12.274 17.4845 12.665 17.8709 13.1344 18.1394C13.6037 18.4079 14.135 18.5492 14.6757 18.5492C15.2164 18.5492 15.7477 18.4079 16.217 18.1394C16.6863 17.8709 17.0773 17.4845 17.3514 17.0184C17.6254 17.4845 18.0164 17.8709 18.4857 18.1394C18.955 18.4079 19.4863 18.5492 20.027 18.5492C20.5677 18.5492 21.099 18.4079 21.5683 18.1394C22.0377 17.8709 22.4287 17.4845 22.7027 17.0184" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2506			</svg>					</div>
2507					<h3 class="text-lg font-semibold text-rwp-widget-heading mb-3 text-center" x-text="birthdayIsEditing ? 'Update your birthday' : 'When is your birthday?'"></h3>
2508					<p class="text-sm text-gray-500">
2509						<template x-if="birthdayRewardPreview">
2510							<span>You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on <span x-text="birthdayRewardPreview.rewardDate"></span></span>
2511						</template>
2512						<template x-if="!birthdayRewardPreview">
2513							<span>You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on your special day!</span>
2514						</template>
2515					</p>
2516				</div>
2517
2518								<form x-on:submit.prevent="submitBirthday()">
2519					<div class="grid gap-3 mb-4 grid-cols-[1fr_6rem]">
2520												<div class="grid grid-cols-1">
2521							<label for="rwp-birthday-month" class="sr-only">Month</label>
2522							<select
2523								id="rwp-birthday-month"
2524								x-model="birthdayMonth"
2525								x-on:change="if (!birthdayDay) { setTimeout(() => $refs.birthdayDaySelect?.focus(), 300) }"
2526								class="col-start-1 row-start-1 w-full appearance-none bg-white text-base px-3 py-3 pr-8 rounded-lg outline-1 -outline-offset-1 outline-gray-200 focus:outline-2 focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
2527								required
2528							>
2529								<option value="">Month</option>
2530								<option value="1">January</option>
2531								<option value="2">February</option>
2532								<option value="3">March</option>
2533								<option value="4">April</option>
2534								<option value="5">May</option>
2535								<option value="6">June</option>
2536								<option value="7">July</option>
2537								<option value="8">August</option>
2538								<option value="9">September</option>
2539								<option value="10">October</option>
2540								<option value="11">November</option>
2541								<option value="12">December</option>
2542							</select>
2543							<svg class="pointer-events-none col-start-1 row-start-1 mr-3 size-4 self-center justify-self-end text-gray-500" viewB
2543ox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" /></svg>						</div>
2544												<div class="grid grid-cols-1">
2545							<label for="rwp-birthday-day" class="sr-only">Day</label>
2546							<select
2547								id="rwp-birthday-day"
2548								x-model="birthdayDay"
2549								x-ref="birthdayDaySelect"
2550								class="col-start-1 row-start-1 w-full appearance-none bg-white text-base px-3 py-3 pr-8 rounded-lg outline-1 -outline-offset-1 outline-gray-200 focus:outline-2 focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
2551								required
2552							>
2553								<option value="">Day</option>
2554								<template x-for="d in birthdayDaysInMonth" :key="d">
2555									<option :value="d" :selected="String(d) === birthdayDay" x-text="d"></option>
2556								</template>
2557							</select>
2558							<svg class="pointer-events-none col-start-1 row-start-1 mr-3 size-4 self-center justify-self-end text-gray-500" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" /></svg>						</div>
2559											</div>
2560
2561
2562					<!-- Error Message (server validation errors only) -->
2563					<div x-show="birthdayError" x-transition class="mb-4 p-3 bg-red-50 border border-red-200 rounded-lg">
2564						<p class="text-sm text-red-700" x-text="birthdayError"></p>
2565					</div>
2566
2567					<button
2568						type="submit"
2569						x-show="!birthdayIsEditing || birthdayChanged"
2570						x-bind:class="birthdaySubmitting ? 'pointer-events-none' : ''"
2571						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
2572					>
2573						<span
2574							class="[grid-area:stack] transition-opacity duration-200"
2575							x-bind:class="{ 'invisible': birthdaySubmitting, 'visible': !birthdaySubmitting }"
2576							x-text="birthdayIsEditing ? 'Update birthday' : 'Set my birthday'"
2577						></span>
2578						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: birthdaySubmitting !== true, &apos;visible&apos;: birthdaySubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
2579				</form>
2580			</div>
2581
2582		</div>
2583	</div>
2584
2585			<div
2586		x-show="currentPanel === 'ways-to-redeem'"
2587		x-bind:class="'ways-to-redeem-panel relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'ways-to-redeem' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
2588		x-data="{ panelAtTop: true, panelAtBottom: false }"
2589		x-effect="if (currentPanel === 'ways-to-redeem') { const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
2590	>
2591		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-32 text-rwp-widget-text"
2592			@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
2593		>
2594
2595			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Ways to redeem</h2>
2596
2597						<div class="divide-y divide-gray-50" x-data="redeemManager">
2598																<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_1">
2599								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2600									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2601			<desc>
2602				Fixed amount discount icon
2603			</desc>
2604			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2605			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2606			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2607			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2608			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2609			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2610			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2611			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2612			</svg>								</div>
2613							<div class="min-w-0">
2614								<div class="text-sm font-medium text-gray-900">$5 off coupon</div>
2615								<div class="text-xs text-gray-500 mt-1">500 Points</div>
2616
2617									<!-- Success Message -->
2618									<div x-show="redeemStates['fixed_discount_spend_1']?.success" x-transition class="text-sm text-green-600 mt-1">
2619										<div class="flex items-center gap-2">
2620											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2621												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
2622											</svg>
2623											Coupon generated and applied to cart!										</div>
2624									</div>
2625
2626									<!-- Error Message -->
2627									<div x-show="redeemStates['fixed_discount_spend_1']?.error" x-transition class="text-sm text-red-600 mt-1">
2628										<div class="flex items-center gap-2">
2629
2630											<span x-text="redeemStates['fixed_discount_spend_1']?.errorMessage"></span>
2631										</div>
2632									</div>
2633								</div>
2634
2635									<div class="justify-self-end" x-show="memberId" x-cloak >
2636					<button
2637													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$5 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_1', 'fixed_discount_spend_1'); }"
2638							x-bind:disabled="redeemStates['fixed_discount_spend_1']?.redeeming || (userData?.points ?? 0) < 500"
2639																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2640						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2641						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2642												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2643					>
2644							<span
2645								class="[grid-area:stack] transition-opacity duration-200"
2646																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_1']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_1']?.redeeming }"
2647															>Redeem</span>
2648							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2648os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_1&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_1&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
2649					</div>
2650
2651					</div>
2652																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_2">
2653								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2654									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2655			<desc>
2656				Fixed amount discount icon
2657			</desc>
2658			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2659			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2660			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2661			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2662			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2663			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2664			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2665			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2666			</svg>								</div>
2667							<div class="min-w-0">
2668								<div class="text-sm font-medium text-gray-900">$10 off coupon</div>
2669								<div class="text-xs text-gray-500 mt-1">1,000 Points</div>
2670
2671									<!-- Success Message -->
2672									<div x-show="redeemStates['fixed_discount_spend_2']?.success" x-transition class="text-sm text-green-600 mt-1">
2673										<div class="flex items-center gap-2">
2674											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2675												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
2676											</svg>
2677											Coupon generated and applied to cart!										</div>
2678									</div>
2679
2680									<!-- Error Message -->
2681									<div x-show="redeemStates['fixed_discount_spend_2']?.error" x-transition class="text-sm text-red-600 mt-1">
2682										<div class="flex items-center gap-2">
2683
2684											<span x-text="redeemStates['fixed_discount_spend_2']?.errorMessage"></span>
2685										</div>
2686									</div>
2687								</div>
2688
2689									<div class="justify-self-end" x-show="memberId" x-cloak >
2690					<button
2691													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$10 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_2', 'fixed_discount_spend_2'); }"
2692							x-bind:disabled="redeemStates['fixed_discount_spend_2']?.redeeming || (userData?.points ?? 0) < 1000"
2693																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2694						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2695						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2696												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2697					>
2698							<span
2699								class="[grid-area:stack] transition-opacity duration-200"
2700																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_2']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_2']?.redeeming }"
2701															>Redeem</span>
2702							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2702os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_2&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_2&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
2703					</div>
2704
2705					</div>
2706																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_3">
2707								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2708									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2709			<desc>
2710				Fixed amount discount icon
2711			</desc>
2712			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2713			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2714			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2715			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2716			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2717			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2718			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2719			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2720			</svg>								</div>
2721							<div class="min-w-0">
2722								<div class="text-sm font-medium text-gray-900">$20 off coupon</div>
2723								<div class="text-xs text-gray-500 mt-1">2,000 Points</div>
2724
2725									<!-- Success Message -->
2726									<div x-show="redeemStates['fixed_discount_spend_3']?.success" x-transition class="text-sm text-green-600 mt-1">
2727										<div class="flex items-center gap-2">
2728											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2729												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
2730											</svg>
2731											Coupon generated and applied to cart!										</div>
2732									</div>
2733
2734									<!-- Error Message -->
2735									<div x-show="redeemStates['fixed_discount_spend_3']?.error" x-transition class="text-sm text-red-600 mt-1">
2736										<div class="flex items-center gap-2">
2737
2738											<span x-text="redeemStates['fixed_discount_spend_3']?.errorMessage"></span>
2739										</div>
2740									</div>
2741								</div>
2742
2743									<div class="justify-self-end" x-show="memberId" x-cloak >
2744					<button
2745													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$20 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_3', 'fixed_discount_spend_3'); }"
2746							x-bind:disabled="redeemStates['fixed_discount_spend_3']?.redeeming || (userData?.points ?? 0) < 2000"
2747																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2748						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2749						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2750												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2751					>
2752							<span
2753								class="[grid-area:stack] transition-opacity duration-200"
2754																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_3']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_3']?.redeeming }"
2755															>Redeem</span>
2756							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2756os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_3&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_3&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
2757					</div>
2758
2759					</div>
2760																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="percentage_discount_1773471154354_l6qm499m0">
2761								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2762									<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
2763			<desc>
2764				Percentage discount icon
2765			</desc>
2766			<g>
2767				<path d="M23.25 15v3.5a1.5 1.5 0 0 1 -1.5 1.5H2.25a1.5 1.5 0 0 1 -1.5 -1.5V15a3 3 0 0 0 0 -6V5.5A1.5 1.5 0 0 1 2.25 4h19.5a1.5 1.5 0 0 1 1.5 1.5V9a3 3 0 0 0 0 6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2768				<path d="M7.25 9a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2769				<path d="M14.5 15a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2770				<path d="m15.75 8.25 -7.5 7.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
2771			</g>
2772			</svg>								</div>
2773							<div class="min-w-0">
2774								<div class="text-sm font-medium text-gray-900">10% off coupon</div>
2775								<div class="text-xs text-gray-500 mt-1">10,000 Points</div>
2776
2777									<!-- Success Message -->
2778									<div x-show="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.success" x-transition class="text-sm text-green-600 mt-1">
2779										<div class="flex items-center gap-2">
2780											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2781												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
2782											</svg>
2783											Coupon generated and applied to cart!										</div>
2784									</div>
2785
2786									<!-- Error Message -->
2787									<div x-show="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.error" x-transition class="text-sm text-red-600 mt-1">
2788										<div class="flex items-center gap-2">
2789
2790											<span x-text="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.errorMessage"></span>
2791										</div>
2792									</div>
2793								</div>
2794
2795									<div class="justify-self-end" x-show="memberId" x-cloak >
2796					<button
2797													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '10% off coupon'; redeemPointsForCoupon('percentage_discount', 'percentage_discount_1773471154354_l6qm499m0', 'percentage_discount_percentage_discount_1773471154354_l6qm499m0'); }"
2798							x-bind:disabled="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming || (userData?.points ?? 0) < 10000"
2799																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2800						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2801						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2802												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2803					>
2804							<span
2805								class="[grid-area:stack] transition-opacity duration-200"
2806																x-bind:class="{ 'invisible': redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming, 'visible': !redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming }"
2807															>Redeem</span>
2808							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2808os;invisible&apos;: redeemStates[&apos;percentage_discount_percentage_discount_1773471154354_l6qm499m0&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;percentage_discount_percentage_discount_1773471154354_l6qm499m0&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
2809					</div>
2810
2811					</div>
2812																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="free_product_1774022853187_2dkxwkikl">
2813								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
2814									<svg xmlns="http://www.w3.org/2000/svg" class="size-8" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>								</div>
2815							<div class="min-w-0">
2816								<div class="text-sm font-medium text-gray-900">Free Add photos to your MLS listing – Add up to 25 photos to MLS</div>
2817								<div class="text-xs text-gray-500 mt-1">1,000 Points</div>
2818
2819									<!-- Success Message -->
2820									<div x-show="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.success" x-transition class="text-sm text-green-600 mt-1">
2821										<div class="flex items-center gap-2">
2822											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2823												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
2824											</svg>
2825											Coupon generated and applied to cart!										</div>
2826									</div>
2827
2828									<!-- Error Message -->
2829									<div x-show="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.error" x-transition class="text-sm text-red-600 mt-1">
2830										<div class="flex items-center gap-2">
2831
2832											<span x-text="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.errorMessage"></span>
2833										</div>
2834									</div>
2835								</div>
2836
2837									<div class="justify-self-end" x-show="memberId" x-cloak >
2838					<button
2839													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = 'Free Add photos to your MLS listing – Add up to 25 photos to MLS'; redeemPointsForCoupon('free_product', 'free_product_1774022853187_2dkxwkikl', 'free_product_free_product_1774022853187_2dkxwkikl'); }"
2840							x-bind:disabled="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming || (userData?.points ?? 0) < 1000"
2841																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
2842						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
2843						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
2844												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
2845					>
2846							<span
2847								class="[grid-area:stack] transition-opacity duration-200"
2848																x-bind:class="{ 'invisible': redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming, 'visible': !redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming }"
2849															>Redeem</span>
2850							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
2850os;invisible&apos;: redeemStates[&apos;free_product_free_product_1774022853187_2dkxwkikl&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;free_product_free_product_1774022853187_2dkxwkikl&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
2851					</div>
2852
2853					</div>
2854									</div>
2855					</div>
2856
2857		<!-- Top scroll fade -->
2858		<div x-show="!panelAtTop"
2859			class="pointer-events-none absolute top-0 left-0 h-8 z-10"
2860			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
2861		<!-- Bottom scroll fade — hidden when guest join section is visible -->
2862		<div x-show="!panelAtBottom && memberId !== 0"
2863			class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
2864			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
2865
2866				<div x-show="memberId === 0">
2867		<!-- Fade Overlay -->
2868		<div
2869			class="absolute bottom-0 left-0 right-0 h-24 pointer-events-none"
2870			style="background: linear-gradient(to top, var(--color-rwp-widget-bg), var(--color-rwp-widget-bg) 20%, transparent);"
2871			x-data="{ hideJoinSection: false }"
2872			x-on:member-joined.window="hideJoinSection = true"
2873			x-show="!hideJoinSection"
2874		></div>
2875
2876		<!-- Sticky Join Section -->
2877		<div
2878			class="absolute bottom-0 left-0 right-0 bg-white px-6 py-4 border-t border-gray-100"
2879			x-data="{ hideJoinSection: false, isLoggedIn: false }"
2880			x-on:member-joined.window="hideJoinSection = true"
2881			x-show="!hideJoinSection"
2882		>
2883	<div>
2884	<button
2885		type="button"
2886		x-on:click="isLoggedIn ? window.dispatchEvent(new CustomEvent('create-member-direct')) : window.dispatchEvent(new CustomEvent('show-register-form'))"
2887		class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
2888	>
2889			Join now		</button>
2890		</div>
2891				<div x-show="!isLoggedIn" x-cloak class="mt-3 text-center text-rwp-widget-text">
2892					<p class="text-sm text-gray-600">
2893						Already have an account?						<button
2894							x-on:click="navigateToPanel('main', { resetScroll: true }); $dispatch('show-login-form');"
2895							class="font-medium underline text-rwp-accent cursor-pointer"
2896						>Sign in</button>
2897					</p>
2898				</div>
2899			</div>
2900		</div>
2901					</div>
2902
2903
2904
2905				<div
2906			x-show="currentPanel === 'activity'"
2907			x-init="$watch('currentPanel', value => {
2908				if (value === 'activity') {
2909					if (activityItems.length === 0 || needsActivityRefresh) {
2910						if (needsActivityRefresh && activityTab === 'points') {
2911							activityItems = [];
2912							activityPage = 1;
2913							activityHasMore = false;
2914							activityCache = {};
2915						}
2916						loadActivity();
2917						needsActivityRefresh = false;
2918					}
2919				}
2920			})"
2921			x-bind:class="'relative h-full flex flex-col ' + (currentPanel === 'activity' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
2922		>
2923			<div class="shrink-0 px-6 pt-6 text-rwp-widget-text">
2924				<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Activity</h2>
2925				<!-- Segmented Control (hidden when only one tab is available) -->
2926				<div class="relative w-full mb-3" x-show="(pointsEnabled || (!!memberId && userData.points > 0)) && referralsEnabled">
2927					<div class="relative inline-grid items-center justify-center w-full h-10 grid-cols-2 p-1 text-gray-500 bg-gray-100 rounded-xl select-none" role="tablist">
2928						<button
2929							x-ref="activityPointsBtn"
2930							x-show="pointsEnabled || (!!memberId && userData.points > 0)"
2931							x-on:click="switchActivityTab('points')"
2932							type="button"
2933							class="relative z-20 inline-flex items-center justify-center w-full h-8 px-3 text-sm font-medium transition-all rounded-md cursor-pointer whitespace-nowrap focu
2933s-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
2934							x-bind:class="activityTab === 'points' ? 'text-gray-900' : 'text-gray-500'"
2935							role="tab"
2936							x-bind:aria-selected="activityTab === 'points'"
2937						>
2938							Points						</button>
2939						<button
2940							x-ref="activityReferralsBtn"
2941							x-show="referralsEnabled"
2942							x-on:click="switchActivityTab('referrals')"
2943							type="button"
2944							class="relative z-20 inline-flex items-center justify-center w-full h-8 px-3 text-sm font-medium transition-all rounded-md cursor-pointer whitespace-nowrap focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
2945							x-bind:class="activityTab === 'referrals' ? 'text-gray-900' : 'text-gray-500'"
2946							role="tab"
2947							x-bind:aria-selected="activityTab === 'referrals'"
2948						>
2949							Referrals						</button>
2950						<div class="absolute z-10 bg-white rounded-lg shadow-sm left-1 top-1 transition-transform duration-350 ease-[cubic-bezier(0.22,1.3,0.36,1)]" x-bind:style="'width: calc(50% - 4px); height: 32px; transform: translateX(' + ({'points': 0, 'referrals': 100}[activityTab] ?? 0) + '%)'"></div>
2951					</div>
2952				</div>
2953			</div>
2954			<div class="relative flex-1 min-h-0">
2955			<div x-ref="activityScroll" x-on:scroll.passive="syncActivityFade()" class="h-full overflow-y-auto custom-scrollbar px-6 pt-1 pb-6 text-rwp-widget-text">
2956
2957				<!-- Loading State -->
2958				<div x-show="activityLoading" class="flex items-center justify-center py-8">
2959					<div class="animate-spin size-6 border-2 border-gray-200 border-t-gray-600 rounded-full"></div>
2960				</div>
2961
2962				<!-- Activity List -->
2963				<div x-show="!activityLoading">
2964					<!-- Empty State - Points Tab -->
2965					<template x-if="activityItems.length === 0 && !activityLoading && activityTab === 'points'">
2966						<div class="text-center py-8">
2967							<div class="flex justify-center mb-3">
2968								<svg class="size-10 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24">
2969			<desc>
2970				Points activity icon
2971			</desc>
2972			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12 2V1" stroke-width="1.5"></path>
2973			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m12 23 0 -2.7661" stroke-width="1.5"></path>
2974			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M1 12h2.71875" stroke-width="1.5"></path>
2975			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M20.2812 12H23" stroke-width="1.5"></path>
2976			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m6.0625 19.2258 -2.01636 2.0164" stroke-width="1.5"></path>
2977			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m17.9375 5.03979 2.0164 -2.01635" stroke-width="1.5"></path>
2978			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6.0625 5.03979 4.04614 3.02344" stroke-width="1.5"></path>
2979			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m17.9375 18.9602 2.0164 2.0164" stroke-width="1.5"></path>
2980			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m12.4169 4.69626 1.9151 3.82921 3.6838 0.36877c0.0879 0.00861 0.1715 0.04201 0.2412 0.09631 0.0696 0.0543 0.1224 0.12727 0.1522 0.21041 0.0297 0.08314 0.0352 0.17302 0.0159 0.25918 -0.0193 0.08616 -0.0628 0.16505 -0.1252 0.22748L15.264 12.7225l1.1256 4.1238c0.0235 0.0869 0.0214 0.1787 -0.006 0.2644 -0.0275 0.0857 -0.0791 0.1616 -0.1486 0.2187 -0.0696 0.057 -0.1542 0.0928 -0.2436 0.1029 -0.0894 0.0101 -0.1798 -0.0058 -0.2604 -0.0458L12 15.5205l-3.73099 1.8679c-0.08052 0.0402 -0.17096 0.0562 -0.2604 0.0462 -0.08943 -0.0101 -0.17403 -0.0459 -0.24358 -0.103 -0.06955 -0.0571 -0.12107 -0.1332 -0.14833 -0.2189 -0.02727 -0.0858 -0.02911 -0.1776 -0.00531 -0.2644l1.1246 -4.1258 -3.03584 -3.03681c-0.06245 -0.06243 -0.10588 -0.14132 -0.12523 -0.22748 -0.01935 -0.08615 -0.01382 -0.17604 0.01595 -0.25918 0.02976 -0.08313 0.08254 -0.1561 0.15217 -0.21041 0.06964 -0.0543 0.15327 -0.0877 0.24115 -0.09631l3.68382 -0.36876 1.91509 -3.82922c0.0389 -0.07736 0.0985 -0.14238 0.1723 -0.18774 0.0737 -0.04536 0.1586 -0.06929 0.2452 -0.06909 0.0866 0.0002 0.1714 0.02452 0.2449 0.07022 0.0736 0.04571 0.1329 0.11099 0.1714 0.18854Z" stroke-width="1.5"></path>
2981			</svg>							</div>
2982							<h3 class="text-lg font-medium text-gray-900 mb-1" x-text="'No ' + currencyPlural + ' yet'"></h3>
2983							<p class="text-sm text-gray-500 mb-4" x-text="'See all the ways you can earn ' + currencyPlural"></p>
2984							<button
2985								x-on:click="navigateToPanel('ways-to-earn')"
2986								class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-rwp-brand hover:bg-rwp-brand-hover cursor-pointer transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-rwp-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
2987							>
2988								<span x-text="'Earn ' + currencyPlural"></span>
2989							</button>
2990						</div>
2991					</template>
2992
2993					<!-- Empty State - Referrals Tab -->
2994					<template x-if="activityItems.length === 0 && !activityLoading && activityTab === 'referrals'">
2995						<div class="text-center py-8">
2996							<div class="flex justify-center mb-3">
2997								<svg class="size-10 text-gray-400" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
2998			<desc>
2999				Refer a friend icon
3000			</desc>
3001			<path d="m3.132 12.8 0.448 -1.175 -1.046 -2.744a0.929 0.929 0 0 1 0.36 -1.107l2.458 -1.605 0.767 -2.834a0.928 0.928 0 0 1 0.942 -0.684l2.932 0.149L12.279 0.955a0.928 0.928 0 0 1 1.165 0L15.73 2.8l2.932 -0.146a0.928 0.928 0 0 1 0.942 0.684l0.767 2.834 2.458 1.605a0.928 0.928 0 0 1 0.36 1.107l-1.045 2.744 1.045 2.743a0.929 0.929 0 0 1 -0.36 1.108l-2.458 1.6 -0.771 2.835a0.927 0.927 0 0 1 -0.942 0.685l-2.932 -0.146 -2.286 1.841" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
3002			<path d="m0.75 19.769 1.656 2.609" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
3003			<path d="m9.908 8.147 6.294 9.916" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
3004			<path d="M15.871 17.541 2.075 21.857l-0.994 -1.566 9.158 -11.622 5.632 8.872z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
3005			<path d="m5.056 20.924 0.876 1.346a2.041 2.041 0 0 0 2.906 0.614 2.256 2.256 0 0 0 0.587 -3.04l-0.163 -0.236" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
3006			</svg>							</div>
3007							<h3 class="text-lg font-medium text-gray-900 mb-1">No referrals yet</h3>
3008							<p class="text-sm text-gray-500 mb-4">When friends shop using your referral link, you&#039;ll see their activity here</p>
3009							<button
3010								x-on:click="navigateToPanel('main')"
3011								class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-rwp-brand hover:bg-rwp-brand-hover cursor-pointer transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-rwp-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
3012							>
3013								Invite friends							</button>
3014						</div>
3015					</template>
3016
3017					<!-- Referral Summary Row (shown above activity items when referrals tab has data) -->
3018					<div x-show="activityTab === 'referrals' && activityItems.length > 0 && activityStatusCounts" class="flex items-center gap-2 text-sm text-gray-500 pb-2 mb-1">
3019						<span x-text="(activityStatusCounts ? activityStatusCounts.completed : 0) + ' completed'"></span>
3020						<span x-show="activityStatusCounts && !!activityStatusCounts.pending">&middot;</span>
3021						<span x-show="activityStatusCounts && !!activityStatusCounts.pending" x-text="(activityStatusCounts ? activityStatusCounts.pending : 0) + ' pending'"></span>
3022					</div>
3023
3024					<!-- Activity Items -->
3025					<div class="divide-y divide-gray-100">
3026						<template x-for="item in activityItems" x-bind:key="item.id">
3027							<div class="py-3">
3028								<div class="flex items-start justify-between gap-4">
3029									<!-- Left column: Description + Date -->
3030									<div class="flex-1 min-w-0">
3031										<!-- Referrals tab: Separate friend_name (semi-bold) and action_text (normal) -->
3032										<template x-if="activityTab === 'referrals' && item.friend_name">
3033											<p class="text-sm text-gray-900">
3034												<span class="font-semibold" x-text="item.friend_name"></span>
3035												<template x-if="item.action_text">
3036													<span class="font-normal" x-text="' ' + item.action_text"></span>
3037												</template>
3038											</p>
3039										</template>
3040										<!-- Points/other tabs: Primary line: Reward/action name -->
3041										<template x-if="activityTab !== 'referrals' || !item.friend_name">
3042											<p class="text-sm text-gray-900" x-text="item.target || item.action"></p>
3043										</template>
3044										<!-- Small text for order_id (refunds) -->
3045										<template x-if="item.order_id">
3046											<p class="text-xs text-gray-400 mt-0.5" x-text="'#' + item.order_id"></p>
3047										</template>
3048										<!-- Small text for product_name (product reviews) -->
3049										<template x-if="item.product_name">
3050											<p class="text-xs text-gray-400 mt-0.5" x-text="item.product_name"></p>
3051										</template>
3052										<!-- Secondary line: Date (all tabs) -->
3053										<p class="text-xs text-gray-500 mt-0.5" x-text="item.date"></p>
3054									</div>
3055									<!-- Right column: Points value + currency OR Status pill -->
3056									<div class="flex-shrink-0 text-right">
3057										<!-- Points tab: Point value (with inline pending badge) + currency name below -->
3058										<template x-if="activityTab === 'points' && item.points !== undefined">
3059											<div>
3060												<div class="flex items-center justify-end gap-1.5">
3061													<p x-bind:class="item.source_type === 'points_expiration' ? 'text-gray-500' : (item.is_deduction ? 'text-gray-700' : (item.status === 'pending' ? 'text-gray-500' : 'text-emerald-600'))"
3062														class="text-sm font-semibold"
3063														x-text="(item.is_deduction ? '-' : '+') + Math.abs(item.points).toLocaleStr
3063ing()">
3064													</p>
3065													<span x-show="item.status === 'pending'"
3066														class="text-[11px] text-gray-500">
3067														Pending													</span>
3068												</div>
3069												<p class="text-xs text-gray-500 mt-0.5 text-right"
3070													x-text="getCurrencyName(Math.abs(item.points))">
3071												</p>
3072											</div>
3073										</template>
3074										<!-- Referrals/rewards tab: Status badge -->
3075										<template x-if="activityTab !== 'points' && item.status">
3076											<span
3077												x-bind:class="{
3078													'bg-emerald-50 text-emerald-700 border border-emerald-100': item.status === 'completed' || item.status === 'redeemed',
3079													'bg-amber-50 text-amber-700 border border-amber-100': item.status === 'pending',
3080													'bg-gray-50 text-gray-700 border border-gray-200': item.status === 'issued',
3081													'bg-red-50 text-red-700 border border-red-100': item.status === 'blocked' || item.status === 'rejected',
3082													'bg-gray-100 text-gray-600 border border-gray-200': item.status === 'canceled'
3083												}"
3084												class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium mt-0.5"
3085												x-text="({
3086													completed: 'Completed',
3087													redeemed: 'Redeemed',
3088													pending: 'Pending',
3089													issued: 'Issued',
3090													blocked: 'Blocked',
3091													rejected: 'Rejected',
3092													canceled: 'Canceled',
3093													expired: 'Expired'
3094												})[item.status] || (item.status.charAt(0).toUpperCase() + item.status.slice(1))"
3095											></span>
3096										</template>
3097									</div>
3098								</div>
3099							</div>
3100						</template>
3101					</div>
3102
3103					<!-- Load More -->
3104					<div x-show="activityHasMore" class="mt-4 text-center">
3105						<button
3106							x-on:click="loadMoreActivity()"
3107							x-bind:disabled="activityLoadingMore"
3108							class="text-sm text-gray-600 hover:text-gray-900 font-medium cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
3109						>
3110							<span x-show="!activityLoadingMore">Load more</span>
3111							<span x-show="activityLoadingMore" class="inline-flex items-center gap-1.5">
3112								<span class="animate-spin size-3.5 border-2 border-gray-200 border-t-gray-600 rounded-full"></span>
3113								Loading...							</span>
3114						</button>
3115					</div>
3116				</div>
3117			</div>
3118			<!-- Top scroll fade -->
3119			<div
3120				x-show="activityShowTopFade"
3121				class="pointer-events-none absolute top-0 left-0 h-8 z-10"
3122				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"
3123			></div>
3124			<!-- Bottom scroll fade -->
3125			<div
3126				x-show="activityShowFade"
3127				class="pointer-events-none absolute bottom-0 left-0 h-12 rounded-b-2xl"
3128				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"
3129			></div>
3130			</div>
3131		</div>
3132
3133				<div
3134			x-show="currentPanel === 'create-account-prompt'"
3135			x-bind:class="'create-account-prompt-panel relative h-full flex flex-col ' + (currentPanel === 'create-account-prompt' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
3136		>
3137			<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 text-rwp-widget-text">
3138				<!-- Icon and Header -->
3139				<div class="text-center mb-6">
3140
3141					<div class="relative inline-block mb-2">
3142						<!-- Main reward icon -->
3143						<div class="size-10 flex items-center justify-center text-rwp-widget-text/45" x-show="lockedReward" x-html="lockedReward?.iconHtml">
3144							<!-- Icon will be populated by Alpine -->
3145						</div>
3146					</div>
3147					<h2 class="text-2xl font-bold text-rwp-widget-heading mb-3">
3148						<span x-show="lockedReward" x-text="lockedReward?.title"></span>
3149					</h2>
3150					<p class="text-sm text-rwp-widget-text">
3151						Requires an account to redeem					</p>
3152
3153				</div>
3154
3155				<!-- Benefits List -->
3156				<div class="space-y-3 mb-8">
3157					<div class="flex items-start gap-3">
3158						<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>						<div class="flex-1">
3159							<p class="text-sm font-medium text-rwp-widget-heading">
3160								Redeem rewards now							</p>
3161							<p class="text-sm text-rwp-widget-text">
3162								Turn your <span x-text="currencyPlural.toLowerCase()"></span> into discounts and perks							</p>
3163						</div>
3164					</div>
3165					<div class="flex items-start gap-3">
3166						<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>						<div class="flex-1">
3167							<p class="text-sm font-medium text-rwp-widget-heading">
3168								Instant setup							</p>
3169							<p class="text-sm text-rwp-widget-text">
3170								One click and you&#039;re ready to go							</p>
3171						</div>
3172					</div>
3173											<div class="flex items-start gap-3">
3174							<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>							<div class="flex-1">
3175								<p class="text-sm font-medium text-rwp-widget-heading">
3176									Earn even more								</p>
3177								<p class="text-sm text-rwp-widget-text">
3178									Get +25 bonus <span x-text="currencyPlural.toLowerCase()"></span> for signing up								</p>
3179							</div>
3180						</div>
3181									</div>
3182
3183		<!-- Create Account Button -->
3184		<button
3185			type="button"
3186			x-on:click="window.dispatchEvent(new CustomEvent('show-register-form'))"
3187			class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center w-full"
3188		>
3189			Create account to use points		</button>
3190
3191				<!-- Back Link -->
3192				<div class="text-center mt-4">
3193					<button
3194						type="button"
3195						x-on:click="navigateToPanel('ways-to-redeem')"
3196						class="text-sm text-rwp-widget-text hover:text-rwp-widget-text underline cursor-pointer"
3197					>
3198						Back to rewards					</button>
3199				</div>
3200			</div>
3201		</div>
3202
3203		<!-- Redeem Success Panel -->
3204		<div
3205			x-show="currentPanel === 'redeem-success'"
3206			x-bind:class="'redeem-success-panel relative h-full flex flex-col ' + (currentPanel === 'redeem-success' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
3207		>
3208			<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-4 text-rwp-widget-text">
3209				<!-- Success Header -->
3210				<div
3211					class="text-center mb-6"
3212					x-data="{
3213						cartSubtotal: 0,
3214						currencySymbol: '$'
3215					}"
3216				>
3217					<div class="flex justify-center mb-2">
3218						<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>					</div>
3219					<p class="text-base text-gray-600 mt-2">
3220						Redeemed 						<span x-text="redeemSuccessData.points_cost"></span>
3221						<span x-text="' ' + redeemSuccessData.points_label"></span>
3222					</p>
3223					<h2 class="text-2xl font-bold text-gray-900 text-pretty" x-text="redeemSuccessData.title">
3224						<!-- Title populated from Alpine data -->
3225					</h2>
3226					</div>
3227
3228						<template x-if="redeemSuccessData.reward_type !== 'free_product'">
3229				<div class="text-sm text-gray-600 text-center mb-2 px-2">
3230					<p>Use this coupon on your next order</p>
3231				</div>
3232			</template>
3233
3234						<div>
3235								<template x-if="redeemSuccessData.reward_type !== 'free_product'">
3236					<div class="mb-4" x-data="copyHandler()">
3237						<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
3238							<input
3239								type="text"
3240								readonly
3241								x-ref="couponCode"
3242								x-bind:value="redeemSuccessData.couponCode"
3243								x-on:click="handleCopyClick($refs.couponCode, null, false)"
3244								class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
3245							>
3246							<div class="flex">
3247								<button
3248									x-on:click="handleCopyClick($refs.couponCode, $data)"
3249									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
3250									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
3251									x-ref="copyButton">
3252									<div class="relative size-6">
3253										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3254											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
3255											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
3256										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3257											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
3258											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
3259									</div>
3260								</button>
3261							</div>
3262						</div>
3263					</div>
3264				</template>
3265
3266				<!-- Button and messages section -->
3267				<div>
3268
3269				<!-- Cart-aware Button Section -->
3270				<div
3271					x-data="couponUtils( {
3272						nonce: 'f68cf984f4',
3273						buttonText: 'Apply to cart',
3274						rewardId: redeemSuccessData.reward_id || 0,
3275						couponCode: redeemSuccessData.couponCode || '',
3276						isApplied: redeemSuccessData.is_applied || false,
3277						cartItemCount: 0,
3278						cartProductIds: [],
3279						cartSubtotal: 0,
3280						freeProductId: redeemSuccessData.free_product_id || null,
3281						minimumOrderAmount: redeemSuccessData.minimum_order_amount || 0,
3282						integrationSource: 'woocommerce',
3283						checkoutUrl: 'https://jackkeller.com/checkout/',
3284						cartUrl: 'https://jackkeller.com/cart-2/',
3285						storeUrl: 'https://jackkeller.com/pay-now/',
3286						isAdminPreview: false,
3287						isDemo: false,
3288						addToCartText: 'Add to cart',
3289						claimRewardText: 'Claim reward',
3290						applyToCartText: 'Claim free product',
3291						currencySymbol: '$',
3292						pendingRewardId: 0,
3293						dismissedRewardId: 0					} )"
3294					x-on:reset-buttons.window="if ( $event.detail.except !== $el ) isApplied = false;"
3295				>
3296									<template x-if="redeemSuccessData.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount)">
3297						<p class="text-sm font-medium text-gray-500 text-center mb-2">Free product applies automatically.</p>
3298					</template>
3299
3300									<template x-if="redeemSuccessData.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && redeemSuccessData.minimum_order_amount > 0 && cartSubtotal < redeemSuccessData.minimum_order_amount">
3301						<p class="text-sm text-gray-500 text-center text-pretty mb-2" x-text="'Claim now — we\'ll add it to your cart when you spend ' + currencySymbol + redeemSuccessData.minimum_order_amount + ' or more'"></p>
3302					</template>
3303
3304									<button
3305						x-show="!isApplied && !isPending && !productAddedButCouponFailed"
3306						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
3306w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
3307						x-on:click="applyCoupon( redeemSuccessData.couponCode, redeemSuccessData.reward_id )"
3308						x-bind:disabled="isApplying"
3309						x-bind:class="{
3310							'opacity-50 cursor-not-allowed': isApplying,
3311							'hover:bg-rwp-brand-hover': !isApplying
3312						}"
3313					>
3314						<span
3315							class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200"
3316							x-bind:class="{ 'invisible': isApplying, 'visible': !isApplying }"
3317						>
3318							<!-- Dynamic text based on reward type, cart state, minimum spend, and integration -->
3319							<template x-if="redeemSuccessData.reward_type === 'free_product'">
3320								<span x-text="getFreeProductButtonText(redeemSuccessData.free_product_id, redeemSuccessData.minimum_order_amount)"></span>
3321							</template>
3322							<template x-if="redeemSuccessData.reward_type !== 'free_product'">
3323								<span>
3324							<span x-show="isWooCommerce">Apply to cart</span>
3325							<span x-show="!isWooCommerce">Apply coupon</span>
3326								</span>
3327							</template>
3328						</span>
3329							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isApplying !== true, &apos;visible&apos;: isApplying === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
3330
3331					<div x-show="hasErrors" class="text-sm mt-2 text-red-500">An error occurred. Please reload the page and try again.</div>
3332
3333					<!-- Success Message - Show when coupon applied -->
3334					<div x-show="isApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
3335						<template x-if="redeemSuccessData.reward_type === 'free_product'">
3336							<span>Free product added to cart</span>
3337						</template>
3338						<template x-if="redeemSuccessData.reward_type !== 'free_product'">
3339							<span x-text="redeemSuccessData.title + ' applied'"></span>
3340						</template>
3341					</div>
3342
3343										<template x-if="isPending && !productAddedButCouponFailed">
3344						<div class="text-sm w-full">
3345							<!-- Confirmation badge -->
3346							<div class="font-medium inline-flex items-center gap-1 text-emerald-600 text-sm w-full justify-center">
3347								<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
3348									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
3349								</svg>
3350								<span>Reward claimed</span>
3351							</div>
3352
3353							<!-- Explanation text -->
3354							<div class="text-center text-gray-500 px-2 mb-3" x-text="'We\'ll add it to your cart when you spend ' + currencySymbol + redeemSuccessData.minimum_order_amount">
3355							</div>
3356
3357							<!-- Action buttons -->
3358							<div class="space-y-3">
3359								<!-- Primary CTA - Start/Continue Shopping -->
3360								<a
3361									x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3362									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3363									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3364									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3365									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3366									x-text="isCartEmpty ? 'Start shopping' : 'Continue shopping'"
3367								></a>
3368
3369								<!-- Secondary CTA - View Cart (WooCommerce only, when cart has items) -->
3370								<template x-if="isWooCommerce && !isCartEmpty">
3371									<a
3372										x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3373										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3374										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3375										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3376										class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3377									>
3378										View cart									</a>
3379								</template>
3380							</div>
3381						</div>
3382					</template>
3383
3384										<div x-show="productAddedButCouponFailed && !isPending" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
3385						<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
3386							Product added to cart						</div>
3387												<template x-if="remainingToUnlock > 0">
3388							<div class="text-center text-gray-600 px-2" x-text="'Almost there — add ' + '$' + remainingToUnlock + ' more to unlock'"></div>
3389						</template>
3390					</div>
3391
3392					<!-- Buttons when coupon failed but product added (fallback) -->
3393					<template x-if="productAddedButCouponFailed && !isPending">
3394						<div>
3395							<!-- Primary CTA - Continue Shopping -->
3396							<a
3397								x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3398								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3399								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3400								x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
3401								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
3401w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3402							>
3403								Continue shopping							</a>
3404
3405							<!-- Secondary CTA - View Cart (WooCommerce only) -->
3406							<template x-if="isWooCommerce">
3407								<a
3408									x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3409									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3410									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3411									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3412									class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3413								>
3414									View cart								</a>
3415							</template>
3416						</div>
3417					</template>
3418
3419					<!-- Error Message - Show when coupon failed to apply (no product involved) -->
3420					<div x-show="hasErrors && !productAddedButCouponFailed" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-red-600 text-sm w-full justify-center">
3421						<span x-text="errorMessage"></span>
3422					</div>
3423
3424					<!-- Buttons when coupon is applied successfully -->
3425					<template x-if="isApplied && !isCartEmpty">
3426						<div>
3427							<!-- Primary CTA - Go to Checkout -->
3428							<a
3429								x-bind:href="isAdminPreview ? 'javascript:void(0)' : checkoutUrl"
3430								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3431								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3432								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3433								x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
3434							>
3435								Go to checkout							</a>
3436
3437							<!-- Secondary CTA - View Cart (WooCommerce only) -->
3438							<template x-if="isWooCommerce">
3439								<a
3440									x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3441									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3442									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3443									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3444									class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3445								>
3446									View cart								</a>
3447							</template>
3448						</div>
3449					</template>
3450
3451					<!-- Button when coupon is applied but cart is empty -->
3452					<template x-if="isApplied && isCartEmpty">
3453						<div>
3454							<!-- Primary CTA - Shop Now -->
3455							<a
3456								x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3457								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3458								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3459								x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3460								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3461							>
3462								Shop now							</a>
3463							<!-- No secondary button when cart is empty -->
3464						</div>
3465					</template>
3466
3467				<!-- Coupon Terms (below buttons) - show only expiry when applied or ready (minimum met). -->
3468				<template x-if="redeemSuccessData.coupon_terms">
3469					<div class="mt-2 text-center">
3470						<span class="text-sm text-gray-500" x-text="(isApplied || (redeemSuccessData.reward_type === 'free_product' && !isPending && (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount))) && redeemSuccessData.expiry_text ? redeemSuccessData.expiry_text : redeemSuccessData.coupon_terms"></span>
3471					</div>
3472				</template>
3473				</div>
3474				</div>
3475
3476			</div>
3477
3478			</div>
3479
3480						<div
3481				x-data="{
3482					couponFailed: false,
3483					showCode: false,
3484					isCheckmark: false,
3485					isPending: false,
3486					isApplied: false,
3487					cartSubtotal: 0,
3488					minimumOrderAmount: 0,
3489					pendingRewardId: 0,
3490					...copyHandler()
3491				}"
3492				x-init="
3493					minimumOrderAmount = redeemSuccessData.minimum_order_amount || 0;
3494					isPending = pendingRewardId > 0 && pendingRewardId === parseInt(redeemSuccessData.reward_id || 0, 10);
3495					window.addEventListener('free-product-coupon-failed', () => { couponFailed = true; });
3496					window.addEventListener('show-redeem-success', () => { couponFailed = false; isPending = false; isApplied = false; });
3497					window.addEventListener('reward-set-pending', () => { isPending = true; });
3498					window.addEventListener('reward-auto-applied', () => { isPending = false; isApplied = true; });
3499					window.addEventListener('coupon-applied', () => { isApplied = true; });
3500				"
3501				x-show="redeemSuccessData.reward_type === 'free_product' && !isApplied && (isPending || (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount))"
3502				x-cloak
3503				class="px-6 text-center bg-gray-50 border-t border-gray-100 flex flex-col-reverse items-center"
3504			>
3505					<button
3506						x-on:click="if (!showCode) { showCode = true; $nextTick(() => { handleCopyClick($refs.couponCode, $data); }); } else { showCode = false; }"
3507						class="text-sm text-gray-500 hover:text-gray-600 underline underline-offset-2 cursor-pointer bg-transparent border-0 my-4"
3508						x-text="showCode ? 'Hide code' : 'Use a code at checkout'"
3509					></button>
3510
3511					<!-- Collapsible code section -->
3512					<div x-show="showCode" x-collapse x-cloak class="w-full">
3513						<div class="pt-4">
3514						<div class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
3515							<input
3516								type="text"
3517								readonly
3518								x-ref="couponCode"
3519								x-bind:value="redeemSuccessData.couponCode"
3520								x-on:click="handleCopyClick($refs.couponCode, null, false)"
3521								class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
3522							>
3523							<div class="flex">
3524								<button
3525									x-on:click="handleCopyClick($refs.couponCode, $data)"
3526									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
3527									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
3528									x-ref="copyButton">
3529									<div class="relative size-6">
3530										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3531											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
3532											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
3533										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3534											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
3535											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
3536									</div>
3537								</button>
3538							</div>
3539						</div>
3540						</div>
3541					</div>
3542				</div>
3543			</div>
3544		</div>
3545
3546
3547				<div
3548			x-show="currentPanel === 'your-rewards'"
3549			x-bind:class="'relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'your-rewards' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
3550			x-data="{ panelAtTop: true, panelAtBottom: false }"
3551						x-effect="if (currentPanel === 'your-rewards') { void availableRewards?.length; const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
3552		>
3553			<div class="flex-1 overflow-y-auto custom-scrollbar px-0 py-6"
3554				@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
3555			>
3556
3557			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3 px-6">Your rewards</h2>
3558
3559			<div class="px-3">
3560				<template x-if="availableRewards && availableRewards.length > 0">
3561					<template x-for="reward in availableRewards" x-bind:key="reward.id">
3562						<div>
3563							<button
3564								x-on:click="navigateToPanel('reward-detail-' + reward.id)"
3565								class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 !px-3"
3566									>
3567							<div class="flex items-center gap-4">
3568								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text" x-html="reward.icon_html">
3569									<!-- Icon will be populated from server -->
3570								</div>
3571								<div class="flex-1">
3572									<div class="font-medium text-rwp-widget-heading text-sm" x-text="reward.title"></div>
3573									<div class="text-xs text-gray-500">
3574										<template x-if="reward.is_out_of_stock">
3575											<span class="text-amber-600">Out of stock</span>
3576										</template>
3577										<template x-if="!reward.is_out_of_stock && reward.points_cost > 0">
3578											<span x-text="'Redeemed ' + reward.points_cost + ' ' + reward.points_label"></span>
3579										</template>
3580										<template x-if="!reward.is_out_of_stock && reward.points_cost === 0">
3581											<span>From referral</span>
3582										</template>
3583									</div>
3584								</div>
3585							</div>
3586										<svg class="size-5 text-gray-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5">
3587											<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" />
3588								</svg>
3589								</button>
3590							</div>
3591						</template>
3592				</template>
3593
3594				<!-- Empty state when no rewards -->
3595					<template x-if="!availableRewards || availableRewards.length === 0">
3596						<div class="text-center py-8">
3597							<div class="flex justify-center mb-3">
3598								<svg class="size-10 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
3598s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>							</div>
3599							<h3 class="text-lg font-medium text-gray-900 mb-1">No rewards yet</h3>
3600							<p class="text-sm text-gray-500 mb-5">Start earning to unlock your first reward</p>
3601							<div class="flex justify-center">
3602								<button
3603									x-on:click="navigateToPanel('ways-to-earn')"
3604									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 flex items-center justify-center hover:bg-rwp-button-hover"
3605								>
3606									Earn Points								</button>
3607							</div>
3608						</div>
3609					</template>
3610				</div>
3611			</div>
3612
3613			<!-- Top scroll fade -->
3614			<div x-show="!panelAtTop"
3615				class="pointer-events-none absolute top-0 left-0 h-8 z-10"
3616				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
3617			<!-- Bottom scroll fade -->
3618			<div x-show="!panelAtBottom"
3619				class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
3620				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
3621		</div>
3622
3623				<template x-for="reward in availableRewards" x-bind:key="'detail-' + reward.id">
3624			<div
3625				x-show="currentPanel === 'reward-detail-' + reward.id"
3626				x-bind:class="'reward-detail-panel relative h-full flex flex-col ' + (currentPanel === 'reward-detail-' + reward.id ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
3627			>
3628
3629
3630
3631
3632				<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-6 text-rwp-widget-text">
3633					<!-- Icon and Title (Centered like friend claim) -->
3634					<div
3635						class="text-center mb-6"
3636						x-data="{
3637							cartSubtotal: 0,
3638							currencySymbol: '$'
3639						}"
3640					>
3641						<div class="flex justify-center mx-auto mb-2 [&>svg]:size-10" x-html="reward.icon_html">
3642							<!-- Icon will be populated from server -->
3643						</div>
3644						<h2 class="text-2xl font-bold text-gray-900 text-pretty" x-text="reward.title"></h2>
3645					</div>
3646
3647										<template x-if="reward.reward_type !== 'free_product'">
3648						<p class="text-sm text-gray-600 text-center mb-2" x-text="reward.description"></p>
3649					</template>
3650
3651			<!-- Coupon Code Display with Copy Functionality -->
3652			<template x-if="reward.coupon_code && reward.coupon_code !== ''">
3653					<div>
3654												<template x-if="reward.reward_type !== 'free_product'">
3655							<div class="mb-4" x-data="copyHandler()">
3656								<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
3657									<input
3658										type="text"
3659										readonly
3660										x-ref="couponCode"
3661										x-bind:value="reward.coupon_code"
3662										x-on:click="handleCopyClick($refs.couponCode, null, false)"
3663										class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
3664									>
3665									<div class="flex">
3666										<button
3667											x-on:click="handleCopyClick($refs.couponCode, $data)"
3668											class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
3669											x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
3670											x-ref="copyButton">
3671											<div class="relative size-6">
3672												<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3673													x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
3674													<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path>
3674<path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>												</div>
3675												<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3676													x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
3677													<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>												</div>
3678											</div>
3679										</button>
3680									</div>
3681								</div>
3682							</div>
3683						</template>
3684
3685						<!-- Button and messages section -->
3686						<div>
3687
3688					<!-- Out of Stock Notice -->
3689					<template x-if="reward.is_out_of_stock">
3690						<div class="text-center mb-4 p-4 bg-amber-50 rounded-lg">
3691							<p class="text-sm text-amber-700 font-medium">
3692								This product is currently out of stock							</p>
3693							<p class="text-xs text-amber-600 mt-1">
3694								Your reward will remain available when the product is back in stock.							</p>
3695						</div>
3696					</template>
3697
3698					<!-- Cart-aware Button Section -->
3699					<div
3700						x-data="couponUtils( {
3701							nonce: 'f68cf984f4',
3702							buttonText: 'Apply to cart',
3703							rewardId: reward.id,
3704							couponCode: reward.coupon_code || '',
3705							appliedButtonText: 'Coupon applied',
3706							isApplied: reward.is_applied || false,
3707							isOutOfStock: reward.is_out_of_stock || false,
3708							cartItemCount: 0,
3709							cartProductIds: [],
3710							cartSubtotal: 0,
3711							freeProductId: reward.free_product_id || null,
3712							minimumOrderAmount: reward.minimum_order_amount || 0,
3713							integrationSource: 'woocommerce',
3714							checkoutUrl: 'https://jackkeller.com/checkout/',
3715							cartUrl: 'https://jackkeller.com/cart-2/',
3716							storeUrl: 'https://jackkeller.com/pay-now/',
3717							isAdminPreview: false,
3718							isDemo: false,
3719							addToCartText: 'Add to cart',
3720							claimRewardText: 'Claim reward',
3721							applyToCartText: 'Claim free product',
3722							currencySymbol: '$',
3723							pendingRewardId: 0,
3724							dismissedRewardId: 0						} )"
3725						x-on:reset-buttons.window="if ( $event.detail.except !== $el ) isApplied = false;"
3726					>
3727												<template x-if="reward.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount)">
3728							<p class="text-sm font-medium text-gray-500 text-center mb-2">Free product applies automatically.</p>
3729						</template>
3730
3731											<template x-if="reward.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && reward.minimum_order_amount > 0 && cartSubtotal < reward.minimum_order_amount">
3732							<p class="text-sm text-gray-500 text-center text-pretty mb-2" x-text="'Claim now — we\'ll add it to your cart when you spend ' + currencySymbol + reward.minimum_order_amount + ' or more'"></p>
3733						</template>
3734
3735											<button
3736							x-show="!isApplied && !isPending && !isOutOfStock && !productAddedButCouponFailed"
3737							class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
3738							x-on:click="applyCoupon( reward.coupon_code )"
3739							x-bind:disabled="isApplying"
3740							x-bind:class="{
3741								'opacity-50 cursor-not-allowed': isApplying,
3742								'hover:bg-rwp-brand-hover': !isApplying
3743							}"
3744						>
3745							<span
3746								class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200"
3747								x-bind:class="{ 'invisible': isApplying, 'visible': !isApplying }"
3748							>
3749								<!-- Dynamic text based on reward type, cart state, minimum spend, and integration -->
3750								<template x-if="reward.reward_type === 'free_product'">
3751									<span x-text="getFreeProductButtonText(reward.free_product_id, reward.minimum_order_amount)"></span>
3752								</template>
3753								<template x-if="reward.reward_type !== 'free_product'">
3754									<span>
3755								<span x-show="isWooCommerce">Apply to cart</span>
3756								<span x-show="!isWooCommerce">Apply coupon</span>
3757									</span>
3758								</template>
3759							</span>
3760							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
3760os;invisible&apos;: isApplying !== true, &apos;visible&apos;: isApplying === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
3761
3762						<div x-show="hasErrors" class="text-sm mt-2 text-red-500">An error occurred. Please reload the page and try again.</div>
3763
3764						<!-- Success Message - Show when coupon applied -->
3765						<div x-show="isApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
3766							<template x-if="reward.reward_type === 'free_product'">
3767								<span>Free product added to cart</span>
3768							</template>
3769							<template x-if="reward.reward_type !== 'free_product'">
3770								<span x-text="reward.title + ' applied'"></span>
3771							</template>
3772						</div>
3773
3774												<template x-if="isPending && !productAddedButCouponFailed">
3775							<div class="text-sm w-full">
3776								<!-- Confirmation badge -->
3777								<div class="font-medium inline-flex items-center gap-1 text-emerald-600 text-sm w-full justify-center">
3778									<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
3779										<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
3780									</svg>
3781									<span>Reward claimed</span>
3782								</div>
3783
3784								<!-- Explanation text -->
3785								<div class="text-center text-gray-500 px-2 mb-3" x-text="'We\'ll add it to your cart when you spend ' + currencySymbol + reward.minimum_order_amount">
3786								</div>
3787
3788								<!-- Action buttons -->
3789								<div class="space-y-3">
3790									<!-- Primary CTA - Start/Continue Shopping -->
3791									<a
3792										x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3793										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3794										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3795										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3796										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3797										x-text="isCartEmpty ? 'Start shopping' : 'Continue shopping'"
3798									></a>
3799
3800									<!-- Secondary CTA - View Cart (WooCommerce only, when cart has items) -->
3801									<template x-if="isWooCommerce && !isCartEmpty">
3802										<a
3803											x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3804											x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3805											x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3806											x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3807											class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3808										>
3809											View cart										</a>
3810									</template>
3811								</div>
3812							</div>
3813						</template>
3814
3815						<!-- Partial Success Message - Product added but coupon failed (fallback for edge cases) -->
3816						<div x-show="productAddedButCouponFailed && !isPending" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
3817							<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
3818								Product added to cart							</div>
3819														<template x-if="remainingToUnlock > 0">
3820								<div class="text-center text-gray-600 px-2" x-text="'Almost there — add ' + '$' + remainingToUnlock + ' more to unlock'"></div>
3821							</template>
3822						</div>
3823
3824						<!-- Buttons when coupon failed but product added (fallback) -->
3825						<template x-if="productAddedButCouponFailed && !isPending">
3826							<div>
3827								<!-- Primary CTA - Continue Shopping -->
3828								<a
3829									x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3830									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3831									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3832									x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
3833									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
3833w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3834								>
3835									Continue shopping								</a>
3836
3837								<!-- Secondary CTA - View Cart (WooCommerce only) -->
3838								<template x-if="isWooCommerce">
3839									<a
3840										x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3841										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3842										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3843										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3844										class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3845									>
3846										View cart									</a>
3847								</template>
3848							</div>
3849						</template>
3850
3851						<!-- Error Message - Show when coupon failed to apply (no product involved) -->
3852						<div x-show="hasErrors && !productAddedButCouponFailed && !isPending" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-red-600 text-sm w-full justify-center">
3853							<span x-text="errorMessage"></span>
3854						</div>
3855
3856							<!-- Buttons when coupon is applied successfully -->
3857							<template x-if="isApplied && !isCartEmpty">
3858								<div>
3859									<!-- Primary CTA - Go to Checkout -->
3860									<a
3861										x-bind:href="isAdminPreview ? 'javascript:void(0)' : checkoutUrl"
3862										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3863										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3864										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3865										x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
3866									>
3867										Go to checkout									</a>
3868
3869									<!-- Secondary CTA - View Cart (WooCommerce only) -->
3870									<template x-if="isWooCommerce">
3871										<a
3872											x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
3873											x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3874											x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3875											x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3876											class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
3877										>
3878											View cart										</a>
3879									</template>
3880								</div>
3881							</template>
3882
3883							<!-- Button when coupon is applied but cart is empty -->
3884							<template x-if="isApplied && isCartEmpty">
3885								<div>
3886									<!-- Primary CTA - Shop Now -->
3887									<a
3888										x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
3889										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
3890										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
3891										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
3892										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
3893									>
3894										Shop now									</a>
3895									<!-- No secondary button when cart is empty -->
3896								</div>
3897							</template>
3898
3899						<!-- Coupon Terms (below buttons) - show only expiry when applied or ready (minimum met). -->
3900						<template x-if="reward.coupon_terms">
3901							<div class="mt-2 text-center">
3902								<span class="text-sm text-gray-500" x-text="(isApplied || (reward.reward_type === 'free_product' && !isPending && (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount))) && reward.expiry_text ? reward.expiry_text : reward.coupon_terms"></span>
3903							</div>
3904						</template>
3905						</div>
3906						</div>
3907
3908					</div>
3909					</template>
3910
3911					<!-- Back to Your Rewards Button -->
3912
3913
3914
3915				</div>
3916
3917								<div
3918					x-data="{
3919						couponFailed: false,
3920						showCode: false,
3921						isCheckmark: false,
3922						isPending: false,
3923						isApplied: false,
3924						cartSubtotal: 0,
3925						minimumOrderAmount: 0,
3926						pendingRewardId: 0,
3927						...copyHandler()
3928					}"
3929					x-init="
3930						minimumOrderAmount = reward.minimum_order_amount || 0;
3931						isApplied = reward.is_applied || false;
3932						isPending = pendingRewardId > 0 && pendingRewardId === parseInt(reward.id || 0, 10);
3933						window.addEventListener('free-product-coupon-failed', () => { couponFailed = true; });
3934						window.addEventListener('show-redeem-success', () => { couponFailed = false; isPending = false; });
3935						window.addEventListener('reward-set-pending', () => { isPending = true; });
3936						window.addEventListener('reward-auto-applied', () => { isPending = false; isApplied = true; });
3937						window.addEventListener('coupon-applied', () => { isApplied = true; });
3938					"
3939					x-show="reward.reward_type === 'free_product' && !isApplied && (isPending || (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount))"
3940					x-cloak
3941					class="px-6 text-center bg-gray-50 border-t border-gray-100 flex flex-col-reverse items-center"
3942				>
3943					<button
3944						x-on:click="if (!showCode) { showCode = true; $nextTick(() => { handleCopyClick($refs.couponCode, $data); }); } else { showCode = false; }"
3945							class="text-sm text-gray-400 hover:text-gray-600 underline underline-offset-2 cursor-pointer bg-transparent border-0 my-4"
3946							x-text="showCode ? 'Hide code' : 'Use a code at checkout'"
3947						></button>
3948
3949						<!-- Collapsible code section -->
3950						<div x-show="showCode" x-collapse x-cloak class="w-full">
3951							<div class="pt-4">
3952							<div class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
3953								<input
3954									type="text"
3955									readonly
3956									x-ref="couponCode"
3957									x-bind:value="reward.coupon_code"
3958									x-on:click="handleCopyClick($refs.couponCode, null, false)"
3959									class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
3960								>
3961								<div class="flex">
3962									<button
3963										x-on:click="handleCopyClick($refs.couponCode, $data)"
3964										class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
3965										x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
3966										x-ref="copyButton">
3967										<div class="relative size-6">
3968											<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3969												x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
3970												<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>											</div>
3971											<div class="absolute inset-0 transition-all duration-300 ease-in-out"
3972												x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
3973												<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>											</div>
3974										</div>
3975									</button>
3976								</div>
3977							</div>
3978							</div>
3979						</div>
3980					</div>
3981				</div>
3982			</div>
3983		</template>
3984
3985					</div>
3986
3987						<div x-show="currentPanel === 'main'"
3988				x-bind:class="isScrolledToBottom ? 'opacity-0' : 'opacity-100'"
3989				class="sticky bottom-0 h-8 -mt-8 shrink-0 pointer-events-none z-40 transition-opacity duration-200"
3990				style="margin-right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
3991
3992		</div>
3993
3994					</div>
3995		</template>
3996
3997				<template x-if="!isMobile">
3998			<div
3999				id="rwp-rewards-panel"
4000				x-ref="rewardsPanel"
4001				x-bind:hidden="!open"
4002				class="rwp-desktop-panel rwp-desktop-panel--scale z-[var(--rwp-z-panel)] bg-rwp-widget-bg rounded-xl overflow-hidden"
4003				x-bind:data-panel-state="isFriendClaimMode ? 'friend-claim' : 'combined'"
4004				data-highlight="panel-bg"
4005				role="dialog"
4006				aria-labelledby="rewards-title"
4007			>
4008				
4009
4010
4011
4012
4013
4014		
4015
4016
4017
4018				<button
4019			x-show="!isFriendClaimMode"
4020			x-on:click="open = false"
4021			x-bind:class="'group p-2 rounded transition-colors cursor-pointer z-[var(--rwp-z-close-button)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 ' + (isFriendClaimMode ? 'text-gray-500 hover:text-gray-700' : 'text-rwp-widget-header-text') + ' ' + (isMobile ? 'fixed' : 'absolute top-[12px] right-[12px]')"
4022			x-bind:style="isMobile ? 'top: calc(env(safe-area-inset-top) + 12px); right: calc(env(safe-area-inset-right) + 12px);' : ''"
4023			aria-label="Close"
4024		>
4025			<div x-bind:class="'p-1 rounded transition-colors ' + (isFriendClaimMode ? 'group-hover:bg-gray-100' : 'group-hover:bg-white/10')">
4026				<div class="size-5 flex items-center justify-center">
4027					<svg class="size-5" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>X (close) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>				</div>
4028			</div>
4029		</button>
4030
4031				<div
4032			x-bind:hidden="!(currentPanel === 'main' && showFixedHeader && !isFriendClaimMode)"
4033			x-bind:class="'rwp-fixed-header absolute top-0 left-0 right-0 z-50 bg-rwp-brand text-rwp-widget-header-text flex items-center justify-between ' + (isMobile ? '' : 'px-5 h-16')"
4034			x-bind:style="isMobile ? 'padding-left: calc(env(safe-area-inset-left) + 20px); padding-right: calc(env(safe-area-inset-right) + 20px); padding-top: env(safe-area-inset-top); min-height: 64px;' : ''"
4035			data-highlight="header-bg"
4036		>
4037					<div class="flex items-center gap-3 flex-1 min-w-0">
4038						<button x-show="currentPanel !== &apos;main&apos;" x-on:click="
4039					currentPanel === &apos;redeem-success&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
4040					currentPanel === &apos;create-account-prompt&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
4041					currentPanel.startsWith(&apos;reward-detail-&apos;) ? navigateToPanel(&apos;your-rewards&apos;) :
4042					currentPanel === &apos;birthday-picker&apos; ? navigateToPanel(&apos;ways-to-earn&apos;) :
4043					navigateToPanel(&apos;main&apos;)
4044				" class="group p-2 rounded transition-colors cursor-pointer -ml-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" aria-label="Back">
4045				<div class="p-1 rounded transition-colors group-hover:bg-white/10">
4046					<div class="size-5 flex items-center justify-center">
4047						<svg class="size-7" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron left icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" /></svg>					</div>
4048				</div>
4049			</button>
4050			<div>
4051				<div class="font-semibold text-base">
4052					<!-- Points balance (shown on all panels when points program is active) -->
4053					<span x-show="showPoints &amp;&amp; !!memberId"><span x-text="userData.points.toLocaleString()"></span> <span x-text="(userData.points == 1 ? currencySingular : currencyPlural)"></span></span>
4054					<!-- Referral count (shown on all panels when ONLY referrals program is active) -->
4055					<span x-show="showReferrals &amp;&amp; !showPoints &amp;&amp; !!memberId" x-text="friendsReferred === 0 ? &apos;No friends referred yet&apos;
4055 : (friendsReferred === 1 ? &apos;1 friend referred&apos; : friendsReferred + &apos; friends referred&apos;)">
4056					</span>
4057					<!-- Fallback: Activity label when no member or no programs -->
4058					<span x-show="!memberId &amp;&amp; currentPanel === &apos;activity&apos;">Activity</span>
4059				</div>
4060				<div class="text-sm">
4061					<span x-show="!isFriendClaimMode" x-text="programName"></span>
4062				</div>
4063			</div>
4064		</div>
4065				</div>
4066
4067				<div
4068			x-show="currentPanel !== 'main' && !isFriendClaimMode"
4069			x-bind:class="'absolute top-0 left-0 right-0 z-50 bg-rwp-brand text-rwp-widget-header-text flex items-center justify-between ' + (isMobile ? '' : 'px-5 h-16')"
4070			x-bind:style="isMobile ? 'padding-left: calc(env(safe-area-inset-left) + 20px); padding-right: calc(env(safe-area-inset-right) + 20px); padding-top: env(safe-area-inset-top); min-height: 64px;' : ''"
4071			data-highlight="header-bg"
4072		>
4073					<div class="flex items-center gap-3 flex-1 min-w-0">
4074						<button x-show="currentPanel !== &apos;main&apos;" x-on:click="
4075					currentPanel === &apos;redeem-success&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
4076					currentPanel === &apos;create-account-prompt&apos; ? navigateToPanel(&apos;ways-to-redeem&apos;) :
4077					currentPanel.startsWith(&apos;reward-detail-&apos;) ? navigateToPanel(&apos;your-rewards&apos;) :
4078					currentPanel === &apos;birthday-picker&apos; ? navigateToPanel(&apos;ways-to-earn&apos;) :
4079					navigateToPanel(&apos;main&apos;)
4080				" class="group p-2 rounded transition-colors cursor-pointer -ml-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" aria-label="Back">
4081				<div class="p-1 rounded transition-colors group-hover:bg-white/10">
4082					<div class="size-5 flex items-center justify-center">
4083						<svg class="size-7" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron left icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5 8.25 12l7.5-7.5" /></svg>					</div>
4084				</div>
4085			</button>
4086			<div>
4087				<div class="font-semibold text-base">
4088					<!-- Points balance (shown on all panels when points program is active) -->
4089					<span x-show="showPoints &amp;&amp; !!memberId"><span x-text="userData.points.toLocaleString()"></span> <span x-text="(userData.points == 1 ? currencySingular : currencyPlural)"></span></span>
4090					<!-- Referral count (shown on all panels when ONLY referrals program is active) -->
4091					<span x-show="showReferrals &amp;&amp; !showPoints &amp;&amp; !!memberId" x-text="friendsReferred === 0 ? &apos;No friends referred yet&apos; : (friendsReferred === 1 ? &apos;1 friend referred&apos; : friendsReferred + &apos; friends referred&apos;)">
4092					</span>
4093					<!-- Fallback: Activity label when no member or no programs -->
4094					<span x-show="!memberId &amp;&amp; currentPanel === &apos;activity&apos;">Activity</span>
4095				</div>
4096				<div class="text-sm">
4097					<span x-show="!isFriendClaimMode" x-text="programName"></span>
4098				</div>
4099			</div>
4100		</div>
4101				</div>
4102
4103
4104				<template x-if="currentPanel === 'main' && !isFriendClaimMode">
4105			<div
4106				x-bind:class="'absolute top-0 left-0 w-full -z-10 bg-cover bg-center ' + (!(backgroundImage.enabled && backgroundImage.url && isProFeatureAccessible('pro')) ? ' bg-rwp-brand' : '')"
4107				x-bind:style="
4108				'transform: translate3d(0px, ' + getParallaxOffset(scrollTop) + 'px, 0px); ' +
4109				(backgroundImage.enabled && backgroundImage.url && isProFeatureAccessible('pro') ? 'background-image: url(' + backgroundImage.url + ');' : '') +
4110				'' +
4111				'height: ' + dynamicBackgroundHeight + 'px;'"
4112			>
4113			</div>
4114		</template>
4115
4116
4117
4118		
4119
4120		<div
4121			x-bind:class="'relative w-full h-full flex flex-col panel-container flex-1' + (currentPanel === 'main' ? ' overflow-y-auto overflow-x-hidden custom-scrollbar' : '')"
4122			@scroll="handleScroll($event)"
4123			x-ref="scrollContainer"
4124		>
4125
4126
4127						<div
4128				x-show="currentPanel === 'main' && !isFriendClaimMode"
4129				class="panel-expanded-header text-rwp-widget-header-text bg-cover bg-center relative"
4130			>
4131				<div class="banner-content px-5 pb-6 pt-16 h-full flex flex-col justify-end relative"
4132					x-ref="bannerContent"
4133					x-bind:style="'opacity: ' + getTextOpacity(scrollTop)"
4134				>
4135					<div class="relative z-10">
4136						<div x-show="memberId > 0">
4137														<template x-if="showPoints">
4138								<div>
4139									<div class="text-base" x-text="yourLabel + ' ' + (userData.points == 1 ? currencySingular : currencyPlural)"></div>
4140									<div class="font-bold text-4xl mb-1" x-text="userData.points.toLocaleStr
4140ing()"></div>
4141								</div>
4142							</template>
4143
4144														<template x-if="showReferrals && !showPoints">
4145								<div>
4146									<div class="text-base">Share &amp; Earn with</div>
4147									<div class="font-semibold text-3xl" x-text="programName"></div>
4148								</div>
4149							</template>
4150						</div>
4151
4152												<div x-show="memberId === 0">
4153							<div class="text-base">
4154								<span x-show="!isFriendClaimMode" x-text="welcomeGreeting"></span>
4155							</div>
4156							<div class="font-semibold text-3xl">
4157								<span x-show="!isFriendClaimMode" x-text="programName"></span>
4158							</div>
4159						</div>
4160					</div>
4161				</div>
4162			</div>
4163
4164
4165
4166						<div
4167				class="flex-1"
4168				x-bind:style="'height: 100%;' + (currentPanel !== 'main' ? ' padding-top: 64px;' : ' padding-top: 0;')"
4169				x-ref="contentArea"
4170			>
4171				
4172
4173	<div
4174		x-show="!isFriendClaimMode && currentPanel === 'main'"
4175		x-bind:class="'px-4 pb-10 flex flex-col gap-4 ' + (currentPanel === 'main' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
4176	>
4177
4178		<!-- Birthday banner (shows all day on member's birthday) -->
4179		<div
4180			x-show="birthdayBanner && memberId > 0"
4181			data-birthday-banner
4182			class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card px-5"
4183		>
4184			<div class="flex items-center gap-3">
4185				<div class="flex-shrink-0">
4186					<svg class="size-8 text-rwp-widget-icon-text" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
4187			<desc>Birthday cake icon</desc>
4188			<path d="M3.08108 11.7027H20.9189C20.9189 11.7027 22.7027 11.7027 22.7027 13.4865V21.2162C22.7027 21.2162 22.7027 23 20.9189 23H3.08108C3.08108 23 1.2973 23 1.2973 21.2162V13.4865C1.2973 13.4865 1.2973 11.7027 3.08108 11.7027Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4189			<path d="M12 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4190			<path d="M13.7838 3.67568C13.7838 4.14876 13.5959 4.60248 13.2613 4.937C12.9268 5.27153 12.4731 5.45946 12 5.45946C11.5269 5.45946 11.0732 5.27153 10.7387 4.937C10.4041 4.60248 10.2162 4.14876 10.2162 3.67568C10.2162 2.68865 12 1 12 1C12 1 13.7838 2.68865 13.7838 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4191			<path d="M19.1351 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4192			<path d="M20.9189 3.67568C20.9189 4.14876 20.731 4.60248 20.3965 4.937C20.0619 5.27153 19.6082 5.45946 19.1351 5.45946C18.662 5.45946 18.2083 5.27153 17.8738 4.937C17.5393 4.60248 17.3514 4.14876 17.3514 3.67568C17.3514 2.68865 19.1351 1 19.1351 1C19.1351 1 20.9189 2.68865 20.9189 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4193			<path d="M4.86486 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4194			<path d="M6.64865 3.67568C6.64865 4.14876 6.46071 4.60248 6.12619 4.937C5.79167 5.27153 5.33795 5.45946 4.86486 5.45946C4.39178 5.45946 3.93806 5.27153 3.60354 4.937C3.26901 4.60248 3.08108 4.14876 3.08108 3.67568C3.08108 2.68865 4.86486 1 4.86486 1C4.86486 1 6.64865 2.68865 6.64865 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4195			<path d="M1.2973 17.0184C1.57132 17.4845 1.96234 17.8709 2.43166 18.1394C2.90097 18.4079 3.43228 18.5492 3.97297 18.5492C4.51367 18.5492 5.04498 18.4079 5.51429 18.1394C5.9836 17.8709 6.37463 17.4845 6.64865 17.0184C6.92267 17.4845 7.3137 17.8709 7.78301 18.1394C8.25232 18.4079 8.78363 18.5492 9.32432 18.5492C9.86502 18.5492 10.3963 18.4079 10.8656 18.1394C11.335 17.8709 11.726 17.4845 12 17.0184C12.274 17.4845 12.665 17.8709 13.1344 18.1394C13.6037 18.4079 14.135 18.5492 14.6757 18.5492C15.2164 18.5492 15.7477 18.4079 16.217 18.1394C16.6863 17.8709 17.0773 17.4845 17.3514 17.0184C17.6254 17.4845 18.0164 17.8709 18.4857 18.1394C18.955 18.4079 19.4863 18.5492 20.027 18.5492C20.5677 18.5492 21.099 18.4079 21.5683 18.1394C22.0377 17.8709 22.4287 17.4845 22.7027 17.0184" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4196			</svg>
4196				</div>
4197				<div class="flex-1 min-w-0">
4198					<div class="text-base font-semibold text-rwp-widget-heading">
4199						<span x-text="birthdayBanner ? 'Happy Birthday ' + birthdayBanner.member_name + '!' : ''"></span>
4200					</div>
4201					<div class="text-sm text-gray-500">
4202						<span x-text="birthdayBanner ? 'Enjoy ' + birthdayBanner.points_earned.toLocaleString() + ' ' + currencyPlural + ' on us' : ''"></span>
4203					</div>
4204				</div>
4205			</div>
4206		</div>
4207
4208		
4209
4210				<div x-show="memberId === 0 || isGuestMember">
4211	<div
4212		x-data="becomeMember({
4213			nonce: 'e9babc5c4b',
4214			ajaxUrl: 'https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site',
4215			isLoggedIn: false,
4216			isGuestMember: false,
4217			userName: '',
4218			userEmail: ''
4219		})"
4220		x-on:show-register-form.window="currentScreen = 'register'; showForm = true; showError = false; $dispatch('navigate-to-panel', { panel: 'main', resetScroll: true });"
4221		x-on:show-login-form.window="currentScreen = 'login'; showForm = true; showError = false;"
4222			x-on:member-joined.window="justJoined = true"
4223			class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card"
4224			x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-1' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-1' : '')"
4225			data-become-member-section
4226		>
4227								<div x-show="showSuccess" style="display: none;">
4228					<div class="flex justify-center mb-4">
4229						<div class="size-16 bg-green-100 rounded-full flex items-center justify-center">
4230							<svg class="size-8 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4231								<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
4232							</svg>
4233						</div>
4234					</div>
4235					<h3 class="text-base font-semibold text-rwp-widget-heading mb-2">
4236						Welcome to List on MLS from $75 Rewards Program!					</h3>
4237					<p class="text-sm mb-6 px-2">You&#039;re now part of our rewards program! Start earning points and rewards with every purchase.</p>
4238
4239					<a
4240						x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
4241						x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
4242						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
4243						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
4244						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline hover:bg-rwp-button-hover"
4245					>
4246						Start earning points					</a>
4247				</div>
4248
4249								<div x-show="!showSuccess">
4250				<!-- Register Screen -->
4251				<div class="text-center" x-show="currentScreen === 'register'" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100">
4252					<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Join our rewards program</h2>
4253					<p class="text-sm mb-4 px-2" x-show="!(isGuestMember && showGuestConfirmation)">Create a free account to start earning points and unlocking member-only perks.</p>
4254					<p class="text-sm mb-4 px-2" x-show="isGuestMember && showGuestConfirmation" x-cloak>Your order email will be used to create your account.</p>
4255
4256				<!-- Form for non-logged-in users, guest members, and logged-in non-members - Initially hidden -->
4257				
4258						<!-- Guest confirmation: one-click account creation (no form fields needed, backend uses session) -->
4259						<div
4260							x-show="isGuestMember && showGuestConfirmation"
4261							x-transition:enter="transition-all duration-300 ease-out"
4262							x-transition:enter-start="opacity-0 -translate-y-4 scale-95"
4263							x-transition:enter-end="opacity-100 translate-y-0 scale-100"
4264							class="space-y-3"
4265						>
4266							<!-- Email identity card -->
4267							<div class="flex items-center gap-3 rounded-lg border border-gray-200 bg-gray-50/50 px-4 py-3 text-left">
4268								<svg class="size-5 text-gray-400 flex-shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>Envelope (email) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75" /></svg>								<div class="min-w-0">
4269									<p class="text-sm font-medium text-rwp-widget-heading truncate" x-text="formData.email"></p>
4270									<p class="text-xs text-gray-500">From your recent order</p>
4271								</div>
4272							</div>
4273
4274							<!-- Create account button -->
4275							<button
4276								type="button"
4277								tabindex="0"
4278								x-on:click="if (!isAdminPreview && !isDemo) { createMember() }"
4279								x-bind:disabled="isSubmitting"
4280								x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdm
4280inPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-brand-hover'"
4281								x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
4282								x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
4283								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
4284								data-highlight="success-state"
4285								data-become-member-btn
4286								x-bind:aria-label="isSubmitting ? 'Creating account...' : 'Create my account'"
4287							>
4288								<span
4289									class="[grid-area:stack] transition-opacity duration-200"
4290									x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
4291								>Create my account</span>
4292								<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>							</button>
4293
4294						</div>
4295
4296						<!-- Full registration form (shown for non-guest visitors only) -->
4297						<form x-on:submit.prevent="if (!isAdminPreview && !isDemo) { createMember() }" x-show="showForm && !isGuestMember" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition-all duration-200 ease-in" x-transition:leave-start="opacity-100 translate-y-0 scale-100" x-transition:leave-end="opacity-0 -translate-y-2 scale-98" style="display: none;">
4298								<div style="position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;" aria-hidden="true">
4299			<label class="sr-only">
4300				Leave this field empty			</label>
4301			<input
4302				type="text"
4303				name="rwp_website"
4304				x-model="formData.rwp_website"
4305				value=""
4306				tabindex="-1"
4307				autocomplete="off"
4308			>
4309		</div>
4310								<div class="space-y-3">
4311
4312							<div>
4313								<label for="member-name" class="sr-only block text-sm font-medium text-rwp-widget-text mb-1.5 text-left">Name</label>
4314								<input
4315									type="text"
4316									id="member-name"
4317									x-model="formData.name"
4318									class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
4319									placeholder="Your name"
4320									required
4321								>
4322							</div>
4323							<div>
4324								<label for="member-email" class="sr-only block text-sm font-medium text-rwp-widget-text mb-1.5 text-left">Email</label>
4325								<input
4326									type="email"
4327									id="member-email"
4328									x-model="formData.email"
4329									class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
4330									placeholder="Your email"
4331									required
4332								>
4333							</div>
4334
4335							<button
4336								type="submit"
4337								tabindex="0"
4338								x-bind:disabled="isSubmitting"
4339								x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdminPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-brand-hover'"
4340								x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
4341								x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
4342								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
4342w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
4343								data-highlight="success-state"
4344								data-become-member-btn
4345								x-bind:aria-label="isSubmitting ? 'Creating account...' : 'Create my account'"
4346							>
4347							<span
4348								class="[grid-area:stack] transition-opacity duration-200"
4349								x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
4350							>Create my account</span>
4351							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
4352						</div>
4353
4354
4355					</form>
4356					
4357					<!-- Error State for Register Screen -->
4358					<div x-show="showError && currentScreen === 'register'" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none;" class="mt-4">
4359						<div class="bg-red-50 border border-red-200 rounded-lg p-4">
4360							<div class="flex items-center">
4361								<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4362									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
4363								</svg>
4364								<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
4365							</div>
4366						</div>
4367					</div>
4368
4369			<button
4370				x-show="(!showForm || currentScreen !== 'register') && !(isGuestMember && showGuestConfirmation)"
4371				x-on:click="if (!isAdminPreview && !isDemo) { if (isGuestMember && userData.email) { window.dispatchEvent(new CustomEvent('rewardswp-join-with-email', { detail: { email: userData.email, name: userData.name } })); } handleJoinClick(); } else { currentScreen = 'register'; showForm = true; showError = false; }"
4372				class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
4373				data-highlight="success-state"
4374				data-become-member-btn
4375				x-bind:aria-label="'Join now to become a member'"
4376				tabindex="0"
4377			>
4378				Join now			</button>
4379
4380										<p class="text-sm mt-4">
4381						Already have an account?						<button
4382							x-on:click="currentScreen = 'login'; showForm = true; showError = false;"
4383							class="font-medium underline text-rwp-accent cursor-pointer"
4384							tabindex="0"
4385						>Sign in</button>
4386					</p>
4387										</div>
4388
4389					<!-- Login Screen -->
4390					<div class="text-center" x-show="currentScreen === 'login'" x-transition:enter="transition-all duration-300 ease-out" x-transition:enter-start="opacity-0 -translate-y-4 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100">
4391						<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Sign in to your account</h2>
4392						<p class="text-sm mb-6">Welcome back! Sign in to access your rewards.</p>
4393
4394						<!-- Login Form -->
4395												<form x-on:submit.prevent="if (!isAdminPreview && !isDemo) { handleLogin() }" class="mb-4">
4396							<div class="space-y-3">
4397								<div>
4398									<label for="login-email" class="sr-only block text-sm font-medium text-rwp-widget-text mb-2 text-left">Email or Username</label>
4399									<input
4400										type="text"
4401										id="login-email"
4402										x-model="formData.email"
4403										class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
4404										placeholder="Your email or username"
4405										required
4406									>
4407								</div>
4408								<div>
4409									<label for="login-password" class="sr-only block text-sm font-medium text-rwp-widget-text mb-2 text-left">Password</label>
4410									<input
4411										type="password"
4412										id="login-password"
4413										x-model="formData.password"
4414										class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500"
4415										placeholder="Your password"
4416										required
4417									>
4418								</div>
4419
4420								<button
4421									type="submit"
4422									tabindex="0"
4423									x-bind:disabled="isSubmitting"
4424									x-bind:class="isSubmitting ? 'opacity-50 cursor-not-allowed' : (isAdm
4424inPreview || isDemo) ? '!cursor-not-allowed' : 'hover:bg-rwp-button-hover'"
4425									x-bind:data-preview-disabled="(isAdminPreview || isDemo) ? 'true' : null"
4426									x-bind:data-tippy-content="(isAdminPreview || isDemo) ? 'Disabled for preview' : null"
4427									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
4428								>
4429								<span
4430									class="[grid-area:stack] transition-opacity duration-200"
4431									x-bind:class="{ 'invisible': isSubmitting, 'visible': !isSubmitting }"
4432								>Sign in</span>
4433							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>							</button>
4434
4435							</div>
4436
4437
4438						</form>
4439						
4440						<!-- Error State for Login Screen -->
4441						<div x-show="showError && currentScreen === 'login'" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none;" class="mb-4">
4442							<div class="bg-red-50 border border-red-200 rounded-lg p-4">
4443								<div class="flex items-center">
4444									<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4445										<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
4446									</svg>
4447									<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
4448								</div>
4449							</div>
4450						</div>
4451
4452										<p class="text-sm">
4453						Don&#039;t have an account?						<button
4454							x-on:click="currentScreen = 'register'; showForm = true; showError = false;"
4455							class="font-medium underline text-rwp-accent cursor-pointer"
4456							tabindex="0"
4457						>Join now</button>
4458					</p>
4459									</div>
4460			</div>
4461		</div>
4462	</div>
4463	
4464	<!-- Points Section for Non-Members -->
4465				<div x-show="memberId === 0 && pointsEnabled">
4466			
4467		<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card">
4468			<!-- Points System Preview -->
4469			<div class="mb-6 text-center">
4470				<h3 class="text-base font-semibold text-rwp-widget-heading mb-2" x-text="currencyPlural"></h3>
4471				<p class="text-sm" x-text="&apos;Earn %s for completing different actions, and turn them into rewards.&apos;.replace(&apos;%s&apos;, currencyPlural.toLowerCase())"></p>
4472			</div>
4473
4474
4475			<!-- Navigation Items -->
4476			<div>
4477				<button x-on:click="navigateToPanel(&apos;ways-to-earn&apos;)" class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500">
4478					<div class="flex items-center gap-4">
4479						<div class="size-8 rounded-lg flex items-center justify-center text-gray-700">
4480							<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4481					<desc>
4482						Earn icon
4483					</desc>
4484					<path d="m0.75 14.25 0 9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4485					<path d="M0.75 21.75h15a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4486					<path d="m6 18.75 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4487					<path d="M15.75 13.875 9.358 7.207a3.785 3.785 0 0 1 -0.709 -4.366h0a3.782 3.782 0 0 1 6.057 -0.983L15.75 2.9l1.044 -1.044a3.782 3.782 0 0 1 6.057 0.983h0a3.783 3.783 0 0 1 -0.709 4.366Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4488					</svg>						</div>
4489						<span class="text-sm text-rwp-widget-heading font-medium">Ways to earn</span>
4490					</div>
4491					<svg class="size-5 text-gray-400" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5">
4492						<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"></path>
4493					</svg>
4494				</button>
4495
4496				<button x-on:click="navigateToPanel(&apos;ways-to-redeem&apos;)" class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500">
4497					<div class="flex items-center gap-4">
4498						<div class="size-8 rounded-lg flex items-center justify-center text-gray-700">
4499							<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
4499s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>						</div>
4500						<span class="text-sm text-rwp-widget-heading font-medium">Ways to redeem</span>
4501					</div>
4502					<svg class="size-5 text-gray-400" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5">
4503						<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5"></path>
4504					</svg>
4505				</button>
4506			</div>
4507		</div>
4508				</div>
4509	
4510	<!-- Referrals Section for Non-Members -->
4511				<div x-show="memberId === 0 && referralsEnabled">
4512					<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card text-center">
4513			<h2 class="text-base font-semibold text-rwp-widget-heading mb-2">Refer your friends</h2>
4514			<!-- Description changes based on whether friend reward exists -->
4515						<p class="text-sm mb-4">
4516				Share your link with friends. They get a reward and you earn one when they purchase.			</p>
4517						
4518		<div class="py-3b">
4519			<!-- Advocate reward -->
4520						<div class="flex items-center justify-between px-4 py-3">
4521				<div class="flex items-center gap-4">
4522					<div class="size-8 flex items-center justify-center shrink-0 text-gray-700">
4523													<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4524			<desc>
4525				Fixed amount discount icon
4526			</desc>
4527			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4528			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4529			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4530			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4531			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4532			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4533			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4534			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4535			</svg>											</div>
4536					<div class="flex-1 text-left">
4537						<div class="font-medium text-rwp-widget-heading text-sm">You get</div>
4538						<div class="text-sm">
4539															$5 off coupon													</div>
4540					</div>
4541				</div>
4542				<div class="size-5"></div>
4543			</div>
4544						<!-- Friend reward -->
4545						<div class="flex items-center justify-between px-4 py-3">
4546				<div class="flex items-center gap-4">
4547					<div class="size-8 flex items-center justify-center flex-shrink-0 text-gray-700">
4548													<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4549			<desc>
4550				Fixed amount discount icon
4551			</desc>
4552			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4553			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4554			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4555			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4556			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4557			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4558			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4559			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4560			</svg>											</div>
4561					<div class="flex-1 text-left">
4562						<div class="font-medium text-rwp-widget-heading text-sm">They get</div>
4563						<div class="text-sm">
4564															$10 off coupon													</div>
4565					</div>
4566				</div>
4567				<div class="size-5"></div>
4568			</div>
4569					</div>
4570		</div>
4571				</div>
4572	
4573
4574				<div
4575			x-show="availableRewardsCount > 0 && memberId > 0"
4576						x-transition:enter="transition-opacity duration-300 ease-out"
4577			x-transition:enter-start="opacity-0"
4578			x-transition:enter-end="opacity-100"
4579			x-transition:leave="transition-opacity duration-200 ease-in"
4580			x-transition:leave-start="opacity-100"
4581			x-transition:leave-end="opacity-0"
4582						class="bg-white rounded-lg p-4 py-3 text-rwp-widget-text shadow-card"
4583		>
4584			<button
4585				x-on:click="navigateToPanel('your-rewards')"
4586				class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
4587			>
4588				<div class="flex-1">
4589					<div class="text-base font-semibold text-rwp-widget-heading">
4590						Your rewards					</div>
4591					<div class="text-sm text-gray-500">
4592						<span x-text="availableRewardsCount === 1 ?
4593							'You have 1 reward available' :
4594							'You have ' + availableRewardsCount + ' rewards available'"></span>
4595					</div>
4596				</div>
4597				<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>			</button>
4598		</div>
4599
4600
4601								<div class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card" x-show="memberId > 0 && pointsEnabled" x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-2' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-2' : '')">
4602
4603
4604
4605				<button
4606					x-on:click="navigateToPanel('ways-to-earn')"
4607					class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
4608				>
4609					<div class="flex items-center gap-4">
4610						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
4611							<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4612					<desc>
4613						Earn icon
4614					</desc>
4615					<path d="m0.75 14.25 0 9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4616					<path d="M0.75 21.75h15a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4617					<path d="m6 18.75 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4618					<path d="M15.75 13.875 9.358 7.207a3.785 3.785 0 0 1 -0.709 -4.366h0a3.782 3.782 0 0 1 6.057 -0.983L15.75 2.9l1.044 -1.044a3.782 3.782 0 0 1 6.057 0.983h0a3.783 3.783 0 0 1 -0.709 4.366Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4619					</svg>						</div>
4620						<span class="text-sm text-rwp-widget-heading font-medium">Ways to earn</span>
4621					</div>
4622					<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>				</button>
4623				<button
4624					x-on:click="navigateToPanel('ways-to-redeem')"
4625					class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
4626				>
4627					<div class="flex items-center gap-4">
4628						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
4629							<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
4629s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>						</div>
4630						<span class="text-sm text-rwp-widget-heading font-medium">Ways to redeem</span>
4631					</div>
4632					<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>				</button>
4633			</div>
4634			
4635
4636						<div id="refer-your-friends-section" class="bg-white rounded-lg px-4 py-6 relative text-rwp-widget-text shadow-card" x-show="memberId > 0 && referralsEnabled" x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-3' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-3' : '')">
4637				<h2 class="text-base font-semibold text-rwp-widget-heading mb-2 text-left pl-4">Refer your friends</h2>
4638
4639
4640				
4641				<!-- Advocate reward -->
4642								<div class="flex items-center justify-between"
4643					>
4644					<div class="flex items-center gap-4 px-4 py-3">
4645						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text"
4646							>
4647															<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4648			<desc>
4649				Fixed amount discount icon
4650			</desc>
4651			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4652			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4653			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4654			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4655			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4656			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4657			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4658			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4659			</svg>													</div>
4660						<div class="flex-1 text-left">
4661							<div class="font-medium text-rwp-widget-heading text-sm">You get</div>
4662							<div class="text-sm"
4663								>
4664																	$5 off coupon															</div>
4665						</div>
4666					</div>
4667					<div class="size-5"></div>
4668				</div>
4669								<!-- Friend reward -->
4670								<div class="flex items-center justify-between"
4671					>
4672					<div class="flex items-center gap-4 px-4 py-3">
4673						<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text"
4674							>
4675															<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4676			<desc>
4677				Fixed amount discount icon
4678			</desc>
4679			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4680			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4681			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4682			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4683			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4684			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4685			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4686			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4687			</svg>													</div>
4688						<div class="flex-1 text-left">
4689							<div class="font-medium text-rwp-widget-heading text-sm">They get</div>
4690							<div class="text-sm text-gray-700"
4691								>
4692																	$10 off coupon															</div>
4693						</div>
4694					</div>
4695					<div class="size-5"></div>
4696				</div>
4697				
4698
4699				<!-- Referral link input -->
4700				<div>
4701					<label for="referral-link-input" class="block font-medium text-gray-900 sr-only text-sm/6">Invite link</label>
4702					<div class="mt-2">
4703						<div x-data="{ isCheckmark: false }" class="flex bg-white rounded-lg outline-1 -outline-offset-1 outline-gray-200">
4704					<input
4705						x-on:click="handleCopyClick($el, null, false)"
4706						id="referral-link-input"
4707						type="text"
4708						readonly
4709						class="block min-w-0 pl-5 py-3 text-sm text-gray-900 cursor-pointer grow focus:outline-none sm:text-sm/6 text-ellipsis"
4710						x-bind:value="userData.referralLink || 'https://yoursite.com/?share=df04c90'"
4711						x-ref="referralInput">
4712
4713							<div class="flex">
4714								<button
4715									x-on:click="handleCopyClick($refs.referralInput, $data)"
4716									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
4717									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
4718									x-ref="copyButton">
4719									<div class="relative size-6">
4720										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
4721											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
4722											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
4723										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
4724											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
4725											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
4726									</div>
4727								</button>
4728							</div>
4729						</div>
4730					</div>
4731				</div>
4732
4733						<div x-data="{ showMore: false }" x-show="sharing.email || sharing.x || sharing.facebook" x-cloak>
4734			<div class="grid grid-cols-4 mt-6">
4735									<a href="/cdn-cgi/l/email-protection#94abe7e1f6fef1f7e0a9d5b1a6a4f8fde0e0f8f1b1a6a4f3fdf2e0b1a6a4f2fbe6b1a6a4edfbe1b1a6a5b2f5f9e4aff6fbf0eda9dcf1e6f1b1a6a3e7b1a6a4e7fbf9f1e0fcfdfaf3b1a6d7b1a6a4ddb1a6a4f3e1f1e7e7bab1a6a4cdfbe1b1a6a4f7f5fab1a6a4f3f1e0b1a6a4f5b1a6a4b1a6a0a5a4b1a6a4fbf2f2b1a6a4f7fbe1e4fbfab1a6a4f2fbe6b1a6a4edfbe1e6b1a6a4f2fde6e7e0b1a6a4e4e1e6f7fcf5e7f1b1a6a4f5e0b1a6a4d8fde7e0b1a6a4fbfab1a6a4d9d8c7b1a6a4b1a6a2b1a6a4c6d1d5d8c0dbc6baf7fbf9b1a6d6b1a6a4f2e6fbf9b1a6a4b1a6a0a3a1bab1a6d7b1a6a4fdf2b1a6a4e0fcf5e0b1a6a3e7b1a6a4f1e2f1fab1a6a4e3fbe6e0fcb1a6a4edfbe1e6b1a6a4e0fdf9f1bab1a4d0b1a4d5b1a4d0b1a4d5d7f8fdf7ffb1a6a4e0fcfde7b1a6a4f8fdfaffb1a6d7b1a6a4fbe6b1a6a4f0fbfab1a6a3e0b1a6d7b1a6a4e3fcf5e0f1e2f1e6b1a7d5b1a6a4b1a6a4b1a4d0b1a4d5fce0e0e4e7b1a7d5b1a6d2b1a6d2fef5f7fffff1f8f8f1e6baf7fbf9b1a6d2e4e6f1e2fdf1e3b1a4d5b1a4d5" target="_self" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;email&apos;, $event)">
4736							<svg class="size-6 shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><desc>Envelope (email) icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75" /></svg>							<span class="text-xs mt-1">Email</span>
4737					</a>
4738									<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fjackkeller.com%2Fpreview&amp;text=Visit%20List%20on%20MLS%20%26amp%3B%20REALTOR.com%2B%20from%20%2475.%20to%20receive%20your%20free%20gift%21" target="_blank" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;twitter&apos;, $event)">
4739							<svg class="size-6 shrink-0" viewbox="0 0 24 24" fill="currentColor"><desc>X (formerly Twitter) logo</desc><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" /></svg>							<span class="text-xs mt-1">X</span>
4740					</a>
4741									<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fjackkeller.com%2Fpreview" target="_blank" rel="noopener noreferrer" class="flex flex-col items-center justify-center min-w-[2.75rem] min-h-[2.75rem] p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-50 transition-all duration-200 ease-out rounded-lg cursor-pointer" x-on:click="handleShareClick(&apos;facebook&apos;, $event)">
4742							<svg class="size-6 shrink-0" fill="currentColor" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><desc>Facebook logo</desc><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" /></svg>							<span class="text-xs mt-1">Facebook</span>
4743					</a>
4744				
4745							</div>
4746
4747			<!-- Overflow Menu -->
4748			<div x-show="showMore" x-cloak class="mt-4 border-t border-gray-100 pt-4">
4749				<div class="grid grid-cols-4 gap-2">
4750									</div>
4751			</div>
4752		</div>
4753					</div>
4754			
4755				<div
4756			x-show="memberId > 0 && (pointsEnabled || referralsEnabled)"
4757						x-transition:enter="transition-opacity duration-300 ease-out"
4758			x-transition:enter-start="opacity-0"
4759			x-transition:enter-end="opacity-100"
4760			x-transition:leave="transition-opacity duration-200 ease-in"
4761			x-transition:leave-start="opacity-100"
4762			x-transition:leave-end="opacity-0"
4763						class="bg-white rounded-lg p-4 py-3 text-rwp-widget-text shadow-card"
4764			x-bind:class="navigationDirection === 'initial' ? 'rwp-stagger-fade-up rwp-stagger-4' : (navigationDirection === 'back' ? 'rwp-stagger-slide-left rwp-stagger-4' : '')"
4765		>
4766			<button
4767				x-on:click="navigateToPanel('activity')"
4768				class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
4769			>
4770				<div class="flex items-center gap-4">
4771					<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
4772						<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
4773					<desc>
4774						Clock history icon
4775					</desc>
4776					<path d="M13.5 22a9.75 9.75 0 1 0 -9.75 -9.75V13" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4777					<path d="m0.75 9.997 3 3 3 -3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4778					<path d="m12.75 6.247 0 6.75 5.25 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
4779					</svg>					</div>
4780					<span class="text-sm text-rwp-widget-heading font-medium">Your activity</span>
4781				</div>
4782				<svg class="size-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><desc>Chevron right icon</desc><path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" /></svg>			</button>
4783		</div>
4784		</div>
4785
4786
4787
4788
4789				<div
4790			x-show="isFriendClaimMode && currentPanel === 'main'"
4791			x-transition:enter="transition-all duration-300 ease-out delay-150"
4792			x-transition:enter-start="opacity-0"
4793			x-transition:enter-end="opacity-100"
4794			x-transition:leave="transition-opacity duration-0"
4795			x-transition:leave-start="opacity-100"
4796			x-transition:leave-end="opacity-0"
4797			class="px-6 py-12 bg-rwp-widget-bg"
4798		>
4799			
4800		<!-- Claim Form -->
4801		<div x-data="friendClaimForm({
4802				nonce: &apos;f68cf984f4&apos;,
4803				referralCode: &apos;&apos;,
4804				ajaxUrl: &apos;https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site&apos;,
4805				storeUrl: &apos;https://jackkeller.com/pay-now/&apos;,
4806				checkoutUrl: &apos;https://jackkeller.com/checkout/&apos;,
4807				cartUrl: &apos;https://jackkeller.com/cart-2/&apos;,
4808				cartItemCount: 0,
4809				cartProductIds: [],
4810				integrationSource: &apos;woocommerce&apos;,
4811				alreadyClaimed: false,
4812				existingCoupon: &apos;&apos;,
4813				existingRewardId: null,
4814				isCouponApplied: false,
4815				isAdminPreview: false,
4816				isDemo: false,
4817				rewardType: &apos;&apos;,
4818				freeProductId: &apos;&apos;,
4819				rewardTitle: &apos;&apos;,
4820				minimumOrderAmount: 0,
4821				addToCartText: &apos;Add to cart&apos;,
4822				claimRewardText: &apos;Claim reward&apos;,
4823				applyToCartText: &apos;Claim free product&apos;
4824			})" class="text-rwp-widget-text">
4825			<!-- Reward Display -->
4826			<div x-show="!showSuccess" class="text-center mb-6">
4827				<!-- Centered Icon (match success screen) -->
4828				<div class="flex justify-center mb-2">
4829					<svg class="size-10 text-gray-700" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H4.5a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg>				</div>
4830
4831				<!-- Reward value display -->
4832				<div>
4833					<!-- Attribution eyebrow text -->
4834											<p class="text-base text-gray-600 mb-0.5">
4835							You were sent a gift						</p>
4836					
4837					<!-- Large bold reward value -->
4838					<div class="text-2xl font-bold text-gray-900">
4839											</div>
4840				</div>
4841			</div>
4842			<!-- Success State -->
4843			<div x-show="showSuccess" style="display: none">
4844				<div class="text-center mb-6">
4845
4846					<div class="flex justify-center mb-2">
4847						<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>					</div>
4848
4849					<!-- Reward value display -->
4850					<div>
4851						<p class="text-base text-gray-600 mt-2 mb-0.5">
4852							You have received						</p>
4853						<div class="flex items-center justify-center gap-3">
4854							<div class="size-8 flex items-center justify-center flex-shrink-0 text-gray-700">
4855								<svg class="size-8" fill="none" stroke="currentColor" viewbox="0 0 24 24" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 11.25v8.25a1.5 1.5 0 01-1.5 1.5H4.5a1.5 1.5 0 01-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 109.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1114.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg>							</div>
4856							<div class="text-2xl font-bold text-gray-900" x-text="rewardTitle">
4857															</div>
4858						</div>
4859					</div>
4860				</div>
4861
4862				<!-- Usage Instructions -->
4863				<div x-show="couponCode" class="text-sm text-gray-600 text-center mb-2 px-2">
4864					<p>Use at checkout on your first order</p>
4865				</div>
4866
4867				<!-- Coupon Code Display (if coupon code available) -->
4868				<div x-show="couponCode" class="mb-4">
4869					<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
4870						<input x-on:click="handleCopyClick($refs.couponCode, null, false)" type="text" readonly class="block min-w-0 grow px-5 py-3 text-sm text-gray-900 focus:outline-none sm:text-sm/6 text-ellipsis cursor-pointer font-mono" x-ref="couponCode" x-bind:value="couponCode">
4871
4872						<div class="flex">
4873								<button x-on:click="handleCopyClick($refs.couponCode, $data)" class="py-3 px-3 relative transition-all duration-200 cursor-pointer" x-bind:class="{ &apos;hover:text-gray-900 text-gray-500&apos;: !isCheckmark}" x-ref="copyButton">
4874									<div class="relative size-6">
4875										<div class="absolute inset-0 transition-all duration-300 ease-in-out" x-bind:class="isCheckmark ? &apos;opacity-0 scale-95&apos; : &apos;opacity-100 scale-100&apos;">
4876											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
4877										<div class="absolute inset-0 transition-all duration-300 ease-in-out" x-bind:class="isCheckmark ? &apos;opacity-100 scale-100&apos; : &apos;opacity-0 scale-95&apos;">
4878											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
4879									</div>
4880								</button>
4881							</div>
4882					</div>
4883				</div>
4884
4885
4886
4887				<!-- Apply Coupon Button - Only show when NOT applied and NOT failed due to minimum spend -->
4888				<div x-show="couponCode &amp;&amp; !couponApplied &amp;&amp; !productAddedButCouponFailed" x-cloak class="mb-4">
4889					<button x-on:click="applyCouponToCart()" x-bind:disabled="applyingCoupon" x-bind:class="{
4890							&apos;opacity-50 cursor-not-allowed&apos;: applyingCoupon,
4891							&apos;hover:bg-rwp-brand-hover&apos;: !applyingCoupon
4892						}" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&apos;stack&apos;] place-items-center">
4893						<span class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200" x-bind:class="{ &apos;invisible&apos;: applyingCoupon, &apos;visible&apos;: !applyingCoupon }">
4894							<!-- Dynamic text based on reward type, cart state, and minimum spend -->
4895							<template x-if="rewardType === &apos;free_product&apos;">
4896								<span x-text="freeProductButtonText"></span>
4897							</template>
4898							<template x-if="rewardType !== &apos;free_product&apos;">
4899								<span>
4900							<span x-show="isWooCommerce">Apply to cart</span>
4901							<span x-show="!isWooCommerce">Apply coupon</span>
4902								</span>
4903							</template>
4904						</span>
4905						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
4905os;invisible&apos;: applyingCoupon !== true, &apos;visible&apos;: applyingCoupon === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
4906					<div x-show="couponError &amp;&amp; !productAddedButCouponFailed" class="text-sm mt-2 text-red-500" x-text="couponErrorMessage"></div>
4907				</div>
4908
4909				<!-- Success Message - Show when coupon applied -->
4910				<div x-show="couponApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
4911					<span> applied</span>
4912				</div>
4913
4914								<div x-show="productAddedButCouponFailed" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
4915					<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
4916						Product added to cart					</div>
4917										<template> 0"&gt;
4918						<div class="text-center text-gray-600 px-2" x-text="&apos;Almost there — add &apos; + &apos;$&apos; + remainingToUnlock + &apos; more to unlock&apos;"></div>
4919					</template>
4920				</div>
4921
4922				<!-- Buttons when coupon failed but product added -->
4923				<template x-if="productAddedButCouponFailed">
4924					<div>
4925						<!-- Primary CTA - Continue Shopping -->
4926						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : storeUrl" x-bind:class="{ &apos;mb-3&apos;: isWooCommerce, &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block">
4927							Continue shopping						</a>
4928
4929						<!-- Secondary CTA - View Cart (WooCommerce only) -->
4930						<template x-if="isWooCommerce">
4931							<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/cart-2/&apos;" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block">
4932								View cart							</a>
4933						</template>
4934					</div>
4935				</template>
4936
4937				<!-- Buttons when coupon is applied successfully -->
4938				<template x-if="couponApplied &amp;&amp; !isCartEmpty">
4939					<div>
4940						<!-- Primary CTA - Go to Checkout -->
4941						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/checkout/&apos;" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block" x-bind:class="{ &apos;mb-3&apos;: isWooCommerce, &apos;!cursor-not-allowed&apos;: isAdminPreview }">
4942							Go to checkout						</a>
4943
4944						<!-- Secondary CTA - View Cart (WooCommerce only) -->
4945						<template x-if="isWooCommerce">
4946							<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : &apos;https://jackkeller.com/cart-2/&apos;" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block">
4947								View cart							</a>
4948						</template>
4949					</div>
4950				</template>
4951
4952				<!-- Button when coupon is applied but cart is empty -->
4953				<template x-if="couponApplied &amp;&amp; isCartEmpty">
4954					<div>
4955						<!-- Primary CTA - Shop Now -->
4956						<a x-bind:href="isAdminPreview ? &apos;javascript:void(0)&apos; : storeUrl" x-bind:class="{ &apos;!cursor-not-allowed&apos;: isAdminPreview }" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block">
4957							Shop now						</a>
4958						<!-- No secondary button when cart is empty -->
4959					</div>
4960				</template>
4961			</div>
4962
4963			<!-- Form State -->
4964			<div x-show="!showSuccess">
4965				<!-- Claim instruction -->
4966				<p class="text-sm text-gray-600 text-center mb-2 px-2">
4967					Enter your email to claim it now.				</p>
4968
4969				<!-- Email Form -->
4970				<form x-on:submit.prevent="if (!isAdminPreview &amp;&amp; !isDemo) { claimReward() }" class="mb-3">
4971							<div style="position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none">
4972			<label class="sr-only">
4973				Leave this field empty			</label>
4974			<input type="text" name="rwp_website" x-model="formData.rwp_website" value="">
4975		</div>
4976							<div class="mb-4">
4977
4978						<label for="claim-email" class="block text-sm font-medium text-gray-700 mb-1.5 text-left sr-only">Email</label>
4979						<input type="email" id="claim-email" x-model="formData.email" class="bg-white text-base w-full px-3 py-3 rounded-lg outline-1 -outline-offset-1 outline-gray-200 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-500" placeholder="[email protected]" required>
4980
4981					</div>
4982
4983					<!-- Error State -->
4984					<div x-show="showError" x-transition:enter="transition-opacity duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" style="display: none" class="mb-4">
4985						<div class="bg-red-50 border border-red-200 rounded-lg p-4">
4986							<div class="flex items-center">
4987								<svg class="size-5 text-red-400 mr-3 mt-0.5 flex-shrink-0" fill="none" stroke="currentColor" viewbox="0 0 24 24">
4988									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
4989								</svg>
4990								<span class="text-sm text-red-700 text-left" x-html="errorMessage"></span>
4991							</div>
4992						</div>
4993					</div>
4994
4995					<button type="submit" x-bind:disabled="isSubmitting" x-bind:class="isSubmitting ? &apos;opacity-50 cursor-not-allowed&apos;
4995 : (isAdminPreview || isDemo) ? &apos;!cursor-not-allowed&apos; : &apos;hover:bg-rwp-brand-hover&apos;" class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&apos;stack&apos;] place-items-center">
4996						<span class="[grid-area:stack] transition-opacity duration-200" x-bind:class="{ &apos;invisible&apos;: isSubmitting, &apos;visible&apos;: !isSubmitting }">Claim your gift</span>
4997						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isSubmitting !== true, &apos;visible&apos;: isSubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
4998
4999				</form>
5000			</div>
5001
5002		</div>
5003
5004
5005
5006
5007
5008
5009
5010
5011				</div>
5012
5013
5014			<div
5015		x-show="currentPanel === 'ways-to-earn'"
5016		x-bind:class="'relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'ways-to-earn' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5017		x-data="{ panelAtTop: true, panelAtBottom: false }"
5018		x-effect="if (currentPanel === 'ways-to-earn') { const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
5019	>
5020		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-32 text-rwp-widget-text"
5021			@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
5022		>
5023
5024			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Ways to earn</h2>
5025
5026								<div
5027					x-show="showWelcomeBanner"
5028					role="status"
5029					class="mt-3 mb-2 flex items-center justify-between gap-2 rounded-lg bg-emerald-50 px-3 py-2 text-sm text-emerald-800"
5030					style="display: none;"
5031				>
5032					<svg class="size-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>					<div class="flex-1">
5033						<span x-show="welcomeBannerData.signupPoints > 0">
5034							Welcome, 							<span x-text="welcomeBannerData.memberName || ''"></span>!
5035						</span>
5036						<span x-show="welcomeBannerData.signupPoints === 0 || !welcomeBannerData.signupPoints">
5037							Welcome, 							<span x-text="welcomeBannerData.memberName || ''"></span>—you&#039;re in.						</span>
5038					</div>
5039					<div class="ml-auto" x-show="welcomeBannerData.signupPoints > 0 || false">
5040						+<span x-text="(welcomeBannerData.signupPoints || 0).toLocaleString()"></span>
5041						<span x-text="(welcomeBannerData.signupPoints || 0) == 1 ? 'Point' : 'Points'"></span>
5042			</div>
5043		</div>
5044
5045		<!-- Error Notification for Guest Upgrade -->
5046		<div x-show="errorMessage" class="mt-3 mb-2 rounded-lg bg-red-50 px-3 py-2 text-sm text-red-800" role="alert" style="display: none;">
5047						<span x-text="errorMessage"></span>
5048		</div>
5049
5050		<div class="divide-y divide-gray-50">
5051																<div
5052							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
5053													>
5054							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5055								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5056			<desc>
5057				Place an order icon
5058			</desc>
5059			<path d="M19.049 6.75H4.936A1.4 1.4 0 0 0 3.5 7.907l-2 13.915a1.357 1.357 0 0 0 1.437 1.428h18.111a1.356 1.356 0 0 0 1.436 -1.428l-2 -13.915a1.4 1.4 0 0 0 -1.435 -1.157Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5060			<path d="M15.662 3.807A3.765 3.765 0 0 0 11.976 0.75h0A3.763 3.763 0 0 0 8.3 3.788" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5061			<path d="M15.923 12.845a1.9 1.9 0 0 0 -2.752 0l-1.179 1.219 -1.179 -1.219a1.9 1.9 0 0 0 -2.751 0 2.06 2.06 0 0 0 0 2.845l3.512 3.63a0.578 0.578 
50610 0 0 0.837 0l3.512 -3.63a2.062 2.062 0 0 0 0 -2.845Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5062			</svg>							</div>
5063							<div class="min-w-0">
5064																	<div class="text-sm font-medium text-gray-900">Make a purchase</div>
5065																								<div class="text-xs text-gray-500">1 Point for every $1 spent</div>
5066													</div>
5067
5068						<!-- CTA Button Section -->
5069													<!-- Non-signup actions with CTA -->
5070							<div class="justify-self-end" x-show="!!memberId" x-cloak>
5071																	<!-- Regular CTA with URL - visible only to members -->
5072									<a
5073										x-show="!!memberId"
5074										x-cloak
5075										x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
5076										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5077										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5078										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5079										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5080									>
5081										Shop									</a>
5082															</div>
5083											</div>
5084															<div
5085							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
5086														x-data="{
5087								isCompleted: false,
5088								signupPoints: 25,
5089								completedDate: ''
5090							}"
5091							x-init="
5092								if (!isCompleted && $root.welcomeBannerData && !!$root.welcomeBannerData.signupPoints) {
5093									isCompleted = true;
5094									signupPoints = $root.welcomeBannerData.signupPoints;
5095									completedDate = 'today';
5096								}
5097							"
5098							x-on:member-joined.window="
5099								if ($event.detail && !!$event.detail.signupPoints) {
5100									isCompleted = true;
5101									signupPoints = $event.detail.signupPoints;
5102									completedDate = 'today';
5103								}
5104							"
5105													>
5106							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5107								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5108			<desc>
5109				Create account icon
5110			</desc>
5111			<path d="m15.75 9.749 -3.981 5.308a0.75 0.75 0 0 1 -1.13 0.08L8.25 12.749" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5112			<path d="M10.73 1.357a1.63 1.63 0 0 1 2.54 0l1.512 1.881a1.629 1.629 0 0 0 1.446 0.6l2.4 -0.261a1.63 1.63 0 0 1 1.8 1.8l-0.261 2.4a1.629 1.629 0 0 0 0.6 1.446l1.881 1.512a1.63 1.63 0 0 1 0 2.54l-1.887 1.505a1.632 1.632 0 0 0 -0.6 1.447l0.261 2.4a1.629 1.629 0 0 1 -1.8 1.8l-2.4 -0.261a1.628 1.628 0 0 0 -1.446 0.6L13.27 22.64a1.629 1.629 0 0 1 -2.54 0l-1.511 -1.88a1.631 1.631 0 0 0 -1.447 -0.6l-2.4 0.261a1.628 1.628 0 0 1 -1.8 -1.8l0.261 -2.4a1.631 1.631 0 0 0 -0.6 -1.447l-1.88 -1.511a1.629 1.629 0 0 1 0 -2.54l1.88 -1.512a1.628 1.628 0 0 0 0.6 -1.446l-0.261 -2.4a1.629 1.629 0 0 1 1.8 -1.8l2.4 0.261a1.632 1.632 0 0 0 1.447 -0.6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5113			</svg>							</div>
5114							<div class="min-w-0">
5115																	<div class="text-sm font-medium text-gray-900">Create an account</div>
5116																									<!-- Show points when not completed, earned date when completed -->
5117									<div class="text-xs text-gray-500">
5118										<span x-show="!isCompleted" x-text="signupPoints.toLocaleString() + ' ' + (signupPoints == 1 ? 'Point' : 'Points')"></span>
5119										<span x-show="isCompleted" x-cloak>Earned <span x-text="completedDate"></span></span>
5120									</div>
5121														</div>
5122
5123						<!-- CTA Button Section -->
5124																				<!-- Signup action: Always render completion indicator in DOM for dynamic updates -->
5125							<div class="justify-self-end" x-show="isCompleted" x-cloak>
5126																<!-- Completion indicator - always in DOM, controlled by Alpine -->
5127								<div
5128									x-show="isCompleted"
5129									x-cloak
5130									class="text-emerald-600 font-semibold text-sm"
5131									x-bind:aria-label="'You earned ' + signupPoints.toLocaleStr
5131ing() + ' ' + (signupPoints == 1 ? 'Point' : 'Points') + ' for creating your account'"
5132								>
5133									+<span x-text="signupPoints.toLocaleString()"></span>
5134								</div>
5135							</div>
5136											</div>
5137															<div
5138							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
5139													>
5140							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5141								<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
5142			<desc>
5143				Comment icon
5144			</desc>
5145			<g>
5146				<path d="M12.75 0.75a10.49 10.49 0 0 0 -8.92 16l-3.08 6.5 6.47 -3.08A10.5 10.5 0 1 0 12.75 0.75Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5147				<g>
5148				<path d="M15 10.5A0.75 0.75 0 0 0 15 9h0a0.75 0.75 0 1 0 0 1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5149				<path d="M15.17 13.76a2.79 2.79 0 0 0 1.62 -2.38c0 -1 -0.51 -2.26 -1.67 -2.37" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5150				</g>
5151				<g>
5152				<path d="M9.76 10.5a0.75 0.75 0 0 0 0 -1.5h0a0.75 0.75 0 1 0 0 1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5153				<path d="M9.92 13.76a2.79 2.79 0 0 0 1.62 -2.38c0 -1 -0.51 -2.26 -1.67 -2.37" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5154				</g>
5155			</g>
5156			</svg>							</div>
5157							<div class="min-w-0">
5158																	<div class="text-sm font-medium text-gray-900">Leave a review</div>
5159																								<div class="text-xs text-gray-500">10 Points</div>
5160													</div>
5161
5162						<!-- CTA Button Section -->
5163											</div>
5164															<div
5165							class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4"
5166													>
5167							<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5168								<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5169			<desc>
5170			First purchase bonus icon
5171			</desc>
5172			<path d="M21.75 11.25H2.25v10.5a1.5 1.5 0 0 0 1.5 1.5h16.5a1.5 1.5 0 0 0 1.5 -1.5Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5173			<path d="M21.75 6.75H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.25a0.75 0.75 0 0 0 0.75 0.75h21a0.75 0.75 0 0 0 0.75 -0.75V8.25a1.5 1.5 0 0 0 -1.5 -1.5Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5174			<path d="M11.25 6.75c-3.314 0 -6.75 -2.686 -6.75 -6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5175			<path d="M4.5 0.75c3.314 0 6.75 2.686 6.75 6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5176			<path d="M12.75 6.75c3.314 0 6.75 -2.686 6.75 -6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5177			<path d="M19.5 0.75c-3.314 0 -6.75 2.686 -6.75 6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5178			<path d="M9.75 6.75h4.5v16.5h-4.5z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5179			</svg>							</div>
5180							<div class="min-w-0">
5181																	<div class="text-sm font-medium text-gray-900">Make your first order</div>
5182																								<div class="text-xs text-gray-500">150 Points</div>
5183													</div>
5184
5185						<!-- CTA Button Section -->
5186													<!-- Non-signup actions with CTA -->
5187							<div class="justify-self-end" x-show="!!memberId" x-cloak>
5188																	<!-- Regular CTA with URL - visible only to members -->
5189									<a
5190										x-show="!!memberId"
5191										x-cloak
5192										x-bind:href="isAdminPreview ? 'javascript:void(0)' : 'https://jackkeller.com/pay-now/'"
5193										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5194										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5195										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5196										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5197									>
5198										Shop									</a>
5199															</div>
5200											</div>
5201						</div>
5202
5203		</div>
5204
5205		<!-- Top scroll fade -->
5206		<div x-show="!panelAtTop"
5207			class="pointer-events-none absolute top-0 left-0 h-8 z-10"
5208			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
5209		<!-- Bottom scroll fade — hidden when guest join section is visible -->
5210		<div x-show="!panelAtBottom && memberId !== 0"
5211			class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
5212			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
5213
5214				<div x-show="memberId === 0">
5215		<!-- Fade Overlay -->
5216		<div
5217			class="absolute bottom-0 left-0 right-0 h-24 pointer-events-none"
5218			style="background: linear-gradient(to top, var(--color-rwp-widget-bg), var(--color-rwp-widget-bg) 20%, transparent);"
5219			x-data="{ hideJoinSection: false }"
5220			x-on:member-joined.window="hideJoinSection = true"
5221			x-show="!hideJoinSection"
5222		></div>
5223
5224		<!-- Sticky Join Section -->
5225		<div
5226			class="absolute bottom-0 left-0 right-0 bg-white px-6 py-4 border-t border-gray-100"
5227			x-data="{ hideJoinSection: false, isLoggedIn: false }"
5228			x-on:member-joined.window="hideJoinSection = true"
5229			x-show="!hideJoinSection"
5230		>
5231	<div>
5232	<button
5233		type="button"
5234		x-on:click="isLoggedIn ? window.dispatchEvent(new CustomEvent('create-member-direct')) : window.dispatchEvent(new CustomEvent('show-register-form'))"
5235		class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
5235w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
5236		style="--tw-ring-color: var(--rwp-accent);"
5237	>
5238			Join now	</button>
5239		</div>
5240				<div x-show="!isLoggedIn" x-cloak class="mt-3 text-center text-rwp-widget-text">
5241					<p class="text-sm">
5242						Already have an account?						<button
5243							x-on:click="navigateToPanel('main', { resetScroll: true }); $dispatch('show-login-form');"
5244							class="font-medium underline text-rwp-accent cursor-pointer"
5245						>Sign in</button>
5246					</p>
5247				</div>
5248			</div>
5249		</div>
5250					</div>
5251
5252			<div
5253		x-show="currentPanel === 'birthday-picker'"
5254		x-bind:class="'relative h-full flex flex-col ' + (currentPanel === 'birthday-picker' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5255	>
5256		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 text-rwp-widget-text">
5257
5258			<!-- Success State -->
5259			<div x-show="birthdaySuccess" x-transition class="text-center">
5260				<div class="flex justify-center mb-3">
5261					<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>				</div>
5262				<h3 class="text-lg font-semibold text-rwp-widget-heading mb-1">Birthday set!</h3>
5263				<template x-if="birthdayRewardDate">
5264					<p class="text-sm text-gray-500 mb-6">You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on <span x-text="birthdayRewardDate"></span></p>
5265				</template>
5266				<template x-if="!birthdayRewardDate">
5267					<p class="text-sm text-gray-500 mb-6">You&#039;ll earn bonus points on your special day!</p>
5268				</template>
5269				<button
5270					type="button"
5271					x-on:click="resetBirthdayPicker(); navigateToPanel('ways-to-earn')"
5272					class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
5273				>
5274					Keep earning				</button>
5275			</div>
5276
5277			<!-- Form State -->
5278			<div x-show="!birthdaySuccess">
5279				<div class="text-center mb-4">
5280					<div class="flex justify-center mx-auto mb-3">
5281						<svg class="size-10 text-rwp-widget-icon-text" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
5282			<desc>Birthday cake icon</desc>
5283			<path d="M3.08108 11.7027H20.9189C20.9189 11.7027 22.7027 11.7027 22.7027 13.4865V21.2162C22.7027 21.2162 22.7027 23 20.9189 23H3.08108C3.08108 23 1.2973 23 1.2973 21.2162V13.4865C1.2973 13.4865 1.2973 11.7027 3.08108 11.7027Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5284			<path d="M12 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5285			<path d="M13.7838 3.67568C13.7838 4.14876 13.5959 4.60248 13.2613 4.937C12.9268 5.27153 12.4731 5.45946 12 5.45946C11.5269 5.45946 11.0732 5.27153 10.7387 4.937C10.4041 4.60248 10.2162 4.14876 10.2162 3.67568C10.2162 2.68865 12 1 12 1C12 1 13.7838 2.68865 13.7838 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5286			<path d="M19.1351 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5287			<path d="M20.9189 3.67568C20.9189 4.14876 20.731 4.60248 20.3965 4.937C20.0619 5.27153 19.6082 5.45946 19.1351 5.45946C18.662 5.45946 18.2083 5.27153 17.8738 4.937C17.5393 4.60248 17.3514 4.14876 17.3514 3.67568C17.3514 2.68865 19.1351 1 19.1351 1C19.1351 1 20.9189 2.68865 20.9189 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5288			<path d="M4.86486 9.02703V11.7027" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5289			<path d="M6.64865 3.67568C6.64865 4.14876 6.46071 4.60248 6.12619 4.937C5.79167 5.27153 5.33795 5.45946 4.86486 5.45946C4.39178 5.45946 3.93806 5.27153 3.60354 4.937C3.26901 4.60248 3.08108 4.14876 3.08108 3.67568C3.08108 2.68865 4.86486 1 4.86486 1C4.86486 1 6.64865 2.68865 6.64865 3.67568Z" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5290			<path d="M1.2973 17.0184C1.57132 17.4845 1.96234 17.8709 2.43166 18.1394C2.90097 18.4079 3.43228 18.5492 3.97297 18.5492C4.51367 18.5492 5.04498 18.4079 5.51429 18.1394C5.9836 17.8709 6.37463 17.4845 6.64865 17.0184C6.92267 17.4845 7.3137 17.8709 7.78301 18.1394C8.25232 18.4079 8.78363 18.5492 9.32432 18.5492C9.86502 18.5492 10.3963 18.4079 10.8656 18.1394C11.335 17.8709 11.726 17.4845 12 17.0184C12.274 17.4845 12.665 17.8709 13.1344 18.1394C13.6037 18.4079 14.135 18.5492 14.6757 18.5492C15.2164 18.5492 15.7477 18.4079 16.217 18.1394C16.6863 17.8709 17.0773 17.4845 17.3514 17.0184C17.6254 17.4845 18.0164 17.8709 18.4857 18.1394C18.955 18.4079 19.4863 18.5492 20.027 18.5492C20.5677 18.5492 21.099 18.4079 21.5683 18.1394C22.0377 17.8709 22.4287 17.4845 22.7027 17.0184" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
5291			</svg>					</div>
5292					<h3 class="text-lg font-semibold text-rwp-widget-heading mb-3 text-center" x-text="birthdayIsEditing ? 'Update your birthday' : 'When is your birthday?'"></h3>
5293					<p class="text-sm text-gray-500">
5294						<template x-if="birthdayRewardPreview">
5295							<span>You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on <span x-text="birthdayRewardPreview.rewardDate"></span></span>
5296						</template>
5297						<template x-if="!birthdayRewardPreview">
5298							<span>You&#039;ll earn <span x-text="birthdayPoints + ' ' + currencyPlural"></span> on your special day!</span>
5299						</template>
5300					</p>
5301				</div>
5302
5303								<form x-on:submit.prevent="submitBirthday()">
5304					<div class="grid gap-3 mb-4 grid-cols-[1fr_6rem]">
5305												<div class="grid grid-cols-1">
5306							<label for="rwp-birthday-month" class="sr-only">Month</label>
5307							<select
5308								id="rwp-birthday-month"
5309								x-model="birthdayMonth"
5310								x-on:change="if (!birthdayDay) { setTimeout(() => $refs.birthdayDaySelect?.focus(), 300) }"
5311								class="col-start-1 row-start-1 w-full appearance-none bg-white text-base px-3 py-3 pr-8 rounded-lg outline-1 -outline-offset-1 outline-gray-200 focus:outline-2 focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5312								required
5313							>
5314								<option value="">Month</option>
5315								<option value="1">January</option>
5316								<option value="2">February</option>
5317								<option value="3">March</option>
5318								<option value="4">April</option>
5319								<option value="5">May</option>
5320								<option value="6">June</option>
5321								<option value="7">July</option>
5322								<option value="8">August</option>
5323								<option value="9">September</option>
5324								<option value="10">October</option>
5325								<option value="11">November</option>
5326								<option value="12">December</option>
5327							</select>
5328							<svg class="pointer-events-none col-start-1 row-start-1 mr-3 size-4 self-center justify-self-end text-gray-500" viewB
5328ox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" /></svg>						</div>
5329												<div class="grid grid-cols-1">
5330							<label for="rwp-birthday-day" class="sr-only">Day</label>
5331							<select
5332								id="rwp-birthday-day"
5333								x-model="birthdayDay"
5334								x-ref="birthdayDaySelect"
5335								class="col-start-1 row-start-1 w-full appearance-none bg-white text-base px-3 py-3 pr-8 rounded-lg outline-1 -outline-offset-1 outline-gray-200 focus:outline-2 focus:-outline-offset-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5336								required
5337							>
5338								<option value="">Day</option>
5339								<template x-for="d in birthdayDaysInMonth" :key="d">
5340									<option :value="d" :selected="String(d) === birthdayDay" x-text="d"></option>
5341								</template>
5342							</select>
5343							<svg class="pointer-events-none col-start-1 row-start-1 mr-3 size-4 self-center justify-self-end text-gray-500" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" /></svg>						</div>
5344											</div>
5345
5346
5347					<!-- Error Message (server validation errors only) -->
5348					<div x-show="birthdayError" x-transition class="mb-4 p-3 bg-red-50 border border-red-200 rounded-lg">
5349						<p class="text-sm text-red-700" x-text="birthdayError"></p>
5350					</div>
5351
5352					<button
5353						type="submit"
5354						x-show="!birthdayIsEditing || birthdayChanged"
5355						x-bind:class="birthdaySubmitting ? 'pointer-events-none' : ''"
5356						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
5357					>
5358						<span
5359							class="[grid-area:stack] transition-opacity duration-200"
5360							x-bind:class="{ 'invisible': birthdaySubmitting, 'visible': !birthdaySubmitting }"
5361							x-text="birthdayIsEditing ? 'Update birthday' : 'Set my birthday'"
5362						></span>
5363						<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: birthdaySubmitting !== true, &apos;visible&apos;: birthdaySubmitting === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>					</button>
5364				</form>
5365			</div>
5366
5367		</div>
5368	</div>
5369
5370			<div
5371		x-show="currentPanel === 'ways-to-redeem'"
5372		x-bind:class="'ways-to-redeem-panel relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'ways-to-redeem' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5373		x-data="{ panelAtTop: true, panelAtBottom: false }"
5374		x-effect="if (currentPanel === 'ways-to-redeem') { const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
5375	>
5376		<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-32 text-rwp-widget-text"
5377			@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
5378		>
5379
5380			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Ways to redeem</h2>
5381
5382						<div class="divide-y divide-gray-50" x-data="redeemManager">
5383																<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_1">
5384								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5385									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5386			<desc>
5387				Fixed amount discount icon
5388			</desc>
5389			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5390			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5391			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5392			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5393			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5394			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5395			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5396			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5397			</svg>								</div>
5398							<div class="min-w-0">
5399								<div class="text-sm font-medium text-gray-900">$5 off coupon</div>
5400								<div class="text-xs text-gray-500 mt-1">500 Points</div>
5401
5402									<!-- Success Message -->
5403									<div x-show="redeemStates['fixed_discount_spend_1']?.success" x-transition class="text-sm text-green-600 mt-1">
5404										<div class="flex items-center gap-2">
5405											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
5406												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
5407											</svg>
5408											Coupon generated and applied to cart!										</div>
5409									</div>
5410
5411									<!-- Error Message -->
5412									<div x-show="redeemStates['fixed_discount_spend_1']?.error" x-transition class="text-sm text-red-600 mt-1">
5413										<div class="flex items-center gap-2">
5414
5415											<span x-text="redeemStates['fixed_discount_spend_1']?.errorMessage"></span>
5416										</div>
5417									</div>
5418								</div>
5419
5420									<div class="justify-self-end" x-show="memberId" x-cloak >
5421					<button
5422													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$5 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_1', 'fixed_discount_spend_1'); }"
5423							x-bind:disabled="redeemStates['fixed_discount_spend_1']?.redeeming || (userData?.points ?? 0) < 500"
5424																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5425						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5426						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5427												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5428					>
5429							<span
5430								class="[grid-area:stack] transition-opacity duration-200"
5431																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_1']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_1']?.redeeming }"
5432															>Redeem</span>
5433							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
5433os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_1&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_1&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
5434					</div>
5435
5436					</div>
5437																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_2">
5438								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5439									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5440			<desc>
5441				Fixed amount discount icon
5442			</desc>
5443			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5444			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5445			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5446			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5447			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5448			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5449			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5450			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5451			</svg>								</div>
5452							<div class="min-w-0">
5453								<div class="text-sm font-medium text-gray-900">$10 off coupon</div>
5454								<div class="text-xs text-gray-500 mt-1">1,000 Points</div>
5455
5456									<!-- Success Message -->
5457									<div x-show="redeemStates['fixed_discount_spend_2']?.success" x-transition class="text-sm text-green-600 mt-1">
5458										<div class="flex items-center gap-2">
5459											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
5460												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
5461											</svg>
5462											Coupon generated and applied to cart!										</div>
5463									</div>
5464
5465									<!-- Error Message -->
5466									<div x-show="redeemStates['fixed_discount_spend_2']?.error" x-transition class="text-sm text-red-600 mt-1">
5467										<div class="flex items-center gap-2">
5468
5469											<span x-text="redeemStates['fixed_discount_spend_2']?.errorMessage"></span>
5470										</div>
5471									</div>
5472								</div>
5473
5474									<div class="justify-self-end" x-show="memberId" x-cloak >
5475					<button
5476													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$10 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_2', 'fixed_discount_spend_2'); }"
5477							x-bind:disabled="redeemStates['fixed_discount_spend_2']?.redeeming || (userData?.points ?? 0) < 1000"
5478																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5479						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5480						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5481												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5482					>
5483							<span
5484								class="[grid-area:stack] transition-opacity duration-200"
5485																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_2']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_2']?.redeeming }"
5486															>Redeem</span>
5487							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
5487os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_2&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_2&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
5488					</div>
5489
5490					</div>
5491																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="spend_3">
5492								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5493									<svg class="size-8" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5494			<desc>
5495				Fixed amount discount icon
5496			</desc>
5497			<path d="M19.575 8.25a3.755 3.755 0 0 1 3.049 -2.95 0.749 0.749 0 0 0 0.626 -0.738V2.25a1.5 1.5 0 0 0 -1.5 -1.5H2.25a1.5 1.5 0 0 0 -1.5 1.5v2.314a0.747 0.747 0 0 0 0.626 0.738 3.751 3.751 0 0 1 0 7.4 0.75 0.75 0 0 0 -0.626 0.739v2.309a1.5 1.5 0 0 0 1.5 1.5h6" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5498			<path d="m8.25 14.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5499			<path d="m8.25 9.75 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5500			<path d="m8.25 5.25 0 -1.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5501			<path d="M18.75 14.25h-2.033a1.342 1.342 0 0 0 -0.5 2.588l2.064 0.825a1.342 1.342 0 0 1 -0.5 2.587H15.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5502			<path d="m17.25 14.25 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5503			<path d="m17.25 21 0 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5504			<path d="M11.25 17.25a6 6 0 1 0 12 0 6 6 0 1 0 -12 0Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5505			</svg>								</div>
5506							<div class="min-w-0">
5507								<div class="text-sm font-medium text-gray-900">$20 off coupon</div>
5508								<div class="text-xs text-gray-500 mt-1">2,000 Points</div>
5509
5510									<!-- Success Message -->
5511									<div x-show="redeemStates['fixed_discount_spend_3']?.success" x-transition class="text-sm text-green-600 mt-1">
5512										<div class="flex items-center gap-2">
5513											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
5514												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
5515											</svg>
5516											Coupon generated and applied to cart!										</div>
5517									</div>
5518
5519									<!-- Error Message -->
5520									<div x-show="redeemStates['fixed_discount_spend_3']?.error" x-transition class="text-sm text-red-600 mt-1">
5521										<div class="flex items-center gap-2">
5522
5523											<span x-text="redeemStates['fixed_discount_spend_3']?.errorMessage"></span>
5524										</div>
5525									</div>
5526								</div>
5527
5528									<div class="justify-self-end" x-show="memberId" x-cloak >
5529					<button
5530													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '$20 off coupon'; redeemPointsForCoupon('fixed_discount', 'spend_3', 'fixed_discount_spend_3'); }"
5531							x-bind:disabled="redeemStates['fixed_discount_spend_3']?.redeeming || (userData?.points ?? 0) < 2000"
5532																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5533						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5534						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5535												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5536					>
5537							<span
5538								class="[grid-area:stack] transition-opacity duration-200"
5539																x-bind:class="{ 'invisible': redeemStates['fixed_discount_spend_3']?.redeeming, 'visible': !redeemStates['fixed_discount_spend_3']?.redeeming }"
5540															>Redeem</span>
5541							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
5541os;invisible&apos;: redeemStates[&apos;fixed_discount_spend_3&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;fixed_discount_spend_3&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
5542					</div>
5543
5544					</div>
5545																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="percentage_discount_1773471154354_l6qm499m0">
5546								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5547									<svg class="size-8" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
5548			<desc>
5549				Percentage discount icon
5550			</desc>
5551			<g>
5552				<path d="M23.25 15v3.5a1.5 1.5 0 0 1 -1.5 1.5H2.25a1.5 1.5 0 0 1 -1.5 -1.5V15a3 3 0 0 0 0 -6V5.5A1.5 1.5 0 0 1 2.25 4h19.5a1.5 1.5 0 0 1 1.5 1.5V9a3 3 0 0 0 0 6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5553				<path d="M7.25 9a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5554				<path d="M14.5 15a1.5 1.5 0 1 0 3 0 1.5 1.5 0 1 0 -3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5555				<path d="m15.75 8.25 -7.5 7.5" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5556			</g>
5557			</svg>								</div>
5558							<div class="min-w-0">
5559								<div class="text-sm font-medium text-gray-900">10% off coupon</div>
5560								<div class="text-xs text-gray-500 mt-1">10,000 Points</div>
5561
5562									<!-- Success Message -->
5563									<div x-show="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.success" x-transition class="text-sm text-green-600 mt-1">
5564										<div class="flex items-center gap-2">
5565											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
5566												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
5567											</svg>
5568											Coupon generated and applied to cart!										</div>
5569									</div>
5570
5571									<!-- Error Message -->
5572									<div x-show="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.error" x-transition class="text-sm text-red-600 mt-1">
5573										<div class="flex items-center gap-2">
5574
5575											<span x-text="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.errorMessage"></span>
5576										</div>
5577									</div>
5578								</div>
5579
5580									<div class="justify-self-end" x-show="memberId" x-cloak >
5581					<button
5582													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = '10% off coupon'; redeemPointsForCoupon('percentage_discount', 'percentage_discount_1773471154354_l6qm499m0', 'percentage_discount_percentage_discount_1773471154354_l6qm499m0'); }"
5583							x-bind:disabled="redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming || (userData?.points ?? 0) < 10000"
5584																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5585						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5586						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5587												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5588					>
5589							<span
5590								class="[grid-area:stack] transition-opacity duration-200"
5591																x-bind:class="{ 'invisible': redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming, 'visible': !redeemStates['percentage_discount_percentage_discount_1773471154354_l6qm499m0']?.redeeming }"
5592															>Redeem</span>
5593							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
5593os;invisible&apos;: redeemStates[&apos;percentage_discount_percentage_discount_1773471154354_l6qm499m0&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;percentage_discount_percentage_discount_1773471154354_l6qm499m0&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
5594					</div>
5595
5596					</div>
5597																	<div class="grid grid-cols-[auto_1fr_auto] items-center gap-4 py-4" data-action-id="free_product_1774022853187_2dkxwkikl">
5598								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text">
5599									<svg xmlns="http://www.w3.org/2000/svg" class="size-8" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>								</div>
5600							<div class="min-w-0">
5601								<div class="text-sm font-medium text-gray-900">Free Add photos to your MLS listing – Add up to 25 photos to MLS</div>
5602								<div class="text-xs text-gray-500 mt-1">1,000 Points</div>
5603
5604									<!-- Success Message -->
5605									<div x-show="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.success" x-transition class="text-sm text-green-600 mt-1">
5606										<div class="flex items-center gap-2">
5607											<svg class="size-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
5608												<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
5609											</svg>
5610											Coupon generated and applied to cart!										</div>
5611									</div>
5612
5613									<!-- Error Message -->
5614									<div x-show="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.error" x-transition class="text-sm text-red-600 mt-1">
5615										<div class="flex items-center gap-2">
5616
5617											<span x-text="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.errorMessage"></span>
5618										</div>
5619									</div>
5620								</div>
5621
5622									<div class="justify-self-end" x-show="memberId" x-cloak >
5623					<button
5624													x-on:click="if (!isAdminPreview) { redeemSuccessData.redeemedLabel = 'Free Add photos to your MLS listing – Add up to 25 photos to MLS'; redeemPointsForCoupon('free_product', 'free_product_1774022853187_2dkxwkikl', 'free_product_free_product_1774022853187_2dkxwkikl'); }"
5625							x-bind:disabled="redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming || (userData?.points ?? 0) < 1000"
5626																		x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
5627						x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
5628						x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
5629												class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center min-h-[36px] min-w-[5rem]"
5630					>
5631							<span
5632								class="[grid-area:stack] transition-opacity duration-200"
5633																x-bind:class="{ 'invisible': redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming, 'visible': !redeemStates['free_product_free_product_1774022853187_2dkxwkikl']?.redeeming }"
5634															>Redeem</span>
5635							<svg class="size-4 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
5635os;invisible&apos;: redeemStates[&apos;free_product_free_product_1774022853187_2dkxwkikl&apos;]?.redeeming !== true, &apos;visible&apos;: redeemStates[&apos;free_product_free_product_1774022853187_2dkxwkikl&apos;]?.redeeming === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
5636					</div>
5637
5638					</div>
5639									</div>
5640					</div>
5641
5642		<!-- Top scroll fade -->
5643		<div x-show="!panelAtTop"
5644			class="pointer-events-none absolute top-0 left-0 h-8 z-10"
5645			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
5646		<!-- Bottom scroll fade — hidden when guest join section is visible -->
5647		<div x-show="!panelAtBottom && memberId !== 0"
5648			class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
5649			style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
5650
5651				<div x-show="memberId === 0">
5652		<!-- Fade Overlay -->
5653		<div
5654			class="absolute bottom-0 left-0 right-0 h-24 pointer-events-none"
5655			style="background: linear-gradient(to top, var(--color-rwp-widget-bg), var(--color-rwp-widget-bg) 20%, transparent);"
5656			x-data="{ hideJoinSection: false }"
5657			x-on:member-joined.window="hideJoinSection = true"
5658			x-show="!hideJoinSection"
5659		></div>
5660
5661		<!-- Sticky Join Section -->
5662		<div
5663			class="absolute bottom-0 left-0 right-0 bg-white px-6 py-4 border-t border-gray-100"
5664			x-data="{ hideJoinSection: false, isLoggedIn: false }"
5665			x-on:member-joined.window="hideJoinSection = true"
5666			x-show="!hideJoinSection"
5667		>
5668	<div>
5669	<button
5670		type="button"
5671		x-on:click="isLoggedIn ? window.dispatchEvent(new CustomEvent('create-member-direct')) : window.dispatchEvent(new CustomEvent('show-register-form'))"
5672		class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center"
5673	>
5674			Join now		</button>
5675		</div>
5676				<div x-show="!isLoggedIn" x-cloak class="mt-3 text-center text-rwp-widget-text">
5677					<p class="text-sm text-gray-600">
5678						Already have an account?						<button
5679							x-on:click="navigateToPanel('main', { resetScroll: true }); $dispatch('show-login-form');"
5680							class="font-medium underline text-rwp-accent cursor-pointer"
5681						>Sign in</button>
5682					</p>
5683				</div>
5684			</div>
5685		</div>
5686					</div>
5687
5688
5689
5690				<div
5691			x-show="currentPanel === 'activity'"
5692			x-init="$watch('currentPanel', value => {
5693				if (value === 'activity') {
5694					if (activityItems.length === 0 || needsActivityRefresh) {
5695						if (needsActivityRefresh && activityTab === 'points') {
5696							activityItems = [];
5697							activityPage = 1;
5698							activityHasMore = false;
5699							activityCache = {};
5700						}
5701						loadActivity();
5702						needsActivityRefresh = false;
5703					}
5704				}
5705			})"
5706			x-bind:class="'relative h-full flex flex-col ' + (currentPanel === 'activity' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5707		>
5708			<div class="shrink-0 px-6 pt-6 text-rwp-widget-text">
5709				<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3">Activity</h2>
5710				<!-- Segmented Control (hidden when only one tab is available) -->
5711				<div class="relative w-full mb-3" x-show="(pointsEnabled || (!!memberId && userData.points > 0)) && referralsEnabled">
5712					<div class="relative inline-grid items-center justify-center w-full h-10 grid-cols-2 p-1 text-gray-500 bg-gray-100 rounded-xl select-none" role="tablist">
5713						<button
5714							x-ref="activityPointsBtn"
5715							x-show="pointsEnabled || (!!memberId && userData.points > 0)"
5716							x-on:click="switchActivityTab('points')"
5717							type="button"
5718							class="relative z-20 inline-flex items-center justify-center w-full h-8 px-3 text-sm font-medium transition-all rounded-md cursor-pointer whitespace-nowrap focu
5718s-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5719							x-bind:class="activityTab === 'points' ? 'text-gray-900' : 'text-gray-500'"
5720							role="tab"
5721							x-bind:aria-selected="activityTab === 'points'"
5722						>
5723							Points						</button>
5724						<button
5725							x-ref="activityReferralsBtn"
5726							x-show="referralsEnabled"
5727							x-on:click="switchActivityTab('referrals')"
5728							type="button"
5729							class="relative z-20 inline-flex items-center justify-center w-full h-8 px-3 text-sm font-medium transition-all rounded-md cursor-pointer whitespace-nowrap focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5730							x-bind:class="activityTab === 'referrals' ? 'text-gray-900' : 'text-gray-500'"
5731							role="tab"
5732							x-bind:aria-selected="activityTab === 'referrals'"
5733						>
5734							Referrals						</button>
5735						<div class="absolute z-10 bg-white rounded-lg shadow-sm left-1 top-1 transition-transform duration-350 ease-[cubic-bezier(0.22,1.3,0.36,1)]" x-bind:style="'width: calc(50% - 4px); height: 32px; transform: translateX(' + ({'points': 0, 'referrals': 100}[activityTab] ?? 0) + '%)'"></div>
5736					</div>
5737				</div>
5738			</div>
5739			<div class="relative flex-1 min-h-0">
5740			<div x-ref="activityScroll" x-on:scroll.passive="syncActivityFade()" class="h-full overflow-y-auto custom-scrollbar px-6 pt-1 pb-6 text-rwp-widget-text">
5741
5742				<!-- Loading State -->
5743				<div x-show="activityLoading" class="flex items-center justify-center py-8">
5744					<div class="animate-spin size-6 border-2 border-gray-200 border-t-gray-600 rounded-full"></div>
5745				</div>
5746
5747				<!-- Activity List -->
5748				<div x-show="!activityLoading">
5749					<!-- Empty State - Points Tab -->
5750					<template x-if="activityItems.length === 0 && !activityLoading && activityTab === 'points'">
5751						<div class="text-center py-8">
5752							<div class="flex justify-center mb-3">
5753								<svg class="size-10 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24">
5754			<desc>
5755				Points activity icon
5756			</desc>
5757			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12 2V1" stroke-width="1.5"></path>
5758			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m12 23 0 -2.7661" stroke-width="1.5"></path>
5759			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M1 12h2.71875" stroke-width="1.5"></path>
5760			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M20.2812 12H23" stroke-width="1.5"></path>
5761			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m6.0625 19.2258 -2.01636 2.0164" stroke-width="1.5"></path>
5762			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m17.9375 5.03979 2.0164 -2.01635" stroke-width="1.5"></path>
5763			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6.0625 5.03979 4.04614 3.02344" stroke-width="1.5"></path>
5764			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m17.9375 18.9602 2.0164 2.0164" stroke-width="1.5"></path>
5765			<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m12.4169 4.69626 1.9151 3.82921 3.6838 0.36877c0.0879 0.00861 0.1715 0.04201 0.2412 0.09631 0.0696 0.0543 0.1224 0.12727 0.1522 0.21041 0.0297 0.08314 0.0352 0.17302 0.0159 0.25918 -0.0193 0.08616 -0.0628 0.16505 -0.1252 0.22748L15.264 12.7225l1.1256 4.1238c0.0235 0.0869 0.0214 0.1787 -0.006 0.2644 -0.0275 0.0857 -0.0791 0.1616 -0.1486 0.2187 -0.0696 0.057 -0.1542 0.0928 -0.2436 0.1029 -0.0894 0.0101 -0.1798 -0.0058 -0.2604 -0.0458L12 15.5205l-3.73099 1.8679c-0.08052 0.0402 -0.17096 0.0562 -0.2604 0.0462 -0.08943 -0.0101 -0.17403 -0.0459 -0.24358 -0.103 -0.06955 -0.0571 -0.12107 -0.1332 -0.14833 -0.2189 -0.02727 -0.0858 -0.02911 -0.1776 -0.00531 -0.2644l1.1246 -4.1258 -3.03584 -3.03681c-0.06245 -0.06243 -0.10588 -0.14132 -0.12523 -0.22748 -0.01935 -0.08615 -0.01382 -0.17604 0.01595 -0.25918 0.02976 -0.08313 0.08254 -0.1561 0.15217 -0.21041 0.06964 -0.0543 0.15327 -0.0877 0.24115 -0.09631l3.68382 -0.36876 1.91509 -3.82922c0.0389 -0.07736 0.0985 -0.14238 0.1723 -0.18774 0.0737 -0.04536 0.1586 -0.06929 0.2452 -0.06909 0.0866 0.0002 0.1714 0.02452 0.2449 0.07022 0.0736 0.04571 0.1329 0.11099 0.1714 0.18854Z" stroke-width="1.5"></path>
5766			</svg>							</div>
5767							<h3 class="text-lg font-medium text-gray-900 mb-1" x-text="'No ' + currencyPlural + ' yet'"></h3>
5768							<p class="text-sm text-gray-500 mb-4" x-text="'See all the ways you can earn ' + currencyPlural"></p>
5769							<button
5770								x-on:click="navigateToPanel('ways-to-earn')"
5771								class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-rwp-brand hover:bg-rwp-brand-hover cursor-pointer transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-rwp-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5772							>
5773								<span x-text="'Earn ' + currencyPlural"></span>
5774							</button>
5775						</div>
5776					</template>
5777
5778					<!-- Empty State - Referrals Tab -->
5779					<template x-if="activityItems.length === 0 && !activityLoading && activityTab === 'referrals'">
5780						<div class="text-center py-8">
5781							<div class="flex justify-center mb-3">
5782								<svg class="size-10 text-gray-400" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
5783			<desc>
5784				Refer a friend icon
5785			</desc>
5786			<path d="m3.132 12.8 0.448 -1.175 -1.046 -2.744a0.929 0.929 0 0 1 0.36 -1.107l2.458 -1.605 0.767 -2.834a0.928 0.928 0 0 1 0.942 -0.684l2.932 0.149L12.279 0.955a0.928 0.928 0 0 1 1.165 0L15.73 2.8l2.932 -0.146a0.928 0.928 0 0 1 0.942 0.684l0.767 2.834 2.458 1.605a0.928 0.928 0 0 1 0.36 1.107l-1.045 2.744 1.045 2.743a0.929 0.929 0 0 1 -0.36 1.108l-2.458 1.6 -0.771 2.835a0.927 0.927 0 0 1 -0.942 0.685l-2.932 -0.146 -2.286 1.841" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5787			<path d="m0.75 19.769 1.656 2.609" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5788			<path d="m9.908 8.147 6.294 9.916" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5789			<path d="M15.871 17.541 2.075 21.857l-0.994 -1.566 9.158 -11.622 5.632 8.872z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5790			<path d="m5.056 20.924 0.876 1.346a2.041 2.041 0 0 0 2.906 0.614 2.256 2.256 0 0 0 0.587 -3.04l-0.163 -0.236" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
5791			</svg>							</div>
5792							<h3 class="text-lg font-medium text-gray-900 mb-1">No referrals yet</h3>
5793							<p class="text-sm text-gray-500 mb-4">When friends shop using your referral link, you&#039;ll see their activity here</p>
5794							<button
5795								x-on:click="navigateToPanel('main')"
5796								class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-rwp-brand hover:bg-rwp-brand-hover cursor-pointer transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-rwp-brand focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5797							>
5798								Invite friends							</button>
5799						</div>
5800					</template>
5801
5802					<!-- Referral Summary Row (shown above activity items when referrals tab has data) -->
5803					<div x-show="activityTab === 'referrals' && activityItems.length > 0 && activityStatusCounts" class="flex items-center gap-2 text-sm text-gray-500 pb-2 mb-1">
5804						<span x-text="(activityStatusCounts ? activityStatusCounts.completed : 0) + ' completed'"></span>
5805						<span x-show="activityStatusCounts && !!activityStatusCounts.pending">&middot;</span>
5806						<span x-show="activityStatusCounts && !!activityStatusCounts.pending" x-text="(activityStatusCounts ? activityStatusCounts.pending : 0) + ' pending'"></span>
5807					</div>
5808
5809					<!-- Activity Items -->
5810					<div class="divide-y divide-gray-100">
5811						<template x-for="item in activityItems" x-bind:key="item.id">
5812							<div class="py-3">
5813								<div class="flex items-start justify-between gap-4">
5814									<!-- Left column: Description + Date -->
5815									<div class="flex-1 min-w-0">
5816										<!-- Referrals tab: Separate friend_name (semi-bold) and action_text (normal) -->
5817										<template x-if="activityTab === 'referrals' && item.friend_name">
5818											<p class="text-sm text-gray-900">
5819												<span class="font-semibold" x-text="item.friend_name"></span>
5820												<template x-if="item.action_text">
5821													<span class="font-normal" x-text="' ' + item.action_text"></span>
5822												</template>
5823											</p>
5824										</template>
5825										<!-- Points/other tabs: Primary line: Reward/action name -->
5826										<template x-if="activityTab !== 'referrals' || !item.friend_name">
5827											<p class="text-sm text-gray-900" x-text="item.target || item.action"></p>
5828										</template>
5829										<!-- Small text for order_id (refunds) -->
5830										<template x-if="item.order_id">
5831											<p class="text-xs text-gray-400 mt-0.5" x-text="'#' + item.order_id"></p>
5832										</template>
5833										<!-- Small text for product_name (product reviews) -->
5834										<template x-if="item.product_name">
5835											<p class="text-xs text-gray-400 mt-0.5" x-text="item.product_name"></p>
5836										</template>
5837										<!-- Secondary line: Date (all tabs) -->
5838										<p class="text-xs text-gray-500 mt-0.5" x-text="item.date"></p>
5839									</div>
5840									<!-- Right column: Points value + currency OR Status pill -->
5841									<div class="flex-shrink-0 text-right">
5842										<!-- Points tab: Point value (with inline pending badge) + currency name below -->
5843										<template x-if="activityTab === 'points' && item.points !== undefined">
5844											<div>
5845												<div class="flex items-center justify-end gap-1.5">
5846													<p x-bind:class="item.source_type === 'points_expiration' ? 'text-gray-500' : (item.is_deduction ? 'text-gray-700' : (item.status === 'pending' ? 'text-gray-500' : 'text-emerald-600'))"
5847														class="text-sm font-semibold"
5848														x-text="(item.is_deduction ? '-' : '+') + Math.abs(item.points).toLocaleStr
5848ing()">
5849													</p>
5850													<span x-show="item.status === 'pending'"
5851														class="text-[11px] text-gray-500">
5852														Pending													</span>
5853												</div>
5854												<p class="text-xs text-gray-500 mt-0.5 text-right"
5855													x-text="getCurrencyName(Math.abs(item.points))">
5856												</p>
5857											</div>
5858										</template>
5859										<!-- Referrals/rewards tab: Status badge -->
5860										<template x-if="activityTab !== 'points' && item.status">
5861											<span
5862												x-bind:class="{
5863													'bg-emerald-50 text-emerald-700 border border-emerald-100': item.status === 'completed' || item.status === 'redeemed',
5864													'bg-amber-50 text-amber-700 border border-amber-100': item.status === 'pending',
5865													'bg-gray-50 text-gray-700 border border-gray-200': item.status === 'issued',
5866													'bg-red-50 text-red-700 border border-red-100': item.status === 'blocked' || item.status === 'rejected',
5867													'bg-gray-100 text-gray-600 border border-gray-200': item.status === 'canceled'
5868												}"
5869												class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium mt-0.5"
5870												x-text="({
5871													completed: 'Completed',
5872													redeemed: 'Redeemed',
5873													pending: 'Pending',
5874													issued: 'Issued',
5875													blocked: 'Blocked',
5876													rejected: 'Rejected',
5877													canceled: 'Canceled',
5878													expired: 'Expired'
5879												})[item.status] || (item.status.charAt(0).toUpperCase() + item.status.slice(1))"
5880											></span>
5881										</template>
5882									</div>
5883								</div>
5884							</div>
5885						</template>
5886					</div>
5887
5888					<!-- Load More -->
5889					<div x-show="activityHasMore" class="mt-4 text-center">
5890						<button
5891							x-on:click="loadMoreActivity()"
5892							x-bind:disabled="activityLoadingMore"
5893							class="text-sm text-gray-600 hover:text-gray-900 font-medium cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500"
5894						>
5895							<span x-show="!activityLoadingMore">Load more</span>
5896							<span x-show="activityLoadingMore" class="inline-flex items-center gap-1.5">
5897								<span class="animate-spin size-3.5 border-2 border-gray-200 border-t-gray-600 rounded-full"></span>
5898								Loading...							</span>
5899						</button>
5900					</div>
5901				</div>
5902			</div>
5903			<!-- Top scroll fade -->
5904			<div
5905				x-show="activityShowTopFade"
5906				class="pointer-events-none absolute top-0 left-0 h-8 z-10"
5907				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"
5908			></div>
5909			<!-- Bottom scroll fade -->
5910			<div
5911				x-show="activityShowFade"
5912				class="pointer-events-none absolute bottom-0 left-0 h-12 rounded-b-2xl"
5913				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"
5914			></div>
5915			</div>
5916		</div>
5917
5918				<div
5919			x-show="currentPanel === 'create-account-prompt'"
5920			x-bind:class="'create-account-prompt-panel relative h-full flex flex-col ' + (currentPanel === 'create-account-prompt' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5921		>
5922			<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 text-rwp-widget-text">
5923				<!-- Icon and Header -->
5924				<div class="text-center mb-6">
5925
5926					<div class="relative inline-block mb-2">
5927						<!-- Main reward icon -->
5928						<div class="size-10 flex items-center justify-center text-rwp-widget-text/45" x-show="lockedReward" x-html="lockedReward?.iconHtml">
5929							<!-- Icon will be populated by Alpine -->
5930						</div>
5931					</div>
5932					<h2 class="text-2xl font-bold text-rwp-widget-heading mb-3">
5933						<span x-show="lockedReward" x-text="lockedReward?.title"></span>
5934					</h2>
5935					<p class="text-sm text-rwp-widget-text">
5936						Requires an account to redeem					</p>
5937
5938				</div>
5939
5940				<!-- Benefits List -->
5941				<div class="space-y-3 mb-8">
5942					<div class="flex items-start gap-3">
5943						<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>						<div class="flex-1">
5944							<p class="text-sm font-medium text-rwp-widget-heading">
5945								Redeem rewards now							</p>
5946							<p class="text-sm text-rwp-widget-text">
5947								Turn your <span x-text="currencyPlural.toLowerCase()"></span> into discounts and perks							</p>
5948						</div>
5949					</div>
5950					<div class="flex items-start gap-3">
5951						<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>						<div class="flex-1">
5952							<p class="text-sm font-medium text-rwp-widget-heading">
5953								Instant setup							</p>
5954							<p class="text-sm text-rwp-widget-text">
5955								One click and you&#039;re ready to go							</p>
5956						</div>
5957					</div>
5958											<div class="flex items-start gap-3">
5959							<svg class="size-5 text-emerald-500 flex-shrink-0 mt-0.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>							<div class="flex-1">
5960								<p class="text-sm font-medium text-rwp-widget-heading">
5961									Earn even more								</p>
5962								<p class="text-sm text-rwp-widget-text">
5963									Get +25 bonus <span x-text="currencyPlural.toLowerCase()"></span> for signing up								</p>
5964							</div>
5965						</div>
5966									</div>
5967
5968		<!-- Create Account Button -->
5969		<button
5970			type="button"
5971			x-on:click="window.dispatchEvent(new CustomEvent('show-register-form'))"
5972			class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center w-full"
5973		>
5974			Create account to use points		</button>
5975
5976				<!-- Back Link -->
5977				<div class="text-center mt-4">
5978					<button
5979						type="button"
5980						x-on:click="navigateToPanel('ways-to-redeem')"
5981						class="text-sm text-rwp-widget-text hover:text-rwp-widget-text underline cursor-pointer"
5982					>
5983						Back to rewards					</button>
5984				</div>
5985			</div>
5986		</div>
5987
5988		<!-- Redeem Success Panel -->
5989		<div
5990			x-show="currentPanel === 'redeem-success'"
5991			x-bind:class="'redeem-success-panel relative h-full flex flex-col ' + (currentPanel === 'redeem-success' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
5992		>
5993			<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-4 text-rwp-widget-text">
5994				<!-- Success Header -->
5995				<div
5996					class="text-center mb-6"
5997					x-data="{
5998						cartSubtotal: 0,
5999						currencySymbol: '$'
6000					}"
6001				>
6002					<div class="flex justify-center mb-2">
6003						<svg class="size-10 text-green-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24"><desc>Check circle alternate</desc><path d="M6 13.223 8.45 16.7a1.049 1.049 0 0 0 1.707 0.051L18 6.828" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M0.75 11.999a11.25 11.25 0 1 0 22.5 0 11.25 11.25 0 1 0 -22.5 0Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>					</div>
6004					<p class="text-base text-gray-600 mt-2">
6005						Redeemed 						<span x-text="redeemSuccessData.points_cost"></span>
6006						<span x-text="' ' + redeemSuccessData.points_label"></span>
6007					</p>
6008					<h2 class="text-2xl font-bold text-gray-900 text-pretty" x-text="redeemSuccessData.title">
6009						<!-- Title populated from Alpine data -->
6010					</h2>
6011					</div>
6012
6013						<template x-if="redeemSuccessData.reward_type !== 'free_product'">
6014				<div class="text-sm text-gray-600 text-center mb-2 px-2">
6015					<p>Use this coupon on your next order</p>
6016				</div>
6017			</template>
6018
6019						<div>
6020								<template x-if="redeemSuccessData.reward_type !== 'free_product'">
6021					<div class="mb-4" x-data="copyHandler()">
6022						<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
6023							<input
6024								type="text"
6025								readonly
6026								x-ref="couponCode"
6027								x-bind:value="redeemSuccessData.couponCode"
6028								x-on:click="handleCopyClick($refs.couponCode, null, false)"
6029								class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
6030							>
6031							<div class="flex">
6032								<button
6033									x-on:click="handleCopyClick($refs.couponCode, $data)"
6034									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
6035									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
6036									x-ref="copyButton">
6037									<div class="relative size-6">
6038										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6039											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
6040											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
6041										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6042											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
6043											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
6044									</div>
6045								</button>
6046							</div>
6047						</div>
6048					</div>
6049				</template>
6050
6051				<!-- Button and messages section -->
6052				<div>
6053
6054				<!-- Cart-aware Button Section -->
6055				<div
6056					x-data="couponUtils( {
6057						nonce: 'f68cf984f4',
6058						buttonText: 'Apply to cart',
6059						rewardId: redeemSuccessData.reward_id || 0,
6060						couponCode: redeemSuccessData.couponCode || '',
6061						isApplied: redeemSuccessData.is_applied || false,
6062						cartItemCount: 0,
6063						cartProductIds: [],
6064						cartSubtotal: 0,
6065						freeProductId: redeemSuccessData.free_product_id || null,
6066						minimumOrderAmount: redeemSuccessData.minimum_order_amount || 0,
6067						integrationSource: 'woocommerce',
6068						checkoutUrl: 'https://jackkeller.com/checkout/',
6069						cartUrl: 'https://jackkeller.com/cart-2/',
6070						storeUrl: 'https://jackkeller.com/pay-now/',
6071						isAdminPreview: false,
6072						isDemo: false,
6073						addToCartText: 'Add to cart',
6074						claimRewardText: 'Claim reward',
6075						applyToCartText: 'Claim free product',
6076						currencySymbol: '$',
6077						pendingRewardId: 0,
6078						dismissedRewardId: 0					} )"
6079					x-on:reset-buttons.window="if ( $event.detail.except !== $el ) isApplied = false;"
6080				>
6081									<template x-if="redeemSuccessData.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount)">
6082						<p class="text-sm font-medium text-gray-500 text-center mb-2">Free product applies automatically.</p>
6083					</template>
6084
6085									<template x-if="redeemSuccessData.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && redeemSuccessData.minimum_order_amount > 0 && cartSubtotal < redeemSuccessData.minimum_order_amount">
6086						<p class="text-sm text-gray-500 text-center text-pretty mb-2" x-text="'Claim now — we\'ll add it to your cart when you spend ' + currencySymbol + redeemSuccessData.minimum_order_amount + ' or more'"></p>
6087					</template>
6088
6089									<button
6090						x-show="!isApplied && !isPending && !productAddedButCouponFailed"
6091						class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
6091w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
6092						x-on:click="applyCoupon( redeemSuccessData.couponCode, redeemSuccessData.reward_id )"
6093						x-bind:disabled="isApplying"
6094						x-bind:class="{
6095							'opacity-50 cursor-not-allowed': isApplying,
6096							'hover:bg-rwp-brand-hover': !isApplying
6097						}"
6098					>
6099						<span
6100							class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200"
6101							x-bind:class="{ 'invisible': isApplying, 'visible': !isApplying }"
6102						>
6103							<!-- Dynamic text based on reward type, cart state, minimum spend, and integration -->
6104							<template x-if="redeemSuccessData.reward_type === 'free_product'">
6105								<span x-text="getFreeProductButtonText(redeemSuccessData.free_product_id, redeemSuccessData.minimum_order_amount)"></span>
6106							</template>
6107							<template x-if="redeemSuccessData.reward_type !== 'free_product'">
6108								<span>
6109							<span x-show="isWooCommerce">Apply to cart</span>
6110							<span x-show="!isWooCommerce">Apply coupon</span>
6111								</span>
6112							</template>
6113						</span>
6114							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &apos;invisible&apos;: isApplying !== true, &apos;visible&apos;: isApplying === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
6115
6116					<div x-show="hasErrors" class="text-sm mt-2 text-red-500">An error occurred. Please reload the page and try again.</div>
6117
6118					<!-- Success Message - Show when coupon applied -->
6119					<div x-show="isApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
6120						<template x-if="redeemSuccessData.reward_type === 'free_product'">
6121							<span>Free product added to cart</span>
6122						</template>
6123						<template x-if="redeemSuccessData.reward_type !== 'free_product'">
6124							<span x-text="redeemSuccessData.title + ' applied'"></span>
6125						</template>
6126					</div>
6127
6128										<template x-if="isPending && !productAddedButCouponFailed">
6129						<div class="text-sm w-full">
6130							<!-- Confirmation badge -->
6131							<div class="font-medium inline-flex items-center gap-1 text-emerald-600 text-sm w-full justify-center">
6132								<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
6133									<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
6134								</svg>
6135								<span>Reward claimed</span>
6136							</div>
6137
6138							<!-- Explanation text -->
6139							<div class="text-center text-gray-500 px-2 mb-3" x-text="'We\'ll add it to your cart when you spend ' + currencySymbol + redeemSuccessData.minimum_order_amount">
6140							</div>
6141
6142							<!-- Action buttons -->
6143							<div class="space-y-3">
6144								<!-- Primary CTA - Start/Continue Shopping -->
6145								<a
6146									x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6147									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6148									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6149									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6150									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6151									x-text="isCartEmpty ? 'Start shopping' : 'Continue shopping'"
6152								></a>
6153
6154								<!-- Secondary CTA - View Cart (WooCommerce only, when cart has items) -->
6155								<template x-if="isWooCommerce && !isCartEmpty">
6156									<a
6157										x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6158										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6159										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6160										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6161										class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6162									>
6163										View cart									</a>
6164								</template>
6165							</div>
6166						</div>
6167					</template>
6168
6169										<div x-show="productAddedButCouponFailed && !isPending" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
6170						<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
6171							Product added to cart						</div>
6172												<template x-if="remainingToUnlock > 0">
6173							<div class="text-center text-gray-600 px-2" x-text="'Almost there — add ' + '$' + remainingToUnlock + ' more to unlock'"></div>
6174						</template>
6175					</div>
6176
6177					<!-- Buttons when coupon failed but product added (fallback) -->
6178					<template x-if="productAddedButCouponFailed && !isPending">
6179						<div>
6180							<!-- Primary CTA - Continue Shopping -->
6181							<a
6182								x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6183								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6184								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6185								x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
6186								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
6186w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6187							>
6188								Continue shopping							</a>
6189
6190							<!-- Secondary CTA - View Cart (WooCommerce only) -->
6191							<template x-if="isWooCommerce">
6192								<a
6193									x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6194									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6195									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6196									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6197									class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6198								>
6199									View cart								</a>
6200							</template>
6201						</div>
6202					</template>
6203
6204					<!-- Error Message - Show when coupon failed to apply (no product involved) -->
6205					<div x-show="hasErrors && !productAddedButCouponFailed" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-red-600 text-sm w-full justify-center">
6206						<span x-text="errorMessage"></span>
6207					</div>
6208
6209					<!-- Buttons when coupon is applied successfully -->
6210					<template x-if="isApplied && !isCartEmpty">
6211						<div>
6212							<!-- Primary CTA - Go to Checkout -->
6213							<a
6214								x-bind:href="isAdminPreview ? 'javascript:void(0)' : checkoutUrl"
6215								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6216								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6217								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6218								x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
6219							>
6220								Go to checkout							</a>
6221
6222							<!-- Secondary CTA - View Cart (WooCommerce only) -->
6223							<template x-if="isWooCommerce">
6224								<a
6225									x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6226									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6227									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6228									x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6229									class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6230								>
6231									View cart								</a>
6232							</template>
6233						</div>
6234					</template>
6235
6236					<!-- Button when coupon is applied but cart is empty -->
6237					<template x-if="isApplied && isCartEmpty">
6238						<div>
6239							<!-- Primary CTA - Shop Now -->
6240							<a
6241								x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6242								x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6243								x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6244								x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6245								class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6246							>
6247								Shop now							</a>
6248							<!-- No secondary button when cart is empty -->
6249						</div>
6250					</template>
6251
6252				<!-- Coupon Terms (below buttons) - show only expiry when applied or ready (minimum met). -->
6253				<template x-if="redeemSuccessData.coupon_terms">
6254					<div class="mt-2 text-center">
6255						<span class="text-sm text-gray-500" x-text="(isApplied || (redeemSuccessData.reward_type === 'free_product' && !isPending && (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount))) && redeemSuccessData.expiry_text ? redeemSuccessData.expiry_text : redeemSuccessData.coupon_terms"></span>
6256					</div>
6257				</template>
6258				</div>
6259				</div>
6260
6261			</div>
6262
6263			</div>
6264
6265						<div
6266				x-data="{
6267					couponFailed: false,
6268					showCode: false,
6269					isCheckmark: false,
6270					isPending: false,
6271					isApplied: false,
6272					cartSubtotal: 0,
6273					minimumOrderAmount: 0,
6274					pendingRewardId: 0,
6275					...copyHandler()
6276				}"
6277				x-init="
6278					minimumOrderAmount = redeemSuccessData.minimum_order_amount || 0;
6279					isPending = pendingRewardId > 0 && pendingRewardId === parseInt(redeemSuccessData.reward_id || 0, 10);
6280					window.addEventListener('free-product-coupon-failed', () => { couponFailed = true; });
6281					window.addEventListener('show-redeem-success', () => { couponFailed = false; isPending = false; isApplied = false; });
6282					window.addEventListener('reward-set-pending', () => { isPending = true; });
6283					window.addEventListener('reward-auto-applied', () => { isPending = false; isApplied = true; });
6284					window.addEventListener('coupon-applied', () => { isApplied = true; });
6285				"
6286				x-show="redeemSuccessData.reward_type === 'free_product' && !isApplied && (isPending || (redeemSuccessData.minimum_order_amount <= 0 || cartSubtotal >= redeemSuccessData.minimum_order_amount))"
6287				x-cloak
6288				class="px-6 text-center bg-gray-50 border-t border-gray-100 flex flex-col-reverse items-center"
6289			>
6290					<button
6291						x-on:click="if (!showCode) { showCode = true; $nextTick(() => { handleCopyClick($refs.couponCode, $data); }); } else { showCode = false; }"
6292						class="text-sm text-gray-500 hover:text-gray-600 underline underline-offset-2 cursor-pointer bg-transparent border-0 my-4"
6293						x-text="showCode ? 'Hide code' : 'Use a code at checkout'"
6294					></button>
6295
6296					<!-- Collapsible code section -->
6297					<div x-show="showCode" x-collapse x-cloak class="w-full">
6298						<div class="pt-4">
6299						<div class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
6300							<input
6301								type="text"
6302								readonly
6303								x-ref="couponCode"
6304								x-bind:value="redeemSuccessData.couponCode"
6305								x-on:click="handleCopyClick($refs.couponCode, null, false)"
6306								class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
6307							>
6308							<div class="flex">
6309								<button
6310									x-on:click="handleCopyClick($refs.couponCode, $data)"
6311									class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
6312									x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
6313									x-ref="copyButton">
6314									<div class="relative size-6">
6315										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6316											x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
6317											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>										</div>
6318										<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6319											x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
6320											<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>										</div>
6321									</div>
6322								</button>
6323							</div>
6324						</div>
6325						</div>
6326					</div>
6327				</div>
6328			</div>
6329		</div>
6330
6331
6332				<div
6333			x-show="currentPanel === 'your-rewards'"
6334			x-bind:class="'relative h-full flex flex-col overflow-hidden ' + (currentPanel === 'your-rewards' ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
6335			x-data="{ panelAtTop: true, panelAtBottom: false }"
6336						x-effect="if (currentPanel === 'your-rewards') { void availableRewards?.length; const el = $el.querySelector('.overflow-y-auto'); if (el && el.scrollHeight > 0) { panelAtBottom = el.scrollTop + el.clientHeight >= el.scrollHeight - 5; } }"
6337		>
6338			<div class="flex-1 overflow-y-auto custom-scrollbar px-0 py-6"
6339				@scroll="panelAtTop = $el.scrollTop < 5; panelAtBottom = $el.scrollTop + $el.clientHeight >= $el.scrollHeight - 5"
6340			>
6341
6342			<h2 class="text-lg font-semibold text-rwp-widget-heading mb-3 px-6">Your rewards</h2>
6343
6344			<div class="px-3">
6345				<template x-if="availableRewards && availableRewards.length > 0">
6346					<template x-for="reward in availableRewards" x-bind:key="reward.id">
6347						<div>
6348							<button
6349								x-on:click="navigateToPanel('reward-detail-' + reward.id)"
6350								class="w-full hover:bg-gray-50 text-left px-4 py-3 rounded-lg flex items-center justify-between transition-colors cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 !px-3"
6351									>
6352							<div class="flex items-center gap-4">
6353								<div class="size-8 flex items-center justify-center flex-shrink-0 text-rwp-widget-icon-text" x-html="reward.icon_html">
6354									<!-- Icon will be populated from server -->
6355								</div>
6356								<div class="flex-1">
6357									<div class="font-medium text-rwp-widget-heading text-sm" x-text="reward.title"></div>
6358									<div class="text-xs text-gray-500">
6359										<template x-if="reward.is_out_of_stock">
6360											<span class="text-amber-600">Out of stock</span>
6361										</template>
6362										<template x-if="!reward.is_out_of_stock && reward.points_cost > 0">
6363											<span x-text="'Redeemed ' + reward.points_cost + ' ' + reward.points_label"></span>
6364										</template>
6365										<template x-if="!reward.is_out_of_stock && reward.points_cost === 0">
6366											<span>From referral</span>
6367										</template>
6368									</div>
6369								</div>
6370							</div>
6371										<svg class="size-5 text-gray-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="1.5">
6372											<path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" />
6373								</svg>
6374								</button>
6375							</div>
6376						</template>
6377				</template>
6378
6379				<!-- Empty state when no rewards -->
6380					<template x-if="!availableRewards || availableRewards.length === 0">
6381						<div class="text-center py-8">
6382							<div class="flex justify-center mb-3">
6383								<svg class="size-10 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><desc>Free product icon</desc><g><g><path d="M15.75 23.24a3 3 0 0 0 -3 -3H9a3 3 0 0 0 -3 -3H0.75v6Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m6 20.24 3 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g><path d="M16.5 17.74H21a0.76 0.76 0 0 0 0.75 -0.75v-6.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m8.25 10.24 0 4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M7.5 5.99h15s0.75 0 0.75 0.75v2.75s0 0.75 -0.75 0.75h-15s-0.75 0 -0.75 -0.75V6.74s0 -0.75 0.75 -0.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="m15 15.24 0 -9.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M19.27 3.87A11.84 11.84 0 0 1 15 6a11.93 11.93 0 0 1 2.12 -4.24C18.46 0.43 19.21 0.63 19.8 1.22s0.78 1.33 -0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M10.73 3.87A11.84 11.84 0 0 0 15 6a11.93 11.93 0 0 0 -2.12 -4.24C11.54 0.43 10.79 0.63 10.2 1.22
6383s-0.78 1.33 0.53 2.65Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></g></svg>							</div>
6384							<h3 class="text-lg font-medium text-gray-900 mb-1">No rewards yet</h3>
6385							<p class="text-sm text-gray-500 mb-5">Start earning to unlock your first reward</p>
6386							<div class="flex justify-center">
6387								<button
6388									x-on:click="navigateToPanel('ways-to-earn')"
6389									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 py-2 px-4 flex items-center justify-center hover:bg-rwp-button-hover"
6390								>
6391									Earn Points								</button>
6392							</div>
6393						</div>
6394					</template>
6395				</div>
6396			</div>
6397
6398			<!-- Top scroll fade -->
6399			<div x-show="!panelAtTop"
6400				class="pointer-events-none absolute top-0 left-0 h-8 z-10"
6401				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to bottom, var(--color-rwp-widget-bg), transparent);"></div>
6402			<!-- Bottom scroll fade -->
6403			<div x-show="!panelAtBottom"
6404				class="pointer-events-none absolute bottom-0 left-0 h-12 z-10"
6405				style="right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
6406		</div>
6407
6408				<template x-for="reward in availableRewards" x-bind:key="'detail-' + reward.id">
6409			<div
6410				x-show="currentPanel === 'reward-detail-' + reward.id"
6411				x-bind:class="'reward-detail-panel relative h-full flex flex-col ' + (currentPanel === 'reward-detail-' + reward.id ? (navigationDirection === 'initial' ? 'rwp-panel-fade-up' : (navigationDirection === 'forward' ? 'rwp-panel-slide-forward' : (navigationDirection === 'back' ? 'rwp-panel-slide-back' : ''))) : '')"
6412			>
6413
6414
6415
6416
6417				<div class="flex-1 overflow-y-auto custom-scrollbar px-6 py-6 pb-6 text-rwp-widget-text">
6418					<!-- Icon and Title (Centered like friend claim) -->
6419					<div
6420						class="text-center mb-6"
6421						x-data="{
6422							cartSubtotal: 0,
6423							currencySymbol: '$'
6424						}"
6425					>
6426						<div class="flex justify-center mx-auto mb-2 [&>svg]:size-10" x-html="reward.icon_html">
6427							<!-- Icon will be populated from server -->
6428						</div>
6429						<h2 class="text-2xl font-bold text-gray-900 text-pretty" x-text="reward.title"></h2>
6430					</div>
6431
6432										<template x-if="reward.reward_type !== 'free_product'">
6433						<p class="text-sm text-gray-600 text-center mb-2" x-text="reward.description"></p>
6434					</template>
6435
6436			<!-- Coupon Code Display with Copy Functionality -->
6437			<template x-if="reward.coupon_code && reward.coupon_code !== ''">
6438					<div>
6439												<template x-if="reward.reward_type !== 'free_product'">
6440							<div class="mb-4" x-data="copyHandler()">
6441								<div x-data="{ isCheckmark: false }" class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
6442									<input
6443										type="text"
6444										readonly
6445										x-ref="couponCode"
6446										x-bind:value="reward.coupon_code"
6447										x-on:click="handleCopyClick($refs.couponCode, null, false)"
6448										class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
6449									>
6450									<div class="flex">
6451										<button
6452											x-on:click="handleCopyClick($refs.couponCode, $data)"
6453											class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
6454											x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
6455											x-ref="copyButton">
6456											<div class="relative size-6">
6457												<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6458													x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
6459													<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path>
6459<path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>												</div>
6460												<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6461													x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
6462													<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>												</div>
6463											</div>
6464										</button>
6465									</div>
6466								</div>
6467							</div>
6468						</template>
6469
6470						<!-- Button and messages section -->
6471						<div>
6472
6473					<!-- Out of Stock Notice -->
6474					<template x-if="reward.is_out_of_stock">
6475						<div class="text-center mb-4 p-4 bg-amber-50 rounded-lg">
6476							<p class="text-sm text-amber-700 font-medium">
6477								This product is currently out of stock							</p>
6478							<p class="text-xs text-amber-600 mt-1">
6479								Your reward will remain available when the product is back in stock.							</p>
6480						</div>
6481					</template>
6482
6483					<!-- Cart-aware Button Section -->
6484					<div
6485						x-data="couponUtils( {
6486							nonce: 'f68cf984f4',
6487							buttonText: 'Apply to cart',
6488							rewardId: reward.id,
6489							couponCode: reward.coupon_code || '',
6490							appliedButtonText: 'Coupon applied',
6491							isApplied: reward.is_applied || false,
6492							isOutOfStock: reward.is_out_of_stock || false,
6493							cartItemCount: 0,
6494							cartProductIds: [],
6495							cartSubtotal: 0,
6496							freeProductId: reward.free_product_id || null,
6497							minimumOrderAmount: reward.minimum_order_amount || 0,
6498							integrationSource: 'woocommerce',
6499							checkoutUrl: 'https://jackkeller.com/checkout/',
6500							cartUrl: 'https://jackkeller.com/cart-2/',
6501							storeUrl: 'https://jackkeller.com/pay-now/',
6502							isAdminPreview: false,
6503							isDemo: false,
6504							addToCartText: 'Add to cart',
6505							claimRewardText: 'Claim reward',
6506							applyToCartText: 'Claim free product',
6507							currencySymbol: '$',
6508							pendingRewardId: 0,
6509							dismissedRewardId: 0						} )"
6510						x-on:reset-buttons.window="if ( $event.detail.except !== $el ) isApplied = false;"
6511					>
6512												<template x-if="reward.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount)">
6513							<p class="text-sm font-medium text-gray-500 text-center mb-2">Free product applies automatically.</p>
6514						</template>
6515
6516											<template x-if="reward.reward_type === 'free_product' && !isApplied && !productAddedButCouponFailed && !isPending && reward.minimum_order_amount > 0 && cartSubtotal < reward.minimum_order_amount">
6517							<p class="text-sm text-gray-500 text-center text-pretty mb-2" x-text="'Claim now — we\'ll add it to your cart when you spend ' + currencySymbol + reward.minimum_order_amount + ' or more'"></p>
6518						</template>
6519
6520											<button
6521							x-show="!isApplied && !isPending && !isOutOfStock && !productAddedButCouponFailed"
6522							class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto grid grid-cols-1 grid-rows-1 [grid-template-areas:&#039;stack&#039;] place-items-center"
6523							x-on:click="applyCoupon( reward.coupon_code )"
6524							x-bind:disabled="isApplying"
6525							x-bind:class="{
6526								'opacity-50 cursor-not-allowed': isApplying,
6527								'hover:bg-rwp-brand-hover': !isApplying
6528							}"
6529						>
6530							<span
6531								class="[grid-area:stack] flex items-center justify-center transition-opacity duration-200"
6532								x-bind:class="{ 'invisible': isApplying, 'visible': !isApplying }"
6533							>
6534								<!-- Dynamic text based on reward type, cart state, minimum spend, and integration -->
6535								<template x-if="reward.reward_type === 'free_product'">
6536									<span x-text="getFreeProductButtonText(reward.free_product_id, reward.minimum_order_amount)"></span>
6537								</template>
6538								<template x-if="reward.reward_type !== 'free_product'">
6539									<span>
6540								<span x-show="isWooCommerce">Apply to cart</span>
6541								<span x-show="!isWooCommerce">Apply coupon</span>
6542									</span>
6543								</template>
6544							</span>
6545							<svg class="w-5 h-5 animate-spin [grid-area:stack] transition-opacity duration-200" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" x-bind:class="{ &ap
6545os;invisible&apos;: isApplying !== true, &apos;visible&apos;: isApplying === true }"><desc>Loading spinner icon</desc><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>						</button>
6546
6547						<div x-show="hasErrors" class="text-sm mt-2 text-red-500">An error occurred. Please reload the page and try again.</div>
6548
6549						<!-- Success Message - Show when coupon applied -->
6550						<div x-show="isApplied" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-emerald-600 text-sm w-full justify-center">
6551							<template x-if="reward.reward_type === 'free_product'">
6552								<span>Free product added to cart</span>
6553							</template>
6554							<template x-if="reward.reward_type !== 'free_product'">
6555								<span x-text="reward.title + ' applied'"></span>
6556							</template>
6557						</div>
6558
6559												<template x-if="isPending && !productAddedButCouponFailed">
6560							<div class="text-sm w-full">
6561								<!-- Confirmation badge -->
6562								<div class="font-medium inline-flex items-center gap-1 text-emerald-600 text-sm w-full justify-center">
6563									<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
6564										<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
6565									</svg>
6566									<span>Reward claimed</span>
6567								</div>
6568
6569								<!-- Explanation text -->
6570								<div class="text-center text-gray-500 px-2 mb-3" x-text="'We\'ll add it to your cart when you spend ' + currencySymbol + reward.minimum_order_amount">
6571								</div>
6572
6573								<!-- Action buttons -->
6574								<div class="space-y-3">
6575									<!-- Primary CTA - Start/Continue Shopping -->
6576									<a
6577										x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6578										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6579										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6580										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6581										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6582										x-text="isCartEmpty ? 'Start shopping' : 'Continue shopping'"
6583									></a>
6584
6585									<!-- Secondary CTA - View Cart (WooCommerce only, when cart has items) -->
6586									<template x-if="isWooCommerce && !isCartEmpty">
6587										<a
6588											x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6589											x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6590											x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6591											x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6592											class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6593										>
6594											View cart										</a>
6595									</template>
6596								</div>
6597							</div>
6598						</template>
6599
6600						<!-- Partial Success Message - Product added but coupon failed (fallback for edge cases) -->
6601						<div x-show="productAddedButCouponFailed && !isPending" x-cloak class="mt-3 mb-3 text-sm w-full space-y-2">
6602							<div x-show="productWasNewlyAdded" class="text-center text-emerald-600 font-medium">
6603								Product added to cart							</div>
6604														<template x-if="remainingToUnlock > 0">
6605								<div class="text-center text-gray-600 px-2" x-text="'Almost there — add ' + '$' + remainingToUnlock + ' more to unlock'"></div>
6606							</template>
6607						</div>
6608
6609						<!-- Buttons when coupon failed but product added (fallback) -->
6610						<template x-if="productAddedButCouponFailed && !isPending">
6611							<div>
6612								<!-- Primary CTA - Continue Shopping -->
6613								<a
6614									x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6615									x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6616									x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6617									x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
6618									class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 
6618w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6619								>
6620									Continue shopping								</a>
6621
6622								<!-- Secondary CTA - View Cart (WooCommerce only) -->
6623								<template x-if="isWooCommerce">
6624									<a
6625										x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6626										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6627										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6628										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6629										class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6630									>
6631										View cart									</a>
6632								</template>
6633							</div>
6634						</template>
6635
6636						<!-- Error Message - Show when coupon failed to apply (no product involved) -->
6637						<div x-show="hasErrors && !productAddedButCouponFailed && !isPending" x-cloak class="mb-1 font-medium inline-flex items-center gap-2 rounded-lg px-3 py-2 text-red-600 text-sm w-full justify-center">
6638							<span x-text="errorMessage"></span>
6639						</div>
6640
6641							<!-- Buttons when coupon is applied successfully -->
6642							<template x-if="isApplied && !isCartEmpty">
6643								<div>
6644									<!-- Primary CTA - Go to Checkout -->
6645									<a
6646										x-bind:href="isAdminPreview ? 'javascript:void(0)' : checkoutUrl"
6647										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6648										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6649										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6650										x-bind:class="{ 'mb-3': isWooCommerce, '!cursor-not-allowed': isAdminPreview }"
6651									>
6652										Go to checkout									</a>
6653
6654									<!-- Secondary CTA - View Cart (WooCommerce only) -->
6655									<template x-if="isWooCommerce">
6656										<a
6657											x-bind:href="isAdminPreview ? 'javascript:void(0)' : cartUrl"
6658											x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6659											x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6660											x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6661											class="text-sm inline-block w-full bg-gray-100 text-gray-700 font-semibold py-3 px-8 rounded-lg hover:bg-gray-200 transition-colors text-center cursor-pointer focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 no-underline block"
6662										>
6663											View cart										</a>
6664									</template>
6665								</div>
6666							</template>
6667
6668							<!-- Button when coupon is applied but cart is empty -->
6669							<template x-if="isApplied && isCartEmpty">
6670								<div>
6671									<!-- Primary CTA - Shop Now -->
6672									<a
6673										x-bind:href="isAdminPreview ? 'javascript:void(0)' : storeUrl"
6674										x-bind:data-preview-disabled="isAdminPreview ? 'true' : null"
6675										x-bind:data-tippy-content="isAdminPreview ? 'Disabled for admin preview' : null"
6676										x-bind:class="{ '!cursor-not-allowed': isAdminPreview }"
6677										class="bg-rwp-brand text-rwp-widget-button-text text-sm font-semibold rounded-lg cursor-pointer transition-colors hover:bg-rwp-brand-hover disabled:hover:bg-rwp-brand disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500 w-full py-3 px-8 min-h-[48px] mx-auto flex items-center justify-center no-underline block"
6678									>
6679										Shop now									</a>
6680									<!-- No secondary button when cart is empty -->
6681								</div>
6682							</template>
6683
6684						<!-- Coupon Terms (below buttons) - show only expiry when applied or ready (minimum met). -->
6685						<template x-if="reward.coupon_terms">
6686							<div class="mt-2 text-center">
6687								<span class="text-sm text-gray-500" x-text="(isApplied || (reward.reward_type === 'free_product' && !isPending && (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount))) && reward.expiry_text ? reward.expiry_text : reward.coupon_terms"></span>
6688							</div>
6689						</template>
6690						</div>
6691						</div>
6692
6693					</div>
6694					</template>
6695
6696					<!-- Back to Your Rewards Button -->
6697
6698
6699
6700				</div>
6701
6702								<div
6703					x-data="{
6704						couponFailed: false,
6705						showCode: false,
6706						isCheckmark: false,
6707						isPending: false,
6708						isApplied: false,
6709						cartSubtotal: 0,
6710						minimumOrderAmount: 0,
6711						pendingRewardId: 0,
6712						...copyHandler()
6713					}"
6714					x-init="
6715						minimumOrderAmount = reward.minimum_order_amount || 0;
6716						isApplied = reward.is_applied || false;
6717						isPending = pendingRewardId > 0 && pendingRewardId === parseInt(reward.id || 0, 10);
6718						window.addEventListener('free-product-coupon-failed', () => { couponFailed = true; });
6719						window.addEventListener('show-redeem-success', () => { couponFailed = false; isPending = false; });
6720						window.addEventListener('reward-set-pending', () => { isPending = true; });
6721						window.addEventListener('reward-auto-applied', () => { isPending = false; isApplied = true; });
6722						window.addEventListener('coupon-applied', () => { isApplied = true; });
6723					"
6724					x-show="reward.reward_type === 'free_product' && !isApplied && (isPending || (reward.minimum_order_amount <= 0 || cartSubtotal >= reward.minimum_order_amount))"
6725					x-cloak
6726					class="px-6 text-center bg-gray-50 border-t border-gray-100 flex flex-col-reverse items-center"
6727				>
6728					<button
6729						x-on:click="if (!showCode) { showCode = true; $nextTick(() => { handleCopyClick($refs.couponCode, $data); }); } else { showCode = false; }"
6730							class="text-sm text-gray-400 hover:text-gray-600 underline underline-offset-2 cursor-pointer bg-transparent border-0 my-4"
6731							x-text="showCode ? 'Hide code' : 'Use a code at checkout'"
6732						></button>
6733
6734						<!-- Collapsible code section -->
6735						<div x-show="showCode" x-collapse x-cloak class="w-full">
6736							<div class="pt-4">
6737							<div class="flex rounded-lg bg-white outline-1 -outline-offset-1 outline-gray-200">
6738								<input
6739									type="text"
6740									readonly
6741									x-ref="couponCode"
6742									x-bind:value="reward.coupon_code"
6743									x-on:click="handleCopyClick($refs.couponCode, null, false)"
6744									class="block min-w-0 grow px-5 py-3 text-sm font-mono text-gray-900 cursor-pointer focus:outline-none sm:text-sm/6 text-ellipsis"
6745								>
6746								<div class="flex">
6747									<button
6748										x-on:click="handleCopyClick($refs.couponCode, $data)"
6749										class="py-3 px-3 relative transition-all duration-200 cursor-pointer"
6750										x-bind:class="{ 'hover:text-gray-900 text-gray-500': !isCheckmark}"
6751										x-ref="copyButton">
6752										<div class="relative size-6">
6753											<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6754												x-bind:class="isCheckmark ? 'opacity-0 scale-95' : 'opacity-100 scale-100'">
6755												<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="-1 -1 24 24"><desc>Copy to clipboard icon</desc><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M17.875 6.645833333333333h2.520833333333333c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666V17.875" stroke-width="2"></path><path stroke="currentColor" stroke-linejoin="round" d="M0.6875 1.6041666666666665c0 -0.5062658333333333 0.41041 -0.9166666666666666 0.9166666666666666 -0.9166666666666666h12.833333333333332c0.506275 0 0.9166666666666666 0.41041 0.9166666666666666 0.9166666666666666v12.833333333333332c0 0.506275 -0.41039166666666665 0.9166666666666666 -0.9166666666666666 0.9166666666666666h-12.833333333333332c-0.5062658333333333 0 -0.9166666666666666 -0.41039166666666665 -0.9166666666666666 -0.9166666666666666v-12.833333333333332Z" stroke-width="2"></path></svg>											</div>
6756											<div class="absolute inset-0 transition-all duration-300 ease-in-out"
6757												x-bind:class="isCheckmark ? 'opacity-100 scale-100' : 'opacity-0 scale-95'">
6758												<svg class="size-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke="currentColor"><desc>Checkmark icon</desc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>											</div>
6759										</div>
6760									</button>
6761								</div>
6762							</div>
6763							</div>
6764						</div>
6765					</div>
6766				</div>
6767			</div>
6768		</template>
6769
6770					</div>
6771
6772						<div x-show="currentPanel === 'main'"
6773				x-bind:class="isScrolledToBottom ? 'opacity-0' : 'opacity-100'"
6774				class="sticky bottom-0 h-8 -mt-8 shrink-0 pointer-events-none z-40 transition-opacity duration-200"
6775				style="margin-right: var(--rwp-scrollbar-width, 8px); background: linear-gradient(to top, var(--color-rwp-widget-bg), transparent);"></div>
6776
6777		</div>
6778
6779					</div>
6780		</template>
6781				</div>
6782				</template>
6783
6784			<rewards-panel
6785					data-template-id="rewards-panel"
6786		data-ajax-url="https://jackkeller.com/wp-admin/admin-ajax.php?rewardswp_locale=site"
6787		data-share-points-nonce="e9babc5c4b"
6788		data-advocate-nonce="e9babc5c4b"
6789		data-claim-nonce="f68cf984f4"
6790			data-user-points="0"
6791	></rewards-panel>
vendor: 113 bytes, lines 6791-6793
6791
6792
6793			<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
6793<script type="text/rocketlazyloadscript">
6794		(function () {
6795			var c = document.body.className;
6796			c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
6797			document.body.className = c;
6798		})();
6799	</script>
6799
6800	
6800<script type="text/rocketlazyloadscript" id="underscore-js" data-rocket-src="https://jackkeller.com/wp-includes/js/underscore.min.js?ver=1.13.8" data-rocket-defer defer></script>
vendor: 1 bytes, line 6800
6800
6801<script id="wp-util-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6802var _wpUtilSettings = {"ajax":{"url":"/wp-admin/admin-ajax.php"}};
6803//# sourceURL=wp-util-js-extra
6804</script>
vendor: 1 bytes, line 6804
6804
6805<script type="text/rocketlazyloadscript" id="wp-util-js" data-rocket-src="https://jackkeller.com/wp-includes/js/wp-util.min.js?ver=aafee5e5c97070fdaa7b106373a3dd97" data-rocket-defer defer></script>
vendor: 1 bytes, line 6805
6805
6806<script id="wpautoterms_js_cookies_notice-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6807var wpautoterms_js_cookies_notice = {"disable":"","cookie_name":"wpautoterms-cookies-notice","class":"wpautoterms-cookies-notice"};
6808//# sourceURL=wpautoterms_js_cookies_notice-js-extra
6809</script>
vendor: 1 bytes, line 6809
6809
6810<script type="text/rocketlazyloadscript" data-minify="1" id="wpautoterms_js_cookies_notice-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/auto-terms-of-service-and-privacy-policy/js/wpautoterms.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6810
6810
6811<script type="text/rocketlazyloadscript" data-minify="1" id="obfx-module-pub-js-social-sharing-0-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/themeisle-companion/obfx_modules/social-sharing/js/public.js?ver=1789818469" data-rocket-defer defer></script>
vendor: 1 bytes, line 6811
6811
6812<script id="woocommerce-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6813var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"};
6814//# sourceURL=woocommerce-js-extra
6815</script>
vendor: 1 bytes, line 6815
6815
6816<script type="text/rocketlazyloadscript" data-wp-strategy="defer" id="woocommerce-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 6816
6816
6817<script id="affiliatewp-frontend-notifications-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6818var affiliateWPFENotifications = {"referralVar":"ref","cssUrl":"https://jackkeller.com/wp-content/plugins/affiliate-wp/assets/css/affiliatewp-frontend-notifications.min.css","ajaxUrl":"https://jackkeller.com/wp-admin/admin-ajax.php","darkMode":"auto"};
6819//# sourceURL=affiliatewp-frontend-notifications-js-extra
6820</script>
vendor: 1 bytes, line 6820
6820
6821<script type="text/rocketlazyloadscript" id="affiliatewp-frontend-notifications-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/affiliate-wp/assets/js/affiliatewp-frontend-notifications.min.js?ver=2.36.3" data-rocket-defer defer></script>
vendor: 1 bytes, line 6821
6821
6822<script id="ppcp-smart-button-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6823var PayPalCommerceGateway = {"url":"https://www.paypal.com/sdk/js?client-id=BAAP_XbtrhR3uCwqoKlmW-OLJEMcz2fUQIPNnyv_RLeBF0E02dV6pQNpWs8tv_Nw4XW28mnzSAYwji1u7s&currency=USD&integration-date=2026-09-02&components=buttons,funding-eligibility,saved-payment-methods,card-fields,fastlane&vault=true&commit=true&intent=capture&disable-funding=card,paylater&enable-funding=venmo&locale=en_US","url_params":{"client-id":"BAAP_XbtrhR3uCwqoKlmW-OLJEMcz2fUQIPNnyv_RLeBF0E02dV6pQNpWs8tv_Nw4XW28mnzSAYwji1u7s","currency":"USD","integration-date":"2026-09-02","components":"buttons,funding-eligibility,saved-payment-methods,card-fields,fastlane","vault":"true","commit":"true","intent":"capture","disable-funding":"bancontact,blik,eps,ideal,mybank,p24,trustly,multibanco,oxxo,card,paylater","enable-funding":"venmo","locale":"en_US"},"script_attributes":{"data-partner-attribution-id":"Woo_PPCP"},"client_id":"BAAP_XbtrhR3uCwqoKlmW-OLJEMcz2fUQIPNnyv_RLeBF0E02dV6pQNpWs8tv_Nw4XW28mnzSAYwji1u7s","currency":"USD","data_client_id":{"set_attribute":true,"endpoint":"/?wc-ajax=ppc-data-client-id","nonce":"58891ed755","user":0,"has_subscriptions":false,"paypal_subscriptions_enabled":false},"redirect":"https://jackkeller.com/checkout/","context":"mini-cart","ajax":{"simulate_cart":{"endpoint":"/?wc-ajax=ppc-simulate-cart","nonce":"99447ba00a"},"change_cart":{"endpoint":"/?wc-ajax=ppc-change-cart","nonce":"b3edfdfe25"},"create_order":{"endpoint":"/?wc-ajax=ppc-create-order","nonce":"137dbb9d8d"},"approve_order":{"endpoint":"/?wc-ajax=ppc-approve-order","nonce":"a36528d460"},"get_order":{"endpoint":"/?wc-ajax=ppc-get-order","nonce":"4f8589a142"},"approve_subscription":{"endpoint":"/?wc-ajax=ppc-approve-subscription","nonce":"21dd4c1931"},"save_checkout_form":{"endpoint":"/?wc-ajax=ppc-save-checkout-form","nonce":"cb79b526d0"},"validate_checkout":{"endpoint":"/?wc-ajax=ppc-validate-checkout","nonce":"9fb968031d"},"cart_script_params":{"endpoint":"/?wc-ajax=ppc-cart-script-params"},"create_setup_token":{"endpoint":"/?wc-ajax=ppc-create-setup-token","nonce":"9f148b094b"},"create_payment_token":{"endpoint":"/?wc-ajax=ppc-create-payment-token","nonce":"bb53374c64"},"create_payment_token_for_guest":{"endpoint":"/?wc-ajax=ppc-update-customer-id","nonce":"bca65fa9a9"},"update_shipping":{"endpoint":"/?wc-ajax=ppc-update-shipping","nonce":"d8f7d1d638"},"update_customer_shipping":{"shipping_options":{"endpoint":"https://jackkeller.com/wp-json/wc/store/v1/cart/select-shipping-rate"},"shipping_address":{"cart_endpoint":"https://jackkeller.com/wp-json/wc/store/v1/cart/","update_customer_endpoint":"https://jackkeller.com/wp-json/wc/store/v1/cart/update-customer"},"wp_rest_nonce":"bab3f4805b","update_shipping_method":"/?wc-ajax=update_shipping_method"}},"cart_contains_subscription":"","subscription_plan_id":"","subscription_custom_id":"","variable_paypal_subscription_variations":[],"variable_paypal_subscription_variation_from_cart":"","subscription_product_allowed":"","subscription_button_allowed":"1","locations_with_subscription_product":{"product":false,"payorder":false,"cart":false},"subscriptions_accept_manual_renewals":"","enforce_vault":"","can_save_vault_token":"1","is_free_trial_cart":"","bn_codes":{"checkout":"Woo_PPCP","cart":"Woo_PPCP","mini-cart":"Woo_PPCP","product":"Woo_PPCP"},"payer":null,"button":{"wrapper":"#ppc-button-ppcp-gateway","is_disabled":false,"mini_cart_wrapper":"#ppc-button-minicart","is_mini_cart_disabled":false,"cancel_wrapper":"#ppcp-cancel","mini_cart_style":{"layout":"horizontal","color":"gold","shape":"pill","label":"pay","tagline":"false","height":35},"style":{"layout":"horizontal","color":"gold","shape":"pill","label":"pay","tagline":"false"}},"separate_buttons":{"card":{"id":"ppcp-card-button-gateway","wrapper":"#ppc-button-ppcp-card-button-gateway","style":{"shape":"rect","color":"black","layout":"horizontal"}}},"hosted_fields":{"wrapper":"#ppcp-hosted-fields","labels":{"credit_card_number":"","cvv":"","mm_yy":"MM/YY","fields_empty":"C
6823ard payment details are missing. Please fill in all required fields.","fields_not_valid":"Unfortunately, your credit card details are not valid.","card_not_supported":"Unfortunately, we do not support your credit card.","cardholder_name_required":"Cardholder's first and last name are required, please fill the checkout form required fields."},"valid_cards":["mastercard","visa","amex","discover","american-express","master-card"],"contingency":"SCA_WHEN_REQUIRED"},"messages":{"wrapper":".ppcp-messages","is_hidden":false,"block":{"enabled":true},"amount":0,"placement":"payment","style":{"layout":"text","logo":{"type":"primary","position":"left"},"text":{"color":"black","size":"12"},"color":"blue","ratio":"1x1"}},"labels":{"error":{"generic":"Something went wrong. Please try again or choose another payment source.","required":{"generic":"Required form fields are not filled.","field":"%s is a required field.","elements":{"terms":"Please read and accept the terms and conditions to proceed with your order."}}},"billing_field":"Billing %s","shipping_field":"Shipping %s"},"simulate_cart":{"enabled":true,"throttling":5000},"order_id":"0","order_key":"","single_product_buttons_enabled":"1","mini_cart_buttons_enabled":"1","basic_checkout_validation_enabled":"","early_checkout_validation_enabled":"1","funding_sources_without_redirect":["paypal","paylater","venmo","card"],"user":{"is_logged":false,"has_wc_card_payment_tokens":false},"should_handle_shipping_in_paypal":"1","server_side_shipping_callback":{"enabled":true},"appswitch":{"enabled":true},"needShipping":"","vaultingEnabled":"1","productType":null,"manualRenewalEnabled":"","final_review_enabled":""};
6824//# sourceURL=ppcp-smart-button-js-extra
6825</script>
vendor: 1 bytes, line 6825
6825
6826<script type="text/rocketlazyloadscript" data-minify="1" id="ppcp-smart-button-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/woocommerce-paypal-payments/assets/ppcp-button-js-button.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6826
6826
6827<script type="text/rocketlazyloadscript" id="rocket-browser-checker-js-after">
6828"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
6829//# sourceURL=rocket-browser-checker-js-after
6830</script>
vendor: 1 bytes, line 6830
6830
6831<script id="rocket-preload-links-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6832var RocketPreloadLinksConfig = {"excludeUris":"/(?:.+/)?feed(?:/(?:.+/?)?)?$|/(?:.+/)?embed/|/checkout/??(.*)|/cart-2/?|/my-account/??(.*)|/(index.php/)?(.*)wp-json(/.*|$)|/refer/|/go/|/recommend/|/recommends/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https://jackkeller.com","onHoverDelay":"100","rateThrottle":"3"};
6833//# sourceURL=rocket-preload-links-js-extra
6834</script>
vendor: 1 bytes, line 6834
6834
6835<script type="text/rocketlazyloadscript" id="rocket-preload-links-js-after">
6836(function() {
6837"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
6838}());
6839
6840//# sourceURL=rocket-preload-links-js-after
6841</script>
vendor: 1 bytes, line 6841
6841
6842<script type="text/rocketlazyloadscript" id="zerif_bootstrap_script-js" data-rocket-src="https://jackkeller.com/wp-content/themes/zerif-pro/js/bootstrap.min.js?ver=2.3.0" data-rocket-defer defer></script>
vendor: 1 bytes, line 6842
6842
6843<script type="text/rocketlazyloadscript" id="zerif_scrollReveal_script-js" data-rocket-src="https://jackkeller.com/wp-content/themes/zerif-pro/js/scrollReveal.min.js?ver=2.3.0" data-rocket-defer defer></script>
vendor: 1 bytes, line 6843
6843
6844<script id="zerif_script-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6845var zerifSettings = {"masonry":""};
6846//# sourceURL=zerif_script-js-extra
6847</script>
vendor: 1 bytes, line 6847
6847
6848<script type="text/rocketlazyloadscript" data-minify="1" id="zerif_script-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/themes/zerif-pro/js/zerif.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6848
6848
6849<script type="text/rocketlazyloadscript" data-minify="1" id="theme_skiplink-fix-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/themes/zerif-pro/js/skiplink-fix.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6849
6849
6850<script type="text/rocketlazyloadscript" data-minify="1" data-wp-strategy="defer" defer id="woocommerce-analytics-client-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/jetpack/jetpack_vendor/automattic/woocommerce-analytics/build/woocommerce-analytics-client.js?ver=1789818263"></script>
vendor: 1 bytes, line 6850
6850
6851<script id="af_tipping_donation-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6852var af_tbw_ajax_obj = {"ajax_url":"https://jackkeller.com/wp-admin/admin-ajax.php","nonce":"6d8393124c","af_tbw_is_precent_calculated":"0"};
6853//# sourceURL=af_tipping_donation-js-extra
6854</script>
vendor: 1 bytes, line 6854
6854
6855<script type="text/rocketlazyloadscript" data-minify="1" id="af_tipping_donation-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/addify-tipping-at-cart-checkout/assets/js/front.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6855
6855
6856<script type="text/rocketlazyloadscript" data-minify="1" id="af_tipping_select2-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/addify-tipping-at-cart-checkout/assets/js/select2.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6856
6856
6857<script type="text/rocketlazyloadscript" id="sourcebuster-js-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 6857
6857
6858<script id="wc-order-attribution-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6859var wc_order_attribution = {"params":{"lifetime":1.0000000000000000818030539140313095458623138256371021270751953125e-5,"session":30,"base64":false,"ajaxurl":"https://jackkeller.com/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
6860//# sourceURL=wc-order-attribution-js-extra
6861</script>
vendor: 1 bytes, line 6861
6861
6862<script type="text/rocketlazyloadscript" id="wc-order-attribution-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=11.1.1" data-rocket-defer defer></script>
vendor: 1 bytes, line 6862
6862
6863<script id="ppcp-fraudnet-js-extra" type="968bfde1705c18b9099319f7-text/javascript">
6864var FraudNetConfig = {"f":"5c04ace9c4b8cb9b0b5f9017812e3818","s":"5KKFMCYHX8JME_checkout-page","sandbox":""};
6865//# sourceURL=ppcp-fraudnet-js-extra
6866</script>
vendor: 1 bytes, line 6866
6866
6867<script type="text/rocketlazyloadscript" data-minify="1" id="ppcp-fraudnet-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/woocommerce-paypal-payments/assets/ppcp-wc-gateway-js-fraudnet.js?ver=1789818263" data-rocket-defer defer></script>
vendor: 1 bytes, line 6867
6867
6868<script type="text/rocketlazyloadscript" id="rewardswp-main-js-before">
6869window.rewardswpI18n = {"networkError":"Network error. Please try again.","genericError":"An error occurred. Please try again.","loadDataError":"We couldn't load your rewards. Please try again.","signupError":"We couldn't create your account. Please try again.","loginError":"We couldn't sign you in. Please check your details and try again.","birthdayError":"We couldn't save your birthday. Please try again.","claimError":"We couldn't claim your reward. Please try again.","couponError":"We couldn't apply the coupon. Please try again.","redeemError":"We couldn't redeem your points. Please try again.","claimSuccess":"Reward claimed successfully!","alreadyClaimed":"You already claimed this reward!","giftReceived":"You have received your gift!","discountCouponAmount":"%s off coupon","discountCouponPercent":"%d%% off coupon","freeShippingReward":"Free shipping","freeProductReward":"Free product","rewardFallback":"Reward","shareTitle":"Join our rewards program","shareTextGeneric":"Join me and we both get rewards!","shareText":"Join me on %1$s and we both get rewards!","shareEmailSubject":"Join me on %1$s","shareProgramFallback":"our rewards program","launcherLabel":"Rewards","programNameDefault":"Rewards","pointsSingular":"point","pointsPlural":"points","claimRewardLabel":"Claim reward","claimGiftLabel":"Claim gift","claimedGiftLabel":"Your gift","activateProductLabel":"Activate free product","claimProductLabel":"Claim free product","applyToCartLabel":"Apply to cart","applyCouponLabel":"Apply coupon","couponAppliedLabel":"Coupon applied"};
6870const rewardswpMainVars={"ajaxUrl":"https:\/\/jackkeller.com\/wp-admin\/admin-ajax.php?rewardswp_locale=site","mainCssUrl":"https:\/\/jackkeller.com\/wp-content\/plugins\/rewardswp-pro\/dist\/main.css?ver=1.4.6","brandForegroundColor":"#ffffff"}
6871window.rewardswpCookieConfig={path:"\/",domain:"jackkeller.com"};
6872//# sourceURL=rewardswp-main-js-before
6873</script>
vendor: 1 bytes, line 6873
6873
6874<script type="text/rocketlazyloadscript" data-minify="1" async data-wp-strategy="async" id="rewardswp-main-js" data-rocket-src="https://jackkeller.com/wp-content/cache/min/1/wp-content/plugins/rewardswp-pro/dist/main.js?ver=1789818263"></script>
vendor: 1 bytes, line 6874
6874
6875<script type="text/rocketlazyloadscript" id="googlesitekit-events-provider-content-events-js-before">
6876window._googlesitekit = window._googlesitekit || {};
6877window._googlesitekit.contentEvents = {"postID":646,"isSinglePost":false,"hasVimeoEmbed":false};
6878//# sourceURL=googlesitekit-events-provider-content-events-js-before
6879</script>
vendor: 1 bytes, line 6879
6879
6880<script type="text/rocketlazyloadscript" id="googlesitekit-events-provider-content-events-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-bb83c1a0aedefa5d25d1.js" defer></script>
vendor: 1 bytes, line 6880
6880
6881<script type="text/rocketlazyloadscript" id="googlesitekit-events-provider-woocommerce-js-before">
6882window._googlesitekit.wcdata = window._googlesitekit.wcdata || {};
6883window._googlesitekit.wcdata.products = [];
6884window._googlesitekit.wcdata.add_to_cart = null;
6885window._googlesitekit.wcdata.currency = "USD";
6886window._googlesitekit.wcdata.currencyMinorUnit = 2;
6887window._googlesitekit.wcdata.eventsToTrack = ["add_to_cart","purchase"];
6888//# sourceURL=googlesitekit-events-provider-woocommerce-js-before
6889</script>
vendor: 1 bytes, line 6889
6889
6890<script type="text/rocketlazyloadscript" id="googlesitekit-events-provider-woocommerce-js" data-rocket-src="https://jackkeller.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-woocommerce-86c5a3ff303665006998.js" defer></script>
vendor: 1 bytes, line 6890
6890
6891<script id="jetpack-stats-js-before" type="968bfde1705c18b9099319f7-text/javascript">
6892_stq = window._stq || [];
6893_stq.push([ "view", {"v":"ext","blog":"252563072","post":"646","tz":"-4","srv":"jackkeller.com","j":"1:16.2"} ]);
6894_stq.push([ "clickTrackerInit", "252563072", "646" ]);
6895//# sourceURL=jetpack-stats-js-before
6896</script>
vendor: 1 bytes, line 6896
6896
6897<script data-wp-strategy="defer" defer fetchpriority="low" id="jetpack-stats-js" src="https://stats.wp.com/e-202641.js" type="968bfde1705c18b9099319f7-text/javascript"></script>
6897
6898		
6898<script type="text/rocketlazyloadscript" data-rocket-type="text/javascript">
6899			(function() {
6900				window.wcAnalytics = window.wcAnalytics || {};
6901				const wcAnalytics = window.wcAnalytics;
6902
6903				// Set the assets URL for webpack to find the split assets.
6904				wcAnalytics.assets_url = 'https://jackkeller.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/woocommerce-analytics/src/../build/';
6905
6906				// Set the REST API tracking endpoint URL.
6907								wcAnalytics.trackEndpoint = "https://jackkeller.com/wp-json/woocommerce-analytics/v1/track";
6908
6909				// Set common properties for all events.
6910				wcAnalytics.commonProps = {"ui":0,"blog_id":252563072,"store_id":"8c0cf046-3a2b-4efc-97ac-53b290a82d95","url":"https://jackkeller.com","woo_version":"11.1.1","wp_version":"7.1.2","store_admin":0,"device":"desktop","store_currency":"USD","timezone":"America/New_York","is_guest":1};
6911
6912				// Set the event queue.
6913				wcAnalytics.eventQueue = [];
6914
6915				// Features.
6916				wcAnalytics.features = {
6917					ch: false,
6918					sessionTracking: false,
6919					proxy: false,
6920				};
6921
6922				wcAnalytics.breadcrumbs = ["Tax Record Search"];
6923
6924				// Page context flags.
6925				wcAnalytics.pages = {
6926					isAccountPage: false,
6927					isCart: false,
6928				};
6929			})();
6930		</script>
6930
6931		<div data-wpr-lazyrender="1" class="wpautoterms-footer"><p>
6932		<a href="https://jackkeller.com/wpautoterms/dmca/" target="_blank">DMCA</a><span class="separator"> - </span><a href="https://jackkeller.com/wpautoterms/customer-conduct/" target="_blank">Customer Conduct</a><span class="separator"> - </span><a href="https://jackkeller.com/wpautoterms/privacy-policy/" target="_blank">Privacy Policy</a><span class="separator"> - </span><a href="https://jackkeller.com/wpautoterms/accessibility/" target="_blank">Accessibility</a><span class="separator"> - </span><a href="https://jackkeller.com/wpautoterms/terms-and-conditions-2/" target="_blank">Terms and Conditions</a></p>
6933</div><div data-wpr-lazyrender="1" id="wpautoterms-bottom-static-container"><div  class="wpautoterms-cookies-notice" style="display:none">
6934	We use cookies to ensure that we give you the best experience on our website    <a href="javascript:void(0);" class="wpautoterms-notice-close"
6935       data-value="1" data-cookie="wpautoterms-cookies-notice">
6936		Close</a>
6937</div></div>
6937<script type="968bfde1705c18b9099319f7-text/javascript">window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue}
6938if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue}
6939images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
6940if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script>
6940<script data-no-minify="1" async src="https://jackkeller.com/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js" type="968bfde1705c18b9099319f7-text/javascript"></script>
6940<script type="968bfde1705c18b9099319f7-text/javascript">function lazyLoadThumb(e,alt,l){var t='<img data-lazy-src="https://i.ytimg.com/vi_webp/ID/hqdefault.webp" alt="" width="480" height="360"><noscript><img src="https://i.ytimg.com/vi_webp/ID/hqdefault.webp" alt="" width="480" height="360"></noscript>',a='<button class="play" aria-label="Play Youtube video"></button>';if(l){t=t.replace('data-lazy-','');t=t.replace('loading="lazy"','');t=t.replace(/<noscript>.*?<\/noscript>/g,'');}t=t.replace('alt=""','alt="'+alt+'"');return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.parentNode.dataset.query.length?"":"&"+this.parentNode.dataset.query;e.setAttribute("src",t.replace("ID",this.parentNode.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.parentNode.replaceChild(e,this.parentNode)}document.addEventListener("DOMContentLoaded",function(){var exclusions=["House-Test-225K.jpg","a-board-1000px_orig-e1542900526451.png","home_finder2.jpg"];var e,t,p,u,l,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)(e=document.createElement("div")),(u='https://i.ytimg.com/vi_webp/ID/hqdefault.webp'),(u=u.replace('ID',a[t].dataset.id)),(l=exclusions.some(exclusion=>u.includes(exclusion))),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query",a[t].dataset.query),e.setAttribute("data-src",a[t].dataset.src),(e.innerHTML=lazyLoadThumb(a[t].dataset.id,a[t].dataset.alt,l)),a[t].appendChild(e),(p=e.querySelector(".play")),(p.onclick=lazyLoadYoutubeIframe)});</script>
vendor: 143 bytes, lines 6940-6941
6940
6941<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="968bfde1705c18b9099319f7-|49" defer></script>
6941<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"85379b1b718d49878627dce5ec41ba20","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 6941
6941
6942<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a46537ad1e442af4',t:'MTc5MTI5NTQ5MA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
6942</body>
6943
6944</html>
6945<!-- Rocket no webp -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.