1<!doctype html> 2<html class="no-js" lang="en"> 3 <head> 4<!-- Start of Shoplift scripts --> 5<!-- 2026-05-07T22:45:50.5053417Z --> 6<style>.shoplift-hide { opacity: 0 !important; }</style> 7<style id="sl-preview-bar-hide">#preview-bar-iframe, #PBarNextFrameWrapper { display: none !important; }</style>
8<script type="text/javascript">(function(rootPath, template, themeRole, themeId, isThemePreview){ /* Generated on 2026-09-24T17:45:01.4016254Z */(function(){"use strict";var te=document.createElement("style");te.textContent=`#shoplift-preview-control{position:fixed;max-width:332px;height:56px;background-color:#141414;z-index:9999;bottom:20px;display:flex;border-radius:8px;box-shadow:13px 22px 7px #0000,9px 14px 7px #00000003,5px 8px 6px #0000000d,2px 4px 4px #00000017,1px 1px 2px #0000001a,0 0 #0000001a;align-items:center;margin:0 auto;left:16px;right:16px;opacity:0;transform:translateY(20px);visibility:hidden;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s .4s}#shoplift-preview-control.visible{opacity:1;transform:translateY(0);visibility:visible;transition:opacity .4s ease-in-out,transform .4s ease-in-out,visibility 0s 0s}#shoplift-preview-control *{font-family:Inter,sans-serif;color:#fff;box-sizing:border-box;font-size:16px}#shoplift-preview-variant-title{font-weight:400;line-height:140%;font-size:16px;text-align:start;letter-spacing:-.16px;flex-grow:1;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis}#shoplift-preview-variant-selector{position:relative;display:block;padding:6px 0;height:100%;min-width:0;flex:1 1 auto}#shoplift-preview-variant-menu-trigger{border:none;cursor:pointer;width:100%;background-color:transparent;padding:0 16px;border-left:1px solid #333;border-right:1px solid #333;height:100%;display:flex;align-items:center;justify-content:start;gap:8px}#shoplift-preview-variant-selector .menu-variant-label{width:24px;height:24px;border-radius:50%;padding:6px;display:flex;justify-content:center;align-items:center;font-size:12px;font-style:normal;font-weight:600;line-height:100%;letter-spacing:-.12px;flex-shrink:0}#shoplift-preview-variant-selector .preview-variant-menu{position:absolute;bottom:110%;transform:translate3d(0,20px,0);visibility:hidden;pointer-events:none;opacity:0;cursor:pointer;background-color:#141414;border:1px solid #141414;border-radius:6px;width:100%;max-height:156px;overflow-y:auto;box-shadow:0 8px 16px #0003;z-index:1;transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s .3s}#shoplift-preview-variant-selector .preview-variant-menu.preview-variant-menu__visible{visibility:visible;pointer-events:auto;opacity:100;transform:translateZ(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s 0s}@media screen and (max-width:400px){#shoplift-preview-variant-selector .preview-variant-menu{position:fixed;left:0;right:0;width:auto;bottom:110%}}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item{padding:12px 16px;display:flex;overflow:hidden}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item .menu-variant-label{margin-right:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item span{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;white-space:nowrap;color:#f6f6f6;font-size:14px;font-style:normal;font-weight:500}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:hover{background-color:#545454}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:last-of-type{border-bottom-left-radius:6px;border-bottom-right-radius:6px}#shoplift-preview-variant-selector .preview-variant-menu .preview-variant-menu--item:first-of-type{border-top-left-radius:6px;border-top-right-radius:6px}#shoplift-preview-control div:has(#shoplift-exit-preview-button){padding:0 16px}#shoplift-exit-preview-button{padding:6px 8px;font-weight:500;line-height:75%;border-radius:4px;background-color:transparent;border:none;text-decoration:none}#shoplift-exit-preview-button:hover{cursor:pointer;background-color:#333}#shoplift-preview-subscription-warning{position:relative;display:flex;align-items:center;gap:6px;padding:6px 10px;margin:0 4px;border-left:1px solid #333;cursor:help;outline:none}#shoplift-preview-subscription-warning__icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background-color:#f59e0b;color:#141414!important;font-weight:700;font-size:12px!important;line-height:1;flex-shrink:0}#shoplift-preview-subscription-warning__label{font-size:13px!important;font-weight:500;color:#fbbf24!important;text-wrap:nowrap;white-space:nowrap}#shoplift-preview-subscription-warning__tooltip{position:absolute;bottom:calc(100% + 8px);right:0;max-width:320px;width:max-content;padding:10px 12px;border-radius:6px;background-color:#1f1f1f;color:#fff!important;font-size:12px!important;line-height:1.4!important;box-shadow:0 8px 16px #0000004d;z-index:10000;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s .2s;pointer-events:none}#shoplift-preview-subscription-warning__tooltip.shoplift-preview-subscription-warning__tooltip--visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s ease-in-out,transform .2s ease-in-out,visibility 0s 0s}#shoplift-preview-subscription-warning:focus-visible{box-shadow:inset 0 0 0 2px #f59e0b;border-radius:4px}#shoplift-preview-control:has(#shoplift-preview-subscription-warning){max-width:480px}/*$vite$:1*/`,document.head.appendChild(te);var fe=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x
87|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+/1\\.0;|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/",ge=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function me(){if(z instanceof RegExp)return z;try{z=new RegExp(fe,"i")}catch{z=ge}return z}var ye=a=>typeof a=="string"&&a!=="";function ve(a){return ye(a)&&me().test(a)}var we=ve;class X{timestamp;constructor(){this.timestamp=new Date}}class be extends X{type;testId;hypothesisId;constructor(e,t,i){super(),this.type=3,this.testId=e,this.hypothesisId=t,this.timestamp=i}}class Se extends X{type;path;constructor(e){super(),this.type=4,this.path=e}}class Ce extends X{type;cart;constructor(e){super(),this.type=5,this.cart=e}}class ie extends Error{isBot;constructor(){super(),this.isBot=!0}}function Te(a,e,t){for(const i of e.selectors){const s=a.querySelectorAll(i.cssSelector);for(let r=0;r<s.length;r++)t(e.testId,e.hypothesisId)}re(a,e,(i,s,r,o,n)=>n(s,r),t)}function U(a,e,t){for(const i of e.selectors)ne(a,e.testId,e.hypothesisId,i,t??(()=>{}));re(a,e,ne,t??(()=>{}))}function se(a){return a.urlPatterns.reduce((e,t)=>{switch(t.operator){case"contains":return e+`.*${t}.*`;case"endsWith":return e+`.*${t}`;case"startsWith":return e+`${t}.*`}},"")}function re(a,e,t,i){new MutationObserver(()=>{for(const r of e.selectors)t(a,e.testId,e.hypothesisId,r,i)}).observe(a.documentElement,{childList:!0,subtree:!0})}function ne(a,e,t,i,s){const r=a.querySelectorAll(i.cssSelector);for(let o=0;o<r.length;o++){let n=r.item(o);if(n instanceof HTMLElement&&n.dataset.shoplift!==""){n.dataset.shoplift="";for(const l of i.actions.sort(Re))n=Ie(a,i.cssSelector,n,l)}}return r.length>0&&s?(s(e,t),!0):!1}function Ie(a,e,t,i){switch(i.type){case"innerHtml":t.innerHTML=i.value;break;case"attribute":Pe(t,i.scope,i.value);break;case"css":Ae(a,e,i.value);break;case"js":ke(a,t,i);break;case"copy":return Ee(t);case"remove":xe(t);break;case"move":_e(t,parseInt(i.value));break}return t}function Pe(a,e,t){a.setAttribute(e,t)}function Ae(a,e,t){const i=a.createElement("style");i.innerHTML=`${e} { ${t} }`,a.getElementsByTagName("head")[0]?.appendChild(i)}function ke(a,e,t){Function("document","element",`"use strict"; ${t.value}`)(a,e)}function Ee(a){const e=a.cloneNode(!0);if(!a.parentNode)throw"Can't copy node outside of DOM";return a.parentNode.insertBefore(e,a.nextSibling),e}function xe(a){a.remove()}function _e(a,e){if(e===0)return;const t=Array.prototype.slice.call(a.parentElement.children).indexOf(a),i=Math.min(Math.max(t+e,0),a.parentElement.children.length-1);a.parentElement.children.item(i).insertAdjacentElement(e>0?"afterend":"beforebegin",a)}function Re(a,e){return oe(a)-oe(e)}function oe(a){return a.type==="copy"||a.type==="remove"?0:1}
8const M={Template:0,UrlRedirect:2,Script:3,Price:5},De="data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.96001%207.90004C9.86501%207.90004%209.77001%207.86504%209.69501%207.79004L6.43501%204.53004C6.19501%204.29004%205.80501%204.29004%205.56501%204.53004L2.30501%207.79004C2.16001%207.93504%201.92001%207.93504%201.77501%207.79004C1.63001%207.64504%201.63001%207.40504%201.77501%207.26004L5.03501%204.00004C5.56501%203.47004%206.43001%203.47004%206.96501%204.00004L10.225%207.26004C10.37%207.40504%2010.37%207.64504%2010.225%207.79004C10.15%207.86004%2010.055%207.90004%209.96001%207.90004Z'%20fill='white'/%3e%3c/svg%3e",Ve="data:image/svg+xml,%3csvg%20width='14'%20height='24'%20viewBox='0%200%2014%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.3976%2014.5255C12.2833%2013.8788%2012.0498%2013.3024%2011.6952%2012.7961C11.3416%2012.2898%2010.9209%2011.8353%2010.4353%2011.4317C9.94868%2011.0291%209.43546%2010.6488%208.89565%2010.292C8.48487%2010.049%208.09577%209.78565%207.72637%209.50402C7.35697%209.2224%207.08016%208.89503%206.89694%208.51987C6.71273%208.14471%206.67826%207.69533%206.79055%207.1697C6.86345%206.83216%206.97476%206.54647%207.12351%206.31162C7.27324%206.07778%207.47124%205.89986%207.7175%205.77684C7.96377%205.65483%208.21989%205.59383%208.48389%205.59383C8.88087%205.59383%209.17639%205.7016%209.3734%205.91714C9.56943%206.13268%209.68271%206.42345%209.71424%206.78946C9.74576%207.15547%209.72015%207.55401%209.63839%207.98509C9.55663%208.41617%209.43645%208.84724%209.27687%209.27934L13.5127%208.80149C13.9638%207.52656%2014.1017%206.42447%2013.9264%205.49725C13.751%204.56901%2013.2664%203.85122%2012.4724%203.34491C12.239%203.19648%2011.9779%203.07041%2011.6893%202.96569L12.0026%201.50979L9.86397%200L7.3875%201.50979L7.11169%202.78878C6.65166%202.8874%206.21724%203.01957%205.8114%203.19038C4.85292%203.594%204.06684%204.15115%203.45117%204.86385C2.83452%205.57655%202.42571%206.40108%202.22378%207.33847C2.06616%208.06947%202.04942%208.70796%202.17551%209.25087C2.30061%209.7948%202.52028%2010.2828%202.8355%2010.7139C3.14974%2011.145%203.51816%2011.5344%203.93977%2011.881C4.36039%2012.2288%204.782%2012.5521%205.20164%2012.851C5.68334%2013.1702%206.13844%2013.5169%206.56497%2013.8921C6.99052%2014.2672%207.31954%2014.7125%207.55004%2015.228C7.78055%2015.7445%207.81502%2016.3769%207.65347%2017.1262C7.56482%2017.5389%207.43676%2017.8765%207.27028%2018.1388C7.10381%2018.4011%206.89596%2018.5983%206.64772%2018.7295C6.3985%2018.8606%206.12071%2018.9267%205.8114%2018.9267C5.21641%2018.9267%204.79776%2018.6034%204.62833%2018.1632C4.4589%2017.7229%204.47367%2017.2583%204.60075%2016.5639C4.72782%2015.8705%205.05092%2015.1395%205.37107%2014.3699H1.17665C1.17665%2014.3699%200.207341%2016.1115%200.0310135%2017.6762C-0.0655232%2018.5302%200.0635208%2019.2653%200.41519%2019.8844C0.76686%2020.5036%201.33032%2020.9814%202.10655%2021.319C2.39222%2021.443%202.7104%2021.5447%203.05813%2021.623L2.54589%2024H7.17473L7.7047%2021.5386C8.08493%2021.442%208.43857%2021.3231%208.76562%2021.1787C9.73985%2020.7476%2010.52%2020.1427%2011.1071%2019.3649C11.6932%2018.5871%2012.0873%2017.7291%2012.2892%2016.7917C12.4744%2015.9295%2012.5099%2015.1741%2012.3966%2014.5275L12.3976%2014.5255Z'%20fill='white'/%3e%3c/svg%3e";async function Oe(a){let e=a.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4;)e+="=";const t=atob(e),i=Uint8Array.from(t,o=>
8o.charCodeAt(0)),s=new Blob([i]).stream().pipeThrough(new DecompressionStream("gzip")),r=await new Response(s).text();return JSON.parse(r)}function F(a,e){return typeof e=="string"&&/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d+(?:Z|[+-]\d+)/.test(e)?new Date(e):e}function ee(a,e){return e}function q(a,e=!1,t=!1,i=","){const s=a/100;if(t){const o=Math.round(s).toLocaleString("en-US");return i!==","?o.replace(/,/g,i):o}else{const r=e?",":".",o=s.toFixed(2).split("."),n=parseInt(o[0],10),l=o[1]??"00",c=n.toLocaleString("en-US");return i!==","?`${c.replace(/,/g,i)}${r}${l}`:e?`${c.replace(/,/g,".")}${r}${l}`:`${c}${r}${l}`}}function H(a,e,t,i){const s=e.replace("{{amount}}",q(a,!1,!1)).replace("{{amount_no_decimals}}",q(a,!1,!0)).replace("{{amount_with_comma_separator}}",q(a,!0,!1)).replace("{{amount_no_decimals_with_comma_separator}}",q(a,!0,!0)).replace("{{amount_with_space_separator}}",q(a,!1,!1," ")).replace("{{amount_no_decimals_with_space_separator}}",q(a,!1,!0," ")).replace("{{amount_with_apostrophe_separator}}",q(a,!1,!1,"'")).replace("{{amount_no_decimals_with_apostrophe_separator}}",q(a,!1,!0,"'")).replace("{{amount_with_period_and_space_separator}}",q(a,!1,!1,". ")).replace("{{amount_no_decimals_with_period_and_space_separator}}",q(a,!1,!0,". "));return i?`${s} ${t}`:s}function ae(a){return a.replace(/[^\d.,\s-]/g,"").trim()}function j(a){const e=new Map;for(const[t,i,s]of a.variants)e.set(t,{priceInCents:i,compareAtPriceInCents:s});return e}function Le(a,e,t,i){const{priceInCents:s,compareAtPriceInCents:r}=t,{moneyFormat:o,currency:n,currencyCodeEnabled:l}=i;if(a.getAttribute("data-sl-attribute-p")===e)a.innerHTML=H(s,o,n,l);else if(a.getAttribute("data-sl-attribute-cap")===e)r<=0||r<=s?a.remove():a.innerHTML=H(r,o,n,l);else if(a.getAttribute("data-sl-attribute-discount")===e&&!(r<=0||r<=s)){const d=Math.round((r-s)/r*100),u=ae(H(r-s,o,n,!1)),h=a.getAttribute("data-sl-format")||"percent";h==="percent"?a.textContent=`-${d}%`:h==="amount"?a.textContent=`-${u}`:h==="both"&&(a.textContent=`-${d}% (-${u})`)}}function $e(a){const e=[],t={id:"url-pattern",operator:"contains",value:"/"};for(const[i,s,r]of a.variants){e.push({id:`p-${i}`,cssSelector:`[data-sl-attribute-p="${i}"]`,urlPatterns:[t],actions:[{id:`p-action-${i}`,type:"innerHtml",scope:"price",value:H(s,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]});const o=r<=0||r<=s;if(e.push({id:`cap-${i}`,cssSelector:`[data-sl-attribute-cap="${i}"]`,urlPatterns:[t],actions:[{id:`cap-action-${i}`,type:o?"remove":"innerHtml",scope:"compare-at-price",value:o?"":H(r,a.moneyFormat,a.currency,a.currencyCodeEnabled)}]}),!o&&r>s){const n=Math.round((r-s)/r*100),l=ae(H(r-s,a.moneyFormat,a.currency,!1));e.push({id:`d-${i}`,cssSelector:`[data-sl-attribute-discount="${i}"]`,urlPatterns:[t],actions:[{id:`d-action-${i}`,type:"js",scope:null,value:`var format = element.getAttribute('data-sl-format') || 'percent'; if (format === 'percent') { element.textContent = '-${n}%'; } else if (format === 'amount') { element.textContent = '-${l}'; } else if (format === 'both') { element.textContent = '-${n}% (-${l})'; }`}]})}}return e}const Me=a=>{let e=5381;for(let t=0;t<a.length;t++)e=(e*33^a.charCodeAt(t))>>>0;return e.toString(36)},qe=()=>Math.random().toString(36).slice(2,10)+Date.now().toString(36).slice(-4),He=a=>btoa(JSON.stringify(a)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),K=a=>a.replace(/#slr-[a-z0-9]+$/,""),tt="modulepreload",it=function(a){return"/"+a},st={},Ne=function(e,t,i){let s=Promise.resolve();function r(o){const n=new Event("vite:preloadError",{cancelable:!0});if(n.payload=o,window.dispatchEvent(n),!n.defaultPrevented)throw o}return s.then(o=>{for(const n of o||[])n.status==="rejected"&&r(n.reason);return e().catch(r)})};function le(a,e,t){const i=t?a.plans.filter(c=>!c.variantId||c.variantId===t):a.plans,s=[],r=[];for(const c of i)c.direction==="decrease"?(s.push(c.existingShopifyPlanId),r.push(c.createdShopifyPlanId)):(s.push(c.createdShopifyPlanId),r.push(c.existingShopifyPlanId));const o=e?s:r,n=e?r:s;if(t)for(const c of a.plans)for(const d of[c.existingShopifyPlanId,c.createdShopifyPlanId])d&&!o.includes(d)&&!n.includes(d)&&n.push(d);const l={};for(let c=0;c<n.length;c++){const d=n[c],u=o[c];d&&u&&(l[d]=u)}return{showPlanIds:o,hidePlanIds:n,swapMap:l}}function ce(a,e,t){const i=e?a.plans.find(r=>r.variantId===e):void 0;if(i)return i.direction;if(t){const r=a.plans.find(o=>o.productId===t);if(r)return r.direction}return a.plans.find(r=>!r.variantId)?.direction??null}function J(a,e){const t=e?a.plans.filter(r=>!r.productId||r.productId===e):a.plans,i={};for(const r of t)i[r.existingShopifyPlanId]=r.existingDiscountAmount,i[r.createdShopifyPlanId]=r.existingDiscountAmount;
8const s=Math.max(...Object.values(i),0);return{discountMap:i,maxDiscount:s}}function W(a){const e=document.querySelector('form[action*="/cart/add"] input[name="product-id"]')?.value;if(e)return e;if(a){for(const r of Array.from(document.querySelectorAll("[data-sl-attribute-p]"))){const o=r.getAttribute("data-sl-attribute-p");if(!o)continue;const n=a.variants.find(l=>l[0]===o);if(n?.[3])return n[3]}const s=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(s){const r=a.variants.find(o=>o[0]===s);if(r?.[3])return r[3]}}const t=window,i=t.ShopifyAnalytics?.meta?.product?.id??t.meta?.product?.id;return i!=null?String(i):null}function D(a,e){return a.widget.selectors[e]??[]}function N(a,e){return a.replace(/[\d.]+%/,`${e}%`)}function $(a,e){const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);let i=t.nextNode();for(;i;){if(i.nodeValue!==null){const s=e(i.nodeValue);if(s!==i.nodeValue){i.nodeValue=s;return}}i=t.nextNode()}}function de(a,e){return a===null?!1:a==="decrease"?!e:e}async function Ue(a){if(a.subscriptionSwapDone)return;const e=a.getActiveAssignment();if(!e)return;const t=a.getHypothesis(e.hypothesisId);if(!t?.subscriptionData)return;a.subscriptionSwapDone=!0;const i=t.subscriptionData,s=t.isControl,r=[...new Set(i.plans.map(d=>d.direction))].join(",");a.log(`[SUB-SWAP] ${s?"A":"B"} side, directions=${r}`);const o=i.plans.some(d=>d.variantId);let n=!1,l=!1;function c(){if(!l){l=!0;try{const d=o?document.querySelector("select[name='id'], input[name='id']")?.value:void 0,{showPlanIds:u,hidePlanIds:h,swapMap:p}=le(i,s,d);a.swapMap=p;const b=D(i,"widgetParent"),E=D(i,"subscriptionPlans"),S=D(i,"subscriptionInput");if(!b.length||!E.length||!S.length)return;const C=document.querySelector(b[0].selector);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(E[0].selector);if(!_?.shadowRoot)return;const T=S[0].selector;let m=null;if(i.widget.widgetType==="buttons"||i.widget.widgetType==="radio"){const y=Array.from(_.shadowRoot.querySelectorAll(T));if(!y.length)return;for(const v of y){const g=v.closest("label");g&&(u.includes(v.value)?g.style.display="":h.includes(v.value)&&(g.style.display="none"))}const w=y.some(v=>u.includes(v.value)&&v.checked),I=y.some(v=>h.includes(v.value)&&v.checked);if((w||I)&&(n=!1),!w&&!n){n=!0;for(const v of y)if(u.includes(v.value)){v.closest("label")?.click(),v.dispatchEvent(new Event("change",{bubbles:!0}));break}}const f=y.find(v=>v.checked);m=f&&u.includes(f.value)?f.value:u[0]??null}else if(i.widget.widgetType==="dropdown"){const y=_.shadowRoot.querySelector("select");if(!y)return;for(const w of Array.from(y.options))h.includes(w.value)&&(w.style.display="none",w.disabled=!0);if(h.includes(y.value)){const w=Array.from(y.options).find(I=>u.includes(I.value));w&&(y.value=w.value,y.dispatchEvent(new Event("change",{bubbles:!0})))}m=u.includes(y.value)?y.value:u[0]??null}if(m){const y=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const w of y)w.value!==m&&(w.value=m)}}finally{l=!1}}}if(a.subscriptionHideWrongPlans=c,a.swapMap=le(i,s).swapMap,c(),o){const d=document.querySelector("select[name='id'], input[name='id']");d&&d.addEventListener("change",c)}}function B(a){const e=D(a,"widgetParent");return e.length?document.querySelector(e[0].selector)?.shadowRoot??null:null}function Y(a,e){const t=D(a,"subscriptionPlans");return t.length?e.querySelector(t[0].selector)?.shadowRoot??null:null}function Z(a,e){const t=new URLSearchParams(window.location.search).get("variant");if(t)return t;{const i=document.querySelector('form[action*="/cart/add"] input[name="id"]')?.value;if(i)return i}return a.size>0?[...a.keys()][0]:void 0}function G(a,e){return H(a,e.moneyFormat,e.currency,e.currencyCodeEnabled)}function Fe({originalFetch:a,swapMap:e,slptValue:t,getSelectedPlanId:i,log:s}){if(window.fetch.__shoplift_intercepted)return s("[SUB-INTERCEPT] already installed â skipping"),()=>{};function r(n){if(i){const l=i();if(l)return e[l]??l}return e[n]??n}const o=function(n,l){if((typeof n=="string"?n:n instanceof URL?n.href:n.url).includes("/cart/add")&&l?.body)try{if(l.body instanceof FormData){const d=l.body.get("selling_plan");d?l.body.set("selling_plan",r(String(d))):(!d||d==="")&&t&&l.body.set("properties[_slpt]",t)}
8else if(typeof l.body=="string"){const d=JSON.parse(l.body);if(d.items)for(const u of d.items){const h=String(u.selling_plan??"");h?u.selling_plan=r(h):!u.selling_plan&&t&&(u.properties||(u.properties={}),u.properties._slpt=t)}else if(d.id){const u=String(d.selling_plan??"");u?d.selling_plan=r(u):!d.selling_plan&&t&&(d.properties||(d.properties={}),d.properties._slpt=t)}l.body=JSON.stringify(d)}}catch(d){s("[SUB-INTERCEPT] body parse failed; cart-add proceeds with un-swapped plan",d)}return a.call(window,n,l)};return o.__shoplift_intercepted=!0,window.fetch=o,function(){window.fetch===o&&(window.fetch=a)}}function Be({log:a}){if(window.fetch.__shoplift_intercepted)return a("[SUB-PREVIEW-BLOCK] already installed â skipping"),()=>{};const e=window.fetch,t=function(i,s){const r=typeof i=="string"?i:i instanceof URL?i.href:i.url;return r.includes("/cart/add")?(a("[SUB-PREVIEW-BLOCK] cart-add blocked in preview mode",{url:r}),Promise.resolve(new Response(JSON.stringify({id:0,properties:{},quantity:0,variant_id:0,key:"preview",title:"Preview â cart-add blocked",price:0,original_price:0,line_price:0,original_line_price:0,total_discount:0,discounts:[],preview:!0}),{status:200,headers:{"Content-Type":"application/json"}}))):e.call(window,i,s)};return t.__shoplift_intercepted=!0,window.fetch=t,function(){window.fetch===t&&(window.fetch=e)}}function pe({data:a,runUpdates:e,debounceMs:t=150}){let i=null;function s(){i&&clearTimeout(i),e(),i=setTimeout(e,t)}let r=null;const o=[],n={childList:!0,subtree:!0,characterData:!0,attributes:!0};function l(h){for(const p of o)p.disconnect();o.length=0;for(const p of Array.from(h.querySelectorAll("*")))if(p.shadowRoot){const b=new MutationObserver(s);b.observe(p.shadowRoot,n),o.push(b)}}function c(){const h=B(a);return h?(r&&r.disconnect(),l(h),r=new MutationObserver(p=>{p.some(b=>b.type==="childList"&&b.addedNodes.length>0)&&l(h),s()}),r.observe(h,n),!0):!1}const d=document.body||document.documentElement,u=new MutationObserver(()=>{c()&&s()});return u.observe(d,{childList:!0,subtree:!0}),c()&&s(),e(),function(){i&&(clearTimeout(i),i=null),u.disconnect(),r&&(r.disconnect(),r=null);for(const p of o)p.disconnect();o.length=0}}async function ze(a){if(a.subscriptionPriceDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=t?.subscriptionData?null:a.findActiveSubscriptionTestControl(),s=t?.subscriptionData?t:i?.hypothesis;if(!s?.subscriptionData)return;const r=t?.subscriptionData?e.testId:i.testId;a.subscriptionPriceDone=!0;const o=s.subscriptionData,n=s.isControl,l=s.priceData,c=o.widget.widgetType;let d=W(l),u=J(o,d),h=u.discountMap,p=u.maxDiscount;function b(){const g=W(l);g!==d&&(d=g,u=J(o,d),h=u.discountMap,p=u.maxDiscount,a.log(`[SUB-PRICE] scope refreshed side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`))}a.log(`[SUB-PRICE] side=${n?"A":"B"}, currentProductId=${d??"n/a"}, maxDiscount=${p}`),a.updatePriceTestHiddenInputs(r,n?"control":"variant",!1);function E(){if(!l)return null;const g=j(l),P=Z(g),A=ce(o,P,d);if(!de(A,n))return null;const k=P?g.get(P):void 0;return k?{formattedVariantPrice:G(k.priceInCents,l),formattedDiscounted:G(k.priceInCents*(1-p/100),l)}:null}Fe({originalFetch:a.fetch,swapMap:a.swapMap??{},slptValue:a.slptValue??void 0,log:a.log,getSelectedPlanId:()=>{const g=B(o);if(!g)return null;const P=Y(o,g);if(!P)return null;const A=D(o,"subscriptionInput"),k=A.length?A[0].selector:'input[name="rc_plan"]';return P.querySelector(`${k}:checked`)?.value??null}});function S(g){const P=D(o,"subscriptionDiscount");for(const A of P)if(A.selector.includes("badge")||A.selector.includes("__badge")){const k=g.querySelector(A.selector);k?.textContent&&!k.textContent.includes(`${p}%`)&&$(k,x=>N(x,p))}}function C(g){const P=E();if(!P)return;const A=D(o,"subscriptionCompareAt");for(const k of A){const x=g.querySelector(k.selector)||g.querySelector(`[part~="${k.selector}"]`);x?.textContent&&!x.textContent.includes(P.formattedVariantPrice)&&$(x,R=>/\d/.test(R)?P.formattedVariantPrice:R)}}function _(g,P){const A=D(o,"subscriptionCompareAt"),k=P===0?"none":"";for(const x of A){const R=g.querySelector(x.selector)||g.querySelector(`[part~="${x.selector}"]`);R&&(k==="none"?R.style.display!=="none"&&(R.style.display="none"):R.style.display==="none"&&(R.style.display=""))}}function T(g){const P=D(o,"subscriptionInput"),A=P.length?P[0].selector:'input[name="rc_plan"]',k=D(o,"subscriptionPlanDiscount"),x=k.length?k[0].selector:".rc-plans-button__discount";for(const R of Array.from(g.querySelectorAll("label"))){const O=R.querySelector(A),V=R.querySelector(x);
8if(O&&V){const L=h[O.value];if(L!==void 0){if(L===0)V.style.display!=="none"&&(V.style.display="none");else if(V.style.display==="none"&&(V.style.display=""),V.textContent){const Q=V.textContent.match(/[\d.]+%/)?.[0];Q&&Q!==`${L}%`&&$(V,et=>N(et,L))}}}}}function m(g){const P=g.querySelector("select");if(P)for(const A of Array.from(P.options)){const k=h[A.value];if(k!==void 0&&A.textContent){const x=A.textContent.match(/[\d.]+%/)?.[0];x&&x!==`${k}%`&&(A.textContent=N(A.textContent,k))}}}function y(g,P){const k=D(o,"subscriptionDiscount").filter(x=>x.selector.includes("benefit")||x.selector==="rc-benefits");for(const x of k){const R=g.querySelector(x.selector);if(R?.shadowRoot){for(const O of Array.from(R.shadowRoot.querySelectorAll("li")))if(O.textContent?.includes("Save")){const V=O;if(P===0)V.style.display!=="none"&&(V.style.display="none");else{V.style.display==="none"&&(V.style.display="");const L=O.textContent.match(/[\d.]+%/)?.[0];L&&L!==`${P}%`&&$(O,Q=>N(Q,P))}}}}}let w=!1;function I(){if(!w){w=!0;try{if(b(),d!==null&&Object.keys(h).length===0)return;const g=B(o);if(!g)return;S(g),l&&C(g);const P=Y(o,g);let A=p;if(P){const k=D(o,"subscriptionInput"),x=k.length?k[0].selector:'input[name="rc_plan"]',R=P.querySelector(`${x}:checked`);if(R){const O=h[R.value];O!==void 0&&(A=O)}c==="buttons"||c==="radio"?T(P):m(P)}_(g,A),y(g,A)}finally{w=!1}}}function f(){const g=E();if(!g)return;const P=B(o);if(!P)return;const A=D(o,"onetimeToggle"),k=A.length?A[0].selector:'input[value="onetime"]';if(!P.querySelector(k)?.checked)return;const R=D(o,"subscriptionPrice");for(const O of R){const V=P.querySelector(O.selector)||P.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(g.formattedDiscounted)&&$(V,L=>/\d/.test(L)?g.formattedDiscounted:L)}}function v(){a.subscriptionHideWrongPlans&&a.subscriptionHideWrongPlans(),I(),a.subscriptionUpdateOneTime&&a.subscriptionUpdateOneTime(),f()}pe({data:o,runUpdates:v})}async function We(a){if(a.subscriptionOneTimeDone)return;const e=a.getActiveAssignment(),t=e?a.getHypothesis(e.hypothesisId):void 0,i=!!(t?.subscriptionData&&t.priceData),s=i?null:a.findActiveSubscriptionTestControl(),r=i?t:s?.hypothesis;if(!r?.subscriptionData||!r.priceData)return;const o=i?e.testId:s.testId;a.subscriptionOneTimeDone=!0;const n=r.subscriptionData,l=r.priceData,c=j(l),d=r.isControl,u=d?"control":"variant";a.slptValue=`${o}:${u}:f`,a.updatePriceTestHiddenInputs(o,u,!1);function h(){const p=B(n);if(!p)return;const b=Z(c);if(!b)return;const E=W(l),S=ce(n,b,E);if(!de(S,d))return;const C=c.get(b);if(!C)return;const _=H(C.priceInCents,l.moneyFormat,l.currency,l.currencyCodeEnabled),T=D(n,"onetimePrice");if(!T.length)return;const m=D(n,"onetimeContainer"),y=m.length?m[0].selector:'[part~="rc-purchase-option__onetime"]',I=p.querySelector(y)??p;for(const f of T){let v=null;try{v=I.querySelector(f.selector)}catch{v=null}v??=I.querySelector(`[part~="${f.selector}"]`),v&&v.textContent&&!v.textContent.includes(_)&&$(v,g=>/\d/.test(g)?_:g)}}a.subscriptionUpdateOneTime=h,h()}async function Ge(a,e){const{subscriptionPreviewRender:t}=await Ne(async()=>{const{subscriptionPreviewRender:i}=await Promise.resolve().then(()=>Xe);return{subscriptionPreviewRender:i}},void 0);return t(a.subscriptionData,a.priceData,a.isControl,e)}function je(a,e){const t=a.widget.selectors.widgetParent??[],i=a.widget.selectors.subscriptionPlans??[],s=a.widget.selectors.subscriptionInput??[];if(!t.length||!i.length||!s.length){e("[SUB-GLOBAL-HIDE] Missing required selectors â skipping");return}const r=t[0].selector,o=i[0].selector,n=s[0].selector;let l=!1,c=null,d=!1;function u(){if(!d){d=!0;try{h()}finally{d=!1}}}function h(){const C=document.querySelector(r);if(!C?.shadowRoot)return;const _=C.shadowRoot.querySelector(o);if(!_?.shadowRoot)return;_.shadowRoot!==c&&(c=_.shadowRoot,l=!1);let T=0;if(a.widget.widgetType==="buttons"||a.widget.widgetType==="radio"){const m=Array.from(_.shadowRoot.querySelectorAll(n));for(const f of m)if(a.planIds.includes(f.value)){f.disabled||(f.disabled=!0);const v=f.closest("label");v&&v.style.display!=="none"&&(v.style.display="none",T++)}const y=m.filter(f=>!a.planIds.includes(f.value));if(!y.some(f=>f.checked)&&!l&&y.length>0){l=!0;const f=y[0];f.closest("label")?.click(),f.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible plan input=${f.value}`)}const I=y.find(f=>f.checked)??y[0];
8if(I){const f=Array.from(document.querySelectorAll('input[name="selling_plan"]'));for(const v of f)v.value!==I.value&&(v.value=I.value,e(`[SUB-GLOBAL-HIDE] Mirrored plan id ${I.value} to form selling_plan input`))}}else if(a.widget.widgetType==="dropdown"){const m=_.shadowRoot.querySelector("select");if(!m)return;for(const I of Array.from(m.options))a.planIds.includes(I.value)&&(I.style.display!=="none"&&(I.style.display="none"),I.disabled||(I.disabled=!0),T++);const y=Array.from(m.options).filter(I=>!a.planIds.includes(I.value)),w=y.some(I=>I.value===m.value);y.length>0&&!w&&!l&&(l=!0,m.value=y[0].value,m.dispatchEvent(new Event("change",{bubbles:!0})),e(`[SUB-GLOBAL-HIDE] Preselected first visible option=${y[0].value}`))}T>0&&e(`[SUB-GLOBAL-HIDE] Hidden ${T} B-side plan buttons`)}const p={childList:!0,subtree:!0,characterData:!0};let b=null;function E(C){b?.disconnect(),b=new MutationObserver(()=>u()),b.observe(C,p)}function S(){const C=document.querySelector(r);if(!C?.shadowRoot)return!1;u(),new MutationObserver(()=>{u();const m=C.shadowRoot.querySelector(o);m?.shadowRoot&&E(m.shadowRoot)}).observe(C.shadowRoot,p);const T=C.shadowRoot.querySelector(o);return T?.shadowRoot&&E(T.shadowRoot),!0}if(!S()){e("[SUB-GLOBAL-HIDE] Widget not in DOM yet â waiting via MutationObserver");const C=new MutationObserver(()=>{S()&&C.disconnect()});C.observe(document.body??document.documentElement,{childList:!0,subtree:!0})}}const ue="Limited preview",Ke="Add-to-cart and checkout prices won't reflect this test until it launches â test selling plans are not created in your subscription app until after a test is launched.",Je=5e3;function Ye(){const a=document.createElement("div");a.id="shoplift-preview-subscription-warning";const e=document.createElement("span");e.id="shoplift-preview-subscription-warning__icon",e.setAttribute("aria-hidden","true"),e.textContent="!";const t=document.createElement("span");t.id="shoplift-preview-subscription-warning__label",t.textContent=ue;const i=document.createElement("div");i.id="shoplift-preview-subscription-warning__tooltip",i.setAttribute("role","tooltip"),i.textContent=Ke,a.appendChild(e),a.appendChild(t),a.appendChild(i),a.setAttribute("tabindex","0"),a.setAttribute("aria-describedby",i.id),a.setAttribute("aria-label",ue);let s=null;function r(){s!==null&&(clearTimeout(s),s=null)}function o(){i.classList.add("shoplift-preview-subscription-warning__tooltip--visible")}function n(){i.classList.remove("shoplift-preview-subscription-warning__tooltip--visible")}function l(){o(),r(),s=setTimeout(()=>{n(),s=null},Je)}function c(){r(),o()}function d(){s===null&&n()}a.addEventListener("mouseenter",c),a.addEventListener("mouseleave",d),a.addEventListener("focus",c),a.addEventListener("blur",d);function u(p){try{const b=p.target;if(!(b instanceof Element))return;(b.closest('form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] input[type="submit"]')!==null||b.closest('[name="add"], button[name="add"], [data-add-to-cart], button[data-add-to-cart]')!==null)&&l()}catch{}}document.addEventListener("click",u,!0);function h(){r(),document.removeEventListener("click",u,!0),a.removeEventListener("mouseenter",c),a.removeEventListener("mouseleave",d),a.removeEventListener("focus",c),a.removeEventListener("blur",d),a.remove()}return{root:a,tooltip:i,cleanup:h}}let he=!1;class Ze{DATA_SL_ATTRIBUTE_P="data-sl-attribute-p";DATA_SL_TEST_ID="data-sl-test-id";VIEWPORT_TRACK_THRESHOLD=.5;temporarySessionKey="Shoplift_Session";essentialSessionKey="Shoplift_Essential";analyticsSessionKey="Shoplift_Analytics";priceSelectorsSessionKey="Shoplift_PriceSelectors_v2";shop;host;eventHost;disableReferrerOverride;legacySessionKey;cssHideClass;testConfigs;inactiveTestConfigs;hiddenSubscriptionPlans;testsFilteredByAudience;sendPageView;shopliftDebug;gaConfig;telemetryEnabled;getCountryTimeout;geoViaShopify;resolvedRegion=null;state;subscriptionPreviewWarningCleanup=null;shopifyAnalyticsId;cookie=document.cookie;isSyncing=!1;isSyncingGA=!1;fetch;localStorageSet;localStorageGet;sessionStorageSet=window.sessionStorage.setItem.bind(window.sessionStorage);sessionStorageGet=window.sessionStorage.getItem.bind(window.sessionStorage);
8urlParams=new URLSearchParams(window.location.search);device;logHistory;activeViewportObservers=new Map;clientIdRetryCount=0;constructor(e,t,i,s,r,o,n,l,c,d,u,h,p,b=!1){this.shop=e,this.host=t,this.eventHost=i,this.disableReferrerOverride=l,this.logHistory=[],this.legacySessionKey=`SHOPLIFT_SESSION_${this.shop}`,this.cssHideClass=s?"shoplift-hide":"",this.testConfigs=u.map(S=>({...S,startAt:new Date(S.startAt),statusHistory:S.statusHistory.map(C=>({...C,createdAt:new Date(C.createdAt)}))})),this.inactiveTestConfigs=h,this.hiddenSubscriptionPlans=p,this.sendPageView=!!r,this.shopliftDebug=o===!0,this.telemetryEnabled=c===!0,this.geoViaShopify=b===!0,this.gaConfig=n!=={"sendEvents":false,"mode":"gtag"}?n:{sendEvents:!1},this.fetch=window.fetch.bind(window),this.localStorageSet=window.localStorage.setItem.bind(window.localStorage),this.localStorageGet=window.localStorage.getItem.bind(window.localStorage);const E=this.getDeviceType();this.device=E!=="tablet"?E:"mobile",this.state=this.loadState(),this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.testsFilteredByAudience=u.filter(S=>
8S.status=="active"),this.getCountryTimeout=d===1000?1e3:d,window.__slReadCookie=S=>{const C=this.getCookie(S);if(C===null)return null;try{return decodeURIComponent(C)}catch{return C}},this.log("State Loaded",JSON.stringify(this.state))}deriveCategoryFromExistingTests(){if(!this.state.temporary.testCategory&&this.state.essential.visitorTests.length>0){const e=this.state.essential.visitorTests.some(t=>{if(!t.hypothesisId)return!1;const i=this.getHypothesis(t.hypothesisId);return i&&["theme","basicScript","price"].includes(i.type)});this.state.temporary.testCategory=e?"global":"conditional",this.persistTemporaryState(),this.log("Derived test category from existing visitorTests: %s",this.state.temporary.testCategory)}}async init(){try{if(this.log("Shoplift script initializing"),window.Shopify&&window.Shopify.designMode){this.log("Skipping script for design mode");return}if(window.location.href.includes("slScreenshot=true")){this.log("Skipping script for screenshot");return}if(window.location.hostname.endsWith(".edgemesh.com")){this.log("Skipping script for preview");return}if(window.location.href.includes("isShopliftMerchant")){const o=this.urlParams.get("isShopliftMerchant")==="true";this.log("Setting merchant session to %s",o),this.state.temporary.isMerchant=o,this.persistTemporaryState()}if(this.state.temporary.isMerchant){this.log("Setting up preview for merchant"),typeof window.shoplift!="object"&&this.setShopliftStub(),this.state.temporary.previewConfig||this.hidePage(),await this.initPreview(),document.querySelector("#sl-preview-bar-hide")?.remove();return}if(this.state.temporary.previewConfig=void 0,we(navigator.userAgent))return;const e=Date.now(),t=!this.state.temporary.lastSeen||e-this.state.temporary.lastSeen>1800*1e3;(!this.state.temporary.entryPage||t)&&(this.state.temporary.entryPage=K(window.location.href)),this.state.temporary.lastSeen=e,this.persistTemporaryState(),window.__slEntryPage=this.state.temporary.entryPage??"";const i=this.state.essential.visitorTests.filter(o=>o.hypothesisId&&+o.createdAt>Date.now()-6e4);if(i.length===0)this.sendDiagnosticTelemetry("page-landed",null);else for(const o of i)this.sendDiagnosticTelemetry("page-landed",o.testId,{hypothesisId:o.hypothesisId,isControl:o.assignedTo==="control",testType:o.testType??"unknown"});if(navigator.userAgent.includes("Chrome/118")){this.log("Random: %o",[Math.random(),Math.random(),Math.random()]);const o=await this.makeRequest({url:`${this.eventHost}/api/v0/events/ip`,method:"get"}).then(n=>n?.json());this.log(`IP: ${o}`),this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify(this.debugState(),ee)}).catch()}if(this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.monitorConsentChange(),this.checkForThemePreview())return;if(!this.disableReferrerOverride&&this.state.temporary.originalReferrer!=null){this.log(`Overriding referrer from '${document.referrer}' to '${this.state.temporary.originalReferrer}'`);const o=this.state.temporary.originalReferrer;delete this.state.temporary.originalReferrer,this.persistTemporaryState(),Object.defineProperty(document,"referrer",{get:()=>o,enumerable:!0,configurable:!0})}if(await this.refreshVisitor(this.shopifyAnalyticsId),await this.handleVisitorTest()){this.log("Redirecting for visitor test");return}this.setShoplift(),this.showPage(),this.ensureCartAttributesForExistingPriceTests(!1);const r=this.state.essential.visitorTests.some(o=>(o.hypothesisId?this.getHypothesis(o.hypothesisId):void 0)?.subscriptionData!=null)||Object.values(this.state.temporary.testReservations??{}).some(o=>this.getHypothesis(o.hypothesisId)?.subscriptionData!=null);this.hiddenSubscriptionPlans&&!r&&(this.log(`[SUB-GLOBAL] Visitor not in subscription test â hiding ${this.hiddenSubscriptionPlans.planIds.length} B-side plans`),je(this.hiddenSubscriptionPlans,o=>this.log(o))),await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange(),await this.finalize(),console.log("SHOPLIFT SCRIPT INITIALIZED!")}catch(e){if(e instanceof ie)return;throw e}finally{typeof window.shoplift!="object"&&this.setShopliftStub()}}getVariantColor(e){switch(e){case"a":return{text:"#141414",bg:"#E2E2E2"};case"b":return{text:"rgba(255, 255, 255, 1)",bg:"rgba(37, 99, 235, 1)"}}}getDefaultVariantTitle(e){return e.title?e.title:e.type==="price"?e.isControl?"Original prices":"Variant prices":e.isControl?"Original":"Untitled variant "+e.label.toUpperCase()}
8async initPreview(){const e=this.urlParams.get("previewConfig");if(e){this.state.temporary.previewConfig=void 0,this.log("Setting up the preview"),this.log("Found preview config, writing to temporary state");const t=await Oe(e);if(this.state.temporary.previewConfig=t,this.state.temporary.previewConfig.testTypeCategory===M.Price){this.hidePage(!0);const s=this.state.temporary.previewConfig;let r=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/${s.isDraft||!1}`;s.shopifyProductId&&(r+=`?productId=${s.shopifyProductId}`);const o=await this.makeJsonRequest({method:"get",url:r}).catch(n=>(this.log("Error getting domSelectors",n),null));if(s.variants.forEach(n=>n.domSelectors=o[n.id]?.domSelectors),s.isDraft){const n=`${this.host}/api/dom-selectors/${s.storeId}/${s.testId}/subscription-preview`,l=await this.makeJsonRequest({method:"get",url:n}).catch(c=>(this.log("No subscription preview data for draft (test may not have a subscription widget)",c),null));l?.subscriptionData&&s.variants.forEach(c=>{c.subscriptionData=l.subscriptionData,c.priceData=l.priceData})}}this.persistTemporaryState();const i=new URL(window.location.toString());i.searchParams.delete("previewConfig"),this.queueRedirect(i)}else if(this.state.temporary.previewConfig){this.showPage();const t=this.state.temporary.previewConfig;if(t.testTypeCategory===M.Template&&this.handleTemplatePreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.UrlRedirect&&this.handleUrlPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Script&&this.handleScriptPreview(t)&&this.initPreviewControls(t),t.testTypeCategory===M.Price){const i=await this.handlePricePreview(t);t.isDraft?await this.handleSubscriptionPricePreview(t):await this.handleSubscriptionLivePreview(t),i&&this.initPreviewControls(t)}}}initPreviewControls(e){document.addEventListener("DOMContentLoaded",()=>{const t=e.variants.find(b=>b.id===e.currentVariant),i=t?.label||"a",s=e.variants,r=document.createElement("div");r.id="shoplift-preview-control";const o=document.createElement("div"),n=document.createElement("img");n.src=Ve,n.height=24,n.width=14,o.style.padding="0 16px",o.style.lineHeight="100%",o.appendChild(n),r.appendChild(o);const l=document.createElement("div");l.id="shoplift-preview-variant-selector";const c=document.createElement("button");c.id="shoplift-preview-variant-menu-trigger";const d=document.createElement("div");d.className="menu-variant-label",d.style.backgroundColor=this.getVariantColor(i).bg,d.style.color=this.getVariantColor(i).text,d.innerText=i.toUpperCase(),c.appendChild(d);const u=document.createElement("span");if(u.id="shoplift-preview-variant-title",u.innerText=t?this.getDefaultVariantTitle(t):"Untitled variant "+i.toUpperCase(),c.appendChild(u),s.length>1){const b=document.createElement("img");b.src=De,b.width=12,b.height=12,b.style.height="12px",b.style.width="12px",c.appendChild(b);const E=document.createElement("div");E.className="preview-variant-menu";for(const S of e.variants.filter(C=>C.id!==e.currentVariant)){const C=document.createElement("div");C.className="preview-variant-menu--item";const _=document.createElement("div");_.className="menu-variant-label",_.style.backgroundColor=this.getVariantColor(S.label).bg,_.style.color=this.getVariantColor(S.label).text,_.style.flexShrink="0",_.innerText=S.label.toUpperCase(),C.appendChild(_);const T=document.createElement("span");T.innerText=this.getDefaultVariantTitle(S),C.appendChild(T),C.addEventListener("click",()=>{this.pickVariant(S.id)}),E.appendChild(C)}l.appendChild(E),c.addEventListener("click",()=>{E.className!=="preview-variant-menu preview-variant-menu__visible"?E.classList.add("preview-variant-menu__visible"):E.classList.remove("preview-variant-menu__visible")}),document.addEventListener("click",S=>{S.target instanceof Element&&!c.contains(S.target)&&E.className==="preview-variant-menu preview-variant-menu__visible"&&E.classList.remove("preview-variant-menu__visible")})}else c.style.pointerEvents="none",d.style.margin="0";if(l.appendChild(c),r.appendChild(l),e.hasSubscription){this.subscriptionPreviewWarningCleanup?.();const b=Ye();r.appendChild(b.root),this.subscriptionPreviewWarningCleanup=b.cleanup}const h=document.createElement("div"),p=document.createElement("button");p.id="shoplift-exit-preview-button",p.innerText="Exit",h.appendChild(p),p.addEventListener("click",()=>{this.exitPreview()}),r.appendChild(h),document.body.appendChild(r),requestAnimationFrame(()=>{r.classList.add("visible")})}),this.ensureCartAttributesForExistingPriceTests(!0)}pickVariant(e){if(this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig,i=new URL(window.location.toString());if(t.testTypeCategory===M.UrlRedirect){const s=t.variants.find(r=>r.id===t.currentVariant)?.redirectUrl;if(i.pathname===s){const r=t.variants.find(o=>o.id===e)?.redirectUrl;r&&(i.pathname=r)}}if(t.testTypeCategory===M.Template){const s=t.variants.find(r=>r.id===t.currentVariant)?.pathName;if(s&&i.pathname===s){const r=t.variants.find(o=>o.id===e)?.pathName;r&&r!==s&&(i.pathname=r)}}t.currentVariant=e,this.persistTemporaryState(),this.queueRedirect(i)}}exitPreview(){const e=new URL(window.location.toString());if(this.state.temporary.previewConfig?.testTypeCategory===M.Template&&e.searchParams.delete("view"),this.state.temporary.previewConfig?.testTypeCategory===M.Script&&e.searchParams.delete("slVariant"),this.state.temporary.previewConfig?.testTypeCategory===M.UrlRedirect){const i=this.state.temporary.previewConfig.variants.filter(r=>!r.isControl&&r.redirectUrl!==null).map(r=>r.redirectUrl),s=this.state.temporary.previewConfig.variants.find(r=>r.label==="a")?.redirectUrl;i.includes(e.pathname)&&s&&(e.pathname=s)}this.state.temporary.isMerchant=!1,e.searchParams.delete("isShopliftMerchant"),this.state.temporary.previewConfig=void 0,this.persistTemporaryState(),this.subscriptionPreviewWarningCleanup?.(),this.subscriptionPreviewWarningCleanup=null,this.hidePage(),this.queueRedirect(e)}handleTemplatePreview(e){const t=e.currentVariant,i=e.variants.find(l=>l.id===t);if(!i)return!1;const s=e.variants.find(l=>l.isControl);if(!s)return!1;this.log("Setting up template preview for type",s.type);
8const r=new URL(window.location.toString()),o=r.searchParams.get("view"),n=i.type===s.type;return!n&&!i.isControl&&template.suffix===s.affix&&this.typeFromTemplate()===s.type&&i.pathName!==null?(this.log("Hit control template type, redirecting to the variant url"),this.hidePage(),r.pathname=i.pathName,this.queueRedirect(r),!0):(!i.isControl&&this.typeFromTemplate()==i.type&&template.suffix===s.affix&&n&&o!==(i.affix||"__DEFAULT__")&&(this.log("Template type and affix match control, updating the view param"),r.searchParams.delete("view"),this.log("Setting the new viewParam to",i.affix||"__DEFAULT__"),this.hidePage(),r.searchParams.set("view",i.affix||"__DEFAULT__"),this.queueRedirect(r)),o!==null&&o!==(i.affix||"__DEFAULT__")&&(r.searchParams.delete("view"),this.hidePage(),this.queueRedirect(r)),!0)}handleUrlPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t),s=e.variants.find(o=>o.isControl)?.redirectUrl;if(!i)return!1;this.log("Setting up URL redirect preview");const r=new URL(window.location.toString());return r.pathname===s&&!i.isControl&&i.redirectUrl!==null&&(this.log("Url matches control, redirecting"),this.hidePage(),r.pathname=i.redirectUrl,this.queueRedirect(r)),!0}handleScriptPreview(e){const t=e.currentVariant,i=e.variants.find(o=>o.id===t);if(!i)return!1;this.log("Setting up script preview");const s=new URL(window.location.toString());return s.searchParams.get("slVariant")!==i.id&&(this.log("current id doesn't match the variant, redirecting"),s.searchParams.delete("slVariant"),this.log("Setting the new slVariantParam"),this.hidePage(),s.searchParams.set("slVariant",i.id),this.queueRedirect(s)),!0}async handlePricePreview(e){const t=e.currentVariant,i=e.variants.find(s=>s.id===t);return i?(this.log("Setting up price preview"),i.domSelectors&&i.domSelectors.length>0&&(U(document,{testId:e.testId,hypothesisId:i.id,selectors:i.domSelectors}),this.ensureCartAttributesForExistingPriceTests(!0)),!0):!1}async handleSubscriptionPricePreview(e){const t=e.variants.find(i=>i.id===e.currentVariant);t?.subscriptionData&&(this.log("Setting up subscription price preview"),await Ge({id:t.id,isControl:t.isControl,subscriptionData:t.subscriptionData,priceData:t.priceData},(i,...s)=>this.log(i,...s)))}async handleSubscriptionLivePreview(e){this.testConfigs.find(s=>s.id===e.testId)?.hypotheses.find(s=>s.id===e.currentVariant)?.subscriptionData&&(this.log("Setting up subscription live preview"),this.subscriptionSwapDone=!1,this.subscriptionOneTimeDone=!1,this.subscriptionPriceDone=!1,await this.subscriptionSwap(),await this.subscriptionOneTimePrice(),await this.subscriptionPriceChange())}async finalize(){const e=await this.getCartState();e!==null&&this.queueCartUpdate(e),this.pruneStateAndSave(),await this.syncAllEvents()}setShoplift(){this.log("Setting up public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:async s=>{if(this.log("Script checking variant for hypothesis '%s'",s),t)return this.log("Forcing variant for hypothesis '%s'",s),!0;if(i!==null)return this.log("Forcing hypothesis '%s'",i),s===i;const r=this.testConfigs.find(n=>n.hypotheses.some(l=>l.id===s));if(!r)return this.log("No test found for hypothesis '%s'",s),!1;const o=this.state.essential.visitorTests.find(n=>n.testId===r.id);return o?(this.log("Active visitor test found",s),o.hypothesisId===s):(await this.manuallySplitVisitor(r),this.testConfigs.some(n=>n.hypotheses.some(l=>l.id===s&&this.state.essential.visitorTests.some(c=>c.hypothesisId===l.id))))},setAnalyticsConsent:async s=>{await this.onConsentChange(s,!0)},getVisitorData:()=>({visitor:this.state.analytics.visitor,visitorTests:this.state.essential.visitorTests.filter(s=>!s.isInvalid).map(s=>{const{shouldSendToGa:r,savedAt:o,...n}=s;return n})})}}setShopliftStub(){this.log("Setting up stubbed public API");const t=this.urlParams.get("slVariant")==="true",i=t?null:this.urlParams.get("slVariant");window.shoplift={isHypothesisActive:s=>Promise.resolve(t||s===i),setAnalyticsConsent:()=>Promise.resolve(),getVisitorData:()=>({visitor:null,visitorTests:[]})}}async manuallySplitVisitor(e){this.log("Starting manual split for test '%s'",e.id),await this.handleVisitorTest([e]);const t=this.getReservationForTest(e.id);t&&!t.isRealized&&t.entryCriteriaKey&&(this.log("Realizing manual API reservation for test '%s'",e.id),this.realizeReservationForCriteria(t.entryCriteriaKey)),this.saveState(),this.syncAllEvents()}async handleVisitorTest(e){await this.filterTestsByAudience(this.testConfigs,this.state.analytics.visitor??this.buildBaseVisitor(),this.state.essential.visitorTests),this.pruneStaleVisitorTests(),this.deriveC
8ategoryFromExistingTests(),this.clearStaleReservations();let t=e?e.filter(i=>this.testsFilteredByAudience.some(s=>s.id===i.id)):[...this.testsForUrl(this.testsFilteredByAudience),...this.domTestsForUrl(this.testsFilteredByAudience)];try{if(t.length===0)return this.log("No tests found"),!1;this.log("Checking for existing visitor test on page");const i=this.getCurrentVisitorHypothesis(t);if(i){this.log("Found current visitor test");const l=this.considerRedirect(i);return l&&(this.log("Redirecting for current visitor test"),this.redirect(i)),l}const s=this.getReservationForCurrentPage();if(s){this.log("Found matching reservation for current page: %s",s.testId);const l=this.getHypothesis(s.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(s.entryCriteriaKey);const c=this.considerRedirect(l);return c&&this.redirect(l),c}}this.log("No active test relation for test page");const r=this.testsForUrl(this.inactiveTestConfigs.filter(l=>this.testIsPaused(l)&&l.hypotheses.some(c=>this.state.essential.visitorTests.some(d=>d.hypothesisId===c.id)))).map(l=>l.id);if(r.length>0)return this.log("Visitor has paused tests for test page, skipping test assignment: %o",r),!1;if(!this.state.temporary.testCategory){const l=this.testsFilteredByAudience.filter(d=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d))),c=this.testsFilteredByAudience.filter(d=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(d)));if(this.log("Category dice roll - global tests: %o, conditional tests: %o",l.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)})),c.map(d=>({id:d.id,title:d.title,criteria:this.getEntryCriteriaKey(d)}))),l.length>0&&c.length>0){const d=l.length,u=c.length,h=d+u,p=Math.random()*h;this.state.temporary.testCategory=p<d?"global":"conditional",this.log("Category dice roll: rolled %.2f of %d (global weight: %d, conditional weight: %d), selected '%s'",p,h,d,u,this.state.temporary.testCategory)}else l.length>0?(this.state.temporary.testCategory="global",this.log("Only global tests available, setting category to global")):(this.state.temporary.testCategory="conditional",this.log("Only conditional tests available, setting category to conditional"));this.persistTemporaryState()}const o=this.state.temporary.testCategory;if(this.log("Visitor test category: %s",o),o==="global"){const l=this.testsFilteredByAudience.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:global");t=t.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}else{const l=this.testsFilteredByAudience.filter(c=>this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)));for(const c of l)this.markTestAsBlocked(c,"category:conditional");t=t.filter(c=>!this.isGlobalEntryCriteria(this.getEntryCriteriaKey(c)))}if(t.length===0)return this.log("No tests remaining after category filter"),!1;this.createReservations(t);const n=this.getReservationForCurrentPage();if(n&&!n.isRealized){const l=this.getHypothesis(n.hypothesisId);if(l){l.type!=="price"&&this.realizeReservationForCriteria(n.entryCriteriaKey);const c=this.considerRedirect(l);return c&&(this.log("Redirecting for new test"),this.redirect(l)),c}}return!1}finally{this.includeInDomTests(),this.saveState()}}includeInDomTests(){this.applyControlForAudienceFilteredPriceTests();const e=this.getDomTestsForCurrentUrl(),t=this.getVisitorDomHypothesis(e);for(const i of e){this.log("Evaluating dom test '%s'",i.id);const s=i.hypotheses.some(p=>p.type==="price");if(this.state.essential.visitorTests.find(p=>p.testId===i.id&&p.isInvalid&&!p.hypothesisId)){if(this.log("Visitor is blocked from test '%s', applying control prices if price test",i.id),s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for blocked visitor, no metrics tracked")}),this.updatePriceTestHiddenInputs(i.id,"control",!1))}continue}const o=this.getReservationForTest(i.id);let n=null,l=!1;const c=t.find(p=>i.hypotheses.some(b=>p.id===b.id));if(o)n=this.getHypothesis(o.hypothesisId)??null,this.log("Using reserved hypothesis '%s' for test '%s'",o.hypothesisId,i.id);else if(c)n=c,this.log("Using existing hypothesis assignment for test '%s'",i.id);else if(s){const p=this.visitorActiveTestTypeWithReservations();p?(l=!0,this.log("Visitor already in test type '%s', treating as non-test for price test '%s'",p,i.id)):n=this.pickHypothesis(i)}else n=this.pickHypothesis(i);if(l&&s){const p=i.hypotheses.find(b=>b.isControl);p?.priceData&&(this.log("Applying control prices for non-test visitor on price test '%s' (Map-based)",i.id),this.applyPriceTestWithMapLookup(i.id,p,[p],()=>{this.log("Control prices applied for non-test visitor, no metrics tracked")}
8),this.updatePriceTestHiddenInputs(i.id,"control",!1));continue}if(!n){this.log("Failed to pick hypothesis for test");continue}this.sendDiagnosticTelemetry("assignment",i.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const d=i.bayesianRevision??4,u=n.type==="price",h=d>=5;if(u&&h){if(this.log(`Price test with Map-based lookup (v${d}): ${i.id}`),!n.priceData){this.log("No price data for hypothesis '%s', skipping",n.id);continue}const p=n.isControl?"control":"variant";this.log(`Setting up Map-based price test for ${p} (test: ${i.id})`),this.applyPriceTestWithMapLookup(i.id,n,i.hypotheses,b=>{const E=this.getReservationForTest(b);E&&!E.isRealized&&E.entryCriteriaKey?this.realizeReservationForCriteria(E.entryCriteriaKey):this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(u&&!h){this.log(`Price test without viewport tracking (v${d}): ${i.id}`);const p=this.getDomSelectorsForHypothesis(n);if(p.length===0)continue;U(document,{testId:i.id,hypothesisId:n.id,selectors:p},b=>{this.queueAddVisitorToTest(b,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()});continue}if(!n.domSelectors||n.domSelectors.length===0){this.log("No selectors found, skipping hypothesis");continue}U(document,{testId:i.id,hypothesisId:n.id,selectors:n.domSelectors},p=>{this.queueAddVisitorToTest(p,n),this.saveState(),this.queuePageView(window.location.pathname),this.syncAllEvents()})}}considerRedirect(e){if(this.log("Considering redirect for hypothesis '%s'",e.id),e.isControl)return this.log("Skipping redirect for control"),!1;if(e.type==="basicScript"||e.type==="manualScript")return this.log("Skipping redirect for script test"),!1;const t=this.state.essential.visitorTests.find(o=>o.hypothesisId===e.id),i=new URL(window.location.toString()),r=new URLSearchParams(window.location.search).get("view");if(e.type==="theme"){if(!(e.themeId===themeId)){if(this.log("Theme id '%s' is not hypothesis theme ID '%s'",e.themeId,themeId),this.isAppProxyPath())return this.log("On App Proxy path, skipping theme redirect to avoid infinite loop"),!1;if(t&&t.themeId!==e.themeId&&(t.themeId===themeId||!this.isThemePreview()))this.log("On old theme, redirecting and updating local visitor"),t.themeId=e.themeId;else if(this.isThemePreview())return this.log("On non-test theme, skipping redirect"),!1;return this.log("Hiding page to redirect for theme test"),this.hidePage(),!0}return!1}else if(e.type!=="dom"&&e.type!=="price"&&e.affix!==template.suffix&&e.affix!==r||e.redirectPath&&!i.pathname.endsWith(e.redirectPath))return this.log("Hiding page to redirect for template test"),this.hidePage(),!0;return this.log("Not redirecting"),!1}redirect(e){if(this.log("Redirecting to hypothesis '%s'",e.id),e.isControl)return;const t=new URL(window.location.toString());if(t.searchParams.delete("view"),e.redirectPath){const n=RegExp("^(/w{2}-w{2})/").exec(t.pathname);if(n&&n.length>1){const l=n[1];t.pathname=`${l}${e.redirectPath}`}else t.pathname=e.redirectPath}else e.type==="theme"?(t.searchParams.set("_ab","0"),t.searchParams.set("_fd","0"),t.searchParams.set("_sc","1"),t.searchParams.set("preview_theme_id",e.themeId.toString())):e.type!=="urlRedirect"&&t.searchParams.set("view",e.affix);const i=this.state.essential.visitorTests.find(n=>n.hypothesisId===e.id)?.testId,s=t.pathname+t.search,r=window.location.pathname+window.location.search,o=K(t.hash);if(i&&s!==r&&!o){const n=qe(),l=He({v:2,t:i,n,fh:Me(window.location.pathname+window.location.search)});t.hash=`slr-${n}`;const c=new Date(Date.now()+3e4).toUTCString();document.cookie=`shoplift_redirect=${l};domain=.${window.location.hostname};path=/;SameSite=Strict;expires=${c}`}s===r&&this.showPage(),this.queueRedirect(t)}async refreshVisitor(e){if(e===null||!this.state.essential.isFirstLoad||!this.testConfigs.some(i=>i.visitorOption!=="all"))return;this.log("Refreshing visitor"),this.hidePage();const t=await this.getVisitor(e);t&&t.id&&this.updateLocalVisitor(t)}buildBaseVisitor(){return{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.device,country:null,...this.state.essential.initialState}}getInitialState(){const e=this.getUTMValue("utm_source")??"",t=this.getUTMValue("utm_medium")??"",i=this.getUTMValue("utm_campaign")??"",s=this.getUTMValue("utm_content")??"",r=window.document.referrer,o=this.device;return{createdAt:new Date,utmSource:e,utmMedium:t,utmCampaign:i,utmContent:s,referrer:r,device:o}}checkForThemePreview(){return this.log("Checking for theme preview"),window.location.hostname.endsWith(".shopifypreview.com")?(this.log("on shopify preview domain"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!1):this.isThemePreview()?this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("On active theme test, remov
8ing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):this.state.essential.visitorTests.some(e=>e.isThemeTest&&e.hypothesisId!=null&&!this.getHypothesis(e.hypothesisId)&&e.themeId===themeId)?(this.log("Visitor is on an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.state.essential.isFirstLoad?(this.log("No visitor found on theme preview, redirecting to main theme"),this.redirectToMainTheme(),!0):this.inactiveTestConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Current theme is an inactive theme test, redirecting to main theme"),this.redirectToMainTheme(),!0):this.testConfigs.some(e=>e.hypotheses.some(t=>t.themeId===themeId))?(this.log("Falling back to clearing theme bar"),this.clearThemeBar(!1,!0,this.state),!1):(this.log("No tests on current theme, skipping script"),this.clearThemeBar(!0,!1,this.state),document.querySelector("#sl-preview-bar-hide")?.remove(),!0):(this.log("Not on theme preview"),this.clearThemeBar(!0,!1,this.state),!1)}redirectToMainTheme(){this.hidePage();const e=new URL(window.location.toString());e.searchParams.set("preview_theme_id",""),this.queueRedirect(e)}testsForUrl(e){const t=new URL(window.location.href),i=this.typeFromTemplate();return e.filter(s=>s.hypotheses.some(r=>r.type!=="dom"&&r.type!=="price"&&(r.isControl&&r.type===i&&r.affix===template.suffix||r.type==="theme"||r.isControl&&r.type==="urlRedirect"&&r.redirectPath&&t.pathname.endsWith(r.redirectPath)||r.type==="basicScript"))&&(s.ignoreTestViewParameterEnforcement||!t.searchParams.has("view")||s.hypotheses.map(r=>r.affix).includes(t.searchParams.get("view")??"")))}domTestsForUrl(e){const t=new URL(window.location.href);return e.filter(i=>i.hypotheses.some(s=>s.type!=="dom"&&s.type!=="price"?!1:s.type==="price"&&s.priceData&&s.priceData.variants.length>0?!0:s.domSelectors&&s.domSelectors.some(r=>new RegExp(se(r)).test(K(t.toString())))))}async filterTestsByAudience(e,t,i){const s=[],r=e.some(n=>(n.requiresRegion||this.geoViaShopify&&n.requiresCountry)&&!i.some(l=>l.testId===n.id));this.resolvedRegion===null&&r&&(this.log("Hiding page to wait for Shopify region resolution"),this.hidePage(),await this.waitForResolvedRegion()),window.__slRegion=this.resolvedRegion??"";let o=t.country;this.geoViaShopify?o=this.resolvedRegion?this.resolvedRegion.slice(0,2):o:!o&&e.some(n=>n.requiresCountry&&!i.some(l=>l.testId===n.id))&&(this.log("Hiding page to check geoip"),this.hidePage(),o=await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/get-country`,signal:AbortSignal.timeout(this.getCountryTimeout)}).catch(n=>(this.log("Error getting country",n),null)));for(const n of e){if(this.log("Checking audience for test '%s'",n.id),this.state.essential.visitorTests.some(d=>d.testId===n.id&&d.hypothesisId==null)){console.log(`Skipping blocked test '${n.id}'`);continue}const l=this.visitorCreatedDuringTestActive(n.statusHistory);(i.some(d=>d.testId===n.id&&(n.device==="all"||n.device===t.device&&n.device===this.device))||this.isTargetAudience(n,t,l,o))&&(this.log("Visitor is in audience for test '%s'",n.id),s.push(n))}this.testsFilteredByAudience=s}async waitForResolvedRegion(e=1500,t=50){const i=Date.now();for(;this.resolvedRegion===null&&Date.now()-i<e;)await new Promise(s=>window.setTimeout(s,t))}isTargetAudience(e,t,i,s){const r=this.getChannel(t);return(e.device==="all"||e.device===t.device&&e.device===this.device)&&(e.visitorOption==="all"||e.visitorOption==="new"&&i||e.visitorOption==="returning"&&!i)&&(e.targetAudiences.length===0||e.targetAudiences.reduce((o,n)=>o||n.reduce((l,c)=>l&&c(t,i,r,s),!0),!1))}visitorCreatedDuringTestActive(e){let t="";for(const i of e){if(this.state.analytics.visitor!==null&&this.state.analytics.visitor.createdAt<i.createdAt||this.state.essential.initialState.createdAt<i.createdAt)break;t=i.status}return t==="active"}getDomTestsForCurrentUrl(){return this.domTestsForUrl(this.testsFilteredByAudience)}getCurrentVisitorHypothesis(e){return e.flatMap(t=>t.hypotheses).find(t=>t.type!=="dom"&&t.type!=="price"&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getVisitorDomHypothesis(e){return e.flatMap(t=>t.hypotheses).filter(t=>(t.type==="dom"||t.type==="price")&&this.state.essential.visitorTests.some(i=>i.hypothesisId===t.id))}getHypothesis(e){return this.testConfigs.filter(t=>t.hypotheses.some(i=>i.id===e)).map(t=>t.hypotheses.find(i=>i.id===e))[0]}getActiveAssignment(){if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;return t.currentVariant&&t.testId?{testId:t.testId,hypothesisId:t.currentVariant}:null}const e=this.state.essential.visitorTests.find(t=>t.hypothesisId);return e?.hypothesisId?{testId:e.testId,hypothesisId:e.hypothesisId}:null}findActiveSubscriptionTestControl(){for(const e of this.testConfigs){const t=e.hypotheses.find(i=>i.isControl);if(t?.subscriptionData)return{testId:e.id,hypothesis:t}}return null}getDomSelectorsForHypothesis(e){if(!e)return[];if(e.domSelectors&&e.domSelectors.length>0)return e.domSelectors;if(e.priceData){const t=`${this.priceSelectorsSessionKey}_${e.id}`;try{const s=sessionStorage.getItem(t);if(s){const r=JSON.parse(s);return e.domSelectors=r,this.log("Loaded %d price selectors from cache for hypothesis '%s'",r.length,e.id),r}}catch{}const i=$e(e.priceData);e.domSelectors=i;try{sessionStorage.setItem(t,JSON.stringify(i)),this.log("Generated and cached %d price selectors for hypothesis '%s'",i.length,e.id)}catch{this.log("Generated %d price selectors for hypothesis '%s' (cache unavailable)",i.length,e.id)}return i}return[]}hasThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type==="theme"))}hasTestThatIsNotThemeTest(e){return e.some(t=>t.hypotheses.some(i=>i.type!=="theme"&&i.type!=="dom"&&i.type!=="price"))}hasThemeAndOtherTestTypes(e){return this.hasThemeTest(e)&&this.hasTestThatIsNotThemeTest(e)}testIsPaused(e){return e.status==="paused"||e.status==="incompatible"||e.status==="suspended"}visitorActiveTestType(){const e=this.state.essential.visitorTests.filter(t=>this.testConfigs.some(i=>i.hypotheses.some(s=>s.id==t.hypothesisId)));return e.length===0?null:e.some(t=>t.isThemeTest)?"theme":"templateOrUrlRedirect"}getReservationType(e){return e==="price"||this.isTemplateTestType(e)?"deferred":"immediate"}isTemplateTestType(e){return["product","collection","landing","index","cart","search","blog","article","collectionList"].includes(e)}getEntryCriteriaKey(e){const t=e.hypotheses.find(i=>i.isControl);if(!t)return`unknown:${e.id}`;switch(t.type){case"theme":return"global:theme";case"basicScript":return"global:autoApi";case"price":return"global:price";case"manualScript":return`conditional:manualApi:${e.id}`;case"urlRedirect":return`conditional:url:${t.redirectPath||"unknown"}`;default:return`conditional:template:${t.type}`}}isGlobalEntryCriteria(e){return e.startsWith("global:")}groupTestsByEntryCriteria(e){const t=new Map;for(const i of e){const s=this.getEntryCriteriaKey(i),r=t.get(s)||[];r.push(i),t.set(s,r)}return t}doesCurrentPageMatchEntryCriteria(e){if(this.isGlobalEntryCriteria(e))return!0;
8if(e==="conditional:manualApi")return!1;if(e.startsWith("conditional:url:")){const t=e.replace("conditional:url:","");return window.location.pathname.endsWith(t)}if(e.startsWith("conditional:template:")){const t=e.replace("conditional:template:","");return this.typeFromTemplate()===t}return!1}hasActiveReservation(){const e=this.getActiveReservations();return Object.values(e).some(t=>!t.isRealized)}getActiveReservation(){const e=this.getActiveReservations();return Object.values(e).find(t=>!t.isRealized)??null}clearStaleReservations(){const e=this.state.temporary.testReservations;if(!e)return;let t=!1;for(const[i,s]of Object.entries(e)){const r=this.testConfigs.find(n=>n.id===s.testId);if(!r){this.log("Test '%s' no longer in config, clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0;continue}if(r.status!=="active"){this.log("Test '%s' status is '%s', clearing reservation for criteria '%s'",s.testId,r.status,i),delete e[i],t=!0;continue}this.testsFilteredByAudience.some(n=>n.id===s.testId)||(this.log("Visitor no longer passes audience for test '%s', clearing reservation for criteria '%s'",s.testId,i),delete e[i],t=!0)}t&&this.persistTemporaryState()}createReservations(e){if(this.state.temporary.testReservations||(this.state.temporary.testReservations={}),this.state.temporary.rolledEntryCriteria||(this.state.temporary.rolledEntryCriteria=[]),this.state.temporary.testCategory==="global"){this.createSingleReservation(e,"global");return}const i=e.filter(n=>this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n))),s=e.filter(n=>!this.doesCurrentPageMatchEntryCriteria(this.getEntryCriteriaKey(n)));this.log("Conditional tests split - matching current page: %d, not matching: %d",i.length,s.length),i.length>0&&this.log("Tests matching current page (same pool): %o",i.map(n=>({id:n.id,title:n.title,criteria:this.getEntryCriteriaKey(n)})));const r=`conditional:current-page:${this.typeFromTemplate()}`;if(i.length>0&&!this.state.temporary.rolledEntryCriteria.includes(r)){this.createSingleReservation(i,r);for(const n of i){const l=this.getEntryCriteriaKey(n);this.state.temporary.rolledEntryCriteria.includes(l)||this.state.temporary.rolledEntryCriteria.push(l)}}const o=this.groupTestsByEntryCriteria(s);for(const[n,l]of o){if(this.state.temporary.rolledEntryCriteria.includes(n)){this.log("Already rolled for criteria '%s', skipping",n);continue}if(l.some(S=>this.state.essential.visitorTests.some(C=>C.testId===S.id))){this.log("Visitor already has VT for criteria '%s', skipping",n),this.state.temporary.rolledEntryCriteria.push(n);continue}const d=[...l].sort((S,C)=>S.id.localeCompare(C.id));this.log("Test dice roll for criteria '%s' - available tests: %o",n,d.map(S=>({id:S.id,title:S.title})));const u=Math.floor(Math.random()*d.length),h=d[u];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",u+1,l.length,h.id,h.title);const p=this.pickHypothesis(h);if(!p){this.log("No hypothesis picked for test '%s'",h.id);continue}this.sendDiagnosticTelemetry("assignment",h.id,{hypothesisId:p.id,isControl:p.isControl,testType:p.type});const b=this.getReservationType(p.type),E={testId:h.id,hypothesisId:p.id,testType:p.type,reservationType:b,isThemeTest:p.type==="theme",themeId:p.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:n};this.state.temporary.testReservations[n]=E,this.state.temporary.rolledEntryCriteria.push(n),this.log("Created %s reservation for test '%s' (criteria: %s)",b,h.id,n);for(const S of l)S.id!==h.id&&this.markTestAsBlocked(S,n)}this.persistTemporaryState()}createSingleReservation(e,t){if(this.state.temporary.rolledEntryCriteria.includes(t)){this.log("Already rolled for pool '%s', skipping",t);return}if(e.some(u=>this.state.essential.visitorTests.some(h=>h.testId===u.id&&!h.isInvalid))){this.log("Visitor already has VT for pool '%s', skipping",t),this.state.temporary.rolledEntryCriteria.push(t);return}if(e.length===0){this.log("No tests in pool '%s'",t);return}const s=[...e].sort((u,h)=>u.id.localeCompare(h.id));this.log("Test dice roll for pool '%s' - available tests: %o",t,s.map(u=>({id:u.id,title:u.title,criteria:this.getEntryCriteriaKey(u)})));const r=Math.floor(Math.random()*s.length),o=s[r];this.log("Test dice roll: picked index %d of %d, selected test '%s' (%s)",r,e.length,o.id,o.title);const n=this.pickHypothesis(o);if(!n){this.log("No hypothesis picked for test '%s'",o.id);return}this.sendDiagnosticTelemetry("assignment",o.id,{hypothesisId:n.id,isControl:n.isControl,testType:n.type});const l=this.getReservationType(n.type),c=this.getEntryCriteriaKey(o),d={testId:o.id,hypothesisId:n.id,testType:n.type,reservationType:l,isThemeTest:n.type==="theme",themeId:n.themeId,createdAt:new Date,isRealized:!1,entryCriteriaKey:c};this.state.temporary.testReservations[c]=d,this.state.temporary.rolledEntryCriteria.push(t),this.log("Created %s reservation for test '%s' from pool '%s' (criteria: %s)",l,o.id,t,c);for(const u of e)u.id!==o.id&&this.markTestAsBlocked(u,`pool:${t}`);this.persistTemporaryState()}markTestAsBlocked(e,t){this.state.essential.visitorTests.some(i=>i.testId===e.id)||(this.log("Blocking visitor from test '%s' (reason: %s)",e.id,t),this.state.essential.visitorTests.push({createdAt:new Date,testId:e.id,hypothesisId:null,isThemeTest:e.hypotheses.some(i=>
8i.type==="theme"),shouldSendToGa:!1,isSaved:!0,isInvalid:!0,themeId:void 0}))}realizeReservationForCriteria(e){const t=this.state.temporary.testReservations?.[e];if(!t)return this.log("No reservation found for criteria '%s'",e),!1;if(t.isRealized)return this.log("Reservation already realized for criteria '%s'",e),!1;if(this.state.essential.visitorTests.some(s=>s.testId===t.testId&&!s.isInvalid))return this.log("Visitor already assigned to test '%s'",t.testId),!1;const i=this.getHypothesis(t.hypothesisId);return i?(t.isRealized=!0,this.persistTemporaryState(),this.queueAddVisitorToTest(t.testId,i),this.saveState(),this.log("Realized reservation for test '%s' (criteria: %s)",t.testId,e),!0):(this.log("Hypothesis '%s' not found",t.hypothesisId),!1)}getActiveReservations(){return this.state.temporary.testReservations??{}}getReservationForCurrentPage(){const e=this.getActiveReservations();for(const[t,i]of Object.entries(e)){if(i.isRealized)continue;const s=this.testConfigs.find(r=>r.id===i.testId);if(!(!s||s.status!=="active")&&this.doesCurrentPageMatchEntryCriteria(t))return i}return null}getReservationForTest(e){const t=this.getActiveReservations();return Object.values(t).find(i=>i.testId===e)??null}getReservationTestType(){const e=this.getActiveReservations(),t=Object.values(e);if(t.length===0)return null;for(const i of t)if(i.isThemeTest)return"theme";for(const i of t)if(i.testType==="price")return"price";return t.some(i=>!i.isRealized)?"templateOrUrlRedirect":null}hasPriceTests(e){return e.some(t=>t.hypotheses.some(i=>i.type==="price"))}_priceTestProductIds=null;getPriceTestProductIds(){if(this._priceTestProductIds)return this._priceTestProductIds;const e=new Set;for(const t of this.testConfigs)for(const i of t.hypotheses)if(i.type==="price"){for(const s of i.domSelectors||[]){const r=s.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);r?.[1]&&e.add(r[1])}if(i.priceData?.variants)for(const[s]of i.priceData.variants)e.add(s)}return this._priceTestProductIds=e,this.log("Built price test product ID cache with %d products",e.size),e}isProductInAnyPriceTest(e){return this.getPriceTestProductIds().has(e)}visitorActiveTestTypeWithReservations(){const e=this.getActiveReservations();for(const r of Object.values(e)){if(r.isThemeTest)return"theme";if(r.testType==="price")return"price"}if(Object.values(e).some(r=>!r.isRealized)){if(this.state.temporary.testCategory==="global")for(const o of Object.values(e)){if(o.testType==="theme")return"theme";if(o.testType==="price")return"price";if(o.testType==="basicScript")return"theme"}return"templateOrUrlRedirect"}const i=this.state.essential.visitorTests.filter(r=>!r.isInvalid&&this.testConfigs.some(o=>o.hypotheses.some(n=>n.id===r.hypothesisId)));return i.length===0?null:i.some(r=>this.getHypothesis(r.hypothesisId)?.type==="price")?"price":i.some(r=>r.isThemeTest)?"theme":"templateOrUrlRedirect"}applyControlForAudienceFilteredPriceTests(){const e=this.testConfigs.filter(s=>s.status==="active"&&s.hypotheses.some(r=>r.type==="price"));if(e.length===0)return;const t=this.testsFilteredByAudience.filter(s=>s.hypotheses.some(r=>r.type==="price")),i=e.filter(s=>!t.some(r=>r.id===s.id));if(i.length!==0){this.log("Found %d price tests filtered by audience, applying control selectors",i.length);for(const s of i){const r=s.hypotheses.find(c=>c.isControl),o=this.getDomSelectorsForHypothesis(r);if(o.length===0){this.log("No control selectors for audience-filtered price test '%s'",s.id);continue}const n=new URL(window.location.href);o.some(c=>{try{return new RegExp(se(c)).test(K(n.toString()))}catch{return!1}})&&(this.log("Applying control selectors for audience-filtered price test '%s'",s.id),U(document,{testId:s.id,hypothesisId:r.id,selectors:o},()=>{}),this.updatePriceTestHiddenInputs(s.id,"control",!1))}}}pickHypothesis(e){let t=Math.random();const i=e.hypotheses.reduce((r,o)=>r+o.visitorCount,0);return e.hypotheses.sort((r,o)=>r.isControl?o.isControl?0:-1:o.isControl?1:0).reduce((r,o)=>{if(r!==null)return r;const l=e.hypotheses.reduce((c,d)=>c&&d.visitorCount>20,!0)?o.visitorCount/i-o.trafficPercentage:0;return t<=o.trafficPercentage-l?o:(t-=o.trafficPercentage-l,null)},null)}typeFromTemplate(){switch(template.type){case"list-collections":return"collectionList";case"page":return"landing";case"article":case"blog":case"cart":case"collection":case"index":case"product":case"search":return template.type;default:return null}}queueRedirect(e){this.saveState(),this.disableReferrerOverride||(this.log(`Saving temporary referrer override '${document.referrer}'`),this.state.temporary.originalReferrer=document.referrer,this.persistTemporaryState()),window.setTimeout(()=>window.location.assign(e),0),window.setTimeout(()=>{this.syncAllEvents()},2e3)}scheduleRetrySync(){this.clientIdRetryCount>=5||(this.clientIdRetryCount++,window.setTimeout(()=>{this.syncAllEvents()},500))}async syncAllEvents(){const e=async()=>
8{if(this.isSyncing){window.setTimeout(()=>{(async()=>await e())()},500);return}try{if(this.isSyncing=!0,this.syncGAEvents(),this.shopifyAnalyticsId||(this.shopifyAnalyticsId=this.getShopifyAnalyticsId()),!this.shopifyAnalyticsId){this.scheduleRetrySync();return}await this.syncEvents()}finally{this.isSyncing=!1}};await e()}async syncEvents(){if(!this.state.essential.consentApproved||!this.shopifyAnalyticsId||this.state.analytics.queue.length===0)return;const e=this.state.analytics.queue.length,t=this.state.analytics.queue.splice(0,e);this.log("Syncing %s events",e);try{const i={shop:this.shop,visitorDetails:{shopifyAnalyticsId:this.shopifyAnalyticsId,device:this.state.analytics.visitor?.device??this.device,country:this.state.analytics.visitor?.country??null,...this.state.essential.initialState},events:this.state.essential.visitorTests.filter(r=>!r.isInvalid&&!r.isSaved&&r.hypothesisId!=null).map(r=>new be(r.testId,r.hypothesisId,r.createdAt)).concat(t)};await this.sendEvents(i);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved&&o.hypothesisId!=null))this.sendDiagnosticTelemetry("event-delivered",r.testId,{hypothesisId:r.hypothesisId,isControl:r.assignedTo==="control",testType:r.testType??"unknown"});const s=await this.getVisitor(this.shopifyAnalyticsId);s!==null&&this.updateLocalVisitor(s);for(const r of this.state.essential.visitorTests.filter(o=>!o.isInvalid&&!o.isSaved))r.isSaved=!0,r.savedAt=Date.now()}catch{this.state.analytics.queue.splice(0,0,...t)}finally{this.saveState()}}syncGAEvents(){if(!this.gaConfig.sendEvents){if(he)return;he=!0,this.log("UseGtag is false â skipping GA Events");return}if(this.isSyncingGA){this.log("Already syncing GA - skipping GA events");return}const e=this.state.essential.visitorTests.filter(t=>t.shouldSendToGa);e.length!==0&&(this.isSyncingGA=!0,this.log("Syncing %s GA Events",e.length),Promise.allSettled(e.map(t=>this.sendGAEvent(t))).then(()=>this.log("All gtag events sent")).finally(()=>this.isSyncingGA=!1))}sendGAEvent(e){return new Promise(t=>{this.log("Sending GA Event for test %s, hypothesis %s",e.testId,e.hypothesisId);const i=()=>{this.log("GA acknowledged event for hypothesis %s",e.hypothesisId),e.shouldSendToGa=!1,this.persistEssentialState(),t()},s={exp_variant_string:`SL-${e.testId}-${e.hypothesisId}`};
8this.shopliftDebug&&Object.assign(s,{debug_mode:!0});function r(o,n,l){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}this.gaConfig.mode==="gtag"?r("event","experience_impression",{...s,event_callback:i}):(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"experience_impression",...s,eventCallback:i}))})}updateLocalVisitor(e){let t;({visitorTests:t,...this.state.analytics.visitor}=e),this.log("updateLocalVisitor - server returned %d tests: %o",t.length,t.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isInvalid:s.isInvalid}))),this.log("updateLocalVisitor - local has %d tests: %o",this.state.essential.visitorTests.length,this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid})));const i=300*1e3;for(const s of this.state.essential.visitorTests.filter(r=>r.isSaved&&(!r.savedAt||Date.now()-r.savedAt>i)&&!t.some(o=>o.testId===r.testId)))this.log("updateLocalVisitor - marking LOCAL test as INVALID (isSaved && not in server): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),s.isInvalid=!0;for(const s of t){const r=this.state.essential.visitorTests.findIndex(n=>n.testId===s.testId);if(!(r!==-1))this.log("updateLocalVisitor - ADDING server test (not found locally): testId=%s, hypothesisId=%s",s.testId,s.hypothesisId),this.state.essential.visitorTests.push(s);else{const n=this.state.essential.visitorTests.at(r);this.log("updateLocalVisitor - REPLACING local test with server test: testId=%s, local hypothesisId=%s -> server hypothesisId=%s, local isInvalid=%s -> false",s.testId,n?.hypothesisId,s.hypothesisId,n?.isInvalid),s.isInvalid=!1,s.shouldSendToGa=n?.shouldSe
8ndToGa??!1,s.testType=n?.testType,s.assignedTo=n?.assignedTo,s.testTitle=n?.testTitle,this.state.essential.visitorTests.splice(r,1,s)}}this.log("updateLocalVisitor - FINAL local tests: %o",this.state.essential.visitorTests.map(s=>({testId:s.testId,hypothesisId:s.hypothesisId,isSaved:s.isSaved,isInvalid:s.isInvalid}))),this.state.analytics.visitor.storedAt=new Date}async getVisitor(e){try{return await this.makeJsonRequest({method:"get",url:`${this.eventHost}/api/v0/visitors/by-key/${this.shop}/${e}`})}catch{return null}}async sendEvents(e){await this.makeRequest({method:"post",url:`${this.eventHost}/api/v0/events`,data:JSON.stringify(e)})}sendDiagnosticTelemetry(e,t,i){if(!this.telemetryEnabled||!navigator.sendBeacon)return;const s=this.state.essential.consentApproved,r=JSON.stringify({shop:this.shop,testId:t,checkpoint:e,device:this.device,...s?{visitorId:this.shopifyAnalyticsId??"unknown"}:{},clientTimestamp:Date.now(),consentApproved:s,hasConsentInteraction:this.state.essential.hasConsentInteraction,...i});navigator.sendBeacon(`${this.eventHost}/api/v0/telemetry`,new Blob([r],{type:"text/plain"}))}getUTMValue(e){const i=decodeURIComponent(window.location.search.substring(1)).split("&");for(let s=0;s<i.length;s++){const r=i[s].split("=");if(r[0]===e)return r[1]||null}return null}hidePage(e){this.log("Hiding page"),this.cssHideClass&&!window.document.documentElement.classList.contains(this.cssHideClass)&&(window.document.documentElement.classList.add(this.cssHideClass),e||setTimeout(this.removeAsyncHide(this.cssHideClass),2e3))}showPage(){this.cssHideClass&&this.removeAsyncHide(this.cssHideClass)()}getDeviceType(){function e(){let i=!1;return(function(s){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}function t(){let i=!1;return(function(s){(/android|ipad|playbook|silk/i.test(s)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
8sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(s.substr(0,4)))&&(i=!0)})(navigator.userAgent||navigator.vendor),i}return e()?"mobile":t()?"tablet":"desktop"}removeAsyncHide(e){return()=>{e&&window.document.documentElement.classList.remove(e)}}async getCartState(){try{let e=await this.makeJsonRequest({method:"get",url:`${window.location.origin}/cart.js`});return e===null||(e.note===null&&(e=await this.makeJsonRequest({method:"post",url:`${window.location.origin}/cart/update.js`,data:JSON.stringify({note:""})})),e==null)?null:{token:e.token,total_price:e.total_price,total_discount:e.total_discount,currency:e.currency,items_subtotal_price:e.items_subtotal_price,items:e.items.map(t=>({quantity:t.quantity,variant_id:t.variant_id,key:t.key,price:t.price,final_line_price:t.final_line_price,sku:t.sku,product_id:t.product_id}))}}catch(e){return this.log("Error sending cart info",e),null}}ensureCartAttributesForExistingPriceTests(e){try{if(this.log("Checking visitor assignments for active price tests"),e&&this.state.temporary.previewConfig){const t=this.state.temporary.previewConfig;this.log("Using preview config for merchant:",t.testId);let i="variant";if(t.variants&&t.variants.length>0){const s=t.variants.find(r=>r.id===t.currentVariant);s&&s.isControl&&(i="control")}this.log("Merchant preview - updating hidden inputs:",t.testId,i),this.updatePriceTestHiddenInputs(t.testId,i,!0);return}for(const t of this.state.essential.visitorTests){const i=this.testConfigs.find(o=>o.id===t.testId);if(!i){this.log("Test config not found:",t.testId);continue}const s=i.hypotheses.find(o=>o.id===t.hypothesisId);if(!s||s.type!=="price")continue;const r=s.isControl?"control":"variant";this.log("Updating hidden inputs for price test:",t.testId,r),this.updatePriceTestHiddenInputs(t.testId,r,e)}}catch(t){this.log("Error ensuring cart attributes for existing price tests:",t)}}subscriptionSwapDone=!1;subscriptionHideWrongPlans=null;subscriptionPriceDone=!1;subscriptionUpdateOneTime=null;subscriptionOneTimeDone=!1;swapMap=null;slptValue=null;async subscriptionSwap(){await Ue(this)}async subscriptionPriceChange(){await ze(this)}async subscriptionOneTimePrice(){await We(this)}updatePriceTestHiddenInputs(e,t,i){try{this.cleanupPriceTestObservers();const s=`${e}:${t}:${i?"t":"f"}`,r=T=>{const m=T.getAttribute("data-sl-pid");if(!m)return!0;if(i&&this.state.temporary.previewConfig){const w=this.state.temporary.previewConfig,I=t==="control"?"a":"b",f=w.variants.find(v=>v.label===I);if(!f)return!1;for(const v of f.domSelectors||[]){const g=v.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(g){const P=g[1];if(this.log(`Extracted ID from selector: ${P}, comparing to: ${m}`),P===m)return this.log("Product ID match found in preview config:",m,"variant:",f.label),!0}else this.log(`Could not extract ID from selector: ${v.cssSelector}`)}return this.log("No product ID match in preview config for:",m,"variant:",I),!1}const y=this.testConfigs.find(w=>w.id===e);if(!y)return this.log("Test config not found for testId:",e),!1;for(const w of y.hypotheses||[]){for(const I of w.domSelectors||[]){const f=I.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);if(f&&f[1]===m)return this.log("Product ID match found in domSelectors:",m,"for test:",e),!0}if(w.priceData?.variants){for(const I of w.priceData.variants)if(I[0]===m)return this.log("Product ID match found in priceData:",m,"for test:",e),!0}}return this.log("No product ID match for:",m,"in test:",e),!1},o=new Set;let n=!1,l=null;const c=(T,m)=>{if(document.querySelectorAll("[data-sl-attribute-p]").forEach(w=>{if(w instanceof Element&&w.nodeType===Node.ELEMENT_NODE&&w.isConnected&&document.contains(w))try{T.observe(w,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(I){this.log(`Failed to observe element (${m}):`,I)}}),document.body&&document.body.isConnected)try{T.observe(document.body,{childList:!0,subtree:!0,characterData:!0,characterDataOldValue:!0,attributes:!1})}catch(w){this.log(`Failed to observe document.body (${m}):`,w)}},d=(T,m,y,w)=>{const I=T.filter(f=>{const v=f.cssSelector.match(/data-sl-attribute-(?:p|cap)="(\d+)"/);return v&&v[1]===w});this.log(`Applying ${y} DOM selectors, total: ${T.length}, filtered: ${I.length}`),I.length>0&&U(document,{testId:e,hypothesisId:m,selectors:I})},u=(T,m)=>{this.log(`Applying DOM selector changes for product ID: ${T}`),m.disconnect(),n=!0;try{if(i&&this.state.temporary.previewConfig){const y=t==="control"?"a":"b",w=this.state.temporary.previewConfig.variants.find(I=>I.label===y);if(!w?.domSelectors){this.log(`No DOM selectors found for preview variant: ${y}`);return}d(w.domSelectors,w.id,"preview config",T)}else{const y=this.testConfigs.find(I=>I.id===e);if(!y){this.log(`No test config found for testId: ${e}`);return}const w=y.hypotheses.find(I=>t==="control"?I.isControl:!I.isControl);if(!w?.domSelectors){this.log(`No DOM selectors found for assignment: ${t}`);return}d(w.domSelectors,w.id,"live config",T)}}finally{l!==null&&clearTimeout(l),l=window.setTimeout(()=>{n=!1,l=null,c(m,"reconnection"),this.log("Re-established innerHTML observer after DOM changes")}
8,50)}},h=new MutationObserver(T=>{if(!n)for(const m of T){if(m.type!=="childList"&&m.type!=="characterData")continue;let y=m.target;m.type==="characterData"&&(y=m.target.parentElement||m.target.parentNode);let w=y,I=w.getAttribute("data-sl-attribute-p");for(;!I&&w.parentElement;)w=w.parentElement,I=w.getAttribute("data-sl-attribute-p");if(!I)continue;const f=w.innerHTML||w.textContent||"";let v="";m.type==="characterData"&&m.oldValue!==null&&(v=m.oldValue),this.log(`innerHTML changed on element with data-sl-attribute-p="${I}"`),v&&this.log(`Previous content: "${v}"`),this.log(`Current content: "${f}"`),u(I,h)}});c(h,"initial setup"),o.add(h);const p=new MutationObserver(T=>{T.forEach(m=>{m.addedNodes.forEach(y=>{if(y.nodeType===Node.ELEMENT_NODE){const w=y;E(w);const I=w.matches('input[name="properties[_slpt]"]')?[w]:w.querySelectorAll('input[name="properties[_slpt]"]');I.length>0&&this.log(`MutationObserver found ${I.length} new hidden input(s)`),I.forEach(f=>{const v=f.getAttribute("data-sl-pid");if(this.log(`MutationObserver checking new input with data-sl-pid="${v}"`),r(f))f.value!==s&&(f.value=s,this.log("Updated newly added hidden input:",s)),S(f);else{const g=f.getAttribute("data-sl-pid");g&&this.isProductInAnyPriceTest(g)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",g):(f.remove(),this.log("Removed newly added non-matching hidden input for product ID:",g))}})}})})});o.add(p);const b=new MutationObserver(T=>{T.forEach(m=>{if(m.type==="attributes"&&m.attributeName==="data-sl-pid"){const y=m.target;if(this.log("AttributeObserver detected data-sl-pid attribute change on:",y.tagName),y.matches('input[name="properties[_slpt]"]')){const w=y,I=m.oldValue,f=w.getAttribute("data-sl-pid");this.log(`data-sl-pid changed from "${I}" to "${f}" - triggering payment placement updates`),r(w)?(w.value!==s&&(w.value=s,this.log("Updated hidden input after data-sl-pid change:",s)),f&&u(f,h),this.log("Re-running payment placement updates after variant change"),E(document.body)):f&&this.isProductInAnyPriceTest(f)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",f):(w.remove(),this.log("Removed non-matching hidden input after data-sl-pid change:",f))}}})});o.add(b);const E=T=>{T.tagName==="SHOPIFY-PAYMENT-TERMS"&&(this.log("MutationObserver found new shopify-payment-terms element"),this.updateShopifyPaymentTerms(e,t));const m=T.querySelectorAll("shopify-payment-terms");m.length>0&&(this.log(`MutationObserver found ${m.length} shopify-payment-terms in added node`),this.updateShopifyPaymentTerms(e,t)),T.tagName==="AFTERPAY-PLACEMENT"&&(this.log("MutationObserver found new afterpay-placement element"),this.updateAfterpayPlacements(e,t,"afterpay"));const y=T.querySelectorAll("afterpay-placement");y.length>0&&(this.log(`MutationObserver found ${y.length} afterpay-placement in added node`),this.updateAfterpayPlacements(e,t,"afterpay")),T.tagName==="SQUARE-PLACEMENT"&&(this.log("MutationObserver found new square-placement element"),this.updateAfterpayPlacements(e,t,"square"));const w=T.querySelectorAll("square-placement");w.length>0&&(this.log(`MutationObserver found ${w.length} square-placement in added node`),this.updateAfterpayPlacements(e,t,"square")),T.tagName==="KLARNA-PLACEMENT"&&(this.log("MutationObserver found new klarna-placement element"),this.updateKlarnaPlacements(e,t));const I=T.querySelectorAll("klarna-placement");I.length>0&&(this.log(`MutationObserver found ${I.length} klarna-placement in added node`),this.updateKlarnaPlacements(e,t))},S=T=>{b.observe(T,{attributes:!0,attributeFilter:["data-sl-pid"],attributeOldValue:!0,subtree:!1});const m=T.getAttribute("data-sl-pid");this.log(`Started AttributeObserver on specific input with data-sl-pid="${m}"`)},C=()=>{const T=document.querySelectorAll('input[name="properties[_slpt]"]');this.log(`Found ${T.length} existing hidden inputs to check`),T.forEach(m=>{const y=m.getAttribute("data-sl-pid");this.log(`Checking existing input with data-sl-pid="${y}"`),r(m)?(m.value=s,this.log("Updated existing hidden input:",s),y&&(this.log("Applying initial DOM selector changes for existing product"),u(y,h)),S(m)):y&&this.isProductInAnyPriceTest(y)?this.log("Preserving hidden input for product ID '%s' - belongs to a different price test",
8y):(m.remove(),this.log("Removed non-matching hidden input for product ID:",y))})},_=()=>{document.body?(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver on document.body"),C(),E(document.body)):document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.body&&(p.observe(document.body,{childList:!0,subtree:!0}),this.log("Started MutationObserver after DOMContentLoaded"),C(),E(document.body))}):(this.log("Set timeout on observer"),setTimeout(_,10))};_(),window.__shopliftPriceTestObservers=o,window.__shopliftPriceTestValue=s,this.log("Set up DOM observer for price test hidden inputs")}catch(s){this.log("Error updating price test hidden inputs:",s)}}updateKlarnaPlacements(e,t){this.updatePlacementElements(e,t,"klarna-placement",(i,s)=>{i.setAttribute("data-purchase-amount",s.toString())})}cleanupPriceTestObservers(){const e=window.__shopliftPriceTestObservers;e&&(e.forEach(t=>{t.disconnect()}),e.clear(),this.log("Cleaned up existing price test observers")),delete window.__shopliftPriceTestObservers,delete window.__shopliftPriceTestValue}updateAfterpayPlacements(e,t,i="afterpay"){const s=i==="square"?"square-placement":"afterpay-placement";if(document.querySelectorAll(s).length===0){this.log(`No ${s} elements found on page - early return`);return}this.updatePlacementElements(e,t,s,(o,n)=>{if(i==="afterpay"){const l=(n/100).toFixed(2);o.setAttribute("data-amount",l)}else o.setAttribute("data-amount",n.toString())}),this.log("updateAfterpayPlacements completed")}updatePlacementElements(e,t,i,s){const r=document.querySelectorAll(i);if(r.length===0){this.log(`No ${i} elements found - early return`);return}let o;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const l=t==="control"?"a":"b",c=this.state.temporary.previewConfig.variants.find(d=>d.label===l);if(!c?.domSelectors){this.log(`No variant found for label ${l} in preview config for ${i}`);return}o=c.domSelectors,this.log(`Using preview config for ${i} in merchant mode, variant: ${l}`)}else{const l=this.testConfigs.find(d=>d.id===e);if(!l){this.log(`No testConfig found for id: ${e} - early return`);return}
8const c=l.hypotheses.find(d=>t==="control"?d.isControl:!d.isControl);if(!c?.domSelectors){this.log(`No hypothesis or domSelectors found for assignment: ${t} - early return`);return}o=c.domSelectors}const n=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);r.forEach(l=>{let c=null;const d=l.parentElement;if(d&&(c=d.querySelector('input[name="properties[_slpt]"]')),c||(c=l.querySelector('input[name="properties[_slpt]"]')),!c){this.log(`No hidden input found for ${i} element`);return}const u=c.getAttribute("data-sl-pid");if(!u){this.log("Hidden input has no data-sl-pid attribute - skipping");return}const h=o.find(S=>{const C=S.cssSelector.match(n);return C&&C[1]===u});if(!h){this.log(`No matching selector found for productId: ${u} - skipping element`);return}const p=h.actions.find(S=>S.scope==="price");if(!p?.value){this.log("No price action or value found - skipping element");return}const b=parseFloat(p.value.replace(/[^0-9.]/g,""));if(Number.isNaN(b)){this.log(`Invalid price "${p.value}" for product ${u} - skipping`);return}const E=Math.round(b*100);s(l,E)}),this.log(`updatePlacementElements completed for ${i}`)}updateShopifyPaymentTerms(e,t){const i=document.querySelectorAll("shopify-payment-terms");if(i.length===0)return;this.log("Store using shopify payments");let s;if(this.state.temporary.isMerchant&&this.state.temporary.previewConfig){const o=t==="control"?"a":"b",n=this.state.temporary.previewConfig.variants.find(l=>l.label===o);if(!n||!n.domSelectors){this.log(`No variant found for label ${o} in preview config`);return}s=n.domSelectors,this.log(`Using preview config for shopify-payment-terms in merchant mode, variant: ${o}`)}else{const o=this.testConfigs.find(l=>l.id===e);if(!o)return;const n=o.hypotheses.find(l=>t==="control"?l.isControl===!0:l.isControl===!1);if(!n||!n.domSelectors)return;s=n.domSelectors}const r=new RegExp(`${this.DATA_SL_ATTRIBUTE_P}=["'](\\d+)["']`);i.forEach(o=>{const n=o.getAttribute("variant-id");if(!n)return;const l=s.find(c=>{const d=c.cssSelector.match(r);return d&&d[1]===n});if(l){const c=l.actions.find(d=>d.scope==="price");if(c&&c.value){const d=o.getAttribute("shopify-meta");if(d)try{const u=JSON.parse(d);if(u.variants&&Array.isArray(u.variants)){const h=u.variants.find(p=>p.id?.toString()===n);if(h){h.full_price=c.value;const p=parseFloat(c.value.replace(/[^0-9.]/g,""));if(h.number_of_payment_terms&&h.number_of_payment_terms>1){const b=p/h.number_of_payment_terms;h.price_per_term=`$${b.toFixed(2)}`}o.setAttribute("shopify-meta",JSON.stringify(u))}}}catch(u){this.log("Error parsing/updating shoplift-meta:",u)}}}})}async makeJsonRequest(e){const t=await this.makeRequest(e);return t===null?null:JSON.parse(await t.text(),F)}async makeRequest(e){const{url:t,method:i,headers:s,data:r,signal:o}=e,n=new Headers;if(s)for(const c in s)n.append(c,s[c]);(!s||!s.Accept)&&n.append("Accept","application/json"),(!s||!s["Content-Type"])&&n.append("Content-Type","application/json"),(this.eventHost.includes("ngrok.io")||this.eventHost.includes("ngrok-free.app"))&&n.append("ngrok-skip-browser-warning","1234");const l=await this.fetch(t,{method:i,headers:n,body:r,signal:o});if(!l.ok){if(l.status===204)return null;if(l.status===422){const c=await l.json();if(typeof c<"u"&&c.isBot)throw new ie}throw new Error(`Error sending shoplift request ${l.status}`)}return l}queueAddVisitorToTest(e,t){if(this.state.essential.visitorTests.some(s=>s.testId===e))return;const i=this.testConfigs.find(s=>s.id===e);if(this.state.essential.visitorTests.push({createdAt:new Date,testId:e,hypothesisId:t.id,isThemeTest:t.type==="theme",themeId:t.themeId,isSaved:!1,isInvalid:!1,shouldSendToGa:!0,testType:t.type,assignedTo:t.isControl?"control":"variant",testTitle:i?.title}),t.type==="price"){const s=t.isControl?"control":"variant";this.log("Price test assignment detected, updating cart attributes:",e,s),this.updatePriceTestHiddenInputs(e,s,!1)}}queueCartUpdate(e){this.queueEvent(new Ce(e))}queuePageView(e){this.queueEvent(new Se(e))}queueEvent(e){!this.state.essential.consentApproved&&this.state.essential.hasConsentInteraction||this.state.analytics.queue.length>10||this.state.analytics.queue.push(e)}legacyGetLocalStorageVisitor(){const e=this.localStorageGet(this.legacySessionKey);if(e)try{return JSON.parse(e,F)}catch{}return null}pruneStaleVisitorTests(){this.state.essential.visitorTests=this.state.essential.visitorTests.filter(e=>this.testConfigs.some(t=>t.id==e.testId)||this.inactiveTestConfigs.filter(t=>this.testIsPaused(t)).some(t=>t.id===e.testId))}pruneStateAndSave(){this.pruneStaleVisitorTests(),this.saveState()}saveState(){this.persistEssentialState(),this.persistAnalyticsState()}loadState(){const e=this.loadAnalyticsState(),t={analytics:e,essential:this.loadEssentialState(e),temporary:this.loadTemporaryState()},i=this.legacyGetLocalStorageVisitor(),s=this.legacyGetCookieVisitor(),r=[i,s].filter(o=>o!==null).sort((o,n)=>+n.storedAt-+o.storedAt)[0];return t.analytics.visitor===null&&r&&({visitorTests:t.essential.visitorTests,...t.analytics.visitor}=r,t.essential.isFirstLoad=!1,t.essential.initialState={createdAt:r.createdAt,referrer:r.referrer,utmCampaign:r.utmCampaign,utmContent:r.utmContent,utmMedium:r.utmMedium,utmSource:r.utmSource,device:r.device},this.deleteCookie("SHOPLIFT"),this.deleteLocalStorage(this.legacySessionKey)),!t.essential.consentApproved&&t.essential.hasConsentInteraction&&this.deleteLocalStorage(this.analyticsSessionKey),t}loadEssentialState(e){const t=this.loadLocalStorage(this.essentialSessionKey),i=this.loadCookie(this.essentialSessionKey),s=this.getInitialState();e.visitor?.device&&(s.device=e.visitor.device);const r={timestamp:new Date,consentApproved:!1,hasConsentInteraction:!1,debugMode:!1,initialState:s,visitorTests:[],isFirstLoad:!0},o=[t,i].filter(n=>n!==null).sort((n,l)=>+l.timestamp-+n.timestamp)[0]??r;return o.initialState||(e.visitor!==null?o.initialState=e.visitor:(o.initialState=s,o.initialState.createdAt=o.timestamp)),o}loadAnalyticsState(){const e=this.loadLocalStorage(this.analyticsSessionKey),t=this.loadCookie(this.analyticsSessionKey),i={timestamp:new Date,visitor:null,queue:[]},s=[e,t].filter(r=>r!==null).sort((r,o)=>+o.timestamp-+r.timestamp)[0]??i;return s.queue.length===0&&e&&e.queue.length>1&&(s.queue=e.queue),s}loadTemporaryState(){const e=this.sessionStorageGet(this.temporarySessionKey),t=e?JSON.parse(e,F):null,i=this.loadCookie(this.temporarySessionKey);return t??i??{isMerchant:!1,timestamp:new Date}}persistEssentialState(){this.log("Persisting essential state"),this.state.essential.isFirstLoad=!1,this.state.essential.timestamp=new Date,this.persistLocalStorageState(this.essentialSessionKey,this.state.essential),this.persist
8CookieState(this.essentialSessionKey,this.state.essential)}persistAnalyticsState(){this.log("Persisting analytics state"),this.state.essential.consentApproved&&(this.state.analytics.timestamp=new Date,this.persistLocalStorageState(this.analyticsSessionKey,this.state.analytics),this.persistCookieState(this.analyticsSessionKey,{...this.state.analytics,queue:[]}))}persistTemporaryState(){this.log("Setting temporary session state"),this.state.temporary.timestamp=new Date,this.sessionStorageSet(this.temporarySessionKey,JSON.stringify(this.state.temporary)),this.persistCookieState(this.temporarySessionKey,this.state.temporary,!0)}loadLocalStorage(e){const t=this.localStorageGet(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}loadCookie(e){const t=this.getCookie(e);if(t===null)return null;try{return JSON.parse(t,F)}catch{return null}}persistLocalStorageState(e,t){this.localStorageSet(e,JSON.stringify(t))}persistCookieState(e,t,i=!1){const s=JSON.stringify(t),r=i?"":`expires=${new Date(new Date().getTime()+864e5*365).toUTCString()};`;document.cookie=`${e}=${s};domain=.${window.location.hostname};path=/;SameSite=Strict;${r}`}deleteCookie(e){const t=new Date(0).toUTCString();document.cookie=`${e}=;domain=.${window.location.hostname};path=/;expires=${t};`}deleteLocalStorage(e){window.localStorage.removeItem(e)}getChannel(e){return[{"name":"cross-network","test":(v) => new RegExp(".*cross-network.*", "i").test(v.utmCampaign)},{"name":"direct","test":(v) => v.utmSource === "" && v.utmMedium === ""},{"name":"paid-shopping","test":(v) => (new RegExp("^(?:Google|IGShopping|aax-us-east\.amazon-adsystem\.com|aax\.amazon-adsystem\.com|alibaba|alibaba\.com|amazon|amazon\.co\.uk|amazon\.com|apps\.shopify\.com|checkout\.shopify\.com|checkout\.stripe\.com|cr\.shopping\.naver\.com|cr2\.shopping\.naver\.com|ebay|ebay\.co\.uk|ebay\.com|ebay\.com\.au|ebay\.de|etsy|etsy\.com|m\.alibaba\.com|m\.shopping\.naver\.com|mercadolibre|mercadolibre\.com|mercadolibre\.com\.ar|mercadolibre\.com\.mx|message\.alibaba\.com|msearch\.shopping\.naver\.com|nl\.shopping\.net|no\.shopping\.net|offer\.alibaba\.com|one\.walmart\.com|order\.shopping\.yahoo\.co\.jp|partners\.shopify\.com|s3\.amazonaws\.com|se\.shopping\.net|shop\.app|shopify|shopify\.com|shopping\.naver\.com|shopping\.yahoo\.co\.jp|shopping\.yahoo\.com|shopzilla|shopzilla\.com|simplycodes\.com|store\.shopping\.yahoo\.co\.jp|stripe|stripe\.com|uk\.shopping\.net|walmart|walmart\.com)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
8andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|kakao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.o
8pera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"paid-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) && new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)},{"name":"display","test":(v) => new RegExp("^(?:display|banner|expandable|interstitial|cpm)$", "i").test(v.utmMedium)},{"name":"paid-other","test":(v) => new RegExp("^(.*cp.*|ppc|retargeting|paid.*)$", "i").test(v.utmMedium)}
8,{"name":"organic-shopping","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|yandex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || new RegExp("^(.*(([^a-df-z]|^)shop|shopping).*)$", "i").test(v.utmCampaign)},{"name":"organic-social","test":(v) => new RegExp("^(?:43things|43things\.com|51\.com|5ch\.net|Hatena|ImageShack|academia\.edu|activerain|activerain\.com|activeworlds|activeworlds\.com|addthis|addthis\.com|airg\.ca|allnurses\.com|allrecipes\.com|alumniclass|alumniclass\.com|ameba\.jp|ameblo\.jp|americantowns|americantowns\.com|amp\.reddit\.com|ancestry\.com|anobii|anobii\.com|answerbag|answerbag\.com|answers\.yahoo\.com|aolanswers|aolanswers\.com|apps\.facebook\.com|ar\.pinterest\.com|artstation\.com|askubuntu|askubuntu\.com|asmallworld\.com|athlinks|athlinks\.com|away\.vk\.com|awe\.sm|b\.hatena\.ne\.jp|baby-gaga|baby-gaga\.com|babyblog\.ru|badoo|badoo\.com|bebo|bebo\.com|beforeitsnews|beforeitsnews\.com|bharatstudent|bharatstudent\.com|biip\.no|biswap\.org|bit\.ly|blackcareernetwork\.com|blackplanet|blackplanet\.com|blip\.fm|blog\.com|blog\.feedspot\.com|blog\.goo\.ne\.jp|blog\.naver\.com|blog\.yahoo\.co\.jp|blogg\.no|bloggang\.com|blogger|blogger\.com|blogher|blogher\.com|bloglines|bloglines\.com|blogs\.com|blogsome|blogsome\.com|blogspot|blogspot\.com|blogster|blogster\.com|blurtit|blurtit\.com|bookmarks\.yahoo\.co\.jp|bookmarks\.yahoo\.com|br\.pinterest\.com|brightkite|brightkite\.com|brizzly|brizzly\.com|business\.facebook\.com|buzzfeed|buzzfeed\.com|buzznet|buzznet\.com|cafe\.naver\.com|cafemom|cafemom\.com|camospace|camospace\.com|canalblog\.com|care\.com|care2|care2\.com|caringbridge\.org|catster|catster\.com|cbnt\.io|cellufun|cellufun\.com|centerblog\.net|chat\.zalo\.me|chegg\.com|chicagonow|chicagonow\.com|chiebukuro\.yahoo\.co\.jp|classmates|classmates\.com|classquest|classquest\.com|co\.pinterest\.com|cocolog-nifty|cocolog-nifty\.com|copainsdavant\.linternaute\.com|couchsurfing\.org|cozycot|cozycot\.com|cross\.tv|crunchyroll|crunchyroll\.com|cyworld|cyworld\.com|cz\.pinterest\.com|d\.hatena\.ne\.jp|dailystrength\.org|deluxe\.com|deviantart|deviantart\.com|dianping|dianping\.com|digg|digg\.com|diigo|diigo\.com|discover\.hubpages\.com|disqus|disqus\.com|dogster|dogster\.com|dol2day|dol2day\.com|doostang|doostang\.com|dopplr|dopplr\.com|douban|douban\.com|draft\.blogger\.com|draugiem\.lv|drugs-forum|drugs-forum\.com|dzone|dzone\.com|edublogs\.org|elftown|elftown\.com|epicurious\.com|everforo\.com|exblog\.jp|extole|extole\.com|facebook|facebook\.com|faceparty|faceparty\.com|fandom\.com|fanpop|fanpop\.com|fark|fark\.com|fb|fb\.me|fc2|fc2\.com|feedspot|feministing|feministing\.com|filmaffinity|filmaffinity\.com|flickr|flickr\.com|flipboard|flipboard\.com|folkdirect|folkdirect\.com|foodservice|foodservice\.com|forums\.androidcentral\.com|forums\.crackberry\.com|forums\.imore\.com|forums\.nexopia\.com|forums\.webosnation\.com|forums\.wpcentral\.com|fotki|fotki\.com|fotolog|fotolog\.com|foursquare|foursquare\.com|free\.facebook\.com|friendfeed|friendfeed\.com|fruehstueckstreff\.org|fubar|fubar\.com|gaiaonline|gaiaonline\.com|gamerdna|gamerdna\.com|gather\.com|geni\.com|getpocket\.com|glassboard|glassboard\.com|glassdoor|glassdoor\.com|godtube|godtube\.com|goldenline\.pl|goldstar|goldstar\.com|goo\.gl|gooblog|goodreads|goodreads\.com|google\+|googlegroups\.com|googleplus|govloop|govloop\.com|gowalla|gowalla\.com|gree\.jp|groups\.google\.com|gulli\.com|gutefrage\.net|habbo|habbo\.com|hi5|hi5\.com|hootsuite|hootsuite\.com|houzz|houzz\.com|hoverspot|hoverspot\.com|hr\.com|hu\.pinterest\.com|hubculture|hubculture\.com|hubpages\.com|hyves\.net|hyves\.nl|ibibo|ibibo\.com|id\.pinterest\.com|identi\.ca|ig|imageshack\.com|imageshack\.us|imvu|imvu\.com|in\.pinterest\.com|insanejournal|insanejournal\.com|instagram|instagram\.com|instapaper|instapaper\.com|internations\.org|interpals\.net|intherooms|intherooms\.com|irc-galleria\.net|is\.gd|italki|italki\.com|jammerdirect|jammerdirect\.com|jappy\.com|jappy\.de|kaboodle\.com|k
8akao|kakao\.com|kakaocorp\.com|kaneva|kaneva\.com|kin\.naver\.com|l\.facebook\.com|l\.instagram\.com|l\.messenger\.com|last\.fm|librarything|librarything\.com|lifestream\.aol\.com|line|line\.me|linkedin|linkedin\.com|listal|listal\.com|listography|listography\.com|livedoor\.com|livedoorblog|livejournal|livejournal\.com|lm\.facebook\.com|lnkd\.in|m\.blog\.naver\.com|m\.cafe\.naver\.com|m\.facebook\.com|m\.kin\.naver\.com|m\.vk\.com|m\.yelp\.com|mbga\.jp|medium\.com|meetin\.org|meetup|meetup\.com|meinvz\.net|meneame\.net|menuism\.com|messages\.google\.com|messages\.yahoo\.co\.jp|messenger|messenger\.com|mix\.com|mixi\.jp|mobile\.facebook\.com|mocospace|mocospace\.com|mouthshut|mouthshut\.com|movabletype|movabletype\.com|mubi|mubi\.com|my\.opera\.com|myanimelist\.net|myheritage|myheritage\.com|mylife|mylife\.com|mymodernmet|mymodernmet\.com|myspace|myspace\.com|netvibes|netvibes\.com|news\.ycombinator\.com|newsshowcase|nexopia|ngopost\.org|niconico|nicovideo\.jp|nightlifelink|nightlifelink\.com|ning|ning\.com|nl\.pinterest\.com|odnoklassniki\.ru|odnoklassniki\.ua|okwave\.jp|old\.reddit\.com|oneworldgroup\.org|onstartups|onstartups\.com|opendiary|opendiary\.com|oshiete\.goo\.ne\.jp|out\.reddit\.com|over-blog\.com|overblog\.com|paper\.li|partyflock\.nl|photobucket|photobucket\.com|pinboard|pinboard\.in|pingsta|pingsta\.com|pinterest|pinterest\.at|pinterest\.ca|pinterest\.ch|pinterest\.cl|pinterest\.co\.kr|pinterest\.co\.uk|pinterest\.com|pinterest\.com\.au|pinterest\.com\.mx|pinterest\.de|pinterest\.es|pinterest\.fr|pinterest\.it|pinterest\.jp|pinterest\.nz|pinterest\.ph|pinterest\.pt|pinterest\.ru|pinterest\.se|pixiv\.net|pl\.pinterest\.com|playahead\.se|plurk|plurk\.com|plus\.google\.com|plus\.url\.google\.com|pocket\.co|posterous|posterous\.com|pro\.homeadvisor\.com|pulse\.yahoo\.com|qapacity|qapacity\.com|quechup|quechup\.com|quora|quora\.com|qzone\.qq\.com|ravelry|ravelry\.com|reddit|reddit\.com|redux|redux\.com|renren|renren\.com|researchgate\.net|reunion|reunion\.com|reverbnation|reverbnation\.com|rtl\.de|ryze|ryze\.com|salespider|salespider\.com|scoop\.it|screenrant|screenrant\.com|scribd|scribd\.com|scvngr|scvngr\.com|secondlife|secondlife\.com|serverfault|serverfault\.com|shareit|sharethis|sharethis\.com|shvoong\.com|sites\.google\.com|skype|skyrock|skyrock\.com|slashdot\.org|slideshare\.net|smartnews\.com|snapchat|snapchat\.com|social|sociallife\.com\.br|socialvibe|socialvibe\.com|spaces\.live\.com|spoke|spoke\.com|spruz|spruz\.com|ssense\.com|stackapps|stackapps\.com|stackexchange|stackexchange\.com|stackoverflow|stackoverflow\.com|stardoll\.com|stickam|stickam\.com|studivz\.net|suomi24\.fi|superuser|superuser\.com|sweeva|sweeva\.com|t\.co|t\.me|tagged|tagged\.com|taggedmail|taggedmail\.com|talkbiznow|talkbiznow\.com|taringa\.net|techmeme|techmeme\.com|tencent|tencent\.com|tiktok|tiktok\.com|tinyurl|tinyurl\.com|toolbox|toolbox\.com|touch\.facebook\.com|tr\.pinterest\.com|travellerspoint|travellerspoint\.com|tripadvisor|tripadvisor\.com|trombi|trombi\.com|trustpilot|tudou|tudou\.com|tuenti|tuenti\.com|tumblr|tumblr\.com|tweetdeck|tweetdeck\.com|twitter|twitter\.com|twoo\.com|typepad|typepad\.com|unblog\.fr|urbanspoon\.com|ushareit\.com|ushi\.cn|vampirefreaks|vampirefreaks\.com|vampirerave|vampirerave\.com|vg\.no|video\.ibm\.com|vk\.com|vkontakte\.ru|wakoopa|wakoopa\.com|wattpad|wattpad\.com|web\.facebook\.com|web\.skype\.com|webshots|webshots\.com|wechat|wechat\.com|weebly|weebly\.com|weibo|weibo\.com|wer-weiss-was\.de|weread|weread\.com|whatsapp|whatsapp\.com|wiki\.answers\.com|wikihow\.com|wikitravel\.org|woot\.com|wordpress|wordpress\.com|wordpress\.org|xanga|xanga\.com|xing|xing\.com|yahoo-mbga\.jp|yammer|yammer\.com|yelp|yelp\.co\.uk|yelp\.com|youroom\.in|za\.pinterest\.com|zalo|zoo\.gr|zooppa|zooppa\.com)$", "i").test(v.utmSource) || new RegExp("^(?:social|social-network|social-media|sm|social network|social media)$", "i").test(v.utmMedium)},{"name":"organic-video","test":(v) => new RegExp("^(?:blog\.twitch\.tv|crackle|crackle\.com|curiositystream|curiositystream\.com|d\.tube|dailymotion|dailymotion\.com|dashboard\.twitch\.tv|disneyplus|disneyplus\.com|fast\.wistia\.net|help\.hulu\.com|help\.netflix\.com|hulu|hulu\.com|id\.twitch\.tv|iq\.com|iqiyi|iqiyi\.com|jobs\.netflix\.com|justin\.tv|m\.twitch\.tv|m\.youtube\.com|music\.youtube\.com|netflix|netflix\.com|player\.twitch\.tv|player\.vimeo\.com|ted|ted\.com|twitch|twitch\.tv|utreon|utreon\.com|veoh|veoh\.com|viadeo\.journaldunet\.com|vimeo|vimeo\.com|wistia|wistia\.com|youku|youku\.com|youtube|youtube\.com)$", "i").test(v.utmSource) || new RegExp("^(.*video.*)$", "i").test(v.utmMedium)},{"name":"organic-search","test":(v) => new RegExp("^(?:360\.cn|alice|aol|ar\.search\.yahoo\.com|ask|at\.search\.yahoo\.com|au\.search\.yahoo\.com|auone|avg|babylon|baidu|biglobe|biglobe\.co\.jp|biglobe\.ne\.jp|bing|br\.search\.yahoo\.com|ca\.search\.yahoo\.com|centrum\.cz|ch\.search\.yahoo\.com|cl\.search\.yahoo\.com|cn\.bing\.com|cnn|co\.search\.yahoo\.com|comcast|conduit|daum|daum\.net|de\.search\.yahoo\.com|dk\.search\.yahoo\.com|dogpile|dogpile\.com|duckduckgo|ecosia\.org|email\.seznam\.cz|eniro|es\.search\.yahoo\.com|espanol\.search\.yahoo\.com|exalead\.com|excite\.com|fi\.search\.yahoo\.com|firmy\.cz|fr\.search\.yahoo\.com|globo|go\.mail\.ru|google|google-play|hk\.search\.yahoo\.com|id\.search\.yahoo\.com|in\.search\.yahoo\.com|incredimail|it\.search\.yahoo\.com|kvasir|lens\.google\.com|lite\.qwant\.com|lycos|m\.baidu\.com|m\.naver\.com|m\.search\.naver\.com|m\.sogou\.com|mail\.rambler\.ru|mail\.yandex\.ru|malaysia\.search\.yahoo\.com|msn|msn\.com|mx\.search\.yahoo\.com|najdi|naver|naver\.com|news\.google\.com|nl\.search\.yahoo\.com|no\.search\.yahoo\.com|ntp\.msn\.com|nz\.search\.yahoo\.com|onet|onet\.pl|pe\.search\.yahoo\.com|ph\.search\.yahoo\.com|pl\.search\.yahoo\.com|play\.google\.com|qwant|qwant\.com|rakuten|rakuten\.co\.jp|rambler|rambler\.ru|se\.search\.yahoo\.com|search-results|search\.aol\.co\.uk|search\.aol\.com|search\.google\.com|search\.smt\.docomo\.ne\.jp|search\.ukr\.net|secureurl\.ukr\.net|seznam|seznam\.cz|sg\.search\.yahoo\.com|so\.com|sogou|sogou\.com|sp-web\.search\.auone\.jp|startsiden|startsiden\.no|suche\.aol\.de|terra|th\.search\.yahoo\.com|tr\.search\.yahoo\.com|tut\.by|tw\.search\.yahoo\.com|uk\.search\.yahoo\.com|ukr|us\.search\.yahoo\.com|virgilio|vn\.search\.yahoo\.com|wap\.sogou\.com|webmaster\.yandex\.ru|websearch\.rakuten\.co\.jp|yahoo|yahoo\.co\.jp|yahoo\.com|yandex|yandex\.by|yandex\.com|yandex\.com\.tr|yandex\.fr|yandex\.kz|yandex\.ru|yandex\.ua|y
8andex\.uz|zen\.yandex\.ru)$", "i").test(v.utmSource) || v.utmMedium.toLowerCase() === "organic"},{"name":"referral","test":(v) => new RegExp("^(?:referral|app|link)$", "i").test(v.utmMedium)},{"name":"email","test":(v) => new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmMedium) || new RegExp("^(?:email|e-mail|e_mail|e mail)$", "i").test(v.utmSource)},{"name":"affiliate","test":(v) => v.utmMedium.toLowerCase() === "affiliate"},{"name":"audio","test":(v) => v.utmMedium.toLowerCase() === "audio"},{"name":"sms","test":(v) => v.utmSource.toLowerCase() === "sms" || v.utmMedium.toLowerCase() === "sms"},{"name":"mobile-push-notification","test":(v) => v.utmSource.toLowerCase() === "firebase" || new RegExp("(?:.*mobile.*|.*notification.*|push$)", "i").test(v.utmMedium)}].find(i=>i.test(e))?.name??"other"}getShopifyAnalyticsId(){const e=this.getCookie("_shopify_y");if(e)return e;try{const t=this.localStorageGet("Shoplift_ClientId");if(t)return t}catch{}return null}legacyGetCookieVisitor(){const e=this.getCookie("SHOPLIFT");return e===null?null:JSON.parse(e,F)}getCookie(e){const t=this.cookie.split("; ").filter(i=>i.split("=").at(0)===e).at(0);return t===void 0?null:t.split("=").slice(1).join("=")}monitorConsentChange(){document.addEventListener("visitorConsentCollected",e=>{(async()=>await this.onConsentChange(e.detail.analyticsAllowed,!0))()}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>this.loadShopifyConsentApiWithRetry()):this.loadShopifyConsentApiWithRetry()}loadShopifyConsentApiWithRetry(){let e=0;const t=()=>{this.loadShopifyConsentApi()||e++<10&&window.setTimeout(t,100)};t()}loadShopifyConsentApi(){if(window.Shopify){this.log("Loading Shopify features");const e=async()=>{if(!window.Shopify){this.log("Shopify object missing... suddenly?");return}if(window.Shopify.customerPrivacy===void 0){this.log("Shopify CustomerPrivacy api still missing, trying again in 1000ms"),t=window.setTimeout(()=>{(async()=>await e())()},1e3);return}if(this.geoViaShopify){const s=window.Shopify.customerPrivacy.getRegion?.();this.resolvedRegion=typeof s=="string"?s.replace(/-/g,""):""}const i=window.Shopify.customerPrivacy.getTrackingConsent();await this.onConsentChange(window.Shopify.customerPrivacy.analyticsProcessingAllowed(),i==="yes")};let t=window.setTimeout(()=>{(async()=>await e())()},5e3);return window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],i=>{(async()=>{if(window.clearTimeout(t),i){this.log("Error loading consent tracking",i);return}await e()})()}),!0}return!1}async onConsentChange(e,t){try{if(this.log("Consent change detected",e,t),this.state.essential.consentApproved=e,this.state.essential.hasConsentInteraction=t,!this.state.essential.consentApproved){this.state.essential.hasConsentInteraction&&(this.state.analytics.queue.length=0),this.saveState();return}this.cookie=document.cookie,this.shopifyAnalyticsId=this.getShopifyAnalyticsId(),this.saveState(),await this.syncAllEvents()}catch(i){this.log("Error syncing on consent change",i)}}isThemePreview(){return isThemePreview||themeRole!=="main"}isAppProxyPath(){const e=["/apps/","/tools/","/a/"],t=window.location.pathname;return e.some(i=>t.startsWith(i))}clearThemeBar(e,t,i){const s=structuredClone(i);this.log("Looking for theme bar"),this.waitForElement(null,"body").then(r=>this.waitForElement(r,"#preview-bar-iframe, #PBarNextFrameWrapper").then(o=>(this.log("Found theme bar"),t&&(this.log("Removing theme bar"),o.remove()),e?this.makeRequest({url:`${this.eventHost}/api/v0/logs`,method:"post",data:JSON.stringify({...this.debugState(),stateAtEvaluation:s},ee)}):Promise.resolve(null)))).catch(r=>console.error(r))}waitForElement(e,t){return new Promise(i=>{const s=document.querySelector(t);if(s){i(s);return}const r=new MutationObserver(o=>{const n=document.querySelector(t);if(n){r.disconnect(),i(n);return}});r.observe(e??document.documentElement,{childList:!0})})}setDebug(e){this.state.essential.debugMode=e,this.saveState()}log(e,...t){let i=0;const s=e.replace(/%[sdoOfF]/g,r=>{if(i>=t.length)return r;const o=t[i++];return r==="%o"||r==="%O"?JSON.stringify(o):String(o)});this.logHistory.push(`[${new Date().toISOString()}][SL] ${s}`),!(!this.state.essential.debugMode&&!this.shopliftDebug)&&console.debug(`[SL] ${e}`,...t)}debugState(){return{state:this.state,storage:{essential:this.loadLocalStorage(this.essentialSessionKey),analytics:this.loadLocalStorage(this.analyticsSessionKey)},params:{shop:this.shop,host:this.host,eventHost:this.eventHost,cssHideClass:this.cssHideClass,testConfigs:this.testConfigs,inactiveTestConfigs:this.inactiveTestConfigs,sendPageView:this.sendPageView,isShopifyMerchantCookie
8:this.getCookie("is_shopify_merchant"),themeId,url:window.location.href,isThemePreview,themeRole,gaConfig:this.gaConfig},logHistory:this.logHistory}}createViewportObserver(e,t={}){const{threshold:i=this.VIEWPORT_TRACK_THRESHOLD,triggerOnce:s=!0}=t,r=new Set;return new IntersectionObserver(o=>{o.forEach(n=>{if(n.isIntersecting&&!r.has(n.target)){const l=n.target,c=l.getAttribute(this.DATA_SL_TEST_ID);c&&(e(c,l),s&&r.add(l))}})},{threshold:i})}applyChangesWithViewport(e,t,i,s){const r=t.selectorsForViewportTracking??t.selectors,o=n=>{if(this.state.essential.visitorTests.some(h=>h.testId===n)||this.activeViewportObservers.has(n))return;const l=[];if(r.forEach(h=>{e.querySelectorAll(h.cssSelector).forEach(b=>l.push(b))}),l.length===0)return;let c=!1;const d=()=>{c||(c=!0,i(n),u.disconnect(),this.activeViewportObservers.delete(n))},u=this.createViewportObserver(()=>{d()},{triggerOnce:!0,...s});this.activeViewportObservers.set(n,u),this.log(`Created viewport observer for test ${n}, observing ${l.length} elements`),l.forEach(h=>{h.setAttribute(this.DATA_SL_TEST_ID,String(n)),u.observe(h)}),setTimeout(()=>{c||l.forEach(h=>{const p=h.getBoundingClientRect(),b=s?.threshold??this.VIEWPORT_TRACK_THRESHOLD,E=Math.min(p.bottom,window.innerHeight)-Math.max(p.top,0),S=Math.min(p.right,window.innerWidth)-Math.max(p.left,0);p.top<window.innerHeight&&p.bottom>0&&p.left<window.innerWidth&&p.right>0&&E>0&&S>0&&E>=p.height*b&&(this.log(`Price element already visible in viewport for test ${n}:`,h),d())})},100)};t.selectors.length>0&&U(e,t,()=>{}),Te(e,{testId:t.testId,hypothesisId:t.hypothesisId,selectors:r},n=>{o(n)})}applyPriceTestWithMapLookup(e,t,i,s){if(!t.priceData){this.log("No price data for hypothesis '%s'",t.id);return}this.log("Hypothesis '%s' isControl=%s, priceData has %d variants",t.id,t.isControl,t.priceData.variants.length);const r=t.priceData.variants.slice(0,3);for(const[S,C,_]of r)this.log(" Sample priceData: variant=%s, price=%d, compareAt=%d",S,C,_);const o=j(t.priceData),n=new Set;for(const S of i)if(S.priceData)for(const[C]of S.priceData.variants)n.add(C);this.log("Price test Map lookup: %d products in hypothesis, %d total products to track",o.size,n.size);const l=t.priceData,c=new WeakSet;let d=!1;const u="[data-sl-attribute-p], [data-sl-attribute-cap], [data-sl-attribute-discount]",h=S=>{if(c.has(S))return;const C=S.getAttribute("data-sl-attribute-p"),_=S.getAttribute("data-sl-attribute-cap"),T=S.getAttribute("data-sl-attribute-discount"),m=C||_||T;if(!m||!n.has(m))return;c.add(S);const y=o.get(m);y&&(this.log("Applying price for product %s: %d cents (compare at: %d cents)",m,y.priceInCents,y.compareAtPriceInCents),Le(S,m,y,l),this.log("Applied price to element for product %s",m)),!d&&!this.state.essential.visitorTests.some(w=>w.testId===e)&&(S.setAttribute(this.DATA_SL_TEST_ID,String(e)),this.setupElementViewportTracking(S,e,()=>{d||(d=!0,s(e))}))},p=()=>{const S=document.querySelectorAll(u);this.log("Scanning for price elements, found: %d",S.length),S.forEach(h)},b=new MutationObserver(S=>{for(const C of S)C.type==="childList"&&C.addedNodes.forEach(_=>{if(_.nodeType===Node.ELEMENT_NODE){const T=_;(T.hasAttribute("data-sl-attribute-p")||T.hasAttribute("data-sl-attribute-cap")||T.hasAttribute("data-sl-attribute-discount"))&&h(T),T.querySelectorAll(u).forEach(h)}}),C.type==="attributes"&&C.target instanceof Element&&h(C.target)}),E=document.body||document.documentElement;b.observe(E,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-sl-attribute-p","data-sl-attribute-cap","data-sl-attribute-discount"]}),this.log("MutationObserver started for price elements"),p(),document.readyState==="loading"&&document.addEventListener("DOMContentLoaded",()=>{this.log("DOMContentLoaded - rescanning for price elements"),p()}),setTimeout(()=>{this.log("Delayed rescan for price elements"),p()},100),setTimeout(()=>{this.log("Final rescan for price elements"),p()},500)}setupElementViewportTracking(e,t,i){const s=this.VIEWPORT_TRACK_THRESHOLD,r=e.getBoundingClientRect(),o=Math.min(r.bottom,window.innerHeight)-Math.max(r.top,0),n=Math.min(r.right,window.innerWidth)-Math.max(r.left,0);if(r.top<window.innerHeight&&r.bottom>0&&r.left<window.innerWidth&&r.right>0&&o>0&&n>0&&o>=r.height*s){this.log("Price element already visible for test %s",t),i();return}const c=new IntersectionObserver(d=>{for(const u of d)if(u.isIntersecting&&u.intersectionRatio>=s){this.log("Price element entered viewport for test %s",t),c.disconnect(),i();break}},{threshold:s});c.observe(e)}debug(){const e=this.debugState();console.log(JSON.stringify(e,ee,2))}}(async function(){window.shopliftInstance||(window.shopliftInstance=new Ze("renee-rouleau-quiz.myshopify.com","https://app.shoplift.ai","https://events.shoplift.ai",false,false,false,{"sendEvents":false,"mode":"gtag"}
8,false,false,1000,[],[],null,false),await window.shopliftInstance.init())})();async function Qe(a,e,t,i){const s=Be({log:i});if(t)return i("[SUB-PREVIEW] A side â no overlay applied; widget renders naturally"),s;const r=a.widget.widgetType,o=e?j(e):null;let n=W(e),l=J(a,n),c=l.discountMap,d=l.maxDiscount;function u(){const f=W(e);f!==n&&(n=f,l=J(a,n),c=l.discountMap,d=l.maxDiscount,i(`[SUB-PREVIEW] scope refreshed currentProductId=${n??"n/a"}, maxDiscount=${d}`))}i(`[SUB-PREVIEW] side=B, currentProductId=${n??"n/a"}, maxDiscount=${d}`);function h(f){if(!e||!o)return null;const v=Z(o),g=v?o.get(v):void 0;return g?{formattedVariantPrice:G(g.priceInCents,e),formattedDiscounted:G(g.priceInCents*(1-f/100),e)}:null}function p(f){const v=Y(a,f);if(!v)return d;const g=D(a,"subscriptionInput"),P=g.length?g[0].selector:'input[name="rc_plan"]',A=v.querySelector(`${P}:checked`);if(A){const k=c[A.value];if(k!==void 0)return k}return d}function b(f){const v=D(a,"subscriptionDiscount");for(const g of v)if(g.selector.includes("badge")||g.selector.includes("__badge")){const P=f.querySelector(g.selector);P?.textContent&&!P.textContent.includes(`${d}%`)&&$(P,A=>N(A,d))}}function E(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionCompareAt");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedVariantPrice)&&$(k,x=>/\d/.test(x)?g.formattedVariantPrice:x)}}function S(f,v){const g=h(v);if(!g)return;const P=D(a,"subscriptionPrice");for(const A of P){const k=f.querySelector(A.selector)||f.querySelector(`[part~="${A.selector}"]`);k?.textContent&&!k.textContent.includes(g.formattedDiscounted)&&$(k,x=>/\d/.test(x)?g.formattedDiscounted:x)}}function C(f){const v=D(a,"subscriptionInput"),g=v.length?v[0].selector:'input[name="rc_plan"]',P=D(a,"subscriptionPlanDiscount"),A=P.length?P[0].selector:".rc-plans-button__discount";for(const k of Array.from(f.querySelectorAll("label"))){const x=k.querySelector(g),R=k.querySelector(A);if(x&&R?.textContent){const O=c[x.value];if(O!==void 0){const V=R.textContent.match(/[\d.]+%/)?.[0];V&&V!==`${O}%`&&$(R,L=>N(L,O))}}}}function _(f){const v=f.querySelector("select");if(v)for(const g of Array.from(v.options)){const P=c[g.value];if(P!==void 0&&g.textContent){const A=g.textContent.match(/[\d.]+%/)?.[0];A&&A!==`${P}%`&&(g.textContent=N(g.textContent,P))}}}function T(f){const v=D(a,"onetimePrice");if(!v.length||!e||!o)return;const g=Z(o),P=g?o.get(g):void 0;if(!P)return;const A=G(P.priceInCents,e),k=D(a,"onetimeContainer"),x=k.length?k[0].selector:'[part~="rc-purchase-option__onetime"]',R=f.querySelector(x);if(R)for(const O of v){const V=R.querySelector(`[part~="${O.selector}"]`);V?.textContent&&!V.textContent.includes(A)&&$(V,L=>/\d/.test(L)?A:L)}}function m(f,v){const P=D(a,"subscriptionDiscount").filter(A=>A.selector.includes("benefit")||A.selector==="rc-benefits");for(const A of P){const k=f.querySelector(A.selector);if(k?.shadowRoot){for(const x of Array.from(k.shadowRoot.querySelectorAll("li")))if(x.textContent?.includes("Save")){const R=x.textContent.match(/[\d.]+%/)?.[0];R&&R!==`${v}%`&&$(x,O=>N(O,v))}}}}let y=!1;function w(){if(!y){y=!0;try{u();const f=B(a);if(!f)return;const v=p(f);b(f),E(f,v),S(f,v),T(f);const g=Y(a,f);g&&(r==="buttons"||r==="radio"?C(g):_(g)),m(f,v)}finally{y=!1}}}const I=pe({data:a,runUpdates:w});return function(){I(),s()}}const Xe=Object.freeze(Object.defineProperty({__proto__:null,subscriptionPreviewRender:Qe},Symbol.toStringTag,{value:"Module"}))})(); })("/", { suffix: "without-before-and-after", type: "product" }, "main", 137198436411, false)</script>
8 9<!-- End of Shoplift scripts --><link rel="icon" type="image/png" href="//www.reneerouleau.com/cdn/shop/files/RR_Secondary_Transparent.png?crop=center&height=32&v=1613658865&width=32"><title> 10 Skin Drink I.V. 11 – Renée Rouleau Professional Skin Care</title> 12 13 <meta name="google-site-verification" content="SmHeJ7nfzH4RaldOjBJlRLkk9RSBcoa0T37-KSsPVKM" /> 14 15 <meta charset="utf-8"> 16<meta http-equiv="X-UA-Compatible" content="IE=edge"> 17<meta name="viewport" content="width=device-width,initial-scale=1"> 18<meta name="theme-color" content=""> 19<link rel="canonical" href="https://www.reneerouleau.com/products/skin-drink-i-v"> 20<link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 21 22<meta property="og:site_name" content="Renée Rouleau Professional Skin Care"> 23<meta property="og:url" content="https://www.reneerouleau.com/products/skin-drink-i-v"> 24<meta property="og:title" content="Skin Drink I.V."> 25<meta property="og:type" content="product"> 26<meta property="og:description" content="An electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration."><meta property="og:image" content="https://www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?crop=center&height=630&v=1786999924&width=1200"> 27 <meta property="og:image:secure_url" content="https://www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?crop=center&height=630&v=1786999924&width=1200"> 28 <meta property="og:image:width" content="1200"> 29 <meta property="og:image:height" content="630"> 30 <meta property="og:image:alt" content="Skin Drink I.V."> 31<meta name="twitter:site" content="@ReneeRouleau"><meta name="twitter:card" content="summary_large_image"> 32<meta name="twitter:title" content="Skin Drink I.V."> 33<meta name="twitter:description" content="An electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration."><meta name="twitter:image" content="https://www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?crop=center&height=630&v=1786999924&width=1200"> 34 <meta name="twitter:image:alt" content="Skin Drink I.V."> 35 <meta name="description" content="An electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration."> 36 37 38 39
39<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
39<meta name="google-site-verification" content="93gaYyCmQjkJ3RQekDZH8GvEevVm9Ky2AU5hj-8jirA"> 40<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15944825/digital_wallets/dialog"> 41<meta id="in-context-paypal-metadata" data-shop-id="15944825" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 42<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/43374648328251:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://www.reneerouleau.com/products/skin-drink-i-v.oembed">
43<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2134736955"></script>
43 44<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
45<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2134736955&shop_id=15944825" crossorigin="anonymous"></script>
vendor: 1 bytes, line 45
45
46<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":15944825,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/15944825","merchantName":"Renée Rouleau Professional Skin Care","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Renée Rouleau Professional Skin Care","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 46
46
47<script id="shopify-features" type="application/json">{"accessToken":"fa9f11679fe0e16784c8f6f3207aa666","betas":["rich-media-storefront-analytics"],"domain":"www.reneerouleau.com","predictiveSearch":true,"shopId":15944825,"locale":"en"}</script>
vendor: 1 bytes, line 47
47
48<script>var Shopify = Shopify || {}; 49Shopify.shop = "renee-rouleau-quiz.myshopify.com"; 50Shopify.locale = "en"; 51Shopify.currency = {"active":"USD","rate":"1.0"}; 52Shopify.country = "US"; 53Shopify.theme = {"name":"Live Theme (Do Not Unpublish)","id":137198436411,"schema_name":"VBT","schema_version":"0.0.0","theme_store_id":null,"role":"main"}; 54Shopify.theme.handle = "null"; 55Shopify.theme.style = {"id":null,"handle":null}; 56Shopify.cdnHost = "www.reneerouleau.com/cdn"; 57Shopify.routes = Shopify.routes || {}; 58Shopify.routes.root = "/"; 59Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 60Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 61Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 62Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 62
62
63<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 63
63
64<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 64
64
65<script> 66 window.ShopifyPay = window.ShopifyPay || {}; 67 window.ShopifyPay.apiHost = "shop.app\/pay"; 68 window.ShopifyPay.redirectState = null; 69</script>
vendor: 1 bytes, line 69
69
70<script> 71 window.Shopify = window.Shopify || {}; 72 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 73 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 74 window.Shopify.SignInWithShop.eligible = true; 75</script>
vendor: 1 bytes, line 75
75
76<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 76
76
77<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 77
77
78<script type="module"> 79 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 80 81 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 82 83</script>
vendor: 1 bytes, line 83
83
84<script> 85 window.Shopify = window.Shopify || {}; 86 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 87 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 88</script>
vendor: 1 bytes, line 88
88
89<script>(function() { 90 var isLoaded = false; 91 function asyncLoad() { 92 if (isLoaded) return; 93 isLoaded = true; 94 var urls = ["https:\/\/static.rechargecdn.com\/assets\/js\/widget.min.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/config.gorgias.chat\/bundle-loader\/01GYCBZ3HHVHQMGDQKBPC92SNH?source=shopify1click\u0026shop=renee-rouleau-quiz.myshopify.com","https:\/\/static-us.afterpay.com\/shopify\/afterpay-attract\/afterpay-attract-widget.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/ecom-app.rakutenadvertising.io\/rakuten_advertising.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/tag.rmp.rakuten.com\/121787.ct.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-48912c65f89bdfbe8bb0a15dbee18fe4.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/media.9gtb.com\/loader.js?g_cvt_id=24d30af1-fcec-4986-85c1-ae7d43e9d13a\u0026shop=renee-rouleau-quiz.myshopify.com","https:\/\/app.tailorhq.ai\/script\/Ryu45URBQcSpSek7IW-OYg.js?shop=renee-rouleau-quiz.myshopify.com","https:\/\/app.tailorhq.ai\/script\/Ryu45URBQcSpSek7IW-OYg.js?shop=renee-rouleau-quiz.myshopify.com"]; 95 for (var i = 0; i < urls.length; i++) { 96 var s = document.createElement('script'); 97 s.type = 'text/javascript'; 98 s.async = true; 99 s.src = urls[i]; 100 var x = document.getElementsByTagName('script')[0]; 101 x.parentNode.insertBefore(s, x); 102 } 103 }; 104 if(window.attachEvent) { 105 window.attachEvent('onload', asyncLoad); 106 } else { 107 window.addEventListener('load', asyncLoad, false); 108 } 109})();</script>
vendor: 1 bytes, line 109
109
110<script id="__st">var __st={"a":15944825,"offset":-18000,"reqid":"72569804-3df5-422b-86be-02e05837004d-1790275475","pageurl":"www.reneerouleau.com\/products\/skin-drink-i-v","u":"3effdcab21ad","p":"product","rtyp":"product","rid":7574678405179};</script>
vendor: 1 bytes, line 110
110
111<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 111
111
112<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 112
112
113<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.reneerouleau.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 113
113
114<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.reneerouleau.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
114<script crossorigin="anonymous" defer="defer" src="//www.reneerouleau.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 114
114
115<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 115
115
116<script> 117 window.Shopify = window.Shopify || {}; 118 window.Shopify.MCP = window.Shopify.MCP || {}; 119 window.Shopify.MCP.enabled = true; 120 window.Shopify.MCP.shop = "renee-rouleau-quiz.myshopify.com"; 121 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.reneerouleau.com\/api\/mcp"; 122 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 123</script>
vendor: 1 bytes, line 123
123
124<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.reneerouleau.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 125</script>
vendor: 1 bytes, line 125
125
126<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.reneerouleau.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 127</script>
vendor: 1 bytes, line 127
127
128<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 129 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 130</script>
vendor: 1 bytes, line 130
130
131<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 132</script>
132 133<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.reneerouleau.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 134<style id="shopify-accelerated-checkout-cart"> 135 #shopify-buyer-consent { 136 margin-top: 1em; 137 display: inline-block; 138 width: 100%; 139} 140 141#shopify-buyer-consent.hidden { 142 display: none; 143} 144 145#shopify-subscription-policy-button { 146 background: none; 147 border: none; 148 padding: 0; 149 text-decoration: underline; 150 font-size: inherit; 151 cursor: pointer; 152} 153 154#shopify-subscription-policy-button::before { 155 box-shadow: none; 156} 157 158 </style> 159<link rel="stylesheet" media="screen" href="//www.reneerouleau.com/cdn/shop/t/118/compiled_assets/styles.css?v=173793283236274387821789657246">
160<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
160 161 162 <style data-shopify> 163 @font-face { 164 font-family: 'Canela Condensed'; 165 src: url('//www.reneerouleau.com/cdn/shop/t/118/assets/CanelaCondensed-Medium-Web.woff2?v=84879445097741217481768493145') format('woff2'), 166 url('//www.reneerouleau.com/cdn/shop/t/118/assets/CanelaCondensed-Medium-Web.woff?v=17348787779710999701768493145') format('woff'); 167 font-weight: 500; 168 font-style: normal; 169 font-display: swap; 170 } 171 172 @font-face { 173 font-family: 'Canela Condensed'; 174 src: url('//www.reneerouleau.com/cdn/shop/t/118/assets/CanelaCondensed-MediumItalic-Web.woff2?v=80247116199027130191768493146') format('woff2'), 175 url('//www.reneerouleau.com/cdn/shop/t/118/assets/CanelaCondensed-MediumItalic-Web.woff?v=133086399374835448251768493146') format('woff'); 176 font-weight: 500; 177 font-style: italic; 178 font-display: swap; 179 } 180 181 @font-face { 182 font-family: 'Geologica'; 183 src: url('//www.reneerouleau.com/cdn/shop/t/118/assets/geologica-v4-cyrillic_cyrillic-ext_latin_latin-ext-200.woff2?v=154168406736679651551768493147') format('woff2'); 184 font-weight: 200; 185 font-style: normal; 186 font-display: swap; 187 } 188 189 @font-face { 190 font-family: 'Geologica'; 191 src: url('//www.reneerouleau.com/cdn/shop/t/118/assets/geologica-v4-cyrillic_cyrillic-ext_latin_latin-ext-600.woff2?v=37185942091953525991768493147') format('woff2'); 192 font-weight: 600; 193 font-style: normal; 194 font-display: swap; 195 } 196 197 :root { 198 199 } 200</style> 201 202 203 <link rel="preload" as="font" href="//www.reneerouleau.com/cdn/shop/t/118/assets/CanelaCondensed-Medium-Web.woff2?v=84879445097741217481768493145" type="font/woff2" crossorigin> 204 <link rel="preload" as="font" href="//www.reneerouleau.com/cdn/shop/t/118/assets/geologica-v4-cyrillic_cyrillic-ext_latin_latin-ext-200.woff2?v=154168406736679651551768493147" type="font/woff2" crossorigin> 205 206 <link rel="preload" as="stylesheet" href="//www.reneerouleau.com/cdn/shop/t/118/assets/global.vbt.css?v=98226878884724617251789013076"> 207 <link href="//www.reneerouleau.com/cdn/shop/t/118/assets/global.vbt.css?v=98226878884724617251789013076" rel="stylesheet" type="text/css" media="all" /> 208 209<link rel="preload" as="script" href="//www.reneerouleau.com/cdn/shop/t/118/assets/global.vbt.js?v=113349650943796909481789681648"> 210
210<script type="module" src="//www.reneerouleau.com/cdn/shop/t/118/assets/global.vbt.js?v=113349650943796909481789681648"></script>
210 211 212
212<script> 213 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 214 if (Shopify.designMode) { document.documentElement.classList.add('shopify-design-mode'); } 215 </script>
215 216</script>
216 217</script>
217 218<!-- Begin Tailor AI Script -->
219<script src="https://app.tailorhq.ai/script/Ryu45URBQcSpSek7IW-OYg.js" async></script>
219 220<!-- End Tailor AI Script --> 221 222 <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a --> 223 224 225 226 <!-- TCF is active, scripts are loaded above --> 227 228
228<script> 229 if (!window.PandectesRulesSettings) { 230 window.PandectesRulesSettings = {"store":{"id":15944825,"adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"banner":{"cookiesBlockedByDefault":"0","hybridStrict":false,"isActive":true},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"globalVisibility":true},"blocker":{"isActive":false,"googleConsentMode":{"isActive":true,"id":"","analyticsId":"","adwordsId":"","adStorageCategory":4,"analyticsStorageCategory":2,"functionalityStorageCategory":1,"personalizationStorageCategory":1,"securityStorageCategory":0,"customEvent":true,"redactData":true,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":0,"useNativeChannel":true},"facebookPixel":{"isActive":false,"id":"","ldu":false},"microsoft":{},"rakuten":{"isActive":true,"cmp":true,"ccpa":true},"gpcIsActive":false,"klaviyoIsActive":false,"defaultBlocked":0,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}; 231 const rulesScript = document.createElement('script'); 232 window.PandectesRulesSettings.auto = true; 233 rulesScript.src = "https://cdn.shopify.com/extensions/01a0d309-5aa0-76cf-9f48-2a42b2760403/gdpr-cookie-consent-411/assets/pandectes-rules.js"; 234 const firstChild = document.head.firstChild; 235 document.head.insertBefore(rulesScript, firstChild); 236 } 237 </script>
237 238 239
239<script> 240 241 window.PandectesSettings = {"store":{"id":15944825,"plan":"plus","theme":"220116 - [Okendo Reviews] - final","primaryLocale":"en","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"tsPublished":1750104541,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"en","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"en":"We respect your privacy"},"consentText":{"en":"We've got cookies! Just like most websites, ReneeRouleau.com uses cookies to provide essential functionality and personalize your experience both on-site and off-site in the form of account functions, content, tools, and, yes, advertisements. By clicking \"Accept\", you are providing consent for us to do so. Please note that if you do not provide consent, the website may not function properly. After consent is provided, you can request deletion of your data by emailing [email protected] or visiting your Account page."},"linkText":{"en":"Learn more"},"imprintText":{"en":"Imprint"},"googleLinkText":{"en":"Google's Privacy Terms"},"allowButtonText":{"en":"Accept"},"denyButtonText":{"en":"Decline"},"dismissButtonText":{"en":"Ok"},"leaveSiteButtonText":{"en":"Leave this site"},"preferencesButtonText":{"en":"Preferences"},"cookiePolicyText":{"en":"Cookie policy"},"preferencesPopupTitleText":{"en":"Manage consent preferences"},"preferencesPopupIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupSaveButtonText":{"en":"Save preferences"},"preferencesPopupCloseButtonText":{"en":"Close"},"preferencesPopupAcceptAllButtonText":{"en":"Accept all"},"preferencesPopupRejectAllButtonText":{"en":"Reject all"},"cookiesDetailsText":{"en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"en":"Always allowed"},"accessSectionParagraphText":{"en":"You have the right to request access to your data at any time."},"accessSectionTitleText":{"en":"Data portability"},"accessSectionAccountInfoActionText":{"en":"Personal data"},"accessSectionDownloadReportActionText":{"en":"Request export"},"accessSectionGDPRRequestsActionText":{"en":"Data subject requests"},"accessSectionOrdersRecordsActionText":{"en":"Orders"},"rectificationSectionParagraphText":{"en":"You have the right to request your data to be updated whenever you think it is appropriate."},"rectificationSectionTitleText":{"en":"Data Rectification"},"rectificationCommentPlaceholder":{"en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"en":"Comment is required"},"rectificationSectionEditAccountActionText":{"en":"Request an update"},"erasureSectionTitleText":{"en":"Right to be forgotten"},"erasureSectionParagraphText":{"en":"You have the right to ask all your data to be erased. After that, you will no longer be able to access your account."},"erasureSectionRequestDeletionActionText":{"en":"Request personal data deletion"},"consentDate":{"en":"Consent date"},"consentId":{"en":"Consent ID"},"consentSectionChangeConsentActionText":{"en":"Change consent preference"},"consentSectionConsentedText":{"en":"You consented to the cookies policy of this website on"},"consentSectionNoConsentText":{"en":"You have not consented to the cookies policy of this website."},"consentSectionTitleText":{"en":"Your cookie consent"},"consentStatus":{"en":"Consent preference"},"confirmationFailureMessage":{"en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"confirmationFailureTitle":{"en":"A problem occurred"},"confirmationSuccessMessage":{"en":"We will soon get back to you as to your request."},"confirmationSuccessTitle":{"en":"Your request is verified"},"guestsSupportEmailFailureMessage":{"en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"guestsSupportEmailFailureTitle":{"en":"A problem occurred"},"guestsSupportEmailPlaceholder":{"en":"E-mail address"},"guestsSupportEmailSuccessMessage":{"en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."}
241,"guestsSupportEmailSuccessTitle":{"en":"Thank you for your request"},"guestsSupportEmailValidationError":{"en":"Email is not valid"},"guestsSupportInfoText":{"en":"Please login with your customer account to further proceed."},"submitButton":{"en":"Submit"},"submittingButton":{"en":"Submitting..."},"cancelButton":{"en":"Cancel"},"declIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"declName":{"en":"Name"},"declPurpose":{"en":"Purpose"},"declType":{"en":"Type"},"declRetention":{"en":"Retention"},"declProvider":{"en":"Provider"},"declFirstParty":{"en":"First-party"},"declThirdParty":{"en":"Third-party"},"declSeconds":{"en":"seconds"},"declMinutes":{"en":"minutes"},"declHours":{"en":"hours"},"declDays":{"en":"days"},"declMonths":{"en":"months"},"declYears":{"en":"years"},"declSession":{"en":"Session"},"declDomain":{"en":"Domain"},"declPath":{"en":"Path"}}
241,"categories":{"strictlyNecessaryCookiesTitleText":{"en":"Strictly necessary cookies"},"strictlyNecessaryCookiesDescriptionText":{"en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesTitleText":{"en":"Functional cookies"},"functionalityCookiesDescriptionText":{"en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesTitleText":{"en":"Performance cookies"},"performanceCookiesDescriptionText":{"en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesTitleText":{"en":"Targeting cookies"},"targetingCookiesDescriptionText":{"en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesTitleText":{"en":"Unclassified cookies"},"unclassifiedCookiesDescriptionText":{"en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":0,"showLink":true,"showImprintLink":false,"showGoogleLink":false,"enabled":true,"cookie":{"expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#0000FF","backgroundForCalculations":{"a":1,"b":255,"g":0,"r":0},"text":"#FFFFFF"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":252,"g":122,"r":35},"text":"#FFFFFF","textForCalculation":{"a":1,"b":255,"g":255,"r":255},"border":"#FFFFFF"}},"content":{"href":"https://renee-rouleau-quiz.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"✕","target":"_blank","logo":""},"window":"<div role=\"dialog\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-bottom-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\"><!--googleoff: all-->{{children}}<!--googleon: all--></div></div>","compliance":{"custom":"<div class=\"cc-compliance cc-highlight\">{{preferences}}{{allow}}{{deny}}</div>"},"type":"custom","layouts":{"basic":"{{messagelink}}{{compliance}}{{close}}"},"position":"bottom","theme":"wired","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://renee-rouleau-quiz.myshopify.com/cdn/shop/files/pandectes-reopen-logo.png","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"Close cookie banner\" type=\"button\" class=\"cc-close\">{{close}}</button>","dismiss":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-dismiss\">{{dismiss}}</button>","allow":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-allow\">{{allow}}</button>","deny":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-deny\">{{deny}}</button>","preferences":"<button type=\"button\" class=\"cc-btn cc-settings\" onclick=\"Pandectes.fn.openPreferences()\">{{preferences}}</button>"}},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"globalVisibility":true},"dsr":{"guestsSupport":true,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1704389009,"extraCss":" .cc-banner-logo {max-width: 24em!important;} @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}} .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left} .cc-window-wrapper{z-index: 2147483647;} .cc-window{z-index: 2147483647;font-family: inherit;} .pd-cookie-banner-window .cc-header{font-family: inherit;} .pd-cp-ui{font-family: inherit; background-color: #0000FF;color:#FFFFFF;} button.pd-cp-btn, a.pd-cp-btn{} input + .pd-cp-preferences-slider{background-color: rgba(255, 255, 255, 0.3)} .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(255, 255, 255, 0.3)} input:checked + .pd-cp-preferences-slider{background-color: rgba(255, 255, 255, 1)} .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(255, 255, 255, 1)} .pd-cp-ui-close{color:#FFFFFF;} .pd-cp-preferences-slider:before{background-color: #0000FF} .pd-cp-title:before {border-color: #FFFFFF!important} .pd-cp-preferences-slider{background-color:#FFFFFF} .pd-cp-toggle{color:#FFFFFF!important} @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #FFFFFF}} .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#FFFFFF!important} .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);} ","customJavascript":{},"showPoweredBy":false,"logoHeight":40,"hybridStrict":false,"cookiesBlockedByDefault":"0","isActive":true,"implicitSavePreferences":true,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"keep_alive","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":"Used in connection with buyer localization."}},{"name":"secure_customer_sig","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Used in connection with customer login."}},{"name":"localization","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Shopify store localization"}},{"name":"cart_currency","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","expires":2,"unit":"declSession","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}},{"name":"shopify_pay_redirect","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 hour(s)","expires":1,"unit":"declHours","purpose":{"en":"The cookie is necessary for the secure checkout and payment function on the website. This function is provided by shopify.com."}},{"name":"_cmp_a","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"1 day(s)","expires":1,"unit":"declDays","purpose":{"en":"Used for managing customer privacy settings."}},{"name":"cookietest","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Used to ensure our systems are working correctly."}},{"name":"_secure_session_id","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 month(s)","expires":1,"unit":"declMonths","purpose":{"en":"Used in connection with navigation through a storefront."}}],"1":[{"name":"_pinterest_ct_ua","type":"http","domain":".ct.pinterest.com","path":"/","provider":"Pinterest","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Used to group actions across pages."}},{"name":"_hjSessionUser_1139632","type":"http","domain":".reneerouleau.com","path":"/","provider":"Hotjar","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_hjSession_1139632","type":"http","domain":".reneerouleau.com","path":"/","provider":"Hotjar","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}}],"2":[{"name":"_shopify_y","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Shopify analytics."}}
241,{"name":"_shopify_s","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics."}},{"name":"_orig_referrer","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"2 ","expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}},{"name":"_landing_page","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"2 ","expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}},{"name":"_shopify_sa_t","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics relating to marketing & referrals."}},{"name":"_shopify_sa_p","type":"http","domain":".reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics relating to marketing & referrals."}},{"name":"_gat","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 minute(s)","expires":1,"unit":"declMinutes","purpose":{"en":"Cookie is placed by Google Analytics to filter requests from bots."}},{"name":"_gid","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 day(s)","expires":1,"unit":"declDays","purpose":{"en":"Cookie is placed by Google Analytics to count and track pageviews."}},{"name":"_ga","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Cookie is set by Google Analytics with unknown functionality"}},{"name":"_shopify_d","type":"http","domain":"com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Shopify analytics."}},{"name":"_shopify_d","type":"http","domain":"reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Shopify analytics."}},{"name":"_gat_UA-27161702-1","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 minute(s)","expires":1,"unit":"declMinutes","purpose":{"en":""}},{"name":"_ga_4KDC0M061F","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ga_8VM2XXTRNV","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}}],"4":[{"name":"_gcl_au","type":"http","domain":".reneerouleau.com","path":"/","provider":"Google","firstParty":false,"retention":"3 month(s)","expires":3,"unit":"declMonths","purpose":{"en":"Cookie is placed by Google Tag Manager to track conversions."}},{"name":"test_cookie","type":"http","domain":".doubleclick.net","path":"/","provider":"Google","firstParty":false,"retention":"15 minute(s)","expires":15,"unit":"declMinutes","purpose":{"en":"To measure the visitorsâ actions after they click through from an advert. Expires after each visit."}},{"name":"_ttp","type":"http","domain":".tiktok.com","path":"/","provider":"TikTok","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"To measure and improve the performance of your advertising campaigns and to personalize the user's experience (including ads) on TikTok."}},{"name":"_fbp","type":"http","domain":".reneerouleau.com","path":"/","provider":"Facebook","firstParty":false,"retention":"3 month(s)","expires":3,"unit":"declMonths","purpose":{"en":"Cookie is placed by Facebook to track visits across websites."}},{"name":"__kla_id","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Klaviyo","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Tracks when someone clicks through a Klaviyo email to your website."}},{"name":"_tt_enable_cookie","type":"http","domain":".reneerouleau.com","path":"/","provider":"TikTok","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Used to identify a visitor."}},{"name":"_ttp","type":"http","domain":".reneerouleau.com","path":"/","provider":"TikTok","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"To measure and improve the performance of your advertising campaigns and to personalize the user's experience (including ads) on TikTok."}},{"name":"_pin_unauth","type":"http","domain":".reneerouleau.com","path":"/","provider":"Pinterest","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"Used to group actions for users who cannot be identified by Pinterest."}},{"name":"TapAd_TS","type":"http","domain":".tapad.com","path":"/","provider":"Tapad","firstParty":false,"retention":"2 month(s)","expires":2,"unit":"declMonths","purpose":{"en":"Used to determine what type of devices is used by a user."}},{"name":"TapAd_DID","type":"http","domain":".tapad.com","path":"/","provider":"Tapad","firstParty":false,"retention":"2 month(s)","expires":2,"unit":"declMonths","purpose":{"en":"Used to determine what type of devices is used by a user."}},{"name":"TapAd_3WAY_SYNCS","type":"http","domain":".tapad.com","path":"/","provider":"Tapad","firstParty":false,"retention":"2 month(s)","expires":2,"unit":"declMonths","purpose":{"en":"Used for data-synchronization with advertisement networks."}},{"name":"wpm-domain-test","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Shopify","firstParty":true,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Used to test the storage of parameters about products added to the cart or payment currency"}},{"name":"IDE","type":"http","domain":".doubleclick.net","path":"/","provider":"Google","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":"To measure the visitorsâ actions after they click through from an advert. Expires after 1 year."}},{"name":"wpm-domain-test","type":"http","domain":"com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Used to test the storage of parameters about products added to the cart or payment currency"}},{"name":"wpm-domain-test","type":"http","domain":"reneerouleau.com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":"Used to test the storage of parameters about products added to the cart or payment currency"}}],"8":[{"name":"_li_ss","type":"http","domain":"i.liadm.com","path":"/s","provider":"Unknown","firstParty":false,"retention":"1 month(s)","expires":1,"unit":"declMonths","purpose":{"en":""}},{"name":"_hjFirstSeen","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}},{"name":"_hjAbsoluteSessionInProgress","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}},{"name":"ul_cookie_status","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 ","expires":1,"unit":"declSession","purpose":{"en":""}},{"name":"_hjIncludedInSessionSample_1139632","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}},{"name":"__cflb","type":"http","domain":"my.jst.ai","path":"/","provider":"Unknown","firstParty":false,"retention":"40 minute(s)","expires":40,"unit":"declMinutes","purpose":{"en":""}},{"name":"_wiser_csrf_evm","type":"http","domain":".wiser.expertvillagemedia.com","path":"/","provider":"Unknown","firstParty":false,"retention":"Session","expires":-54,"unit":"declYears","purpose":{"en":""}},{"name":"_ccpx_u","type":"http","domain":"a.clickcertain.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"ar_debug","type":"http","domain":".pinterest.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ccpx","type":"http","domain":"a.clickcertain.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ccpx_cl4683ahycxovk9daef55f%2dca0a%2d4045%2db553%2d9ef01a971e6a","type":"http","domain":"a.clickcertain.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ju_v","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Unknown","firstParty":true,"retention":"29 minute(s)","expires":29,"unit":"declMinutes","purpose":{"en":""}},{"name":"AMP_9bdc728a74","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ju_dm","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 day(s)","expires":1,"unit":"declDays","purpose":{"en":""}},{"name":"_ju_dn","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 month(s)","expires":1,"unit":"declMonths","purpose":{"en":""}},{"name":"rmuid","type":"http","domain":".linksynergy.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"bito","type":"http","domain":".bidr.io","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"bitoIsSecure","type":"http","domain":".bidr.io","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}}
241,{"name":"_ps_session","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 day(s)","expires":1,"unit":"declDays","purpose":{"en":""}},{"name":"tuid","type":"http","domain":".a.usbrowserspeed.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"lidid","type":"http","domain":".liadm.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"__cflb","type":"http","domain":"aly.jst.ai","path":"/","provider":"Unknown","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}},{"name":"_ju_dc","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}},{"name":"_ju_pn","type":"http","domain":".reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"en":""}},{"name":"_hjTLDTest","type":"http","domain":"reneerouleau.com","path":"/","provider":"Unknown","firstParty":false,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":""}},{"name":"AMP_TEST","type":"http","domain":"www.reneerouleau.com","path":"/","provider":"Unknown","firstParty":true,"retention":"Session","expires":1,"unit":"declSeconds","purpose":{"en":""}},{"name":"_ccpx_24c7571975f139c","type":"http","domain":"a.clickcertain.com","path":"/","provider":"Unknown","firstParty":false,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"en":""}}]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","adwordsId":"","isActive":true,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":0,"useNativeChannel":true},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":true,"cmp":true,"ccpa":true},"klaviyoIsActive":false,"gpcIsActive":false,"defaultBlocked":0,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}; 242 243 window.addEventListener('DOMContentLoaded', function(){ 244 const script = document.createElement('script'); 245 246 script.src = "https://cdn.shopify.com/extensions/01a0d309-5aa0-76cf-9f48-2a42b2760403/gdpr-cookie-consent-411/assets/pandectes-core.js"; 247 248 script.defer = true; 249 document.body.appendChild(script); 250 }) 251 </script>
251 252 253 254 255 256 257 258 259<!-- END app block --><!-- BEGIN app block: shopify://apps/eg-auto-add-to-cart/blocks/app-embed/0f7d4f74-1e89-4820-aec4-6564d7e535d2 --> 260 261 262 263 264 265 266 267 268 269 270 271 272
272<script 273 async 274 type="text/javascript" 275 src="https://cdn.506.io/eg/script.js?shop=renee-rouleau-quiz.myshopify.com&v=12" 276 ></script>
276 277 278 279 280 281 <meta id="easygift-shop" itemid="c2hvcF8kXzE3OTAyNzU0NzY=" content="{"isInstalled":true,"installedOn":"2026-08-10T15:14:02.391Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"fontFamily":null,"headerFontSize":null,"headerText":"","imageUrl":null,"padding":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderFontSize":null,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"cssStyles":null,"fontFamily":null,"headerFontSize":null,"padding":null,"primaryColor":"#000000","subHeaderFontSize":null},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"backgroundColor":"#FFFFFF","borderRadius":null,"cssStyles":null,"duration":null,"fontFamily":null,"hasCustomizations":false,"headerFontSize":null,"padding":null,"primaryColor":null,"subHeaderFontSize":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"addButtonText":null,"backgroundColor":"#FFFFFF","bodyColor":null,"bodyFontFamily":null,"bodyFontSize":null,"borderRadius":null,"buttonTextColor":null,"closeModalOutsideClick":true,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"headerFontFamily":null,"headerFontSize":null,"imageUrl":null,"outOfStockButtonText":null,"padding":null,"priceShowZeroDecimals":true,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subHeaderFontSize":null,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"customCSS":null,"decodePayload":false,"delayUpdates":2000,"disableRedirectAfterFormSubmit":false,"enableBuyNowInterceptions":true,"fetchCartDataBeforeRequest":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"hideGiftedPropertyText":false,"reApplyValueBasedRulesInCart":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":true,"useFinalPrice":true,"useFinalPriceGetEntireCart":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":true},"translations":null,"defaultLocale":"en","shopDomain":"www.reneerouleau.com"}"> 282 283
284<script defer> 285 (async function() { 286 try { 287 288 const blockVersion = "v3" 289 if (blockVersion != "v3") { 290 return 291 } 292 293 let metaErrorFlag = false; 294 if (metaErrorFlag) { 295 return 296 } 297 298 // Parse metafields as JSON 299 const metafields = {}; 300 301 // Process metafields in JavaScript 302 let savedRulesArray = []; 303 for (const [key, value] of Object.entries(metafields)) { 304 if (value) { 305 for (const prop in value) { 306 // avoiding Object.Keys for performance gain -- no need to make an array of keys. 307 savedRulesArray.push(value); 308 break; 309 } 310 } 311 } 312 313 const metaTag = document.createElement('meta'); 314 metaTag.id = 'easygift-rules'; 315 metaTag.content = JSON.stringify(savedRulesArray); 316 metaTag.setAttribute('itemid', 'cnVsZXNfJF8xNzkwMjc1NDc2'); 317 318 document.head.appendChild(metaTag); 319 } catch (err) { 320 321 } 322 })(); 323</script>
323 324 325 326
326<script 327 type="text/javascript" 328 defer 329 > 330 331 (function () { 332 try { 333 window.EG_INFO = window.EG_INFO || {}; 334 var shopInfo = {"isInstalled":true,"installedOn":"2026-08-10T15:14:02.391Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"fontFamily":null,"headerFontSize":null,"headerText":"","imageUrl":null,"padding":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderFontSize":null,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"cssStyles":null,"fontFamily":null,"headerFontSize":null,"padding":null,"primaryColor":"#000000","subHeaderFontSize":null},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"backgroundColor":"#FFFFFF","borderRadius":null,"cssStyles":null,"duration":null,"fontFamily":null,"hasCustomizations":false,"headerFontSize":null,"padding":null,"primaryColor":null,"subHeaderFontSize":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"addButtonText":null,"backgroundColor":"#FFFFFF","bodyColor":null,"bodyFontFamily":null,"bodyFontSize":null,"borderRadius":null,"buttonTextColor":null,"closeModalOutsideClick":true,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"headerFontFamily":null,"headerFontSize":null,"imageUrl":null,"outOfStockButtonText":null,"padding":null,"priceShowZeroDecimals":true,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subHeaderFontSize":null,"subscriptionLabel":null},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"customCSS":null,"decodePayload":false,"delayUpdates":2000,"disableRedirectAfterFormSubmit":false,"enableBuyNowInterceptions":true,"fetchCartDataBeforeRequest":false,"fetchProductInfoFromSavedDomain":false,"hideAlertsOnFrontend":false,"hideGiftedPropertyText":false,"reApplyValueBasedRulesInCart":false,"removeEGPropertyFromSplitActionLineItems":false,"removeProductsAddedFromExpiredRules":true,"useFinalPrice":true,"useFinalPriceGetEntireCart":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":true},"translations":null,"defaultLocale":"en","shopDomain":"www.reneerouleau.com"}; 335 var productRedirectionEnabled = shopInfo.settings.scriptSettings.productPageRedirection.enabled; 336 if (["Unlimited", "Enterprise"].includes(shopInfo.subscriptionName) && productRedirectionEnabled) { 337 var products = shopInfo.settings.scriptSettings.productPageRedirection.products; 338 if (products.length > 0) { 339 var productIds = products.map(function(prod) { 340 var productGid = prod.id; 341 var productIdNumber = parseInt(productGid.split('/').pop()); 342 return productIdNumber; 343 }); 344 var productInfo = {"id":7574678405179,"title":"Skin Drink I.V.","handle":"skin-drink-i-v","description":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e","published_at":"2026-06-22T07:37:01-05:00","created_at":"2026-04-01T15:27:08-05:00","vendor":"Renée Rouleau Professional Skin Care","type":"","tags":[],"price":7250,"price_min":7250,"price_max":7250,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43374648328251,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"79494","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Skin Drink I.V.","public_title":null,"options":["Default Title"],"price":7250,"weight":71,"compare_at_price":null,"inventory_quantity":42,"inventory_management":"shopify","inventory_policy":"continue","barcode":"648260795115","requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":26281902
34467,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628223035,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628255803,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"],"featured_image":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","options":["Title"],"media":[{"alt":null,"id":27364451516475,"position":1,"preview_image":{"aspect_ratio":0.563,"height":1920,"width":1080,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/preview_images\/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924"},"aspect_ratio":0.563,"duration":81000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.SD-480p-1.5Mbps-91873986.mp4?v=0","width":270},{"format":"mp4","height":1080,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-1080p-7.2Mbps-91873986.mp4?v=0","width":606},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-720p-4.5Mbps-91873986.mp4?v=0","width":404},{"format":"m3u8","height":1080,"mime_type":"application\/x-mpegURL","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.m3u8?v=0","width":606}]},{"alt":null,"id":26688046530619,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","width":1024},{"alt":null,"id":26596526981179,"position":3,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","width":1360},{"alt":null,"id":26734009319483,"position":4,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","width":1360},{"alt":null,"id":26903019061307,"position":5,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","width":1360},{"alt":null,"id":27196724641851,"position":6,"preview_image":{"aspect_ratio":0.919,"height":1480,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"},"aspect_ratio":0.919,"height":1480,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212","width":1360}
344],"requires_selling_plan":false,"selling_plan_groups":[{"id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2","name":"Skin Drink I.V.","options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"values":["30 Day(s)","60 Day(s)","90 Day(s)"]}],"selling_plans":[{"id":2628190267,"name":"Delivery Every 30 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"30 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628223035,"name":"Delivery Every 60 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"60 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628255803,"name":"Delivery Every 90 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"90 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e"}; 345 var isProductInList = productIds.includes(productInfo.id); 346 if (isProductInList) { 347 var redirectionURL = shopInfo.settings.scriptSettings.productPageRedirection.redirectionURL; 348 if (redirectionURL) { 349 window.location = redirectionURL; 350 } 351 } 352 } 353 } 354 355 356 357 var rawPriceString = "72.50"; 358 359 rawPriceString = rawPriceString.trim(); 360 361 var normalisedPrice; 362 363 function processNumberString(str) { 364 // Helper to find the rightmost index of '.', ',' or "'" 365 const lastDot = str.lastIndexOf('.'); 366 const lastComma = str.lastIndexOf(','); 367 const lastApostrophe = str.lastIndexOf("'"); 368 const lastIndex = Math.max(lastDot, lastComma, lastApostrophe); 369 370 // If no punctuation, remove any stray spaces and return 371 if (lastIndex === -1) { 372 return str.replace(/[.,'\s]/g, ''); 373 } 374 375 // Extract parts 376 const before = str.slice(0, lastIndex).replace(/[.,'\s]/g, ''); 377 const after = str.slice(lastIndex + 1).replace(/[.,'\s]/g, ''); 378 379 // If the after part is 1 or 2 digits, treat as decimal 380 if (after.length > 0 && after.length <= 2) { 381 return `${before}.${after}`; 382 } 383 384 // Otherwise treat as integer with thousands separator removed 385 return before + after; 386 } 387 388 normalisedPrice = processNumberString(rawPriceString) 389 390 window.EG_INFO["43374648328251"] = { 391 "price": `${normalisedPrice}`, 392 "presentmentPrices": { 393 "edges": [ 394 { 395 "node": { 396 "price": { 397 "amount": `${normalisedPrice}`, 398 "currencyCode": "USD" 399 } 400 } 401 } 402 ] 403 }, 404 "sellingPlanGroups": { 405 "edges": [ 406 407 { 408 "node": { 409 "sellingPlans": { 410 "edges": [ 411 412 { 413 "node": { 414 "id": "gid://shopify/SellingPlan/2628190267", 415 "pricingPolicies": [ 416 417 { 418 419 "adjustmentType": "PERCENTAGE", 420 "adjustmentValue": { 421 "percentage": 10 422 } 423 424 } 425 426 ] 427 } 428 }, 429 430 { 431 "node": { 432 "id": "gid://shopify/SellingPlan/2628223035", 433 "pricingPolicies": [ 434 435 { 436 437 "adjustmentType": "PERCENTAGE", 438 "adjustmentValue": { 439 "percentage": 10 440 } 441 442 } 443 444 ] 445 } 446 }, 447 448 { 449 "node": { 450 "id": "gid://shopify/SellingPlan/2628255803", 451 "pricingPolicies": [ 452 453 { 454 455 "adjustmentType": "PERCENTAGE", 456 "adjustmentValue": { 457 "percentage": 10 458 } 459 460 } 461 462 ] 463 } 464 } 465 466 ] 467 } 468 } 469 } 470 471 ] 472 }, 473 "product": { 474 "id": "gid://shopify/Product/7574678405179", 475 "tags": [], 476 "collections": { 477 "pageInfo": { 478 "hasNextPage": false 479 }, 480 "edges": [ 481 482 { 483 "node": { 484 "id": "gid://shopify/Collection/303461859387" 485 } 486 }, 487 488 { 489 "node": { 490 "id": "gid://shopify/Collection/353563846" 491 } 492 }, 493 494 { 495 "node": { 496 "id": "gid://shopify/Collection/313465897019" 497 } 498 }, 499 500 { 501 "node": { 502 "id": "gid://shopify/Collection/385895686" 503 } 504 }, 505 506 { 507 "node": { 508 "id": "gid://shopify/Collection/385899078" 509 } 510 }, 511 512 { 513 "node": { 514 "id": "gid://shopify/Collection/385899334" 515 } 516 }, 517 518 { 519 "node": { 520 "id": "gid://shopify/Collection/385899910" 521 } 522 }, 523 524 { 525 "node": { 526 "id": "gid://shopify/Collection/385900486" 527 } 528 }, 529 530 { 531 "node": { 532 "id": "gid://shopify/Collection/385901446" 533 } 534 }, 535 536 { 537 "node": { 538 "id": "gid://shopify/Collection/353564806" 539 } 540 } 541 542 ] 543 } 544 }, 545 "id": "43374648328251", 546 "timestamp": 1790275476 547 }; 548 549 } catch(err) { 550 return 551 }}
551)() 552 </script>
552 553 554 555 556<!-- END app block --><!-- BEGIN app block: shopify://apps/checkmate/blocks/checked_network/697a3444-1374-4f13-ba8c-ec03db25ebf0 --> 557
557<script 558 src='/apps/cm/v1/load?source=embed' 559 async 560 ></script>
560 561 562 563 564<!-- END app block --><!-- BEGIN app block: shopify://apps/okendo/blocks/theme-settings/bb689e69-ea70-4661-8fb7-ad24a2e23c29 --><!-- BEGIN app snippet: header-metafields --> 565 566 567 568 569 570 571 572 573 574 575 576 577 578 <style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/okendo-reviews-styles.6dbb2446.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-star-rating.4cb378a8.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-reviews-keywords.0942444f.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-reviews-summary.a0c9d7d6.css"></style><style type="text/css">.okeReviews[data-oke-container],div.okeReviews{font-size:14px;font-size:var(--oke-text-regular);font-weight:400;font-family:var(--oke-text-fontFamily);line-height:1.6}.okeReviews[data-oke-container] *,.okeReviews[data-oke-container] :after,.okeReviews[data-oke-container] :before,div.okeReviews *,div.okeReviews :after,div.okeReviews :before{box-sizing:border-box}.okeReviews[data-oke-container] h1,.okeReviews[data-oke-container] h2,.okeReviews[data-oke-container] h3,.okeReviews[data-oke-container] h4,.okeReviews[data-oke-container] h5,.okeReviews[data-oke-container] h6,div.okeReviews h1,div.okeReviews h2,div.okeReviews h3,div.okeReviews h4,div.okeReviews h5,div.okeReviews h6{font-size:1em;font-weight:400;line-height:1.4;margin:0}.okeReviews[data-oke-container] ul,div.okeReviews ul{padding:0;margin:0}.okeReviews[data-oke-container] li,div.okeReviews li{list-style-type:none;padding:0}.okeReviews[data-oke-container] p,div.okeReviews p{line-height:1.8;margin:0 0 4px}.okeReviews[data-oke-container] p:last-child,div.okeReviews p:last-child{margin-bottom:0}.okeReviews[data-oke-container] a,div.okeReviews a{text-decoration:none;color:inherit}.okeReviews[data-oke-container] button,div.okeReviews button{border-radius:0;border:0;box-shadow:none;margin:0;width:auto;min-width:auto;padding:0;background-color:transparent;min-height:auto}.okeReviews[data-oke-container] button,.okeReviews[data-oke-container] input,.okeReviews[data-oke-container] select,.okeReviews[data-oke-container] textarea,div.okeReviews button,div.okeReviews input,div.okeReviews select,div.okeReviews textarea{font-family:inherit;font-size:1em}.okeReviews[data-oke-container] label,.okeReviews[data-oke-container] select,div.okeReviews label,div.okeReviews select{display:inline}.okeReviews[data-oke-container] select,div.okeReviews select{width:auto}.okeReviews[data-oke-container] article,.okeReviews[data-oke-container] aside,div.okeReviews article,div.okeReviews aside{margin:0}.okeReviews[data-oke-container] table,div.okeReviews table{background:transparent;border:0;border-collapse:collapse;border-spacing:0;font-family:inherit;font-size:1em;table-layout:auto}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,.okeReviews[data-oke-container] table tr,div.okeReviews table td,div.okeReviews table th,div.okeReviews table tr{border:0;font-family:inherit;font-size:1em}.okeReviews[data-oke-container] table td,.okeReviews[data-oke-container] table th,div.okeReviews table td,div.okeReviews table th{background:transparent;font-weight:400;letter-spacing:normal;padding:0;text-align:left;text-transform:none;vertical-align:middle}.okeReviews[data-oke-container] table tr:hover td,.okeReviews[data-oke-container] table tr:hover th,div.okeReviews table tr:hover td,div.okeReviews table tr:hover th{background:transparent}.okeReviews[data-oke-container] fieldset,div.okeReviews fieldset{border:0;padding:0;margin:0;min-width:0}.okeReviews[data-oke-container] img,.okeReviews[data-oke-container] svg,div.okeReviews img,div.okeReviews svg{max-width:none}.okeReviews[data-oke-container] div:empty,div.okeReviews div:empty{display:block}.okeReviews[data-oke-container] .oke-icon:before,div.okeReviews .oke-icon:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit}.okeReviews[data-oke-container] .oke-icon--select-arrow:before,div.okeReviews .oke-icon--select-arrow:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--loading:before,div.okeReviews .oke-icon--loading:before{content:"î¤"}
578.okeReviews[data-oke-container] .oke-icon--pencil:before,div.okeReviews .oke-icon--pencil:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--filter:before,div.okeReviews .oke-icon--filter:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--play:before,div.okeReviews .oke-icon--play:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--tick-circle:before,div.okeReviews .oke-icon--tick-circle:before{content:"î¤
"}.okeReviews[data-oke-container] .oke-icon--chevron-left:before,div.okeReviews .oke-icon--chevron-left:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-right:before,div.okeReviews .oke-icon--chevron-right:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--thumbs-down:before,div.okeReviews .oke-icon--thumbs-down:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--thumbs-up:before,div.okeReviews .oke-icon--thumbs-up:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--close:before,div.okeReviews .oke-icon--close:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-up:before,div.okeReviews .oke-icon--chevron-up:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--chevron-down:before,div.okeReviews .oke-icon--chevron-down:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--star:before,div.okeReviews .oke-icon--star:before{content:"î¤"}.okeReviews[data-oke-container] .oke-icon--magnifying-glass:before,div.okeReviews .oke-icon--magnifying-glass:before{content:"î¤"}@font-face{font-family:oke-widget-icons;src:url(https://cdn-static.okendo.io/reviews-widget-plus/fonts/oke-widget-icons.ttf) format("truetype"),url(https://cdn-static.okendo.io/reviews-widget-plus/fonts/oke-widget-icons.woff) format("woff"),url(https://cdn-static.okendo.io/reviews-widget-plus/img/oke-widget-icons.bc0d6b0a.svg) format("svg");font-weight:400;font-style:normal;font-display:swap}.okeReviews[data-oke-container] .oke-button,div.okeReviews .oke-button{display:inline-block;border-style:solid;border-color:var(--oke-button-borderColor);border-width:var(--oke-button-borderWidth);background-color:var(--oke-button-backgroundColor);line-height:1;padding:12px 24px;margin:0;border-radius:var(--oke-button-borderRadius);color:var(--oke-button-textColor);text-align:center;position:relative;font-weight:var(--oke-button-fontWeight);font-size:var(--oke-button-fontSize);font-family:var(--oke-button-fontFamily);outline:0}.okeReviews[data-oke-container] .oke-button-text,.okeReviews[data-oke-container] .oke-button .oke-icon,div.okeReviews .oke-button-text,div.okeReviews .oke-button .oke-icon{line-height:1}.okeReviews[data-oke-container] .oke-button.oke-is-loading,div.okeReviews .oke-button.oke-is-loading{position:relative}.okeReviews[data-oke-container] .oke-button.oke-is-loading:before,div.okeReviews .oke-button.oke-is-loading:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:undefined;font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-button.oke-is-loading>*,div.okeReviews .oke-button.oke-is-loading>*{opacity:0}.okeReviews[data-oke-container] .oke-button.oke-is-active,div.okeReviews .oke-button.oke-is-active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading),div.okeReviews .oke-button:not(.oke-is-loading){cursor:pointer}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{background-color:var(--oke-button-backgroundColorHover);color:var(--oke-button-textColorHover);border-color:var(--oke-button-borderColorHover);box-shadow:0 0 0 2px var(--oke-button-backgroundColorHover)}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):active,.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):active,div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover:active{background-color:var(--oke-button-backgroundColorActive);color:var(--oke-button-textColorActive);border-color:var(--oke-button-borderColorActive)}.okeReviews[data-oke-container] .oke-title,div.okeReviews .oke-title{font-weight:var(--oke-title-fontWeight);font-size:var(--oke-title-fontSize);font-family:var(--oke-title-fontFamily)}.okeReviews[data-oke-container] .oke-bodyText,div.okeReviews .oke-bodyText{font-weight:var(--oke-bodyText-fontWeight);font-size:var(--oke-bodyText-fontSize);font-family:var(--oke-bodyText-fontFamily)}.okeReviews[data-oke-container] .oke-linkButton,div.okeReviews .oke-linkButton{curs
578or:pointer;font-weight:700;pointer-events:auto;text-decoration:underline}.okeReviews[data-oke-container] .oke-linkButton:hover,div.okeReviews .oke-linkButton:hover{text-decoration:none}.okeReviews[data-oke-container] .oke-readMore,div.okeReviews .oke-readMore{cursor:pointer;color:inherit;text-decoration:underline}.okeReviews[data-oke-container] .oke-select,div.okeReviews .oke-select{cursor:pointer;background-repeat:no-repeat;background-position-x:100%;background-position-y:50%;border:none;padding:0 24px 0 12px;-moz-appearance:none;appearance:none;color:inherit;-webkit-appearance:none;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='currentColor' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");outline-offset:4px}.okeReviews[data-oke-container] .oke-select:disabled,div.okeReviews .oke-select:disabled{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='%239a9db1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.okeReviews[data-oke-container] .oke-loader,div.okeReviews .oke-loader{position:relative}.okeReviews[data-oke-container] .oke-loader:before,div.okeReviews .oke-loader:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:var(--oke-text-secondaryColor);font-size:12px;display:inline-block;animation:oke-spin 1s linear infinite;position:absolute;width:12px;height:12px;top:0;left:0;bottom:0;right:0;margin:auto}.okeReviews[data-oke-container] .oke-a11yText,div.okeReviews .oke-a11yText{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.okeReviews[data-oke-container] .oke-hidden,div.okeReviews .oke-hidden{display:none}.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2147483647;max-height:100%;background-color:rgba(0,0,0,.5);padding:40px 0 12px}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal,div.okeReviews .oke-modal{display:flex;align-items:center;padding:48px 0}}.okeReviews[data-oke-container] .oke-modal ::-moz-selection,div.okeReviews .oke-modal ::-moz-selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal ::selection,div.okeReviews .oke-modal ::selection{background-color:rgba(39,45,69,.2)}.okeReviews[data-oke-container] .oke-modal,.okeReviews[data-oke-container] .oke-modal p,div.okeReviews .oke-modal,div.okeReviews .oke-modal p{color:#272d45}.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{background-color:#fff;margin:auto;position:relative;will-change:transform,opacity;width:calc(100% - 24px)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal-content,div.okeReviews .oke-modal-content{max-width:1000px}}.okeReviews[data-oke-container] .oke-modal-close,div.okeReviews .oke-modal-close{cursor:pointer;position:absolute;width:32px;height:32px;top:-32px;padding:4px;right:-4px;line-height:1}.okeReviews[data-oke-container] .oke-modal-close:before,div.okeReviews .oke-modal-close:before{font-family:oke-widget-icons!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"î¤";color:#fff;font-size:24px;display:inline-block;width:24px;height:24px}.okeReviews[data-oke-container] .oke-modal-overlay,div.okeReviews .oke-modal-overlay{background-color:rgba(43,46,56,.9)}@media only screen and (min-width:1024px){.okeReviews[data-oke-container] .oke-modal--large .oke-modal-content,div.okeReviews .oke-modal--large .oke-modal-content{max-width:1200px}}.okeReviews[data-oke-container] .oke-modal .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-helpful-vote-button,.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-date,div.okeReviews .oke-modal .oke-helpful,div.okeReviews .oke-modal .oke-helpful-vote-button,div.okeReviews .oke-modal .oke-reviewContent-date{color:#676986}.oke-modal .okeReviews[data-oke-container].oke-w,.oke-modal div.okeReviews.oke-w{color:#272d45}.okeReviews[data-oke-container] .oke-tag,div.okeReviews .oke-tag{align-items:center;color:#272d45;display:flex;font-size:var(--oke-text-small);font-weight:600;text-align:left;position:relative;z-index:2;background-color:#f4f4f6;padding:4px 6px;border:none;border-radius:4px;gap:6px;line-height:1}.okeReviews[data-oke-container] .oke-tag svg,div.okeReviews .oke-tag svg{fill:currentColor;height:1rem}.okeReviews[data-oke-container] .hooper,div.okeReviews .hooper{height:auto}.okeReviews--left{text-align:left}.okeReviews--right{text-align:right}.okeReviews--center{text-align:center}.okeReviews :not([tabindex="-1"]):focus-visible{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.is-oke-modalOpen{overflow:hidden!important}img.oke-is-error{background-color:var(--oke-shadingColor);background-size:cover;background-position:50% 50%;box-shadow:inset 0 0 0 1px var(--oke-border-color)}@keyframes oke-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes oke-fade-in{0%{opacity:0}
578to{opacity:1}}.layout-panel-flex>div:has([data-oke-container]){width:100%} 579.oke-stars{line-height:1;position:relative;display:inline-block}.oke-stars-background svg{overflow:visible}.oke-stars-foreground{overflow:hidden;position:absolute;top:0;left:0}.oke-sr{display:inline-block;padding-top:var(--oke-starRating-spaceAbove);padding-bottom:var(--oke-starRating-spaceBelow)}.oke-sr .oke-is-clickable{cursor:pointer}.oke-sr--hidden{display:none}.oke-sr-count,.oke-sr-rating,.oke-sr-stars{display:inline-block;vertical-align:middle}.oke-sr-stars{line-height:1;margin-right:8px}.oke-sr-rating{display:none}.oke-sr-count--brackets:before{content:"("}.oke-sr-count--brackets:after{content:")"} 580.oke-rk{display:block}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading,div.okeReviews .oke-reviewsKeywords-heading{font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsKeywords-heading-skeleton,div.okeReviews .oke-reviewsKeywords-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list,div.okeReviews .oke-reviewsKeywords-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category,div.okeReviews .oke-reviewsKeywords-list-category{background-color:var(--oke-filter-backgroundColor);color:var(--oke-filter-textColor);border:1px solid var(--oke-filter-borderColor);border-radius:var(--oke-filter-borderRadius);padding:6px 16px;transition:background-color .1s ease-out,border-color .1s ease-out;white-space:nowrap}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-clickable,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-clickable{cursor:pointer}.okeReviews[data-oke-container] .oke-reviewsKeywords-list-category.oke-is-active,div.okeReviews .oke-reviewsKeywords-list-category.oke-is-active{background-color:var(--oke-filter-backgroundColorActive);color:var(--oke-filter-textColorActive);border-color:var(--oke-filter-borderColorActive)}.okeReviews[data-oke-container] .oke-reviewsKeywords .oke-translateButton,div.okeReviews .oke-reviewsKeywords .oke-translateButton{margin-top:12px} 581.oke-rs{display:block}.oke-rs .oke-reviewsSummary.oke-is-preRender .oke-reviewsSummary-summary{-webkit-mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;mask:linear-gradient(180deg,#000 0,#000 40%,transparent 95%,transparent 0) 100% 50%/100% 100% repeat-x;max-height:150px}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip,div.okeReviews .oke-reviewsSummary .oke-tooltip{display:inline-block;font-weight:400}.okeReviews[data-oke-container] .oke-reviewsSummary .oke-tooltip-trigger,div.okeReviews .oke-reviewsSummary .oke-tooltip-trigger{height:15px;width:15px;overflow:hidden;transform:translateY(-10%)}.okeReviews[data-oke-container] .oke-reviewsSummary-heading,div.okeReviews .oke-reviewsSummary-heading{align-items:center;-moz-column-gap:4px;column-gap:4px;display:inline-flex;font-weight:700;margin-bottom:8px}.okeReviews[data-oke-container] .oke-reviewsSummary-heading-skeleton,div.okeReviews .oke-reviewsSummary-heading-skeleton{height:calc(var(--oke-button-fontSize) + 4px);width:150px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon,div.okeReviews .oke-reviewsSummary-icon{fill:currentColor;font-size:14px}.okeReviews[data-oke-container] .oke-reviewsSummary-icon svg,div.okeReviews .oke-reviewsSummary-icon svg{vertical-align:baseline}.okeReviews[data-oke-container] .oke-reviewsSummary-summary.oke-is-truncated,div.okeReviews .oke-reviewsSummary-summary.oke-is-truncated{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}</style> 582 583
583<script type="application/json" id="oke-reviews-settings">{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","analyticsSettings":{"isWidgetOnScreenTrackingEnabled":false,"provider":"none"},"locale":"en","localeAndVariant":{"code":"en"},"matchCustomerLocale":false,"widgetSettings":{"global":{"dateSettings":{"format":{"type":"relative"}},"hideOkendoBranding":true,"stars":{"backgroundColor":"#E5E5E5","foregroundColor":"#FFCF2A","interspace":2,"shape":{"type":"default"},"showBorder":false},"showIncentiveIndicator":false,"searchEnginePaginationEnabled":false,"font":{"fontType":"inherit-from-page"}},"homepageCarousel":{"slidesPerPage":{"large":3,"medium":2},"totalSlides":12,"scrollBehaviour":"slide","style":{"showDates":true,"border":{"color":"#E5E5EB","width":{"value":1,"unit":"px"}},"bodyFont":{"hasCustomFontSettings":false},"headingFont":{"hasCustomFontSettings":false},"arrows":{"color":"#676986","size":{"value":24,"unit":"px"},"enabled":true},"avatar":{"backgroundColor":"#E5E5EB","placeholderTextColor":"#2C3E50","size":{"value":48,"unit":"px"},"enabled":false},"media":{"size":{"value":80,"unit":"px"},"imageGap":{"value":4,"unit":"px"},"enabled":false},"stars":{"height":{"value":18,"unit":"px"},"globalOverrideSettings":{"backgroundColor":"#E5E5E5","foregroundColor":"#FFCF2A"}},"productImageSize":{"value":48,"unit":"px"},"layout":{"name":"default","reviewDetailsPosition":"below","showProductName":false,"showAttributeBars":false,"showProductDetails":"only-when-grouped"},"highlightColor":"#0E7A82","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#2C3E50","fontSizeRegular":{"value":14,"unit":"px"},"fontSizeSmall":{"value":12,"unit":"px"},"secondaryColor":"#676986"},"spaceBelow":{"value":20,"unit":"px"}},"defaultSort":"rating desc","autoPlay":false,"truncation":{"bodyMaxLines":4,"truncateAll":false,"enabled":true}},"mediaCarousel":{"minimumImages":1,"linkText":"Read More","stars":{"backgroundColor":"#E5E5E5","foregroundColor":"#FFCF2A","height":{"value":12,"unit":"px"}},"autoPlay":false,"slideSize":"medium","arrowPosition":"outside"},"mediaGrid":{"showMoreArrow":{"arrowColor":"#676986","enabled":true,"backgroundColor":"#f4f4f6"},"infiniteScroll":false,"gridStyleDesktop":{"layout":"default-desktop"},"gridStyleMobile":{"layout":"default-mobile"},"linkText":"Read More","stars":{"backgroundColor":"#E5E5E5","foregroundColor":"#FFCF2A","height":{"value":12,"unit":"px"}},"gapSize":{"value":10,"unit":"px"}},"questions":{"initialPageSize":6,"loadMorePageSize":6},"reviewsBadge":{"layout":"large","colorScheme":"dark"},"reviewsTab":{"enabled":false},"reviewsWidget":{"tabs":{"reviews":true,"questions":false},"header":{"columnDistribution":"left","verticalAlignment":"top","blocks":[{"columnWidth":"one-third","modules":[{"name":"rating-average","layout":"two-line"},{"name":"rating-breakdown","backgroundColor":"#F4F4F6","shadingColor":"#20D999","stretchMode":"contain"}],"textAlignment":"left"},{"columnWidth":"one-third","modules":[{"name":"recommended"}],"textAlignment":"left"}]},"style":{"showDates":true,"border":{"color":"#4F5D7E","width":{"value":1,"unit":"px"}},"bodyFont":{"fontSize":{"value":18,"unit":"px"},"fontType":"custom","fontFamily":"Geologica","fontWeight":400,"hasCustomFontSettings":true},"headingFont":{"fontSize":{"value":14,"unit":"px"},"fontType":"custom","fontFamily":"Geologica","fontWeight":700,"hasCustomFontSettings":true},"filters":{"backgroundColorActive":"#444444","backgroundColor":"#FFFFFF","borderColor":"#444444","borderRadius":{"value":100,"unit":"px"},"borderColorActive":"#444444","textColorActive":"#FFFFFF","textColor":"#444444","searchHighlightColor":"#B2F9E9"},"avatar":{"backgroundColor":"#E5E5E5","placeholderTextColor":"#444444","size":{"value":48,"unit":"px"},"enabled":true},"stars":{"height":{"value":21,"unit":"px"},"globalOverrideSettings":{"backgroundColor":"#E5E5E5","foregroundColor":"#20D999"}},"shadingColor":"#FFFFFF","productImageSize":{"value":48,"unit":"px"},"button":{"backgroundColorActive":"#64FCC8","borderColorHover":"#000000","backgroundColor":"#64FCC8","borderColor":"#000000","backgroundColorHover":"#FFFFFF","textColorHover":"#000000","borderRadius":{"value":1,"unit":"px"},"borderWidth":{"value":1,"unit":"px"},"borderColorActive":"#EA8697","textColorActive":"#FFFFFF","textColor":"#000000","font":{"fontSize":{"value":13,"unit":"px"},"fontType":"custom","fontFamily":"Geologica","fontWeight":300,"hasCu
583stomFontSettings":true}},"highlightColor":"#20D999","spaceAbove":{"value":20,"unit":"px"},"text":{"primaryColor":"#444444","fontSizeRegular":{"value":16,"unit":"px"},"fontSizeLarge":{"value":18,"unit":"px"},"fontSizeSmall":{"value":16,"unit":"px"},"secondaryColor":"#444444"},"spaceBelow":{"value":20,"unit":"px"},"attributeBar":{"style":"default","backgroundColor":"#D3D4DD","shadingColor":"#444444","markerColor":"#444444"}},"showWhenEmpty":true,"reviews":{"list":{"layout":{"name":"minimal","showAttributeBars":false,"showProductVariantName":false,"columnAmount":4,"showProductDetails":"never"},"loyalty":{"maxInitialAchievements":3},"initialPageSize":5,"replyTruncation":{"bodyMaxLines":4,"enabled":true},"media":{"layout":"hidden"},"truncation":{"bodyMaxLines":4,"truncateAll":false,"enabled":true},"loadMorePageSize":5},"controls":{"filterMode":"closed","freeTextSearchEnabled":true,"writeReviewButtonEnabled":true,"defaultSort":"rating desc"}}},"starRatings":{"showWhenEmpty":true,"style":{"globalOverrideSettings":{"backgroundColor":"#E5E5E5","foregroundColor":"#000000","interspace":2,"showBorder":false},"spaceAbove":{"value":0,"unit":"px"},"text":{"content":"average-rating","style":"number-slash-5","brackets":false},"singleStar":false,"height":{"value":12,"unit":"px"},"spaceBelow":{"value":0,"unit":"px"}},"clickBehavior":"none"}},"features":{"attributeFiltersEnabled":true,"recorderPlusEnabled":true,"recorderQandaPlusEnabled":true,"reviewsKeywordsEnabled":true,"reviewsSummariesEnabled":true}}</script>
583 584 <style id="oke-css-vars">:root{--oke-widget-spaceAbove:20px;--oke-widget-spaceBelow:20px;--oke-starRating-spaceAbove:0;--oke-starRating-spaceBelow:0;--oke-button-backgroundColor:#64fcc8;--oke-button-backgroundColorHover:#fff;--oke-button-backgroundColorActive:#64fcc8;--oke-button-textColor:#000;--oke-button-textColorHover:#000;--oke-button-textColorActive:#fff;--oke-button-borderColor:#000;--oke-button-borderColorHover:#000;--oke-button-borderColorActive:#ea8697;--oke-button-borderRadius:1px;--oke-button-borderWidth:1px;--oke-button-fontWeight:300;--oke-button-fontSize:13px;--oke-button-fontFamily:Geologica,sans-serif;--oke-border-color:#4f5d7e;--oke-border-width:1px;--oke-text-primaryColor:#444;--oke-text-secondaryColor:#444;--oke-text-small:16px;--oke-text-regular:16px;--oke-text-large:18px;--oke-text-fontFamily:inherit;--oke-avatar-size:48px;--oke-avatar-backgroundColor:#e5e5e5;--oke-avatar-placeholderTextColor:#444;--oke-highlightColor:#20d999;--oke-shadingColor:#fff;--oke-productImageSize:48px;--oke-attributeBar-shadingColor:#444;--oke-attributeBar-borderColor:undefined;--oke-attributeBar-backgroundColor:#d3d4dd;--oke-attributeBar-markerColor:#444;--oke-filter-backgroundColor:#fff;--oke-filter-backgroundColorActive:#444;--oke-filter-borderColor:#444;--oke-filter-borderColorActive:#444;--oke-filter-textColor:#444;--oke-filter-textColorActive:#fff;--oke-filter-borderRadius:100px;--oke-filter-searchHighlightColor:#b2f9e9;--oke-mediaGrid-chevronColor:#676986;--oke-stars-foregroundColor:#ffcf2a;--oke-stars-backgroundColor:#e5e5e5;--oke-stars-borderWidth:0}.oke-reviewCarousel{--oke-stars-foregroundColor:#ffcf2a;--oke-stars-backgroundColor:#e5e5e5;--oke-stars-borderWidth:0}.oke-w,.oke-modal{--oke-stars-foregroundColor:#20d999;--oke-stars-backgroundColor:#e5e5e5;--oke-stars-borderWidth:0}.oke-sr{--oke-stars-foregroundColor:#000;--oke-stars-backgroundColor:#e5e5e5;--oke-stars-borderWidth:0}.oke-w,.oke-modal{--oke-title-fontWeight:700;--oke-title-fontSize:14px;--oke-title-fontFamily:Geologica,sans-serif;--oke-bodyText-fontWeight:400;--oke-bodyText-fontSize:18px;--oke-bodyText-fontFamily:Geologica,sans-serif}</style> 585 <style id="oke-reviews-custom-css">[data-oke-widget] .oke-w,[data-oke-widget] div.okeReviews.oke-w,.oke-sr-count{font-family:"FuturaStdBook",sans-serif}.product-info-container .oke-sr-count{display:none}[data-oke-widget] div.okeReviews p:last-child{line-height:23px}.okeReviews[data-oke-container] .oke-w-reviewer-name,.okeReviews[data-oke-container] .oke-w-reviewer-verified,[data-oke-widget] div.okeReviews .oke-w-reviewer-name,[data-oke-widget] div.okeReviews .oke-w-reviewer-verified{font-weight:400}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading),div.okeReviews .oke-button:not(.oke-is-loading){height:100%}.okeReviews[data-oke-container] .oke-button:not(.oke-is-loading):not(.oke-is-active):hover,[data-oke-widget] div.okeReviews .oke-button:not(.oke-is-loading):not(.oke-is-active):hover{box-shadow:none}.okeReviews[data-oke-container] .oke-modal,.okeReviews[data-oke-container] .oke-modal p,div.okeReviews .oke-modal,div.okeReviews .oke-modal p,.okeReviews[data-oke-container] .oke-modal .oke-helpful,.okeReviews[data-oke-container] .oke-modal .oke-helpful-vote-button,.okeReviews[data-oke-container] .oke-modal .oke-reviewContent-date,div.okeReviews .oke-modal .oke-helpful,div.okeReviews .oke-modal .oke-helpful-vote-button,div.okeReviews .oke-modal .oke-reviewContent-date{color:#444}.okeReviews.oke-w .oke-is-small .oke-button,.okeReviews.oke-w .oke-is-small .oke-w-reviews-writeReview,.okeReviews.oke-w .oke-is-small .oke-qw-askQuestion{width:100%}.okeReviews.oke-w .oke-is-small .oke-w-reviews-writeReview{margin-top:15px}.okeReviews.oke-w .oke-is-small .oke-qw-header-askQuestion{margin-left:0;width:100%}@media screen and (max-width:768px){.product-info-container .oke-sr-count{display:flex;justify-content:center}}.oke-qw-header{align-items:center;margin:10px}.okeReviews[data-oke-container] .oke-questions-main,[data-oke-widget] div.okeReviews .oke-questions-main{padding-top:90px}@media screen and (max-width:425px){.okeReviews[data-oke-container] .oke-questions-main,[data-oke-widget] div.okeReviews .oke-questions-main{padding-top:120px}}</style> 586 <template id="oke-reviews-body-template"><svg id="oke-star-symbols" style="display:none!important" data-oke-id="oke-star-symbols"><symbol id="oke-star-empty" style="overflow:visible;"><path id="star-default--empty" fill="var(--oke-stars-backgroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol><symbol id="oke-star-filled" style="overflow:visible;"><path id="star-default--filled" fill="var(--oke-stars-foregroundColor)" stroke="var(--oke-stars-borderColor)" stroke-width="var(--oke-stars-borderWidth)" d="M3.34 13.86c-.48.3-.76.1-.63-.44l1.08-4.56L.26 5.82c-.42-.36-.32-.7.24-.74l4.63-.37L6.92.39c.2-.52.55-.52.76 0l1.8 4.32 4.62.37c.56.05.67.37.24.74l-3.53 3.04 1.08 4.56c.13.54-.14.74-.63.44L7.3 11.43l-3.96 2.43z"/></symbol></svg></template>
586<script>document.addEventListener('readystatechange',() =>{Array.from(document.getElementById('oke-reviews-body-template')?.content.children)?.forEach(function(child){if(!Array.from(document.body.querySelectorAll('[data-oke-id='.concat(child.getAttribute('data-oke-id'),']'))).length){document.body.prepend(child)}})},{once:true});</script>
586 587 588 589 590 591 592 593 594 595 596 597 598 599 600<!-- END app snippet --> 601 602 <!-- BEGIN app snippet: okendo-reviews-json-ld --> 603<!-- END app snippet --> 604 605<!-- BEGIN app snippet: widget-plus-initialisation-script --> 606 607 608 609 610
610<script async id="okendo-reviews-script" src="https://cdn-static.okendo.io/reviews-widget-plus/js/okendo-reviews.js"></script>
610 611 612<!-- END app snippet --> 613 614 615<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 616 617 618 619 620 621 622 623 624 625 626 627 628
628<script async src="https://static.klaviyo.com/onsite/js/USuK5c/klaviyo.js?company_id=USuK5c"></script>
628 629
629<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
629 630 631 632
632<script id="viewed_product"> 633 if (item == null) { 634 var _learnq = _learnq || []; 635 636 var MetafieldReviews = null 637 var MetafieldYotpoRating = null 638 var MetafieldYotpoCount = null 639 var MetafieldLooxRating = null 640 var MetafieldLooxCount = null 641 var okendoProduct = null 642 var okendoProductReviewCount = null 643 var okendoProductReviewAverageValue = null 644 try { 645 // The following fields are used for Customer Hub recently viewed in order to add reviews. 646 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 647 MetafieldReviews = {"rating":{"scale_min":"1.0","scale_max":"5.0","value":"4.8"},"rating_count":9}; 648 MetafieldYotpoRating = null 649 MetafieldYotpoCount = null 650 MetafieldLooxRating = null 651 MetafieldLooxCount = null 652 653 okendoProduct = {"attributeRatings":[],"fiveStarReviewCount":8,"mediaCount":0,"percentageRecommended":89,"reviewAverageValue":"4.8","reviewCount":9} 654 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 655 if (okendoProduct && 'error' in okendoProduct) { 656 okendoProduct = null 657 } 658 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 659 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 660 } catch (error) { 661 console.error('Error in Klaviyo onsite reviews tracking:', error); 662 } 663 664 var item = { 665 Name: "Skin Drink I.V.", 666 ProductID: 7574678405179, 667 Categories: ["Dry Skin","Serums","Shop All","Skin Type 2","Skin Type 5","Skin Type 6","Skin Type 7","Skin Type 8","Skin Type 9","What's New"], 668 ImageURL: "https://www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_grande.jpg?v=1777079077", 669 URL: "https://www.reneerouleau.com/products/skin-drink-i-v", 670 Brand: "Renée Rouleau Professional Skin Care", 671 Price: "$72.50", 672 Value: "72.50", 673 CompareAtPrice: "$0.00" 674 }; 675 _learnq.push(['track', 'Viewed Product', item]); 676 _learnq.push(['trackViewedItem', { 677 Title: item.Name, 678 ItemId: item.ProductID, 679 Categories: item.Categories, 680 ImageUrl: item.ImageURL, 681 Url: item.URL, 682 Metadata: { 683 Brand: item.Brand, 684 Price: item.Price, 685 Value: item.Value, 686 CompareAtPrice: item.CompareAtPrice 687 }, 688 metafields:{ 689 reviews: MetafieldReviews, 690 yotpo:{ 691 rating: MetafieldYotpoRating, 692 count: MetafieldYotpoCount, 693 }, 694 loox:{ 695 rating: MetafieldLooxRating, 696 count: MetafieldLooxCount, 697 }, 698 okendo: { 699 rating: okendoProductReviewAverageValue, 700 count: okendoProductReviewCount, 701 } 702 } 703 }]); 704 } 705 </script>
705 706 707 708 709 710 711
711<script> 712 window.klaviyoReviewsProductDesignMode = false 713 </script>
713 714 715 716 717 718 719 720 721 722 723<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
724<script type="text/javascript"> 725 (function (c, l, a, r, i, t, y) { 726 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 727 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 728 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 729 730 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 731 if (error) { 732 console.error("Error loading Shopify features:", error); 733 return; 734 } 735 736 c[a]('consentv2', { 737 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 738 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 739 source: 101, 740 }); 741 }); 742 743 l.addEventListener("visitorConsentCollected", function (e) { 744 c[a]('consentv2', { 745 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 746 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 747 source: 101, 748 }); 749 }); 750 })(window, document, "clarity", "script", "wur1brt3qq"); 751</script>
751 752 753 754 755<!-- END app block --><!-- BEGIN app block: shopify://apps/userway-website-accessibility/blocks/uw-widget-extension/bc2d8a34-1a37-451b-ab1a-271bc4e9daa7 --> 756 757 758 759
760<script type="text/javascript" async="" src="https://cdn.userway.org/widget.js?account=h1rCfYhuxl&platfAppInstalledSiteId=2792681&shop=www.reneerouleau.com"></script>
760 761 762<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
763<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15944825,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 763
763
764<script> 765 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 766</script>
vendor: 1 bytes, line 766
766
767<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
767).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 15944825,storefrontBaseUrl: "https://www.reneerouleau.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.reneerouleau.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"1730904123","configuration":"{\"org_id\":\"472bb8e5-4441-41c4-a949-e93b216f8e62\",\"mappings_json\":\"[{\\\"shopifyEvent\\\":\\\"product_added_to_cart\\\",\\\"shortKey\\\":\\\"Vi5YWA\\\",\\\"includeRevenue\\\":true,\\\"includeOrderId\\\":false},{\\\"shopifyEvent\\\":\\\"checkout_completed\\\",\\\"shortKey\\\":\\\"cptZCg\\\",\\\"includeRevenue\\\":true,\\\"includeOrderId\\\":true}]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5adfd93c8a233123cd1a8336b045ca94","type":"APP","apiClientId":376178016257,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
767,{"id":"1689813051","configuration":"{\"projectId\":\"wur1brt3qq\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1309769787","configuration":"{\"accountId\":\"renee-rouleau-quiz.myshopify.com\",\"trackingOrigin\":\"https:\\\/\\\/shdid.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"ebf932729e55df621053f2896dbe44a7","type":"APP","apiClientId":94099111937,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1197441083","configuration":"{\"swymApiEndpoint\":\"https:\/\/swymstore-v3pro-01.swymrelay.com\",\"swymTier\":\"v3pro-01\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5b6f6917e306bc7f24523662663331c0","type":"APP","apiClientId":1350849,"privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"973340731","configuration":"{\"shop\":\"renee-rouleau-quiz.myshopify.com\", \"shopliftUrl\":\"https:\/\/events.shoplift.ai\/api\/events\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dabcda9558be25394b12ce3ce899568b","type":"APP","apiClientId":7521861633,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"931463227","configuration":"{\"accountID\":\"USuK5c\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"487227451","configuration":"{\"loggingEnabled\":\"false\",\"serverPixelEnabled\":\"true\",\"useShopifyItemLevelTax\":\"false\",\"ranMid\":\"45678\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3c4e0707a22db0bd439a5e4b720ea9d0","type":"APP","apiClientId":2531653,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"367886395","configuration":"{\"botID\":\"besfsov8epo3fdpu\",\"octaneDomain\":\"https:\/\/app.octaneai.com\",\"octaneNewDomain\":\"https:\/\/app2.octaneai.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"bd1df4806f96b914851f3ad62aad33e8","type":"APP","apiClientId":2012438,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"264962107","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\",\\\"GT-NC8QP6Z\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/51khCJuyjvwbELCgn99C\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/uaiXCP7dkfwbELCgn99C\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-4KDC0M061F\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/TFyXCKSyjvwbELCgn99C\\\",\\\"MC-8VM2XXTRNV\\\"]}
767,{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-4KDC0M061F\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/szhFCJiyjvwbELCgn99C\\\",\\\"MC-8VM2XXTRNV\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/30sfCKGyjvwbELCgn99C\\\",\\\"MC-8VM2XXTRNV\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-4KDC0M061F\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/UNs7CPnekfwbELCgn99C\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-4KDC0M061F\\\",\\\"AW-17916481584\\\/wqcqCJ6yjvwbELCgn99C\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-4KDC0M061F\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"206798907","configuration":"{\"pixelCode\":\"C5DLU0Q4IHCNL5JLE3GG\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"110493755","configuration":"{\"pixel_id\":\"466707850347066\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"56328251","configuration":"{\"tagID\":\"2613177867340\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"21102651","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Tag Manager"},{"id":"82640955","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"JustUno Conversion Code"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Renée Rouleau Professional Skin Care","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"renee-rouleau-quiz.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.reneerouleau.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":72.5,"currencyCode":"USD"},"product":{"title":"Skin Drink I.V.","vendor":"Renée Rouleau Professional Skin Care","id":"7574678405179","untranslatedTitle":"Skin Drink I.V.","url":"\/products\/skin-drink-i-v","type":""},"id":"43374648328251","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077"},"sku":"79494","title":"Default Title","untranslatedTitle":"Default Title"}],"products":[{"id":"7574678405179","handle":"skin-drink-i-v","isCollective":null,"title":"Skin Drink I.V.","type":null,"untranslatedTitle":"Skin Drink I.V.","url":"\/products\/skin-drink-i-v","vendor":"Renée Rouleau Professional Skin Care","remoteShopId":null,"variants":[{"id":"43374648328251","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077"},"price":{"amount":72.5,"currencyCode":"USD"},"sku":"79494","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"7622929514555","handle":"skin-drink-i-v-wrinkle-perfecting-serum","isCollective":null,"title":"Skin Drink I.V. + Pore+Wrinkle Perfecting Serum","type":null,"untranslatedTitle":"Skin Drink I.V. + Pore+Wrinkle Perfecting Serum","url":"\/products\/skin-drink-i-v-wrinkle-perfecting-serum","vendor":"Renée Rouleau Professional Skin Care","remoteShopId":null,"variants":[{"id":"43581746085947","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560"},"price":{"amount":130.5,"currencyCode":"USD"},"sku":"79043K","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"7618450260027","handle":"skin-drink-i-v-rest-day-masque","isCollective":null,"title":"Skin Drink I.V. + Rest Day Masque","type":null,"untranslatedTitle":"Skin Drink I.V. + Rest Day Masque","url":"\/products\/skin-drink-i-v-rest-day-masque","vendor":"Renée Rouleau Professional Skin Care","remoteShopId":null,"variants":[{"id":"43572559544379","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680"},"price":{"amount":117.9,"currencyCode":"USD"},"sku":"79044K","title":"Default Title","untranslatedTitle":"Default Title"}]}
767,{"id":"7659663392827","handle":"skin-drink-i-v-skin-recovery-balm","isCollective":null,"title":"Skin Drink I.V. + Skin Recovery Balm","type":null,"untranslatedTitle":"Skin Drink I.V. + Skin Recovery Balm","url":"\/products\/skin-drink-i-v-skin-recovery-balm","vendor":"Renée Rouleau Professional Skin Care","remoteShopId":null,"variants":[{"id":"43659153702971","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984"},"price":{"amount":109.8,"currencyCode":"USD"},"sku":"79042K","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"7615652954171","handle":"skin-drink-i-v-sheer-moisture-lotion","isCollective":null,"title":"Skin Drink I.V. + Sheer Moisture Lotion","type":null,"untranslatedTitle":"Skin Drink I.V. + Sheer Moisture Lotion","url":"\/products\/skin-drink-i-v-sheer-moisture-lotion","vendor":"Renée Rouleau Professional Skin Care","remoteShopId":null,"variants":[{"id":"43566510276667","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752"},"price":{"amount":105.3,"currencyCode":"USD"},"sku":"79045K","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9257895750","handle":"hydraboost-rescue-creme","isCollective":null,"title":"Hydraboost Rescue Creme","type":"Moisturizers","untranslatedTitle":"Hydraboost Rescue Creme","url":"\/products\/hydraboost-rescue-creme","vendor":"Renee Rouleau","remoteShopId":null,"variants":[{"id":"33887948998","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922"},"price":{"amount":72.5,"currencyCode":"USD"},"sku":"79416","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9257896198","handle":"moisture-infusion-toner","isCollective":null,"title":"Moisture Infusion Toner","type":"Toners","untranslatedTitle":"Moisture Infusion Toner","url":"\/products\/moisture-infusion-toner","vendor":"Renee Rouleau","remoteShopId":null,"variants":[{"id":"33887954438","image":{"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589"},"price":{"amount":39.5,"currencyCode":"USD"},"sku":"79421","title":"Default Title","untranslatedTitle":"Default Title"}]}],"purchasingCompany":null},},"https://www.reneerouleau.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"137198436411","themePublished":"true","eventMetadataId":"a16a0b00-b0d4-43c4-8656-c37eec32410c","pageType":"product","resourceId":"7574678405179","shopId":"15944825","storefrontBaseUrl":"https:\/\/www.reneerouleau.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":72.5,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Skin Drink I.V.\",\"vendor\":\"Renée Rouleau Professional Skin Care\",\"id\":\"7574678405179\",\"untranslatedTitle\":\"Skin Drink I.V.\",\"url\":\"\/products\/skin-drink-i-v\",\"type\":\"\"},\"id\":\"43374648328251\",\"image\":{\"src\":\"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077\"},\"sku\":\"79494\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});})();</script>
767<script> 768 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 769 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 770 window.ShopifyAnalytics.meta.currency = 'USD'; 771 var meta = {"product":{"id":7574678405179,"gid":"gid:\/\/shopify\/Product\/7574678405179","vendor":"Renée Rouleau Professional Skin Care","type":"","handle":"skin-drink-i-v","variants":[{"id":43374648328251,"price":7250,"name":"Skin Drink I.V.","public_title":null,"sku":"79494"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":7574678405179,"requestId":"72569804-3df5-422b-86be-02e05837004d-1790275475"}}; 772 for (var attr in meta) { 773 window.ShopifyAnalytics.meta[attr] = meta[attr]; 774 } 775</script>
vendor: 1 bytes, line 775
775
776<script class="analytics"> 777 (function () { 778 var customDocumentWrite = function(content) { 779 var jquery = null; 780 781 if (window.jQuery) { 782 jquery = window.jQuery; 783 } else if (window.Checkout && window.Checkout.$) { 784 jquery = window.Checkout.$; 785 } 786 787 if (jquery) { 788 jquery('body').append(content); 789 } 790 }; 791 792 var hasLoggedConversion = function(token) { 793 if (token) { 794 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 795 } 796 return false; 797 } 798 799 var setCookieIfConversion = function(token) { 800 if (token) { 801 var twoMonthsFromNow = new Date(Date.now()); 802 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 803 804 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 805 } 806 } 807 808 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 809 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 810 if (trekkie.integrations) { 811 return; 812 } 813 trekkie.methods = [ 814 'identify', 815 'page', 816 'ready', 817 'track', 818 'trackForm', 819 'trackLink' 820 ]; 821 trekkie.factory = function(method) { 822 return function() { 823 var args = Array.prototype.slice.call(arguments); 824 args.unshift(method); 825 trekkie.push(args); 826 if (method == 'track' || method == 'page') { 827 try { 828 if (window.__TREKKIE_SHIM_QUEUE == null) { 829 window.__TREKKIE_SHIM_QUEUE = []; 830 } 831 window.__TREKKIE_SHIM_QUEUE.push({ 832 from: 'trekkie-stub', 833 method: method, 834 args: args.slice(1) 835 }); 836 } catch (e) { 837 // no-op 838 } 839 } 840 return trekkie; 841 }; 842 }; 843 for (var i = 0; i < trekkie.methods.length; i++) { 844 var key = trekkie.methods[i]; 845 trekkie[key] = trekkie.factory(key); 846 } 847 trekkie.load = function(config) { 848 trekkie.config = config || {}; 849 trekkie.config.initialDocumentCookie = document.cookie; 850 var first = document.getElementsByTagName('script')[0]; 851var script = document.createElement('script'); 852script.type = 'text/javascript'; 853script.onerror = function(e) { 854 var scriptFallback = document.createElement('script'); 855 scriptFallback.type = 'text/javascript'; 856 scriptFallback.onerror = function(error) { 857 var Monorail = { 858 produce: function produce(monorailDomain, schemaId, payload) { 859 var currentMs = new Date().getTime(); 860 var event = { 861 schema_id: schemaId, 862 payload: payload, 863 metadata: { 864 event_created_at_ms: currentMs, 865 event_sent_at_ms: currentMs 866 } 867 }; 868 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 869 }, 870 sendRequest: function sendRequest(endpointUrl, payload) { 871 // Try the sendBeacon API 872 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 873 var blobData = new window.Blob([payload], { 874 type: 'text/plain' 875 }); 876 877 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 878 return true; 879 } // sendBeacon was not successful 880 881 } // XHR beacon 882 883 var xhr = new XMLHttpRequest(); 884 885 try { 886 xhr.open('POST', endpointUrl); 887 xhr.setRequestHeader('Content-Type', 'text/plain'); 888 xhr.send(payload); 889 } catch (e) { 890 console.log(e); 891 } 892 893 return false; 894 }, 895 isIos12: function isIos12() { 896 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 897 } 898 }; 899 Monorail.produce('monorail-edge.shopifysvc.com', 900 'trekkie_storefront_load_errors/1.1', 901 {shop_id: 15944825, 902 theme_id: 137198436411, 903 app_name: "storefront", 904 context_url: window.location.href, 905 source_url: "//www.reneerouleau.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 906 907 }; 908 scriptFallback.async = true; 909 scriptFallback.src = '//www.reneerouleau.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 910 first.parentNode.insertBefore(scriptFallback, first); 911}; 912script.async = true; 913script.src = '//www.reneerouleau.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 914first.parentNode.insertBefore(script, first); 915 916 }; 917 trekkie.load( 918 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15944825,"isMerchantRequest":null,"themeId":137198436411,"themeCityHash":"17425057928047452468","contentLanguage":"en","currency":"USD","eventMetadataId":"a16a0b00-b0d4-43c4-8656-c37eec32410c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 919 ); 920 921 var loaded = false;
922 trekkie.ready(function() { 923 if (loaded) return; 924 loaded = true; 925 926 window.ShopifyAnalytics.lib = window.trekkie; 927 928 var originalDocumentWrite = document.write; 929 document.write = customDocumentWrite; 930 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 931 document.write = originalDocumentWrite; 932 933 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 934 var token = match? match[1]: undefined; 935 if (!hasLoggedConversion(token)) { 936 setCookieIfConversion(token); 937 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":43374648328251,"productId":7574678405179,"productGid":"gid:\/\/shopify\/Product\/7574678405179","name":"Skin Drink I.V.","price":"72.50","sku":"79494","brand":"Renée Rouleau Professional Skin Care","variant":null,"category":"","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 938 } 939 }); 940 941 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":7574678405179,"requestId":"72569804-3df5-422b-86be-02e05837004d-1790275475","shopifyEmitted":true}); 942 943 var eventsListenerScript = document.createElement('script'); 944 eventsListenerScript.async = true; 945 eventsListenerScript.src = "//www.reneerouleau.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 946 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 947})();</script>
947 948
948<script> 949 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 950 window.ga = function ga() { 951 (window.ga.q = window.ga.q || []).push(arguments); 952 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 953 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 954 } 955 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 956 }; 957 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 958 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 959 } 960 } 961</script>
vendor: 1 bytes, line 961
961
962<script 963 defer 964 src="https://www.reneerouleau.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 965 data-application="storefront-renderer" 966 data-shop-id="15944825" 967 data-render-region="gcp-us-central1" 968 data-page-type="product" 969 data-theme-instance-id="137198436411" 970 data-theme-name="VBT" 971 data-theme-version="0.0.0" 972 data-monorail-region="shop_domain" 973 data-resource-timing-sampling-rate="10" 974 data-shs="true" 975 data-shs-beacon="true" 976 data-shs-export-with-fetch="true" 977 data-shs-logs-sample-rate="1" 978 data-shs-beacon-endpoint="https://www.reneerouleau.com/api/collect" 979></script>
979 980<meta name="shopify-y" content="1d21b8e0-74bb-437a-8df9-e55d7e2dfe25" data-expiration="1821833076000"><meta name="shopify-s" content="9d95ad43-6570-48ad-aa3f-f87cbd04aaae" data-expiration="1790277276000"><meta name="new-cookie-storage-activated" content="t"> 981</head> 982 983 <body 984 class="[&:has([data-scroll-lock]:checked)]:overflow-hidden [&_#gorgias-chat-container]:hidden" 985 data-b2b="false" 986 > 987 <a class="skip-to-content-link button hidden" href="#MainContent"> 988 Skip to content 989 </a> 990 991 <div id="shopify-section-announcement" class="shopify-section announcement"> 992 993 994 995 996 997 998 <div class="announcement-slider bg-mint-green text-center"> 999 <div class="splide" data-slider= 1000 '{ 1001 "type": "loop", 1002 "perPage": 1, 1003 "autoplay": true, 1004 "interval": 5000, 1005 "arrows": false, 1006 "pagination": false, 1007 "pauseOnHover": true, 1008 "pauseOnFocus": false, 1009 "resetProgress": false 1010 }' 1011 > 1012 <div class="splide__track"> 1013 <ul class="splide__list"> 1014 1015 1016 <li class="splide__slide"> 1017 <div class="py-1.5 px-8"> 1018 1019 <a href="https://www.reneerouleau.com/collections/all" class="block text-black capitalize font-light text-subheading-4 leading-[130%]"> 1020 Free Shipping U.S. Orders $125+ & Free Shipping Canada Orders $150+ â 1021 </a> 1022 1023 </div> 1024 </li> 1025 1026 </ul> 1027 </div> 1028 </div> 1029 </div> 1030 1031 1032 1033 1034</div> 1035 <header id="shopify-section-header" class="shopify-section header relative z-10"> 1036 1037 1038 1039 1040<div data-sticky-header class="header relative w-full grid grid-cols-[1fr_1fr_1fr] px-5 py-5 bg-blush-light-pink hdr_floating z-50"> 1041 <div class="hdr_mobile-menu flex justify-start items-center"> 1042 1043<div class="group lg:hidden"> 1044 <input 1045 role="button" 1046 id="mobile-menu-toggle" 1047 type="checkbox" 1048 class="peer hidden" 1049 data-scroll-lock 1050 onload="this.checked=false" 1051 autocomplete="off" 1052 /> 1053 1054 <label 1055 aria-label="mobile menu toggle" 1056 for="mobile-menu-toggle" 1057 class="lg:hidden" 1058 > 1059 1060 1061<span class="group-[&:has(#mobile-menu-toggle:checked)]:hidden" > 1062 1063 <svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14" fill="none"> 1064 <line y1="1.13414" x2="18" y2="1.13414" stroke="black"/> 1065 <line y1="7.26487" x2="18" y2="7.26487" stroke="black"/> 1066 <line y1="13.3956" x2="18" y2="13.3956" stroke="black"/> 1067 </svg> 1068 1069 1070</span> 1071 1072 1073 1074<span class="hidden group-[&:has(#mobile-menu-toggle:checked)]:block" > 1075 1076 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="13" viewBox="0 0 14 13" fill="none"> 1077 <line x1="12.6069" y1="12.0208" x2="1.29315" y2="0.707104" stroke="black" stroke-width="2"/> 1078 <line x1="1.29314" y1="12.0208" x2="12.6068" y2="0.707106" stroke="black" stroke-width="2"/> 1079 </svg> 1080 1081 1082</span> 1083 1084 </label> 1085 1086 <div class="fixed z-60 left-0 top-0 h-0 peer-checked:h-screen peer-checked:overflow-y-scroll bg-blush-light-pink transition-all w-full pointer-events-none peer-checked:pointer-events-auto overflow-hidden"> 1087 <div class="h-dvh"> 1088 <div class="relative flex justify-between py-4 pl-4 pr-14 h-12.5 border-b border-blush-pink"> 1089 <a href="/pages/take-the-quiz" class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] bg-mint-green flex items-center gap-3 px-2 min-w-0 max-w-full"> 1090 <h4 class="min-w-0 truncate">Find Your Skin Type</h4> 1091 1092 1093<span class="shrink-0" > 1094 1095 <svg xmlns="http://www.w3.org/2000/svg" width="18" height="6" viewBox="0 0 18 6" fill="none"> 1096 <path d="M12.5229 6C12.6943 5.60606 12.8829 5.24242 13.0886 4.90909C13.2943 4.56061 13.5257 4.23485 13.7829 3.93182L0 3.93182L0 2.06818L13.7829 2.06818C13.5429 1.76515 13.32 1.44697 13.1143 1.11364C12.9086 0.765152 12.72 0.39394 12.5486 0L14.5029 0C15.5657 1.10606 16.7314 1.94697 18 2.52273V3.5C16.7314 4.04545 15.5657 4.87879 14.5029 6H12.5229Z" fill="black"/> 1097 </svg> 1098 1099 1100</span> 1101 1102 </a> 1103 <label aria-label="mobile menu toggle" for="mobile-menu-toggle" class="absolute right-4 top-1/2 -translate-y-1/2 flex items-center"> 1104 1105 1106<span class="" > 1107 1108 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="13" viewBox="0 0 14 13" fill="none"> 1109 <line x1="12.6069" y1="12.0208" x2="1.29315" y2="0.707104" stroke="black" stroke-width="2"/> 1110 <line x1="1.29314" y1="12.0208" x2="12.6068" y2="0.707106" stroke="black" stroke-width="2"/> 1111 </svg> 1112 1113 1114</span> 1115 1116 </label> 1117 </div> 1118 <ul class="" data-hc-body-click-toggle="mob-menu-accordion"> 1119 1120<li class="parent-link group border-b border-blush-pink"> 1121 1122 <input type="checkbox" class="hidden peer" id="menu-item-1"/> 1123 <label for="menu-item-1" class="flex justify-between items-center cursor-pointer px-4 py-5 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block peer-checked:[&_.mm-title]:bg-mint-green uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]">
1124 <span class="mm-title">Shop</span> 1125 <span class="mm-plus">+</span> 1126 <span class="mm-minus hidden">-</span> 1127 </label> 1128 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1129 <div class="flex flex-col gap-0 overflow-hidden"> 1130 <ul class="flex flex-col pl-12 pr-4 pb-2"> 1131 1132 <li class="child-link group"> 1133 1134 <input type="checkbox" id="mob-menu-inner-1-items-1" class="hidden peer" /> 1135 <label for="mob-menu-inner-1-items-1" class="flex justify-between items-center cursor-pointer py-3 peer-checked:pb-3 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1136 <span>Shop By Category </span> 1137 <span class="mm-plus">+</span> 1138 <span class="mm-minus hidden">-</span> 1139 </label> 1140 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1141 <div class="flex flex-col overflow-hidden"> 1142 <ul class="flex flex-col pl-4 pb-2"> 1143 1144 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1145 <a class="block py-3" href="/collections/all">Shop all</a> 1146 </li> 1147 1148 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1149 <a class="block py-3" href="/collections/best-sellers">Best Sellers</a> 1150 </li> 1151 1152 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1153 <a class="block py-3" href="/collections/whats-new">What's New</a> 1154 </li> 1155 1156 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1157 <a class="block py-3" href="/collections/travel-sizes">Travel Sizes</a> 1158 </li> 1159 1160 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1161 <a class="block py-3" href="/collections/acne-spot-treatments-1">Acne Spot Treatments</a> 1162 </li> 1163 1164 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1165 <a class="block py-3" href="/collections/cleansers">Cleansers</a> 1166 </li> 1167 1168 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1169 <a class="block py-3" href="/collections/moisturizers">Moisturizers</a> 1170 </li> 1171 1172 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1173 <a class="block py-3" href="/collections/specialty-serums">Serums</a> 1174 </li> 1175 1176 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1177 <a class="block py-3" href="/collections/masques">Masques</a> 1178 </li> 1179 1180 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1181 <a class="block py-3" href="/collections/toners">Toners</a> 1182 </li> 1183 1184 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1185 <a class="block py-3" href="/collections/exfoliants">Exfoliants</a> 1186 </li> 1187 1188 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1189 <a class="block py-3" href="/collections/eye-care">Eye Care</a> 1190 </li> 1191 1192 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1193 <a class="block py-3" href="/collections/sun-protection">Sun Protection</a> 1194 </li> 1195 1196 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1197 <a class="block py-3" href="/collections/skin-accessories">Accessories</a> 1198 </li> 1199 1200 </ul> 1201 </div> 1202 </div> 1203 1204 </li> 1205 1206 <li class="child-link group"> 1207 1208 <input type="checkbox" id="mob-menu-inner-1-items-2" class="hidden peer" /> 1209 <label for="mob-menu-inner-1-items-2" class="flex justify-between items-center cursor-pointer py-3 peer-checked:
1209pb-3 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1210 <span>Shop By Concern</span> 1211 <span class="mm-plus">+</span> 1212 <span class="mm-minus hidden">-</span> 1213 </label> 1214 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1215 <div class="flex flex-col overflow-hidden"> 1216 <ul class="flex flex-col pl-4 pb-2"> 1217 1218 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1219 <a class="block py-3" href="/collections/acne-breakouts">Acne & Breakouts</a> 1220 </li> 1221 1222 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1223 <a class="block py-3" href="/collections/healthy-aging">Healthy Aging</a> 1224 </li> 1225 1226 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1227 <a class="block py-3" href="/collections/hyperpigmentation">Hyperpigmentation</a> 1228 </li> 1229 1230 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1231 <a class="block py-3" href="/collections/redness-rosacea">Redness & Rosacea</a> 1232 </li> 1233 1234 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1235 <a class="block py-3" href="/collections/dry-skin">Dry Skin</a> 1236 </li> 1237 1238 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1239 <a class="block py-3" href="/collections/oily-skin">Oily Skin</a> 1240 </li> 1241 1242 </ul> 1243 </div> 1244 </div> 1245 1246 </li> 1247 1248 <li class="child-link group"> 1249 1250 <input type="checkbox" id="mob-menu-inner-1-items-3" class="hidden peer" /> 1251 <label for="mob-menu-inner-1-items-3" class="flex justify-between items-center cursor-pointer py-3 peer-checked:pb-3 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1252 <span>Shop By Skin Type</span> 1253 <span class="mm-plus">+</span> 1254 <span class="mm-minus hidden">-</span> 1255 </label> 1256 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1257 <div class="flex flex-col overflow-hidden"> 1258 <ul class="flex flex-col pl-4 pb-2"> 1259 1260 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1261 <a class="block py-3" href="/pages/take-the-quiz">Take the Quiz</a> 1262 </li> 1263 1264 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1265 <a class="block py-3" href="/collections/skin-type-1">Skin Type 1</a> 1266 </li> 1267 1268 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1269 <a class="block py-3" href="/collections/skin-type-2">Skin Type 2</a> 1270 </li> 1271 1272 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1273 <a class="block py-3" href="/collections/skin-type-3">Skin Type 3</a> 1274 </li> 1275 1276 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1277 <a class="block py-3" href="/collections/skin-type-4">Skin Type 4</a> 1278 </li> 1279 1280 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1281 <a class="block py-3" href="/collections/skin-type-5">Skin Type 5</a> 1282 </li> 1283 1284 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1285 <a class="block py-3" href="/collections/skin-type-6">Skin Type 6</a> 1286 </li> 1287 1288 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1289 <a class="block py-3" href="/collections/skin-type-7">Skin Type 7</a> 1290 </li> 1291 1292 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1293 <a class="block py-3" href="/collections/skin-type-8">Skin Type 8</a> 1294 </li> 1295 1296 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1297 <a class="block py-3" href="/collections/skin-type-9">Skin Type 9</a> 1298 </li> 1299 1300 </ul> 1301 </div> 1302 </div> 1303 1304 </li> 1305 1306 <li class="child-link group"> 1307 1308 <input type="checkbox" id="mob-menu-inner-1-items-4" class="hidden peer" /> 1309 <label for="mob-menu-inner-1-items-4" class="flex justify-between items-center cursor-pointer py-3 peer-checked:
1309pb-3 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1310 <span>Shop by sets</span> 1311 <span class="mm-plus">+</span> 1312 <span class="mm-minus hidden">-</span> 1313 </label> 1314 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1315 <div class="flex flex-col overflow-hidden"> 1316 <ul class="flex flex-col pl-4 pb-2"> 1317 1318 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1319 <a class="block py-3" href="/collections/acne-collections">The Acne</a> 1320 </li> 1321 1322 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1323 <a class="block py-3" href="/collections/the-basic-skin-care-collections">The Basic</a> 1324 </li> 1325 1326 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1327 <a class="block py-3" href="/collections/the-essential-skin-care-collections">The Essential</a> 1328 </li> 1329 1330 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1331 <a class="block py-3" href="/collections/the-complete-skin-care-collections">The Complete</a> 1332 </li> 1333 1334 <li class="grandchild-link group uppercase text-subheading-2 leading-[110%] tracking-[1.3px]"> 1335 <a class="block py-3" href="/collections/the-at-home-facial">The At-Home Facial</a> 1336 </li> 1337 1338 </ul> 1339 </div> 1340 </div> 1341 1342 </li> 1343 1344 </ul> 1345 </div> 1346 </div> 1347 1348 1349 </li> 1350 1351<li class="parent-link group border-b border-blush-pink"> 1352 1353 <input type="checkbox" class="hidden peer" id="menu-item-2"/> 1354 <label for="menu-item-2" class="flex justify-between items-center cursor-pointer px-4 py-5 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block peer-checked:[&_.mm-title]:bg-mint-green uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1355 <span class="mm-title">Pros</span> 1356 <span class="mm-plus">+</span> 1357 <span class="mm-minus hidden">-</span> 1358 </label> 1359 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1360 <div class="flex flex-col gap-0 overflow-hidden"> 1361 <ul class="flex flex-col pl-12 pr-4 pb-2"> 1362 1363 <li class="child-link group"> 1364 1365 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/pro">Become A Pro Partner</a> 1366 1367 </li> 1368 1369 <li class="child-link group"> 1370 1371 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="https://login.circle.so/sign_in?request_host=pro-community-90b881.circle.so">The Circle Of Hands Community</a> 1372 1373 </li> 1374 1375 <li class="child-link group"> 1376 1377 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/pro-events">Live Pro Webinar Events</a> 1378 1379 </li> 1380 1381 <li class="child-link group"> 1382 1383 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/customer-care-where-to-buy">Find A Pro Partner</a> 1384 1385 </li> 1386 1387 </ul> 1388 </div> 1389 </div> 1390 1391 1392 </li> 1393 1394<li class="parent-link group border-b border-blush-pink"> 1395 1396 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block px-4 py-5" href="/pages/skindex">Skindex</a> 1397 1398 1399 </li> 1400 1401<li class="parent-link group border-b border-blush-pink"> 1402 1403 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block px-4 py-5" href="/pages/online-skincare-consultations">Consultation</a> 1404 1405 1406 </li> 1407 1408<li class="parent-link group border-b border-blush-pink"> 1409 1410 <input type="checkbox" class="hidden peer" id="menu-item-5"/> 1411 <label for="menu-item-5" class="flex justify-between items-center cursor-pointer px-4 py-5 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block peer-checked:[&_.mm-title]:bg-mint-green uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]">
1412 <span class="mm-title">About</span> 1413 <span class="mm-plus">+</span> 1414 <span class="mm-minus hidden">-</span> 1415 </label> 1416 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1417 <div class="flex flex-col gap-0 overflow-hidden"> 1418 <ul class="flex flex-col pl-12 pr-4 pb-2"> 1419 1420 <li class="child-link group"> 1421 1422 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/about">About Renée Rouleau</a> 1423 1424 </li> 1425 1426 <li class="child-link group"> 1427 1428 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/skincare-ingredient-dictionary">Ingredient Glossary</a> 1429 1430 </li> 1431 1432 <li class="child-link group"> 1433 1434 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/podcast-appearances">In The Press</a> 1435 1436 </li> 1437 1438 <li class="child-link group"> 1439 1440 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/media-inquiries">Podcasts & Media Requests</a> 1441 1442 </li> 1443 1444 </ul> 1445 </div> 1446 </div> 1447 1448 1449 </li> 1450 1451<li class="parent-link group border-b border-blush-pink"> 1452 1453 <input type="checkbox" class="hidden peer" id="menu-item-6"/> 1454 <label for="menu-item-6" class="flex justify-between items-center cursor-pointer px-4 py-5 peer-checked:[&_.mm-plus]:hidden peer-checked:[&_.mm-minus]:block peer-checked:[&_.mm-title]:bg-mint-green uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px]"> 1455 <span class="mm-title">Find Your Skin Type</span> 1456 <span class="mm-plus">+</span> 1457 <span class="mm-minus hidden">-</span> 1458 </label> 1459 <div class="grid grid-rows-[0fr] peer-checked:grid-rows-[1fr] transition-all ease-in-out duration-300"> 1460 <div class="flex flex-col gap-0 overflow-hidden"> 1461 <ul class="flex flex-col pl-12 pr-4 pb-2"> 1462 1463 <li class="child-link group"> 1464 1465 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/take-the-quiz">The Skin Type Quiz</a> 1466 1467 </li> 1468 1469 <li class="child-link group"> 1470 1471 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block py-3" href="/pages/skin-types">9 Skin Types</a> 1472 1473 </li> 1474 1475 </ul> 1476 </div> 1477 </div> 1478 1479 1480 </li> 1481 1482<li class="parent-link group border-b border-blush-pink"> 1483 1484 <a class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block px-4 py-5" href="https://www.reneerouleau.com/account/login">Account</a> 1485 1486 1487 </li> 1488 1489 <li class="parent-link border-b border-blush-pink"> 1490 <a 1491 class="uppercase text-subheading-2 font-semibold leading-[110%] tracking-[1.3px] block px-4 py-5" 1492 href="https://www.reneerouleau.com/customer_authentication/redirect?locale=en®ion_country=US" 1493 > 1494 My Account 1495 </a> 1496 </li> 1497 1498 </ul> 1499 1500 <div class="flex flex-col gap-2 p-4 pb-24"> 1501 1502 <a href="/pages/skin-type-quiz" class="relative h-full min-w-[240px]"> 1503 1504<div class="relative overflow-hidden " style=""> 1505 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368" alt="" width="1400" height="1400" loading="lazy" sizes="100vw" srcset=" 1506//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=1066 1066w," style="object-fit:contain; 1507 width:100%; 1508 height: 100%;" fetchpriority="auto"> 1509</div> 1510 1511 <div class="absolute bottom-8 left-0 w-full flex justify-center">
1512 <span class="w-[75%] bg-mint-green text-center text-body-copy font-light leading-[120%] tracking-[2px] uppercase">Take the Skin Type Quiz</span> 1513 </div> 1514 </a> 1515 1516 1517 <a href="/pages/pro" class="relative h-full min-w-[240px]"> 1518 1519<div class="relative overflow-hidden " style=""> 1520 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647" alt="" width="1400" height="1400" loading="lazy" sizes="100vw" srcset=" 1521//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=1066 1066w," style="object-fit:contain; 1522 width:100%; 1523 height: 100%;" fetchpriority="auto"> 1524</div> 1525 1526 <div class="absolute bottom-7 left-0 w-full flex justify-center"> 1527 <span class="w-[77%] bg-mint-green text-center text-body-copy font-light leading-[120%] tracking-[2px] uppercase">Become A Pro Partner</span> 1528 </div> 1529 </a> 1530 1531 1532 </div> 1533 </div> 1534 </div> 1535</div> 1536 1537 </div> 1538 <div class="logo flex justify-center items-center"> 1539 <a href="/" aria-label="Logo that links to homepage"> 1540 <span class=""> 1541 1542 <svg xmlns="http://www.w3.org/2000/svg" width="328" height="54" viewBox="0 0 328 54" fill="none"> 1543 <g clip-path="url(#clip0_722_621)"> 1544 <path d="M321.966 7.07975H320.813V6.58682H323.67V7.07975H322.523V10.3027H321.966V7.07975Z" fill="#231F20"/> 1545 <path d="M327.443 7.35601L326.241 10.3082H326.008L324.807 7.35601V10.3082H324.249V6.59224H325.045L326.122 9.26272L327.199 6.59224H327.995V10.3082H327.437V7.35601H327.443Z" fill="#231F20"/> 1546 <path d="M0 6.966H11.3438C14.6614 6.966 17.3241 7.99519 18.9477 9.59314C20.2196 10.8498 20.9935 12.6374 20.9935 14.5441V14.6199C20.9935 19.0725 17.638 21.6238 13.081 22.2305L21.9948 33.6112H19.4457L10.8404 22.5718H2.00789V33.6112H0V6.966ZM11.1164 20.7842C15.6301 20.7842 18.991 18.5363 18.991 14.6958V14.6199C18.991 11.0448 16.1335 8.79687 11.2355 8.79687H2.00789V20.7842H11.1164Z" fill="#231F20"/> 1547 <path d="M25.9727 6.966H45.191V8.79145H27.9805V19.2567H43.4537V21.0822H27.9805V31.7803H50.1647V33.6058H25.9727V6.966Z" fill="#231F20"/> 1548 <path d="M49.8941 6.966H51.7883L70.4276 30.1444V6.966H72.3543V33.6112H70.8497L51.8262 9.93982V33.6112H49.8941V6.966Z" fill="#231F20"/> 1549 <path d="M75.975 6.96599H95.1933V8.79145H77.9829V19.2567H93.0393V21.0822H77.9829V31.7803H95.3882V33.6058H75.975V6.96599ZM88.439 0L90.7175 1.06711L86.5881 4.49052H84.8508L88.439 0Z" fill="#231F20"/> 1550 <path d="M99.9019 6.966H119.12V8.79145H101.91V19.2567H117.383V21.0822H101.91V31.7803H119.315V33.6058H99.9073V6.966H99.9019Z" fill="#231F20"/> 1551 <path d="M143.231 6.50557H154.575C157.892 6.50557 160.555 7.53476 162.179 9.13271C163.451 10.3894 164.225 12.177 164.225 14.0782V14.1541C164.225 18.6067 160.869 21.158 156.312 21.7647L165.226 33.1454H162.677L154.072 22.1059H145.234V33.1454H143.226V6.50015L143.231 6.50557ZM154.348 20.3238C158.861 20.3238 162.222 18.0758 162.222 14.2353V14.1595C162.222 10.579 159.365 8.33645 154.467 8.33645H145.244V20.3238H154.353H154.348Z" fill="#231F20"/> 1552 <path d="M166.768 19.9067V19.8309C166.768 12.5615 172.207 6.05056 180.391 6.05056C188.574 6.05056 193.937 12.4803 193.937 19.755V19.8309C193.937 27.1002 188.498 33.6112 180.315 33.6112C172.132 33.6112 166.768 27.176 166.768 19.9067ZM191.848 19.9067V19.8309C191.848 13.2441 186.988 7.84352 180.309 7.84352C173.636 7.84352 168.847 13.1736 168.847 19.755V19.8309C168.847 26.4177 173.712 31.8182 180.385 31.8182C187.058 31.8182 191.848 26.4881 191.848 19.9067Z" fill="#231F20"/> 1553 <path d="M197.168 22.0734V6.50557H199.176V21.8838C199.176 28.1619 202.613 31.7803 208.322 31.7803C213.799 31.7803 217.312 28.5086 217.312 22.0734V6.50557H219.32V21.8459C219.32 29.4944 214.806 33.5679 208.247 33.5679C201.763 33.5679 197.173 29.5324 197.173 22.0734H197.168Z" fill="#231F20"/> 1554 <path d="M224.061 6.50557H226.069V31.3199H241.926V33.1454H224.061V6.50015V6.50557Z" fill="#231F20"/> 1555 <path d="M246.018 6.50557H265.236V8.33103H248.026V18.7963H263.499
1555V20.6217H248.026V31.3199H268.635V33.1454H246.023V6.50557H246.018Z" fill="#231F20"/> 1556 <path d="M280.206 6.31598H282.133L294.71 33.1508H292.508L289.076 25.6918H273.138L269.701 33.1508H267.617L280.195 6.31598H280.206ZM288.232 23.9043L281.131 8.48811L273.993 23.9043H288.232Z" fill="#231F20"/> 1557 <path d="M295.868 22.0734V6.50557H297.876V21.8838C297.876 28.1619 301.313 31.7803 307.023 31.7803C312.5 31.7803 316.012 28.5086 316.012 22.0734V6.50557H318.02V21.8459C318.02 29.4944 313.506 33.5679 306.947 33.5679C300.463 33.5679 295.874 29.5324 295.874 22.0734H295.868Z" fill="#231F20"/> 1558 <path d="M105.13 53.8375V46.254H107.776C108.307 46.254 108.772 46.3461 109.178 46.5248C109.584 46.7036 109.898 46.969 110.131 47.3103C110.358 47.6515 110.472 48.0578 110.472 48.5345C110.472 49.0111 110.363 49.4336 110.152 49.7695C109.941 50.1053 109.633 50.3599 109.227 50.5387C108.821 50.712 108.334 50.7987 107.755 50.7987H106.147V53.8375H105.13ZM106.147 49.9049H107.787C108.312 49.9049 108.724 49.7912 109.016 49.5691C109.308 49.347 109.454 49.0111 109.454 48.5615C109.454 48.112 109.308 47.7707 109.005 47.5269C108.707 47.2832 108.307 47.1586 107.798 47.1586H106.147V49.9049Z" fill="#231F20"/> 1559 <path d="M111.749 53.8375V48.529H112.745V49.2982C112.956 48.9516 113.21 48.7078 113.502 48.5724C113.795 48.4315 114.109 48.3611 114.439 48.3611C114.542 48.3611 114.644 48.3665 114.742 48.3774C114.839 48.3882 114.937 48.4045 115.029 48.4207L114.883 49.4607C114.78 49.4282 114.677 49.4066 114.574 49.3903C114.471 49.3741 114.368 49.3686 114.266 49.3686C113.822 49.3686 113.454 49.5041 113.172 49.7803C112.885 50.0566 112.745 50.4249 112.745 50.8853V53.8375H111.749Z" fill="#231F20"/> 1560 <path d="M118.455 54C117.908 54 117.415 53.87 116.988 53.6154C116.56 53.3608 116.219 53.0196 115.976 52.5916C115.732 52.1637 115.608 51.6979 115.608 51.1833C115.608 50.8041 115.678 50.4466 115.819 50.1053C115.96 49.7641 116.16 49.4661 116.414 49.2007C116.669 48.9407 116.972 48.7349 117.318 48.5832C117.664 48.437 118.043 48.3611 118.46 48.3611C119.007 48.3611 119.499 48.4911 119.927 48.7457C120.354 49.0003 120.695 49.3416 120.939 49.7695C121.182 50.1974 121.307 50.6633 121.307 51.1779C121.307 51.557 121.236 51.9145 121.096 52.2558C120.955 52.5971 120.755 52.895 120.5 53.155C120.246 53.415 119.943 53.6208 119.596 53.7671C119.25 53.9188 118.871 53.9946 118.455 53.9946V54ZM118.46 53.1008C118.812 53.1008 119.126 53.025 119.402 52.8679C119.678 52.7108 119.894 52.4887 120.057 52.2016C120.213 51.9145 120.295 51.5787 120.295 51.1833C120.295 50.7878 120.213 50.452 120.057 50.1649C119.9 49.8778 119.683 49.6557 119.407 49.4986C119.131 49.3416 118.812 49.2657 118.455 49.2657C118.097 49.2657 117.778 49.3416 117.507 49.4986C117.231 49.6557 117.015 49.8778 116.858 50.1649C116.701 50.452 116.62 50.7933 116.62 51.1833C116.62 51.5733 116.701 51.9145 116.858 52.2016C117.015 52.4887 117.231 52.7108 117.513 52.8679C117.794 53.025 118.108 53.1008 118.465 53.1008H118.46Z" fill="#231F20"/> 1561 <path d="M121.989 49.3741V48.529H123.255V49.3741H121.989ZM123.103 53.8375V47.5269C123.103 47.0123 123.25 46.6061 123.542 46.3136C123.834 46.0211 124.24 45.8748 124.749 45.8748C124.938 45.8748 125.111 45.8965 125.268 45.9398C125.42 45.9832 125.561 46.0373 125.68 46.1023L125.474 46.9094C125.371 46.8498 125.268 46.8119 125.171 46.7903C125.073 46.7686 124.976 46.7578 124.879 46.7578C124.646 46.7578 124.462 46.8173 124.316 46.9365C124.17 47.0557 124.099 47.2669 124.099 47.5649V48.529H125.523V49.3741H124.099V53.8375H123.109H123.103Z" fill="#231F20"/> 1562 <path d="M129.03 54C128.467 54 127.969 53.8808 127.541 53.6479C127.108 53.415 126.773 53.0846 126.535 52.6621C126.297 52.2395 126.178 51.752 126.178 51.1941C126.178 50.7878 126.248 50.4141 126.383 50.0674C126.519 49.7207 126.713 49.4228 126.968 49.1682C127.222 48.9136 127.514 48.7186 127.85 48.5778C128.185 48.437 128.553 48.3665 128.954 48.3665C129.382 48.3665 129.766 48.4424 130.101 48.594C130.437 48.7457 130.718 48.957 130.94 49.2278C131.162 49.4986 131.324 49.8182 131.422 50.1866C131.519 50.5549 131.541 50.9503 131.481 51.3837H127.163C127.152 51.7358 127.222 52.05 127.379 52.31C127.536 52.5754 127.758 52.7812 128.056 52.9329C128.353 53.0846 128.7 53.155 129.105 53.155C129.403 53.155 129.69 53.1062 129.971 53.0141C130.253 52.9221 130.502 52.7812 130.718 52.5971L131.14 53.3392C130.967 53.48 130.762 53.5992 130.529 53.7021C130.291 53.7996 130.047 53.8754 129.787 53.9296C129.533 53.9783 129.284 54.0054 129.041 54.0054L129.03 54ZM127.211 50.6091H130.48C130.464 50.1595 130.329 49.8128 130.063 49.5636C129.798 49.3145 129.425 49.1845 128.932 49.1845C128.44 49.1845 128.061 49.3091 127.752 49.5636C127.444 49.8128 127.26 50.1649 127.211 50.6091Z" fill="#231F20"/> 1563 <path d="M134.474 53.9946C134.058 53.9946 133.663 53.9296 133.289 53.8104C132.916 53.6858 132.602 53.5179 132.353 53.3067L132.764 52.5537C132.997 52.7487 133.267 52.9004 133.565 53.0087C133.868 53.1171 134.171 53.1766 134.469 53.1766C134.842 53.1766 135.135 53.1116 135.346 52.9708C135.557 52.83 135.66 52.6404 135.66 52.3912C135.66 52.1583 135.568 51.9904 135.389 51.8766C135.21 51.7629 134.875 51.6491 134.382 51.5299C133.733 51.3837 133.262 51.1833 132.964 50.9395C132.672 50.6903 132.526 50.3491 132.526 49.9049C132.526 49.5961 132.613 49.3199 132.786 49.0761C132.959 48.8378 133.197 48.6482 133.495 48.5128C133.798 48.3774 134.144 48.307 134.539 48.307C134.934 48.307 135.292 48.3611 135.627 48.4749C135.963 48.5832 136.26 48.7457 136.504 48.9516L136.12 49.7153C135.995 49.5907 135.844 49.4878 135.676 49.4011C135.503 49.3145 135.319 49.2441 135.124 49.1953C134.929 49.1466 134.734 49.1195 134.539 49.1195C134.22 49.1195 133.955 49.1845 133.749 49.3145C133.543 49.4445 133.446 49.6232 133.446 49.8562C133.446 50.0891 133.543 50.2732 133.738 50.387C133.933 50.5008 134.263 50.6091 134.723 50.7174C135.389 50.8637 135.865 51.0641 136.152 51.3133C136.439 51.5624 136.585 51.8983 136.585 52.3316C136.585 52.6675 136.498 52.96 136.32 53.2092C136.141 53.4583 135.898 53.6479 135.578 53.7833C135.259 53.9188 134.891 53.9892 134.463 53.9892L134.474 53.9946Z" fill="#231F20"/> 1564 <path d="M139.724 53.9946C139.307 53.9946 138.912 53.9296 138.539 53.8104C138.165 53.6858 137.851 53.5179 137.603 53.3067L138.014 52.5537C138.247 52.7487 138.517 52.9004 138.815 53.0087C139.118 53.1171 139.421 53.1766 139.719 53.1766C140.092 53.1766 140.384 53.1116 140.595 52.9708C140.806 52.83 140.909 52.6404 140.909 52.3912C140.909 52.1583 140.817 51.9904 140.639 51.8766C140.46 51.7629 140.125 51.6491 139.632 51.5299C138.983 51.3837 138.512 51.1833 138.214 50.9395C137.922 50.6903 137.776 50.3491 137.776 49.9049C137.776 49.5961 137.862 49.3199 138.036 49.0761C138.209 48.8378 138.447 48.6482 138.744 48.5128C139.048 48.3774 139.394 48.307 139.789 48.307C140.184 48.307 140.541 48.3611 140.877 48.4749C141.212 48.5832 141.51 48.7457 141.754 48.9516L141.369 49.7153C141.245 49.5907 141.093 49.4878 140.926 49.4011C140.752 49.3145 140.568 49.2441 140.374 49.1953C140.179 49.1466 139.984 49.1195 139.789 49.1195C139.47 49.1195 139.205 49.1845 138.999 49.3145C138.793 49.4445 138.696 49.6232 138.696 49.8562C138.696 50.0891 138.793 50.2732 138.988 50.387C139.183 50.5008 139.513 50.6091 139.973 50.7174C140.639 50.8637 141.115 51.0641 141.402 51.3133C141.689 51.5624 141.835 51.8983 141.835 52.3316C141.835 52.6675 141.748 52.96 141.57 53.2092C141.391 53.4583 141.147 53.6479 140.828 53.7833C140.509 53.9188 140.141 53.9892 139.713 53.9892L139.724 53.9946Z" fill="#231F20"/> 1565 <path d="M143.761 47.5269C143.572 47.5269 143.404 47.4619 143.269 47.3373C143.134 47.2128 143.063 47.0503 143.063 46.8553C143.063 46.6603 143.134 46.4977 143.269 46.3732C143.404 46.2486 143.572 46.189 143.761 46.189C143.951 46.189 144.113 46.254 144.249 46.3732C144.384 46.4977 144.454 46.6603 144.454 46.8553C144.454 47.0503 144.389 47.2128 144.249 47.3373C144.108 47.4619 143.951 47.5269 143.761 47.5269ZM143.258 53.8375V48.529H144.254V53.8375H143.258Z" fill="#231F20"/> 1566 <path d="M148.351 54C147.804 54 147.312 53.87 146.884 53.6154C146.457 53.3608 146.116 53.0196 145.872 52.5916C145.629 52.1637 145.504 51.6979 145.504 51.1833C145.504 50.8041 145.574 50.4466 145.715 50.1053C145.856 49.7641 146.056 49.4661 146.311 49.2007C146.565 48.9407 146.868 48.7349 147.214 48.5832C147.561 48.437 147.94 48.3611 148.356 48.3611C148.903 48.3611 149.395 48.4911 149.823 48.7457C150.251 49.0003 150.592 49.3416 150.835 49.7695C151.079 50.1974 151.203 50.6633 151.203 51.1779C151.203 51.557 151.133 51.9145 150.992 52.2558C150.851 52.5971 150.651 52.895 150.397 53.155C150.142 53.415 149.839 53.6208 149.493 53.7671C149.146 53.9188 148.768 53.9946 148.351 53.9946V54ZM148.356 53.1008C148.708 53.1008 149.022 53.025 149.298 52.8679C149.574 52.7108 149.791 52.4887 149.953 52.2016C150.11 51.9145 150.191 51.5787 150.191 51.1833C150.191 50.7878 150.11 50.452 149.953 50.1649C149.796 49.8778 149.579 49.6557 149.303 49.4986C149.027 49.3416 148.708 49.2657 148.351 49.2657C147.994 49.2657 147.674 49.3416 147.404 49.4986C147.128 49.6557 146.911 49.8778 146.754 50.1649C146.597 50.452 146.516 50.7933 146.516 51.1833C146.516 51.5733 146.597 51.9145 146.754 52.2016C146.911 52.4887 147.128 52.7108 147.409 52.8679C147.691 53.025 148.005 53.1008 148.362 53.1008H148.356Z" fill="#231F20"/> 1567 <path d="M152.453 53.8375V48.529H153.449V49.2441C153.676 48.9353 153.942 48.7078 154.245 48.5724C154.548 48.437 154.856 48.3665 155.176 48.3665C155.657 48.3665 156.052 48.464 156.372 48.6536C156.686 48.8486 156.924 49.0924 157.081 49.3957C157.238 49.6937 157.319 50.0024 157.319 50.3166V53.8375H156.323V50.6253C156.323 50.2245 156.198 49.9049 155.95 49.6557C155.701 49.412 155.36 49.2928 154.932 49.2928C154.651 49.2928 154.402 49.3578 154.18 49.4824C153.958 49.607 153.785 49.7857 153.655 50.0078C153.525 50.2353 153.46 50.4953 153.46 50.7987V53.8375H152.464H152.453Z" fill="#231F20"/> 1568 <path d="M160.442 54C160.068 54 159.743 53.9296 159.467 53.7942C159.191 53.6587 158.975 53.4637 158.818 53.2092C158.666 52.96 158.591 52.6621 158.591 52.3208C158.591 52.0391 158.661 51.7791 158.813 51.5516C158.959 51.3187 159.186 51.1237 159.494 50.972C159.803 50.8203 160.209 50.7174 160.701 50.6633C161.194 50.6091 161.795 50.6199 162.493 50.6958L162.52 51.427C161.979 51.3566 161.519 51.3295 161.14 51.3404C160.761 51.3566 160.452 51.4054 160.22 51.492C159.987 51.5787 159.814 51.687 159.7 51.8279C159.592 51.9687 159.538 52.1204 159.538 52.2991C159.538 52.5754 159.635 52.7975 159.835 52.9546C160.036 53.1116 160.312 53.1875 160.663 53.1875C160.961 53.1875 161.232 53.1333 161.464 53.025C161.703 52.9166 161.887 52.7596 162.027 52.5646C162.163 52.3695 162.233 52.1366 162.233 51.882V50.4033C162.233 50.1487 162.179 49.932 162.071 49.7478C161.962 49.5636 161.8 49.4228 161.589 49.3199C161.378 49.217 161.113 49.1682 160.804 49.1682C160.523 49.1682 160.247 49.2116 159.971 49.2928C159.7 49.3795 159.435 49.5149 159.181 49.6991L158.877 48.9299C159.208 48.7078 159.543 48.5507 159.895 48.4586C160.247 48.3665 160.582 48.3232 160.902 48.3232C161.389 48.3232 161.805 48.399 162.146 48.5507C162.487 48.7024 162.753 48.9353 162.931 49.2441C163.11 49.5528 163.202 49.932 163.202 50.3924V53.8483H162.282V53.1983C162.098 53.4637 161.843 53.6642 161.519 53.805C161.194 53.9458 160.831 54.0108 160.436 54.0108L160.442 54Z" fill="#231F20"/> 1569 <path d="M164.852 53.8375V46.0373H165.848V53.8375H164.852Z" fill="#231F20"/> 1570 <path d="M172.841 54C172.332 54 171.834 53.9296 171.352 53.7887C170.865 53.6479 170.459 53.4421 170.124 53.1712L170.638 52.375C170.827 52.5321 171.038 52.6621 171.277 52.7704C171.515 52.8787 171.769 52.96 172.034 53.0196C172.299 53.0791 172.57 53.1062 172.846 53.1062C173.382 53.1062 173.809 53.0033 174.14 52.7921C174.47 52.5808 174.632 52.2775 174.632 51.8712C174.632 51.5733 174.524 51.3241 174.302 51.1237C174.08 50.9178 173.674 50.7283 173.084 50.5603L172.262 50.322C171.563 50.1216 171.06 49.8562 170.741 49.5257C170.421 49.1953 170.259 48.7836 170.259 48.2853C170.259 47.9549 170.324 47.6515 170.459 47.3861C170.595 47.1207 170.779 46.8878 171.022 46.6927C171.266 46.4977 171.553 46.3515 171.883 46.254C172.213 46.1511 172.575 46.1023 172.965 46.1023C173.452 46.1023 173.907 46.1727 174.329 46.3136C174.751 46.4544 175.097 46.644 175.368 46.8823L174.843 47.6461C174.681 47.5107 174.497 47.3915 174.286 47.294C174.075 47.1965 173.853 47.1207 173.615 47.0665C173.376 47.0123 173.133 46.9853 172.889 46.9853C172.559 46.9853 172.272 47.034 172.023 47.1315C171.774 47.229 171.58 47.3698 171.439 47.554C171.298 47.7382 171.228 47.9657 171.228 48.2311C171.228 48.4207 171.271 48.5832 171.363 48.7295C171.455 48.8703 171.612 49.0003 171.834 49.1249C172.056 49.2441 172.364 49.3632 172.759 49.477L173.636 49.737C174.313 49.9374 174.805 50.1974 175.125 50.5224C175.444 50.8474 175.601 51.2699 175.601 51.7899C175.601 52.2287 175.493 52.6187 175.282 52.9491C175.065 53.285 174.757 53.545 174.34 53.7292C173.928 53.9133 173.431 54.0054 172.841 54.0054V54Z" fill="#231F20"/> 1571 <path d="M177.035 53.8375V46.0373H178.031V50.8203L180.288 48.529H181.478L179.6 50.5224L181.792 53.8375H180.591L178.875 51.1724L178.031 52.0175V53.8375H177.035Z" fill="#231F20"/> 1572 <path d="M183.416 47.5269C183.226 47.5269 183.059 47.4619 182.923 47.3373C182.788 47.2128 182.718 47.0503 182.718 46.8553C182.718 46.6603 182.788 46.4977 182.923 46.3732C183.059 46.2486 183.226 46.189 183.416 46.189C183.605 46.189 183.768 46.254 183.903 46.3732C184.038 46.4977 184.109 46.6603 184.109 46.8553C184.109 47.0503 184.044 47.2128 183.903 47.3373C183.762 47.4619 183.605 47.5269 183.416 47.5269ZM182.913 53.8375V48.529H183.908V53.8375H182.913Z" fill="#231F20"/> 1573 <path d="M185.629 53.8375V48.529H186.625V49.2441C186.853 48.9353 187.118 48.7078 187.421 48.5724C187.724 48.437 188.032 48.3665 188.352 48.3665C188.833 48.3665 189.229 48.464 189.548 48.6536C189.862 48.8486 190.1 49.0924 190.257 49.3957C190.414 49.6937 190.495 50.0024 190.495 50.3166V53.8375H189.499V50.6253C189.499 50.2245 189.375 49.9049 189.126 49.6557C188.877 49.4066 188.536 49.2928 188.108 49.2928C187.827 49.2928 187.572 49.3578 187.351 49.4824C187.129 49.607 186.955 49.7857 186.826 50.0078C186.696 50.2353 186.631 50.4953 186.631 50.7987V53.8375H185.635H185.629Z" fill="#231F20"/> 1574 <path d="M198.451 54C197.666 54 196.979 53.8375 196.394 53.5071C195.81 53.1821 195.355 52.7216 195.036 52.1258C194.716 51.5299 194.549 50.8366 194.549 50.0457C194.549 49.4716 194.646 48.9407 194.835 48.464C195.025 47.9819 195.295 47.5649 195.647 47.2073C195.999 46.8498 196.41 46.579 196.887 46.384C197.363 46.189 197.888 46.0915 198.456 46.0915C199.024 46.0915 199.506 46.1619 199.923 46.3027C200.34 46.4436 200.702 46.644 201.005 46.8986L200.464 47.7274C200.215 47.5053 199.928 47.3428 199.609 47.2344C199.284 47.1261 198.927 47.0719 198.532 47.0719C198.088 47.0719 197.688 47.1423 197.325 47.2778C196.962 47.4132 196.659 47.6136 196.4 47.8736C196.145 48.1336 195.95 48.4424 195.815 48.8053C195.68 49.1682 195.609 49.5799 195.609 50.0403C195.609 50.6633 195.734 51.1995 195.972 51.6437C196.216 52.0879 196.562 52.4237 197.011 52.6621C197.46 52.895 197.985 53.0087 198.597 53.0087C198.992 53.0087 199.365 52.9491 199.728 52.83C2
157400.091 52.7108 200.432 52.5212 200.745 52.2558L201.222 53.1225C200.848 53.415 200.432 53.6371 199.977 53.7779C199.517 53.9242 199.008 54 198.445 54H198.451Z" fill="#231F20"/> 1575 <path d="M203.863 54C203.489 54 203.165 53.9296 202.889 53.7942C202.613 53.6587 202.396 53.4637 202.239 53.2092C202.088 52.96 202.012 52.6621 202.012 52.3208C202.012 52.0391 202.082 51.7791 202.234 51.5516C202.38 51.3187 202.607 51.1237 202.916 50.972C203.224 50.8203 203.63 50.7174 204.123 50.6633C204.615 50.6091 205.216 50.6199 205.914 50.6958L205.941 51.427C205.4 51.3566 204.94 51.3295 204.561 51.3404C204.182 51.3566 203.874 51.4054 203.641 51.492C203.408 51.5787 203.235 51.687 203.121 51.8279C203.008 51.9687 202.959 52.1204 202.959 52.2991C202.959 52.5754 203.056 52.7975 203.257 52.9546C203.457 53.1116 203.733 53.1875 204.085 53.1875C204.382 53.1875 204.653 53.1333 204.886 53.025C205.124 52.9166 205.308 52.7596 205.449 52.5646C205.584 52.3695 205.654 52.1366 205.654 51.882V50.4033C205.654 50.1487 205.6 49.932 205.492 49.7478C205.384 49.5636 205.221 49.4228 205.01 49.3199C204.799 49.217 204.534 49.1682 204.225 49.1682C203.944 49.1682 203.668 49.2116 203.392 49.2928C203.121 49.3795 202.856 49.5149 202.602 49.6991L202.299 48.9299C202.629 48.7078 202.964 48.5507 203.316 48.4586C203.668 48.3665 204.003 48.3232 204.323 48.3232C204.81 48.3232 205.227 48.399 205.568 48.5507C205.909 48.7024 206.174 48.9353 206.352 49.2441C206.531 49.5528 206.623 49.932 206.623 50.3924V53.8483H205.703V53.1983C205.519 53.4637 205.265 53.6642 204.94 53.805C204.615 53.9458 204.252 54.0108 203.857 54.0108L203.863 54Z" fill="#231F20"/> 1576 <path d="M208.274 53.8375V48.529H209.269V49.2982C209.481 48.9516 209.735 48.7078 210.033 48.5724C210.325 48.4315 210.639 48.3611 210.974 48.3611C211.077 48.3611 211.18 48.3665 211.277 48.3774C211.375 48.3882 211.472 48.4045 211.564 48.4207L211.418 49.4607C211.315 49.4282 211.212 49.4066 211.11 49.3903C211.007 49.3741 210.904 49.3686 210.801 49.3686C210.357 49.3686 209.989 49.5041 209.702 49.7803C209.416 50.0566 209.275 50.4249 209.275 50.8853V53.8375H208.279H208.274Z" fill="#231F20"/> 1577 <path d="M214.99 54C214.427 54 213.929 53.8808 213.502 53.6479C213.069 53.415 212.733 53.0846 212.495 52.6621C212.257 52.2395 212.132 51.752 212.132 51.1941C212.132 50.7878 212.203 50.4141 212.338 50.0674C212.473 49.7207 212.668 49.4228 212.923 49.1682C213.177 48.9136 213.469 48.7186 213.81 48.5778C214.146 48.437 214.514 48.3665 214.909 48.3665C215.336 48.3665 215.721 48.4424 216.056 48.594C216.392 48.7457 216.673 48.957 216.895 49.2278C217.117 49.4986 217.279 49.8182 217.371 50.1866C217.469 50.5549 217.49 50.9503 217.431 51.3837H213.112C213.101 51.7358 213.172 52.05 213.329 52.31C213.485 52.5754 213.707 52.7812 214 52.9329C214.292 53.0791 214.644 53.155 215.05 53.155C215.347 53.155 215.634 53.1062 215.916 53.0141C216.197 52.9221 216.446 52.7812 216.662 52.5971L217.085 53.3392C216.911 53.48 216.706 53.5992 216.473 53.7021C216.24 53.805 215.991 53.8754 215.731 53.9296C215.477 53.9783 215.228 54.0054 214.985 54.0054L214.99 54ZM213.172 50.6091H216.44C216.424 50.1595 216.289 49.8128 216.024 49.5636C215.759 49.3145 215.385 49.1845 214.893 49.1845C214.4 49.1845 214.021 49.3091 213.713 49.5636C213.404 49.8128 213.22 50.1649 213.172 50.6091Z" fill="#231F20"/> 1578 </g> 1579 <defs> 1580 <clipPath id="clip0_722_621"> 1581 <rect width="328" height="54" fill="white"/> 1582 </clipPath> 1583 </defs> 1584 </svg> 1585 1586 1587</span> 1588 1589 </a> 1590 </div> 1591 <nav class="hdr_nav hidden justify-center items-center px-4"> 1592 <ul class="flex gap-0 h-full items-center"> 1593 1594 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 1595 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/collections/all"> 1596 <span class="!bg-mint-green">Shop</span> 1597 1598 1599 </a> 1600 1601 1602 1603 1604 1605 1606 1607<div class="flex absolute w-screen left-0 top-full bg-blush-light-pink px-10 py-8 gap-20 z-50 opacity-0 -translate-y-2 pointer-events-none transition-[opacity,translate] duration-200 ease-out group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto"> 1608 1609
1610 <div class="grow flex gap-12 nav-option-1"> 1611 1612 <div class="flex flex-col has-[.child-link-image]:gap-4 has-[.child-link-image]:text-center gap-10 shrink-0"> 1613 <a href="#" class="font-semibold text-subheading-2 leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Shop By Category </a> 1614 1615 <ul class="flex flex-col gap-4"> 1616 1617 <a href="/collections/all" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Shop all</a> 1618 1619 <a href="/collections/best-sellers" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Best Sellers</a> 1620 1621 <a href="/collections/whats-new" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">What's New</a> 1622 1623 <a href="/collections/travel-sizes" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Travel Sizes</a> 1624 1625 <a href="/collections/acne-spot-treatments-1" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Acne Spot Treatments</a> 1626 1627 <a href="/collections/cleansers" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Cleansers</a> 1628 1629 <a href="/collections/moisturizers" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Moisturizers</a> 1630 1631 <a href="/collections/specialty-serums" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Serums</a> 1632 1633 <a href="/collections/masques" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Masques</a> 1634 1635 <a href="/collections/toners" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Toners</a> 1636 1637 <a href="/collections/exfoliants" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Exfoliants</a> 1638 1639 <a href="/collections/eye-care" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Eye Care</a> 1640 1641 <a href="/collections/sun-protection" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Sun Protection</a> 1642 1643 <a href="/collections/skin-accessories" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Accessories</a> 1644 1645 </ul> 1646 1647 </div> 1648 1649 <div class="flex flex-col has-[.child-link-image]:gap-4 has-[.child-link-image]:text-center gap-10 shrink-0"> 1650 <a href="#" class="font-semibold text-subheading-2 leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Shop By Concern</a> 1651 1652 <ul class="flex flex-col gap-4"> 1653 1654 <a href="/collections/acne-breakouts" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Acne & Breakouts</a> 1655 1656 <a href="/collections/healthy-aging" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Healthy Aging</a> 1657 1658 <a href="/collections/hyperpigmentation" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Hyperpigmentation</a> 1659 1660 <a href="/collections/redness-rosacea" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Redness & Rosacea</a> 1661 1662 <a href="/collections/dry-skin" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Dry Skin</a> 1663 1664 <a href="/collections/oily-skin" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Oily Skin</a> 1665 1666 </ul> 1667 1668 </div> 1669 1670 <div class="flex flex-col has-[.child-link-image]:gap-4 has-[.child-link-image]:text-center gap-10 shrink-0"> 1671 <a href="#" class="font-semibold text-subheading-2 leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Shop By Skin Type</a> 1672 1673 <ul class="flex flex-col gap-4"> 1674 1675 <a href="/pages/take-the-quiz" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Take the Quiz</a> 1676 1677 <a href="/collections/skin-type-1" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 1</a> 1678 1679 <a href="/collections/skin-type-2" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 2</a> 1680 1681 <a href="/collections/skin-type-3" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 3</a> 1682 1683 <a href="/collections/skin-type-4" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 4</a> 1684 1685 <a href="/collections/skin-type-5" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 5</a> 1686 1687 <a href="/collections/skin-type-6" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 6</a> 1688 1689 <a href="/collections/skin-type-7" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 7</a> 1690 1691 <a href="/collections/skin-type-8" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 8</a> 1692 1693 <a href="/collections/skin-type-9" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Skin Type 9</a> 1694 1695 </ul> 1696 1697 </div> 1698 1699 <div class="flex flex-col has-[.child-link-image]:gap-4 has-[.child-link-image]:text-center gap-10 shrink-0"> 1700 <a href="#" class="font-semibold text-subheading-2 leading-[110%] tracking-[10%] uppercase whitespace-nowrap">Shop by sets</a> 1701 1702 <ul class="flex flex-col gap-4"> 1703 1704 <a href="/collections/acne-collections" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">The Acne</a> 1705 1706 <a href="/collections/the-basic-skin-care-collections" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">The Basic</a> 1707 1708 <a href="/collections/the-essential-skin-care-collections" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">The Essential</a> 1709 1710 <a href="/collections/the-complete-skin-care-collections" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">The Complete</a> 1711 1712 <a href="/collections/the-at-home-facial" class="text-subheading-2 font-normal leading-[110%] tracking-[10%] uppercase whitespace-nowrap">The At-Home Facial</a> 1713 1714 </ul> 1715 1716 </div> 1717 1718 </div> 1719 <div class="flex gap-4 justify-end"> 1720 1721 1722 <a href="/pages/skin-type-quiz" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 1723 1724<div class="relative overflow-hidden h-full" style=""> 1725 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 1726//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Need-Skin-Overhaul.jpg?v=1762885368&width=1066 1066w," style="object-fit:cover; 1727 width:100%; 1728 height: 100%;" fetchpriority="auto"> 1729</div> 1730 1731 <div class="absolute bottom-8 left-0 w-full flex justify-center"> 1732 <div class="text-center w-[73%]">
1733 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Take the Skin Type Quiz</span> 1734 </div> 1735 </div> 1736 </a> 1737 1738 1739 <a href="/pages/pro" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 1740 1741<div class="relative overflow-hidden h-full" style=""> 1742 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 1743//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Esthetician-Touching-Skin.jpg?v=1762885647&width=1066 1066w," style="object-fit:cover; 1744 width:100%; 1745 height: 100%;" fetchpriority="auto"> 1746</div> 1747 1748 <div class="absolute bottom-8 left-0 w-full flex justify-center"> 1749 <div class="text-center w-[73%]"> 1750 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Become a PRO Partner</span> 1751 </div> 1752 </div> 1753 </a> 1754 1755 </div> 1756 1757 1758 1759 1760 1761 1762</div> 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 </li> 1779 1780 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 1781 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/pages/pro"> 1782 Pros 1783 1784 1785 </a> 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796<div class="flex absolute w-screen left-0 top-full bg-blush-light-pink px-10 py-8 gap-20 z-50 opacity-0 -translate-y-2 pointer-events-none transition-[opacity,translate] duration-200 ease-out group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto"> 1797 1798 1799 1800 1801 <div class="grow flex flex-col gap-4 nav-option-2"> 1802 1803 <div class="flex shrink-0"> 1804 <a href="/pages/pro" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Become A Pro Partner</a> 1805 </div> 1806 1807 <div class="flex shrink-0"> 1808 <a href="https://login.circle.so/sign_in?request_host=pro-community-90b881.circle.so" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">The Circle Of Hands Community</a> 1809 </div> 1810 1811 <div class="flex shrink-0"> 1812 <a href="/pages/pro-events" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Live Pro Webinar Events</a> 1813 </div> 1814 1815 <div class="flex shrink-0"> 1816 <a href="/pages/customer-care-where-to-buy" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Find A Pro Partner</a> 1817 </div> 1818 1819 </div> 1820 <div class="flex gap-4 justify-end"> 1821 1822 1823 <a href="/pages/pro" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 1824 1825<div class="relative overflow-hidden h-full" style=""> 1826 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661" alt="" width="1200" height="1200" loading="lazy" sizes="325px" srcset=" 1827//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-BecomePROPartner2.png?v=1763485661&width=1066 1066w," style="object-fit:cover; 1828 width:100%; 1829 height: 100%;" fetchpriority="auto"> 1830</div> 1831 1832 <div class="absolute bottom-8 left-0 w-full flex justify-center"> 1833 <div class="text-center w-[73%]">
1834 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Become a PRO Partner</span> 1835 </div> 1836 </div> 1837 </a> 1838 1839 1840 <a href="https://login.circle.so/sign_in?request_host=pro-community-90b881.circle.so" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 1841 1842<div class="relative overflow-hidden h-full" style=""> 1843 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 1844//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-PRO-Partners-Benefits.jpg?v=1762883693&width=1066 1066w," style="object-fit:cover; 1845 width:100%; 1846 height: 100%;" fetchpriority="auto"> 1847</div> 1848 1849 <div class="absolute bottom-8 left-0 w-full flex justify-center text-center"> 1850 <div class="text-center w-[73%]"> 1851 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">The Circle of Hands Community</span> 1852 </div> 1853 </div> 1854 </a> 1855 1856 1857 <a href="/pages/pro-events" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 1858 1859<div class="relative overflow-hidden h-full" style=""> 1860 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744" alt="" width="1200" height="1200" loading="lazy" sizes="325px" srcset=" 1861//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-WebinarEvents.png?v=1763485744&width=1066 1066w," style="object-fit:cover; 1862 width:100%; 1863 height: 100%;" fetchpriority="auto"> 1864</div> 1865 1866 <div class="absolute bottom-8 left-0 w-full flex justify-center text-center"> 1867 <div class="text-center w-[73%]"> 1868 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Live PRO Webinar Events</span> 1869 </div> 1870 </div> 1871 </a> 1872 1873 </div> 1874 1875 1876 1877 1878</div> 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 </li> 1892 1893 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 1894 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/pages/skindex"> 1895 Skindex 1896 1897 1898 </a> 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912<div class="flex absolute w-screen left-0 top-full bg-blush-light-pink px-10 py-8 gap-20 z-50 opacity-0 -translate-y-2 pointer-events-none transition-[opacity,translate] duration-200 ease-out group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto"> 1913 1914
1915 1916 1917 1918 1919 <div class="grid grid-cols-4 gap-4 nav-option-3"> 1920 1921 <a href="https://blog.reneerouleau.com/skin-care-for-menopause/" class="flex flex-col justify-start gap-4 text-center"> 1922 <div class="aspect-square w-full"> 1923 1924<div class="relative overflow-hidden w-full h-full" style=""> 1925 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 390px, 25vw" srcset=" 1926//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Common-Skin-Concerns-Menopause_1.jpg?v=1763485768&width=1066 1066w," style="object-fit:cover; 1927 width:100%; 1928 height: 100%;" fetchpriority="auto"> 1929</div> 1930 1931 </div> 1932 <span class="w-full text-center uppercase font-bold leading-[130%] tracking-[1.3px] text-subheading-2">How to Address 8 Common Skin Concerns During Menopause</span> 1933 </a> 1934 1935 1936 <a href="https://blog.reneerouleau.com/four-types-skin-discoloration-get-rid-fast/" class="flex flex-col justify-start gap-4 text-center"> 1937 <div class="aspect-square w-full"> 1938 1939<div class="relative overflow-hidden w-full h-full" style=""> 1940 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 390px, 25vw" srcset=" 1941//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Four-Types-Skin-Discoloration.jpg?v=1762884499&width=1066 1066w," style="object-fit:cover; 1942 width:100%; 1943 height: 100%;" fetchpriority="auto"> 1944</div> 1945 1946 </div> 1947 <span class="w-full text-center uppercase font-bold leading-[130%] tracking-[1.3px] text-subheading-2">The Four Types of Skin Discolorationâand How To Get Rid of Them Faster</span> 1948 </a> 1949 1950 1951 <a href="https://blog.reneerouleau.com/8-tips-prevent-chin-jawline-breakouts/" class="flex flex-col justify-start gap-4 text-center"> 1952 <div class="aspect-square w-full"> 1953 1954<div class="relative overflow-hidden w-full h-full" style=""> 1955 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 390px, 25vw" srcset=" 1956//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Eight-Tips-Get-Rid-Cystic-Acne-Chin-Jawline.jpg?v=1762884540&width=1066 1066w," style="object-fit:cover; 1957 width:100%; 1958 height: 100%;" fetchpriority="auto"> 1959</div> 1960 1961 </div>
1962 <span class="w-full text-center uppercase font-bold leading-[130%] tracking-[1.3px] text-subheading-2">8 Tips to Prevent Cystic Breakouts on Your Chin and Jawline</span> 1963 </a> 1964 1965 1966 <a href="https://blog.reneerouleau.com/skin-type-quiz/" class="flex flex-col justify-start gap-4 text-center"> 1967 <div class="aspect-square w-full"> 1968 1969<div class="relative overflow-hidden w-full h-full" style=""> 1970 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 390px, 25vw" srcset=" 1971//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Skin-Type-Is-Everything.jpg?v=1762885418&width=1066 1066w," style="object-fit:cover; 1972 width:100%; 1973 height: 100%;" fetchpriority="auto"> 1974</div> 1975 1976 </div> 1977 <span class="w-full text-center uppercase font-bold leading-[130%] tracking-[1.3px] text-subheading-2">Skin Type is Everything âHereâs How It Determines Which Products Will Work Best for You</span> 1978 </a> 1979 1980 1981 <div class="col-span-4 flex justify-center items-center mt-6"> 1982 1983 1984 1985 1986 1987<a class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" href="https://www.reneerouleau.com/pages/skindex" aria-label="Click to read more about skindex"> 1988 1989 <span class=" uppercase"> 1990 Read more 1991 </span> 1992 1993 1994 </a> 1995 </div> 1996 1997 </div> 1998 1999 2000</div> 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 </li> 2011 2012 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 2013 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/pages/online-skincare-consultations"> 2014 Consultation 2015 2016 2017 </a> 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 </li> 2035 2036 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 2037 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/pages/about"> 2038 About 2039 2040 2041 </a> 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058<div class="flex absolute w-screen left-0 top-full bg-blush-light-pink px-10 py-8 gap-20 z-50 opacity-0 -translate-y-2 pointer-events-none transition-[opacity,translate] duration-200 ease-out group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto"> 2059 2060 2061 2062 2063 <div class="grow flex flex-col gap-4 nav-option-2"> 2064 2065 <div class="flex shrink-0"> 2066 <a href="/pages/about" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">About Renée Rouleau</a> 2067 </div> 2068 2069 <div class="flex shrink-0"> 2070 <a href="/pages/skincare-ingredient-dictionary" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Ingredient Glossary</a> 2071 </div> 2072 2073 <div class="flex shrink-0"> 2074 <a href="/pages/podcast-appearances" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">In The Press</a> 2075 </div> 2076 2077 <div class="flex shrink-0"> 2078 <a href="/pages/media-inquiries" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Podcasts & Media Requests</a> 2079 </div> 2080 2081 </div> 2082 <div class="flex gap-4 justify-end"> 2083 2084 2085 <a href="/pages/about" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 2086 2087<div class="relative overflow-hidden h-full" style=""> 2088 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892" alt="" width="1200" height="1200" loading="lazy" sizes="325px" srcset=" 2089//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-MeetRenee.png?v=1763485892&width=1066 1066w," style="object-fit:cover; 2090 width:100%; 2091 height: 100%;" fetchpriority="auto"> 2092</div> 2093 2094 <div class="absolute bottom-8 left-0 w-full flex justify-center"> 2095 <div class="text-center w-[73%]">
2096 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Meet Renée</span> 2097 </div> 2098 </div> 2099 </a> 2100 2101 2102 <a href="https://www.reneerouleau.com/pages/about#our-products" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 2103 2104<div class="relative overflow-hidden h-full" style=""> 2105 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 2106//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-NAV-ProductPhilosophy.jpg?v=1763485926&width=1066 1066w," style="object-fit:cover; 2107 width:100%; 2108 height: 100%;" fetchpriority="auto"> 2109</div> 2110 2111 <div class="absolute bottom-8 left-0 w-full flex justify-center text-center"> 2112 <div class="text-center w-[73%]"> 2113 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Our Product Philosophy</span> 2114 </div> 2115 </div> 2116 </a> 2117 2118 2119 <a href="https://www.reneerouleau.com/pages/about#timeline" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 2120 2121<div class="relative overflow-hidden h-full" style=""> 2122 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 2123//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-Skincare-Timeline-1989.jpg?v=1762963050&width=1066 1066w," style="object-fit:cover; 2124 width:100%; 2125 height: 100%;" fetchpriority="auto"> 2126</div> 2127 2128 <div class="absolute bottom-8 left-0 w-full flex justify-center text-center"> 2129 <div class="text-center w-[73%]"> 2130 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Our History</span> 2131 </div> 2132 </div> 2133 </a> 2134 2135 </div> 2136 2137 2138 2139 2140</div> 2141 2142 2143 2144 2145 2146 2147 </li> 2148 2149 <li class="group hover:underline underline-offset-[25%] decoration-[10%] h-full flex items-center py-8 px-2"> 2150 <a class="text-subheading-2 font-bold leading-[110%] tracking-[1.3px] uppercase" href="/pages/skin-type-quiz"> 2151 <span class="!bg-mint-green">Find Your Skin Type</span> 2152 2153 2154 </a> 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174<div class="flex absolute w-screen left-0 top-full bg-blush-light-pink px-10 py-8 gap-20 z-50 opacity-0 -translate-y-2 pointer-events-none transition-[opacity,translate] duration-200 ease-out group-hover:opacity-100 group-hover:translate-y-0 group-hover:pointer-events-auto"> 2175 2176
2177 2178 2179 <div class="grow flex flex-col gap-4 nav-option-2"> 2180 2181 <div class="flex shrink-0"> 2182 <a href="/pages/skin-types" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">9 Skin Types</a> 2183 </div> 2184 2185 <div class="flex shrink-0"> 2186 <a href="/pages/skin-type-quiz" class="font-normal text-subheading-2 leading-[110%] tracking-[1.3px] uppercase whitespace-nowrap">Take the Quiz</a> 2187 </div> 2188 2189 </div> 2190 <div class="flex gap-4 justify-end"> 2191 2192 2193 <a href="/pages/skin-types" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 2194 2195<div class="relative overflow-hidden h-full" style=""> 2196 <img src="//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947" alt="" width="2999" height="2000" loading="lazy" sizes="325px" srcset=" 2197//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=165 165w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=360 360w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=533 533w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=720 720w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=940 940w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/f976d6772dafff0a7284159d4ec0474fc90204e8.jpg?v=1773085947&width=2560 2560w," style="object-position:73.4883% 50.1784%;object-fit:cover; 2198 width:100%; 2199 height: 100%;" fetchpriority="auto"> 2200</div> 2201 2202 <div class="absolute bottom-8 left-0 w-full flex justify-center"> 2203 <div class="text-center w-[73%]"> 2204 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">The 9 Skin Types</span> 2205 </div> 2206 </div> 2207 </a> 2208 2209 2210 <a href="/pages/skin-type-quiz" class="relative aspect-square grow shrink self-start min-w-[240px] max-w-[325px]"> 2211 2212<div class="relative overflow-hidden h-full" style=""> 2213 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209" alt="" width="1400" height="1400" loading="lazy" sizes="325px" srcset=" 2214//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-Skincare-Type-1_85d7e860-7f1f-4db3-9dc3-907864840fce.jpg?v=1770238209&width=1066 1066w," style="object-fit:cover; 2215 width:100%; 2216 height: 100%;" fetchpriority="auto"> 2217</div> 2218 2219 <div class="absolute bottom-8 left-0 w-full flex justify-center text-center"> 2220 <div class="text-center w-[73%]"> 2221 <span class="inline bg-mint-green text-body-copy font-light py-0 leading-[2] tracking-[2px] uppercase whitespace-normal break-words [box-decoration-break:clone] [-webkit-box-decoration-break:clone]">Find Your Skin Type</span> 2222 </div> 2223 </div> 2224 </a> 2225 2226 2227 </div> 2228 2229 2230 2231 2232</div> 2233 2234 2235 2236 </li> 2237 2238 </ul> 2239 </nav> 2240 <div class="flex gap-3 items-center justify-end pl-2"> 2241 <div class="hdr_account hidden items-center"> 2242 <a href="https://www.reneerouleau.com/customer_authentication/redirect?locale=en®ion_country=US" class="uppercase text-subheading-2 font-light leading-[110%] tracking-[1.3px]">Account</a> 2243 </div> 2244 <div class="flex items-center"> 2245 <div class="group w-full" data-predictive-search> 2246 <input type="checkbox" class="hidden peer" id="toggle-search-desktop"> 2247 <label aria-label="toggle for search" for="toggle-search-desktop"> 2248 2249 2250<span class="" > 2251 2252 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
2252ox="0 0 16 16" fill="none"> 2253 <circle cx="7" cy="7" r="6.5" stroke="black"/> 2254 <path d="M11.5 12L15 15.5" stroke="black"/> 2255 </svg> 2256 2257 2258</span> 2259 2260 </label> 2261 2262<div class="hidden group-has-[input:checked]:block absolute w-full left-0 top-full bg-blush-light-pink z-50"> 2263 <div class="flex items-center gap-3 lg:gap-4 px-4 lg:px-10 py-4"> 2264 <form action="/search" 2265 method="get" 2266 role="search" 2267 data-search-form 2268 class="border border-black rounded-[100px] w-full flex px-5.5 h-[50px] items-center bg-[#F8F8F8]" 2269 > 2270 <input type="search" 2271 name="query" 2272 id="search" 2273 placeholder="Search" 2274 aria-label="Search" 2275 class="w-full" 2276 onkeydown="if(event.key === 'Enter') event.preventDefault()" 2277 > 2278 2279 2280<span class="" > 2281 2282 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="14" viewBox="0 0 12 14" fill="none"> 2283 <path d="M7.36246 11.48L6.28996 10.401L8.65596 8.0415L0.667461 8.0285V6.4295L8.65596 6.4425L6.28996 4.0765L7.36246 3.004L11.6005 7.242L7.36246 11.48Z" fill="black"/> 2284 </svg> 2285 2286 2287</span> 2288 2289 </form> 2290 <label aria-label="toggle for search" for="toggle-search-desktop" class="cursor-pointer shrink-0"> 2291 X 2292 </label> 2293 </div> 2294 <div data-results-container class="border-t border-black z-50"></div> 2295 <label class="hidden group-has-[input:checked]:block absolute w-full h-screen z-40" aria-label="toggle for search" for="toggle-search-desktop"></label> 2296 </div> 2297</div> 2298 2299 </div> 2300 <div> 2301 <div class="relative"> 2302 <input 2303 id="cart-drawer-toggle" 2304 type="checkbox" 2305 class="peer hidden" 2306 aria-label="Cart ×" 2307 data-scroll-lock 2308 onload="this.checked=false" 2309 /> 2310 2311 <label 2312 aria-label="Open cart" 2313 for="cart-drawer-toggle" 2314 class="relative block cursor-pointer" 2315 > 2316 2317 2318<span class="" > 2319 2320 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="23" viewBox="0 0 20 23" fill="none"> 2321 <path d="M5 12H6V8H14V12H15V8H17L20 22.5H0L3 8H5V12Z" fill="black"/> 2322 <path d="M6 8V5C6 2.79086 7.79086 1 10 1V1C12.2091 1 14 2.79086 14 5V8" stroke="black"/> 2323 </svg> 2324 2325 2326</span> 2327 2328 <span class="hidden">Cart</span> 2329 </label> 2330 2331 <label aria-label="cart drawer toggle" for="cart-drawer-toggle" class="overlay bg-[rgba(0,0,0,0.3)] fixed inset-0 z-10 w-screen h-screen pointer-events-none peer-checked:pointer-events-auto opacity-0 peer-checked:opacity-100 transition-all"></label> 2332 2333 <div 2334 data-ajaxcart 2335 class="fixed h-dvh top-0 bottom-0 z-20 w-[400px] lg:w-[450px] max-w-full grid grid-rows-[auto_1fr_auto] bg-blush-light-pink text-[black] right-[-100%] peer-checked:right-0 transition-all" 2336 > 2337 <div> 2338 <div class="w-full flex flex-row-reverse justify-between items-center px-7 py-4"> 2339 <label 2340 for="cart-drawer-toggle" 2341 aria-label="Close cart" 2342 class="cursor-pointer text-[24px]" 2343 > 2344 × 2345 </label> 2346 <h2 class="w-full text-subheading-4 font-bold leading-[120%] tracking-[1.4px] uppercase"> 2347 Your cart (<span data-item-count>0</span> items) 2348 </h2> 2349 <div></div> 2350 </div> 2351 2352 2353 2354<div class="free-ship-bar mb-4 pb-6 mx-7" data-free-ship="12500" data-threshold-kind="free-shipping"> 2355 <div style="display: block" data-freeship-content> 2356 <p class="mt-5 mb-3 text-center text-subheading-1-mob font-bold leading-[120%] tracking-[1.2px] uppercase px-4"> 2357 You are 2358 <span class="text-primary" data-remaining> 2359 $125.00 2360 </span> 2361 away from free shipping 2362 </p> 2363 2364 <div class="w-full h-2 border-black border rounded-[50px] relative overflow-hidden"> 2365 <div style="width: 0%; transition: width 0.3s;" class="h-full bg-mint-green absolute top-0 left-0 rounded-xl" data-progress></div> 2366 </div> 2367 </div> 2368 2369 <div style="display: none" data-freeship-achieved> 2370 <p class="mt-5 text-center font-primary text-p-mob px-4">You Unlocked Free Shipping!</p> 2371 </div> 2372</div> 2373 2374 </div> 2375 2376 <div class="overflow-scroll no-scrollbar pb-4"> 2377 <input data-subtotal-value type="hidden" value="$0.00 2378" /> 2379 2380<div data-ajax-cart-content data-cart-change-url="/cart/change"> 2381 <div data-empty-cart-content class="empty-cart h-full flex items-center" style="display: flex;"> 2382 <h2 class="w-full text-subheading-4 font-bold leading-[120%] tracking-[1.4px] uppercase text-center"> 2383 Your Cart is Empty 2384 </h2> 2385 </div> 2386 <ul data-cart-with-items-content style="display: none;"></ul> 2387</div> 2388 2389 </div> 2390 2391 <div data-cart-with-items-content class="hidden border-t border-t-blush-pink py-6 px-4"> 2392 <div class="flex justify-between mb-3 text-subheading-4 font-bold leading-[120%] tracking-[1.4px] uppercase"> 2393 <h4>Estimated Subtotal:</h4>
2394 <span data-subtotal class="flex items-baseline justify-end gap-2">$0.00 2395</span> 2396 </div> 2397 2398 <form 2399 method="POST" 2400 action="/checkout" 2401 class="w-full" 2402 2403 > 2404 2405 2406 2407 <div class="flex flex-col gap-3"> 2408 2409 2410 2411 2412 2413<button class="w-full uppercase h-[43px] lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 2414 2415 <span class=" uppercase"> 2416 Checkout 2417 </span> 2418 2419 2420 </button> 2421 2422 2423 2424 2425 2426<a class="uppercase h-[43px] lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" href="/collections/all" > 2427 2428 <span class=" uppercase"> 2429 Continue Shopping 2430 </span> 2431 2432 2433 </a> 2434 <span class="text-center text-body-copy-mob font-light leading-[120%]">Taxes and shipping calculated at checkout.</span> 2435 </div> 2436 </form> 2437 </div> 2438 </div> 2439</div> 2440 2441 </div> 2442 </div> 2443</div> 2444 2445 2446 2447</header> 2448 <header id="shopify-section-b2b-header" class="shopify-section header relative z-10"> 2449 2450 2451 2452 2453 2454 2455</header> 2456 <main id="MainContent" role="main" tabindex="-1" class="relative z-0"> 2457 <div id="shopify-section-template--17672948514875__product_description_9h6PMa" class="shopify-section product-description"> 2458 2459 2460 2461 2462
2463<script type="application/ld+json"> 2464 { 2465 "@context": "https://schema.org", 2466 "@type": "Product", 2467 "name": "Skin Drink I.V.", 2468 "url": "https:\/\/www.reneerouleau.com\/products\/skin-drink-i-v","image": [ 2469 "\/\/www.reneerouleau.com\/cdn\/shop\/files\/preview_images\/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924\u0026width=1080" 2470 ],"description": "\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e","sku": "79494","brand": { 2471 "@type": "Brand", 2472 "name": "Renée Rouleau Professional Skin Care" 2473 },"aggregateRating": { 2474 "@type": "AggregateRating", 2475 "ratingValue": 4.8, 2476 "reviewCount": 9 2477 },"aggregateOffer": { 2478 "@type": "AggregateOffer", 2479 "lowPrice": 72.5, 2480 "highPrice": 72.5, 2481 "priceCurrency": "USD", 2482 "offerCount": 1 2483 }, 2484 "offers": [{ 2485 "@type": "Offer","sku": "79494","availability": "https://schema.org/InStock", 2486 "itemCondition": "https://schema.org/NewCondition","price": 72.5, 2487 "priceCurrency": "USD", 2488 "priceValidUntil": "2027-09-24", 2489 "url": "https:\/\/www.reneerouleau.com\/products\/skin-drink-i-v?variant=43374648328251", 2490 "seller": { 2491 "@type": "Organization", 2492 "name": "Renée Rouleau Professional Skin Care" 2493 }, 2494 "shippingDetails": { 2495 "@type": "OfferShippingDetails", 2496 "shippingDestination": { 2497 "@type": "DefinedRegion", 2498 "addressCountry": "US" 2499 }, 2500 "shippingRate": { 2501 "@type": "MonetaryAmount", 2502 "value": 8.95, 2503 "currency": "USD" 2504 }, 2505 "deliveryTime": { 2506 "@type": "ShippingDeliveryTime", 2507 "handlingTime": { 2508 "@type": "QuantitativeValue", 2509 "minValue": 0, 2510 "maxValue": 1, 2511 "unitCode": "d" 2512 }, 2513 "transitTime": { 2514 "@type": "QuantitativeValue", 2515 "minValue": 3, 2516 "maxValue": 6, 2517 "unitCode": "d" 2518 } 2519 } 2520 }, 2521 "hasMerchantReturnPolicy": { 2522 "@type": "MerchantReturnPolicy", 2523 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 2524 "applicableCountry": "US", 2525 "merchantReturnDays": 45, 2526 "returnMethod": "https://schema.org/ReturnByMail", 2527 "returnFees": "https://schema.org/ReturnFeesCustomerResponsibility", 2528 "returnableItemConditions": "https://schema.org/NewCondition", 2529 "refundType": "https://schema.org/StoreCreditRefund", 2530 "merchantReturnLink": "https://www.reneerouleau.com/pages/shipping-delivery" 2531 } 2532 }] 2533 } 2534</script>
2534 2535 2536 2537<div class="my-8 min-[1075px]:mt-24 lg:px-9"> 2538 2539 <nav class="breadcrumbs mt-4 text-caption-small pb-2.5 pl-5 pr-5 lg:pl-0 lg:pr-0" role="navigation" aria-label="Breadcrumb"> 2540 <ul class="flex flex-wrap items-center gap-x-1 gap-y-0.5" itemscope itemtype="https://schema.org/BreadcrumbList"> 2541 2542 2543 <!-- Home --> 2544 2545 <li class="inline-flex items-center whitespace-nowrap" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> 2546 <a class="font-light text-subheading-4 leading-[120%] text-black/50" href="/" itemprop="item"> 2547 <span class="font-light text-subheading-4 leading-[120%] text-black/50" itemprop="name">Home</span> 2548 </a> 2549 <meta itemprop="position" content="1"> 2550 </li> 2551 2552 2553 2554 2555 2556 <li class="inline-flex items-center whitespace-nowrap" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> 2557 <span aria-hidden="true" class="mr-1 text-black/50">/</span> 2558 <a href="/collections/all" itemprop="item"> 2559 <span class="font-light text-subheading-4 leading-[120%] text-black/50" itemprop="name">All Products</span> 2560 </a> 2561 <meta itemprop="position" content="2"> 2562 </li> 2563 2564 2565 2566 <li class="min-w-0 max-w-full" aria-current="page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> 2567 <span aria-hidden="true" class="mr-1 text-black/50">/</span> 2568 <span class="font-light text-subheading-4 leading-[120%] text-black/50 break-words" itemprop="name">Skin Drink I.V.</span> 2569 <meta itemprop="position" content="3"> 2570 </li> 2571 </ul> 2572 </nav> 2573 2574 2575 2576 <div class="lg:grid lg:grid-cols-2 gap-9"> 2577 <div class="featured-image lg:col-span-1 relative"> 2578 <span 2579 data-product-availability-badge 2580 class="absolute top-2.5 left-1 lg:left-2.5 z-30 bg-black px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase text-white" 2581 2582 style="display:none" 2583 >SOLD OUT</span> 2584 <div class="slider splide" data-slider= 2585 ' 2586 { 2587 "perPage": 1, 2588 "pagination": false, 2589 "arrows": false, 2590 "autoHeight": true, 2591 "adjustableHeight": { 2592 "whileSliding": true, 2593 "speed": "0.4s" 2594 } 2595 } 2596 ' 2597> 2598 <div class="splide__track"> 2599 <ul class="splide__list"> 2600 2601 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2602 2603 <div 2604 class="hero-video relative w-full h-full" 2605 data-video='{ 2606 "autoplay": true, 2607 "loop": false, 2608 "changeSlide": false, 2609 "inView": false 2610 }' 2611 data-video-id="27364451516475-video" 2612 style="" 2613> 2614 2615 2616 2617 <div class="hero-video_poster absolute inset-0 z-10 transition-opacity duration-500" data-video-poster> 2618 <img src="//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=1000" alt="" srcset="//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=352 352w, //www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=832 832w, //www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=1000 1000w" width="1000" height="1778" loading="lazy" class="w-full h-full object-cover"> 2619 </div> 2620 2621 2622 2623<div class="absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-12 h-12"> 2624 2625 2626<span class="hidden" data-play> 2627 2628 <svg xmlns="http://www.w3.org/2000/svg" width="68" height="68" viewBox="0 0 68 68" fill="none"> 2629 <circle cx="34" cy="34" r="34" fill="black" fill-opacity="0.3"/> 2630 <path d="M52.5 31.4019C54.5 32.5566 54.5 35.4434 52.5 36.5981L27 51.3205C25 52.4752 22.5 51.0318 22.5 48.7224L22.5 19.2776C22.5 16.9682 25 15.5248 27 16.6795L52.5 31.4019Z" fill="white"/> 2631 </svg> 2632 2633 2634</span> 2635 2636 </div> 2637 2638 2639 <div class="absolute z-20 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 hidden w-12 h-12" data-unmute-center> 2640 2641 2642<span class="" > 2643 2644 <svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none"> 2645 <circle cx="10.5" cy="10" r="10" fill="black" fill-opacity="0.3"/>
2646 <g filter="url(#filter0_d_897_5786)"> 2647 <path d="M4.5 12V8.5H7L9.67196 6.27336C9.80223 6.16481 10 6.25744 10 6.42701V14.073C10 14.2426 9.80223 14.3352 9.67196 14.2266L7 12H4.5Z" stroke="white"/> 2648 <line x1="12.8536" y1="8.3536" x2="16.3891" y2="11.8891" stroke="white"/> 2649 <line x1="16.3892" y1="8.35355" x2="12.8537" y2="11.8891" stroke="white"/> 2650 </g> 2651 <defs> 2652 <filter id="filter0_d_897_5786" x="0" y="1.72565" width="20.7427" height="17.0487" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> 2653 <feFlood flood-opacity="0" result="BackgroundImageFix"/> 2654 <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> 2655 <feOffset/> 2656 <feGaussianBlur stdDeviation="2"/> 2657 <feComposite in2="hardAlpha" operator="out"/> 2658 <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0"/> 2659 <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_897_5786"/> 2660 <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_897_5786" result="shape"/> 2661 </filter> 2662 </defs> 2663 </svg> 2664 2665</span> 2666 2667 </div> 2668 2669 2670 2671 <div class="absolute z-20 bottom-3 right-3 w-6 h-6"> 2672 2673 2674<span class="hidden" data-pause> 2675 2676 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2677 <circle cx="10" cy="10" r="10" fill="black" fill-opacity="0.3"/> 2678 <rect x="7" y="6" width="2" height="8" fill="white"/> 2679 <rect x="11" y="6" width="2" height="8" fill="white"/> 2680 </svg> 2681 2682 2683</span> 2684 2685 </div> 2686 2687 2688 2689 2690 <div class="absolute z-20 bottom-3 right-10 hidden w-6 h-6" data-audio> 2691 2692 2693<span class="" > 2694 2695 <svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none"> 2696 <circle cx="10.5" cy="10" r="10" fill="black" fill-opacity="0.3"/> 2697 <g filter="url(#filter0_d_3908_410)"> 2698 <path d="M4.5 12V8.5H7L9.67196 6.27336C9.80223 6.16481 10 6.25744 10 6.42701V14.073C10 14.2426 9.80223 14.3352 9.67196 14.2266L7 12H4.5Z" stroke="white"/> 2699 <path d="M13.5 6.53516C15.1962 6.77775 16.5 8.23675 16.5 10C16.5 11.7632 15.1961 13.2212 13.5 13.4639V12.4492C14.641 12.2175 15.5 11.2094 15.5 10C15.5 8.79051 14.6411 7.78142 13.5 7.5498V6.53516Z" fill="white"/> 2700 <path d="M12.5 8C13.6046 8 14.5 8.89543 14.5 10C14.5 11.1046 13.6046 12 12.5 12V11C13.0523 11 13.5 10.5523 13.5 10C13.5 9.44772 13.0523 9 12.5 9V8Z" fill="white"/> 2701 </g> 2702 <defs> 2703 <filter id="filter0_d_3908_410" x="0" y="1.72559" width="20.5" height="17.0488" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"> 2704 <feFlood flood-opacity="0" result="BackgroundImageFix"/> 2705 <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> 2706 <feOffset/> 2707 <feGaussianBlur stdDeviation="2"/> 2708 <feComposite in2="hardAlpha" operator="out"/> 2709 <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0"/> 2710 <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_3908_410"/> 2711 <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_3908_410" result="shape"/> 2712 </filter> 2713 </defs> 2714 </svg> 2715 2716 2717</span> 2718 2719 </div> 2720 2721 <div class="absolute z-20 bottom-3 right-10 hidden w-6 h-6" data-mute> 2722 2723 2724<span class="" > 2725 2726 <svg xmlns="http://www.w3.org/2000/svg" width="21" height="20" viewBox="0 0 21 20" fill="none"> 2727 <circle cx="10.5" cy="10" r="10" fill="black" fill-opacity="0.3"/> 2728 <g filter="url(#filter0_d_897_5786)"> 2729 <path d="M4.5 12V8.5H7L9.67196 6.27336C9.80223 6.16481 10 6.25744 10 6.42701V14.073C10 14.2426 9.80223 14.3352 9.67196 14.2266L7 12H4.5Z" stroke="white"/> 2730 <line x1="12.8536" y1="8.3536" x2="16.3891" y2="11.8891" stroke="white"/> 2731 <line x1="16.3892" y1="8.35355" x2="12.8537" y2="11.8891" stroke="white"/> 2732 </g> 2733 <defs> 2734 <filter id="filter0_d_897_5786" x="0" y="1.72565" width="20.7427" height="17.0487" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
2735 <feFlood flood-opacity="0" result="BackgroundImageFix"/> 2736 <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/> 2737 <feOffset/> 2738 <feGaussianBlur stdDeviation="2"/> 2739 <feComposite in2="hardAlpha" operator="out"/> 2740 <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0"/> 2741 <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_897_5786"/> 2742 <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_897_5786" result="shape"/> 2743 </filter> 2744 </defs> 2745 </svg> 2746 2747</span> 2748 2749 </div> 2750 2751 2752 2753 <div class="hero-video_element w-full h-full object-cover object-center" id="27364451516475-video-wrapper"> 2754 <video 2755 playsinline 2756 preload="none" 2757 2758 2759 muted 2760 2761 2762 poster="//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=1000" 2763 2764 data-defer-autoplay-load 2765 > 2766 2767 <source data-src="//www.reneerouleau.com/cdn/shop/videos/c/vp/5f777c7351d04f9c8b5ebe90b2ceb713/5f777c7351d04f9c8b5ebe90b2ceb713.m3u8?v=0" type="application/vnd.apple.mpegurl"> 2768 2769 <source data-src="//www.reneerouleau.com/cdn/shop/videos/c/vp/5f777c7351d04f9c8b5ebe90b2ceb713/5f777c7351d04f9c8b5ebe90b2ceb713.HD-1080p-7.2Mbps-91873986.mp4?v=0" type="video/mp4"> 2770 </video> 2771 </div> 2772 2773 2774</div> 2775 2776<style> 2777 .hero-video_element { 2778 width: 100%; 2779 height: 100%; 2780 } 2781 .hero-video_element video { 2782 width: 100%; 2783 height: 100%; 2784 object-fit: cover; 2785 } 2786 .hero-video[data-playing="true"] .hero-video_poster { 2787 opacity: 0; 2788 pointer-events: none; 2789 } 2790 [data-unmute-center] span, 2791 [data-unmute-center] svg, 2792 [data-play], 2793 [data-play] svg, 2794 [data-pause], 2795 [data-pause] svg, 2796 [data-audio] span, 2797 [data-audio] svg, 2798 [data-mute] span, 2799 [data-mute] svg { 2800 width: 100%; 2801 height: 100%; 2802 } 2803</style> 2804 2805 2806 </li> 2807 2808 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2809 2810 2811<div class="relative overflow-hidden w-full h-full" style=""> 2812 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077" alt="Skin Drink I.V." width="1024" height="1024" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2813//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=940 940w," style="object-fit:cover; 2814 width:100%; 2815 height: 100%;object-position: center;" fetchpriority="high"> 2816</div> 2817 2818 2819 </li> 2820 2821 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2822 2823 2824<div class="relative overflow-hidden w-full h-full" style=""> 2825 <img src="//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2826//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=165 165w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=360 360w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=533 533w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=720 720w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=940 940w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=1066 1066w," style="object-fit:cover; 2827 width:100%; 2828 height: 100%;object-position: center;" fetchpriority="high"> 2829</div> 2830 2831 2832 </li> 2833
2834 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2835 2836 2837<div class="relative overflow-hidden w-full h-full" style=""> 2838 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2839//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 2840 width:100%; 2841 height: 100%;object-position: center;" fetchpriority="high"> 2842</div> 2843 2844 2845 </li> 2846 2847 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2848 2849 2850<div class="relative overflow-hidden w-full h-full" style=""> 2851 <img src="//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2852//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=1066 1066w," style="object-fit:cover; 2853 width:100%; 2854 height: 100%;object-position: center;" fetchpriority="high"> 2855</div> 2856 2857 2858 </li> 2859 2860 <li class="splide__slide w-full aspect-[6/7] overflow-hidden"> 2861 2862 2863<div class="relative overflow-hidden w-full h-full" style=""> 2864 <img src="//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212" alt="Skin Drink I.V." width="1360" height="1480" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2865//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=1066 1066w," style="object-fit:cover; 2866 width:100%; 2867 height: 100%;object-position: center;" fetchpriority="high"> 2868</div> 2869 2870 2871 </li> 2872 2873 </ul> 2874 </div> 2875 <div class="lg:absolute lg:top-1/2 lg:-translate-y-1/2 lg:left-5 z-10 mt-3 lg:mt-0 mb-3 lg:mb-0"> 2876 <div class="slider splide lg:w-16" data-connected-slider= 2877 ' 2878 { 2879 "direction": "ltr", 2880 "isNavigation": true, 2881 "perPage": 5, 2882 "arrows": false, 2883 "gap": "7.6px", 2884 "padding": {"left": "20px", "right": "10%"}, 2885 "pagination": false, 2886 "fixedHeight": "60px", 2887 "mediaQuery": "min", 2888 "breakpoints": { 2889 "1024": { 2890 "arrows": true, 2891 "type": "loop", 2892 "height": 388, 2893 "fixedHeight": "fit-content", 2894 "direction": "ttb" 2895 } 2896 } 2897 } 2898 ' 2899> 2900 <div class="splide__arrows"> 2901 <button class="splide__arrow splide__arrow--prev [&_svg]:!fill-[none] !bg-transparent !-top-8" aria-label="Previous slide"> 2902 2903 2904<span class="rotate-90" > 2905 2906 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="9" viewBox="0 0 16 9" fill="none"> 2907 <path d="M1 8L8 1L15 8" stroke="black"/> 2908 </svg> 2909 2910 2911</span> 2912 2913 </button> 2914 <button class="splide__arrow splide__arrow--next [&_svg]:!fill-[none] !bg-transparent !-bottom-8" aria-label="Next slide"> 2915 2916 2917<span class="rotate-90" > 2918 2919 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="9" viewBox="0 0 16 9" fill="none"> 2920 <path d="M1 8L8 1L15 8" stroke="black"/> 2921 </svg> 2922 2923 2924</span> 2925 2926 </button> 2927 </div> 2928 <div class="splide__track"> 2929 <ul class="splide__list"> 2930 2931 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2932 2933 2934<div class="relative overflow-hidden w-full h-full" style=""> 2935 <img src="//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924" alt="" width="1080" height="1920" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2936//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=165 165w,//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=360 360w,//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=533 533w,//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=720 720w,//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=940 940w,//www.reneerouleau.com/cdn/shop/files/preview_images/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924&width=1066 1066w," style="object-fit:cover; 2937 width:100%; 2938 height: 100%;object-position: center;" fetchpriority="high"> 2939</div> 2940 2941 2942 </li> 2943 2944 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2945 2946 2947<div class="relative overflow-hidden w-full h-full" style=""> 2948 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077" alt="Skin Drink I.V." width="1024" height="1024" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2949//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=940 940w," style="object-fit:cover; 2950 width:100%; 2951 height: 100%;object-position: center;" fetchpriority="high"> 2952</div> 2953 2954 2955 </li> 2956 2957 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2958 2959 2960<div class="relative overflow-hidden w-full h-full" style=""> 2961 <img src="//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2962//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=165 165w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=360 360w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=533 533w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=720 720w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=940 940w,//www.reneerouleau.com/cdn/shop/files/SkinDrinkI.V.Swatch.png?v=1775074566&width=1066 1066w," style="object-fit:cover; 2963 width:100%; 2964 height: 100%;object-position: center;" fetchpriority="high"> 2965</div> 2966 2967 2968 </li> 2969 2970 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2971 2972 2973<div class="relative overflow-hidden w-full h-full" style=""> 2974 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2975//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 2976 width:100%; 2977 height: 100%;object-position: center;" fetchpriority="high"> 2978</div> 2979 2980 2981 </li> 2982 2983 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2984 2985 2986<div class="relative overflow-hidden w-full h-full" style=""> 2987 <img src="//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008" alt="Skin Drink I.V." width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 2988//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008&width=1066 1066w," style="object-fit:cover; 2989 width:100%; 2990 height: 100%;object-position: center;" fetchpriority="high"> 2991</div> 2992 2993 2994 </li> 2995 2996 <li class="splide__slide !border !border-black [&.is-active]:!border-2 overflow-hidden"> 2997 2998 2999<div class="relative overflow-hidden w-full h-full" style=""> 3000 <img src="//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212" alt="Skin Drink I.V." width="1360" height="1480" loading="false" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 3001//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR_B_A_SDIV.png?v=1785346212&width=1066 1066w," style="object-fit:cover; 3002 width:100%; 3003 height: 100%;object-position: center;" fetchpriority="high"> 3004</div> 3005 3006 3007 </li> 3008 3009 </ul> 3010 </div> 3011 </div> 3012 </div> 3013 </div> 3014 </div> 3015 <div class="product-details col-span-1 px-5 lg:px-0"> 3016 <div class="lg:mb-9.5"> 3017 <h1 class="lg:text-h1 text-h1-mob font-medium leading-[100%] font-heading mb-[10px]">Skin Drink I.V.</h1> 3018 3019 3020<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-7574678405179"><div data-oke-reviews-version="0.104.2" data-oke-container="" class="okeReviews oke-sr"><div class=""><div class="oke-sr-rating"> 4.8 </div><div class="oke-sr-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.933333333333334" href="#oke-star-empty"></use><use x="33.86666666666667" href="#oke-star-empty"></use><use x="50.8" href="#oke-star-empty"></use><use x="67.73333333333333" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 96.4534%;"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.933333333333334" href="#oke-star-filled"></use><use x="33.86666666666667" href="#oke-star-filled"></use><use x="50.8" href="#oke-star-filled"></use><use x="67.73333333333333" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 4.8 out of 5 stars</span></div></div><div class="oke-sr-count"><span class="oke-sr-count-number">4.8</span><span class="oke-sr-label-text"> / 5</span><!----></div><!----></div>
3020<script type="application/json" data-oke-metafield-data=""> {"averageRating":"4.8","reviewCount":9} </script>
3020</div></div> 3021 3022 3023 <span class="lg:text-subheading-1 text-subheading-1-mob font-light leading-[130%] tracking-[-.24px] lg:tracking-normal"><p>An electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.</p></span> 3024 </div> 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034<form method="post" action="/cart/add" accept-charset="UTF-8" class="main-product-form" enctype="multipart/form-data" data-product-form="true" data-product-id="7574678405179" data-original-product-price="7250"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3035 <input 3036 type="hidden" 3037 name="id" 3038 value="43374648328251" 3039 /> 3040 <div class="flex flex-col" style="order: 1;"> 3041 <div class="w-full flex flex-col justify-between mt-3.5 lg:my-0 gap-2 lg:gap-0"> 3042 3043 <span data-price class="flex items-baseline gap-2 text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase mb-2"> 3044 3045<span>$72.50</span> 3046 3047 3048 </span> 3049 3050 3051 <!-- DEBUG: start combine listing --> 3052 3053 <!-- DEBUG: combine_listing metafield does not exist --> 3054 3055 3056 </div> 3057 <div data-quantity-wrapper class="my-3.5" > 3058 3059 <div data-quantity class="border border-black w-28 lg:w-1/6 lg:h-min flex justify-center items-stretch my-auto"> 3060 <button type="button" data-minus aria-label="Decrease quantity" class="flex items-center justify-center px-4 py-3 cursor-pointer select-none leading-none">-</button> 3061 <input 3062 type="number" 3063 name="quantity" 3064 aria-label="Quantity" 3065 value="1" 3066 min="1" 3067 class="bg-light flex-1 min-w-0 text-center" 3068 > 3069 <button type="button" data-plus aria-label="Increase quantity" class="flex items-center justify-center px-4 py-3 cursor-pointer select-none leading-none">+</button> 3070 </div> 3071 3072 </div> 3073 </div> 3074 3075 3076 3077 3078 <div class="rr-selling-plan" data-selling-plan-selector data-selling-plan-show-savings="false"> 3079 <input 3080 type="hidden" 3081 name="selling_plan" 3082 value="" 3083 data-selling-plan-input 3084 disabled 3085 > 3086 <fieldset class="rr-selling-plan__fieldset"> 3087 <legend class="sr-only">Purchase options</legend> 3088 <div class="rr-selling-plan__controls"> 3089 <div class="rr-selling-plan__options"> 3090 <label class="rr-selling-plan__option"> 3091 <input 3092 type="radio" 3093 name="purchase_option" 3094 value="onetime" 3095 class="rr-selling-plan__radio" 3096 data-purchase-option 3097 checked 3098 3099 > 3100 <span class="rr-selling-plan__label"> 3101 <span class="rr-selling-plan__copy">One-Time Purchase</span> 3102 <span class="rr-selling-plan__price" data-selling-plan-price="onetime"> 3103 <span>$72.50</span> 3104</span> 3105 </span> 3106 </label> 3107 <label class="rr-selling-plan__option"> 3108 <input 3109 type="radio" 3110 name="purchase_option" 3111 value="subscription" 3112 class="rr-selling-plan__radio" 3113 data-purchase-option 3114 3115 > 3116 <span class="rr-selling-plan__label"> 3117 <span class="rr-selling-plan__copy"> 3118 <span> 3119 Subscribe & Save 10% 3120 </span> 3121 <span class="rr-selling-plan__flag">FREE SHIPPING</span> 3122 </span> 3123 <span class="rr-selling-plan__meta"> 3124 <span class="rr-selling-plan__price" data-selling-plan-price="subscription">$65.25</span> 3125 </span> 3126 </span> 3127 </label> 3128 </div> 3129 </div> 3130 <div class="rr-selling-plan__aside"> 3131 <button 3132 type="button"
3133 class="rr-selling-plan__tooltip-trigger" 3134 aria-label="Subscription details" 3135 aria-describedby="-selling-plan-tooltip" 3136 data-selling-plan-tooltip-trigger 3137 > 3138 <svg aria-hidden="true" viewBox="0 0 34 34" focusable="false"> 3139 <circle cx="17" cy="17" r="15.5" fill="none" stroke="currentColor" stroke-width="2"></circle> 3140 <path d="M17 15.5v8M17 10.5h.01" fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="2.4"></path> 3141 </svg> 3142 </button> 3143 <span 3144 id="-selling-plan-tooltip" 3145 class="rr-selling-plan__tooltip" 3146 role="tooltip" 3147 data-selling-plan-tooltip 3148 > 3149 Free shipping applies to subscription shipments. You can manage, skip, or cancel before your next delivery. 3150 </span> 3151 </div> 3152 <div class="rr-selling-plan__dropdown" data-selling-plan-dropdown hidden> 3153 <label class="rr-selling-plan__dropdown-label" for="-selling-plan">Deliver every</label> 3154 <span class="rr-selling-plan__select-wrap"> 3155 <select id="-selling-plan" class="rr-selling-plan__select" data-selling-plan-select> 3156 3157 3158 <option value="2628190267">30 days</option> 3159 3160 3161 <option value="2628223035">60 days</option> 3162 3163 3164 <option value="2628255803">90 days</option> 3165 3166 </select> 3167 </span> 3168 </div> 3169 </fieldset> 3170
3170<script type="application/json" data-selling-plan-allocations> 3171 {"43374648328251": {"2628190267": { 3172 "price":6525, 3173 "compare_at_price":7250, 3174 "per_delivery_price":6525 3175 },"2628223035": { 3176 "price":6525, 3177 "compare_at_price":7250, 3178 "per_delivery_price":6525 3179 },"2628255803": { 3180 "price":6525, 3181 "compare_at_price":7250, 3182 "per_delivery_price":6525 3183 }}} 3184 </script>
3184 3185 </div> 3186 3187 3188 3189 <div class="main-product-form-buttons" style="order: 3;"> 3190 <div data-atc-button > 3191 3192 3193 3194 3195 3196<button class=" main-atc w-full max-w-[100%] lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 3197 3198 <span class=" w-full px-4 py-3 flex justify-between items-center leading-[110%] uppercase"> 3199 3200 3201 <span class="leading-[110%]">ADD TO BAG</span> 3202 3203 <span data-price data-atc-price class="leading-[110%]"> 3204<span>$72.50</span> 3205</span> 3206 3207 </span> 3208 3209 3210 </button> 3211 </div> 3212 3213 <div data-bis-container style="display:none"> 3214 <a href="#" class="klaviyo-bis-trigger" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);pointer-events:none" aria-hidden="true" tabindex="-1">BIS</a> 3215 <button type="button" data-bis-open class="pf-bis_trigger main-atc w-full max-w-[350px] lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto bg-black text-white hover:bg-blush-pink hover:text-black transition-all ease-in-out duration-500"> 3216 <span class="w-full px-4 py-3 flex justify-center items-center uppercase">Notify Me When Available</span> 3217 </button> 3218 </div> 3219 3220 </div> 3221 3222 3223
3223<script type="application/json" data-variant-availability>{ "43374648328251":true } 3224 </script>
3224 3225<input type="hidden" name="product-id" value="7574678405179" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3226 3227 3228 <div id='afterpay-message-container' style="margin-top:4px;"></div> 3229 3230 3231 <div id="shopify-block-ARC9vVGFUU2FEeDhpT__pdp_accordion_i9QYUW" class="shopify-block"> 3232<div class="pt-12 pb-4"> 3233 <ul data-hc-body-click-toggle="pdp-accordion" class="flex flex-col gap-4"> 3234 3235 3236 3237 3238 3239 <li > 3240 <div class="group flex justify-between items-center cursor-pointer hover:bg-seafoam is-active" role="button" data-hc-control=get-a-feel-for-it aria-expanded="true"> 3241 <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Get a Feel For It</span> 3242 <span class="group-[&.is-active]:hidden">+</span> 3243 <span class="hidden group-[&.is-active]:block">-</span> 3244 </div> 3245 <div data-hc-content=get-a-feel-for-it class="is-active"> 3246 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[130%] tracking-[-.24px] [&_strong]:font-bold [&_a]:underline"><div class="metafield-rich_text_field"><p>Skin cells are like fish and need water to live. This supercharged serum combines a proprietary blend of electrolytes with 4 molecular weights of hyaluronic acid, plus a multi-humectant complex for hydration that doesnât just sit on the surface. It dives deeper to revive dehydrated skin at the source while calming visible redness for skin that looks healthy, refreshed, and plump.<br /> 3247<br /> 3248⢠Hydra5 Electrolyte Blend strengthens the skin barrier, improves hydration at the cellular level, and softens the look of fine lines.<br /> 3249⢠4D Hyaluronic Acid delivers four molecular weights to hydrate every layer, leaving thirsty skin visibly bouncy and dewy.<br /> 3250⢠Humectant-rich formula binds water deep into skin to relieve tightness and restore a plump, comfortable feel.<br /> 3251⢠Calms visible redness and sensitivity with continued use, including post-procedure, rosacea-prone, and reactive skin.<br /> 3252⢠Multi-humectant complex (Panthenol, Propanediol, Sodium PCA + HA) locks moisture into thirsty skin cells.<br /> 3253⢠Weightless, oil-free formula glides on without stickiness or tackiness, leaving skin feeling silky <br /> 3254⢠Replenishes skin after airplane travel, sauna sessions, summer heat, dry climates, hot yoga, and long nights.<br /> 3255<br /> 3256<br /> 3257Loved by Skin Types 2, 5, 6, 7, 8, 9 and esthetician-approved for all skin types in need of a hydration boost for a fresh, healthy look.</p></div></span> 3258 </div> 3259 </li> 3260 3261 3262 3263 3264 3265 3266 3267 <li > 3268 <div class="group flex justify-between items-center cursor-pointer hover:bg-seafoam " role="button" data-hc-control=how-to-the-renee-way > 3269 <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">How To: The Renée Way</span> 3270 <span class="group-[&.is-active]:hidden">+</span> 3271 <span class="hidden group-[&.is-active]:block">-</span> 3272 </div> 3273 <div data-hc-content=how-to-the-renee-way class=""> 3274 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[130%] tracking-[-.24px] [&_strong]:font-bold [&_a]:underline"><div class="metafield-rich_text_field"><p>Apply 1â2 pumps to clean skin after cleansing and toning. Follow with moisturizer to lock in hydration. Use morning and night.</p></div></span> 3275 </div> 3276 </li> 3277 3278 3279 3280 3281 3282 3283 3284 <li > 3285 <div class="group flex justify-between items-center cursor-pointer hover:bg-seafoam " role="button" data-hc-control=ingredients > 3286 <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Ingredients</span> 3287 <span class="group-[&.is-active]:hidden">+</span> 3288 <span class="hidden group-[&.is-active]:block">-</span> 3289 </div> 3290 <div data-hc-content=ingredients class=""> 3291 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[130%] tracking-[-.24px] [&_strong]:font-bold [&_a]:underline"><div class="metafield-rich_text_field"><p>
3291Water, Propanediol, Niacinamide, Aloe Barbadensis Leaf Juice, Panthenol, Sodium Hyaluronate, Allantoin, Sodium PCA, Magnesium PCA, Manganese PCA, Copper PCA, Zinc PCA, Dipotassium Glycyrrhizate, Gardenia Florida Fruit Extract, Phenoxyethanol, Maltodextrin, Carbomer, Ethylhexylglycerin, Tocopherol</p></div></span> 3292 </div> 3293 </li> 3294 3295 3296 3297 3298 3299 </ul> 3300</div> 3301 3302 3303</div> 3304<div id="shopify-block-AQmJGSzFTeE83SVZ2N__pdp_pair_it_with_TJtajE" class="shopify-block"> 3305 3306 3307 3308<div> 3309 <div class="splide" data-slider= 3310 ' 3311 { 3312 "pagination": false, 3313 "start": 0, 3314 "type": "loop", 3315 "arrows": true, 3316 "gap": "10px", 3317 "padding": {"left": "0px", "right": "10%"}, 3318 "mediaQuery": "min", 3319 "breakpoints": { 3320 "1024": { 3321 "padding": {"left": "0px", "right": "40%"} 3322 } 3323 } 3324 } 3325 ' 3326> 3327 <div class="flex justify-between mb-4.5"> 3328 <span class="text-subheading-4 font-bold tracking-[1.4px] uppercase flex items-center">Pair it with</span> 3329 <div class="splide__arrows flex"> 3330 <button class="splide__arrow splide__arrow--prev !bg-transparent !relative !left-0" aria-label="Previous slide"> 3331 3332 3333<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3334 3335 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3336 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3337 </svg> 3338 3339 3340</span> 3341 3342 </button> 3343 <button class="splide__arrow splide__arrow--next !bg-transparent !relative !right-0" aria-label="Next slide"> 3344 3345 3346<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3347 3348 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3349 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3350 </svg> 3351 3352 3353</span> 3354 3355 </button> 3356 </div> 3357 </div> 3358 <div class="splide__track -mr-5 lg:mr-0"> 3359 <ul class="splide__list"> 3360 3361 <li class="splide__slide"> 3362 3363<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3364 3365<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3366 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560" alt="Skin Drink I.V. + Pore+Wrinkle Perfecting Serum" width="4160" height="6240" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3367//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=3200 3200w" style="object-fit:cover; 3368 width:100%; 3369 height: 100%;" fetchpriority="high"> 3370</div> 3371 3372 <div class="flex flex-col w-full"> 3373 <a href="/products/skin-drink-i-v-wrinkle-perfecting-serum" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Skin Drink I.V. + Pore+Wrinkle Perfecting Serum</a> 3374 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3375 <input 3376 type="hidden" 3377 name="id" 3378 value="43581746085947" 3379 /> 3380 <div class="flex justify-between">
3381 <span data-mini-price class="flex flex-col gap-0.5"> 3382 3383<span class="line-through"> 3384 <span class="sr-only">Regular price </span>$145 3385 </span> <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase"><span class="sr-only">Sale price </span>$130.50</span> 3386 3387 3388 </span> 3389 3390 </div> 3391 3392 3393 3394 3395 3396 3397 3398<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3399 3400 <span class=" uppercase"> 3401 Add to Bag 3402 </span> 3403 3404 3405 </button> 3406 <input type="hidden" name="product-id" value="7622929514555" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3407 </div> 3408</div> 3409 3410 </li> 3411 3412 <li class="splide__slide"> 3413 3414<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3415 3416<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3417 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680" alt="Skin Drink I.V. + Rest Day Masque" width="4160" height="6240" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3418//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=3200 3200w" style="object-fit:cover; 3419 width:100%; 3420 height: 100%;" fetchpriority="high"> 3421</div> 3422 3423 <div class="flex flex-col w-full"> 3424 <a href="/products/skin-drink-i-v-rest-day-masque" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Skin Drink I.V. + Rest Day Masque</a> 3425 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3426 <input 3427 type="hidden" 3428 name="id" 3429 value="43572559544379" 3430 /> 3431 <div class="flex justify-between"> 3432 <span data-mini-price class="flex flex-col gap-0.5"> 3433 3434<span class="line-through"> 3435 <span class="sr-only">Regular price </span>$131 3436 </span> <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase"><span class="sr-only">Sale price </span>$117.90</span> 3437 3438 3439 </span> 3440 3441 </div> 3442 3443 3444 3445 3446 3447 3448 3449<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3450 3451 <span class=" uppercase"> 3452 Add to Bag
3453 </span> 3454 3455 3456 </button> 3457 <input type="hidden" name="product-id" value="7618450260027" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3458 </div> 3459</div> 3460 3461 </li> 3462 3463 <li class="splide__slide"> 3464 3465<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3466 3467<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3468 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984" alt="Skin Drink I.V. + Skin Recovery Balm" width="4160" height="6240" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3469//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=3200 3200w" style="object-fit:cover; 3470 width:100%; 3471 height: 100%;" fetchpriority="high"> 3472</div> 3473 3474 <div class="flex flex-col w-full"> 3475 <a href="/products/skin-drink-i-v-skin-recovery-balm" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Skin Drink I.V. + Skin Recovery Balm</a> 3476 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3477 <input 3478 type="hidden" 3479 name="id" 3480 value="43659153702971" 3481 /> 3482 <div class="flex justify-between"> 3483 <span data-mini-price class="flex flex-col gap-0.5"> 3484 3485<span class="line-through"> 3486 <span class="sr-only">Regular price </span>$122 3487 </span> <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase"><span class="sr-only">Sale price </span>$109.80</span> 3488 3489 3490 </span> 3491 3492 </div> 3493 3494 3495 3496 3497 3498 3499 3500<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3501 3502 <span class=" uppercase"> 3503 Add to Bag
3504 </span> 3505 3506 3507 </button> 3508 <input type="hidden" name="product-id" value="7659663392827" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3509 </div> 3510</div> 3511 3512 </li> 3513 3514 <li class="splide__slide"> 3515 3516<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3517 3518<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3519 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752" alt="Skin Drink I.V. + Sheer Moisture Lotion" width="4160" height="6240" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3520//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=3200 3200w" style="object-fit:cover; 3521 width:100%; 3522 height: 100%;" fetchpriority="high"> 3523</div> 3524 3525 <div class="flex flex-col w-full"> 3526 <a href="/products/skin-drink-i-v-sheer-moisture-lotion" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Skin Drink I.V. + Sheer Moisture Lotion</a> 3527 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3528 <input 3529 type="hidden" 3530 name="id" 3531 value="43566510276667" 3532 /> 3533 <div class="flex justify-between"> 3534 <span data-mini-price class="flex flex-col gap-0.5"> 3535 3536<span class="line-through"> 3537 <span class="sr-only">Regular price </span>$117 3538 </span> <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase"><span class="sr-only">Sale price </span>$105.30</span> 3539 3540 3541 </span> 3542 3543 </div> 3544 3545 3546 3547 3548 3549 3550 3551<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3552 3553 <span class=" uppercase"> 3554 Add to Bag
3555 </span> 3556 3557 3558 </button> 3559 <input type="hidden" name="product-id" value="7615652954171" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3560 </div> 3561</div> 3562 3563 </li> 3564 3565 <li class="splide__slide"> 3566 3567<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3568 3569<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3570 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922" alt="Hydraboost Rescue Creme" width="1314" height="1585" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3571//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=1066 1066w," style="object-fit:cover; 3572 width:100%; 3573 height: 100%;" fetchpriority="high"> 3574</div> 3575 3576 <div class="flex flex-col w-full"> 3577 <a href="/products/hydraboost-rescue-creme" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Hydraboost Rescue Creme</a> 3578 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3579 <input 3580 type="hidden" 3581 name="id" 3582 value="33887948998" 3583 /> 3584 <div class="flex justify-between"> 3585 <span data-mini-price class="flex flex-col gap-0.5"> 3586 3587 <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">$72.50</span> 3588 3589 3590 </span> 3591 3592 </div> 3593 3594 3595 3596 3597 3598 3599 3600<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3601 3602 <span class=" uppercase"> 3603 Add to Bag
3604 </span> 3605 3606 3607 </button> 3608 <input type="hidden" name="product-id" value="9257895750" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3609 </div> 3610</div> 3611 3612 </li> 3613 3614 <li class="splide__slide"> 3615 3616<div class="bg-seafoam p-5 flex gap-6 w-full h-36"> 3617 3618<div class="relative overflow-hidden aspect-[6/10] lg:aspect-[7/10] min-w-[63px] lg:min-w-[73px]" style=""> 3619 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589" alt="Moisture Infusion Toner" width="1360" height="1640" loading="false" sizes="(min-width: 1650px) 190px, (min-width: 990px) calc((100vw - 130px) / 8), (min-width: 750px) calc((100vw - 120px) / 8), calc((100vw - 35px) / 4)" srcset=" 3620//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=1066 1066w," style="object-fit:cover; 3621 width:100%; 3622 height: 100%;" fetchpriority="high"> 3623</div> 3624 3625 <div class="flex flex-col w-full"> 3626 <a href="/products/moisture-infusion-toner" class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">Moisture Infusion Toner</a> 3627 <form method="post" action="/cart/add" accept-charset="UTF-8" class="flex flex-col justify-between h-full" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 3628 <input 3629 type="hidden" 3630 name="id" 3631 value="33887954438" 3632 /> 3633 <div class="flex justify-between"> 3634 <span data-mini-price class="flex flex-col gap-0.5"> 3635 3636 <span class="text-subheading-4 font-bold leading-[130%] tracking-[1.4px] uppercase">$39.50</span> 3637 3638 3639 </span> 3640 3641 </div> 3642 3643 3644 3645 3646 3647 3648 3649<button class="uppercase lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-white hover:bg-mint-green transition-all ease-in-out duration-500" type="submit" > 3650 3651 <span class=" uppercase"> 3652 Add to Bag
3653 </span> 3654 3655 3656 </button> 3657 <input type="hidden" name="product-id" value="9257896198" /><input type="hidden" name="section-id" value="template--17672948514875__product_description_9h6PMa" /></form> 3658 </div> 3659</div> 3660 3661 </li> 3662 3663 </ul> 3664 </div> 3665 </div> 3666</div> 3667 3668 3669 3670</div> 3671 3672 </div> 3673 </div> 3674</div> 3675 3676 3677 3678 3679 3680 3681</div><div id="shopify-section-template--17672948514875__pdp_ingredients_FBrxgM" class="shopify-section"> 3682 3683 3684<div class="flex flex-col gap-10 px-5 lg:px-9 my-[70px]"> 3685 <h1 class="text-h1-mob lg:text-h1 font-heading font-medium leading-[100%] text-center">Pro-Selected Ingredients</h1> 3686 <div> 3687 3688 3689 <div class="flex flex-col lg:flex-row gap-3 lg:gap-5 py-3 border-b border-b-blush-pink lg:items-center"> 3690 <h3 class="lg:col-span-2 text-h3-mob lg:text-h3 font-heading font-medium italic leading-[100%]">4D Hyaluronic Acid</h3> 3691 <span class="lg:col-span-6 text-subheading-3-mob font-light leading-[130%]">4 molecular weights of hyaluronic acid hydrate and restore elasticity</span> 3692 </div> 3693 3694 <div class="flex flex-col lg:flex-row gap-3 lg:gap-5 py-3 border-b border-b-blush-pink lg:items-center"> 3695 <h3 class="lg:col-span-2 text-h3-mob lg:text-h3 font-heading font-medium italic leading-[100%]">Hydra5 Electrolyte Cocktail</h3> 3696 <span class="lg:col-span-6 text-subheading-3-mob font-light leading-[130%]">Copper, magnesium, manganese, sodium and zinc PCA</span> 3697 </div> 3698 3699 <div class="flex flex-col lg:flex-row gap-3 lg:gap-5 py-3 border-b border-b-blush-pink lg:items-center"> 3700 <h3 class="lg:col-span-2 text-h3-mob lg:text-h3 font-heading font-medium italic leading-[100%]">2% Niacinamide</h3> 3701 <span class="lg:col-span-6 text-subheading-3-mob font-light leading-[130%]">Restores the skinâs barrier while balancing sebum production on skin</span> 3702 </div> 3703 3704 <div class="flex flex-col lg:flex-row gap-3 lg:gap-5 py-3 border-b border-b-blush-pink lg:items-center"> 3705 <h3 class="lg:col-span-2 text-h3-mob lg:text-h3 font-heading font-medium italic leading-[100%]">Dipotassium Glycyrrhizate (licorice root extract)</h3> 3706 <span class="lg:col-span-6 text-subheading-3-mob font-light leading-[130%]">Soothes sensitive skin to reduce signs of irritation</span> 3707 </div> 3708 3709 <div class="flex flex-col lg:flex-row gap-3 lg:gap-5 py-3 border-b border-b-blush-pink lg:items-center"> 3710 <h3 class="lg:col-span-2 text-h3-mob lg:text-h3 font-heading font-medium italic leading-[100%]">Allantoin</h3> 3711 <span class="lg:col-span-6 text-subheading-3-mob font-light leading-[130%]">Improves skinâs moisture retention while smoothing and soothing skin</span> 3712 </div> 3713 3714 3715 </div> 3716</div> 3717 3718 3719 3720 3721</div><div id="shopify-section-template--17672948514875__how_to_tq48fd" class="shopify-section"> 3722 3723 3724 3725<div class="lg:grid lg:grid-cols-2"> 3726 <div class="flex flex-col justify-center items-center col-span-1 gap-1 lg:px-8 lg:py-[72px] py-10 bg-blush-light-pink"> 3727 <h1 class="w-full text-h1-mob lg:text-h1 font-heading font-medium leading-[100%] text-center pb-6 lg:border-b lg:border-b-blush-pink">In the Treatment Room</h1> 3728 <div> 3729 3730 3731 3732 <div class="flex py-2.5 lg:py-6 border-b border-b-blush-pink items-center last:border-b-0 lg:last:border-b"> 3733 <span class="text-subheading-1-mob lg:text-subheading-3-mob font-light leading-[130%] text-center lg:text-start px-5 lg:px-0"> 3734ALL skin types need water. Using this serum under your moisturizer hydrates, relieves tightness, and leaves skin dewy and plump. 3735</span> 3736 </div> 3737 3738 3739 <div class="flex py-2.5 lg:py-6 border-b border-b-blush-pink items-center last:border-b-0 lg:last:border-b"> 3740 <span class="text-subheading-1-mob lg:text-subheading-3-mob font-light leading-[130%] text-center lg:text-start px-5 lg:px-0"> 3741Drinking water is the least efficient way to hydrate the skin. Dewy, plump skin comes from the topical application of humectants. 3742</span> 3743 </div> 3744 3745 3746 <div class="flex py-2.5 lg:py-6 border-b border-b-blush-pink items-center last:border-b-0 lg:last:border-b">
3747 <span class="text-subheading-1-mob lg:text-subheading-3-mob font-light leading-[130%] text-center lg:text-start px-5 lg:px-0"> 3748Use after a long flight, a late night, a hot workout class, or a harsh climate. Anything that leaves skin feeling dehydrated or stressed, this is what brings it back 3749</span> 3750 </div> 3751 3752 3753 </div> 3754 </div> 3755 <div class="bg-blush-light-pink flex justify-center items-center"> 3756 3757 3758 3759<div class="relative overflow-hidden dynamic_media" style=""> 3760 <img src="//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 3761//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=165 165w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=360 360w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=533 533w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=720 720w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=940 940w,//www.reneerouleau.com/cdn/shop/files/Renee-Rouleau-In-the-Treatment-Room-Skin-Type-5.jpg?v=1766028486&width=1066 1066w," style="object-fit:contain; 3762 width:100%; 3763 height: 100%;" fetchpriority="high"> 3764</div> 3765 3766 3767 3768 </div> 3769</div> 3770 3771 3772 3773</div><div id="shopify-section-template--17672948514875__before_and_after_TLyVw7" class="shopify-section before-and-after"> 3774 3775 3776 3777 3778 <div class="pt-[70px] lg:py-[70px] lg:px-9 lg:grid lg:grid-cols-2 lg:gap-5 flex flex-col flex-col-reverse"> 3779 <div class="splide before-after-slider" data-slider= 3780 ' 3781 { 3782 "pagination": true, 3783 "start": 0, 3784 "perPage": 1, 3785 3786 "arrows": true, 3787 3788 "drag": true, 3789 "noDrag": "[data-range-reveal-slide], [data-range-reveal-slide] *", 3790 "hideDisabledArrows": true 3791 } 3792 ' 3793> 3794 <div class="splide__arrows"> 3795 <button class="splide__arrow splide__arrow--prev !bg-transparent !left-1.5 lg:!left-4" aria-label="Previous slide"> 3796 3797 3798<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3799 3800 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3801 <circle cx="21" cy="21" r="20.5" fill="#64FCC8" stroke="black"/> 3802 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3803 </svg> 3804 3805 3806</span> 3807 3808 </button> 3809 <button class="splide__arrow splide__arrow--next !bg-transparent !right-1.5 lg:!right-[1em]" aria-label="Next slide"> 3810 3811 3812<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3813 3814 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3815 <circle cx="21" cy="21" r="20.5" fill="#64FCC8" stroke="black"/> 3816 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3817 </svg> 3818 3819 3820</span> 3821 3822 </button> 3823 </div> 3824 <div class="splide__track has-[input[type=range]:active]:pointer-events-none"> 3825 <ul class="splide__list"> 3826 3827 3828 3829 <li class="splide__slide"> 3830 <div class="relative select-none lg:touch-none" > 3831 <div class="h-0 w-full pb-[100%] relative overflow-hidden"> 3832 3833 3834<div class="relative overflow-hidden !absolute w-full h-full top-0 left-0" style=""> 3835 <img src="//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 3836//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=165 165w,//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=360 360w,//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=533 533w,//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=720 720w,//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=940 940w,//www.reneerouleau.com/cdn/shop/files/1_c6d84f6f-8c5c-40a8-a185-003eef649ed6.png?v=1781322836&width=1066 1066w," style="object-fit:cover; 3837 width:100%; 3838 height: 100%;" class="aspect-square" fetchpriority="auto"> 3839</div> 3840 3841 3842 3843 </div> 3844 3845 </div> 3846 </li> 3847 3848 3849 3850 3851 <li class="splide__slide"> 3852 <div class="relative select-none lg:touch-none" > 3853 <div class="h-0 w-full pb-[100%] relative overflow-hidden"> 3854 3855 3856<div class="relative overflow-hidden !absolute w-full h-full top-0 left-0" style=""> 3857 <img src="//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 3858//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=165 165w,//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=360 360w,//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=533 533w,//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=720 720w,//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=940 940w,//www.reneerouleau.com/cdn/shop/files/2_a8c1f639-befb-425f-b1fc-6e94e2d7cbed.png?v=1781322847&width=1066 1066w," style="object-fit:cover; 3859 width:100%; 3860 height: 100%;" class="aspect-square" fetchpriority="auto"> 3861</div> 3862 3863 3864 3865 </div> 3866 3867 </div> 3868 </li> 3869 3870 3871 3872 3873 <li class="splide__slide"> 3874 <div class="relative select-none lg:touch-none" > 3875 <div class="h-0 w-full pb-[100%] relative overflow-hidden"> 3876 3877 3878<div class="relative overflow-hidden !absolute w-full h-full top-0 left-0" style=""> 3879 <img src="//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093" alt="" width="1400" height="1400" loading="lazy" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 3880//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR_SKIV_B_A.png?v=1785346093&width=1066 1066w," style="object-fit:cover; 3881 width:100%; 3882 height: 100%;" class="aspect-square" fetchpriority="auto"> 3883</div> 3884 3885 3886 3887 </div> 3888 3889 </div> 3890 </li> 3891 3892 3893 3894 3895 3896 </ul> 3897 </div> 3898 </div> 3899 <div class="bg-blush-light-pink flex flex-col justify-center items-center gap-5 text-center px-5 min-h-[302px] lg:min-h-[402px]"> 3900
3901 <span class="lg:text-subheading-1 text-subheading-1-mob font-bold lg:leading-[130%] leading-[120%] lg:tracking-[1.6px] tracking-[1.2px] uppercase">Hands Down, Real Results</span> 3902 3903 3904 <h2 class="lg:text-h1 text-h1-mob font-medium leading-[100%] font-heading">"My skin was feeling so tight. Then within two weeks I could feel the difference in my skin. It was plump and hydrated, even my lines were smaller!!"</h2> 3905 3906 3907 <span class="lg:text-subheading-4 text-[10px] font-light leading-[130%]">-Dede B.</span> 3908 3909 </div> 3910 </div> 3911 3912 3913 3914</div><div id="shopify-section-template--17672948514875__product_slider_Qjy8qa" class="shopify-section product-slider overflow-hidden"> 3915 3916 3917 3918<div class="py-[70px] bg-white"> 3919 <div class="header-wrapper flex justify-between items-center px-5 lg:px-8.5 mb-5"> 3920 <h1 class="text-h1-mob lg:text-h1 font-medium font-heading">Frequently Paired With</h1> 3921 3922 </div> 3923 <div class="slider splide pl-5 lg:pl-[35px]" data-slider= 3924 ' 3925 { 3926 "pagination": false, 3927 "start": 0, 3928 "type": "loop", 3929 "gap": "15px", 3930 "autoplay": false, 3931 "perPage": 1, 3932 "padding": {"left": "0px", "right": "54px"}, 3933 "mediaQuery": "min", 3934 "breakpoints": { 3935 "1024": { 3936 3937 "type": "loop", 3938 3939 "perPage": 3, 3940 "padding": {"left": "0px", "right": "18.375rem"} 3941 } 3942 } 3943 } 3944 ' 3945> 3946 <div class="splide__arrows"> 3947 <button class="splide__arrow splide__arrow--prev !bg-transparent !left-1.5 lg:!left-4" aria-label="Previous slide"> 3948 3949 3950<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3951 3952 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3953 <circle cx="21" cy="21" r="20.5" fill="#64FCC8" stroke="black"/> 3954 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3955 </svg> 3956 3957 3958</span> 3959 3960 </button> 3961 <button class="splide__arrow splide__arrow--next !bg-transparent !right-1.5 lg:!right-[1em]" aria-label="Next slide"> 3962 3963 3964<span class="[&_svg]:!w-[30px] [&_svg]:lg:!w-[42px] [&_svg]:!h-[30px] [&_svg]:lg:!h-[42px]" > 3965 3966 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 3967 <circle cx="21" cy="21" r="20.5" fill="#64FCC8" stroke="black"/> 3968 <path d="M24.5229 24C24.6943 23.6061 24.8829 23.2424 25.0886 22.9091C25.2943 22.5606 25.5257 22.2348 25.7829 21.9318H12V20.0682H25.7829C25.5429 19.7652 25.32 19.447 25.1143 19.1136C24.9086 18.7652 24.72 18.3939 24.5486 18H26.5029C27.5657 19.1061 28.7314 19.947 30 20.5227V21.5C28.7314 22.0455 27.5657 22.8788 26.5029 24H24.5229Z" fill="black"/> 3969 </svg> 3970 3971 3972</span> 3973 3974 </button> 3975 </div> 3976 <div class="splide__track"> 3977 <ul class="splide__list"> 3978 3979 <li class="splide__slide group/slide"> 3980 3981 3982 3983<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 3984 <a href="/products/skin-drink-i-v-wrinkle-perfecting-serum" class="flex flex-col gap-1"> 3985 3986<div class="relative overflow-hidden aspect-[.81/1]" style=""> 3987 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560" alt="Skin Drink I.V. + Pore+Wrinkle Perfecting Serum" width="4160" height="6240" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 3988//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-30.jpg?v=1781471560&width=3200 3200w" style="object-fit:cover; 3989 width:100%; 3990 height: 100%;" fetchpriority="auto"> 3991</div> 3992 3993 3994<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 3995 3996 3997<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 3998 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 3999//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 4000 width:100%; 4001 height: 100%;" fetchpriority="auto"> 4002</div> 4003 4004 4005 </div> 4006 4007<span class="bg-blush-pink absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30">NEW</span> 4008 </a> 4009 </div> 4010 <a href="/products/skin-drink-i-v-wrinkle-perfecting-serum" class="flex flex-col gap-1"> 4011 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Skin Drink I.V. + Pore+Wrinkle Perfecting Serum</h3> 4012 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">The anti-aging duo that plumps skin cells with deep hydration, then refines texture and minimizes the look of pores. 4013
401410% ...</span> 4015 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">The anti-aging duo that plumps skin cells with deep hydration, then refines texture and minimizes the look of pores. 4016 401710% off bundled toolkits!</span> 4018 </a> 4019 4020 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4021 <input type="hidden" name="id" value="43581746085947" /> 4022 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4023 4024<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-7622929514555"><div data-oke-reviews-version="0.104.2" data-oke-container="" class="okeReviews oke-sr"><div class=""><div class="oke-sr-rating"> 5.0 </div><div class="oke-sr-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.933333333333334" href="#oke-star-empty"></use><use x="33.86666666666667" href="#oke-star-empty"></use><use x="50.8" href="#oke-star-empty"></use><use x="67.73333333333333" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.933333333333334" href="#oke-star-filled"></use><use x="33.86666666666667" href="#oke-star-filled"></use><use x="50.8" href="#oke-star-filled"></use><use x="67.73333333333333" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5.0 out of 5 stars</span></div></div><div class="oke-sr-count"><span class="oke-sr-count-number">5.0</span><span class="oke-sr-label-text"> / 5</span><!----></div><!----></div>
4024<script type="application/json" data-oke-metafield-data=""> {"averageRating":"5.0","reviewCount":1} </script>
4024</div></div> 4025 4026 4027 </div> 4028 4029 4030 4031 4032 4033 4034 4035 4036<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4037 4038 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4039 4040 4041 <span class="leading-[110%]"> 4042 <span class="lg:hidden">ADD</span> 4043 <span class="max-lg:hidden">Add to Bag</span> 4044 </span> 4045 4046 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4047 <span> 4048 4049<span class="line-through opacity-60"> 4050 <span class="sr-only">Regular price </span>$145 4051 </span> <span><span class="sr-only">Sale price </span>$130.50</span> 4052 4053 </span> 4054 4055 </span> 4056 4057 </span> 4058 4059 4060 </button> 4061 4062<input type="hidden" name="product-id" value="7622929514555" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4063</div> 4064 4065 </li> 4066 4067 <li class="splide__slide group/slide"> 4068 4069 4070 4071<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 4072 <a href="/products/skin-drink-i-v-rest-day-masque" class="flex flex-col gap-1"> 4073 4074<div class="relative overflow-hidden aspect-[.81/1]" style=""> 4075 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680" alt="Skin Drink I.V. + Rest Day Masque" width="4160" height="6240" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4076//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.29.jpg?v=1780607680&width=3200 3200w" style="object-fit:cover; 4077 width:100%; 4078 height: 100%;" fetchpriority="auto"> 4079</div> 4080 4081 4082<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 4083 4084 4085<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 4086 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4087//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 4088 width:100%; 4089 height: 100%;" fetchpriority="auto"> 4090</div> 4091 4092 4093 </div> 4094 4095<span class="bg-blush-pink absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30">NEW</span> 4096 </a> 4097 </div> 4098 <a href="/products/skin-drink-i-v-rest-day-masque" class="flex flex-col gap-1"> 4099 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Skin Drink I.V. + Rest Day Masque</h3> 4100 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">A supercharged 2-step hydration ritual. Deep cellular-level hydration meets barrier repair. 4101 410210% off bundled toolkits!</span> 4103 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">A supercharged 2-step hydration ritual. Deep cellular-level hydration meets barrier repair. 4104 410510% off bundled toolkits!</span> 4106 </a> 4107 4108 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4109 <input type="hidden" name="id" value="43572559544379" /> 4110 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4111 4112<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-7618450260027"></div> 4113 4114 4115 </div> 4116 4117 4118 4119 4120 4121 4122 4123 4124<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4125 4126 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4127 4128 4129 <span class="leading-[110%]">
4130 <span class="lg:hidden">ADD</span> 4131 <span class="max-lg:hidden">Add to Bag</span> 4132 </span> 4133 4134 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4135 <span> 4136 4137<span class="line-through opacity-60"> 4138 <span class="sr-only">Regular price </span>$131 4139 </span> <span><span class="sr-only">Sale price </span>$117.90</span> 4140 4141 </span> 4142 4143 </span> 4144 4145 </span> 4146 4147 4148 </button> 4149 4150<input type="hidden" name="product-id" value="7618450260027" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4151</div> 4152 4153 </li> 4154 4155 <li class="splide__slide group/slide"> 4156 4157 4158 4159<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 4160 <a href="/products/skin-drink-i-v-skin-recovery-balm" class="flex flex-col gap-1"> 4161 4162<div class="relative overflow-hidden aspect-[.81/1]" style=""> 4163 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984" alt="Skin Drink I.V. + Skin Recovery Balm" width="4160" height="6240" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4164//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.403_1.jpg?v=1781619984&width=3200 3200w" style="object-fit:cover; 4165 width:100%; 4166 height: 100%;" fetchpriority="auto"> 4167</div> 4168 4169 4170<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 4171 4172 4173<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 4174 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4175//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 4176 width:100%; 4177 height: 100%;" fetchpriority="auto"> 4178</div> 4179 4180 4181 </div> 4182 4183<span class="bg-blush-pink absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30">NEW</span> 4184 </a> 4185 </div>
4186 <a href="/products/skin-drink-i-v-skin-recovery-balm" class="flex flex-col gap-1"> 4187 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Skin Drink I.V. + Skin Recovery Balm</h3> 4188 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">The post-procedure duo your skin needs most. Deep hydration first, barrier repair second. 4189 419010% off bundled toolkits!</span> 4191 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">The post-procedure duo your skin needs most. Deep hydration first, barrier repair second. 4192 419310% off bundled toolkits!</span> 4194 </a> 4195 4196 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4197 <input type="hidden" name="id" value="43659153702971" /> 4198 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4199 4200<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-7659663392827"></div> 4201 4202 4203 </div> 4204 4205 4206 4207 4208 4209 4210 4211 4212<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4213 4214 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4215 4216 4217 <span class="leading-[110%]"> 4218 <span class="lg:hidden">ADD</span> 4219 <span class="max-lg:hidden">Add to Bag</span> 4220 </span> 4221 4222 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4223 <span> 4224 4225<span class="line-through opacity-60"> 4226 <span class="sr-only">Regular price </span>$122 4227 </span> <span><span class="sr-only">Sale price </span>$109.80</span> 4228 4229 </span> 4230 4231 </span> 4232 4233 </span> 4234 4235 4236 </button> 4237 4238<input type="hidden" name="product-id" value="7659663392827" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4239</div> 4240 4241 </li> 4242 4243 <li class="splide__slide group/slide"> 4244 4245 4246 4247<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 4248 <a href="/products/skin-drink-i-v-sheer-moisture-lotion" class="flex flex-col gap-1"> 4249 4250<div class="relative overflow-hidden aspect-[.81/1]" style=""> 4251 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752" alt="Skin Drink I.V. + Sheer Moisture Lotion" width="4160" height="6240" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4252//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=940 940w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1066 1066w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1440 1440w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=1920 1920w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=2560 2560w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-374.jpg?v=1781283752&width=3200 3200w" style="object-fit:cover; 4253 width:100%; 4254 height: 100%;" fetchpriority="auto"> 4255</div> 4256 4257 4258<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 4259 4260 4261<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 4262 <img src="//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625" alt="" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4263//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=165 165w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=360 360w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=533 533w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=720 720w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=940 940w,//www.reneerouleau.com/cdn/shop/files/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625&width=1066 1066w," style="object-fit:cover; 4264 width:100%; 4265 height: 100%;" fetchpriority="auto"> 4266</div> 4267 4268 4269 </div> 4270 4271<span class="bg-blush-pink absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30">NEW</span> 4272 </a> 4273 </div> 4274 <a href="/products/skin-drink-i-v-sheer-moisture-lotion" class="flex flex-col gap-1"> 4275 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Skin Drink I.V. + Sheer Moisture Lotion</h3> 4276 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">An everyday lightweight hydration stack that floods the skin cells with water and seals it in. 4277 427810% off bundled toolkits!</span> 4279 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">An everyday lightweight hydration stack that floods the skin cells with water and seals it in. 4280 428110% off bundled toolkits!</span> 4282 </a> 4283 4284 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4285 <input type="hidden" name="id" value="43566510276667" /> 4286 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4287 4288<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-7615652954171"></div> 4289 4290 4291 </div> 4292 4293 4294 4295 4296 4297 4298 4299 4300<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4301 4302 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4303 4304 4305 <span class="leading-[110%]">
4306 <span class="lg:hidden">ADD</span> 4307 <span class="max-lg:hidden">Add to Bag</span> 4308 </span> 4309 4310 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4311 <span> 4312 4313<span class="line-through opacity-60"> 4314 <span class="sr-only">Regular price </span>$117 4315 </span> <span><span class="sr-only">Sale price </span>$105.30</span> 4316 4317 </span> 4318 4319 </span> 4320 4321 </span> 4322 4323 4324 </button> 4325 4326<input type="hidden" name="product-id" value="7615652954171" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4327</div> 4328 4329 </li> 4330 4331 <li class="splide__slide group/slide"> 4332 4333 4334 4335<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 4336 <a href="/products/hydraboost-rescue-creme" class="flex flex-col gap-1"> 4337 4338<div class="relative overflow-hidden aspect-[.81/1]" style=""> 4339 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922" alt="Hydraboost Rescue Creme" width="1314" height="1585" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4340//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Soldier_5b45315a-3145-4dc4-92cc-3db8665b9f78.jpg?v=1781316922&width=1066 1066w," style="object-fit:cover; 4341 width:100%; 4342 height: 100%;" fetchpriority="auto"> 4343</div> 4344 4345 4346<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 4347 4348 4349<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 4350 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036" alt="RR Product Hydraboost Rescue Creme Model" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4351//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Hydraboost-Rescue-Creme-Model_f9844b2f-c531-4542-9fca-3d97d68663d7.jpg?v=1767726036&width=1066 1066w," style="object-fit:cover; 4352 width:100%; 4353 height: 100%;" fetchpriority="auto"> 4354</div> 4355 4356 4357 </div> 4358 4359<span class=" absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30"></span> 4360 </a> 4361 </div> 4362 <a href="/products/hydraboost-rescue-creme" class="flex flex-col gap-1"> 4363 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Hydraboost Rescue Creme</h3> 4364 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">A deeply hydrating, medium-weight moisturizer formulated to soothe visible redness and irritation without feeling greasy.<
4364/span> 4365 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">A deeply hydrating, medium-weight moisturizer formulated to soothe visible redness and irritation without feeling greasy.</span> 4366 </a> 4367 4368 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4369 <input type="hidden" name="id" value="33887948998" /> 4370 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4371 4372<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-9257895750"><div data-oke-reviews-version="0.104.2" data-oke-container="" class="okeReviews oke-sr"><div class=""><div class="oke-sr-rating"> 4.8 </div><div class="oke-sr-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.933333333333334" href="#oke-star-empty"></use><use x="33.86666666666667" href="#oke-star-empty"></use><use x="50.8" href="#oke-star-empty"></use><use x="67.73333333333333" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 96.4534%;"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.933333333333334" href="#oke-star-filled"></use><use x="33.86666666666667" href="#oke-star-filled"></use><use x="50.8" href="#oke-star-filled"></use><use x="67.73333333333333" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 4.8 out of 5 stars</span></div></div><div class="oke-sr-count"><span class="oke-sr-count-number">4.8</span><span class="oke-sr-label-text"> / 5</span><!----></div><!----></div>
4372<script type="application/json" data-oke-metafield-data=""> {"averageRating":"4.8","reviewCount":40} </script>
4372</div></div> 4373 4374 4375 </div> 4376 4377 4378 4379 4380 4381 4382 4383 4384<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4385 4386 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4387 4388 4389 <span class="leading-[110%]"> 4390 <span class="lg:hidden">ADD</span> 4391 <span class="max-lg:hidden">Add to Bag</span> 4392 </span> 4393 4394 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4395 <span> 4396 4397 <span>$72.50</span> 4398 4399 </span> 4400 4401 </span> 4402 4403 </span> 4404 4405 4406 </button> 4407 4408<input type="hidden" name="product-id" value="9257895750" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4409</div> 4410 4411 </li> 4412 4413 <li class="splide__slide group/slide"> 4414 4415 4416 4417<div class="h-full justify-between flex flex-col gap-4 relative group/card" data-hover-play-parent><div class="relative w-full"> 4418 <a href="/products/moisture-infusion-toner" class="flex flex-col gap-1"> 4419 4420<div class="relative overflow-hidden aspect-[.81/1]" style=""> 4421 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589" alt="Moisture Infusion Toner" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4422//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Soldier_4b4baaa0-0e22-4a4e-8bfc-1ffd60a449b9.jpg?v=1776702589&width=1066 1066w," style="object-fit:cover; 4423 width:100%; 4424 height: 100%;" fetchpriority="auto"> 4425</div> 4426 4427 4428<div class=" aspect-[.81/1] h-full absolute inset-0 z-20 pointer-events-none overflow-hidden transition-opacity duration-[250ms] ease-in-out opacity-0 delay-[1500ms] lg:delay-0 max-lg:group-[&.is-active]/slide:opacity-100 lg:group-hover/card:opacity-100"> 4429 4430 4431<div class="relative overflow-hidden h-full w-full scale-100 lg:group-hover/card:scale-105 transition-[scale] duration-[3000ms] ease-out" style=""> 4432 <img src="//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039" alt="RR Product Moisture Infusion Toner Model" width="1360" height="1640" loading="lazy" sizes="(min-width: 1650px) 506px, (min-width: 990px) calc((100vw - 130px) / 3), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 1)" srcset=" 4433//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=165 165w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=360 360w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=533 533w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=720 720w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=940 940w,//www.reneerouleau.com/cdn/shop/files/RR-Product-Moisture-Infusion-Toner-Model_3ab29cbc-ef5b-4bc7-b77a-688cbbd9630a.jpg?v=1767726039&width=1066 1066w," style="object-fit:cover; 4434 width:100%; 4435 height: 100%;" fetchpriority="auto"> 4436</div> 4437 4438 4439 </div> 4440 4441<span class=" absolute top-2.5 left-1 lg:left-2.5 px-2 py-0.5 lg:py-1 text-[11px] lg:text-subheading-2 font-light leading-[130%] uppercase z-30"></span> 4442 </a> 4443 </div> 4444 <a href="/products/moisture-infusion-toner" class="flex flex-col gap-1"> 4445 <h3 class="text-subheading-1-mob lg:text-subheading-1 font-bold leading-[120%] lg:leading-[130%] tracking-[1.2px] lg:tracking-[1.6px] uppercase">Moisture Infusion Toner</h3> 4446 <span class="hidden lg:block text-subheading-4 font-light leading-[130%]">A serum-infused toner that delivers long-lasting hydration deep within the skin for a plump, dewy finish.</span> 4447 <span class="lg:hidden text-body-copy-mob font-light leading-[130%]">A serum-infused toner that delivers long-lasting hydration deep within the skin for a plump, dewy finish.</span> 4448 </a> 4449 4450 <form method="post" action="/cart/add" accept-charset="UTF-8" class=" mt-auto" enctype="multipart/form-data" data-product-form="true"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4451 <input type="hidden" name="id" value="33887954438" /> 4452 <div class="flex justify-between items-baseline pb-3 lg:pb-4"> 4453 4454<div class="mb-2" data-oke-star-rating data-oke-reviews-product-id="shopify-9257896198"><div data-oke-reviews-version="0.102.0" data-oke-container="" class="okeReviews oke-sr"><div class=""><div class="oke-sr-rating"> 5.0 </div><div class="oke-sr-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.933333333333334" href="#oke-star-empty"></use><use x="33.86666666666667" href="#oke-star-empty"></use><use x="50.8" href="#oke-star-empty"></use><use x="67.73333333333333" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="12" viewBox="0 0 82.33333333333331 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.933333333333334" href="#oke-star-filled"></use><use x="33.86666666666667" href="#oke-star-filled"></use><use x="50.8" href="#oke-star-filled"></use><use x="67.73333333333333" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5.0 out of 5 stars</span></div></div><div class="oke-sr-count"><span class="oke-sr-count-number">5.0</span><span class="oke-sr-label-text"> / 5</span><!----></div><!----></div>
4454<script type="application/json" data-oke-metafield-data=""> {"averageRating":"5.0","reviewCount":51} </script>
4454</div></div> 4455 4456 4457 </div> 4458 4459 4460 4461 4462 4463 4464 4465 4466<button class="h-10 w-full lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4467 4468 <span class=" w-full flex justify-between items-center px-2 lg:px-4 uppercase leading-[110%] uppercase"> 4469 4470 4471 <span class="leading-[110%]"> 4472 <span class="lg:hidden">ADD</span> 4473 <span class="max-lg:hidden">Add to Bag</span> 4474 </span> 4475 4476 <span data-mini-price class="flex flex-col items-end gap-0.5 leading-[110%]"> 4477 <span> 4478 4479 <span>$39.50</span> 4480 4481 </span> 4482 4483 </span> 4484 4485 </span> 4486 4487 4488 </button> 4489 4490<input type="hidden" name="product-id" value="9257896198" /><input type="hidden" name="section-id" value="template--17672948514875__product_slider_Qjy8qa" /></form> 4491</div> 4492 4493 </li> 4494 4495 </ul> 4496 </div> 4497 </div> 4498</div> 4499 4500 4501 4502</div><div id="shopify-section-template--17672948514875__faqs_WiyE7m" class="shopify-section"> 4503 4504 4505<div class="py-10 px-8.5 bg-blush-light-pink"> 4506 <h1 class="font-heading text-h1 font-medium leading-[100%] pb-8">FAQs</h1> 4507 <ul data-hc-body-click-toggle="faq" class="flex flex-col gap-4"> 4508 4509 4510 4511 <li class="border-b border-b-black pb-3"> 4512 <div class="group flex justify-between items-center pr-2" data-hc-control="blue-color"> 4513 <span class="lg:text-subheading-1 text-subheading-1-mob font-bold leading-[140%] lg:tracking-[1.6px] tracking-[1.2px] uppercase">Where does the blue color comes from?</span> 4514 <span class="group-[&.is-active]:hidden">+</span> 4515 <span class="hidden group-[&.is-active]:block">-</span> 4516 </div> 4517 <div data-hc-content="blue-color" class=""> 4518 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[140%] pb-2 [&_strong]:font-bold"><div class="metafield-rich_text_field"><p>The blue color comes from the gardenia extract.</p></div></span> 4519 </div> 4520 </li> 4521 4522 4523 <li class="border-b border-b-black pb-3"> 4524 <div class="group flex justify-between items-center pr-2" data-hc-control="can-i-use-this-product-if-i-m-pregnant-yes"> 4525 <span class="lg:text-subheading-1 text-subheading-1-mob font-bold leading-[140%] lg:tracking-[1.6px] tracking-[1.2px] uppercase">Can I use this product if Iâm pregnant?</span> 4526 <span class="group-[&.is-active]:hidden">+</span> 4527 <span class="hidden group-[&.is-active]:block">-</span> 4528 </div> 4529 <div data-hc-content="can-i-use-this-product-if-i-m-pregnant-yes" class=""> 4530 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[140%] pb-2 [&_strong]:font-bold"><div class="metafield-rich_text_field"><p>Yes. There are no ingredients in this product deemed unsafe to use during pregnancy.<br /> 4531</p></div></span> 4532 </div> 4533 </li> 4534 4535 4536 <li class="border-b border-b-black pb-3"> 4537 <div class="group flex justify-between items-center pr-2" data-hc-control="acne"> 4538 <span class="lg:text-subheading-1 text-subheading-1-mob font-bold leading-[140%] lg:tracking-[1.6px] tracking-[1.2px] uppercase">Can acne prone skin benefit from this?</span> 4539 <span class="group-[&.is-active]:hidden">+</span> 4540 <span class="hidden group-[&.is-active]:block">-</span> 4541 </div> 4542 <div data-hc-content="acne" class=""> 4543 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[140%] pb-2 [&_strong]:font-bold"><div class="metafield-rich_text_field"><p>Yes!</p></div></span> 4544 </div> 4545 </li> 4546 4547 4548 <li class="border-b border-b-black pb-3"> 4549 <div class="group flex justify-between items-center pr-2" data-hc-control="retinols"> 4550 <span class="lg:text-subheading-1 text-subheading-1-mob font-bold leading-[140%] lg:tracking-[1.6px] tracking-[1.2px] uppercase">Can this be used with exfoliants/retinols?</span>
4551 <span class="group-[&.is-active]:hidden">+</span> 4552 <span class="hidden group-[&.is-active]:block">-</span> 4553 </div> 4554 <div data-hc-content="retinols" class=""> 4555 <span class="text-body-copy-mob lg:text-subheading-1 font-light leading-[140%] pb-2 [&_strong]:font-bold"><div class="metafield-rich_text_field"><p>Yes, Skin Drink I.V. can be used with exfoliants and retinol. </p></div></span> 4556 </div> 4557 </li> 4558 4559 4560 </ul> 4561 4562</div> 4563 4564 4565 4566</div><div id="shopify-section-template--17672948514875__sticky_cta_nQP9Db" class="shopify-section"> 4567 4568 4569 4570<div class="border-y border-y-black z-[90001] h-[60px] lg:h-[75px] justify-between px-2.5 lg:px-5 max-w-screen fixed bottom-0 left-0 w-full bg-white hidden" data-sticky-cta=.main-atc> 4571 4572 4573 <div class="hidden lg:flex lg:w-full gap-3"> 4574 4575<div class="relative overflow-hidden aspect-[.83/1]" style=""> 4576 <img src="//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077" alt="Skin Drink I.V." width="1024" height="1024" loading="lazy" sizes="(min-width: 1650px) 1520px, (min-width: 990px) calc((100vw - 130px) / 1), (min-width: 750px) calc((100vw - 120px) / 1), calc((100vw - 35px) / 1)" srcset=" 4577//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=165 165w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=360 360w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=533 533w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=720 720w,//www.reneerouleau.com/cdn/shop/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077&width=940 940w," style="object-fit:cover; 4578 width:100%; 4579 height: 100%;" fetchpriority="auto"> 4580</div> 4581 4582 <h1 class="hidden lg:block font-heading text-h3-mob lg:text-h2 font-medium leading-[100%] py-3">Skin Drink I.V.</h1> 4583 </div> 4584 4585 4586 4587<form method="post" action="/cart/add" accept-charset="UTF-8" class="sticky-product-form w-full flex items-center justify-between lg:justify-end" enctype="multipart/form-data" data-product-form="true" data-product-id="7574678405179" data-original-product-price="7250"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 4588 <input 4589 type="hidden" 4590 name="id" 4591 value="43374648328251" 4592 /> 4593 4594 4595 4596 <input type="hidden" name="selling_plan" value="" data-selling-plan-input disabled> 4597 4598 4599 4600 4601 4602 <div data-quantity-wrapper class="mr-3.5 lg:ml-9" > 4603 4604 <div data-quantity class="border border-black flex justify-center items-stretch w-20 lg:w-[107px] h-[40px]"> 4605 <button type="button" data-minus aria-label="Decrease quantity" class="flex items-center justify-center px-3 cursor-pointer select-none leading-none">-</button> 4606 <input 4607 type="number" 4608 name="quantity" 4609 value="1" 4610 min="1" 4611 class="bg-light flex-1 min-w-0 text-center" 4612 > 4613 <button type="button" data-plus aria-label="Increase quantity" class="flex items-center justify-center px-3 cursor-pointer select-none leading-none">+</button> 4614 </div> 4615 4616 </div> 4617 4618 <div data-atc-button > 4619 4620 4621 4622 4623 4624<button class=" w-full lg:w-[274px] !h-[40px] lg:min-w-[200px] min-h-[24px] lg:h-[45px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer px-auto group bg-mint-green hover:bg-white transition-all ease-in-out duration-500" type="submit" > 4625 4626 <span class=" w-full px-4 py-3 flex justify-between items-center leading-[110%] uppercase"> 4627 4628 4629 <span class="leading-[110%]">ADD TO BAG</span> 4630 4631 <span data-price data-atc-price class="leading-[110%]"> 4632<span>$72.50</span> 4633</span> 4634 4635 </span> 4636 4637 4638 </button> 4639 </div> 4640 4641 4642 <div data-bis-container style="display:none"> 4643 <button type="button" data-bis-open class="pf-bis_trigger w-full lg:w-[274px] !h-[40px] lg:min-w-[200px] min-h-[24px] font-bold lg:text-subheading-2 text-subheading-2-mob tracking-[10%] leading-[110%] text-center border border-black flex justify-center items-center cursor-pointer bg-black text-white hover:bg-blush-pink hover:text-black transition-all ease-in-out duration-500">
4644 <span class="w-full px-4 py-3 flex justify-center items-center uppercase">Notify Me</span> 4645 </button> 4646 </div> 4647 4648 4649 4650
4650<script type="application/json" data-variant-availability>{ "43374648328251":true } 4651 </script>
4651 4652<input type="hidden" name="product-id" value="7574678405179" /><input type="hidden" name="section-id" value="template--17672948514875__sticky_cta_nQP9Db" /></form> 4653 4654 4655 4656</div> 4657 4658 4659</div><div id="shopify-section-template--17672948514875__text_header_dfeU6V" class="shopify-section"> 4660 4661<style> 4662 @media (min-width: 975px) and (max-width: 1074px) { 4663 .text-header { margin-top: 0 !important; } 4664 } 4665</style> 4666 4667<div class="bg-white py-7.5 lg:mt-[88px] text-header"> 4668 <h1 class="text-h1-mob lg:text-h1 font-heading font-medium leading-[100%] text-center">Reviews</h1> 4669</div> 4670 4671 4672</div><div id="shopify-section-template--17672948514875__1760736964a4347936" class="shopify-section"> 4673 4674 <div id="shopify-block-AVTR4c3F2b0VRYW4yQ__okendo_reviews_widget_6DLGzA" class="shopify-block shopify-app-block"> 4675 4676 4677 4678 4679<style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/okendo-reviews-lib.65939eaa.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/okendo-widget.6aeb18ae.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/widget.386541eb.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/shared-components.c2ff03ce.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/review-list/default.f346f6a0.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/header-modules/rating-average.6f2ee529.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/header-modules/rating-breakdown.a108ab46.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/header-modules/recommends.826afd09.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/review-templates/minimal.bd27b3ef.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/reviewer.05892934.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/attributes.b4237f39.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/review-basic-content.8974514e.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/helpful-voting.39996c12.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/avatar.89663c87.css"></style><style data-oke-reviews-version="0.91.0" type="text/css" data-href="https://cdn-static.okendo.io/reviews-widget-plus/css/modules/flag.143bbb7e.css"></style><link data-oke-reviews-version="0.91.0" rel="stylesheet" type="text/css" href="https://cdn-static.okendo.io/reviews-widget-plus-css-bundles/0-91-0/reviews-widget.6c158cd3fec0063e0cb0808e3ae87ee3.css"> 4680<div 4681 data-oke-widget 4682 data-oke-reviews-product-id="shopify-7574678405179" 4683 > 4684 <div data-oke-reviews-version="0.104.2" aria-label="Rated 4.8 out of 5 stars Based on 9 reviews" data-oke-container="" tabindex="-1" role="region" class="okeReviews oke-w"><div class="js-oke-widgetSize oke-is-medium"><div class="oke-w-header"><div class="oke-w-header-content oke-w-header-content--verticalAlignTop oke-w-header-content--left"><div class="oke-w-header-content-block oke-w-header-content-block--oneThird oke-w-header-content-block--left"><div class="oke-w-header-content-module oke-w-header-content-module--left"><div class="oke-w-ratingAverageModule oke-w-ratingAverageModule--twoLine oke-w-ratingAverageModule--left"><div class="oke-w-ratingAverageModule-rating"><span class="oke-w-ratingAverageModule-rating-average"> 4.8 </span><span class="oke-w-ratingAverageModule-rating-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="16.155555555555555" href="#oke-star-empty"></use><use x="32.31111111111111" href="#oke-star-empty"></use><use x="48.46666666666667" href="#oke-star-empty"></use><use x="64.62222222222222" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 96.3142%;"><svg height="18" viewBox="0 0 79.22222222222221 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="16.155555555555555" href="#oke-star-filled"></use><use x="32.31111111111111" href="#oke-star-filled"></use><use x="48.46666666666667" href="#oke-star-filled"></use><use x="64.62222222222222" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 4.8 out of 5 stars</span></div></span></div><div class="oke-w-ratingAverageModule-count"> Based on 9 reviews </div></div><!----><!----><!----><!----><!----><!----><!----><!----></div><div class="oke-w-header-content-module oke-w-header-content-module--left"><!----><div class="oke-w-breakdownModule oke-w-breakdownModule--contain"><div class="oke-w-breakdownModule-distribution"><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 1;"><span class="oke-w-breakdownModule-distribution-label-number"> 5 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars">
4684<svg height="16" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 1; background-color: rgb(244, 244, 246);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 88.8889%; background-color: rgb(32, 217, 153);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 1;"> 8 </div><div tabindex="0" role="button" aria-label="Total 5 star reviews: 8. Filter by 5 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 1;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 2;"><span class="oke-w-breakdownModule-distribution-label-number"> 4 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="16" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 2; background-color: rgb(244, 244, 246);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 0%; min-width: 0px; background-color: rgb(32, 217, 153);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 2;"> 0 </div><div tabindex="0" role="button" aria-label="Total 4 star reviews: 0. Filter by 4 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 2;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 3;"><span class="oke-w-breakdownModule-distribution-label-number"> 3 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="16" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 3; background-color: rgb(244, 244, 246);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 11.1111%; background-color: rgb(32, 217, 153);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 3;"> 1 </div><div tabindex="0" role="button" aria-label="Total 3 star reviews: 1. Filter by 3 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 3;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 4;"><span class="oke-w-breakdownModule-distribution-label-number"> 2 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars"><svg height="16" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 4; background-color: rgb(244, 244, 246);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 0%; min-width: 0px; background-color: rgb(32, 217, 153);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 4;"> 0 </div><div tabindex="0" role="button" aria-label="Total 2 star reviews: 0. Filter by 2 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 4;"></div><!----><div aria-hidden="true" class="oke-w-breakdownModule-distribution-label" style="grid-row: 5;"><span class="oke-w-breakdownModule-distribution-label-number"> 1 </span><span class="oke-w-breakdownModule-distribution-label-star"><div class="oke-stars">
4684<svg height="16" viewBox="0 0 14.599999999999998 14" aria-hidden="true" style="overflow: visible;"><use href="#oke-star-filled"></use></svg><!----><span class="oke-a11yText">Rated out of 5 stars</span></div></span></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-bar" style="grid-row: 5; background-color: rgb(244, 244, 246);"><div class="oke-w-breakdownModule-distribution-bar-fill" style="width: 0%; min-width: 0px; background-color: rgb(32, 217, 153);"></div></div><div aria-hidden="true" class="oke-w-breakdownModule-distribution-count" style="grid-row: 5;"> 0 </div><div tabindex="0" role="button" aria-label="Total 1 star reviews: 0. Filter by 1 star reviews" class="oke-w-breakdownModule-distribution-highlight oke-is-clickable" style="grid-row: 5;"></div><!----></div></div><!----><!----><!----><!----><!----><!----><!----></div></div><div class="oke-w-header-content-block oke-w-header-content-block--oneThird oke-w-header-content-block--left"><div class="oke-w-header-content-module oke-w-header-content-module--left"><!----><!----><div class="oke-w-recommendsModule"><strong class="oke-w-recommendsModule-value">89%</strong><span class="oke-w-recommendsModule-text">would recommend this product</span></div><!----><!----><!----><!----><!----><!----></div></div></div></div><!----><div class="oke-w-main"><div id="reviews-panel-3b9f7e7d-f48e-42e8-b205-7b3745d0ae9a" aria-label="Reviews" role="tabpanel" class="oke-w-panel"><div class="oke-w-reviewsTab"><div class="oke-w-reviews"><div class="oke-w-reviews-head"><button aria-expanded="false" aria-controls="filter-options" id="filter-toggle" type="button" class="oke-button oke-w-reviews-filterToggle"><span class="oke-icon"></span><span class="oke-button-text"> Filters <!----></span></button><div id="filter-options" aria-labelledby="filter-toggle" role="region" class="oke-w-reviews-filters"><!----></div><div class="oke-w-reviews-writeReview"><a href="https://okendo.reviews/?subscriberId=d5db87f4-eb03-4047-97d5-338e742a9473&productId=shopify-7574678405179&locale=en&okeChannel=reviews-widget-write-review-button" target="_blank" rel="noopener" class="oke-w-writeReview oke-button"> Write a Review <span class="oke-a11yText">(Opens in a new window)</span></a></div></div><div class="oke-w-reviews-controls"><div class="oke-w-reviews-count"> 9 reviews </div><div class="oke-w-reviews-sort"><div class="oke-sortSelect" medialayout="hidden"><label for="oke-sortSelect--reviews" class="oke-sortSelect-label"> Sort </label><select id="oke-sortSelect--reviews" aria-label="Sort" class="oke-sortSelect-sort oke-select"><!----><option value="date desc">Most Recent</option><option value="date asc">Oldest</option><option value="helpful desc">Most Helpful</option><!----><option value="rating desc" selected="true">Highest Rating</option><option value="rating asc">Lowest Rating</option><option value="unhelpful desc">Least Helpful</option></select></div></div></div><div class="oke-w-reviews-main oke-w-reviews-main--nav-divider"><ul class="oke-w-reviews-list" widgetwidth="784" canloadmore="true"><li class="oke-w-reviews-list-item"><div class="oke-w-reviewMinimal"><div class="oke-w-reviewMinimal-head"><div class="oke-w-reviewMinimal-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> JF </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Jessica F. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Reviewer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><div class="oke-w-reviewMinimal-date"> 1 month ago </div></div><!----><!----><div class="oke-w-reviewMinimal-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="15.933333333333334" href="#oke-star-empty"></use><use x="31.866666666666667" href="#oke-star-empty"></use><use x="47.8" href="#oke-star-empty"></use><use x="63.733333333333334" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="15.933333333333334" href="#oke-star-filled"></use><use x="31.866666666666667" href="#oke-star-filled"></use><use x="47.8" href="#oke-star-filled"></use><use x="63.733333333333334" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><!----></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Loving this addition to my routine</div><div class="oke-reviewContent-body oke-bodyText"><p>My skin is sensitive so I have to be careful about what I introduce to my routine. This really helps hydrate on days I'm not using actives, and doesn't make me break out like heavy moisturizers can. Now I just use this with Skin Recovery Lotion on top. I love it.</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div></div><!----><!----><div class="oke-w-reviewMinimal-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-d5875135-7545-46d7-89b6-9b4933119fdf" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Jessica F. was helpful.</span> 1 <span class="oke-a11yText">
4684person voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-d5875135-7545-46d7-89b6-9b4933119fdf" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Jessica F. was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div><!----></div></li><li class="oke-w-reviews-list-item"><div class="oke-w-reviewMinimal"><div class="oke-w-reviewMinimal-head"><div class="oke-w-reviewMinimal-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> NR </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Natty R. </strong><!----></div><!----><!----></div></div></div><div class="oke-w-reviewMinimal-date"> 2 months ago </div></div><!----><!----><div class="oke-w-reviewMinimal-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="15.933333333333334" href="#oke-star-empty"></use><use x="31.866666666666667" href="#oke-star-empty"></use><use x="47.8" href="#oke-star-empty"></use><use x="63.733333333333334" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="15.933333333333334" href="#oke-star-filled"></use><use x="31.866666666666667" href="#oke-star-filled"></use><use x="47.8" href="#oke-star-filled"></use><use x="63.733333333333334" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><!----></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Hello Hydration!</div><div class="oke-reviewContent-body oke-bodyText"><p>Skin Drink I.V. does exactly what it says it does! I have always struggled with static lines due to dehydration. I always blamed it on not getting enough water intake or too much wine lol but turns out my skin was just thirsty! My static lines are gone and my skin feels so hydrated all day!</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div></div><!----><!----><div class="oke-w-reviewMinimal-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-0a2bb20b-5999-40d5-ac61-ff2406a9fc48" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Natty R. was helpful.</span> 0 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-0a2bb20b-5999-40d5-ac61-ff2406a9fc48" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Natty R. was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div><!----></div></li><li class="oke-w-reviews-list-item"><div class="oke-w-reviewMinimal"><div class="oke-w-reviewMinimal-head"><div class="oke-w-reviewMinimal-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> RS </strong><img alt="Profile picture for robert s." class="oke-avatar-image" style="opacity: 0;"><img alt="google logo" class="oke-avatar-icon" style="opacity: 0;"></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> robert s. </strong><!----></div><!----><!----></div></div></div><div class="oke-w-reviewMinimal-date"> 2 months ago </div></div><!----><!----><div class="oke-w-reviewMinimal-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-is-truncated oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="15.933333333333334" href="#oke-star-empty"></use><use x="31.866666666666667" href="#oke-star-empty"></use><use x="47.8" href="#oke-star-empty"></use><use x="63.733333333333334" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="15.933333333333334" href="#oke-star-filled"></use><use x="31.866666666666667" href="#oke-star-filled"></use><use x="47.8" href="#oke-star-filled"></use><use x="63.733333333333334" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><!----></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Wow, this is awesome and just the improvement that needed to be made both for the skin drink concentrate and the hydration level to my face</div><div class="oke-reviewContent-body oke-bodyText" style="height: 130px;"><p>I'm skin type 2 combination sensitive and fair skinned, although very adept at what products I use when and why I didn't realize the hydration being the skin drink concentrate and my moisturizers after exfoliation was still lacking til I noticed and felt a difference immediately not only the hydration which will help my routine 4x a week nightly and even more on 3x pore serum when I go 2x exfoliation front and back with my routine and 2 hydrating moisturizers. Not only that but I noticed it is really n
4684on comedogenic and that is one of the things I look for in my t-zone and sensitive skin to avoid breakouts I rarely get (only usually for having either serum on too long and not showering it off and then cotton pads (this serves as a way of cleaning like foreo devices without the risky chance of damaging the device fibers for all the limited amount of things that are compatible with it, and saves money) you may look great for a couple weeks but then an incompatible cleanser and or serum ruins the device and your skin barrier, only real use is using the back for turkey kneck and under eye puffiness of crows feet btw. We live in a visual 4d world where marketing is everywhere even in disguise I just like to look my best. </p><p>This is the pore and wrinkle version but for hydration which pairs perfectly as both are non tacky and non comedogenic. </p><p>I can't wait to see the results of consecutive days use and the long lasting amount in the bottle. Renee and the team should be extremelyâ¦</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div></div><!----><!----><div class="oke-w-reviewMinimal-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-94feb416-e8b8-46b2-92ce-b17f010e2ff6" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from robert s. was helpful.</span> 0 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-94feb416-e8b8-46b2-92ce-b17f010e2ff6" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from robert s. was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div><!----></div></li><li class="oke-w-reviews-list-item"><div class="oke-w-reviewMinimal"><div class="oke-w-reviewMinimal-head"><div class="oke-w-reviewMinimal-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> EW </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Elyse W. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Buyer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><div class="oke-w-reviewMinimal-date"> 2 months ago </div></div><!----><!----><div class="oke-w-reviewMinimal-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="15.933333333333334" href="#oke-star-empty"></use><use x="31.866666666666667" href="#oke-star-empty"></use><use x="47.8" href="#oke-star-empty"></use><use x="63.733333333333334" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="15.933333333333334" href="#oke-star-filled"></use><use x="31.866666666666667" href="#oke-star-filled"></use><use x="47.8" href="#oke-star-filled"></use><use x="63.733333333333334" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><!----></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">Amazing!! I love it!</div><div class="oke-reviewContent-body oke-bodyText"><p>Umm can I just go ahead and take a bath in this?! I love it so much, I want to put it all over my body! LOL! Iâve noticed a difference in only two days. Canât wait to see the long term results! </p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div></div><!----><!----><div class="oke-w-reviewMinimal-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-fba2f839-95eb-4486-8dcc-76aaebe5bca8" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Elyse W. was helpful.</span> 0 <span class="oke-a11yText">people voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-fba2f839-95eb-4486-8dcc-76aaebe5bca8" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Elyse W. was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div><!----></div></li><li class="oke-w-reviews-list-item"><div class="oke-w-reviewMinimal"><div class="oke-w-reviewMinimal-head"><div class="oke-w-reviewMinimal-reviewer"><div class="oke-w-reviewer"><div class="oke-w-reviewer-avatar"><div class="oke-avatar"><strong class="oke-avatar-placeholder"> CW </strong><!----><!----></div></div><div><div class="oke-w-reviewer-identity"><strong class="oke-w-reviewer-name"> Caroline W. </strong><!----></div><div class="oke-w-reviewer-verified"> Verified Reviewer <span class="oke-w-reviewer-verified-icon"></span></div><!----></div></div></div><div class="oke-w-reviewMinimal-date"> 2 months ago </div></div><!----><!----><div class="oke-w-reviewMinimal-content"><div class="oke-reviewContainer"><div class="oke-reviewContent oke-reviewContent--left"><div class="oke-reviewContent-top"><div class="oke-reviewContent-stars"><div class="oke-stars"><!----><div class="oke-stars-background"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-empty"></use><use x="15.933333333333334" href="#oke-star-empty"></use><use x="31.866666666666667" href="#oke-star-empty"></use><use x="47.8" href="#oke-star-empty"></use><use x="63.733333333333334" href="#oke-star-empty"></use></svg></div><div class="oke-stars-foreground" style="width: 100%;"><svg height="21" viewBox="0 0 78.33333333333333 14" aria-hidden="true" role="none"><use x="0" href="#oke-star-filled"></use><use x="15.933333333333334" href="#oke-star-filled"></use><use x="31.866666666666667" href="#oke-star-filled"></use><use x="47.8" href="#oke-star-filled"></use><use x="63.733333333333334" href="#oke-star-filled"></use></svg></div><span class="oke-a11yText">Rated 5 out of 5 stars</span></div></div><!----></div><div role="heading" aria-level="2" class="oke-reviewContent-title oke-title">My thirsty skin LOVES this product!!</div><div class="oke-reviewContent-body oke-bodyText"><p>I am so dry and dehydrated, and also prone to redness. I instantly notice a plumping and calming effect after applying Skin Drink I.V. I have used so so many hydrating products on the market from many different price points and this is the first one where I actually have noticed a difference instantly and over time with fine lines and redness. A must have in my routine!!!</p></div><!----><button type="button" class="oke-reviewContent-readMore oke-readMore"><span class="oke-reviewContent-readMore-text oke-bodyText">Read More</span><span class="oke-a11yText">Read more about this review</span><!----></button></div><!----></div></div><!----><!----><div class="oke-w-reviewMinimal-footer"><div class="oke-footerBadges"><!----><!----><!----></div><div class="oke-w-review-helpful"><div class="oke-helpful"><span class="oke-helpful-label">Was this helpful?</span><div class="oke-helpful-vote"><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--positive"><span id="oke-helpful-vote-counter-positive-eb9f83ef-51e2-469f-a26e-c61d265bb4b8" class="oke-helpful-vote-counter"><span class="oke-a11yText">Yes, this review from Caroline W. was helpful.</span> 1 <span class="oke-a11yText">
4684person voted yes</span></span></button><button aria-pressed="false" type="button" tabindex="0" class="oke-helpful-vote-button oke-helpful-vote-button--negative"><span id="oke-helpful-vote-counter-negative-eb9f83ef-51e2-469f-a26e-c61d265bb4b8" class="oke-helpful-vote-counter"><span class="oke-a11yText">No, this review from Caroline W. was not helpful.</span> 0 <span class="oke-a11yText">people voted no</span></span></button></div></div></div></div><!----></div></li></ul><!----><div class="oke-w-reviews-alerts"><div aria-hidden="true" role="alert" aria-live="assertive" aria-atomic="true" class="oke-alert oke-alert--bottom"><div class="oke-alert-inner"> Loading... </div></div><div aria-hidden="true" role="alert" aria-live="assertive" aria-atomic="true" class="oke-alert oke-alert--top"><div class="oke-alert-inner"> Loading... </div></div></div></div><div class="oke-w-reviews-footer"><div class="oke-showMore"><button type="button" aria-label="Show more reviews" tabindex="0" class="oke-showMore-button oke-button"><span class="oke-showMore-button-text oke-button-text"> Show More </span></button></div></div><span role="status" aria-live="polite" class="oke-a11yText"></span></div></div><!----></div></div></div>
4684<script type="application/json" data-oke-metafield-data=""> {"areReviewsGrouped":false,"chatAssistant":{"reviewCount":9},"media":[],"productAttributes":[],"questionCount":0,"reviewAggregate":{"dateUpdated":"2026-09-14T13:24:43.013Z","mediaCount":0,"productId":"shopify-7574678405179","productName":"Skin Drink I.V.","ratingAndReviewCount":9,"ratingAndReviewCountByLevel":{"level3Count":1,"level5Count":8},"ratingAndReviewValuesTotal":43,"ratingCount":0,"ratingCountByLevel":{},"ratingValuesTotal":0,"recommendationCount":8,"replyCount":0,"replyWordsTotal":0,"reviewCount":9,"reviewCountByLevel":{"level3Count":1,"level5Count":8},"reviewRatingValuesTotal":43,"reviewWordsTotal":776,"subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473"},"reviews":[{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","reviewId":"d5875135-7545-46d7-89b6-9b4933119fdf","subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","productId":"shopify-7574678405179","body":"My skin is sensitive so I have to be careful about what I introduce to my routine. This really helps hydrate on days I'm not using actives, and doesn't make me break out like heavy moisturizers can. Now I just use this with Skin Recovery Lotion on top. I love it.","dateCreated":"2026-07-23T17:58:29.177Z","dateUpdated":"2026-07-23T17:58:29.177Z","helpfulCount":1,"isRecommended":true,"languageCode":"en","productHandle":"skin-drink-i-v","productImageUrl":"https://cdn.shopify.com/s/files/1/1594/4825/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_x280.jpg?v=1777079077","productName":"Skin Drink I.V.","productUrl":"//www.reneerouleau.com/products/skin-drink-i-v","rating":5,"reviewer":{"displayName":"Jessica F.","isVerified":true,"verifiedStatus":"Verified Reviewer"},"isIncentivized":false,"status":"approved","title":"Loving this addition to my routine","unhelpfulCount":0,"variantId":"43374648328251"},{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","reviewId":"0a2bb20b-5999-40d5-ac61-ff2406a9fc48","subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","productId":"shopify-7574678405179","body":"Skin Drink I.V. does exactly what it says it does! I have always struggled with static lines due to dehydration. I always blamed it on not getting enough water intake or too much wine lol but turns out my skin was just thirsty! My static lines are gone and my skin feels so hydrated all day!","dateCreated":"2026-07-09T15:21:55.712Z","dateUpdated":"2026-07-09T15:21:55.712Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"skin-drink-i-v","productImageUrl":"https://cdn.shopify.com/s/files/1/1594/4825/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_x280.jpg?v=1777079077","productName":"Skin Drink I.V.","productUrl":"//www.reneerouleau.com/products/skin-drink-i-v","rating":5,"reviewer":{"displayName":"Natty R.","isVerified":false},"isIncentivized":false,"status":"approved","title":"Hello Hydration!","unhelpfulCount":0,"variantId":"43374648328251"},{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","reviewId":"94feb416-e8b8-46b2-92ce-b17f010e2ff6","subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","productId":"shopify-7574678405179","body":"I'm skin type 2 combination sensitive and fair skinned, although very adept at what products I use when and why I didn't realize the hydration being the skin drink concentrate and my moisturizers after exfoliation was still lacking til I noticed and felt a difference immediately not only the hydration which will help my routine 4x a week nightly and even more on 3x pore serum when I go 2x exfoliation front and back with my routine and 2 hydrating moisturizers. Not only that but I noticed it is really non comedogenic and that is one of the things I look for in my t-zone and sensitive skin to avoid breakouts I rarely get (only usually for having either serum on too long and not showering it off and then cotton pads (this serves as a way of cleaning like foreo devices without the risky chance of damaging the device fiber
4684s for all the limited amount of things that are compatible with it, and saves money) you may look great for a couple weeks but then an incompatible cleanser and or serum ruins the device and your skin barrier, only real use is using the back for turkey kneck and under eye puffiness of crows feet btw. We live in a visual 4d world where marketing is everywhere even in disguise I just like to look my best. \nThis is the pore and wrinkle version but for hydration which pairs perfectly as both are non tacky and non comedogenic. \nI can't wait to see the results of consecutive days use and the long lasting amount in the bottle. Renee and the team should be extremelyâ¦","dateCreated":"2026-07-05T03:52:34.948Z","dateUpdated":"2026-07-05T03:53:02.094Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"skin-drink-i-v","productImageUrl":"https://cdn.shopify.com/s/files/1/1594/4825/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_x280.jpg?v=1777079077","productName":"Skin Drink I.V.","productUrl":"//www.reneerouleau.com/products/skin-drink-i-v","rating":5,"reviewer":{"avatarUrl":"https://media-dynamic.okendo.io/images/d5db87f4-eb03-4047-97d5-338e742a9473/29b291aa-f997-4c30-9127-7addf179b204.jpg?d=160x160&crop=center","customAvatar":{"streamId":"29b291aa-f997-4c30-9127-7addf179b204","dynamicKey":"d5db87f4-eb03-4047-97d5-338e742a9473/29b291aa-f997-4c30-9127-7addf179b204"},"displayName":"robert s.","isVerified":false,"socialConnection":"google"},"isIncentivized":false,"status":"approved","title":"Wow, this is awesome and just the improvement that needed to be made both for the skin drink concentrate and the hydration level to my face","unhelpfulCount":0,"variantId":"43374648328251","isBodyTruncated":true},{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","reviewId":"fba2f839-95eb-4486-8dcc-76aaebe5bca8","subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","productId":"shopify-7574678405179","body":"Umm can I just go ahead and take a bath in this?! I love it so much, I want to put it all over my body! LOL! Iâve noticed a difference in only two days. Canât wait to see the long term results! ","dateCreated":"2026-06-28T20:50:18.003Z","dateUpdated":"2026-06-28T20:50:18.003Z","helpfulCount":0,"isRecommended":true,"languageCode":"en","productHandle":"skin-drink-i-v","productImageUrl":"https://cdn.shopify.com/s/files/1/1594/4825/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_x280.jpg?v=1777079077","productName":"Skin Drink I.V.","productUrl":"//www.reneerouleau.com/products/skin-drink-i-v","rating":5,"reviewer":{"displayName":"Elyse W.","isVerified":true},"isIncentivized":false,"status":"approved","title":"Amazing!! I love it!","unhelpfulCount":0,"variantId":"43374648328251"},{"subscriberId":"d5db87f4-eb03-4047-97d5-338e742a9473","reviewId":"eb9f83ef-51e2-469f-a26e-c61d265bb4b8","subscriberId_productId":"d5db87f4-eb03-4047-97d5-338e742a9473:shopify-7574678405179","productId":"shopify-7574678405179","body":"I am so dry and dehydrated, and also prone to redness. I instantly notice a plumping and calming effect after applying Skin Drink I.V. I have used so so many hydrating products on the market from many different price points and this is the first one where I actually have noticed a difference instantly and over time with fine lines and redness. A must have in my routine!!!","dateCreated":"2026-06-22T23:24:15.704Z","dateUpdated":"2026-06-22T23:24:15.704Z","helpfulCount":1,"isRecommended":true,"languageCode":"en","productHandle":"skin-drink-i-v","productImageUrl":"https://cdn.shopify.com/s/files/1/1594/4825/files/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow_x280.jpg?v=1777079077","productName":"Skin Drink I.V.","productUrl":"//www.reneerouleau.com/products/skin-drink-i-v","rating":5,"reviewer":{"displayName":"Caroline W.","isVerified":true,"verifiedStatus":"Verified Reviewer"},"isIncentivized":false,"status":"approved","title":"My thirsty skin LOVES this product!!","unhelpfulCount":0,"variantId":"43374648328251"}],"reviewsKeywords":{"keywordTopics":[{"keywords":[{"name":"hydration","occurrences":5},{"name":"absorption","occurrences":1}],"topic":"Hydration"},{"keywords":[{"name":"texture","occurrences":3},{"name":"product texture","occurrences":1},{"name":"layering","occurrences":1}],"topic":"Texture"},{"keywords":[{"name":"fine lines","occurrences":2},{"name":"redness","occurrences":2},{"name":"static lines","occurrences":1}],"topic":"Skin Concerns"},{"keywords":[{"name":"effectiveness","occurrences":1},{"name":"quick results","occurrences":1},{"name":"results","occurrences":1}],"topic":"Performance"},{"keywords":[{"name":"non-comedogenic","occurrences":1}],"topic":"Skin Compatibility"},{"keywords":[{"name":"longevity","occurrences":1}],"topic":"Longevity"},{"keywords":[{"name":"value","occurrences":1}],"topic":"Value"}],"languageCode":"en"},"reviewsNextUrl":"https://api.okendo.io/v1/stores/d5db87f4-eb03-4047-97d5-338e742a9473/products/shopify-7574678405179/reviews?limit=5&orderBy=rating%20desc&lastEvaluated=%7B%22subscriberId%22%3A%22d5db87f4-eb03-4047-97d5-338e742a9473%22%2C%22subscriberId_productId%22%3A%22d5db87f4-eb03-4047-97d5-338e742a9473%3Ashopify-7574678405179%22%2C%22reviewId%22%3A%22eb9f83ef-51e2-469f-a26e-c61d265bb4b8%22%2C%22_rating_dateCreated%22%3A%225%3A2026-06-22T23%3A24%3A15.704Z%22%7D","sort":{"defaultSort":"rating desc"}} </script>
4684</div>
4684<script id="oke-widget-resize">!(function() { const widgets = document.querySelectorAll('.js-oke-widgetSize'); if (widgets && widgets.length) { if (!window.okeSetWidgetSizes) { window.okeSetWidgetSizes = (allWidgets) => { if (allWidgets) { allWidgets.forEach(widget => { const width = widget.getBoundingClientRect().width; widget.classList.remove('oke-is-small', 'oke-is-medium', 'oke-is-large'); widget.classList.add(width > 960 ? 'oke-is-large' : width > 640 ? 'oke-is-medium' : 'oke-is-small'); }); } }; } if (!window.okeResizeObserver) { let okeMetafieldResizerTimer; window.okeResizeObserver = new ResizeObserver(entries => { if (entries && entries.length) { if (okeMetafieldResizerTimer) { clearTimeout(okeMetafieldResizerTimer); } okeMetafieldResizerTimer = window.setTimeout(() => { window.okeSetWidgetSizes(entries.map(e => e.target)); }, 100); } }); } window.okeSetWidgetSizes(document.querySelectorAll('.js-oke-widgetSize')); widgets.forEach((widget) => { window.okeResizeObserver.observe(widget); }); } })();</script>
4684 4685 </div> 4686 4687 4688</div> 4689 4690 4691 4692 4693 4694</div> 4695 </main> 4696 <footer id="shopify-section-footer" class="shopify-section footer"> 4697<div class="flex flex-col px-5 pt-20 pb-10 bg-sage-green h-full w-full gap-20"> 4698 <div class="flex lg:flex-row flex-col gap-20"> 4699 <div class="flex flex-col gap-6 lg:min-w-80 lg:justify-start justify-center lg:text-start text-center lg:items-start items-center"> 4700 <div class="klaviyo-form-YqnRRP"></div> 4701 </div> 4702 <div class="flex lg:flex-row flex-col-reverse justify-center gap-[70px] text-center w-full uppercase"> 4703 <ul class="lg:flex gap-[70px] lg:flex-row flex-col hidden"> 4704 4705 <li class="flex flex-col gap-4 text-start"> 4706 4707 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Company</span> 4708 <ul> 4709 4710 <li class="text-start"> 4711 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/about">Our Story</a> 4712 </li> 4713 4714 <li class="text-start"> 4715 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/company-careers">Careers</a> 4716 </li> 4717 4718 <li class="text-start"> 4719 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/contact">Contact</a> 4720 </li> 4721 4722 </ul> 4723 4724 </li> 4725 4726 <li class="flex flex-col gap-4 text-start"> 4727 4728 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Need A Hand?</span> 4729 <ul> 4730 4731 <li class="text-start"> 4732 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/skin-type-quiz">Skin Type Quiz</a> 4733 </li> 4734 4735 <li class="text-start"> 4736 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/online-skincare-consultations">Ask an Esthetician </a> 4737 </li> 4738 4739 <li class="text-start"> 4740 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/skindex">Skindex</a> 4741 </li> 4742 4743 <li class="text-start"> 4744 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/pro">Become a pro partner</a> 4745 </li> 4746 4747 <li class="text-start"> 4748 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/customer-care-where-to-buy">Find a Pro Partner</a> 4749 </li> 4750 4751 </ul> 4752 4753 </li> 4754 4755 <li class="flex flex-col gap-4 text-start"> 4756 4757 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Support</span> 4758 <ul> 4759 4760 <li class="text-start"> 4761 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/shipping-delivery">Shipping & Delivery</a> 4762 </li> 4763 4764 <li class="text-start"> 4765 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/policies/refund-policy">Return Policy</a> 4766 </li> 4767 4768 <li class="text-start"> 4769 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/customer-care-frequently-asked-questions">FAQs</a> 4770 </li> 4771 4772 </ul> 4773 4774 </li> 4775 4776 </ul> 4777 <ul class="lg:hidden flex flex-col" data-hc-body-click-toggle="mob-footer-accordion"> 4778 4779 <li class="flex flex-col py-2 border-t border-t-black"> 4780
4781 <div data-hc-control="company" class="group grid grid-cols-[1fr_auto] items-center"> 4782 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Company</span> 4783 <span class="group-[&.is-active]:rotate-180 transition-all justify-self-end"> 4784 4785<span class="" > 4786 4787 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 4788 <path d="M11 0H0L5.5 6L11 0Z" fill="black"/> 4789 </svg> 4790 4791 4792</span> 4793</span> 4794 </div> 4795 <div data-hc-content="company"> 4796 <ul> 4797 4798 <li class="text-center"> 4799 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/about">Our Story</a> 4800 </li> 4801 4802 <li class="text-center"> 4803 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/company-careers">Careers</a> 4804 </li> 4805 4806 <li class="text-center"> 4807 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/contact">Contact</a> 4808 </li> 4809 4810 </ul> 4811 </div> 4812 4813 </li> 4814 4815 <li class="flex flex-col py-2 border-t border-t-black"> 4816 4817 <div data-hc-control="need-a-hand" class="group grid grid-cols-[1fr_auto] items-center"> 4818 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Need A Hand?</span> 4819 <span class="group-[&.is-active]:rotate-180 transition-all justify-self-end"> 4820 4821<span class="" > 4822 4823 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 4824 <path d="M11 0H0L5.5 6L11 0Z" fill="black"/> 4825 </svg> 4826 4827 4828</span> 4829</span> 4830 </div> 4831 <div data-hc-content="need-a-hand"> 4832 <ul> 4833 4834 <li class="text-center"> 4835 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/skin-type-quiz">Skin Type Quiz</a> 4836 </li> 4837 4838 <li class="text-center"> 4839 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/online-skincare-consultations">Ask an Esthetician </a> 4840 </li> 4841 4842 <li class="text-center"> 4843 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/skindex">Skindex</a> 4844 </li> 4845 4846 <li class="text-center"> 4847 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/pro">Become a pro partner</a> 4848 </li> 4849 4850 <li class="text-center"> 4851 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/customer-care-where-to-buy">Find a Pro Partner</a> 4852 </li> 4853 4854 </ul> 4855 </div> 4856 4857 </li> 4858 4859 <li class="flex flex-col py-2 border-t border-t-black"> 4860 4861 <div data-hc-control="support" class="group grid grid-cols-[1fr_auto] items-center"> 4862 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px]">Support</span> 4863 <span class="group-[&.is-active]:rotate-180 transition-all justify-self-end"> 4864 4865<span class="" > 4866 4867 <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6" fill="none"> 4868 <path d="M11 0H0L5.5 6L11 0Z" fill="black"/> 4869 </svg> 4870 4871 4872</span> 4873</span> 4874 </div> 4875 <div data-hc-content="support"> 4876 <ul> 4877 4878 <li class="text-center"> 4879 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/shipping-delivery">Shipping & Delivery</a> 4880 </li> 4881 4882 <li class="text-center"> 4883 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/policies/refund-policy">Return Policy</a> 4884 </li> 4885 4886 <li class="text-center"> 4887 <a class="font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] uppercase" href="/pages/customer-care-frequently-asked-questions">FAQs</a> 4888 </li> 4889 4890 </ul> 4891 </div> 4892 4893 </li> 4894 4895 </ul> 4896 4897 <div class="flex flex-col justify-center lg:justify-start gap-4">
4898 <span class="font-bold text-subheading-1-mob leading-[130%] tracking-[1.2px] lg:text-start">Follow Along</span> 4899 <ul class="flex justify-center"><li class=" mr-3"> 4900 <a href="https://www.instagram.com/reneerouleauskincare/" class=""> 4901 4902<span class="" > 4903 4904 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"> 4905 <g clip-path="url(#clip0_1529_2775)"> 4906 <path d="M11.4735 2.67627C10.9884 2.67627 10.5959 3.06871 10.5959 3.55381C10.5959 4.03891 10.9884 4.43136 11.4735 4.43136C11.9586 4.43136 12.351 4.03891 12.351 3.55381C12.351 3.06871 11.9586 2.67627 11.4735 2.67627Z" fill="black"/> 4907 <path d="M7.55995 3.80469C5.52143 3.80469 3.86446 5.46166 3.86446 7.50018C3.86446 9.5387 5.52143 11.1957 7.55995 11.1957C9.59847 11.1957 11.2554 9.5387 11.2554 7.50018C11.2554 5.46166 9.59847 3.80469 7.55995 3.80469ZM7.55995 9.86573C6.25726 9.86573 5.1944 8.80287 5.1944 7.50018C5.1944 6.19749 6.25726 5.13463 7.55995 5.13463C8.86264 5.13463 9.9255 6.19749 9.9255 7.50018C9.9255 8.80287 8.86264 9.86573 7.55995 9.86573Z" fill="black"/> 4908 <path d="M10.4924 15H4.50218C2.01672 15 -0.00544739 12.9778 -0.00544739 10.4924V4.50218C3.19351e-06 2.02217 2.02217 0 4.50763 0H10.4978C12.9833 0 15.0055 2.02217 15.0055 4.50763V10.4978C15.0055 12.9833 12.9833 15.0055 10.4978 15.0055L10.4924 15ZM4.50763 1.4117C2.8016 1.4117 1.4117 2.8016 1.4117 4.50763V10.4978C1.4117 12.2039 2.8016 13.5938 4.50763 13.5938H10.4978C12.2039 13.5938 13.5938 12.2039 13.5938 10.4978V4.50763C13.5938 2.8016 12.2039 1.4117 10.4978 1.4117H4.50763Z" fill="black"/> 4909 </g> 4910 <defs> 4911 <clipPath id="clip0_1529_2775"> 4912 <rect width="15" height="15" fill="white"/> 4913 </clipPath> 4914 </defs> 4915 </svg> 4916 4917 4918</span> 4919<span class="hidden">Translation missing: en.general.social.instagram</span> 4920 </a> 4921 </li><li class=" mr-3"> 4922 <a href="https://www.tiktok.com/@reneerouleauskincare" class=""> 4923 4924<span class="" > 4925 4926 <svg xmlns="http://www.w3.org/2000/svg" width="13" height="15" viewBox="0 0 13 15" fill="none"> 4927 <g clip-path="url(#clip0_1529_2773)"> 4928 <path d="M12.9951 6.06894C12.8689 6.07853 12.7476 6.08812 12.6214 6.08812C11.2524 6.08812 9.97573 5.40739 9.22816 4.27604V10.4409C9.22816 12.9577 7.16019 14.9999 4.61165 14.9999C2.06311 14.9999 0 12.9577 0 10.4409C0 7.92417 2.06796 5.88198 4.6165 5.88198C4.71359 5.88198 4.80583 5.89157 4.90291 5.89636V8.13989C4.81068 8.1303 4.71359 8.11113 4.6165 8.11113C3.31553 8.11113 2.26214 9.1514 2.26214 10.4362C2.26214 11.7209 3.31553 12.7612 4.6165 12.7612C5.91748 12.7612 7.06796 11.7497 7.06796 10.4649L7.09223 -0.00488281H9.26699C9.47087 1.92225 11.0437 3.42752 13 3.56655V6.06415" fill="black"/> 4929 </g> 4930 <defs> 4931 <clipPath id="clip0_1529_2773"> 4932 <rect width="13" height="15" fill="white"/> 4933 </clipPath> 4934 </defs> 4935 </svg> 4936 4937 4938</span> 4939<span class="hidden">Translation missing: en.general.social.tiktok</span> 4940 </a> 4941 </li><li class=" mr-3"> 4942 <a href="https://x.com/ReneeRouleau" class=""> 4943 4944<span class="" > 4945 4946</span> 4947<span class="hidden">Translation missing: en.general.social.twitter</span> 4948 </a> 4949 </li><li class=" mr-3"> 4950 <a href="https://www.facebook.com/ReneeRouleauSkinCare" class=""> 4951 4952<span class="" > 4953 4954 <svg xmlns="http://www.w3.org/2000/svg" width="8" height="15" viewBox="0 0 8 15" fill="none"> 4955 <g clip-path="url(#clip0_1529_2771)"> 4956 <path d="M5.29456 15V8.4394H7.47408L7.88875 5.72275H5.29456V3.96073C5.29456 3.21936 5.65866 2.49323 6.81669 2.49323H7.99494V0.182803C7.99494 0.182803 6.92288 0 5.90139 0C3.76738 0 2.37168 1.29993 2.37168 3.65098V5.71767H0V8.43433H2.37674V14.9949H5.29962L5.29456 15Z" fill="black"/> 4957 </g> 4958 <defs> 4959 <clipPath id="clip0_1529_2771"> 4960 <rect width="8" height="15" fill="white"/> 4961 </clipPath> 4962 </defs> 4963 </svg> 4964 4965 4966</span> 4967<span class="hidden">Translation missing: en.general.social.facebook</span> 4968 </a> 4969 </li><li class=" mr-3"> 4970 <a href="https://www.youtube.com/user/reneerouleau" class=""> 4971 4972<span class="" > 4973 4974 <svg xmlns="http://www.w3.org/2000/svg" width="22" height="15" viewBox="0 0 22 15" fill="none"> 4975 <g clip-path="url(#clip0_1529_2769)"> 4976 <path d="M22 4.70423C22 2.10563 19.8376 0 17.169 0H4.83103C2.16239 0 0 2.10563 0 4.70423V10.2958C0 12.8944 2.16239 15 4.83103 15H17.1762C19.8448 15 22.0072 12.8944 22.0072 10.2958V4.70423H22ZM14.739 7.91549L9.20644 10.5845C8.98948 10.6972 8.25181 10.5423 8.25181 10.3028V4.83099C8.25181 4.58451 8.99671 4.43662 9.21368 4.55634L14.5148 7.3662C14.739 7.48592 14.9704 7.80282
497614.7462 7.92254L14.739 7.91549Z" fill="black"/> 4977 </g> 4978 <defs> 4979 <clipPath id="clip0_1529_2769"> 4980 <rect width="22" height="15" fill="white"/> 4981 </clipPath> 4982 </defs> 4983 </svg> 4984 4985 4986</span> 4987<span class="hidden">Translation missing: en.general.social.youtube</span> 4988 </a> 4989 </li><li class=""> 4990 <a href="https://www.pinterest.com/reneerouleauskincare/" class=""> 4991 4992<span class="" > 4993 4994 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="15" viewBox="0 0 12 15" fill="none"> 4995 <g clip-path="url(#clip0_1529_2767)"> 4996 <path fill-rule="evenodd" clip-rule="evenodd" d="M5.01818 9.78412C5.00296 9.82833 4.99281 9.86271 4.98266 9.902C4.41438 12.0631 4.34841 12.5395 3.7649 13.5415C3.48584 14.0179 3.17125 14.4698 2.82622 14.902C2.78562 14.9511 2.75011 15.015 2.674 15.0002C2.58774 14.9806 2.58266 14.9069 2.57252 14.8431C2.48118 14.1849 2.42537 13.5317 2.45074 12.8686C2.48118 12.0042 2.59281 11.7095 3.73953 7.03363C3.75476 6.95996 3.73954 6.90102 3.71417 6.83717C3.44017 6.12007 3.38436 5.38825 3.62283 4.65151C4.14038 3.05524 6.01268 2.93245 6.33742 4.24876C6.54038 5.06408 6.00761 6.1299 5.59662 7.70161C5.25666 9.00318 6.83975 9.92656 8.18943 8.97371C9.43256 8.09945 9.91966 6.0022 9.82833 4.5189C9.64567 1.55721 6.29175 0.918699 4.16068 1.87155C1.72008 2.96192 1.16702 5.89414 2.26808 7.23009C2.41015 7.402 2.5167 7.50514 2.47104 7.67705C2.4 7.94719 2.33911 8.21732 2.263 8.48255C2.20719 8.67901 2.03467 8.75269 1.82664 8.66919C1.42072 8.51202 1.08076 8.26153 0.806766 7.93245C-0.12685 6.81261 -0.395771 4.59257 0.842283 2.71143C2.20719 0.628915 4.75433 -0.210967 7.0833 0.044436C9.86385 0.348955 11.6194 2.1908 11.9493 4.27332C12.1015 5.22616 11.9899 7.56899 10.6148 9.2242C9.03171 11.1299 6.4592 11.2527 5.27188 10.0837C5.18055 9.99532 5.10951 9.88726 5.01818 9.78412Z" fill="black"/> 4997 </g> 4998 <defs> 4999 <clipPath id="clip0_1529_2767"> 5000 <rect width="12" height="15" fill="white"/> 5001 </clipPath> 5002 </defs> 5003 </svg> 5004 5005 5006</span> 5007<span class="hidden">Translation missing: en.general.social.pinterest</span> 5008 </a> 5009 </li></ul> 5010 5011 </div> 5012 </div> 5013 </div> 5014 <div> 5015 <div class="copyright flex flex-col lg:flex-row uppercase text-black font-light text-subheading-1-mob leading-[130%] tracking-[1.2px] w-full text-center justify-center"> 5016 <span class="lg:mr-8">Copyright 2025 Renee Rouleau Inc. ⢠2120 West Braker Lane, Ste. F, Austin, TX 78758 â¢<tel> +1 (888) 211-7560</tel></span> 5017 <div class="flex gap-8 justify-center items-center"> 5018 <a href="/policies/privacy-policy">Privacy Policy</a> 5019 <a href="/policies/terms-of-service">Terms of Use</a> 5020 </div> 5021 </div> 5022 <div class="disclaimer font-normal text-subheading-4 leading-[130%] text-black/50 w-full text-center mt-2.5"> 5023 <span>Disclaimer: Content found on www.ReneeRouleau.com and Blog.ReneeRouleau.com, including text, images, audio, or other formats were created for informational purposes only. The Content is not intended to be a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or another qualified health provider with any questions you may have regarding a medical condition. Never disregard professional medical advice or delay in seeking it because of something you have read on this website or blog.</span> 5024 </div> 5025 <div class="mt-7 lg:mt-3 w-full"> 5026 5027 <ul class="flex gap-2 justify-center flex-wrap"> 5028 5029 <li> 5030 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/>
5030<path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 5031 5032 </li> 5033 5034 <li> 5035 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
5035<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 5036 5037 </li> 5038 5039 <li> 5040 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg> 5041 </li> 5042 5043 <li> 5044 <svg viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg> 5045 </li> 5046 5047 <li> 5048 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
504806zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 5049 5050 </li> 5051 5052 <li> 5053 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 5054 5055 </li> 5056 5057 <li> 5058 <svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2
50580-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg> 5059 </li> 5060 5061 <li> 5062 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 5063 5064 </li> 5065 5066 <li> 5067 <svg viewBox="0 0 38 24" width="38" height="24" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="pi-venmo"><title id="pi-venmo">Venmo</title><g fill="none" fill-rule="evenodd"><rect fill-opacity=".07" fill="#000" width="38" height="24" rx="3"/><path fill="#3D95CE" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M24.675 8.36c0 3.064-2.557 7.045-4.633 9.84h-4.74L13.4 6.57l4.151-.402 1.005 8.275c.94-1.566 2.099-4.025 2.099-5.702 0-.918-.154-1.543-.394-2.058l3.78-.783c.437.738.634 1.499.634 2.46z" fill="#FFF" fill-rule="nonzero"/></g></svg> 5068 5069 </li> 5070 5071 <li> 5072 <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
507216.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 5073 5074 </li> 5075 5076 </ul> 5077 5078 </div> 5079 </div> 5080</div> 5081 5082 5083</footer> 5084 5085 5086 5087
5088<script> 5089 window.addEventListener('load', function() { 5090 setTimeout(function() { 5091 (function(c,l,a,r,i,t,y){ 5092 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 5093 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 5094 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 5095 })(window, document, "clarity", "script", "u511ok3ort"); 5096 }, 2000); 5097 }); 5098</script>
5098 5099 5100
5101<script> 5102 (function() { 5103 var gorgiasLoaded = false; 5104 function loadGorgias() { 5105 if (gorgiasLoaded) return; 5106 gorgiasLoaded = true; 5107 var container = document.getElementById('gorgias-chat-container'); 5108 if (container) container.style.display = ''; 5109 5110 var scripts = document.querySelectorAll('script[type="javascript/blocked"]'); 5111 scripts.forEach(function(script) { 5112 if (script.src && script.src.indexOf('gorgias') !== -1) { 5113 var newScript = document.createElement('script'); 5114 newScript.src = script.src; 5115 newScript.async = true; 5116 document.body.appendChild(newScript); 5117 } 5118 }); 5119 } 5120 5121 var events = ['scroll', 'mousemove', 'touchstart', 'keydown']; 5122 var opts = { once: true, passive: true }; 5123 events.forEach(function(evt) { 5124 window.addEventListener(evt, loadGorgias, opts); 5125 }); 5126 5127 setTimeout(loadGorgias, 5000); 5128 })(); 5129</script>
5129 5130 5131 5132
5133<script> 5134 var afterpay_product_selector = '#afterpay-message-container'; 5135 var afterpay_js_language = "en"; 5136 var afterpay_js_country = "US"; 5137 var afterpay_shop_currency = "USD"; 5138 var afterpay_cart_currency = "USD"; 5139 var afterpay_shop_money_format = "${{amount}}"; 5140 var afterpay_shop_permanent_domain = "renee-rouleau-quiz.myshopify.com"; 5141 var afterpay_theme_name = "Live Theme (Do Not Unpublish)"; 5142 var afterpay_product = {"id":7574678405179,"title":"Skin Drink I.V.","handle":"skin-drink-i-v","description":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e","published_at":"2026-06-22T07:37:01-05:00","created_at":"2026-04-01T15:27:08-05:00","vendor":"Renée Rouleau Professional Skin Care","type":"","tags":[],"price":7250,"price_min":7250,"price_max":7250,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43374648328251,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"79494","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Skin Drink I.V.","public_title":null,"options":["Default Title"],"price":7250,"weight":71,"compare_at_price":null,"inventory_quantity":42,"inventory_management":"shopify","inventory_policy":"continue","barcode":"648260795115","requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628190267,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628223035,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628255803,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"],"featured_image":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","options":["Title"],"media":[{"alt":null,"id":27364451516475,"position":1,"preview_image":{"aspect_ratio":0.563,"height":1920,"width":1080,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/preview_images\/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924"},"aspect_ratio":0.563,"duration":81000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.SD-480p-1.5Mbps-91873986.mp4?v=0","width":270},{"format":"mp4","height":1080,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-1080p-7.2Mbps-91873986.mp4?v=0","width":606},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-720p-4.5Mbps-91873986.mp4?v=0","width":404},{"format":"m3u8","height":1080,"mime_type":"application\/x-mpegURL","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.m3u8?v=0","width":606}]},{"alt":null,"id":26688046530619,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","width":1024},{"alt":null,"id":26596526981179,"position":3,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","width":1360},{"alt":null,"id":26734009319483,"position":4,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","width":1360},{"alt":null,"id":26903019061307,"position":5,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","width":1360},{"alt":null,"id":27196724641851,"position":6,"preview_image":{"aspect_ratio":0.919,"height":1480,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"},"aspect_ratio":0.919,"height":1480,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212","width":1360}
5142],"requires_selling_plan":false,"selling_plan_groups":[{"id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2","name":"Skin Drink I.V.","options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"values":["30 Day(s)","60 Day(s)","90 Day(s)"]}],"selling_plans":[{"id":2628190267,"name":"Delivery Every 30 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"30 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628223035,"name":"Delivery Every 60 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"60 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628255803,"name":"Delivery Every 90 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"90 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e"}; 5143 var afterpay_product_collections = "Dry Skin,Serums,Shop All,Skin Type 2,Skin Type 5,Skin Type 6,Skin Type 7,Skin Type 8,Skin Type 9,What's New"; 5144 var afterpay_current_variant = {"id":43374648328251,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"79494","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Skin Drink I.V.","public_title":null,"options":["Default Title"],"price":7250,"weight":71,"compare_at_price":null,"inventory_quantity":42,"inventory_management":"shopify","inventory_policy":"continue","barcode":"648260795115","requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628190267,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628223035,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628255803,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"}],"quantity_rule":{"min":1,"max":null,"increment":1}}; 5145 var afterpay_cart_total_price = 0; 5146 var afterpay_cart_skus = ""; 5147 var afterpay_cart_collections = ""; 5148 var afterpay_js_snippet_version = '1.2.1'; 5149</script>
vendor: 1 bytes, line 5149
5149
5150<script defer src="https://static.afterpay.com/shopify-afterpay-javascript.js"></script>
5150 5151 5152
5153<script> 5154 (function(e,t,o,n,p,r,i){e.visitorGlobalObjectAlias=n;e[e.visitorGlobalObjectAlias]=e[e.visitorGlobalObjectAlias]||function(){(e[e.visitorGlobalObjectAlias].q=e[e.visitorGlobalObjectAlias].q||[]).push(arguments)};e[e.visitorGlobalObjectAlias].l=(new Date).getTime();r=t.createElement("script");r.src=o;r.async=true;i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)})(window,document,"https://diffuser-cdn.app-us1.com/diffuser/diffuser.js","vgo"); 5155 vgo('setAccount', '255531089'); 5156 vgo('setTrackByDefault', true); 5157 5158 vgo('process'); 5159</script>
5159 5160 <div id="shopify-block-ATGNBSUJ0ZDc3NXErZ__17629645562581408504" class="shopify-block shopify-app-block"> 5161 5162 5163<!-- BEGIN app snippet: swymVersion -->
5163<script>var __SWYM__VERSION__ = '7.0.7';</script>
5163<!-- END app snippet --> 5164<!-- BEGIN app snippet: swymCustomCss --> 5165 5166 5167 5168 5169<style id="swym-custom-css"> 5170 5171</style> 5172 5173<!-- END app snippet --> 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185
5186<script> 5187 (function () { 5188 // Get CompanyLocation Metadata for B2B customer scenerios (SFS) 5189 5190 5191 // Put metafields in window variable 5192 const commonCustomizationSettings = '{"global-settings":{"icon":"heart","primaryColor":"#03000C","secondaryColor":"#FFFFFF","storefrontLayoutType":"as-section","buttonType":{"displayIcon":true,"displayText":false,"style":"text"},"collectionsButtonPosition":{"position":"top-right","verticalOffset":0,"horizontalOffset":0},"pdpButtonPosition":{"position":"add_to_cart_button_right","verticalOffset":0,"horizontalOffset":0},"enableStorefrontLayoutNotification":true,"storefrontLayoutDrawerWidth":400}}'; 5193 try { 5194 const parsedSettings = JSON.parse(commonCustomizationSettings); 5195 if (parsedSettings) { 5196 window.SwymWishlistCommonCustomizationSettings = parsedSettings[window.Shopify.theme.schema_name] || parsedSettings['global-settings']; 5197 } else { 5198 window.SwymWishlistCommonCustomizationSettings = {}; 5199 } 5200 } catch (e) { 5201 window.SwymWishlistCommonCustomizationSettings = {}; 5202 } 5203 5204 let enabledCommonFeatures = '{"add-to-wishlist-collections-button":false,"add-to-wishlist-pdp-button":true,"auto-add-to-wishlist-from-pdp":{"pdpViewCount":"3","notificationTimeoutDuration":"5","selectedPosition":"TopLeft","enabled":false},"sfl-popup-v2":true,"control-centre":true,"multiple-wishlist":false,"social-count":{"enabledOnCollections":false}}'; 5205 try { 5206 enabledCommonFeatures = JSON.parse(enabledCommonFeatures) || {}; 5207 } catch (e) { 5208 enabledCommonFeatures = {}; 5209 } 5210 // Storing COMMON FEATURES data in the window object for potential use in the storefront JS code. 5211 window.SwymEnabledCommonFeatures = enabledCommonFeatures; 5212 5213 // Ghost-Intent Configuration 5214 // Defaults to disabled (false). Only enabled when metafields explicitly set to "true". 5215 try { 5216 let ghostIntentConfig = { 5217 isExplicitConsentNeeded: false, 5218 isExplicitConsentNeededEvenForLocalStorage: false, 5219 askForPermissionOnFirstClick: true 5220 }; 5221 5222 5223 5224 window.SwymGhostIntentConfig = ghostIntentConfig; 5225 } catch(e) { 5226 window.SwymGhostIntentConfig = { 5227 isExplicitConsentNeeded: false, 5228 isExplicitConsentNeededEvenForLocalStorage: false, 5229 askForPermissionOnFirstClick: true 5230 }; 5231 } 5232 5233 // Education Layer Configuration 5234 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 5235 5236 5237 window.SwymEducationLayerEnabled = enabledCommonFeatures?.["education-layer"] ?? true; 5238 5239 // Login Nudge Configuration 5240 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 5241 5242 5243 window.SwymLoginNudgeEnabled = enabledCommonFeatures?.["login-nudge"] ?? true; 5244 5245 // Initialize or ensure SwymViewProducts exists 5246 if (!window.SwymViewProducts) { 5247 window.SwymViewProducts = {}; 5248 } 5249 5250 try { 5251 const socialCountMap = { "https://www.reneerouleau.com/products/skin-drink-i-v": { "socialCount": 40, "empi": 7574678405179 } }; 5252 // Integrate social count data into existing SwymViewProducts structure 5253 Object.keys(socialCountMap).forEach(function(key) { 5254 if (!window.SwymViewProducts[key]) { 5255 window.SwymViewProducts[key] = {}; 5256 } 5257 5258 window.SwymViewProducts[key] = socialCountMap[key]; 5259 }); 5260 } catch (e) { 5261 // Silent error handling 5262 } 5263 5264 })(); 5265</script>
5265 5266 5267<!-- BEGIN app snippet: swymLoadConsentManager -->
5268<script> 5269 (function () { 5270 if (document.querySelector("script[data-swym-consent-manager]")) return; 5271 var swymConsentManagerScript = document.createElement("script"); 5272 swymConsentManagerScript.src = "https:\/\/cdn.shopify.com\/extensions\/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8\/swym-relay-839\/assets\/swym-consent-manager.js"; 5273 swymConsentManagerScript.async = false; // run in insertion order once fetched, instead of whenever fetch resolves 5274 swymConsentManagerScript.setAttribute("data-swym-consent-manager", "true"); 5275 document.head.appendChild(swymConsentManagerScript); 5276 })(); 5277</script>
5277 5278<!-- END app snippet --> 5279
5280<script 5281 5282 id="wishlist-embed-init" 5283 defer 5284 async 5285> 5286 (function () { 5287 window.swymWishlistEmbedLoaded = true; 5288 var fullAssetUrl = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/apps.bundle.js"; 5289 var assetBaseUrl = fullAssetUrl?.substring(0, fullAssetUrl.lastIndexOf('/') + 1); 5290 var swymJsPath = '//procdn.swymrelay.com/code/swym-shopify.js'; 5291 var baseJsPath = swymJsPath?.substring(0, swymJsPath.lastIndexOf('/') + 1); 5292 window.SwymCurrentJSPath = baseJsPath; 5293 window.SwymAssetBaseUrl = assetBaseUrl; 5294 5295 window.SwymCurrentStorePath = "//swymstore-v3pro-01.swymrelay.com"; 5296 5297 function loadSwymShopifyScript() { 5298 var element = ""; 5299 var scriptSrc = ""; 5300 5301 5302 element = "swym-ext-shopify-script"; 5303 window.SwymShopifyCdnInUse = true; 5304 scriptSrc = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-ext-shopify.js"; 5305 5306 5307 if (document.getElementById(element)) { 5308 return; 5309 } 5310 5311 var s = document.createElement("script"); 5312 s.id = element; 5313 s.type = "text/javascript"; 5314 s.async = true; 5315 s.defer = true; 5316 s.src = scriptSrc; 5317 5318 s.onerror = function() { 5319 console.warn("Failed to load Swym Shopify script: ", scriptSrc, " Continuing with default"); 5320 // Fallback logic here 5321 element = `swym-ext-shopify-script-${__SWYM__VERSION__}`; 5322 var fallbackJsPathVal = "\/\/procdn.swymrelay.com\/code\/swym-shopify.js"; 5323 var fallbackJsPathWithExt = fallbackJsPathVal.replace("swym-shopify", "swym-ext-shopify"); 5324 scriptSrc = fallbackJsPathWithExt + '?shop=' + encodeURIComponent(window.Shopify.shop) + '&v=' + __SWYM__VERSION__; 5325 5326 var fallbackScript = document.createElement("script"); 5327 fallbackScript.id = element; 5328 fallbackScript.type = "text/javascript"; 5329 fallbackScript.async = true; 5330 fallbackScript.defer = true; 5331 fallbackScript.src = scriptSrc; 5332 var y = document.getElementsByTagName("script")[0]; 5333 y.parentNode.insertBefore(fallbackScript, y); 5334 }; 5335 5336 var x = document.getElementsByTagName("script")[0]; 5337 x.parentNode.insertBefore(s, x); 5338 } 5339 5340 var consentAPICallbackInvoked = false; 5341 function checkConsentAndLoad() { 5342 // Allow app to load in design mode (theme editor) regardless of consent 5343 if (window.Shopify?.designMode) { 5344 loadSwymShopifyScript(); 5345 return; 5346 } 5347 5348 // Ghost-Intent: If merchant enabled explicit consent, block SDK until 5349 // consent is given through our Ghost-Intent flow (sync nudge accept). 5350 // This works on any store regardless of region (EU or non-EU). 5351 var ghostConfig = window.SwymGhostIntentConfig || {}; 5352 if (ghostConfig.isExplicitConsentNeeded || ghostConfig.isExplicitConsentNeededEvenForLocalStorage) { 5353 try { 5354 var consentKey = 'swym-ghost-consent-' + (window.Shopify && window.Shopify.shop || ''); 5355 if (localStorage.getItem(consentKey) === 'true') { 5356 // Consent was given through our flow â load SDK 5357 loadSwymShopifyScript(); 5358 return; 5359 } 5360 } catch(e) {} 5361 5362 // Check if Shopify native cookie consent was given via the cookie banner. 5363 // If user accepted cookies through Shopify's banner, load SDK normally 5364 // (Ghost-Intent is only needed when NO consent mechanism has been used). 5365 var shopifyConsentGiven = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 5366 if (shopifyConsentGiven) { 5367 loadSwymShopifyScript(); 5368 return; 5369 } 5370 5371 console.warn("[Swym Ghost-Intent] SDK blocked until explicit consent is given"); 5372 return; 5373 } 5374 5375 var isCookieBannerVisible = window.Shopify?.customerPrivacy?.shouldShowBanner?.(); 5376 if(!isCookieBannerVisible) { 5377 loadSwymShopifyScript(); 5378 return; 5379 } 5380 var shouldLoadSwymScript = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 5381 if (shouldLoadSwymScript) { 5382 loadSwymShopifyScript(); 5383 } else { 5384 console.warn("No customer consent to load Swym Wishlist Plus"); 5385 } 5386 } 5387 function initialiseConsentCheck() { 5388 document.addEventListener("visitorConsentCollected", (event) => { checkConsentAndLoad(); }); 5389 window.Shopify?.loadFeatures?.( 5390 [{name: 'consent-tracking-api', version: '0.1'}], 5391 error => { 5392 consentAPICallbackInvoked = true; 5393 if (error) { 5394 if(!window.Shopify?.customerPrivacy) { 5395 loadSwymShopifyScript(); 5396 return; 5397 } 5398 } 5399 checkConsentAndLoad(); 5400 } 5401 ); 5402 } 5403 function consentCheckFallback(retryCount) { 5404 if(!consentAPICallbackInvoked) { 5405 if (window.Shopify?.customerPrivacy) { 5406 checkConsentAndLoad(); 5407 } else if (retryCount >= 1) { 5408 console.warn("Shopify.loadFeatures unsuccessful on site, refer - https://shopify.dev/docs/api/customer-privacy#loading-the-customer-privacy-api. Proceeding with normal Swym Wishlist Plus load"); 5409 // Ghost-Intent: route through checkConsentAndLoad so SDK block is respected 5410 checkConsentAndLoad(); 5411 } else { 5412 setTimeout(() => consentCheckFallback(retryCount + 1), 1000); 5413 } 5414 } 5415 } 5416 if (document.readyState === "loading") { 5417 document.addEventListener("DOMContentLoaded", initialiseConsentCheck); 5418 window.addEventListener("load", () => consentCheckFallback(0)); 5419 } else { 5420 initialiseConsentCheck(); 5421 } 5422 5423 })(); 5424</script>
5424 5425 5426<!-- BEGIN app snippet: swymSnippet -->
5426<script defer> 5427 (function () { 5428 const currentSwymJSPath = '//procdn.swymrelay.com/code/swym-shopify.js'; 5429 const currentSwymStorePath = 'https://swymstore-v3pro-01.swymrelay.com'; 5430 const dnsPrefetchLink = `<link rel="dns-prefetch" href="${currentSwymStorePath}" crossorigin>`; 5431 const dnsPrefetchLink2 = `<link rel="dns-prefetch" href="${currentSwymJSPath}">`; 5432 const preConnectLink = `<link rel="preconnect" href="${currentSwymJSPath}">`; 5433 const swymSnippet = document.getElementById('wishlist-embed-init'); 5434 if(dnsPrefetchLink) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink);} 5435 if(dnsPrefetchLink2) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink2);} 5436 if(preConnectLink) {swymSnippet.insertAdjacentHTML('afterend', preConnectLink);} 5437 })() 5438</script>
vendor: 1 bytes, line 5438
5438
5439<script id="swym-snippet" type="text"> 5440 window.swymLandingURL = document.URL; 5441 window.swymCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 5442 window.swymPageLoad = function() { 5443 window.SwymProductVariants = window.SwymProductVariants || {}; 5444 window.SwymHasCartItems = 0 > 0; 5445 window.SwymPageData = {}, window.SwymProductInfo = {};var variants = []; 5446 window.SwymProductInfo.product = {"id":7574678405179,"title":"Skin Drink I.V.","handle":"skin-drink-i-v","description":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e","published_at":"2026-06-22T07:37:01-05:00","created_at":"2026-04-01T15:27:08-05:00","vendor":"Renée Rouleau Professional Skin Care","type":"","tags":[],"price":7250,"price_min":7250,"price_max":7250,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43374648328251,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"79494","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Skin Drink I.V.","public_title":null,"options":["Default Title"],"price":7250,"weight":71,"compare_at_price":null,"inventory_quantity":42,"inventory_management":"shopify","inventory_policy":"continue","barcode":"648260795115","requires_selling_plan":false,"selling_plan_allocations":[{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628190267,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628223035,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"},{"price_adjustments":[{"position":1,"price":6525}],"price":6525,"compare_at_price":7250,"per_delivery_price":6525,"selling_plan_id":2628255803,"selling_plan_group_id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2"}],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"],"featured_image":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","options":["Title"],"media":[{"alt":null,"id":27364451516475,"position":1,"preview_image":{"aspect_ratio":0.563,"height":1920,"width":1080,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/preview_images\/5f777c7351d04f9c8b5ebe90b2ceb713.thumbnail.0000000000.jpg?v=1786999924"},"aspect_ratio":0.563,"duration":81000,"media_type":"video","sources":[{"format":"mp4","height":480,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.SD-480p-1.5Mbps-91873986.mp4?v=0","width":270},{"format":"mp4","height":1080,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-1080p-7.2Mbps-91873986.mp4?v=0","width":606},{"format":"mp4","height":720,"mime_type":"video\/mp4","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.HD-720p-4.5Mbps-91873986.mp4?v=0","width":404},{"format":"m3u8","height":1080,"mime_type":"application\/x-mpegURL","url":"\/\/www.reneerouleau.com\/cdn\/shop\/videos\/c\/vp\/5f777c7351d04f9c8b5ebe90b2ceb713\/5f777c7351d04f9c8b5ebe90b2ceb713.m3u8?v=0","width":606}]},{"alt":null,"id":26688046530619,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?v=1777079077","width":1024},{"alt":null,"id":26596526981179,"position":3,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/SkinDrinkI.V.Swatch.png?v=1775074566","width":1360},{"alt":null,"id":26734009319483,"position":4,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/skin_drink_model_e2260879-a801-4663-a0e4-f754f6eea673.png?v=1778100625","width":1360},{"alt":null,"id":26903019061307,"position":5,"preview_image":{"aspect_ratio":0.829,"height":1640,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008"},"aspect_ratio":0.829,"height":1640,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR-BrightNow-Infographic-Benefits_1_3cb050b3-fad8-4852-82e9-2349823b03f1.png?v=1781281008","width":1360},{"alt":null,"id":27196724641851,"position":6,"preview_image":{"aspect_ratio":0.919,"height":1480,"width":1360,"src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212"},"aspect_ratio":0.919,"height":1480,"media_type":"image","src":"\/\/www.reneerouleau.com\/cdn\/shop\/files\/RR_B_A_SDIV.png?v=1785346212","width":1360}
5446],"requires_selling_plan":false,"selling_plan_groups":[{"id":"12efe7fc01cca5eef15a6aecfa2dfce15e950de2","name":"Skin Drink I.V.","options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"values":["30 Day(s)","60 Day(s)","90 Day(s)"]}],"selling_plans":[{"id":2628190267,"name":"Delivery Every 30 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"30 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628223035,"name":"Delivery Every 60 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"60 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":2628255803,"name":"Delivery Every 90 Days","description":null,"options":[{"name":"30 Day(s), 60 Day(s), 90 Day(s)","position":1,"value":"90 Day(s)"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":10}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"294517"}],"content":"\u003cp\u003eAn electrolyte-infused serum that floods thirsty skin cells with deep, lasting hydration.\u003c\/p\u003e"}; 5447 window.SwymProductInfo.variants = window.SwymProductInfo.product.variants; 5448 var piu = "\/\/www.reneerouleau.com\/cdn\/shop\/files\/ReneeRouleau-SkinDrinkI.V.-1024x1024-Shadow.jpg?crop=center\u0026height=620\u0026v=1
5448777079077\u0026width=620"; 5449 5450 5451 SwymProductVariants[43374648328251] = { 5452 empi: window.SwymProductInfo.product.id,epi:43374648328251, 5453 dt: "Skin Drink I.V.", 5454 du: "https://www.reneerouleau.com/products/skin-drink-i-v", 5455 iu: piu , 5456 stk: 1 , 5457 pr: 7250/100, 5458 ct: window.SwymProductInfo.product.type, 5459 5460 variants: [{ "Default Title" : 43374648328251}] 5461 };window.SwymProductInfo.currentVariant = 43374648328251; 5462 var product_data = { 5463 et: 1, empi: window.SwymProductInfo.product.id, epi: window.SwymProductInfo.currentVariant, 5464 dt: "Skin Drink I.V.", du: "https://www.reneerouleau.com/products/skin-drink-i-v", 5465 ct: window.SwymProductInfo.product.type, pr: 7250/100, 5466 iu: piu , 5467 variants: [{ "Default Title" : 43374648328251 }], 5468 stk: 1 5469 5470 }; 5471 window.SwymPageData = product_data; 5472 5473 window.SwymPageData.uri = window.swymLandingURL; 5474 }; 5475 if(window.selectCallback){ 5476 (function(){ 5477 var originalSelectCallback = window.selectCallback; 5478 window.selectCallback = function(variant){ 5479 originalSelectCallback.apply(this, arguments); 5480 try{ 5481 if(window.triggerSwymVariantEvent){ 5482 window.triggerSwymVariantEvent(variant.id); 5483 } 5484 }catch(err){ 5485 console.warn("Swym selectCallback", err); 5486 } 5487 };})();} 5488 window.swymCustomerId =null; 5489 window.swymCustomerExtraCheck = 5490 null; 5491 var swappName = ("Wishlist" || "Wishlist"); 5492 var swymJSObject = { 5493 pid: "jlI+Wy8G6uxPaWRI9pGoYFuqnee2dvUdvxFKxdjXTZY=", 5494 interface: "/apps/swym" + swappName + "/interfaces/interfaceStore.php?appname=" + swappName 5495 }; 5496 window.swymJSShopifyLoad = function(){ 5497 if(window.swymPageLoad) swymPageLoad(); 5498 if(!window._swat) { 5499 (function (s, w, r, e, l, a, y) { 5500 r['SwymRetailerConfig'] = s; 5501 r[s] = r[s] || function (k, v) { 5502 r[s][k] = v; 5503 }; 5504 })('_swrc', '', window); 5505 _swrc('RetailerId', swymJSObject.pid); 5506 _swrc('Callback', function(){initSwymShopify();}); 5507 }else if(window._swat.postLoader){ 5508 _swrc = window._swat.postLoader; 5509 _swrc('RetailerId', swymJSObject.pid); 5510 _swrc('Callback', function(){initSwymShopify();}); 5511 }else{ 5512 initSwymShopify();} 5513 } 5514 if(!window._SwymPreventAutoLoad) { 5515 swymJSShopifyLoad(); 5516 } 5517</script>
5517 5518 5519<style id="safari-flasher-pre"></style>
5520<script> 5521 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 5522 document.getElementById("safari-flasher-pre").innerHTML = '' + '#swym-plugin,#swym-hosted-plugin{display: none;}' + '.swym-button.swym-add-to-wishlist{display: none;}' + '.swym-button.swym-add-to-watchlist{display: none;}' + '#swym-plugin #swym-notepad, #swym-hosted-plugin #swym-notepad{opacity: 0; visibility: hidden;}' + '#swym-plugin #swym-notepad, #swym-plugin #swym-overlay, #swym-plugin #swym-notification,' + '#swym-hosted-plugin #swym-notepad, #swym-hosted-plugin #swym-overlay, #swym-hosted-plugin #swym-notification' + '{-webkit-transition: none; transition: none;}' + ''; 5523 window.SwymCallbacks = window.SwymCallbacks || []; 5524 window.SwymCallbacks.push(function(tracker) { 5525 tracker.evtLayer.addEventListener(tracker.JSEvents.configLoaded, function() { 5526 var x = function() { 5527 SwymUtils.onDOMReady(function() { 5528 var d = document.createElement("div"); 5529 d.innerHTML = "<style id='safari-flasher-post'>" + "#swym-plugin:not(.swym-ready),#swym-hosted-plugin:not(.swym-ready){display: none;}" + ".swym-button.swym-add-to-wishlist:not(.swym-loaded){display: none;}" + ".swym-button.swym-add-to-watchlist:not(.swym-loaded){display: none;}" + "#swym-plugin.swym-ready #swym-notepad, #swym-plugin.swym-ready #swym-overlay, #swym-plugin.swym-ready #swym-notification," + "#swym-hosted-plugin.swym-ready #swym-notepad, #swym-hosted-plugin.swym-ready #swym-overlay, #swym-hosted-plugin.swym-ready #swym-notification" + "{-webkit-transition: opacity 0.3s, visibility 0.3ms, -webkit-transform 0.3ms !important;-moz-transition: opacity 0.3s, visibility 0.3ms, -moz-transform 0.3ms !important;-ms-transition: opacity 0.3s, visibility 0.3ms, -ms-transform 0.3ms !important;-o-transition: opacity 0.3s, visibility 0.3ms, -o-transform 0.3ms !important;transition: opacity 0.3s, visibility 0.3ms, transform 0.3ms !important;}" + "</style>"; 5530 document.head.appendChild(d); 5531 });}; 5532 setTimeout(x, 10); 5533 });});} 5534 window.SwymOverrideMoneyFormat = "${{amount}}"; 5535</script>
5535 5536<style id="swym-product-view-defaults"> .swym-button.swym-add-to-wishlist-view-product:not(.swym-loaded) { display: none; } </style><!-- END app snippet --> 5537
5538<script 5539 5540 id="swymSnippetCheckAndActivate" 5541> 5542 (function () { 5543 var duplicateProneIds = ['safari-flasher-pre', 'swym-product-view-defaults', 'swym-wrap-login-handler']; 5544 5545 function removeDuplicateIdNodes(id) { 5546 var nodes = document.querySelectorAll('#' + id); 5547 nodes.forEach(function (node, index) { 5548 if (index > 0) { 5549 node.remove(); 5550 } 5551 }); 5552 } 5553 5554 function cleanupDuplicateSnippetNodes(activeScript) { 5555 if (!activeScript) { 5556 return; 5557 } 5558 var allSwymSnippets = document.querySelectorAll('script#swym-snippet'); 5559 allSwymSnippets.forEach(function (scriptNode) { 5560 if (scriptNode !== activeScript) { 5561 scriptNode.remove(); 5562 } 5563 }); 5564 } 5565 5566 function cleanupDuplicateActivationGuards() { 5567 var guardScripts = document.querySelectorAll('script#swymSnippetCheckAndActivate'); 5568 guardScripts.forEach(function (scriptNode, index) { 5569 if (index > 0) { 5570 scriptNode.removeAttribute('id'); 5571 } 5572 }); 5573 } 5574 5575 function postDomLoad() { 5576 var activeScript = document.querySelector('script#swym-snippet:not([type="text"])'); 5577 if (!activeScript) { 5578 var inactiveScript = document.querySelector('script#swym-snippet[type="text"]'); 5579 if (inactiveScript) { 5580 inactiveScript.type = 'text/javascript'; 5581 new Function(inactiveScript.textContent)(); 5582 activeScript = inactiveScript; 5583 } 5584 } 5585 5586 cleanupDuplicateSnippetNodes(activeScript); 5587 cleanupDuplicateActivationGuards(); 5588 duplicateProneIds.forEach(removeDuplicateIdNodes); 5589 } 5590 5591 if (document.readyState === 'loading') { 5592 document.addEventListener('DOMContentLoaded', postDomLoad); 5593 } else { 5594 postDomLoad(); 5595 } 5596 })(); 5597</script>
5597 5598 5599 5600
5601<script> 5602 (function () { 5603 const themeSchemaName = window.Shopify.theme.schema_name; 5604 5605 if (!window.SwymCallbacks) { 5606 window.SwymCallbacks = []; 5607 } 5608 window.SwymCallbacks.push(swat => { 5609 if (!swat) { 5610 return; 5611 } 5612 5613 // Ghost-Intent: Sync local wishlist items to cloud when SDK loads after consent 5614 if (window.SwymLocalWishlist && window.SwymLocalWishlist.getSyncableItems().length > 0) { 5615 window.SwymLocalWishlist.syncToCloud(swat); 5616 } 5617 5618 if (window._SwymSDKOnlyMode) { 5619 return; 5620 } 5621 5622 // ENABLE COMMON FEATURES 5623 let swymEnabledCommonFeatures = window.SwymEnabledCommonFeatures; 5624 Object.keys(swymEnabledCommonFeatures).forEach(key => { 5625 if (!swymEnabledCommonFeatures[key]) return; 5626 5627 switch (key) { 5628 case 'add-to-wishlist-collections-button': 5629 // Check if app block is already handling the collections button 5630 if (window.SwymCollectionsConfig) { 5631 return; 5632 } 5633 5634 // Check if v2 default collections is handling it 5635 if (window.SwymAdvancedCollectionsWishlistConfig) { 5636 return; 5637 } 5638 5639 // Fallback to old v1 behavior if v2 config is not present 5640 swat?.collectionsApi?.setDefaultCustomizationOptions(); 5641 swat?.collectionsApi?.initializeCollections(swat, false, themeSchemaName); 5642 5643 break; 5644 case 'add-to-wishlist-pdp-button': 5645 // Check if app block is already handling the PDP button 5646 if (window.swymATWButtonConfig?.shopifyExtensionType === 'appblock') { 5647 return; 5648 } 5649 5650 if (!(window.SwymPageData && window.SwymPageData.et === 1)) { 5651 // Not initiating pdp button as it is not a product page 5652 return; 5653 } 5654 5655 // Inject addtowishlist.css into the document's <head> 5656 var head = document.head; 5657 var pdpButtonStylesheet = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/addtowishlistbutton.css"; 5658 var pdpButtonStylesheetTag = document.createElement('link'); 5659 pdpButtonStylesheetTag.id = `swym-pdp-button-stylesheet`; 5660 pdpButtonStylesheetTag.rel = 'stylesheet'; 5661 pdpButtonStylesheetTag.href = pdpButtonStylesheet; 5662 5663 if (!document.getElementById('swym-pdp-button-stylesheet')) { 5664 head.appendChild(pdpButtonStylesheetTag); 5665 } 5666 5667 var x = document.getElementsByTagName('script')[0]; 5668 function createAndInsertScript(id, src, onLoadCallback) { 5669 var scriptTag = document.createElement('script'); 5670 scriptTag.id = id; 5671 scriptTag.type = 'text/javascript'; 5672 scriptTag.src = src; 5673 scriptTag.onload = onLoadCallback; 5674 x.parentNode.insertBefore(scriptTag, x); 5675 } 5676 5677 var pdpButtonScript = "https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/addtowishlistbutton.js"; 5678 createAndInsertScript(`swym-pdp-button-script`, pdpButtonScript, function () { 5679 const pdpBtnApi = window.WishlistPlusPDPButtonAPI; 5680 if (pdpBtnApi) { 5681 pdpBtnApi.setDefaultCustomizationOptions(swat); 5682 pdpBtnApi.initializePDPButton(swat, true); 5683 } 5684 }); 5685 break; 5686 default: 5687 return; 5688 } 5689 }); 5690 }); 5691 })(); // IIFE to prevent polluting global scope 5692</script>
5692 5693 5694 5695
5696<script> 5697 (function () { 5698 // Get the settings from Shopify's Liquid variables and create the styles 5699 const isControlCentreEnabledFromMetafield = window?.SwymEnabledCommonFeatures?.["control-centre"]; 5700 const isCommonCustomizationEnabledFromMetafield = window?.SwymWishlistCommonCustomizationSettings && 5701 Object.keys(window.SwymWishlistCommonCustomizationSettings).length > 0; 5702 const isControlCentreEnabledFromBlockSettings = false; 5703 5704 if (!(isControlCentreEnabledFromMetafield && isCommonCustomizationEnabledFromMetafield) && !isControlCentreEnabledFromBlockSettings) { 5705 // Don't enable control centre if this is disabled and block settings are not enabled 5706 return; 5707 } 5708 5709 let borderRadius = 6; 5710 let drawerWidth = window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutDrawerWidth || 400; 5711 5712 // Check if block settings exist, use them, otherwise fall back to common settings 5713 let primaryBgColor = isControlCentreEnabledFromBlockSettings ? 5714 "#000000" : 5715 window.SwymWishlistCommonCustomizationSettings.primaryColor; 5716 5717 let primaryTextColor = isControlCentreEnabledFromBlockSettings ? 5718 "#ffffff" : 5719 window.SwymWishlistCommonCustomizationSettings.secondaryColor; 5720 5721 let secondaryBgColor = isControlCentreEnabledFromBlockSettings ? 5722 "#F4F8FE" : null; 5723 let secondaryTextColor = isControlCentreEnabledFromBlockSettings ? 5724 "#333333" : null; 5725 5726 // Only use color adjustment functions if we're using common settings 5727 if (!secondaryBgColor || !secondaryTextColor) { 5728 function adjustOpacity(color, opacity) { 5729 if (color[0] === '#') { 5730 color = color.slice(1); 5731 } 5732 5733 if (color.length === 3) { 5734 color = color.split('').map(char => char + char).join(''); 5735 } 5736 5737 const r = parseInt(color.slice(0, 2), 16); 5738 const g = parseInt(color.slice(2, 4), 16); 5739 const b = parseInt(color.slice(4, 6), 16); 5740 5741 return `rgba(${r}, ${g}, ${b}, ${opacity})`; 5742 } 5743 5744 function hexToRgb(color) { 5745 if (color[0] === '#') { 5746 color = color.slice(1); 5747 } 5748 if (color.length === 3) { 5749 color = color.split('').map(c => c + c).join(''); 5750 } 5751 5752 return { 5753 r: parseInt(color.slice(0, 2), 16), 5754 g: parseInt(color.slice(2, 4), 16), 5755 b: parseInt(color.slice(4, 6), 16) 5756 }; 5757 } 5758 5759 function getLuminance({ r, g, b }) { 5760 return 0.299 * r + 0.587 * g + 0.114 * b; 5761 } 5762 5763 function generateSecondaryColors(primaryBgColor, primaryTextColor) { 5764 const secondaryBgOpacity = 0.2; 5765 const secondaryTextOpacity = 0.8; 5766 5767 const secondaryBgColor = adjustOpacity(primaryBgColor, secondaryBgOpacity); 5768 5769 const bgRgb = hexToRgb(primaryBgColor); 5770 const bgLuminance = getLuminance(bgRgb); 5771 5772 // Determine whether to use dark or light text for contrast 5773 const lightText = adjustOpacity(primaryTextColor, secondaryTextOpacity); 5774 const darkText = adjustOpacity(primaryBgColor, secondaryTextOpacity); 5775 5776 const secondaryTextColor = bgLuminance > 186 ? darkText : lightText; 5777 5778 return { 5779 secondaryBgColor, 5780 secondaryTextColor 5781 }; 5782 } 5783 5784 const generatedColors = generateSecondaryColors(primaryBgColor, primaryTextColor); 5785 secondaryBgColor = secondaryBgColor || generatedColors.secondaryBgColor; 5786 secondaryTextColor = secondaryTextColor || generatedColors.secondaryTextColor; 5787 } 5788 5789 // Create the CSS rule 5790 let styles = ` 5791 .swym-storefront-layout-root-component { 5792 --swym-storefront-layout-ui-border-radius: ${borderRadius}px; 5793 --swym-storefront-layout-button-border-radius: ${borderRadius}px; 5794 --swym-storefront-layout-side-drawer-width: ${drawerWidth}px; 5795 --swym-storefront-layout-button-color-bg-primary: ${primaryBgColor}; 5796 --swym-storefront-layout-button-color-text-primary: ${primaryTextColor}; 5797 --swym-storefront-layout-button-color-bg-secondary: ${secondaryBgColor}; 5798 --swym-storefront-layout-button-color-text-secondary: ${secondaryTextColor}; 5799 } 5800 `; 5801 5802 // Create a <style> element and append the styles 5803 let styleSheet = document.createElement("style"); 5804 styleSheet.type = "text/css"; 5805 styleSheet.innerText = styles; 5806 document.head.appendChild(styleSheet); 5807 5808 if (typeof window.SwymStorefrontLayoutContext === 'undefined') { 5809 window.SwymStorefrontLayoutContext = {}; 5810 } 5811 if (typeof window.SwymStorefrontLayoutExtensions === 'undefined'){ 5812 window.SwymStorefrontLayoutExtensions = {}; 5813 } 5814 5815 // Expose block settings toggle state so ThemeCSSMapping can respect it. 5816 // When true, theme editor color pickers take priority over inherited theme CSS variables. 5817 SwymStorefrontLayoutContext.BlockSettingsEnabled = isControlCentreEnabledFromBlockSettings; 5818 5819 if (isControlCentreEnabledFromBlockSettings) { 5820 // If block settings are enabled, use them 5821 SwymStorefrontLayoutContext.Settings = { 5822 EnableStorefrontLayoutOnLauncher: true, 5823 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 5824 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 5825 StorefrontLayoutDrawerPosition: "left", 5826 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 5827 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 5828 EnableStorefrontLayoutVariantSelector: true, 5829 StorefrontLayoutNotificationPosition: "left", 5830 StorefrontLayoutActionPopupPosition: "left", 5831 StorefrontLayoutNotificationDuration: 5000 5832 }; 5833 } else { 5834 // If only metafield is enabled but no block settings, use common settings 5835 SwymStorefrontLayoutContext.Settings = { 5836 EnableStorefrontLayoutOnLauncher: true, 5837 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 5838 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 5839 StorefrontLayoutDrawerPosition: "left", 5840 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 5841 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 5842 EnableStorefrontLayoutVariantSelector: true, 5843 StorefrontLayoutNotificationPosition: "left", 5844 StorefrontLayoutActionPopupPosition: "left", 5845 StorefrontLayoutNotificationDuration: 5000 5846 }; 5847 } 5848 const storefrontLayoutCallback = (swat) =>{ 5849 SwymStorefrontLayoutContext.swat = swat; 5850 let isStoreOnPaidPlan = swat.getApp('Wishlist')?.['is-paid']; 5851 let isWishlistEnabled = swat.getApp('Wishlist')?.['enabled']; 5852 SwymStorefrontLayoutContext.Settings = { 5853 ...SwymStorefrontLayoutContext?.Settings, 5854 EnableStorefrontLayoutCollection: window?.SwymEnabledCommonFeatures?.["multiple-wishlist"] ?? false, 5855 EnableStorefrontLayout: isWishlistEnabled && (isControlCentreEnabledFromBlockSettings || isControlCentreEnabledFromMetafield), 5856 } 5857 5858 if(SwymStorefrontLayoutContext?.Settings?.EnableStorefrontLayout){ 5859 if(SwymStorefrontLayoutContext?.CustomEvents?.LayoutInitialized){ 5860 var event = new CustomEvent(SwymStorefrontLayoutContext.CustomEvents.LayoutInitialized, { 5861 detail: { settings: SwymStorefrontLayoutContext?.Settings } 5862 }); 5863 document.dispatchEvent(event); 5864 }else{ 5865 swat.utils.warn(`LayoutInitialized event is not defined.`); 5866 } 5867 }else{ 5868 swat.utils.warn(`Storefront Layout is disabled.`); 5869 document.getElementById("swym-storefront-layout-container")?.remove(); 5870 document.getElementById("swym-storefront-extention-render-container")?.remove(); 5871 } 5872 } 5873 5874 if (!window.SwymCallbacks) { 5875 window.SwymCallbacks = []; 5876 } 5877 window.SwymCallbacks.push(storefrontLayoutCallback); 5878 5879 SwymStorefrontLayoutContext.SwymCustomerData = { 5880 5881 name: null, 5882 email: null 5883 5884 };
5885 SwymStorefrontLayoutContext.isShopperLoggedIn = !!SwymStorefrontLayoutContext?.SwymCustomerData?.email; 5886 })(); 5887</script>
5887 5888 5889 5890 5891 5892 5893 <div id="swym-storefront-extention-render-container"> 5894 <!-- BEGIN app snippet: swymStorefrontLayout -->
5894<script> 5895 (function () { 5896 const isControlCentreEnabledFromMetafield = window?.SwymEnabledCommonFeatures?.["control-centre"]; 5897 const isControlCentreEnabledFromBlockSettings = false; 5898 const isCommonCustomizationEnabledFromMetafield = window?.SwymWishlistCommonCustomizationSettings && 5899 Object.keys(window.SwymWishlistCommonCustomizationSettings).length > 0; 5900 5901 if (!(isControlCentreEnabledFromMetafield && isCommonCustomizationEnabledFromMetafield) && !isControlCentreEnabledFromBlockSettings) { 5902 return; 5903 } 5904 if (typeof window.SwymStorefrontLayoutContext === 'undefined') { 5905 window.SwymStorefrontLayoutContext = {}; 5906 } 5907 5908 // Initialize strings with empty values first to prevent string changes after loadStrings() 5909 SwymStorefrontLayoutContext.Strings = { 5910 title: "", 5911 addToCart: "", 5912 addedToCart: "", 5913 addAllToCartCta: "", 5914 addAllToCartSuccessText: "", 5915 addAllToCartEmptyText: "", 5916 addAllToCartErrorText: "", 5917 soldOut: "", 5918 addingToCart: "", 5919 viewCartCta: "", 5920 moveToCartCta: "", 5921 movingToCartCta: "", 5922 removeSflItemCta: "", 5923 5924 loginHeading: "", 5925 loginText: "", 5926 loginButtonText: "", 5927 loggedUserWelcomeMessage: "", 5928 VariantSelectorBtnText: "", 5929 wishlistTitle: "", 5930 wishlistInfo: "", 5931 emptyWishlistTitle: "", 5932 emptyWishlistDescription: "", 5933 5934 collectionTitle: "", 5935 emptyCarouselCollectionText: "", 5936 emptyCollectionText: "", 5937 emptyCollectionDescription: "", 5938 5939 addToCollectionTitle: "", 5940 removeItemCta: "", 5941 addToCollectionCta: "", 5942 createCollectionCta: "", 5943 saveNewCollectionCta: "", 5944 renameCollectionCta: "", 5945 deleteCollectionCta: "", 5946 shareCollectionCta: "", 5947 saveCollectionCta: "", 5948 editCollectionCta: "", 5949 shareCollectionTitle: "", 5950 shareCollectionMessage: "", 5951 sharedCollectionMessage: "", 5952 updateCollectionTitle: "", 5953 5954 errorMessageListNameRequired: "", 5955 errorMessageListNameRequire3Char: "", 5956 errorMessageListNameAlreadyExist: "", 5957 5958 notificationMessageItemSaved: "", 5959 notificationMessageItemRemoved: "", 5960 notificationMessageAddedToCart: "", 5961 notificationMessageAddedToCollection: "", 5962 notificationMessageCollectionSaved: "", 5963 notificationMessageCollectionDeleted: "", 5964 notificationMessageCollectionUpdated: "", 5965 notificationMessageCollectionUnavailable: "", 5966 notificationMessageSFLItemSaved: "", 5967 notificationMessageSFLItemRemoved: "", 5968 notificationMessageMovedToCart: "", 5969 5970 notificationActionAddToCollection: "", 5971 notificationActionView: "", 5972 notificationActionViewCollection: "", 5973 notificationActionGoToCart: "", 5974 5975 item: "", 5976 items: "", 5977 5978 tabWishlist: "", 5979 tabSavedForLater: "", 5980 tabSavedForYou: "", 5981 5982 savedForLaterTitle: "", 5983 emptySavedForLaterTitle: "", 5984 emptySavedForLaterDescription: "", 5985 5986 awNudgeMessage: "", 5987 awNudgeMessageSub: "", 5988 awNudgeLoginCTA: "", 5989 awNudgeDismiss: "", 5990 5991 emptySingleLoggedInTitle: "", 5992 emptySingleLoggedInDescription: "", 5993 emptySingleLoggedInBullet1: "", 5994 emptySingleLoggedInBullet2: "", 5995 emptySingleLoggedInBullet3: "", 5996 emptySingleLoggedInCTA: "", 5997 5998 emptyMultiLoggedInTitle: "", 5999 emptyMultiLoggedInDescription: "", 6000 emptyMultiLoggedInCreateTitle: "", 6001 emptyMultiLoggedInCreateDescription: "", 6002 emptyMultiLoggedInBrowseLabel: "", 6003 emptyMultiLoggedInCTA: "", 6004 emptyMultiLoggedInTag1: "", 6005 emptyMultiLoggedInTag2: "", 6006 emptyMultiLoggedInTag3: "", 6007 emptyMultiLoggedInTag4: "", 6008 emptyMultiLoggedInTag5: "", 6009 6010 emptyGuestTitle: "", 6011 emptyGuestDescription: "", 6012 emptyGuestSingleNotice: "", 6013 emptyGuestMultiNotice: "", 6014 emptyGuestLoginCTA: "", 6015 emptyGuestBrowseCTA: "", 6016 emptyGuestSignupText: "", 6017 emptyGuestSignupCTA: "", 6018 6019 emptySflTitle: "", 6020 emptySflDescription: "", 6021 emptySflStep1Title: "", 6022 emptySflStep1Description: "", 6023 emptySflStep2Title: "", 6024 emptySflStep2Description: "", 6025 emptySflLoggedInNotice: "", 6026 emptySflGuestNotice: "", 6027 emptySflGoToCartCTA: "", 6028 emptySflLoginCTA: "", 6029 emptySflSignupText: "", 6030 emptySflSignupCTA: "" 6031 }; 6032 6033 SwymStorefrontLayoutContext.stringsLoaded = false;
6034 SwymStorefrontLayoutContext.StorefrontLayoutUrls = SwymStorefrontLayoutContext.StorefrontLayoutUrls || {}; 6035 SwymStorefrontLayoutContext.StorefrontLayoutUrls.Login = "\/customer_authentication\/login?return_to=%2Fproducts%2Fskin-drink-i-v\u0026locale=en\u0026ui_hint=full\u0026region_country=US"; 6036 6037 /** 6038 * Function to override Swym's default UI behavior. 6039 **/ 6040 const overrideSwymDefaultUI = (swat) => { 6041 try{ 6042 swat.ui.open = function(){ 6043 window.location.hash = SwymStorefrontLayoutContext?.StorefrontLayoutUrls?.List; 6044 } 6045 6046 if (swat.ui?.uiRef?.settings?.UI) { 6047 swat.ui.uiRef.settings.UI.NotificationDisabled = true; 6048 } 6049 }catch(e){ 6050 swat.utils?.warn('Error overriding Swym default UI:', e); 6051 } 6052 } 6053 6054 /** 6055 * Callback function to override Swym's default UI behavior based on Storefront Layout settings. 6056 * 6057 * - Overrides `swat.ui.open` to redirect to a custom Storefront Layout URL if enabled. 6058 * - Overrides Swym's default notifications to log notifications instead of displaying them. 6059 * - Ensures the callback is pushed to `window.SwymCallbacks` for execution when Swym is initialized. 6060 * 6061 * @param {Object} swat - Swym's UI object used for overriding UI behaviors. 6062 */ 6063 const swymStorefrontLayoutCallback = (swat) =>{ 6064 SwymStorefrontLayoutContext.swat = swat; 6065 6066 overrideSwymDefaultUI(swat); 6067 6068 6069 let triggerHeartbeat = swat?.ExtensionHealth?.triggerExtensionHeartbeat; 6070 if (typeof triggerHeartbeat !== "function") return; 6071 6072 let wishlistNewUiHeartbeatData = ''; 6073 try { 6074 wishlistNewUiHeartbeatData = JSON.parse(wishlistNewUiHeartbeatData) || {}; 6075 } catch (e) { 6076 wishlistNewUiHeartbeatData = {}; 6077 } 6078 6079 let themeId = window.Shopify.theme.id; 6080 let isDesignMode = !!window.swymDesignMode; 6081 let lastHeartbeat = isDesignMode ? wishlistNewUiHeartbeatData?.editor : wishlistNewUiHeartbeatData?.[themeId]; 6082 let themeContext = isDesignMode ? 'editor' : themeId; 6083 let extensionData = { 6084 extensionName: "wishlist-new-ui", 6085 extensionType: "app-embed", 6086 metadata: {}, 6087 themeId: themeContext, 6088 extensionSource: "default" 6089 }; 6090 /** Stop heartbeat 6091 triggerHeartbeat(extensionData, lastHeartbeat); 6092 */ 6093 } 6094 6095 if (!window.SwymCallbacks) { 6096 window.SwymCallbacks = []; 6097 } 6098 window.SwymCallbacks.push(swymStorefrontLayoutCallback); 6099 })(); 6100</script>
6100 6101<link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout.css">
6102<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/async-wishlist-apis.js" defer="defer"></script>
vendor: 1 bytes, line 6102
6102
6103<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout.js" defer="defer"></script>
vendor: 1 bytes, line 6103
6103
6104<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/storefront-layout-components.js" defer="defer"></script>
6104 6105 6106<swym-storefront-layout class="swym-storefront-layout-root-component"></swym-storefront-layout> 6107<!-- END app snippet --> 6108 </div> 6109 <!-- BEGIN app snippet: swymEducationTooltip --> 6110 6111 6112 6113 6114 <div id="swym-education-tooltip" aria-hidden="true" 6115 data-toast-desktop-message="Interesting? Click '{{wishlistIcon}}' to save it to your {{wishlistName}}." 6116 data-toast-mobile-message="Interesting? Tap '{{wishlistIcon}}' to add to your {{wishlistName}}." 6117 data-toast-cta="Wishlist Now" 6118 data-tooltip-desktop-message="Interesting? Click '{{wishlistIcon}}' to save it to your {{wishlistName}}." 6119 data-tooltip-mobile-message="Interesting? Tap '{{wishlistIcon}}' to add to your {{wishlistName}}." 6120 data-button-transition-text-1="Price drops? Know first." 6121 data-button-transition-text-2="Almost gone. Just saying." 6122 data-button-transition-text-3="Yours when ready."> 6123 </div> 6124 6125 <div id="swym-education-tooltip-bubble" class="swym-education-tooltip swym-education-tooltip-above" aria-hidden="true" role="tooltip"> 6126 <div class="swym-education-tooltip-content"> 6127 <span class="swym-education-tooltip-message"></span> 6128 <button class="swym-education-tooltip-close" data-swym-education-tooltip-close aria-label="Close consent dialog"> 6129 <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> 6130 <path d="M18 6L6 18M6 6l12 12"></path> 6131 </svg> 6132 </button> 6133 </div> 6134 <div class="swym-education-tooltip-arrow"></div> 6135 </div> 6136 6137 <style> 6138 /* Education tooltip â positioned fixed, managed by JS */ 6139 .swym-education-tooltip { 6140 position: fixed; 6141 z-index: 500; 6142 visibility: hidden; 6143 opacity: 0; 6144 transition: opacity 0.2s ease, visibility 0.2s ease; 6145 pointer-events: none; 6146 } 6147 .swym-education-tooltip.swym-education-tooltip-visible { 6148 visibility: visible; 6149 opacity: 1; 6150 pointer-events: auto; 6151 } 6152 .swym-education-tooltip-content { 6153 background: var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 6154 color: var(--swym-storefront-layout-notification-neutral-text-color, #383d41); 6155 border: 1px solid var(--swym-storefront-layout-notification-neutral-border-color, #d6d8db); 6156 padding: 10px 14px; 6157 border-radius: var(--swym-storefront-layout-ui-border-radius, 10px); 6158 font-size: 13px; 6159 line-height: 1.4; 6160 display: flex; 6161 align-items: center; 6162 gap: 8px; 6163 max-width: 320px; 6164 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); 6165 } 6166 .swym-education-tooltip-message { 6167 flex: 1; 6168 } 6169 .swym-education-tooltip-close { 6170 background: none; 6171 border: none; 6172 color: inherit; 6173 cursor: pointer; 6174 padding: 2px; 6175 line-height: 1; 6176 flex-shrink: 0; 6177 opacity: 0.7; 6178 } 6179 .swym-education-tooltip-close:hover { 6180 opacity: 1; 6181 } 6182 6183 /* Button text fade transition for education nudge */ 6184 .swym-btn-text-fade-out { 6185 opacity: 0; 6186 transition: opacity 0.2s ease; 6187 } 6188 .swym-btn-text-fade-in { 6189 opacity: 1; 6190 transition: opacity 0.3s ease; 6191 } 6192 6193 /* Arrow â points down when tooltip is above, up when below */ 6194 .swym-education-tooltip-arrow { 6195 width: 0; 6196 height: 0; 6197 position: absolute; 6198 left: 50%; 6199 transform: translateX(-50%); 6200 } 6201 .swym-education-tooltip-above .swym-education-tooltip-arrow { 6202 bottom: -6px; 6203 border-left: 6px solid transparent; 6204 border-right: 6px solid transparent; 6205 border-top: 6px solid var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 6206 } 6207 .swym-education-tooltip-below .swym-education-tooltip-arrow { 6208 top: -6px; 6209 border-left: 6px solid transparent; 6210 border-right: 6px solid transparent; 6211 border-bottom: 6px solid var(--swym-storefront-layout-notification-neutral-bg-color, #FFFFFF); 6212 } 6213 6214 /* Hidden data element */ 6215 #swym-education-tooltip { 6216 display: none; 6217 } 6218 6219 @media (max-width: 480px) { 6220 .swym-education-tooltip-content { 6221 max-width: 90vw; 6222 font-size: 12px; 6223 } 6224 } 6225 </style> 6226 6227
6227<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-education-tooltip.js" defer="defer"></script>
6227 6228
6228<script src="https://cdn.shopify.com/extensions/01a0d2a3-23d4-7eab-8707-4bef87dc5dd8/swym-relay-839/assets/swym-education.js" defer="defer"></script>
6228 6229 6230<!-- END app snippet --> 6231 6232 6233</div>
6233<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6233 6234</body> 6235 6236 <div id="shopify-section-app-optimization" class="shopify-section"> 6237 6238</div> 6239</html>
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.