1<!doctype html> 2 <html class="no-js flexbox-gap" lang="en" dir="ltr"> 3 <head>
3<script data-source-attribution="shopify.event_observer.bootstrap"> 4(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//madhippie.com/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`15035836`)))})(); 5//# sourceURL=event-observer-collector.js 6</script>
6 7 8 9 10 11 12
13<script src="/cdn/shopifycloud/consent-tracking-api/v0.1/consent-tracking-api.js"></script>
13 14
15<script type="text/javascript"> 16 17 var Y=Object.defineProperty;var X=(m,g,p)=>g in m?Y(m,g,{enumerable:!0,configurable:!0,writable:!0,value:p}):m[g]=p;var n=(m,g,p)=>X(m,typeof g!="symbol"?g+"":g,p);(function(){"use strict";var m=" daum[ /]| deusu/| yadirectfetcher|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<![hg]m)score|(?<!cam)scan|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\btime/|\\||^<|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^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+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|^{{.*}}$|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|exaleadcloudview|feed|firephp|functionize|gomezagent|grab|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|infrawatch|insight|inspect|iplabel|ips-agent|java(?!;)|library|linkcheck|mail\\.ru/|manager|measure|neustar wpm|node|nutch|offbyone|onetrust|optimize|pageburst|pagespeed|parser|perl|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|xtate/",g=/bot|crawl|http|lighthouse|scan|search|spider/i,p;function M(){if(p instanceof RegExp)return p;try{p=new RegExp(m,"i")}catch{p=g}return p}function O(c){return!!c&&M().test(c)}/*! js-cookie v3.0.5 | MIT */function _(c){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)c[i]=t[i]}return c}var U={read:function(c){return c[0]==='"'&&(c=c.slice(1,-1)),c.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(c){return encodeURIComponent(c).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function S(c,e){function t(r,a,s){if(!(typeof document>"u")){s=_({},e,s),typeof s.expires=="number"&&(s.expires=new Date(Date.now()+s.expires*864e5)),s.expires&&(s.expires=s.expires.toUTCString()),r=encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var h in s)s[h]&&(o+="; "+h,s[h]!==!0&&(o+="="+s[h].split(";")[0]));return document.cookie=r+"="+c.write(a,r)+o}}function i(r){if(!(typeof document>"u"||arguments.length&&!r)){for(var a=document.cookie?document.cookie.split("; "):[],s={},o=0;o<a.length;o++){var h=a[o].split("="),d=h.slice(1).join("=");try{var f=decodeURIComponent(h[0]);if(s[f]=c.read(d,f),r===f)break}catch{}}return r?s[r]:s}}return Object.create({set:t,get:i,remove:function(r,a){t(r,"",_({},a,{expires:-1}))},withAttributes:function(r){return S(this.converter,_({},this.attributes,r))},withConverter:function(r){return S(_({},this.converter,r),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(c)}})}var R=S(U,{path:"/"});const F=c=>{const e=window.innerWidth<768||window.outerWidth<768?"mobile":"desktop";return c===e},L=(c,e)=>{const t=!!e,i=String(c)==="true";return t===i},I="shg_geo_data";function B(c,e){const t=c-e;return Math.floor(t/(1e3*60*60*24))}function N(){if(new URLSearchParams(window.location.search).get("shg_geo_cache")==="false")return null;let e=null;try{const t=localStorage.getItem(I);if(t){const i=JSON.parse(t),r=Date.now();i.timestamp&&B(r,i.timestamp)<=7?e=i:localStorage.removeItem(I)}}catch(t){return console.error("Error reading geo data from cache:",t),localStorage.removeItem(I),null}return e}function q(c){let e=null;if(!c)return console.warn("Geo location API URL not configured."),e;try{const t=new XMLHttpRequest;t.open("GET",c,!1),t.send(null),t.status===200?(e=JSON.parse(t.responseText),e?(e.timestamp=Date.now(),localStorage.setItem(I,JSON.stringify(e))):(console.error("Geo API response parsed to null or undefined."),e=null)):console.error(`Geo API request failed with status: ${t.status}`)}catch(t){console.error("Error fetching geo data from API:",t)}return e}function Q(c){let e=null;try{const t=N();t?(e=t,console.debug("Loaded geo data from cache:",e)):(e=q(c),console.debug("Fetched geo data from API:",e))}catch(t){console.error("Error initializing geo data:",t),e=null}return e}const j=(c,e)=>{const{type:t,country_code:i,toponym_name:r,parent_name:a}=c||{},{country:s,region:o,city:h}=e||{};if(!t||!i||!e)return!1;switch(t){case"country":return s===i;case"region":return o===r&&s===i;case"city":return h===r&&o===a&&s===i;default:return console.debug("Unknown location type:",t),!1}},x=c=>typeof c!="string"?!1:document.referrer.toLowerCase().includes(c.toLowerCase()),$=c=>typeof c!="string"?!1:window.location.href.toLowerCase().includes(c.toLowerCase()),G=(c,e,t)=>{if(!e)return!1;const{expectedTimeInMillseconds:i,withinOrAfter:r}=c||{};if(typeof i!="number"||!r)return!1;const a=e.first_visit_timestamp;return r==="within"?a+i>t:a+i<t},K=(c,e,t)=>e?t-e.first_visit_timestamp<18e5===c:c===!0;function H(c,e){return c===e}const y=class y{constructor(e){n(this,"visitorDetails",null);n(this,"currentTime");n(this,"geoLocationApi");n(this,"customerId");n(this,"isB2B");n(this,"internalGeoData");n(this,"isGeoDataInitialized",!1);n(this,"checkers",{device:e=>F(e),logged_in:(e,t)=>L(e,this.customerId),new_visitor:(e,t)=>
17K(e,t.visitorDetails,t.currentTime),returning_visitor:(e,t)=>G(e,t.visitorDetails,t.currentTime),url_contains:e=>$(e),referrer_contains:e=>x(e),location:(e,t)=>j(e,t.geoData),b2b:e=>H(e,this.isB2B)});this.geoLocationApi=e.geoLocationApi,this.customerId=e.customerId,this.isB2B=e.isB2B,this.currentTime=Date.now(),this.initializeVisitorDetails()}initializeVisitorDetails(){var e;try{const t=localStorage.getItem(y.VISITOR_DETAILS_KEY);t&&(this.visitorDetails=JSON.parse(t),typeof((e=this.visitorDetails)==null?void 0:e.first_visit_timestamp)!="number"&&(console.warn("Invalid visitor details found in storage, resetting."),this.visitorDetails=null)),this.visitorDetails===null?(console.debug("Initializing new visitor details."),this.visitorDetails={first_visit_timestamp:this.currentTime},localStorage.setItem(y.VISITOR_DETAILS_KEY,JSON.stringify(this.visitorDetails))):console.debug("Loaded visitor details from storage:",this.visitorDetails)}catch(t){console.error("Error initializing visitor details:",t),localStorage.removeItem(y.VISITOR_DETAILS_KEY),this.visitorDetails={first_visit_timestamp:this.currentTime},localStorage.setItem(y.VISITOR_DETAILS_KEY,JSON.stringify(this.visitorDetails))}}check(e){const t=this.checkers[e.audience_type];
17if(!t)return console.warn(`Unknown audience type: ${e.audience_type}`),!1;e.audience_type==="location"&&(e.value=this.snakeCaseKeys(e.value),this.isGeoDataInitialized||(console.debug("Location check required, initializing geoData..."),this.internalGeoData=Q(this.geoLocationApi),this.isGeoDataInitialized=!0,console.debug("GeoData initialization result:",this.internalGeoData)));const i={geoData:this.internalGeoData===void 0?null:this.internalGeoData,visitorDetails:this.visitorDetails,currentTime:this.currentTime};try{const r=!!t(e.value,i);return console.debug("Audience check result:",{audience:e,internalContext:i,matched:r}),e.condition==="is_not"?!r:r}catch(r){return console.error("Error during audience check:",{audience:e,internalContext:i,error:r}),!1}}snakeCaseKeys(e){if(typeof e!="object")return e;const t={};for(const[i,r]of Object.entries(e)){const a=i.replace(/[A-Z]/g,s=>`_${s.toLowerCase()}`);t[a]=r}return t}};n(y,"VISITOR_DETAILS_KEY","_shg_ab_visitor_details");let P=y;class J{constructor(e,t){n(this,"buyItNowHandlerAttached",!1);n(this,"currentCartVariantId",null);n(this,"storefrontAccessToken");n(this,"shopDomain");n(this,"trackDispatchedSelection",(e,t)=>{const i=e&&e.isFirstAssignment===!1?"cache":t.distribution_method,r={shop_id:t.shop_id,optimization_id:e==null?void 0:e.optimization.id,variant_id:e==null?void 0:e.selectedVariant.id,details:{optimization_ids:t.optimization_ids,distribution_method:i,selection_details:t.selection_details,cache:t.cache,context:t.context,optimization_matches:t.optimization_matches}};this.trackingService.trackDispatch("dispatched",r)});this.trackingService=e,this.storefrontAccessToken=(t==null?void 0:t.storefrontAccessToken)??null,this.shopDomain=(t==null?void 0:t.shopDomain)??null,this.currentCartVariantId=(t==null?void 0:t.currentCartVariantId)??null,typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.attachPriceTestBuyItNowHandler()}):setTimeout(()=>{this.attachPriceTestBuyItNowHandler()},100)}async createCartAndGetCheckoutUrl(e,t,i){var o,h,d,f,V;if(!this.storefrontAccessToken||!this.shopDomain)return null;const r=` 18 mutation cartCreate($input: CartInput!) { 19 cartCreate(input: $input) { 20 cart { 21 id 22 checkoutUrl 23 } 24 userErrors { 25 field 26 message 27 } 28 } 29 } 30 `,a=i?[{key:"shogun_variant_id",value:i}]:[],s={input:{lines:[{merchandiseId:`gid://shopify/ProductVariant/${e}`,quantity:t}],attributes:a}};try{const k=JSON.stringify({query:r,variables:s}),z=`https://${this.shopDomain}/api/2025-10/graphql.json`;console.debug("shogun: cartCreate request URL:",z),console.debug("shogun: cartCreate request body:",k);const b=await(await fetch(z,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":this.storefrontAccessToken},body:k})).json();return console.debug("shogun: cartCreate full response:",JSON.stringify(b,null,2)),(d=(h=(o=b.data)==null?void 0:o.cartCreate)==null?void 0:h.cart)!=null&&d.checkoutUrl?(console.debug("shogun: cartCreate successful, checkoutUrl:",b.data.cartCreate.cart.checkoutUrl),b.data.cartCreate.cart.checkoutUrl):(console.error("shogun: cartCreate failed:",((V=(f=b.data)==null?void 0:f.cartCreate)==null?void 0:V.userErrors)||b.errors),null)}catch(k){return console.error("shogun: cartCreate error:",k),null}}async addToCartAndCheckout(e,t,i){const r={items:[{id:e,quantity:t}]};i&&(r.attributes={shogun_variant_id:i});try{const a=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});a.ok?(console.debug("shogun: added to cart, redirecting to checkout"),window.location.href="/checkout"):console.error("shogun: cart add failed:",await a.text())}catch(a){console.error("shogun: cart add error:",a)}}attachPriceTestBuyItNowHandler(){if(this.buyItNowHandlerAttached)return;this.buyItNowHandlerAttached=!0;const e=async i=>{const r=new FormData(i);let a=r.get("id")||r.get("variant_id");if(console.debug("shogun: buy-it-now form data:",Object.fromEntries(r.entries())),console.debug("shogun: raw variantId from form:",a),!a){console.debug("shogun: no variant ID found for buy-it-now");return}if(a.includes("gid://")){const h=a.match(/\/(\d+)$/);h&&(a=h[1],console.debug("shogun: extracted numeric ID from GID:",a))}const s=parseInt(r.get("quantity")||"1",10)||1,o=this.currentCartVariantId;if(console.debug("shogun: buy-it-now details:",{variantId:a,quantity:s,cartVariantId:o,storefrontAccessToken:this.storefrontAccessToken?"***":null,shopDomain:this.shopDomain}),this.storefrontAccessToken&&this.shopDomain){console.debug("shogun: attempting cartCreate with merchandiseId:",`gid://shopify/ProductVariant/${a}`);const h=await this.createCartAndGetCheckoutUrl(a,s,o);if(h){console.debug("shogun: redirecting to cartCreate checkoutUrl (original cart preserved)"),window.location.href=h;return}}console.debug("shogun: falling back to cart add with cart variant"),await this.addToCartAndCheckout(a,s,o)};typeof document<"u"&&(()=>{document.addEventListener("click",i=>{const r=i.target;if(!r)return;const a=r.closest('[data-ab-price-test-payment-button="true"]');if(!a||!r.closest('shopify-buy-it-now-button, shopify-accelerated-checkout, [data-shopify="payment-button"]'))return;const o=a.closest("form");o&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),e(o))},{capture:!0})})()}extractViewParamFromFullTemplateKey(e){const t=e.split("/").pop().split(".");return t.slice(1,t.length-1).join(".")}async handleRedirect(e){const t=new URL(window.location.href),i=new URL(window.location.href);if(e.optimization.scope==="theme")i.searchParams.set("preview_theme_id",e.
30selectedVariant.config.theme_id);else if(e.optimization.scope==="url_redirect")i.pathname=e.languageRootUrl!=="/"?e.languageRootUrl+e.selectedVariant.config.path:e.selectedVariant.config.path;else{const r=this.extractViewParamFromFullTemplateKey(e.selectedVariant.config.full_template_key);i.searchParams.set("view",r)}t.toString()===i.toString()?this.hideViewParam():this.redirectWithoutCache(i)}hideViewParam(){const e=new URL(window.location.href);e.searchParams.delete("view"),window.history.replaceState({},"",e.toString())}dispatch(e,t,i){let r=null,a=e.find(s=>s.current())||e[0];if(["price","product_details","checkout"].includes(a.optimization.scope))if(r=a,this.currentCartVariantId=t||a.selectedVariant.id,this.attachPriceTestBuyItNowHandler(),t)console.debug("shogun: price variant already assigned, returning");else{const s=a.selectedVariant.id;console.debug("shogun: assigning price variant");const o=JSON.stringify({attributes:{shogun_variant_id:s}}),h=new XMLHttpRequest;h.open("POST","/cart/update.js",!0),h.setRequestHeader("Content-Type","application/json"),h.onreadystatechange=()=>{if(h.readyState==4&&h.status==200){if(e[0].optimization.scope==="checkout")return;console.debug("shogun: reloading to reflect cart pricing");const d=new URL(window.location.href);this.redirectWithoutCache(d)}},h.send(o)}else{const s=e.find(h=>h.matchingVariant.id!==h.selectedVariant.id);if(console.debug("redirectingSelection",s),s&&(s.optimization.scope!=="url_redirect"||s.isFirstAssignment===!0||s.optimization.config.permanent_redirect===!0))return this.trackDispatchedSelection(s,i),this.handleRedirect(s);const o=new Set(e.map(h=>h.optimization.scope));(o.has("template")||o.has("page"))&&this.hideViewParam(),r=e.find(h=>h.current())||s||null}e.length>0&&!r&&(r=e[0]),(r||e.length>0)&&this.trackDispatchedSelection(r,i),e.filter(s=>s.current()).forEach(s=>{this.trackingService.trackVariantImpression(s.selectedVariant,s.optimization.type)})}redirectWithoutCache(e){typeof e=="string"&&(e=new URL(e)),e.searchParams.delete("cache"),document.referrer!=""&&sessionStorage.setItem(C,document.referrer),console.debug("shogun: redirecting to ",e),window.location.replace(e)}}class v{constructor(e){n(this,"optimization");n(this,"matchingVariant");n(this,"selectedVariant");n(this,"isFirstAssignment");n(this,"languageRootUrl");this.optimization=e.optimization,this.matchingVariant=e.matchingVariant,this.selectedVariant=e.selectedVariant,this.isFirstAssignment=e.isFirstAssignment,this.languageRootUrl=e.languageRootUrl}current(){return this.matchingVariant.id===this.selectedVariant.id}}const w=class w{constructor(){n(this,"ran",!1)}removePreviewBarIframe(){console.debug("Setting up preview bar iframe removal");const e=()=>{w.PREVIEW_BAR_IFRAME_IDS.forEach(t=>{const i=document.getElementById(t);i&&(console.debug(`Removing preview bar iframe with id: ${t}`),i.remove())})};e(),document.addEventListener("DOMContentLoaded",()=>{console.debug("DOM loaded, setting up mutation observer for preview bar");const t=new MutationObserver(i=>{i.forEach(r=>{r.addedNodes.forEach(a=>{if(a.nodeType===Node.ELEMENT_NODE){const s=a;w.PREVIEW_BAR_IFRAME_IDS.includes(s.id)&&(console.debug(`Detected and removing preview bar iframe with id: ${s.id} via observer`),s.remove())}})})});if(document.body)t.observe(document.body,{childList:!0,subtree:!0});else{const i=new MutationObserver(()=>{document.body&&(t.observe(document.body,{childList:!0,subtree:!0}),e(),i.disconnect())});i.observe(document.documentElement,{childList:!0})}e()})}run(){this.ran||(this.removePreviewBarIframe(),this.ran=!0)}};n(w,"PREVIEW_BAR_IFRAME_IDS",["preview-bar-iframe","PBarNextFrameWrapper"]);let T=w;const D="_shg_analytics_queue";class W{enqueue(e){const t={...e,id:crypto.randomUUID(),attempts:0,createdAt:Date.now()},i=this.readQueue();return i[t.category].push(t),this.writeQueue(i),t}all(){const e=this.readQueue();return[...e.shogun_load,...e.dispatcher].sort((t,i)=>t.createdAt-i.createdAt)}update(e){const t=this.readQueue(),i=t[e.category],r=i.findIndex(a=>a.id===e.id);r!==-1&&(i[r]=e,this.writeQueue(t))}remove(e){const t=this.readQueue(),i=t[e.category],r=i.findIndex(a=>a.id===e.id);r!==-1&&(i.splice(r,1),this.writeQueue(t))}findLatest(e){const i=this.readQueue()[e];if(i.length!==0)return i[i.length-1]}readQueue(){const e=localStorage.getItem(D);if(!e)return this.emptyQueue();try{const t=JSON.parse(e);return t.shogun_load||(t.shogun_load=[]),t.dispatcher||(t.dispatcher=[]),t}catch(t){return console.error("shogun: failed to parse analytics queue storage, resetting",t),localStorage.removeItem(D),this.emptyQueue()}}writeQueue(e){try{localStorage.setItem(D,JSON.stringify(e))}catch(t){console.error("shogun: failed to save analytics queue",t)}}emptyQueue(){return{shogun_load:[],dispatcher:[]}}}const u=class u{constructor(e,t,i,r,a,s){n(this,"publishable",!1);n(this,"allowed",null);n(this,"eventQueue",new W);n(this,"processingQueue",!1);n(this,"pendingProcess",!1);n(this,"processTimer",null);n(this,"trackVariantImpression",(e,t)=>{const i={page_type:this.pageType,page_id:this.pageId,app_type:t=="ab_test"?"ab_testing":"personalization",original_referrer:this.originalReferrer};i.optimization_id=e.optimization_id,i.variant_id=e.id,console.debug(`Tracking variant impression: optimization=${e.optimization_id}, variant=${e.id}`),this.enqueueShogunLoadEvent(i)});n(this,"trackPage",()=>{const e={page_type:this.pageType,page_id:this.pageId,app_type:"ab_testing"};this.enqueueShogunLoadEvent(e)});n(this,"trackDispatch",(e,t)=>{this.enqueueEvent({category:"dispatcher",event:e,data:t})});n(this,"enqueueEvent",e=>{console.debug("shogun: enqueueing tracking event",{category:e.category,event:"event"in e?e.event:void 0}),e.category==="shogun_load"&&(!this.publishable||this.allowed!==!0)&&console.debug("shogun: not ready, enqueueing shogun:load event");try{this.eventQueue.enqueue(e),this.scheduleProcessQueue()}catch(t){console.error("shogun: failed to enqueue analytics event",t)}});n(this,"enqueueShogunLoadEvent",e=>{this.enqueueEvent({category:"shogun_load",data:e})});n(this,"waitForPublishable",()=>{var i,r;let e=0;const t=()=>{var a,s;if(typeof((s=(a=window.Shopify)==null?void 0:a.analytics)==null?void 0:s.publish)>"u")if(e<=u.retryAttemptsLimit){setTimeout(t,u.retryIntervalInMs);return}else{console.warn("shogun:ts: Shopify analytics unavailable after 30s"),this.handleError("Error initializing TrackingService: Shopify analytics not available after 30s");return}console.debug("shogun:ts: publishable"),this.publishable=!0,this.scheduleProcessQueue()};(r=(i=window.Shopify)==null?void 0:i.analytics)!=null&&r.publish?(console.debug("shogun:ts: publishable"),this.publishable=!0):(console.debug("shogun:ts: analytics api not available yet, waiting..."),t())});n(this,"waitForConsent",()=>{var i,r;let e=0;const t=()=>{if(typeof window.Shopify>"u"&&e<=u.retryAttemptsLimit){setTimeout(t,u.retryIntervalInMs);return}window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],a=>{var s;if(a&&a.length>0){let o=[];a.forEach(h=>{console.error(h),o.push(h.message)}),this.handleError(`Error initializing TrackingService: ${o.join(", ")}`)}else console.debug("shogun:ts: consent available"),this.handleConsentChange(((s=window.Shopify.customerPrivacy)==null?void 0:s.analyticsProcessingAllowed())??!1)})};(r=(i=window.Shopify)==null?void 0:i.customerPrivacy)!=null&&r.analyticsProcessingAllowed?(console.debug("shogun:ts: consent available"),this.allowed=window.Shopify.customerPrivacy.analyticsProcessingAllowed()):(console.debug("shogun:ts: privacy api not available yet, waiting..."),t())});n(this,"handleConsentChange",e=>{this.allowed=e,console.debug("shogun: analytics consent updated to: ",this.allowed),this.scheduleProcessQueue()});n(this,"scheduleProcessQueue",()=>{if(this.processingQueue){this.pendingProcess=!0;return}this.processingQueue=!0;try{this.processQueue()}catch(e){console.error("shogun: error processing analytics queue",e)}finally{this.processingQueue=!1,this.pendingProcess&&(this.pendingProcess=!1,this.scheduleProcessQueue())}});n(this,"scheduleProcessQueueAfter",e=>{this.processTimer||(this.processTimer=setTimeout(()=>{this.processTimer=null,this.scheduleProcessQueue()},e))});n(this,"handleError",e=>{let t,i;const r=this.eventQueue.findLatest("shogun_load");r&&(t=r.data.optimization_id,i=r.data.variant_id),this.trackDispatchFallback("errored",{shop_id:this.shopI
30d,dispatcher_session_id:this.dispatcherSessionId,optimization_id:t,variant_id:i,details:{error:e}})});n(this,"dispatcherFallbackReady",e=>e.category!=="dispatcher"?!1:Date.now()-e.createdAt>=u.dispatchFallbackDelayInMs);n(this,"trackDispatchFallback",(e,t)=>{console.debug(`shogun: sending dispatch:${e} via fallback`),t.name=e,fetch(`${this.analyticsUrl}/dispatcher/${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),keepalive:!0})});n(this,"prepareFallbackPayload",e=>{const t=this.clonePayload(e);return t.shop_id=t.shop_id||this.shopId,t.dispatcher_session_id=this.dispatcherSessionId,t.details||(t.details={}),t});n(this,"clonePayload",e=>{try{return JSON.parse(JSON.stringify(e))}catch{return e}});this.shopId=e,this.pageType=t,this.pageId=i,this.originalReferrer=r,this.analyticsUrl=a,this.dispatcherSessionId=s,this.waitForPublishable(),this.waitForConsent(),document.addEventListener("visitorConsentCollected",o=>{this.handleConsentChange(o.detail.analyticsAllowed)}),this.scheduleProcessQueue()}processQueue(){console.debug("shogun: processing queue");const e=this.eventQueue.all();let t=!1;for(const i of e){if(this.shouldDropEvent(i)){this.eventQueue.remove(i);continue}if(this.isWithinBackoffWindow(i)){t=!0;continue}if(!this.isEventReady(i)){t=!0;continue}let r="success";try{r=this.deliverEvent(i)}catch(a){console.error("shogun: error delivering analytics event",a),r="retry"}r==="success"||r==="drop"?this.eventQueue.remove(i):(i.attempts+=1,i.lastAttemptedAt=Date.now(),this.eventQueue.update(i),t=!0)}t&&this.scheduleProcessQueueAfter(u.queueRetryDelayInMs)}shouldDropEvent(e){return Date.now()-e.createdAt>u.maxQueueAgeInMs||e.attempts>=u.maxQueueAttempts||e.category==="dispatcher"&&!e.event}isWithinBackoffWindow(e){if(!e.lastAttemptedAt)return!1;const t=u.queueRetryDelayInMs*Math.pow(2,Math.min(e.attempts,u.maxQueueAttempts));return Date.now()-e.lastAttemptedAt<t}isEventReady(e){return e.category==="shogun_load"?this.publishable&&this.allowed===!0:e.category==="dispatcher"?this.allowed===!0&&this.publishable?!0:this.dispatcherFallbackReady(e):!1}deliverEvent(e){return e.category==="shogun_load"?this.deliverShogunLoad(e):this.deliverDispatch(e)}deliverShogunLoad(e){const t=e.data;try{if(console.debug("Firing shogun:load event",t),!window.Shopify.analytics.publish)throw new Error("Shopify analytics publish is not available");return window.Shopify.analytics.publish("shogun:load",t),"success"}catch(i){return console.error("Error publishing shogun:load event:",i),"retry"}}deliverDispatch(e){if(e.category!=="dispatcher"||!e.event)return"drop";if(this.allowed===!0&&this.publishable){const i=`shogun:dispatcher:${e.event}`;try{if(console.debug(`Firing ${i} event`,e.data),!window.Shopify.analytics.publish)throw new Error("Shopify analytics publish is not available");return window.Shopify.analytics.publish(i,e.data),"success"}catch(r){console.error(`Error publishing ${i} event:`,r);const a=this.prepareFallbackPayload(e.data);return a.details||(a.details={}),a.details.error=`Error publishing ${i} event: ${r.message}`,this.trackDispatchFallback(e.event,a),"success"}}if(!this.dispatcherFallbackReady(e))return"retry";const t=this.prepareFallbackPayload(e.data);return this.trackDispatchFallback(e.event,t),"success"}};n(u,"retryIntervalInMs",250),n(u,"retryAttemptsLimit",3e4/u.retryIntervalInMs),n(u,"queueRetryDelayInMs",1e3),n(u,"maxQueueAttempts",5),n(u,"maxQueueAgeInMs",24*60*60*1e3),n(u,"dispatchFallbackDelayInMs",30*1e3);let A=u;const C="_shg_referrer",l=class l{constructor(e){n(this,"shopId");n(this,"optimizations");n(this,"currentThemeId");n(this,"pageId");n(this,"pageType");n(this,"currentPartialTemplateKey");n(this,"distributionMethod");n(this,"cachedOptimizations");n(this,"audienceChecker");n(this,"personalizations");n(this,"abTests");n(this,"dispatcher");n(this,"trackingService");n(this,"currentPath");n(this,"themeTestHandler");n(this,"currentCartVariantId");n(this,"languageRootUrl");n(this,"dispatcherSessionId");n(this,"originalReferrer");n(this,"inAudience",e=>this.audienceChecker.check(e));if(this.originalReferrer=sessionStorage.getItem(C),this.originalReferrer){sessionStorage.removeItem(C),console.debug("shogun: retaining original referrer: ",this.originalReferrer);try{Object.defineProperty(document,"referrer",{get:()=>this.originalReferrer})}catch(s){console.debug("shogun: failed to set original referrer via `Object.defineProperty`"),console.error(s);try{window.document.__defineGetter__("referrer",()=>this.originalReferrer)}catch(o){console.debug("shogun: failed to set original referrer via `__defineGetter__`"),console.error(o)}}}
30this.shopId=e.shopId,this.currentThemeId=e.currentThemeId,this.currentCartVariantId=e.currentCartVariantId;const t=e.optimizations||[];e.defaultThemeId!==this.currentThemeId?this.optimizations=t.filter(s=>s.scope==="price"||s.scope==="product_details"||s.variants.some(o=>o.config.theme_id===this.currentThemeId)):this.optimizations=t,this.personalizations=this.optimizations.filter(s=>s.type==="personalization"),this.abTests=this.optimizations.filter(s=>s.type==="ab_test"),this.distributionMethod=e.distributionMethod||l.DEFAULT_DISTRIBUTION_METHOD,this.pageId=e.pageId,this.pageType=e.pageType,this.languageRootUrl=e.languageRootUrl;const i=this.pageType==="metaobject"?"templates/metaobject/":"templates/",r=[e.templateName,e.templateSuffix].filter(Boolean).join(".");this.currentPartialTemplateKey=i+r,this.currentPath=window.location.pathname,this.cachedOptimizations=JSON.parse(localStorage.getItem(l.OPTIMIZATIONS_CACHE_KEY)||"{}"),this.audienceChecker=new P(e),e.sessionIdOverride?this.dispatcherSessionId=e.sessionIdOverride:(this.dispatcherSessionId=R.get(l.DISPATCHER_SESSION_COOKIE)||crypto.randomUUID(),R.set(l.DISPATCHER_SESSION_COOKIE,this.dispatcherSessionId,{path:"/",expires:1/48})),this.trackingService=new A(this.shopId,this.pageType,this.pageId,this.originalReferrer,e.analyticsUrl,this.dispatcherSessionId);const a=new T;this.themeTestHandler=a,this.dispatcher=new J(this.trackingService,{storefrontAccessToken:e.storefrontAccessToken,shopDomain:e.shopDomain,currentCartVariantId:e.currentCartVariantId})}getOptimizationPriority(e){return{theme:1,template:2,page:3,url_redirect:4,price:5,product_details:6,checkout:7}[e.scope]}sortMatches(e){return[...e].sort((t,i)=>{const r=this.getOptimizationPriority(t.optimization),a=this.getOptimizationPriority(i.optimization);return r===a?0:r-a})}audienceMatchesCurrentVisitor(e){const t=e.audiences||[];return t.length===0?!0:e.audiences_condition==="any"?t.some(this.inAudience):t.every(this.inAudience)}configAudiencesMatch(e,t){const i=e.audiences||[],r=t.audiences||[];if(i.length!==r.length)return!1;const a=i.map(o=>JSON.stringify(o)),s=r.map(o=>JSON.stringify(o));return!(a.some(o=>!s.includes(o))||s.some(o=>!a.includes(o))||i.length>1&&e.audiences_condition!==t.audiences_condition)}getCachedVariant(e){const t=this.cachedOptimizations[e.id];if(t)return e.variants.find(i=>i.id===t)}setCachedVariant(e,t){this.cachedOptimizations[e.id]=t.id,console.debug("setCachedVariant",e.id,t.id),localStorage.setItem(l.OPTIMIZATIONS_CACHE_KEY,JSON.stringify(this.cachedOptimizations))}extractPartialTemplateKeyFromFullTemplateKey(e){if(!e)return;const t=e.split(".");return t.length<2?e:t.slice(0,-1).join(".")}matchesAnyAttributeOfCurrentPage(e,t){const i=this.checkTemplateMatch(t),r=this.checkThemeMatch(e,t),a=this.checkPageMatch(e),s=this.checkPathMatch(t),o=this.checkPriceMatch(e,t),h=this.checkProductDetailsMatch(e,t),d=this.checkCheckoutMatch(e,t);return r||i&&a||s||o||h||d}getMatchingVariant(e,t=void 0){var a;const i=e.config,r=(a=t==null?void 0:t.selectedVariant)==null?void 0:a.config;for(const s of e.variants){if(!this.matchesAnyAttributeOfCurrentPage(e,s))continue;const o=e.type==="ab_test"?e.config:s.config;if(this.audienceMatchesCurrentVisitor(o)&&!(r&&!this.configAudiencesMatch(i,r)))return s}}getPersonalizationMatches(){const e=[];for(const t of this.personalizations){const i=this.getMatchingVariant(t);i&&e.push({optimization:t,matchingVariant:i})}return e}getPrioritizedNonDefaultPersonalizationSelection(){const e=this.getPersonalizationMatches();if(e.length===0)return;const t=this.sortMatches(e);for(const i of t){const a=i.optimization.variants.sort((s,o)=>s.position-o.position).find(s=>!s.config.original&&this.audienceMatchesCurrentVisitor(s.config));if(a)return new v({optimization:i.optimization,matchingVariant:i.matchingVariant,selectedVariant:a,isFirstAssignment:!0,languageRootUrl:this.languageRootUrl})}}getDefaultPersonalizationSelectionsForImpressionTracking(e){return this.getPersonalizationMatches().filter(r=>r.matchingVariant.config.original&&r.optimization.id!==(e==null?void 0:e.optimization.id)).map(r=>new v({optimization:r.optimization,matchingVariant:r.matchingVariant,selectedVariant:r.matchingVariant,isFirstAssignment:!0,languageRootUrl:this.languageRootUrl}))}getRandomVariantForOptimization(e){const t=`${this.dispatcherSessionId}-${e.id}`,r=this.hashWithDjb2(t)%l.DEFAULT_NUMBER_OF_BINS;let a=0;for(const s of e.variants)if(a+=l.DEFAULT_NUMBER_OF_BINS*(s.config.percentage||0)/100,r<a)return s;return e.variants[0]}hasAnyCachedVariants(){return this.abTests.some(e=>!!this.cachedOptimizations[e.id])}getGreedySelections(e){const t=e[Math.floor(Math.random()*e.length)],i=t.cachedVariant||this.getRandomVariantForOptimization(t.optimization);return[new v({optimization:t.optimization,matchingVariant:t.matchingVariant,selectedVariant:i,isFirstAssignment:!t.cachedVariant,languageRootUrl:this.languageRootUrl})]}userBin(){const e=this.dispatcherSessionId;return e?this.hashWithDjb2(e)%l.DEFAULT_NUMBER_OF_BINS:0}hashWithDjb2(e){let t=5381;for(let i=0;i<e.length;i++)t=(t<<5)-t+e.charCodeAt(i),t|=0;return Math.abs(t)}getVariantForUserBin(){const e=this.userBin(),t=this.abTests.flatMap(r=>r.variants);let i=0;for(const r of t)if(i+=l.DEFAULT_NUMBER_OF_BINS*(r.traffic_percentage||0)/100,e<i)return r;return null}getEvenSelections(e){const t=this.getVariantForUserBin();if(!t)return[];const i=e.find(r=>r.optimization.variants.some(a=>a.id===t.id));return i?[new v({optimization:i.optimization,matchingVariant:i.matchingVariant,selectedVariant:t,isFirstAssignment:!i.cachedVariant,languageRootUrl:this.languageRootUrl})]:[]}getAbTestMatches(e){const t=[];
30return this.abTests.forEach(i=>{const r=this.getMatchingVariant(i,e);if(r){const a=this.getCachedVariant(i);(r.config.original||a)&&t.push({optimization:i,matchingVariant:r,cachedVariant:a})}}),t}getAbTestSelections(e){const t=this.getAbTestMatches(e);if(t.length===0)return[];const i=t.find(r=>!!r.cachedVariant);if(!i&&this.hasAnyCachedVariants())return[];if(i)return[new v({optimization:i.optimization,matchingVariant:i.matchingVariant,selectedVariant:i.cachedVariant,isFirstAssignment:!1,languageRootUrl:this.languageRootUrl})];switch(this.distributionMethod){case"greedy":return this.getGreedySelections(t);case"even":return this.getEvenSelections(t);default:throw new Error(`Unknown distribution method: ${this.distributionMethod}`)}}isBot(){const e=navigator.userAgent,t=O(e);return console.debug("Bot testing with user agent:",e),t}handleThemeReview(){const t=new URLSearchParams(location.search).get("shgpvid"),i=sessionStorage.getItem("_shg_preview_variant_id");if(i&&(!t||i==t)){console.debug(`shogun: theme review in progress, viewing variant: ${i}`);const r=document.getElementById("shogun-price-test-preview");if(!r){console.debug("shogun: sidebar not found!!!");return}const a=r.content.cloneNode(!0);document.addEventListener("DOMContentLoaded",()=>{document.body.style.paddingLeft="32rem",document.body.prepend(a)});return}else if(t&&(!i||i!=t)){console.debug(`shogun: theme review in progress, setting variant: ${t}`),sessionStorage.setItem("_shg_preview_variant_id",t);const r=JSON.stringify({attributes:{shogun_variant_id:t}}),a=new XMLHttpRequest;a.open("POST","/cart/update.js",!0),a.setRequestHeader("Content-Type","application/json"),a.onreadystatechange=()=>{a.readyState==4&&a.status==200&&(console.debug("shogun: reloading to reflect cart pricing"),location=location)},a.send(r)}}run(){let e=null,t=this.distributionMethod,i=[];const r=(a,s={})=>{var h,d;const o=a&&a.isFirstAssignment===!1?"cache":t;return{shop_id:this.shopId,optimization_id:(h=a==null?void 0:a.optimization)==null?void 0:h.id,variant_id:(d=a==null?void 0:a.selectedVariant)==null?void 0:d.id,details:{optimization_ids:this.optimizations.map(f=>f.id),distribution_method:o,selection_details:i,...s}}};try{if(this.isBot()){console.debug("Bot traffic detected, optimizer disabled");return}this.handleThemeReview();const a=this.getPrioritizedNonDefaultPersonalizationSelection(),s=this.getAbTestSelections(a),o=[];a&&o.push(a),o.push(...s),o.push(...this.getDefaultPersonalizationSelectionsForImpressionTracking(a)),localStorage.getItem("_shg_is_merchant")||this.themeTestHandler.run(),e=o.find(d=>d.matchingVariant.id===d.selectedVariant.id)||null,e&&!e.isFirstAssignment&&(t="cache"),i=o.map(d=>({optimization_id:d.optimization.id,selected_variant_id:d.selectedVariant.id,matching_variant_id:d.matchingVariant.id}));const h={shop_id:this.shopId,optimization_ids:this.optimizations.map(d=>d.id),selection_details:i,distribution_method:t,cache:{...this.cachedOptimizations},context:{template_key:this.currentPartialTemplateKey,theme_id:this.currentThemeId,page_type:this.pageType,page_id:this.pageId},optimization_matches:this.buildOptimizationMatches(a)};if(s.forEach(d=>{this.setCachedVariant(d.optimization,d.selectedVariant)}),o.length===0){this.abTests.length>0&&(this.trackingService.trackPage(),this.trackingService.trackDispatch("skipped",r(e)));return}this.dispatcher.dispatch(o,this.currentCartVariantId,h)}catch(a){this.trackingService.trackDispatch("errored",r(e,{error:a.message}))}}getCurrentPathWithoutLanguagePrefix(){return this.languageRootUrl==="/"||!this.currentPath.startsWith(this.languageRootUrl)?this.currentPath:this.currentPath.substring(this.languageRootUrl.length)||"/"}checkTemplateMatch(e){return this.extractPartialTemplateKeyFromFullTemplateKey(e.config.full_template_key)===this.currentPartialTemplateKey}checkThemeMatch(e,t){return e.scope==="theme"&&t.config.theme_id===this.currentThemeId}checkPageMatch(e){const{page_type:t,page_id:i}=e.config,r=!t||t===this.pageType,a=!i||i===this.pageId;return e.scope!=="url_redirect"&&r&&a}checkPathMatch(e){const t=e.config.path;if(!t)return!1;const i=this.getCurrentPathWithoutLanguagePrefix();return decodeURIComponent(t)===decodeURIComponent(i)}checkPriceMatch(e,t){return e.scope!=="price"?!1:!this.currentCartVariantId||this.currentCartVariantId===t.id}checkProductDetailsMatch(e,t){return e.scope!=="product_details"?!1:!this.currentCartVariantId||this.currentCartVariantId===t.id}checkCheckoutMatch(e,t){return e.scope!=="checkout"?!1:!this.currentCartVariantId||this.currentCartVariantId===t.id}getDetailedMatchingInfo(e,t,i){const{page_type:r,page_id:a}=e.config,s=!r||r===this.pageType,o=!a||a===this.pageId,h=e.type==="ab_test"?e.config:t.config,d=i?this.configAudiencesMatch(e.config,i.selectedVariant.config):!1;return{matches_template:this.checkTemplateMatch(t),matches_theme:this.checkThemeMatch(e,t),matches_page_type:s,matches_page_id:o,matches_page:this.checkPageMatch(e),matches_path:this.checkPathMatch(t),matches_price:this.checkPriceMatch(e,t),matches_audience:this.audienceMatchesCurrentVisitor(h),matches_personalization_config:d}}buildOptimizationMatches(e){const t={};for(const i of this.optimizations)if(t[i.id]={}
30,i.variants&&Array.isArray(i.variants))for(const r of i.variants)t[i.id][r.id]=this.getDetailedMatchingInfo(i,r,e);return t}};n(l,"DEFAULT_NUMBER_OF_BINS",1e4),n(l,"DEFAULT_DISTRIBUTION_METHOD","greedy"),n(l,"OPTIMIZATIONS_CACHE_KEY","_shg_ab_optimizations_cache"),n(l,"DISPATCHER_SESSION_COOKIE","_shg_dispatcher_session");let E=l;window.ShogunOptimizer=E})(); 31 32 33</script>
33<script type="text/javascript"> 34 ;(function() { 35 if (typeof ShogunOptimizer === 'undefined') { 36 console.error("ShogunOptimizer is not defined. Please ensure the optimizer script is properly loaded."); 37 return; 38 } 39 40 const designMode = false; 41 if (designMode) { 42 console.debug("Design mode is enabled, skipping optimizer initialization"); 43 return; 44 } 45 46 // If the referrer url is the Shopify admin url, then set a local storage shg_is_merchant flag to true 47 // This is used to remove the preview bar from the page for shoppers 48 const referrer = document.referrer 49 if (!localStorage.getItem('_shg_is_merchant') && ((referrer.includes('admin.shopify.com') || referrer.includes('shogun')))) { 50 console.debug('Setting shg_is_merchant to true') 51 localStorage.setItem('_shg_is_merchant', 'true') 52 } 53 54 const urlParams = new URLSearchParams(window.location.search); 55 const optimizationDisabled = urlParams.get('shg') === "false" || window.location.hostname.includes('shopifypreview'); 56 57 if (optimizationDisabled) { 58 console.debug("Optimization is disabled, skipping optimizer initialization"); 59 return; 60 } 61 62 const shopMetafieldConfig = {"default_theme_id":147750650016,"method":"greedy","optimizations":[],"expires_at":1770370502000,"env":"production"} || {}; 63 const optimizationsData = shopMetafieldConfig.expires_at > Date.now() ? (shopMetafieldConfig.optimizations || []) : []; 64 65 const optimizerConfig = { 66 shopId: "585cb521-5919-40d8-925f-12dd150ecef4", 67 optimizations: optimizationsData, 68 distributionMethod: urlParams.get('shgMethod') || shopMetafieldConfig.method, 69 defaultThemeId: String(shopMetafieldConfig.default_theme_id), 70 currentThemeId: "147750650016", 71 pageId: "236458120", 72 pageType: "page", 73 templateName: "page", 74 templateSuffix: "", 75 customerId: "", 76 isB2B: false, 77 sessionIdOverride: urlParams.get('shgSessionId'), 78 geoLocationApi: "https://ipinfo.io/json?token=f2ae3a557d807b", 79 currentCartVariantId: null, 80 languageRootUrl: "/", 81 analyticsUrl: "https://shogun-abc-production.global.ssl.fastly.net", 82 storefrontAccessToken: null, 83 shopDomain: "" 84 }; 85 86 console.debug("Initializing ShogunOptimizer with config:", optimizerConfig); 87 const optimizer = new ShogunOptimizer(optimizerConfig); 88 optimizer.run(); 89 })(); 90</script>
90 91 92 93 94 95 96 <!-- Google tag (gtag.js) â bootstraps GA4 ecom tracking below. 97 AW-1015735328 (Google Ads) intentionally NOT configured here â 98 it fires via the Google & YouTube Shopify app to avoid duplicate measurement. -->
vendor: 66 bytes, lines 98-99
98 99 <script async src="https://www.googletagmanager.com/gtag/js?id=
99G-C3R54PY4XP
vendor: 14 bytes, lines 99-100
99"></script> 100
100<script> 101 window.dataLayer = window.dataLayer || []; 102 function gtag(){dataLayer.push(arguments);} 103 gtag('js', new Date()); 104 </script>
104 105 106
107<script> 108(function() { 109 'use strict'; 110 111 // GA4 property â connected via Shopify Google channel 112 gtag('config', 'G-C3R54PY4XP', { send_page_view: false }); 113 114 var cachedCart = null; 115 116 // ========================================================= 117 // FETCH INTERCEPTOR (cart cache only) 118 // Caches /cart.js responses for begin_checkout. 119 // add_to_cart removed â Shopify native handles it. 120 // ========================================================= 121 var _fetch = window.fetch; 122 window.fetch = function(url) { 123 var urlStr = (typeof url === 'string') ? url : (url && url.url) || ''; 124 var args = arguments; 125 var promise = _fetch.apply(this, args); 126 127 try { 128 if (/\/cart\.js(\?|$)/.test(urlStr)) { 129 promise.then(function(res) { 130 if (!res.ok) return; 131 res.clone().json().then(function(cart) { 132 cachedCart = cart; 133 }).catch(function(){}); 134 }).catch(function(){}); 135 } 136 } catch(e) {} 137 138 return promise; 139 }; 140 141 // ========================================================= 142 // BEGIN CHECKOUT 143 // Fires when user clicks checkout button or submits checkout form. 144 // Uses cached cart data (updated on every cart fetch) to avoid 145 // async fetch that could lose the race to navigation. 146 // ========================================================= 147 function fireBeginCheckout() { 148 var cart = cachedCart; 149 if (!cart || !cart.items || !cart.items.length) return; 150 151 var items = []; 152 for (var i = 0; i < cart.items.length; i++) { 153 var ci = cart.items[i]; 154 items.push({ 155 item_id: String(ci.product_id), 156 item_name: ci.product_title || '', 157 item_brand: 'Mad Hippie', 158 item_variant: ci.variant_title || undefined, 159 price: (ci.final_price || ci.price || 0) / 100, 160 quantity: ci.quantity || 1 161 }); 162 } 163 164 gtag('event', 'begin_checkout', { 165 currency: 'USD', 166 value: (cart.total_price || 0) / 100, 167 items: items 168 }); 169 } 170 171 // Capture phase so event fires before navigation 172 document.addEventListener('click', function(e) { 173 var el = e.target.closest( 174 'a[href*="/checkout"], button[name="checkout"], input[name="checkout"], ' + 175 '[data-action="checkout"], .cart--checkout-button' 176 ); 177 if (el) fireBeginCheckout(); 178 }, true); 179 180 document.addEventListener('submit', function(e) { 181 var action = e.target.action || ''; 182 if (action.indexOf('/checkout') > -1) fireBeginCheckout(); 183 }, true); 184 185 // ========================================================= 186 // INITIAL CART CACHE 187 // Pre-load cart state so begin_checkout has data even if 188 // user goes directly to cart page and clicks checkout. 189 // ========================================================= 190 try { 191 _fetch('/cart.js').then(function(res) { 192 if (!res.ok) return; 193 res.json().then(function(cart) { 194 cachedCart = cart; 195 }).catch(function(){}); 196 }).catch(function(){}); 197 } catch(e) {} 198 199})(); 200</script>
200 201 202 203 204 205 <meta charset="UTF-8"> 206 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 207 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0"><meta name="description" content="Find our skin care products at a store near you!"><link href="//madhippie.com/cdn/shop/t/190/assets/theme--critical.css?v=183289855503955922831790034617" as="style" rel="preload"><link href="//madhippie.com/cdn/shop/t/190/assets/theme--async.css?v=78488721515109189021790034617" as="style" rel="preload"><link rel="canonical" href="https://madhippie.com/pages/stores" rel="dns-prefetch"><link rel="shortcut icon" href="//madhippie.com/cdn/shop/files/MH-Watercolor-Circle-44-_Cleansing_Oil.png?v=1702485987&width=32" type="image/png"> 208 <link rel="apple-touch-icon" href="//madhippie.com/cdn/shop/files/MH-Watercolor-Circle-44-_Cleansing_Oil.png?v=1702485987&width=180"><title>Stores | Mad Hippie | Mad Hippie</title><meta property="og:type" content="website" /> 209 <meta property="og:title" content="Stores | Mad Hippie" /><meta property="og:url" content="https://madhippie.com/pages/stores" /> 210<meta property="og:site_name" content="Mad Hippie" /> 211<meta property="og:description" content="Find our skin care products at a store near you!" /><meta name="twitter:card" content="summary" /> 212<meta name="twitter:description" content="Find our skin care products at a store near you!" /><meta name="twitter:title" content="Stores | Mad Hippie" /><meta 213 property="twitter:image" 214 content="https://madhippie.com/cdn/shop/files/Mad_Hippie_Logo_cb87bc33-ed92-4f1d-8344-f631a006524a.png?v=1753908194&width=480" 215 /><style>@font-face { 216 font-family: "DM Sans"; 217 font-weight: 400; 218 font-style: normal; 219 font-display: swap; 220 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n4.ec80bd4dd7e1a334c969c265873491ae56018d72.woff2") format("woff2"), 221 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n4.87bdd914d8a61247b911147ae68e754d695c58a6.woff") format("woff"); 222} 223@font-face { 224 font-family: "DM Sans"; 225 font-weight: 400; 226 font-style: normal; 227 font-display: swap; 228 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n4.ec80bd4dd7e1a334c969c265873491ae56018d72.woff2") format("woff2"), 229 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n4.87bdd914d8a61247b911147ae68e754d695c58a6.woff") format("woff"); 230} 231@font-face { 232 font-family: "DM Sans"; 233 font-weight: 500; 234 font-style: normal; 235 font-display: swap; 236 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n5.8a0f1984c77eb7186ceb87c4da2173ff65eb012e.woff2") format("woff2"), 237 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n5.9ad2e755a89e15b3d6c53259daad5fc9609888e6.woff") format("woff"); 238} 239@font-face { 240 font-family: "DM Sans"; 241 font-weight: 700; 242 font-style: normal; 243 font-display: swap; 244 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n7.97e21d81502002291ea1de8aefb79170c6946ce5.woff2") format("woff2"), 245 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_n7.af5c214f5116410ca1d53a2090665620e78e2e1b.woff") format("woff"); 246} 247@font-face { 248 font-family: "DM Sans"; 249 font-weight: 500; 250 font-style: italic; 251 font-display: swap; 252 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_i5.8654104650c013677e3def7db9b31bfbaa34e59a.woff2") format("woff2"), 253 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_i5.a0dc844d8a75a4232f255fc600ad5a295572bed9.woff") format("woff"); 254} 255@font-face { 256 font-family: "DM Sans"; 257 font-weight: 700; 258 font-style: italic; 259 font-display: swap; 260 src: url("//madhippie.com/cdn/fonts/dm_sans/dmsans_i7.52b57f7d7342eb7255084623d98ab83fd96e7f9b.woff2") format("woff2"), 261 url("//madhippie.com/cdn/fonts/dm_sans/dmsans_i7.d5e14ef18a1d4a8ce78a4187580b4eb1759c2eda.woff") format("woff"); 262} 263</style><style> 264 :root { 265 --font--featured-heading--size: 30px; 266 --font--section-heading--size: 24px; 267 --font--block-heading--size: 18px; 268 --font--heading--uppercase: normal; 269 --font--paragraph--size: 16px; 270 271 --font--heading--family: "DM Sans", sans-serif; 272 --font--heading--weight: 400; 273 --font--heading--normal-weight: 400; 274 --font--heading--style: normal; 275 276 --font--accent--family: "system_ui", -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; 277 --font--accent--weight: 400; 278 --font--accent--style: normal; 279 --font--accent--size: 13px; 280 281 --font--paragraph--family: "DM Sans", sans-serif; 282 --font--paragraph--weight: 500; 283 --font--paragraph--style: normal; 284 --font--bolder-paragraph--weight: 700; 285 } 286</style><style> 287 :root { 288 --color--accent-1: #eaf9ff; 289 --color--accent-1-translucent: rgba(234, 249, 255, 0.85); 290 --color--accent-2: #ffffff; 291 --color--accent-2-translucent: rgba(255, 255, 255, 0.85); 292 --bg-color--light: #ffffff; 293 --bg-color--light-translucent: rgba(255, 255, 255, 0.85); 294 --bg-color--cream: #ffffff; 295 --bg-color--dark: #222222; 296 --bg-color--dark-translucent: rgba(34, 34, 34, 0.85); 297 --bg-color--body: #ffffff; 298 --bg-color--body-translucent: rgba(255, 255, 255, 0.85); 299 --color--body: #212121; 300 --color--body--light: #515151; 301 --color--alternative: #ffffff; 302 --color--button: #212121; 303 --bg-color--button: #f68566; 304 --bg-color--button--hover: #f68566; 305 --bg-color--textbox: #fff; 306 --bg-color--panel: #f7f7f7; 307 --bdr-color--button: #212121; 308 --bdr-color--general: #eaeaea; 309 --bdr-color--badge: rgba(33, 33, 33, 0.07); 310 311 --color--border-disabled: #d2d2d2; 312 --color--button-disabled: #b9b9b9; 313 --color--success: #4caf50; 314 --color--fail: #d32f2f; 315 --color--stars: black; 316 --color--stars--bundle: #B06400; 317 318 /* shop pay */ 319 --payment-terms-background-color: #ffffff; 320 321 /* js helpers */ 322 --sticky-offset: 0px; 323 } 324</style><style></style>
324<script defer="defer"> 325 var theme = theme || {}; 326 theme.libraries = theme.libraries || {}; 327 theme.local_storage = theme.local_storage || {}; 328 theme.settings = theme.settings || {}; 329 theme.scripts = theme.scripts || {}; 330 theme.styles = theme.styles || {}; 331 theme.swatches = theme.swatches || {}; 332 theme.translations = theme.translations || {}; 333 theme.urls = theme.urls || {}; 334 335 theme.libraries.masonry = '//madhippie.com/cdn/shop/t/190/assets/masonry.min.js?v=153413113355937702121790034617'; 336 theme.libraries.swipe = '//madhippie.com/cdn/shop/t/190/assets/swipe-listener.min.js?v=123039615894270182531790034617'; 337 theme.libraries.plyr = '/cdn/shopifycloud/plyr/v2.0/shopify-plyr'; 338 theme.libraries.vimeo = 'player.vimeo.com/api/player.js'; 339 theme.libraries.youtube = 'youtube.com/iframe_api'; 340 341 theme.local_storage.age_verification = 'beyondTheme:ageVerified'; 342 theme.local_storage.collection_layout = 'beyondTheme:collectionLayout'; 343 theme.local_storage.recent_products = 'beyondTheme:recentlyViewed'; 344 theme.local_storage.search_layout = 'beyondTheme:searchLayout'; 345 346 theme.settings.cart_type = 'drawer'; 347 theme.settings.money_format = "${{amount}}"; 348 theme.settings.transitions = 'true' === 'false'; 349 350 theme.translations.add_to_cart = 'Add to Cart'; 351 theme.translations.mailing_list_success_message = 'Thanks for signing up!'; 352 theme.translations.out_of_stock = 'Out of stock'; 353 theme.translations.unavailable = 'Unavailable'; 354 theme.translations.url_copied = 'Link copied to clipboard'; 355 theme.translations.low_in_stock = { 356 one: 'Only 1 item left', 357 other: 'Only 2 items left' 358 }; 359 360 theme.urls.all_products_collection = '/collections/all'; 361 theme.urls.cart = '/cart'; 362 theme.urls.cart_add = '/cart/add'; 363 theme.urls.cart_change = '/cart/change'; 364 theme.urls.cart_update = '/cart/update'; 365 theme.urls.product_recommendations = '/recommendations/products'; 366 theme.urls.predictive_search = '/search/suggest'; 367 theme.urls.search = '/search'; 368 369 370 theme.urls.root = ''; 371 372 373 theme.swatches['yellow-green'] = '#9acd32'; 374 375 376 theme.swatches['red'] = 'rgb(139,0,0)'; 377 378 379 theme.swatches['orange'] = 'orange.PNG'; 380 381 382 theme.swatches['stealth-grey'] = '//madhippie.com/cdn/shop/files/stealth-grey_100x.jpg?v=49655'; 383 384</script>
384 385 386
387<script defer="defer"> 388 String.prototype.handleize = function () { 389 const char_map = { 390 á: "a", é: "e", Ã: "i", ó: "o", ú: "u", ñ: "n", ü: "u", à : "a", è: "e", ì: "i", ò: "o", ù: "u", 391 â: "a", ê: "e", î: "i", ô: "o", û: "u", ö: "o", ä: "a", Ã: "ss", ç: "c", è: "e", é: "e", ê: "e", 392 ë: "e", î: "i", ï: "i", ô: "o", Å: "oe", ù: "u", û: "u", ü: "u" 393 }; 394 // we need to convert non-english chars to english counterparts to match Liquid's 'handelize' filter 395 const regex = new RegExp(Object.keys(char_map).join("|"), 'g'); 396 397 return this.toLowerCase() 398 .replace(regex, (match) => (char_map[match] ? char_map[match] : match)) 399 .replace(/[^a-z0-9]+/g, '-') 400 .replace(/-+/g, '-') 401 .replace(/^-|-$/g, ''); 402 }; 403 404 // Element extended methods 405 Element.prototype.trigger = window.trigger = function(event, data = null) { 406 const event_obj = data == null ? new Event(event) : new CustomEvent(event, { detail: data }); 407 this.dispatchEvent(event_obj); 408 }; 409 410 Element.prototype.on = document.on = window.on = function(events, callback, options) { 411 // save the namespaces on the element itself 412 if (!this.namespaces) this.namespaces = {}; 413 414 events.split(' ').forEach(event => { 415 this.namespaces[event] = callback; 416 this.addEventListener(event.split('.')[0], callback, options); 417 }); 418 return this; 419 }; 420 421 Element.prototype.off = window.off = function(events) { 422 if (!this.namespaces) return; 423 424 events.split(' ').forEach(event => { 425 this.removeEventListener(event.split('.')[0], this.namespaces[event]); 426 delete this.namespaces[event]; 427 }); 428 return this; 429 }; 430 431 Element.prototype.index = function() { 432 return [...this.parentNode.children].indexOf(this); 433 }; 434 435 Element.prototype.offset = function() { 436 const rect = this.getBoundingClientRect(); 437 438 return { 439 top: rect.top + window.scrollY, 440 left: rect.left + window.pageXOffset 441 }; 442 }; 443 444 Element.prototype.setStyles = function(styles = {}) { 445 for (const property in styles) this.style[property] = styles[property]; 446 return this; 447 } 448 449 Element.prototype.remove = function() { 450 return this.parentNode.removeChild(this); 451 }; 452 453 // NodeList & Array extended methods 454 NodeList.prototype.on = Array.prototype.on = function(events, callback, options) { 455 this.forEach(element => { 456 // save the namespaces on the element itself 457 if (!element.namespaces) element.namespaces = {}; 458 459 events.split(' ').forEach(event => { 460 element.namespaces[event] = callback; 461 element.addEventListener(event.split('.')[0], callback, options); 462 }); 463 }); 464 }; 465 466 NodeList.prototype.off = Array.prototype.off = function(events) { 467 this.forEach(element => { 468 if (!element.namespaces) return; 469 470 events.split(' ').forEach(event => { 471 element.removeEventListener(event.split('.')[0], element.namespaces[event]); 472 delete element.namespaces[event]; 473 }); 474 }); 475 }; 476 477 NodeList.prototype.not = Array.prototype.not = function(arr_like_obj) { 478 // this always returns an Array 479 const new_array_of_elements = []; 480 if (arr_like_obj instanceof HTMLElement) arr_like_obj = [arr_like_obj]; 481 482 this.forEach(element => { 483 if (![...arr_like_obj].includes(element)) new_array_of_elements.push(element); 484 }); 485 486 return new_array_of_elements; 487 }; 488 489 // this global method is necessary for the youtube API, we can't use our own callback in this case 490 // https://developers.google.com/youtube/iframe_api_reference#Requirements 491 function onYouTubeIframeAPIReady() { 492 window.trigger('theme:youtube:apiReady'); 493 } 494 495 // Utility methods 496 theme.utils = new class Utilities { 497 constructor() { 498 this.isTouchDevice = window.matchMedia('(pointer: coarse)').matches;} 499 500 isValidEmail(email) { 501 const email_pattern = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i; 502 return email_pattern.test(email); 503 } 504 505 formatMoney(raw_amount) { 506 const num_decimals = theme.settings.money_format.includes('no_decimals') ? 0 : 2; 507 const locale = theme.settings.money_format.includes('comma') ? 'de-DE' : 'en-US'; 508 509 const formatter = Intl.NumberFormat(locale, { 510 minimumFractionDigits: num_decimals, 511 maximumFractionDigits: num_decimals 512 }); 513 514 const formatted_amount = formatter.format(raw_amount / 100); 515 516 return theme.settings.money_format.replace(/\{\{\s*(\w+)\s*\}\}/, formatted_amount); 517 } 518 519 getHiddenDimensions(element, strip_components = []) { 520 const cloned_el = this.parseHtml(element.outerHTML, null, strip_components); 521 cloned_el.setStyles({ 522 display: 'block', 523 position: 'absolute', 524 padding: element.style.padding, 525 visibility: 'hidden', 526 }) 527 528 element.parentNode ? element.parentNode.appendChild(cloned_el) : document.body.appendChild(cloned_el); 529 const { offsetHeight: height, offsetWidth: width } = cloned_el; 530 cloned_el.remove(); 531 return { height, width }; 532 } 533 534 libraryLoader(name, url, callback) { 535 if (theme.scripts[name] === undefined) { 536 theme.scripts[name] = 'requested'; 537 const script = document.createElement('script'); 538 script.src = url; 539 script.onload = () => { 540 theme.scripts[name] = 'loaded'; 541 callback && callback(); 542 window.trigger(`theme:${name}:loaded`); 543 }; 544 document.body ? document.body.appendChild(script) : document.head.appendChild(script); 545 } else if (callback && theme.scripts[name] === 'requested') { 546 window.on(`theme:${name}:loaded`, callback); 547 } else if (callback && theme.scripts[name] === 'loaded') callback(); 548 } 549 550 parseHtml(html_string, selector, strip_components = []) {
551 strip_components.forEach(component => { // remove web components so they don't init 552 const regex = new RegExp(component, 'g'); 553 html_string = html_string.replace(regex, 'div') 554 }); 555 556 const container = document.createElement('div'); 557 container.innerHTML = html_string; 558 return selector ? container.querySelector(selector) : container.querySelector(':scope > *'); 559 } 560 561 setSwatchColors(inputs = false) { 562 if (!inputs) return 563 564 inputs.forEach(input => { 565 const swatch = input.nextElementSibling; 566 const swatch_color = input.value.handleize(); 567 568 if (theme.swatches[swatch_color] === undefined) { 569 swatch.style['background-color'] = swatch_color; 570 } else if (CSS.supports('color', theme.swatches[swatch_color])) { 571 swatch.style['background-color'] = theme.swatches[swatch_color]; 572 } else { 573 swatch.style['background-image'] = `url(${theme.swatches[swatch_color]})`; 574 } 575 }); 576 } 577 578 stylesheetLoader(name, url, callback) { 579 if (theme.styles[name] === undefined) { 580 theme.styles[name] = 'requested'; 581 const stylesheet = document.createElement('link'); 582 stylesheet.rel = 'stylesheet'; 583 stylesheet.href = url; 584 stylesheet.onload = () => { 585 theme.styles[name] = 'loaded'; 586 callback && callback(); 587 window.trigger(`theme:${name}Styles:loaded`); 588 } 589 document.body ? document.body.appendChild(stylesheet) : document.head.appendChild(stylesheet); 590 } else if (callback && theme.styles[name] === 'requested') { 591 window.on(`theme:${name}Styles:loaded`, callback); 592 } else if (callback && theme.styles[name] === 'loaded') callback(); 593 } 594 595 getQuantity(product_id, { id, management, policy, quantity }, requested_quantity) { 596 // if inventory isn't tracked we can add items indefinitely 597 if (management !== 'shopify' || policy === 'continue') return requested_quantity; 598 599 const cart_quantity = theme.cart.basket[id] ? theme.cart.basket[id] : 0; 600 let quantity_remaining = parseInt(quantity) - cart_quantity; 601 602 if (quantity_remaining <= 0) { 603 quantity_remaining = 0; 604 window.trigger(`theme:product:${product_id}:updateQuantity`, 1); 605 } else if (requested_quantity > quantity_remaining) { 606 window.trigger(`theme:product:${product_id}:updateQuantity`, quantity_remaining); 607 } else return requested_quantity; 608 609 theme.feedback.trigger('quantity', quantity_remaining); 610 return false; 611 } 612 613 updateRecentProducts(handle) { 614 const current_product_arr = [handle]; 615 const previous_product_str = localStorage.getItem(theme.local_storage.recent_products); 616 const max_num_recents_stored = 4; 617 let previous_product_arr, current_product_str, newly_visited_product = false; 618 619 // first check if we have existing data or not 620 if (previous_product_str) { 621 previous_product_arr = JSON.parse(previous_product_str); 622 623 if (previous_product_arr.indexOf(handle) === -1) newly_visited_product = true; 624 } else { 625 // localStorage accepts strings only, so we'll convert to string and set 626 current_product_str = JSON.stringify(current_product_arr); 627 localStorage.setItem(theme.local_storage.recent_products, current_product_str); 628 } 629 if (newly_visited_product) { 630 if (previous_product_arr.length === max_num_recents_stored) 631 previous_product_arr = previous_product_arr.slice(1); 632 633 current_product_str = JSON.stringify(previous_product_arr.concat(current_product_arr)); 634 localStorage.setItem(theme.local_storage.recent_products, current_product_str); 635 } 636 } 637 } 638</script>
vendor: 1 bytes, line 638
638
639<script type="module" defer="defer"> 640 import "//madhippie.com/cdn/shop/t/190/assets/a11y.js?v=88460550814538636921790034617"; 641 import "//madhippie.com/cdn/shop/t/190/assets/media-queries.js?v=71639634187374033171790034617"; 642 import "//madhippie.com/cdn/shop/t/190/assets/radios.js?v=95698407015915903831790034617"; 643 import "//madhippie.com/cdn/shop/t/190/assets/transitions.js?v=160551515380760614921790034617"; 644 import "//madhippie.com/cdn/shop/t/190/assets/general.js?v=144083206377805666131790034617"; 645 import "//madhippie.com/cdn/shop/t/190/assets/tab-order.js?v=32202179289059533031790034617"; 646 import "//madhippie.com/cdn/shop/t/190/assets/collapsible-row.js?v=100618055053173039611790034617"; 647 import "//madhippie.com/cdn/shop/t/190/assets/placeholder.js?v=9426227501006968881790034617"; 648 import "//madhippie.com/cdn/shop/t/190/assets/disclosure.js?v=150954186219758191661790034617"; 649 import "//madhippie.com/cdn/shop/t/190/assets/quantity-selector.js?v=129937398248354481681790034617"; 650 import "//madhippie.com/cdn/shop/t/190/assets/feedback-bar.js?v=41068180466968126491790034617"; 651 import "//madhippie.com/cdn/shop/t/190/assets/modal.js?v=34505000701165224281790034617";import "//madhippie.com/cdn/shop/t/190/assets/y-menu.js?v=105207714253058857401790034617"; 652 import "//madhippie.com/cdn/shop/t/190/assets/drawer.js?v=82951047663087684911790034617"; 653 import "//madhippie.com/cdn/shop/t/190/assets/header.js?v=135871133677133542451790034617"; 654 import "//madhippie.com/cdn/shop/t/190/assets/cart.js?v=75442524199986842621790034617"; 655 import "//madhippie.com/cdn/shop/t/190/assets/x-menu.js?v=160269860071682030911790034617";import "//madhippie.com/cdn/shop/t/190/assets/quick-add.js?v=8171462438333045641790034617"; 656 import "//madhippie.com/cdn/shop/t/190/assets/product-buy-buttons.js?v=145238618526072675201790034617";import "//madhippie.com/cdn/shop/t/190/assets/product-media--variants.js?v=19431236665372190101790034617"; 657 import "//madhippie.com/cdn/shop/t/190/assets/product-price.js?v=158189426169192202801790034617"; 658 import "//madhippie.com/cdn/shop/t/190/assets/product-options.js?v=93435881930355150891790034617";</script>
658<link href="//madhippie.com/cdn/shop/t/190/assets/theme--critical.css?v=183289855503955922831790034617" rel="stylesheet" media="all" rel="dns-prefetch"> 659 <link 660 href="//madhippie.com/cdn/shop/t/190/assets/theme--async.css?v=78488721515109189021790034617" 661 rel="stylesheet" 662 media="print" 663 onload="this.media='all'" 664 rel="dns-prefetch" 665 > 666 667 <noscript> 668 <style> 669 .layout--template > *, 670 .layout--footer-group > *, 671 .modal--root, 672 .modal--window { 673 opacity: 1; 674 } 675 </style> 676 <link href="//madhippie.com/cdn/shop/t/190/assets/theme--async.css?v=78488721515109189021790034617" rel="stylesheet"> 677 </noscript> 678 <style> 679 /* PP Mori variable font (wght 100-800), served from Shopify Files 680 (Content > Files > PPMori-Variable.woff2) via file_url. 681 Declared under all three family names used across sections: 682 'PP Mori', 'PPMori', and 'pp-mori'. */ 683 @font-face { 684 font-family: 'PP Mori'; 685 src: url('//madhippie.com/cdn/shop/files/PPMori-Variable.woff2?v=16603348809566422624') format('woff2'); 686 font-weight: 100 800; 687 font-style: normal; 688 font-display: swap; 689 } 690 @font-face { 691 font-family: 'PPMori'; 692 src: url('//madhippie.com/cdn/shop/files/PPMori-Variable.woff2?v=16603348809566422624') format('woff2'); 693 font-weight: 100 800; 694 font-style: normal; 695 font-display: swap; 696 } 697 @font-face { 698 font-family: 'pp-mori'; 699 src: url('//madhippie.com/cdn/shop/files/PPMori-Variable.woff2?v=16603348809566422624') format('woff2'); 700 font-weight: 100 800; 701 font-style: normal; 702 font-display: swap; 703 } 704 705 /* ââ PDP TYPE SYSTEM ââââââââââââââââââââââââââââââââââââââââââââââââ 706 CANONICAL SPEC: ~/master/channels/shopify/design-system.md 707 VISUAL SPEC: ~/master/madhippie-theme/vitc-type-system.html 708 Read the spec before changing anything here. It explains WHY. 709 710 One family. Every weight has exactly one job. Uppercase is allowed 711 in exactly three places: eyebrows, icon labels, and the CTA. 712 713 300 display + h2 â every section heading is light 714 400 body, lead, small 715 500 quiet UI â micro labels, CTA price 716 600 h3, card titles, subheads 717 700 the loud weight â product title (h1), eyebrows, icon labels, stats 718 800 CTA action ONLY â locked to that one component 719 720 The h1/h2 split is deliberate: the product name is bold, every section 721 heading below it is light. Hierarchy comes from that contrast. 722 723 NOTE: theme-level custom_css sets `h1..h6 { font-weight:600 !important }` 724 (config/settings_data.json â platform_customizations). Any rule below 725 that targets a real h1-h6 tag must carry !important to survive it. 726 ------------------------------------------------------------------ */ 727 :root { 728 --mh-font: 'PP Mori', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; 729 730 /* Text scale */ 731 --t-h1-size: clamp(30px, 3.2vw, 40px); --t-h1-w: 700; --t-h1-ls: -0.01em; --t-h1-lh: 1.15; 732 --t-h2-size: clamp(26px, 2.6vw, 34px); --t-h2-w: 300; --t-h2-ls: -0.015em; --t-h2-lh: 1.1; 733 --t-h3-size: 19px; --t-h3-w: 600; --t-h3-ls: -0.01em; --t-h3-lh: 1.25; 734 --t-lead-size: 17px; --t-lead-w: 400; --t-lead-ls: 0; --t-lead-lh: 1.5; 735 --t-body-size: 15px; --t-body-w: 400; --t-body-ls: 0; --t-body-lh: 1.6; 736 --t-small-size: 13px; --t-small-w: 400; --t-small-ls: 0; --t-small-lh: 1.5; 737 --t-micro-size: 12px; --t-micro-w: 500; --t-micro-ls: 0.01em; --t-micro-lh: 1.4; 738 739 /* The quiet line under a headline: citations, sources, qualifiers, feature 740 asides. It must RECEDE â never compete with the content it supports. It has 741 its own role because the alternative was --t-label, which is built to shout 742 (caps + 700 + tracking) and made every citation out-weigh the claims below it. */ 743 --t-footnote-size: 12px; --t-footnote-w: 400; --t-footnote-ls: 0; --t-footnote-lh: 1.45; 744 745 /* Uppercase â the only sanctioned caps. Never typed into content. */ 746 --t-eyebrow-size: 11px; --t-eyebrow-w: 700; --t-eyebrow-ls: 0.14em; /* section kickers */ 747 --t-label-size: 11px; --t-label-w: 700; --t-label-ls: 0.08em; /* icon + badge labels */ 748 --t-cta-size: 0.8125rem; --t-cta-w: 800; --t-cta-ls: 0.1em; /* CTA action */ 749 --t-cta-price-size: 0.78rem; --t-cta-price-w: 500; --t-cta-price-ls: 0.02em; /* quieter sibling */ 750 751 /* Numerals */ 752 --t-stat-size: 30px; --t-stat-w: 700;
752 --t-stat-ls: -0.02em; 753 --t-display-size: clamp(44px, 5vw, 64px); --t-display-w: 300; --t-display-ls: -0.02em; 754 755 /* ââ RADIUS âââââââââââââââââââââââââââââââââââââââââââââââââââââââ 756 Two families, and the split is the whole idea: 757 758 MEDIA is a window. Tight corners. Led by the hero image. 759 SURFACES are objects. Round corners. Cards, panels, bands. 760 761 A photo with soft corners reads as a sticker; a card with hard 762 corners reads as a table cell. Keeping them apart is what makes 763 both look intentional. 764 765 --r-media hero image, gallery slides, product photos, video 766 --r-card cards, panels, bands, notes, badges, drawers 767 --r-cta the CTA action + floating CTA. Nothing else. 768 --r-pill fully-rounded pills (skin-type chips, conservation tags) 769 --r-circle coins, rings, icon wells 770 771 Pills and circles are SHAPES, not corners â they're not part of the 772 scale and must not scale with it. 773 ---------------------------------------------------------------- */ 774 --r-media: 0.3125rem; /* 5px â the hero image radius. Media stays crisp. */ 775 --r-card: 0.75rem; /* 12px â surfaces are objects, so they're round. */ 776 --r-cta: 0.875rem; /* 14px â a touch wider than a card, so the thing 777 you're meant to press reads as pressable. */ 778 --r-pill: 999px; 779 --r-circle: 50%; 780 } 781 </style> 782 <link rel="preload" href="//madhippie.com/cdn/shop/files/PPMori-Variable.woff2?v=16603348809566422624" as="font" type="font/woff2" crossorigin> 783
783<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
783<meta name="google-site-verification" content="aQq7n-9bsZS6XktZ2LjdwbPTt1bq9Ov8j3b_LECi5Hg"> 784<meta name="google-site-verification" content="ujOfHUkav1NtU9tnnGcNJVp31_7QuCZuRFXWwjzq2nk"> 785<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15035836/digital_wallets/dialog"> 786<meta id="in-context-paypal-metadata" data-shop-id="15035836" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 787<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
787<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3548577952"></script>
787 788<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
789<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=3548577952&shop_id=15035836" crossorigin="anonymous"></script>
vendor: 1 bytes, line 789
789
790<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":15035836,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/15035836","merchantName":"Mad Hippie","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Mad Hippie","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 790
790
791<script id="shopify-features" type="application/json">{"accessToken":"8138d588026b06d6335ee0e79a4ad3d7","betas":["rich-media-storefront-analytics"],"domain":"madhippie.com","predictiveSearch":true,"shopId":15035836,"locale":"en"}</script>
vendor: 1 bytes, line 791
791
792<script>var Shopify = Shopify || {}; 793Shopify.shop = "mad-hippie.myshopify.com"; 794Shopify.locale = "en"; 795Shopify.currency = {"active":"USD","rate":"1.0"}; 796Shopify.country = "US"; 797Shopify.theme = {"name":"mh_2026_1.5.1","id":199773487264,"schema_name":"Beyond","schema_version":"3.3.1","theme_store_id":null,"role":"main"}; 798Shopify.theme.handle = "null"; 799Shopify.theme.style = {"id":null,"handle":null}; 800Shopify.cdnHost = "madhippie.com/cdn"; 801Shopify.routes = Shopify.routes || {}; 802Shopify.routes.root = "/"; 803Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 804Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 805Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 806Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 806
806
807<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 807
807
808<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 808
808
809<script> 810 window.ShopifyPay = window.ShopifyPay || {}; 811 window.ShopifyPay.apiHost = "shop.app\/pay"; 812 window.ShopifyPay.redirectState = null; 813</script>
vendor: 1 bytes, line 813
813
814<script> 815 window.Shopify = window.Shopify || {}; 816 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 817 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 818 window.Shopify.SignInWithShop.eligible = true; 819</script>
vendor: 1 bytes, line 819
819
820<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 820
820
821<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 821
821
822<script type="module"> 823 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 824 825 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 826 827</script>
vendor: 1 bytes, line 827
827
828<script> 829 window.Shopify = window.Shopify || {}; 830 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 831 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"]}; 832</script>
vendor: 1 bytes, line 832
832
833<script>(function() { 834 var isLoaded = false; 835 function asyncLoad() { 836 if (isLoaded) return; 837 isLoaded = true; 838 var urls = ["https:\/\/pc-quiz.s3.us-east-2.amazonaws.com\/current\/quiz-loader.min.js?shop=mad-hippie.myshopify.com","https:\/\/embed.closeby.co\/v1.js?closeby.mapKey=3b1f8591980f81aa79c2d2066470b9f8\u0026shop=mad-hippie.myshopify.com","\/\/cdn.shopify.com\/proxy\/c420e497da9c9aa47079bf10a9e77164cc1e38b25d95ddc917f9a063c2391d53\/faqs-plus.herokuapp.com\/public\/script-tags\/ef-faq-plus-script.min.js?shop=mad-hippie.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/d10lpsik1i8c69.cloudfront.net\/w.js?shop=mad-hippie.myshopify.com","https:\/\/gdprcdn.b-cdn.net\/js\/gdpr_cookie_consent.min.js?shop=mad-hippie.myshopify.com","https:\/\/d217z8zw4dqir.cloudfront.net\/script_tags\/loop_snippets?shop=mad-hippie.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=WEiPar\u0026shop=mad-hippie.myshopify.com","https:\/\/assets.dailykarma.io\/prod\/init-v3.js?shop=mad-hippie.myshopify.com"]; 839 for (var i = 0; i < urls.length; i++) { 840 var s = document.createElement('script'); 841 s.type = 'text/javascript'; 842 s.async = true; 843 s.src = urls[i]; 844 var x = document.getElementsByTagName('script')[0]; 845 x.parentNode.insertBefore(s, x); 846 } 847 }; 848 if(window.attachEvent) { 849 window.attachEvent('onload', asyncLoad); 850 } else { 851 window.addEventListener('load', asyncLoad, false); 852 } 853})();</script>
vendor: 1 bytes, line 853
853
854<script id="__st">var __st={"a":15035836,"offset":-18000,"reqid":"2c04a8fa-e8a7-48f9-93f3-9254b09c490c-1791064388","pageurl":"madhippie.com\/pages\/stores","s":"pages-236458120","u":"91350d33d5d6","p":"page","rtyp":"page","rid":236458120};</script>
vendor: 1 bytes, line 854
854
855<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 855
855
856<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 856
856
857<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//madhippie.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 857
857
858<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 = "//madhippie.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>
858<script crossorigin="anonymous" defer="defer" src="//madhippie.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 858
858
859<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 859
859
860<script> 861 window.Shopify = window.Shopify || {}; 862 window.Shopify.MCP = window.Shopify.MCP || {}; 863 window.Shopify.MCP.enabled = true; 864 window.Shopify.MCP.shop = "mad-hippie.myshopify.com"; 865 window.Shopify.MCP.mcpEndpoint = "https:\/\/madhippie.com\/api\/mcp"; 866 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"]}}]; 867</script>
vendor: 1 bytes, line 867
867
868<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("\/\/madhippie.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 869</script>
vendor: 1 bytes, line 869
869
870<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://madhippie.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 871</script>
vendor: 1 bytes, line 871
871
872<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 873 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); 874</script>
vendor: 1 bytes, line 874
874
875<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})}})); 876</script>
876 877<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://madhippie.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 878<style id="shopify-accelerated-checkout-cart"> 879 #shopify-buyer-consent { 880 margin-top: 1em; 881 display: inline-block; 882 width: 100%; 883} 884 885#shopify-buyer-consent.hidden { 886 display: none; 887} 888 889#shopify-subscription-policy-button { 890 background: none; 891 border: none; 892 padding: 0; 893 text-decoration: underline; 894 font-size: inherit; 895 cursor: pointer; 896} 897 898#shopify-subscription-policy-button::before { 899 box-shadow: none; 900} 901 902 </style> 903
904<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
904 905 906 907 908 909 910 911 912
912<script type="text/javascript" id="loop-subscription-script" src="//madhippie.com/cdn/shop/t/190/assets/loop-widget.js?v=106822643431440590871790034617" defer></script>
912 913 914<!-- BEGIN app block: shopify://apps/epsilon-tag-integration/blocks/epsilon_ust_head/019eb349-8002-7fd2-84a2-e3b4de5e0013 --> 915 916 917 918 919 920 921 922 923 924 925 926
926<script> 927 (function() { 928 // Avoid running tracking logic in theme editor preview 929 var isDesignMode = false; 930 if (isDesignMode) { 931 return; 932 } 933 934 var debugMode = "false" === 'true'; 935 936 function debugLog() { 937 if (!debugMode) return; 938 console.log.apply(console, arguments); 939 } 940 941 function debugWarn() { 942 if (!debugMode) return; 943 console.warn.apply(console, arguments); 944 } 945 946 // Config object for your app to use if needed 947 window.epsilonUstConfig = { 948 companyId: "86269", 949 companyMagic: "19c6f8", 950 accelerate_tag_uuid: "", 951 reverseProxyDomain: "dtm.madhippie.com", 952 ustTag: "https:\/\/dtm.madhippie.com\/profile\/visit\/js\/1_0?dtm_fid=101\u0026dtm_promo_id=200\u0026dtm_cid=86269\u0026dtm_cmagic=19c6f8", 953 extVersion: "1.2.14", 954 debugMode: debugMode 955 }; 956 debugLog("Epsilon UST Config:", window.epsilonUstConfig); 957 958 var ustLoaded = false; 959 var accelerateLoaded = false; 960 961 function shouldLoadTags() { 962 var customerPrivacy = window.Shopify && window.Shopify.customerPrivacy; 963 if (!customerPrivacy) { 964 return false; 965 } 966 967 var marketingAllowed = 968 typeof customerPrivacy.marketingAllowed === 'function' && 969 customerPrivacy.marketingAllowed(); 970 var analyticsAllowed = 971 typeof customerPrivacy.analyticsProcessingAllowed === 'function' && 972 customerPrivacy.analyticsProcessingAllowed(); 973 var saleOfDataAllowed = 974 typeof customerPrivacy.saleOfDataAllowed === 'function' && 975 customerPrivacy.saleOfDataAllowed(); 976 977 return (marketingAllowed || analyticsAllowed) && saleOfDataAllowed; 978 } 979 980 function handleConsentState() { 981 if (!shouldLoadTags()) { 982 return; 983 } 984 985 loadUstTagOnce(); 986 loadAccelerateTagOnce(); 987 } 988 989 function loadUstTagOnce() { 990 var NAMESPACED_DTM_COOKIE_ID = "ust:dtm_cookie_id"; 991 992 if (ustLoaded) return; 993 ustLoaded = true; 994 995 var ustTagUrl = "https:\/\/dtm.madhippie.com\/profile\/visit\/js\/1_0?dtm_fid=101\u0026dtm_promo_id=200\u0026dtm_cid=86269\u0026dtm_cmagic=19c6f8\u0026ext_version=1.2.14"; 996 if (!ustTagUrl) { 997 return; 998 } 999 1000 function getLocalStorageValue(key) { 1001 try { 1002 return window.localStorage.getItem(key); 1003 } catch (e) { 1004 return false; 1005 } 1006 } 1007 1008 const dtmCookieId = getLocalStorageValue(NAMESPACED_DTM_COOKIE_ID); 1009 if (dtmCookieId) { 1010 ustTagUrl = ustTagUrl + '&dtm_cookie_id=' + dtmCookieId 1011 } 1012 var script = document.createElement('script'); 1013 script.src = ustTagUrl; 1014 script.async = true; 1015 document.head.appendChild(script); 1016 } 1017 1018 function loadAccelerateTagOnce() { 1019 if (accelerateLoaded) return; 1020 accelerateLoaded = true; 1021 1022 var accelerateTagUuid = ""; 1023 if (!accelerateTagUuid) { 1024 return; 1025 } 1026 1027 var DEV_STORAGE_KEY = 'yld_env'; 1028 var DEV_STORAGE_VALUE = 'dev'; 1029 var DEV_DOMAIN = 'td.yieldify-dev.com'; 1030 var PROD_DOMAIN = 'td.yieldify.com'; 1031 1032 function getLocalStorageValue(key) { 1033 try { 1034 return window.localStorage.getItem(key) === DEV_STORAGE_VALUE; 1035 } catch (e) { 1036 return false; 1037 } 1038 } 1039 1040 var tagDomain = getLocalStorageValue(DEV_STORAGE_KEY) ? DEV_DOMAIN : PROD_DOMAIN; 1041 1042 var script = document.createElement('script'); 1043 script.src = 'https://' + tagDomain + '/yieldify/code.js?w_uuid=' + encodeURIComponent(accelerateTagUuid) + '&k=1'; 1044 script.async = true; 1045 document.head.appendChild(script); 1046 } 1047 1048 function initConsentGatedTags() { 1049 handleConsentState(); 1050 1051 document.addEventListener('visitorConsentCollected', function() { 1052 handleConsentState(); 1053 }); 1054 } 1055 1056 // If Shopify or loadFeatures isn't available, bail out safely 1057 if (!window.Shopify || !window.Shopify.loadFeatures) { 1058 debugWarn("Epsilon UST: Shopify.loadFeatures not available; no marketing tags loaded."); 1059 return; 1060 } 1061 1062 // Load the Customer Privacy API 1063 window.Shopify.loadFeatures( 1064 [ 1065 { 1066 name: 'consent-tracking-api', 1067 version: '0.1', 1068 }, 1069 ], 1070 function(error) { 1071 if (error) { 1072 debugWarn("Epsilon UST: Failed to load consent-tracking-api; no marketing tags loaded.", error); 1073 return; 1074 } 1075 1076 var customerPrivacy = window.Shopify.customerPrivacy; 1077 if ( 1078 !customerPrivacy || 1079 typeof customerPrivacy.marketingAllowed !== 'function' || 1080 typeof customerPrivacy.analyticsProcessingAllowed !== 'function' || 1081 typeof customerPrivacy.saleOfDataAllowed !== 'function' 1082 ) { 1083 debugWarn("Epsilon UST: customerPrivacy API not available; no marketing tags loaded."); 1084 return; 1085 } 1086 1087 initConsentGatedTags(); 1088 } 1089 ); 1090 })(); 1091 </script>
1091 1092 1093 1094 1095<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
1108<script async src="https://static.klaviyo.com/onsite/js/WEiPar/klaviyo.js?company_id=WEiPar"></script>
1108 1109
1109<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>
1109 1110 1111 1112 1113 1114 1115 1116
1116<script> 1117 window.klaviyoReviewsProductDesignMode = false 1118 </script>
1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128<!-- END app block --><!-- BEGIN app block: shopify://apps/essential-announcer/blocks/app-embed/93b5429f-c8d6-4c33-ae14-250fd84f361b -->
1128<script> 1129 1130 window.essentialAnnouncementConfigs = []; 1131 1132 window.essentialAnnouncementMeta = { 1133 productCollections: null, 1134 productData: null, 1135 templateName: "page", 1136 collectionId: null, 1137 }; 1138 1139</script>
1139 1140 1141 1142 1143<style> 1144 .essential_annoucement_bar_wrapper {display: none;} 1145</style> 1146 1147 1148
1149<script src="https://cdn.shopify.com/extensions/01a0ae33-7196-7ba7-a372-9039e66cd741/essential-announcement-bar-120/assets/announcement-bar-essential-apps.js" defer></script>
1149 1150 1151 1152<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1153 1154 1155 1156 1157 1158 1159 1160<link rel="dns-prefetch" href="https://cdn.judge.me"> 1161<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1162<link rel="dns-prefetch" href="https://api.judge.me"> 1163
1164<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#FBA696","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1164ou! Please refresh the page in a few moments to see your review. ","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. ","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"{{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#FBA696","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":5,"widget_hide_border":true,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":false,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":false,"enable_question_anwser":false,"widget_theme":"","review_date_format":"mm/dd/yyyy","default_sort_method":"highest-rating","widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Customer Reviews","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":20,"featured_carousel_arrows_on_the_sides":true,"featured_carousel_height":200,"featured_carousel_width":90,"featured_carousel_image_size":150,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":false,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","featured_carousel_theme":"aligned","featured_carousel_show_rating":true,"featured_carousel_show_title":false,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":false,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#F5CB3D","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#D6D6D6","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":5,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":false,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1164itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#0D0D0C","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":true,"widget_show_product_medals":false,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by madhippie.com","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#FFC773","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#0D0D0C","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#0D0D0C","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1164youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":false,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":6,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":true,"review_widget_qna_enabled":false,"review_widget_revamp_dual_publish_end_date":"2026-01-26T14:31:14.000+00:00","review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"large","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"bold","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_star_and_histogram_color":"#FFD51B","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#212121","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_custom_css":"/* Mad Hippie â review widget polish */\n[data-widget-container=\"review-widget\"]{\n max-width:800px!important;\n margin:0 auto!important;\n font-family:'PPMori','PP Mori',-apple-system,sans-serif!important;\n --jm-review-widget-text-color:#1c1a18!important;\n --jm-review-widget-lighter-text-color:#4a4644!important;\n}\n[data-widget-container=\"review-widget\"] *{\n --jm-review-widget-star-and-histogram-color:var(--review-star-color,#f4b63e)!important;\n}\n","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1164:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Mad Hippie","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":false,"enable_custom_form":false,"shop_use_review_site":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"never","require_verification_before_submit":false,"sign_in_with_
1164shop_enabled":false,"customer_account_validation_enabled":true,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":false,"reply_name_text":"Mad Hippie"};</script>
1164 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #0D0D0C;--jdgm-secondary-color: rgba(13,13,12,0.1);--jdgm-star-color: #FBA696;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #0D0D0C;--jdgm-paginate-color: #0D0D0C;--jdgm-border-radius: 10;--jdgm-reviewer-name-color: #0D0D0C}.jdgm-histogram__bar-content{background-color:#0D0D0C}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#0D0D0C}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#FBA696}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-rev .jdgm-rev__timestamp,.jdgm-quest .jdgm-rev__timestamp,.jdgm-carousel-item__timestamp{display:none !important}.jdgm-rev .jdgm-rev__icon{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-histogram{display:none !important}.jdgm-widget .jdgm-sort-dropdown-wrapper{margin-top:12px}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_etsy"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_google_business"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_shop_app"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #FFC773;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#FFC773}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Mad Hippie'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1165</style> <style class='jdgm-settings-style'>.jdgm-review-widget [data-widget-container="review-widget"]{max-width:800px !important;margin:0 auto !important;font-family:"PPMori","PP Mori",-apple-system,sans-serif !important;--jm-review-widget-text-color:#1c1a18!important;--jm-review-widget-lighter-text-color:#4a4644!important}.jdgm-review-widget [data-widget-container="review-widget"] *{--jm-review-widget-star-and-histogram-color:var(--review-star-color,#f4b63e)!important} 1166</style> 1167 1168 1169 1170 1171 <style class='jdgm-miracle-styles'> 1172 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1172/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 1173 1174</style> 1175 1176 1177 1178 1179 1180 1181 1182 1183
1184<script data-cfasync='false' class='jdgm-script'> 1185!function(e){window.jdgm=window.jdgm||{}; 1186/* INF-1976 */ 1187var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1188if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1189jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1190jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1191setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1192!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1193(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1194a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1195jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1196t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1197t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1198".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1199parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1200jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1201)}))}(document); 1202</script>
1202 1203<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript> 1204 1205<!-- BEGIN app snippet: theme_fix_tags -->
1205<script> 1206 (function() { 1207 var jdgmThemeFixes = {"135176618144":{"html":"","css":".jdgm-rev__icon, .jdgm-rev__icon::before, .jdgm-rev__icon::after { \ndisplay: none !important;\n}","js":""},"135574913184":{"html":"","css":".jdgm-rev-widg__summary-average {\npointer-events: none !important\n}\n.jdgm-rev__icon {\ndisplay: none !important\n}","js":""}}; 1208 if (!jdgmThemeFixes) return; 1209 1210 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1211 // before the per-theme fix so the theme-specific CSS wins the cascade. 1212 // HTML is never applied globally (too risky). 1213 var allThemesFix = jdgmThemeFixes['all']; 1214 if (allThemesFix && allThemesFix.css) { 1215 var allStyleTag = document.createElement('style'); 1216 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1217 allStyleTag.innerHTML = allThemesFix.css; 1218 document.head.append(allStyleTag); 1219 }; 1220 1221 if (allThemesFix && allThemesFix.js) { 1222 var allScriptTag = document.createElement('script'); 1223 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1224 allScriptTag.innerHTML = allThemesFix.js; 1225 document.head.append(allScriptTag); 1226 }; 1227 1228 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1229 if (!thisThemeFix) return; 1230 1231 if (thisThemeFix.html) { 1232 document.addEventListener("DOMContentLoaded", function() { 1233 var htmlDiv = document.createElement('div'); 1234 htmlDiv.classList.add('jdgm-theme-fix-html'); 1235 htmlDiv.innerHTML = thisThemeFix.html; 1236 document.body.append(htmlDiv); 1237 }); 1238 }; 1239 1240 if (thisThemeFix.css) { 1241 var styleTag = document.createElement('style'); 1242 styleTag.classList.add('jdgm-theme-fix-style'); 1243 styleTag.innerHTML = thisThemeFix.css; 1244 document.head.append(styleTag); 1245 }; 1246 1247 if (thisThemeFix.js) { 1248 var scriptTag = document.createElement('script'); 1249 scriptTag.classList.add('jdgm-theme-fix-script'); 1250 scriptTag.innerHTML = thisThemeFix.js; 1251 document.head.append(scriptTag); 1252 }; 1253 })(); 1254</script>
1254 1255<!-- END app snippet --> 1256<!-- End of Judge.me Core --> 1257 1258 1259 1260<!-- END app block --><!-- BEGIN app block: shopify://apps/eg-auto-add-to-cart/blocks/app-embed/0f7d4f74-1e89-4820-aec4-6564d7e535d2 --> 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273
1273<script 1274 async 1275 type="text/javascript" 1276 src="https://cdn.506.io/eg/script.js?shop=mad-hippie.myshopify.com&v=12" 1277 ></script>
1277 1278 1279 1280 1281 1282 <meta id="easygift-shop" itemid="c2hvcF8kXzE3OTEwNjQzODg=" content="{"isInstalled":true,"installedOn":"2022-07-05T19:30:52.057Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"fontFamily":null,"imageUrl":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"auto","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"fontFamily":null,"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"backgroundColor":"#FFFFFF","borderRadius":null,"headerFontSize":null,"subHeaderFontSize":null,"padding":null,"fontFamily":null,"primaryColor":null,"duration":null,"cssStyles":null,"hasCustomizations":false},"fetchCartData":false,"useLocalStorage":{"expiryMinutes":null,"enabled":false},"popupStyle":{"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"bodyColor":null,"bodyFontSize":null,"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"headerFontFamily":null,"bodyFontFamily":null,"primaryColor":null,"secondaryColor":null,"cssStyles":null,"addButtonText":null,"dismissButtonText":null,"outOfStockButtonText":null,"imageUrl":null,"hasCustomizations":false,"showProductLink":false,"subscriptionLabel":"Subscription Plan"},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"show":false,"removalRequestSent":null},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"fetchProductInfoFromSavedDomain":false,"enableBuyNowInterceptions":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":false,"useFinalPriceGetEntireCart":false,"hideGiftedPropertyText":false,"fetchCartDataBeforeRequest":false,"disableRedirectAfterFormSubmit":false,"customCSS":null,"delayUpdates":2000,"decodePayload":false,"hideAlertsOnFrontend":false,"removeEGPropertyFromSplitActionLineItems":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"madhippie.com"}"> 1283 1284
1285<script defer> 1286 (async function() { 1287 try { 1288 1289 const blockVersion = "v3" 1290 if (blockVersion != "v3") { 1291 return 1292 } 1293 1294 let metaErrorFlag = false; 1295 if (metaErrorFlag) { 1296 return 1297 } 1298 1299 // Parse metafields as JSON 1300 const metafields = {}; 1301 1302 // Process metafields in JavaScript 1303 let savedRulesArray = []; 1304 for (const [key, value] of Object.entries(metafields)) { 1305 if (value) { 1306 for (const prop in value) { 1307 // avoiding Object.Keys for performance gain -- no need to make an array of keys. 1308 savedRulesArray.push(value); 1309 break; 1310 } 1311 } 1312 } 1313 1314 const metaTag = document.createElement('meta'); 1315 metaTag.id = 'easygift-rules'; 1316 metaTag.content = JSON.stringify(savedRulesArray); 1317 metaTag.setAttribute('itemid', 'cnVsZXNfJF8xNzkxMDY0Mzg4'); 1318 1319 document.head.appendChild(metaTag); 1320 } catch (err) { 1321 1322 } 1323 })(); 1324</script>
1324 1325 1326 1327
1327<script 1328 type="text/javascript" 1329 defer 1330 > 1331 1332 (function () { 1333 try { 1334 window.EG_INFO = window.EG_INFO || {}; 1335 var shopInfo = {"isInstalled":true,"installedOn":"2022-07-05T19:30:52.057Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"fontFamily":null,"imageUrl":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"auto","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"fontFamily":null,"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"backgroundColor":"#FFFFFF","borderRadius":null,"headerFontSize":null,"subHeaderFontSize":null,"padding":null,"fontFamily":null,"primaryColor":null,"duration":null,"cssStyles":null,"hasCustomizations":false},"fetchCartData":false,"useLocalStorage":{"expiryMinutes":null,"enabled":false},"popupStyle":{"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"bodyColor":null,"bodyFontSize":null,"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"headerFontFamily":null,"bodyFontFamily":null,"primaryColor":null,"secondaryColor":null,"cssStyles":null,"addButtonText":null,"dismissButtonText":null,"outOfStockButtonText":null,"imageUrl":null,"hasCustomizations":false,"showProductLink":false,"subscriptionLabel":"Subscription Plan"},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":true,"customRedirectFromCart":null,"scriptSettings":{"branding":{"show":false,"removalRequestSent":null},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"fetchProductInfoFromSavedDomain":false,"enableBuyNowInterceptions":false,"removeProductsAddedFromExpiredRules":false,"useFinalPrice":false,"useFinalPriceGetEntireCart":false,"hideGiftedPropertyText":false,"fetchCartDataBeforeRequest":false,"disableRedirectAfterFormSubmit":false,"customCSS":null,"delayUpdates":2000,"decodePayload":false,"hideAlertsOnFrontend":false,"removeEGPropertyFromSplitActionLineItems":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"madhippie.com"}; 1336 var productRedirectionEnabled = shopInfo.settings.scriptSettings.productPageRedirection.enabled; 1337 if (["Unlimited", "Enterprise"].includes(shopInfo.subscriptionName) && productRedirectionEnabled) { 1338 var products = shopInfo.settings.scriptSettings.productPageRedirection.products; 1339 if (products.length > 0) { 1340 var productIds = products.map(function(prod) { 1341 var productGid = prod.id; 1342 var productIdNumber = parseInt(productGid.split('/').pop()); 1343 return productIdNumber; 1344 }); 1345 var productInfo = null; 1346 var isProductInList = productIds.includes(productInfo.id); 1347 if (isProductInList) { 1348 var redirectionURL = shopInfo.settings.scriptSettings.productPageRedirection.redirectionURL; 1349 if (redirectionURL) { 1350 window.location = redirectionURL; 1351 } 1352 } 1353 } 1354 } 1355 1356 1357 } catch(err) { 1358 return 1359 }}
1359)() 1360 </script>
1360 1361 1362 1363 1364<!-- END app block -->
1364<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
1364 1365<meta property="og:image" content="https://cdn.shopify.com/s/files/1/1503/5836/files/Mad_Hippie_Logo_cb87bc33-ed92-4f1d-8344-f631a006524a.png?v=1753908194" /> 1366<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/1503/5836/files/Mad_Hippie_Logo_cb87bc33-ed92-4f1d-8344-f631a006524a.png?v=1753908194" /> 1367<meta property="og:image:width" content="3417" /> 1368<meta property="og:image:height" content="1077" /> 1369<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1370<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: 15035836,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 1370
1370
1371<script> 1372 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1373</script>
vendor: 1 bytes, line 1373
1373
1374<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}
1374).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: 15035836,storefrontBaseUrl: "https://madhippie.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://madhippie.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"4723867808","configuration":"{\"config\":\"{\\\"companyId\\\":\\\"86269\\\",\\\"companyMagic\\\":\\\"19c6f8\\\",\\\"reverseProxyDomain\\\":\\\"dtm.madhippie.com\\\",\\\"ustCheckoutEventsList\\\":\\\"\\\",\\\"accelerateTagUuid\\\":\\\"\\\",\\\"debugMode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"009fd5bc744ab53b83e6d3f2dd10f809","type":"APP","apiClientId":348421160961,"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":"4705190048","configuration":"{\"accountID\":\"123\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4b1f94d30978e5e74a4c3495451f4c18","type":"APP","apiClientId":438566913,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1374,"dataSharingState":"unrestricted"},{"id":"4516118688","configuration":"{\"accountID\":\"11353\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"fd808ef676af80f68a7052770545cafd","type":"APP","apiClientId":2594385,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1686929568","configuration":"{\"accountID\":\"WEiPar\",\"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":"1565196448","configuration":"{\n \"accountID\":\"mad-hippie.myshopify.com\",\n \"environment\":\"production\",\n \"apiURL\":\"https:\/\/api.quizkitapp.com\"\n }","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8b4008b7d9cf69ef6aab7ff3dbda8179","type":"APP","apiClientId":4291957,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1060995232","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"492109984","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-C3R54PY4XP\\\",\\\"GT-MJWW3V3\\\",\\\"AW-1015735328\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-C3R54PY4XP\\\",\\\"MC-SLKYHSLLZH\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-C3R54PY4XP\\\",\\\"MC-SLKYHSLLZH\\\",\\\"AW-1015735328\\\/i_K9CLC79AQQoMir5AM\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-C3R54PY4XP\\\",\\\"MC-SLKYHSLLZH\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-C3R54PY4XP\\\"}],\\\"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":"481624224","configuration":"{\"pixelCode\":\"C8F5LBQ4VMMHDQEFO6V0\"}","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":"271122592","configuration":"{\"pixel_id\":\"1646747468977727\",\"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"]}
1374,{"id":"112853152","configuration":"{\"tagID\":\"2618730134159\"}","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":"19431584","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google Ads Conversion Tracking"},{"id":"26149024","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Convert Tracking"},{"id":"30736544","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Vibe Purchase w dollars"},{"id":"31424672","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Hulu"},{"id":"73531552","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES","SALE_OF_DATA"],"name":"Peacock"},{"id":"135430304","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES","SALE_OF_DATA"],"name":"Trade Desk Conversion"},{"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":"Mad Hippie","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"mad-hippie.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/madhippie.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"15270474842272","handle":"aha-bha-milk-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53139038961824","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15302281822368","handle":"aha-bha-milk-serum-mini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53233139056800","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830219016","handle":"antioxidant-facial-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481970312","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120989257888","handle":"blemish-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601945456800","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15276238667936","handle":"brightening-gel-moisturizer","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53153469104288","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"1829500289067","handle":"fig-cheek-lip-tint","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41876279656608","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"1369439797291","handle":"cleansing-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"
137412886652813355","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"5020436168839","handle":"clear-skin-routine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"34173455007879","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120878796960","handle":"corrective-peptide-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601802686624","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15124938752160","handle":"corrective-peptide-serum-mini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52614317277344","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830218824","handle":"cream-cleanser","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481970056","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120916414624","handle":"daily-protective-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601859899552","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4791831232647","handle":"day-night-dual-pack","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"33437040083079","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830218760","handle":"eye-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481969928","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830218952","handle":"face-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481970248","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15776574636192","handle":"gua-sha-masterclass","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"58131548143776","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120934994080","handle":"hydrating-facial-spf","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601881297056","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"5020226322567","handle":"hydrating-routine-for-dry-skin","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"34111184535687","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120896721056","handle":"jelly-cleanser","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601824805024","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120945905824","handle":"luminizing-facial-spf","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601895649440","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15141517918368","handle":"mad-hippie-gift-card","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52674191524000","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"5523404587168","handle":"microdermabrasion-facial","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"35748558799008","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1374,{"id":"15121816060064","handle":"refillable-vitamin-c-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52612439507104","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120922869920","handle":"restorative-routine-for-mature-skin","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601867534496","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120962453664","handle":"sheer-tint-sun-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52602212778144","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15121847189664","handle":"sunshine-routine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52604283027616","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830218440","handle":"vitamin-a-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481969224","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15250239684768","handle":"super-a-serum-mini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53083195703456","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"5041660199047","handle":"the-deluxe-routine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"34157268074631","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15214946451616","handle":"the-essentials-routine","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52985025724576","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15121931075744","handle":"travel-essentials-kit","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52604461482144","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4352155189383","handle":"triple-c-night-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"31180538413191","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15200590332064","handle":"triple-c-night-cream-mini","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52922156384416","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15120982966432","handle":"ultra-rich-barrier-cream","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"52601936117920","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6704067084448","handle":"ultra-sheer-body-spf","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39970369044640","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7830218888","handle":"vitamin-c-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"25481970120","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15755963498656","handle":"vitamin-c-serum-deluxe-sample-size","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"57903392850080","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8328519057","handle":"hydrating-nutrient-mist","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"27896613521","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1374,{"id":"15793643880608","handle":"wrinkle-relaxing-eye-treatment","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"58188014846112","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://madhippie.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"199773487264","themePublished":"true","eventMetadataId":"7d51a72b-19aa-4b90-9ead-534296a77af7","pageType":"page","resourceId":"236458120","shopId":"15035836","storefrontBaseUrl":"https:\/\/madhippie.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1374<script> 1375 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1376 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1377 window.ShopifyAnalytics.meta.currency = 'USD'; 1378 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":236458120,"requestId":"2c04a8fa-e8a7-48f9-93f3-9254b09c490c-1791064388"}}; 1379 for (var attr in meta) { 1380 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1381 } 1382</script>
vendor: 1 bytes, line 1382
1382
1383<script class="analytics"> 1384 (function () { 1385 var customDocumentWrite = function(content) { 1386 var jquery = null; 1387 1388 if (window.jQuery) { 1389 jquery = window.jQuery; 1390 } else if (window.Checkout && window.Checkout.$) { 1391 jquery = window.Checkout.$; 1392 } 1393 1394 if (jquery) { 1395 jquery('body').append(content); 1396 } 1397 }; 1398 1399 var hasLoggedConversion = function(token) { 1400 if (token) { 1401 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1402 } 1403 return false; 1404 } 1405 1406 var setCookieIfConversion = function(token) { 1407 if (token) { 1408 var twoMonthsFromNow = new Date(Date.now()); 1409 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1410 1411 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1412 } 1413 } 1414 1415 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1416 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1417 if (trekkie.integrations) { 1418 return; 1419 } 1420 trekkie.methods = [ 1421 'identify', 1422 'page', 1423 'ready', 1424 'track', 1425 'trackForm', 1426 'trackLink' 1427 ]; 1428 trekkie.factory = function(method) { 1429 return function() { 1430 var args = Array.prototype.slice.call(arguments); 1431 args.unshift(method); 1432 trekkie.push(args); 1433 if (method == 'track' || method == 'page') { 1434 var pageUrl; 1435 try { 1436 pageUrl = window.location.href; 1437 } catch (e) {} 1438 var pageReferrer; 1439 try { 1440 pageReferrer = document.referrer; 1441 } catch (e) {} 1442 try { 1443 if (window.__TREKKIE_SHIM_QUEUE == null) { 1444 window.__TREKKIE_SHIM_QUEUE = []; 1445 } 1446 window.__TREKKIE_SHIM_QUEUE.push({ 1447 from: 'trekkie-stub', 1448 method: method, 1449 args: args.slice(1), 1450 pageContext: { 1451 url: pageUrl, 1452 referrer: pageReferrer 1453 } 1454 }); 1455 } catch (e) { 1456 // no-op 1457 } 1458 } 1459 return trekkie; 1460 }; 1461 }; 1462 for (var i = 0; i < trekkie.methods.length; i++) { 1463 var key = trekkie.methods[i]; 1464 trekkie[key] = trekkie.factory(key); 1465 } 1466 trekkie.load = function(config) { 1467 trekkie.config = config || {}; 1468 trekkie.config.initialDocumentCookie = document.cookie; 1469 var first = document.getElementsByTagName('script')[0]; 1470var script = document.createElement('script'); 1471script.type = 'text/javascript'; 1472script.onerror = function(e) { 1473 var scriptFallback = document.createElement('script'); 1474 scriptFallback.type = 'text/javascript'; 1475 scriptFallback.onerror = function(error) { 1476 var Monorail = { 1477 produce: function produce(monorailDomain, schemaId, payload) { 1478 var currentMs = new Date().getTime(); 1479 var event = { 1480 schema_id: schemaId, 1481 payload: payload, 1482 metadata: { 1483 event_created_at_ms: currentMs, 1484 event_sent_at_ms: currentMs 1485 } 1486 }; 1487 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1488 }, 1489 sendRequest: function sendRequest(endpointUrl, payload) { 1490 // Try the sendBeacon API 1491 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1492 var blobData = new window.Blob([payload], { 1493 type: 'text/plain' 1494 }); 1495 1496 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1497 return true; 1498 } // sendBeacon was not successful 1499 1500 } // XHR beacon 1501 1502 var xhr = new XMLHttpRequest(); 1503 1504 try { 1505 xhr.open('POST', endpointUrl); 1506 xhr.setRequestHeader('Content-Type', 'text/plain'); 1507 xhr.send(payload); 1508 } catch (e) { 1509 console.log(e); 1510 } 1511 1512 return false; 1513 }, 1514 isIos12: function isIos12() { 1515 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1516 } 1517 }; 1518 Monorail.produce('monorail-edge.shopifysvc.com', 1519 'trekkie_storefront_load_errors/1.1', 1520 {shop_id: 15035836, 1521 theme_id: 199773487264, 1522 app_name: "storefront", 1523 context_url: window.location.href, 1524 source_url: "//madhippie.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1525 1526 }; 1527 scriptFallback.async = true; 1528 scriptFallback.src = '//madhippie.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1529 first.parentNode.insertBefore(scriptFallback, first); 1530}; 1531script.async = true; 1532script.src = '//madhippie.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1533first.parentNode.insertBefore(script, first); 1534 1535 }; 1536 trekkie.load( 1537 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15035836,"isMerchantRequest":null,"themeId":199773487264,"themeCityHash":"14776300810622668567","contentLanguage":"en","currency":"USD","eventMetadataId":"7d51a72b-19aa-4b90-9ead-534296a77af7"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1538 ); 1539 1540 var loaded = false;
1541 trekkie.ready(function() { 1542 if (loaded) return; 1543 loaded = true; 1544 1545 window.ShopifyAnalytics.lib = window.trekkie; 1546 1547 var originalDocumentWrite = document.write; 1548 document.write = customDocumentWrite; 1549 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1550 document.write = originalDocumentWrite; 1551 1552 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1553 var token = match? match[1]: undefined; 1554 if (!hasLoggedConversion(token)) { 1555 setCookieIfConversion(token); 1556 1557 } 1558 }); 1559 1560 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":236458120,"requestId":"2c04a8fa-e8a7-48f9-93f3-9254b09c490c-1791064388","shopifyEmitted":true}); 1561 1562 var eventsListenerScript = document.createElement('script'); 1563 eventsListenerScript.async = true; 1564 eventsListenerScript.src = "//madhippie.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1565 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1566})();</script>
vendor: 1 bytes, line 1566
1566
1567<script 1568 defer 1569 src="https://madhippie.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1570 data-application="storefront-renderer" 1571 data-shop-id="15035836" 1572 data-render-region="gcp-us-central1" 1573 data-page-type="page" 1574 data-theme-instance-id="199773487264" 1575 data-theme-name="Beyond" 1576 data-theme-version="3.3.1" 1577 data-monorail-region="shop_domain" 1578 data-resource-timing-sampling-rate="10" 1579 data-shs="true" 1580 data-shs-beacon="true" 1581 data-shs-export-with-fetch="true" 1582 data-shs-logs-sample-rate="1" 1583 data-shs-beacon-endpoint="https://madhippie.com/api/collect" 1584></script>
1584 1585<meta name="shopify-y" content="784bf661-0311-4767-b41c-952c602071f9" data-expiration="1822621988000"><meta name="shopify-s" content="2c09778b-6731-41bf-855a-41f28cb8428f" data-expiration="1791066188000"><meta name="new-cookie-storage-activated" content="t"> 1586</head> 1587 1588 1589 1590 <style class="loop-style"> .loop-hidden { 1591 display: none !important; 1592} 1593.loop-full-width { 1594 width: 100% !important; 1595} 1596.loop-subscription-container { 1597 display: flex; 1598 flex-direction: column; 1599} 1600.loop-selling-plan-fieldset { 1601 padding: 0; 1602 margin: 15px 0; 1603 flex-basis: 100%; 1604 border-width: 0; 1605 border-style: groove; 1606 border-color: threedface; 1607 border-image: initial; 1608 border-radius: 0.5em; 1609 border: 1px solid #c3cfd9 !important; 1610 overflow: hidden !important; 1611} 1612.loop-selling-plan-fieldset-legend { 1613 display: none; 1614} 1615.loop-one-time-purchase-option-position { 1616 display: flex !important; 1617} 1618.loop-purchase-options-label { 1619 width: auto !important; 1620 flex: 2; 1621 padding: 0 !important; 1622 margin: 0 !important; 1623 font-size: 1.1em !important; 1624 line-height: 1.1em !important; 1625} 1626.loop-one-time-purchase-option { 1627 display: flex; 1628 align-items: center; 1629 width: 100% !important; 1630 padding: 1.1em !important; 1631} 1632.loop-one-time-purchase-option-radio { 1633 width: 1.2rem !important; 1634 height: 1.2rem !important; 1635 min-height: 1.2rem !important; 1636 position: initial !important; 1637 appearance: auto !important; 1638 line-height: 1.2rem !important; 1639 margin: 0 1rem 0 0 !important; 1640 padding: 0 !important; 1641} 1642.loop-one-time-purchase-option-label { 1643 width: auto !important; 1644 line-height: 1.2em !important; 1645 font-size: 1em !important; 1646 font-weight: 600 !important; 1647 flex: 2; 1648 padding: 0 !important; 1649 margin: 0 !important; 1650} 1651.loop-one-time-purchase-option-price-container { 1652 text-align: right; 1653 flex: 1; 1654} 1655.loop-one-time-purchase-option-price-amount { 1656 line-height: 1.2em !important; 1657 font-size: 1em !important; 1658} 1659 1660.loop-one-time-purchase-option-price-quantity { 1661 line-height: 1em !important; 1662 font-size: 0.8em !important; 1663 opacity: 0.8; 1664} 1665 1666.loop-selling-plan-allocation { 1667 display: flex !important; 1668} 1669 1670.loop-subscription-group { 1671 display: flex; 1672 align-items: center; 1673 flex-wrap: wrap; 1674 padding: 1.1em !important; 1675} 1676.loop-subscription-group-border-top { 1677 border-top: 1px solid #c3cfd9 !important; 1678} 1679 1680.loop-subscription-group-border-bottom { 1681 border-bottom: 1px solid #c3cfd9 !important; 1682} 1683.loop-subscription-group-radio { 1684 width: 1.2rem !important; 1685 height: 1.2rem !important; 1686 min-height: 1.2rem !important; 1687 line-height: 1.2rem; 1688 position: initial !important; 1689 appearance: auto !important; 1690 margin: 0 1rem 0 0 !important; 1691 padding: 0 !important; 1692} 1693.loop-subscription-group-text { 1694 display: flex; 1695 flex-wrap: wrap; 1696 flex: 3; 1697 align-items: center; 1698} 1699 1700.loop-subscription-group-label { 1701 width: auto !important; 1702 padding: 0; 1703 margin: 0 1em 0 0; 1704 line-height: 1.2em !important; 1705 font-size: 1em !important; 1706 font-weight: 600 !important; 1707 display: flex; 1708 align-items: center; 1709} 1710.loop-subscription-group-discount-badge { 1711 border-radius: 50px; 1712 padding: 0.3em 0.8em; 1713 background: #53cf54; 1714 display: flex; 1715 justify-content: center; 1716 width: max-content; 1717 line-height: 1.2em; 1718 font-size: 1em; 1719} 1720 1721.loop-subscription-group-price-container { 1722 text-align: right; 1723 flex: 1; 1724} 1725 1726.loop-subscription-group-price-amount { 1727 line-height: 1.2em !important; 1728 font-size: 1em !important; 1729} 1730 1731.loop-subscription-group-price-quantity { 1732 line-height: 1em !important; 1733 font-size: 0.8em !important; 1734 opacity: 0.8; 1735} 1736 1737.loop-subscription-group-selling-plans-container { 1738 display: flex; 1739 flex-wrap: wrap; 1740 align-items: center; 1741 width: 100% !important; 1742 margin-top: 0.5em; 1743 margin-left: 2.2rem; 1744} 1745 1746.loop-selling-plan-selector-label { 1747 width: auto !important; 1748 padding: 0; 1749 margin: 0.5em 0 0.5em 0; 1750 line-height: 1.2em; 1751 font-size: 1em; 1752} 1753 1754.loop-selling-plan-selector { 1755 width: auto !important; 1756 display: block !important; 1757 border-color: #c3d0d9 !important; 1758 border-width: 1px !important; 1759 margin: 6px 0 0 12px !important; 1760 padding: 0.5em 2.5em 0.5em 0.7em !important; 1761 border-radius: 5px !important; 1762 font-size: 1em !important; 1763 background-image: linear-gradient(45deg, transparent 50%, gray 50%), 1764 linear-gradient(135deg, gray 50%, transparent 50%), 1765 linear-gradient(to right, #ccc, #ccc); 1766 background-position: calc(100% - 20px) calc(1em), calc(100% - 15px) calc(1em), 1767 calc(100% - 2.5em) 0.5em; 1768 background-size: 5px 5px, 5px 5px, 0px 1.5em; 1769 background-repeat: no-repeat; 1770 -webkit-box-sizing: border-box; 1771 -moz-box-sizing: border-box; 1772 box-sizing: border-box; 1773 -webkit-appearance: none; 1774 -moz-appearance: none; 1775} 1776 1777.loop-selling-plan-selector:focus { 1778 background-image: linear-gradient(45deg, transparent 50%, gray 50%), 1779 linear-gradient(135deg, gray 50%, transparent 50%), 1780 linear-gradient(to right, #ccc, #ccc); 1781 background-position: calc(100% - 20px) calc(1em), calc(100% - 15px) calc(1em), 1782 calc(100% - 2.5em) 0.5em; 1783 background-size: 5px 5px, 5px 5px, 0px 1.5em; 1784 background-repeat: no-repeat; 1785 border-color: green; 1786 outline: 0; 1787 padding: 0.5em 2.5em 0.5em 0.7em !important; 1788} 1789 1790.loop-selling-plan-selector:-moz-focusring { 1791 color: transparent; 1792 text-shadow: 0 0 0 #000; 1793} 1794 1795.loop-selling-plan-selector-option { 1796 display: flex; 1797 align-items: center; 1798} 1799 1800.loop-selling-plan-selector-description { 1801 width: 100%; 1802 font-size: 0.9em !important; 1803 line-height: normal !important; 1804 margin: 0 !important; 1805 padding: 0 !important; 1806 opacity: 0.8; 1807} 1808 1809.loop-subscription-group-radio:not(:checked) 1810 ~ .loop-subscription-group-selling-plans-container { 1811 display: none !important; 1812} 1813 1814.loop-selling-plan-selector:focus-visible { 1815 outline: none !important; 1816 outline-offset: 0.3rem; 1817 box-shadow: none !important; 1818} 1819 1820.loop-price-container { 1821 display: flex; 1822 align-items: center; 1823 flex-direction: column; 1824} 1825.loop-price-section { 1826 width: 100%; 1827 display: flex; 1828 flex-direction: row; 1829} 1830.loop-price-section-subscription-banner { 1831 display: flex; 1832 align-items: center; 1833 font-size: 12px; 1834 padding: 0px 5px; 1835 border: 1px solid; 1836 border-radius: 5px; 1837 line-height: 11px; 1838 margin-left: 8px; 1839} 1840 1841.loop-final-price { 1842} 1843 1844.loop-compare-price { 1845 text-decoration: line-through; 1846 opacity: 0.5; 1847} 1848.loop-price-sub-text { 1849 font-size: 11px; 1850} 1851 1852.loop-dot { 1853 height: 4px; 1854 width: 4px; 1855 background-color: #000; 1856 border-radius: 50%; 1857 display: inline-block; 1858 margin: 0 10px; 1859} 1860 1861.loop-display-none { 1862 display: none !important; 1863} 1864 1865.loop-display-none-by-variant { 1866 display: none !important; 1867} 1868 1869.loop-left-margin-0 { 1870 margin-left: 0 !important; 1871} 1872 1873.loop-tooltip { 1874 position: relative; 1875 display: flex; 1876 align-items: center; 1877 width: fit-content; 1878 padding-bottom: 1em; 1879 margin-top: -10px; 1880} 1881 1882.loop-tooltip-label { 1883 display: flex; 1884 cursor: pointer; 1885} 1886.loop-tooltip-image { 1887 height: 18px; 1888 width: 18px; 1889 margin-right: 10px; 1890 display: flex; 1891 align-items: center; 1892} 1893 1894.loop-tooltip .loop-tooltiptext { 1895 visibility: hidden; 1896 width: 300px; 1897 min-width: 100%; 1898 background-color: #081d33; 1899 color: #fff; 1900 text-align: left; 1901 border-radius: 6px; 1902 padding: 15px; 1903 margin-top: -10px; 1904 1905 position: absolute; 1906 z-index: 9999 !important; 1907 top: 100%; 1908 left: 0%; 1909} 1910 1911.loop-tooltip:hover .loop-tooltiptext { 1912 visibility: visible; 1913} 1914 1915.loop-tooltip-description { 1916 margin: 0 !important; 1917 padding: 0 !important; 1918 font-size: 1em; 1919} 1920 1921.loop-container-arrow { 1922 height: 16px; 1923 width: 16px; 1924 background-color: #081d33; 1925 position: absolute; 1926} 1927 1928.loop-container-arrow--tl { 1929 left: 32px; 1930 top: 0px; 1931 border-left: 1px solid rgba(0, 0, 0, 0.3); 1932 border-top: 1px solid rgba(0, 0, 0, 0.3); 1933 transform: translate(50%, -50%) rotate(45deg); 1934} 1935 </style> 1936 1937 <body 1938 class="template--page page--stores-mad-hippie" 1939 data-theme-id="939" 1940 data-theme-name="Beyond" 1941 data-theme-version="3.3.1"
1942 data-theme-preset="" 1943 data-transition-container="viewport"> 1944 1945 <!--[if IE]> 1946 <div style="text-align:center;padding:72px 16px;"> 1947 Browser unsupported, please update or try an alternative 1948 </div> 1949 <style> 1950 .layout--viewport { display: none; } 1951 </style> 1952 <![endif]--> 1953 1954 <a data-item="a11y-button" href='#main-content'>Skip to main content</a> 1955 1956 <div class="layout--viewport" data-drawer-status="closed"> 1957 <div class="layout--main-content"> 1958 <header class="layout--header-group"><!-- BEGIN sections: header-group --> 1959<div id="shopify-section-sections--30094091485344__header" class="shopify-section shopify-section-group-header-group section--header"> <style> 1960 /* Modern Header Styles */ 1961 .header--root { 1962 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 1963 } 1964 1965 .header--root[data-fixed="true"] { 1966 backdrop-filter: blur(10px); 1967 -webkit-backdrop-filter: blur(10px); 1968 background-color: rgba(255, 255, 255, 0.9); 1969 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 1970 } 1971 1972 .header--root[data-background-color="dark"][data-fixed="true"] { 1973 background-color: rgba(0, 0, 0, 0.9); 1974 } 1975 1976 /* Custom background color support */ 1977 .header--root[data-custom-bg-color]:not([data-custom-bg-color=""]) { 1978 background-color: var(--custom-header-bg); 1979 } 1980 1981 .header--root[data-custom-bg-color]:not([data-custom-bg-color=""])[data-fixed="true"] { 1982 background-color: color-mix(in srgb, var(--custom-header-bg) 95%, transparent) !important; 1983 } 1984 1985 /* Desktop hover effects */ 1986 @media (min-width: 768px) { 1987 .header--x-menu a { 1988 transition: all 0.2s ease; 1989 position: relative; 1990 } 1991 1992 .header--x-menu a:hover { 1993 transform: translateY(-1px); 1994 } 1995 1996 .header--x-menu a::after { 1997 content: ''; 1998 position: absolute; 1999 bottom: -2px; 2000 left: 50%; 2001 width: 0; 2002 height: 2px; 2003 background-color: currentColor; 2004 transition: all 0.3s ease; 2005 transform: translateX(-50%); 2006 } 2007 2008 .header--x-menu a:hover::after { 2009 width: 100%; 2010 } 2011 } 2012 2013 /* Modern cart styles */ 2014 .header--cart { 2015 position: relative; 2016 min-height: 44px; 2017 min-width: 44px; 2018 display: flex; 2019 align-items: center; 2020 justify-content: center; 2021 } 2022 2023 .header--cart a, 2024 .header--cart [data-drawer-open] { 2025 transition: all 0.2s ease; 2026 position: relative; 2027 display: flex; 2028 align-items: center; 2029 justify-content: center; 2030 min-height: 44px; 2031 min-width: 44px; 2032 } 2033 2034 .header--cart:hover a, 2035 .header--cart:hover [data-drawer-open] { 2036 transform: scale(1.05); 2037 } 2038 2039 .header--cart svg, 2040 .header--cart img { 2041 width: 24px !important; 2042 height: 24px !important; 2043 } 2044 2045 /* Hide theme's default cart count (fallback) */ 2046 .cart--external--total-items { 2047 display: none !important; 2048 } 2049 2050 /* Cart count badge - single source of truth */ 2051 .header--cart::after { 2052 content: attr(data-cart-count); 2053 position: absolute; 2054 top: 2px; 2055 right: 2px; 2056 background-color: rgba(74, 85, 104, 0.9); 2057 color: white; 2058 border-radius: 50%; 2059 min-width: 18px; 2060 height: 18px; 2061 display: flex; 2062 align-items: center; 2063 justify-content: center; 2064 font-size: 11px; 2065 font-weight: 600; 2066 line-height: 1; 2067 border: 2px solid white; 2068 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); 2069 opacity: 0; 2070 transform: scale(0.8); 2071 transition: all 0.3s ease; 2072 z-index: 10; 2073 pointer-events: none; 2074 } 2075 2076 .header--cart[data-cart-count]:not([data-cart-count="0"]):not([data-cart-count=""])::after { 2077 opacity: 1; 2078 transform: scale(1); 2079 } 2080 2081 /* Quick add animations */ 2082 @keyframes cartBounce { 2083 0% { transform: scale(1); } 2084 25% { transform: scale(1.25) rotate(-5deg); } 2085 50% { transform: scale(0.95) rotate(3deg); } 2086 75% { transform: scale(1.1) rotate(-2deg); } 2087 100% { transform: scale(1) rotate(0deg); } 2088 } 2089 2090 @keyframes cartCountPop { 2091 0% { transform: scale(1); background-color: rgba(74, 85, 104, 0.9); } 2092 50% { transform: scale(1.5); background-color: rgba(34, 197, 94, 0.95); } 2093 100% { transform: scale(1); background-color: rgba(74, 85, 104, 0.9); } 2094 } 2095 2096 .header--cart.cart-adding { 2097 animation: cartBounce 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); 2098 } 2099 2100 .header--cart.cart-adding::after { 2101 animation: cartCountPop 0.5s ease 0.1s; 2102 } 2103 2104 /* Mobile cart badge adjustments */ 2105 @media (max-width: 767px) { 2106 .header--cart::after { 2107 top: 4px; 2108 right: 4px; 2109 min-width: 16px; 2110 height: 16px; 2111 font-size: 10px; 2112 border-width: 1.5px; 2113 } 2114 } 2115 2116 /* Hide account option */ 2117 .header--account[data-hidden="true"] { 2118 display: none !important; 2119 } 2120 2121 /* Desktop Cart Preview */ 2122 .header--cart-preview { 2123 position: absolute; 2124 top: calc(100% + 12px); 2125 right: 0; 2126 width: 360px; 2127 max-height: 500px; 2128 background: white; 2129 border-radius: 12px; 2130 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 2131 opacity: 0; 2132 visibility: hidden; 2133 transform: translateY(-10px); 2134 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); 2135 z-index: 9999; 2136 border: 1px solid #e5e7eb; 2137 overflow: hidden; 2138 } 2139 2140 .cart-preview--header { 2141 padding: 20px 20px 16px; 2142 border-bottom: 1px solid #f3f4f6; 2143 display: flex; 2144 align-items: center; 2145 justify-content: space-between; 2146 } 2147 2148 .cart-preview--title { 2149 font-size: 18px; 2150 font-weight: 600; 2151 margin: 0; 2152 color: #111827; 2153 } 2154 2155 .cart-preview--count { 2156 font-size: 14px; 2157 color: #6b7280; 2158 } 2159 2160 .cart-preview--items { 2161 max-height: 300px; 2162 overflow-y: auto; 2163 padding: 16px 20px; 2164 } 2165 2166 .cart-preview--item { 2167 display: flex; 2168 gap: 12px; 2169 padding: 12px 0; 2170 border-bottom: 1px solid #f9fafb; 2171 } 2172 2173 .cart-preview--item:last-child { 2174 border-bottom: none; 2175 } 2176 2177 .cart-preview--item-image { 2178 flex-shrink: 0; 2179 width: 60px; 2180 height: 60px; 2181 border-radius: 8px; 2182 overflow: hidden; 2183 background-color: #f9fafb; 2184 display: flex; 2185 align-items: center; 2186 justify-content: center; 2187 } 2188 2189 .cart-preview--item-image img { 2190 width: 100%; 2191 height: 100%; 2192 object-fit: cover; 2193 } 2194 2195 .cart-preview--no-image { 2196 color: #d1d5db; 2197 font-size: 20px; 2198 } 2199 2200 .cart-preview--item-details { 2201 flex: 1; 2202 min-width: 0; 2203 } 2204 2205 .cart-preview--item-title { 2206 font-size: 14px; 2207 font-weight: 500; 2208 margin: 0 0 4px; 2209 color: #111827; 2210 line-height: 1.4; 2211 display: -webkit-box; 2212 -webkit-line-clamp: 2; 2213 -webkit-box-orient: vertical; 2214 overflow: hidden; 2215 } 2216 2217 .cart-preview--item-variant { 2218 font-size: 12px; 2219 color: #6b7280; 2220 margin: 0 0 8px; 2221 line-height: 1.3; 2222 } 2223 2224 .cart-preview--item-price { 2225 display: flex; 2226 align-items: center; 2227 gap: 8px; 2228 font-size: 14px; 2229 } 2230 2231 .cart-preview--quantity { 2232 color: #6b7280; 2233 } 2234 2235 .cart-preview--price { 2236 font-weight: 500; 2237 color: #111827; 2238 } 2239 2240 .cart-preview--more { 2241 padding: 12px 0 0; 2242 text-align: center; 2243 border-top: 1px solid #f3f4f6; 2244 } 2245 2246 .cart-preview--more p { 2247 margin: 0; 2248 font-size: 14px; 2249 color: #6b7280; 2250 font-style: italic; 2251 } 2252 2253 .cart-preview--footer { 2254 padding: 16px 20px 20px; 2255 border-top: 1px solid #f3f4f6; 2256 background-color: #fafafa; 2257 } 2258 2259 .cart-preview--total { 2260 display: flex; 2261 justify-content: space-between; 2262 align-items: center; 2263 margin-bottom: 16px; 2264 font-size: 16px; 2265 } 2266 2267 .cart-preview--total-label { 2268 font-weight: 500; 2269 color: #374151; 2270 } 2271 2272 .cart-preview--total-price { 2273 font-weight: 600; 2274 color: #111827; 2275 } 2276 2277 .cart-preview--actions { 2278 display: flex; 2279 gap: 12px; 2280 } 2281 2282 .cart-preview--view-cart, 2283 .cart-preview--checkout { 2284 flex: 1; 2285 padding: 10px 16px; 2286 border-radius: 6px; 2287 font-size: 14px; 2288 font-weight: 500; 2289 text-align: center; 2290 transition: all 0.2s ease; 2291 line-height: 1.4; 2292 border: none; 2293 cursor: pointer; 2294 text-decoration: none; 2295 display: inline-block; 2296 } 2297 2298 .cart-preview--view-cart span, 2299 .cart-preview--checkout span { 2300 font-size: 14px; 2301 font-weight: 500; 2302 color: inherit; 2303 } 2304 2305 .cart-preview--view-cart { 2306 background-color: white; 2307 color: #374151; 2308 border: 1px solid #d1d5db; 2309 } 2310 2311 .cart-preview--view-cart:hover { 2312 background-color: #f9fafb; 2313 border-color: #9ca3af; 2314 color: #374151; 2315 } 2316 2317 .cart-preview--view-cart:hover span { 2318 color: #374151; 2319 } 2320 2321 .cart-preview--checkout { 2322 background-color: #111827; 2323 color: white; 2324 border: 1px solid #111827; 2325 } 2326 2327 .cart-preview--checkout:hover { 2328 background-color: #1f2937; 2329 color: white; 2330 } 2331 2332 .cart-preview--checkout:hover span { 2333 color: white; 2334 } 2335 2336 .cart-preview--empty { 2337 padding: 40px 20px; 2338 text-align: center; 2339 } 2340 2341 .cart-preview--empty-icon { 2342 font-size: 48px; 2343 color: #d1d5db; 2344 margin-bottom: 16px; 2345 } 2346 2347 .cart-preview--empty-text { 2348 margin: 0 0 20px; 2349 color: #6b7280; 2350 font-size: 16px; 2351 } 2352 2353 .cart-preview--continue-shopping { 2354 display: inline-block; 2355 padding: 10px 20px; 2356 background-color: #111827; 2357 color: white; 2358 text-decoration: none; 2359 border-radius: 6px; 2360 font-size: 14px; 2361 font-weight: 500; 2362 transition: background-color 0.2s ease; 2363 } 2364 2365 .cart-preview--continue-shopping:hover { 2366 background-color: #1f2937; 2367 } 2368 2369 /* Mobile search hiding */ 2370 @media (max-width: 767px) { 2371 .header--search[data-mobile-hidden="true"] { 2372 display: none !important; 2373 } 2374 } 2375 2376 /* Mobile always fixed */ 2377 @media (max-width: 768px) { 2378 .header--root[data-fixed-enabled="true"] { 2379 position: fixed !important; 2380 top: 0; 2381 width: 100%; 2382 z-index: 1000; 2383 backdrop-filter: blur(10px); 2384 -webkit-backdrop-filter: blur(10px); 2385 background-color: rgba(255, 255, 255, 0.95); 2386 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 2387 } 2388 2389 .header--root[data-background-color="dark"][data-fixed-enabled="true"] { 2390 background-color: rgba(0, 0, 0, 0.95); 2391 } 2392 } 2393 2394 /* Mobile touch targets */ 2395 @media (max-width: 767px) { 2396 .header--cart, 2397 .header--account, 2398 .header--search { 2399 min-height: 48px; 2400 min-width: 48px; 2401 display: flex; 2402 align-items: center; 2403 justify-content: center; 2404 } 2405 2406 .header--right-column { 2407 display: flex; 2408 align-items: center; 2409 justify-content: flex-end; 2410 gap: 8px; 2411 flex-shrink: 0; 2412 } 2413 2414 .header--middle-column { 2415 display: flex; 2416 align-items: center; 2417 justify-content: center; 2418 flex: 1; 2419 text-align: center; 2420 } 2421 2422 .header--left-column { 2423 display: flex; 2424 align-items: center; 2425 justify-content: flex-start; 2426 flex-shrink: 0; 2427 width: auto; 2428 } 2429 2430 .header--top-row { 2431 display: flex; 2432 align-items: center; 2433 width: 100%; 2434 padding: 0 16px; 2435 } 2436 } 2437 2438 /* Desktop hover effect */ 2439 @media (min-width: 769px) { 2440 .header--cart:hover .header--cart-preview { 2441 opacity: 1; 2442 visibility: visible; 2443 transform: translateY(0); 2444 } 2445 2446 .header--cart[data-hover-preview="false"] .header--cart-preview { 2447 display: none !important; 2448 } 2449 } 2450 2451 /* Mobile Search Drawer Fix */ 2452 @media (max-width: 767px) { 2453 /* Hide left drawer when mobile search is active */ 2454 .drawer--instance[data-side=left].drawer--hidden-for-search { 2455 transform: translateZ(0) !important; 2456 visibility: hidden !important; 2457 opacity: 0 !important; 2458 pointer-events: none !important; 2459 transition: all 0.3s ease; 2460 } 2461 2462 /* Ensure search drawer appears above everything */ 2463 .drawer--instance[data-side=top] { 2464 z-index: 10001 !important; 2465 } 2466 2467 /* Make sure search drawer overlay is above left drawer */ 2468 .drawer--instance[data-side=top] .drawer--overlay { 2469 z-index: 10000 !important; 2470 } 2471 } 2472 </style><div class="header--fill-for-fixing"></div><header-root 2473 class="header--root" 2474 data-section-id="sections--30094091485344__header" 2475 data-background-color="none" 2476 data-custom-bg-color="#fafafa" 2477 data-light-text="false" 2478 data-logo-position="above" 2479 data-fixed="true" 2480 data-fixed-enabled="true" 2481 data-always-compact="true" 2482 style="display:block;--header-logo--max-height:30px;--header-logo--max-width:172.56px;background-color:#fafafa;" 2483 ><div class="header--y-menu-for-drawer" style="display:none;"><style> 2484 .y-menu--level-1--link a { 2485 font-family: 'PP Mori', sans-serif; 2486 font-size: 16px; 2487 font-weight: 600; 2488 letter-spacing: 0.5px; 2489 padding: 18px 35px 18px 20px; 2490 } 2491 2492 .y-menu--level-1--link:not([data-y-menu--depth="2"]):not([data-y-menu--depth="3"]) a { 2493 font-weight: 700; 2494 } 2495 2496 .y-menu--level-1--link[data-y-menu--depth="2"] a, 2497 .y-menu--level-1--link[data-y-menu--depth="3"] a { 2498 font-weight: 500; 2499 color: var(--color--body--light); 2500 } 2501 2502 .y-menu--level-1--link .icon--chevron-right--small { 2503 opacity: 0.5; 2504 } 2505 2506 .y-menu--level-2--link a, 2507 .y-menu--level-3--link a, 2508 .y-menu--parent-link a, 2509 .y-menu--back-link a { 2510 font-family: 'PP Mori', sans-serif; 2511 padding: 16px 35px 16px 20px; 2512 font-size: 15px; 2513 } 2514 2515 .y-menu--back-link a { 2516 font-weight: 600; 2517 font-size: 14px; 2518 } 2519 2520 @media only screen and (min-width: 768px) { 2521 .y-menu--logo { 2522 display: block; 2523 padding: 40px 20px 30px; 2524 text-align: center; 2525 } 2526 2527 .y-menu--logo img { 2528 max-width: 140px; 2529 height: auto; 2530 } 2531 2532 .y-menu--level-1--link a, 2533 .y-menu--level-2--link a, 2534 .y-menu--level-3--link a, 2535 .y-menu--parent-link a, 2536 .y-menu--back-link a { 2537 transition: background-color 0.2s ease, padding-left 0.2s ease; 2538 } 2539 2540 .y-menu--level-1--link a:hover, 2541 .y-menu--level-2--link a:hover, 2542 .y-menu--level-3--link a:hover, 2543 .y-menu--parent-link a:hover { 2544 background-color: var(--bg-color--light, #f9f9f9); 2545 padding-left: 24px; 2546 } 2547 2548 .y-menu--level-1--link a:hover .icon--chevron-right--small { 2549 opacity: 1; 2550 } 2551 2552 .y-menu--back-link a:hover { 2553 background-color: var(--bg-color--light, #f9f9f9); 2554 } 2555 } 2556 2557 @media only screen and (max-width: 767px) { 2558 .y-menu--logo { 2559 display: none; 2560 } 2561 } 2562</style><y-menu-root class="y-menu"> 2563 <ul class="y-menu--level-1--container"> 2564 2565<li 2566 class="y-menu--level-1--link" 2567 data-item="nav-text" 2568 data-y-menu--depth="1" 2569 data-y-menu--open="false" 2570 data-link-id="shop-all" 2571 2572 ><a href="/collections/shop-all">Shop All</a></li><li 2573 class="y-menu--level-1--link" 2574 data-item="nav-text" 2575 data-y-menu--depth="1" 2576 data-y-menu--open="false" 2577 data-link-id="deals" 2578 2579 ><a href="/collections/routines">Deals</a></li><li 2580 class="y-menu--level-1--link" 2581 data-item="nav-text" 2582 data-y-menu--depth="1" 2583 data-y-menu--open="false" 2584 data-link-id="suncare" 2585 2586 ><a href="/collections/suncare">Suncare</a></li><li 2587 class="y-menu--level-1--link" 2588 data-item="nav-text" 2589 data-y-menu--depth="1" 2590 data-y-menu--open="false" 2591 data-link-id="skin-quiz" 2592 2593 ><a href="/pages/mad-hippie-skincare-quiz">Skin Quiz</a></li><li 2594 class="y-menu--level-1--link" 2595
2595 data-item="nav-text" 2596 data-y-menu--depth="1" 2597 data-y-menu--open="false" 2598 data-link-id="routine-builder" 2599 2600 ><a href="/pages/routine-builder">Routine Builder</a></li><li 2601 class="y-menu--level-1--link" 2602 data-item="nav-text" 2603 data-y-menu--depth="1" 2604 data-y-menu--open="false" 2605 data-link-id="results" 2606 2607 ><a href="/pages/results">Results</a></li><li 2608 class="y-menu--level-1--link" 2609 data-item="nav-text" 2610 data-y-menu--depth="2" 2611 data-y-menu--open="false" 2612 data-link-id="about-us" 2613 2614 ><a 2615 href="https://madhippie.com/pages/our-skin-care-philosophy" 2616 data-submenu="true" 2617 aria-haspopup="true" 2618 aria-expanded="false" 2619 aria-controls="y-menu--sub-about-us" 2620 > 2621 About us 2622<svg class="icon--root icon--chevron-right--small" width="8" height="14" viewBox="0 0 8 14" xmlns="http://www.w3.org/2000/svg"> 2623 <path d="M6.274 7.202.408 1.336l.707-.707 6.573 6.573-.096.096-6.573 6.573-.707-.707 5.962-5.962Z" fill="#000" fill-rule="nonzero" /> 2624 </svg></a><ul 2625 class="y-menu--level-2--container" 2626 2627 data-y-menu--parent-link="level-2" 2628 2629 id="y-menu--sub-about-us" 2630 > 2631 <li class="y-menu--back-link"> 2632 <a href="#"><svg class="icon--root icon--chevron-left--small" width="8" height="14" viewBox="0 0 8 14" xmlns="http://www.w3.org/2000/svg"> 2633 <path d="m1.726 7.298 5.866 5.866-.707.707L.312 7.298l.096-.096L6.981.629l.707.707-5.962 5.962Z" fill="#000" fill-rule="nonzero" /> 2634 </svg> Back</a> 2635 </li><li class="y-menu--parent-link"> 2636 <a href="https://madhippie.com/pages/our-skin-care-philosophy">About us</a> 2637 </li><li 2638 class="y-menu--level-2--link" 2639 data-item="nav-text" 2640 data-link-id="about-us--skin-care-philosophy" 2641 > 2642 <a href="https://www.madhippie.com/pages/our-skin-care-philosophy" data-submenu="true">Skin Care Philosophy</a> 2643 2644 2645</li><li 2646 class="y-menu--level-2--link" 2647 data-item="nav-text" 2648 data-link-id="about-us--the-hippie-creed" 2649 > 2650 <a href="/pages/about-us" data-submenu="true">The Hippie Creed</a> 2651 2652 2653</li><li 2654 class="y-menu--level-2--link" 2655 data-item="nav-text" 2656 data-link-id="about-us--conservation-giving-back" 2657 > 2658 <a href="/pages/conservation-efforts" data-submenu="true">Conservation / Giving Back</a> 2659 2660 2661</li><li 2662 class="y-menu--level-2--link" 2663 data-item="nav-text" 2664 data-link-id="about-us--our-story" 2665 > 2666 <a href="/pages/our-story" data-submenu="true">Our Story</a> 2667 2668 2669</li><li 2670 class="y-menu--level-2--link" 2671 data-item="nav-text" 2672 data-link-id="about-us--press" 2673 > 2674 <a href="/pages/press" data-submenu="true">Press</a> 2675 2676 2677</li></ul></li><li 2678 class="y-menu--level-1--link" 2679 data-item="nav-text" 2680 data-y-menu--depth="2" 2681 data-y-menu--open="false" 2682 data-link-id="more" 2683 2684 ><a 2685 href="/pages/guarantee" 2686 data-submenu="true" 2687 aria-haspopup="true" 2688 aria-expanded="false" 2689 aria-controls="y-menu--sub-more" 2690 > 2691 More 2692<svg class="icon--root icon--chevron-right--small" width="8" height="14" viewBox="0 0 8 14" xmlns="http://www.w3.org/2000/svg"> 2693 <path d="M6.274 7.202.408 1.336l.707-.707 6.573 6.573-.096.096-6.573 6.573-.707-.707 5.962-5.962Z" fill="#000" fill-rule="nonzero" /> 2694 </svg></a><ul 2695 class="y-menu--level-2--container" 2696 2697 data-y-menu--parent-link="level-2" 2698 2699 id="y-menu--sub-more" 2700 > 2701 <li class="y-menu--back-link"> 2702 <a href="#"><svg class="icon--root icon--chevron-left--small" width="8" height="14" viewBox="0 0 8 14" xmlns="http://www.w3.org/2000/svg"> 2703 <path d="m1.726 7.298 5.866 5.866-.707.707L.312 7.298l.096-.096L6.981.629l.707.707-5.962 5.962Z" fill="#000" fill-rule="nonzero" /> 2704 </svg> Back</a> 2705 </li><li class="y-menu--parent-link"> 2706 <a href="/pages/guarantee">More</a> 2707 </li><li 2708 class="y-menu--level-2--link" 2709 data-item="nav-text" 2710 data-link-id="more--recycle-with-pact" 2711 > 2712 <a href="/pages/pact-collective" data-submenu="true">Recycle with Pact</a> 2713 2714 2715</li><li 2716 class="y-menu--level-2--link" 2717 data-item="nav-text" 2718 data-link-id="more--stores" 2719 > 2720 <a href="/pages/stores" data-submenu="true">Stores</a> 2721 2722 2723</li><li 2724 class="y-menu--level-2--link" 2725 data-item="nav-text" 2726 data-link-id="more--pro-tips" 2727 > 2728 <a href="/pages/pro-tips" data-submenu="true">Pro Tips</a> 2729 2730 2731</li><li 2732 class="y-menu--level-2--link" 2733 data-item="nav-text" 2734 data-link-id="more--faq" 2735 > 2736 <a href="https://madhippie.com/a/faq" data-submenu="true">FAQ</a> 2737 2738 2739</li><li 2740 class="y-menu--level-2--link" 2741 data-item="nav-text" 2742 data-link-id="more--guarantee" 2743 > 2744 <a href="/pages/guarantee" data-submenu="true">Guarantee</a> 2745 2746 2747</li><li 2748 class="y-menu--level-2--link" 2749 data-item="nav-text" 2750 data-link-id="more--contact-us" 2751 > 2752 <a href="https://madhippie.com/pages/contact-us" data-submenu="true">Contact Us</a> 2753 2754 2755</li><li 2756 class="y-menu--level-2--link" 2757 data-item="nav-text" 2758 data-link-id="more--manage-subscription" 2759 > 2760 <a href="https://madhippie.com/a/loop_subscriptions/get-subscription-link" data-submenu="true">Manage Subscription</a> 2761 2762 2763</li><li 2764 class="y-menu--level-2--link" 2765 data-item="nav-text" 2766 data-link-id="more--ingredient-science" 2767 > 2768 <a href="/blogs/naked-ingredients" data-submenu="true">Ingredient Science</a> 2769 2770 2771</li></ul></li><li 2772 class="y-menu--level-1--link" 2773 data-item="nav-text" 2774 data-y-menu--depth="1" 2775 data-y-menu--open="false" 2776 data-link-id="visit-our-flagship" 2777 2778 ><a href="/pages/visit-us">Visit our Flagship</a></li></ul></y-menu-root></div> 2779 2780 <div class="header--top-row"> 2781 <div class="header--left-column"> 2782 <div class="header--menu-icon"> 2783 <div class="x-menu--overlap-icon"> 2784 <div 2785 tabindex="0" 2786 role="button" 2787 aria-label="Open navigation menu" 2788 data-drawer-open="left" 2789 data-drawer-view="y-menu" 2790 aria-haspopup="menu" 2791 >
2791<svg class="icon--root icon--menu" width="22" height="16" viewBox="0 0 22 16" xmlns="http://www.w3.org/2000/svg"> 2792 <path d="M0 2.4V.6h22v1.8H0Zm0 6.584v-1.8h22v1.8H0Zm0 6.584v-1.8h22v1.8H0Z" fill="#000" fill-rule="nonzero" /> 2793 </svg></div> 2794 </div> 2795 </div></div> 2796 2797 <div class="header--middle-column"> 2798 <div class="header--logo" data-position="center"> 2799 2800<div 2801 class="logo--root" 2802 data-type="image" 2803 itemscope 2804 itemtype="https://schema.org/Organization" 2805> 2806 <a 2807 class="logo--wrapper" 2808 href="/" 2809 title="Mad Hippie" 2810 itemprop="url" 2811 ><img 2812 class="logo--image logo-coll-bundle" 2813 src="//madhippie.com/cdn/shop/files/MH-Logo-Effect.png?v=1752971310&width=402" 2814 srcset="//madhippie.com/cdn/shop/files/MH-Logo-Effect.png?v=1752971310&width=201 1x, //madhippie.com/cdn/shop/files/MH-Logo-Effect.png?v=1752971310&width=402 2x" 2815 alt="Mad Hippie" 2816 itemprop="logo" 2817 width="402" 2818 height="70" 2819 fetchpriority="high"style="object-position:50.0% 50.0%"> 2820 <style> 2821 .logo--image { 2822 height: auto; 2823 width: 201px; 2824 } 2825 2826 @media only screen and (max-width: 767px) { 2827 .logo--image { 2828 width: 173px; 2829 } 2830 } 2831 </style></a> 2832</div> 2833 </div> 2834 </div> 2835 2836 <div class="header--right-column default-header" data-item="nav-text"> 2837 <div class="header--localization"><form method="post" action="/localization" id="header--localization" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/stores" /></form></div> 2838 2839 2840<div 2841 class="header--search" 2842 role="button" 2843 data-drawer-open="top" 2844 data-drawer-view="search" 2845 data-mobile-hidden="true" 2846 tabindex="0" 2847 aria-label="Search" 2848 ><svg class="icon--root icon--search" width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 2849 <path d="m14.37 12.86 5.636 5.637-1.414 1.414-5.633-5.632a7.627 7.627 0 0 1-4.688 1.604c-4.256 0-7.707-3.483-7.707-7.78 0-4.297 3.45-7.78 7.707-7.78s7.707 3.483 7.707 7.78c0 1.792-.6 3.442-1.608 4.758ZM8.27 14.084c3.259 0 5.907-2.673 5.907-5.98 0-3.306-2.648-5.98-5.907-5.98-3.258 0-5.907 2.674-5.907 5.98 0 3.307 2.649 5.98 5.907 5.98Z" fill="#000" fill-rule="nonzero" /> 2850 </svg></div> 2851 <div class="mobile-nav--search--for-drawer" style="display:none;"> 2852 <div 2853 data-drawer-open="top" 2854 data-drawer-view="search" 2855 tabindex="0" 2856 aria-label="Search" 2857 data-mq="small" 2858 ><svg class="icon--root icon--search" width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 2859 <path d="m14.37 12.86 5.636 5.637-1.414 1.414-5.633-5.632a7.627 7.627 0 0 1-4.688 1.604c-4.256 0-7.707-3.483-7.707-7.78 0-4.297 3.45-7.78 7.707-7.78s7.707 3.483 7.707 7.78c0 1.792-.6 3.442-1.608 4.758ZM8.27 14.084c3.259 0 5.907-2.673 5.907-5.98 0-3.306-2.648-5.98-5.907-5.98-3.258 0-5.907 2.674-5.907 5.98 0 3.307 2.649 5.98 5.907 5.98Z" fill="#000" fill-rule="nonzero" /> 2860 </svg></div> 2861 </div> 2862<div class="header--cart" data-cart-count="0" data-hover-preview="false"><div class="cart--external--icon" data-item-count="0"> 2863 <a 2864 class="header--cart-toggle" 2865 aria-label="Cart" 2866 2867 data-drawer-open="right" 2868 data-drawer-view="cart-drawer" 2869 aria-haspopup="menu" 2870 href="#" 2871 2872 > 2873 <svg class="icon--root icon--bag" width="18" height="21" viewBox="0 0 18 21" xmlns="http://www.w3.org/2000/svg"> 2874 <path d="M5.156 3.99A3.837 3.837 0 0 1 9 .3a3.837 3.837 0 0 1 3.844 3.69h4.49l.389 14.704a1.75 1.75 0 0 1-1.704 1.795H2.027a1.75 1.75 0 0 1-1.75-1.75l.001-.046L.674 3.99h4.482Zm1.502 0h4.684A2.337 2.337 0 0 0 9 1.8a2.337 2.337 0 0 0-2.342 2.19Zm-1.506 1.5H2.135l-.358 13.243v.007c0 .138.112.25.25.25h13.946a.251.251 0 0 0 .25-.257L15.874 5.49h-3.026v2.823h-1.5V5.49H6.
2874652v2.823h-1.5V5.49Z" fill="#000" fill-rule="nonzero" /> 2875 </svg> 2876 </a> 2877 2878 <noscript> 2879 <a 2880 class="header--cart-toggle--noscript" 2881 aria-label="Cart" 2882 href="/cart" 2883 > 2884 <svg class="icon--root icon--bag" width="18" height="21" viewBox="0 0 18 21" xmlns="http://www.w3.org/2000/svg"> 2885 <path d="M5.156 3.99A3.837 3.837 0 0 1 9 .3a3.837 3.837 0 0 1 3.844 3.69h4.49l.389 14.704a1.75 1.75 0 0 1-1.704 1.795H2.027a1.75 1.75 0 0 1-1.75-1.75l.001-.046L.674 3.99h4.482Zm1.502 0h4.684A2.337 2.337 0 0 0 9 1.8a2.337 2.337 0 0 0-2.342 2.19Zm-1.506 1.5H2.135l-.358 13.243v.007c0 .138.112.25.25.25h13.946a.251.251 0 0 0 .25-.257L15.874 5.49h-3.026v2.823h-1.5V5.49H6.652v2.823h-1.5V5.49Z" fill="#000" fill-rule="nonzero" /> 2886 </svg> 2887 <span class="cart--external--total-items"></span> 2888 </a> 2889 </noscript> 2890</div> 2891<span data-cart-count-sr aria-live="polite" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;">0 items in cart</span></div> 2892 </div> 2893 </div><div class="header--bottom-row" data-view="with-js"> 2894 <div class="header--bottom-row--container"> 2895 <div class="header--x-menu" data-position="below"><x-menu-root 2896 class="x-menu" 2897 role="navigation" 2898 aria-label="Main navigation" 2899 data-item="nav-text" 2900 data-x-menu--align="" 2901 2902 data-x-menu--overlap 2903 data-x-menu--overlap-parent="2" 2904 2905 style="display:inline-block;" 2906><ul class="x-menu--level-1--container"><li 2907 class="x-menu--level-1--link" 2908 data-x-menu--depth="1" 2909 data-x-menu--open="false" 2910 data-state="closed" 2911 data-link-id="shop-all" 2912 ><a href="/collections/shop-all"><span>Shop All</span></a></li><li 2913 class="x-menu--level-1--link" 2914 data-x-menu--depth="1" 2915 data-x-menu--open="false" 2916 data-state="closed" 2917 data-link-id="deals" 2918 ><a href="/collections/routines"><span>Deals</span></a></li><li 2919 class="x-menu--level-1--link" 2920 data-x-menu--depth="1" 2921 data-x-menu--open="false" 2922 data-state="closed" 2923 data-link-id="suncare" 2924 ><a href="/collections/suncare"><span>Suncare</span></a></li><li 2925 class="x-menu--level-1--link" 2926 data-x-menu--depth="1" 2927 data-x-menu--open="false" 2928 data-state="closed" 2929 data-link-id="skin-quiz" 2930 ><a href="/pages/mad-hippie-skincare-quiz"><span>Skin Quiz</span></a></li><li 2931 class="x-menu--level-1--link" 2932 data-x-menu--depth="1" 2933 data-x-menu--open="false" 2934 data-state="closed" 2935 data-link-id="routine-builder" 2936 ><a href="/pages/routine-builder"><span>Routine Builder</span></a></li><li 2937 class="x-menu--level-1--link" 2938 data-x-menu--depth="1" 2939 data-x-menu--open="false" 2940 data-state="closed" 2941 data-link-id="results" 2942 ><a href="/pages/results"><span>Results</span></a></li><li 2943 class="x-menu--level-1--link" 2944 data-x-menu--depth="2" 2945 data-x-menu--open="false" 2946 data-state="closed" 2947 data-link-id="about-us" 2948 ><a 2949 href="https://madhippie.com/pages/our-skin-care-philosophy" 2950 aria-haspopup="true" 2951 aria-expanded="false" 2952 aria-controls="x-menu--sub-about-us" 2953 > 2954 <span>About us</span> <svg class="icon--root icon--chevron-down" width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"> 2955 <path d="M5 4.058 8.53.528l.707.707-3.53 3.53L5 5.472.763 1.235 1.47.528 5 4.058Z" fill="#000" fill-rule="nonzero" /> 2956 </svg><svg class="icon--root icon--chevron-up" width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"> 2957 <path d="m5 1.942-3.53 3.53-.707-.707 3.53-3.53L5 .528l4.237 4.237-.707.707L5 1.942Z" fill="#000" fill-rule="nonzero" /> 2958 </svg></a><div 2959 class="x-menu--level-2--container" 2960 id="x-menu--sub-about-us" 2961 aria-hidden="true" 2962 style="display:none;" 2963 ><ul class="x-menu--level-2--list"><li 2964 class="x-menu--level-2--link" 2965 data-link-id="about-us--skin-care-philosophy" 2966 2967 data-x-menu--single-parent="true" 2968 2969 > 2970 <a href="https://www.madhippie.com/pages/our-skin-care-philosophy">Skin Care Philosophy</a></li><li 2971 class="x-menu--level-2--link" 2972 data-link-id="about-us--the-hippie-creed" 2973 2974 data-x-menu--single-parent="true" 2975 2976 > 2977 <a href="/pages/about-us">
2977The Hippie Creed</a></li><li 2978 class="x-menu--level-2--link" 2979 data-link-id="about-us--conservation-giving-back" 2980 2981 data-x-menu--single-parent="true" 2982 2983 > 2984 <a href="/pages/conservation-efforts">Conservation / Giving Back</a></li><li 2985 class="x-menu--level-2--link" 2986 data-link-id="about-us--our-story" 2987 2988 data-x-menu--single-parent="true" 2989 2990 > 2991 <a href="/pages/our-story">Our Story</a></li><li 2992 class="x-menu--level-2--link" 2993 data-link-id="about-us--press" 2994 2995 data-x-menu--single-parent="true" 2996 2997 > 2998 <a href="/pages/press">Press</a></li></ul> 2999 </div></li><li 3000 class="x-menu--level-1--link" 3001 data-x-menu--depth="2" 3002 data-x-menu--open="false" 3003 data-state="closed" 3004 data-link-id="more" 3005 ><a 3006 href="/pages/guarantee" 3007 aria-haspopup="true" 3008 aria-expanded="false" 3009 aria-controls="x-menu--sub-more" 3010 > 3011 <span>More</span> <svg class="icon--root icon--chevron-down" width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"> 3012 <path d="M5 4.058 8.53.528l.707.707-3.53 3.53L5 5.472.763 1.235 1.47.528 5 4.058Z" fill="#000" fill-rule="nonzero" /> 3013 </svg><svg class="icon--root icon--chevron-up" width="10" height="6" viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"> 3014 <path d="m5 1.942-3.53 3.53-.707-.707 3.53-3.53L5 .528l4.237 4.237-.707.707L5 1.942Z" fill="#000" fill-rule="nonzero" /> 3015 </svg></a><div 3016 class="x-menu--level-2--container" 3017 id="x-menu--sub-more" 3018 aria-hidden="true" 3019 style="display:none;" 3020 ><ul class="x-menu--level-2--list"><li 3021 class="x-menu--level-2--link" 3022 data-link-id="more--recycle-with-pact" 3023 3024 data-x-menu--single-parent="true" 3025 3026 > 3027 <a href="/pages/pact-collective">Recycle with Pact</a></li><li 3028 class="x-menu--level-2--link" 3029 data-link-id="more--stores" 3030 3031 data-x-menu--single-parent="true" 3032 3033 > 3034 <a href="/pages/stores">Stores</a></li><li 3035 class="x-menu--level-2--link" 3036 data-link-id="more--pro-tips" 3037 3038 data-x-menu--single-parent="true" 3039 3040 > 3041 <a href="/pages/pro-tips">Pro Tips</a></li><li 3042 class="x-menu--level-2--link" 3043 data-link-id="more--faq" 3044 3045 data-x-menu--single-parent="true" 3046 3047 > 3048 <a href="https://madhippie.com/a/faq">FAQ</a></li><li 3049 class="x-menu--level-2--link" 3050 data-link-id="more--guarantee" 3051 3052 data-x-menu--single-parent="true" 3053 3054 > 3055 <a href="/pages/guarantee">Guarantee</a></li><li 3056 class="x-menu--level-2--link" 3057 data-link-id="more--contact-us" 3058 3059 data-x-menu--single-parent="true" 3060 3061 > 3062 <a href="https://madhippie.com/pages/contact-us">Contact Us</a></li><li 3063 class="x-menu--level-2--link" 3064 data-link-id="more--manage-subscription" 3065 3066 data-x-menu--single-parent="true" 3067 3068 > 3069 <a href="https://madhippie.com/a/loop_subscriptions/get-subscription-link">Manage Subscription</a></li><li 3070 class="x-menu--level-2--link" 3071 data-link-id="more--ingredient-science" 3072 3073 data-x-menu--single-parent="true" 3074 3075 > 3076 <a href="/blogs/naked-ingredients">Ingredient Science</a></li></ul> 3077 </div></li><li 3078 class="x-menu--level-1--link" 3079 data-x-menu--depth="1" 3080 data-x-menu--open="false" 3081 data-state="closed" 3082 data-link-id="visit-our-flagship" 3083 ><a href="/pages/visit-us"><span>Visit our Flagship</span></a></li></ul></x-menu-root></div> 3084 </div> 3085 <div class="header--bottom-row--edge-detector"></div> 3086 </div><noscript> 3087 <div class="header--bottom-row" data-view="no-js"> 3088 <div class="header--bottom-row--container"> 3089 <div class="header--x-menu" data-position="below"><style> 3090 @media only screen and (min-width: 768px) { 3091 .x-menu--level-1--container { 3092 display: flex; 3093 flex-wrap: wrap; 3094 } 3095 } 3096 </style><x-menu-root 3097 class="x-menu" 3098 role="navigation" 3099 aria-label="Main navigation" 3100 data-item="nav-text" 3101 data-x-menu--align="" 3102 3103 data-x-menu--overlap 3104 data-x-menu--overlap-parent="2" 3105 3106 style="display:inline-block;" 3107><ul class="x-menu--level-1--container"></ul></x-menu-root></div> 3108 </div> 3109 <div class="header--bottom-row--edge-detector"></div> 3110 </div> 3111 </noscript> 3112 </header-root> 3113 3114
3114<script> 3115 // Modern header functionality 3116 document.addEventListener('DOMContentLoaded', function() { 3117 const header = document.querySelector('.header--root'); 3118 const fixEnabled = header.dataset.fixedEnabled === 'true'; 3119 const alwaysCompact = header.dataset.alwaysCompact === 'true'; 3120 const customBgColor = header.dataset.customBgColor; 3121 3122 // Set custom background color CSS variable 3123 if (customBgColor && customBgColor !== '') { 3124 document.documentElement.style.setProperty('--custom-header-bg', customBgColor); 3125 } 3126 3127 // Check if mobile 3128 const isMobile = window.innerWidth <= 768; 3129 3130 // If always-compact is enabled, keep header in fixed/compact state always 3131 if (alwaysCompact) { 3132 header.dataset.fixed = 'true'; 3133 // No scroll behavior needed - always compact 3134 } else if (fixEnabled) { 3135 if (isMobile) { 3136 // On mobile, keep header always fixed with glass effect 3137 header.dataset.fixed = 'true'; 3138 header.style.position = 'fixed'; 3139 header.style.top = '0'; 3140 header.style.width = '100%'; 3141 header.style.zIndex = '1000'; 3142 } else { 3143 // Desktop sticky behavior - only if NOT always-compact 3144 let ticking = false; 3145 let lastScrollY = window.scrollY; 3146 3147 function updateHeader() { 3148 const currentScrollY = window.scrollY; 3149 const scrolled = currentScrollY > 50; 3150 3151 if (header.dataset.fixed !== scrolled.toString()) { 3152 header.dataset.fixed = scrolled; 3153 } 3154 3155 lastScrollY = currentScrollY; 3156 ticking = false; 3157 } 3158 3159 function requestTick() { 3160 if (!ticking) { 3161 requestAnimationFrame(updateHeader); 3162 ticking = true; 3163 } 3164 } 3165 3166 let throttleTimer; 3167 window.addEventListener('scroll', function() { 3168 if (throttleTimer) { 3169 return; 3170 } 3171 3172 throttleTimer = setTimeout(function() { 3173 requestTick(); 3174 throttleTimer = null; 3175 }, 16); 3176 }, { passive: true }); 3177 } 3178 } 3179 3180 // Cart count animation 3181 const cartCount = document.querySelector('.header--cart[data-cart-count]'); 3182 if (cartCount) { 3183 const observer = new MutationObserver(function(mutations) { 3184 mutations.forEach(function(mutation) { 3185 if (mutation.type === 'attributes' && mutation.attributeName === 'data-cart-count') { 3186 const newCount = cartCount.getAttribute('data-cart-count'); 3187 // Keep the screen-reader-only live count in sync so changes are announced. 3188 const srCount = cartCount.querySelector('[data-cart-count-sr]'); 3189 if (srCount) { 3190 const n = parseInt(newCount, 10) || 0; 3191 srCount.textContent = n + (n === 1 ? ' item' : ' items') + ' in cart'; 3192 } 3193 if (newCount && newCount !== '0') { 3194 cartCount.style.setProperty('--cart-animation', 'cartBounce 0.3s ease'); 3195 setTimeout(() => { 3196 cartCount.style.removeProperty('--cart-animation'); 3197 }, 300); 3198 } 3199 } 3200 }); 3201 }); 3202 3203 observer.observe(cartCount, { 3204 attributes: true, 3205 attributeFilter: ['data-cart-count'] 3206 }); 3207 } 3208 3209 // A11y: Space-key activation for role="button" elements that aren't native buttons/links. 3210 // The theme's core JS already handles Enter; this adds Space (expected for button role) without double-firing. 3211 document.addEventListener('keydown', function(e) { 3212 if (e.key !== ' ' && e.key !== 'Spacebar') return; 3213 var btn = e.target && e.target.closest ? e.target.closest('[role="button"]') : null; 3214 if (!btn) return; 3215 if (btn.tagName === 'BUTTON' || btn.tagName === 'A') return; // native handling 3216 if (document.activeElement !== btn) return; // only when the button itself is focused 3217 e.preventDefault(); // stop page scroll on Space 3218 btn.click(); 3219 }); 3220 3221 // Mobile search drawer fix 3222 function handleMobileSearchDrawer() { 3223 const searchButton = document.querySelector('.header--search[data-drawer-open="top"]'); 3224 3225 if (!searchButton) return; 3226 3227 // Function to hide left drawer when search opens 3228 function hideLeftDrawerForSearch() { 3229 const leftDrawer = document.querySelector('.drawer--instance[data-side=left]'); 3230 if (leftDrawer) { 3231 // Add a class to disable the transform
3232 leftDrawer.classList.add('drawer--hidden-for-search'); 3233 3234 // Also set aria-expanded to false to ensure proper accessibility 3235 leftDrawer.setAttribute('aria-expanded', 'false'); 3236 } 3237 } 3238 3239 // Function to restore left drawer when search closes 3240 function restoreLeftDrawer() { 3241 const leftDrawer = document.querySelector('.drawer--instance[data-side=left]'); 3242 if (leftDrawer) { 3243 leftDrawer.classList.remove('drawer--hidden-for-search'); 3244 } 3245 } 3246 3247 // Listen for search button clicks 3248 searchButton.addEventListener('click', function() { 3249 hideLeftDrawerForSearch(); 3250 }); 3251 3252 // Listen for search button keydown (for accessibility) 3253 searchButton.addEventListener('keydown', function(e) { 3254 if (e.key === 'Enter' || e.key === ' ') { 3255 hideLeftDrawerForSearch(); 3256 } 3257 }); 3258 3259 // Listen for drawer state changes using MutationObserver 3260 const observer = new MutationObserver(function(mutations) { 3261 mutations.forEach(function(mutation) { 3262 if (mutation.type === 'attributes' && mutation.attributeName === 'aria-expanded') { 3263 const isSearchOpen = document.querySelector('.drawer--instance[data-side=top][aria-expanded="true"]'); 3264 3265 if (!isSearchOpen) { 3266 // Search drawer is closed, restore left drawer 3267 restoreLeftDrawer(); 3268 } 3269 } 3270 }); 3271 }); 3272 3273 // Wait for drawer elements to be available, then observe them 3274 const checkForDrawers = setInterval(function() { 3275 const allDrawers = document.querySelectorAll('.drawer--instance'); 3276 if (allDrawers.length > 0) { 3277 allDrawers.forEach(function(drawer) { 3278 observer.observe(drawer, { 3279 attributes: true, 3280 attributeFilter: ['aria-expanded'] 3281 }); 3282 }); 3283 clearInterval(checkForDrawers); 3284 } 3285 }, 100); 3286 3287 // Alternative: Listen for clicks on drawer close buttons or overlay 3288 document.addEventListener('click', function(e) { 3289 // If clicking on drawer close or overlay, restore left drawer 3290 if (e.target.matches('[data-drawer-close]') || 3291 e.target.matches('.drawer--overlay') || 3292 e.target.closest('[data-drawer-close]')) { 3293 setTimeout(restoreLeftDrawer, 100); // Small delay to ensure drawer is closed 3294 } 3295 }); 3296 3297 // Listen for ESC key to close search 3298 document.addEventListener('keydown', function(e) { 3299 if (e.key === 'Escape') { 3300 setTimeout(restoreLeftDrawer, 100); // Small delay to ensure drawer is closed 3301 } 3302 }); 3303 } 3304 3305 // Initialize the mobile search fix 3306 handleMobileSearchDrawer(); 3307 }); 3308 3309 // Global function to trigger cart animation (called by quick-add sections) 3310 window.animateCartIcon = function(newCount) { 3311 const cartEl = document.querySelector('.header--cart[data-cart-count]'); 3312 if (!cartEl) return; 3313 3314 // Update the count 3315 if (typeof newCount !== 'undefined') { 3316 cartEl.setAttribute('data-cart-count', newCount); 3317 } 3318 3319 // Remove animation class if already present 3320 cartEl.classList.remove('cart-adding'); 3321 3322 // Force reflow to restart animation 3323 void cartEl.offsetWidth; 3324 3325 // Add animation class 3326 cartEl.classList.add('cart-adding'); 3327 3328 // Remove class after animation completes 3329 setTimeout(() => { 3330 cartEl.classList.remove('cart-adding'); 3331 }, 700); 3332 }; 3333 3334 // Listen for quick-add events 3335 document.addEventListener('quickadd:success', function(e) { 3336 const cart = e.detail?.cart; 3337 if (cart && typeof cart.item_count !== 'undefined') { 3338 window.animateCartIcon(cart.item_count); 3339 } 3340 }); 3341 3342 // Listen for theme cart events (varies by theme) 3343 document.addEventListener('cart:updated', function(e) { 3344 const cart = e.detail?.cart || e.detail; 3345 if (cart && typeof cart.item_count !== 'undefined') { 3346 window.animateCartIcon(cart.item_count); 3347 } 3348 }); 3349 3350 // Listen for Shopify's native cart change 3351 document.addEventListener('cart:change', function(e) { 3352 const cart = e.detail?.cart || e.detail; 3353 if (cart && typeof cart.item_count !== 'undefined') { 3354 window.animateCartIcon(cart.item_count); 3355 } 3356 }); 3357 3358 // Intercept fetch requests to /cart/add to catch all add-to-cart actions 3359 (function() { 3360 const originalFetch = window.fetch; 3361 window.fetch = function(...args) { 3362 const [url, options] = args; 3363 const urlString = typeof url === 'string' ? url : url?.url || ''; 3364 3365 return originalFetch.apply(this, args).then(response => { 3366 // Check if this was a cart add/update request
3367 if (urlString.includes('/cart/add') || urlString.includes('/cart/change') || urlString.includes('/cart/update')) { 3368 // Clone response so we can read it 3369 response.clone().json().then(data => { 3370 // Fetch fresh cart data to get accurate count 3371 fetch('/cart.js') 3372 .then(r => r.json()) 3373 .then(cart => { 3374 if (typeof cart.item_count !== 'undefined') { 3375 window.animateCartIcon(cart.item_count); 3376 } 3377 }) 3378 .catch(() => {}); 3379 }).catch(() => {}); 3380 } 3381 return response; 3382 }); 3383 }; 3384 })(); 3385 </script>
3385 3386 3387 3388 3389 3390</div> 3391<!-- END sections: header-group --></header> 3392 3393 <div class="layout--overlay-group"><!-- BEGIN sections: overlay-group --> 3394<!-- Failed to render section "popup": section file "popup.liquid" does not exist --> 3395<!-- END sections: overlay-group --></div> 3396 3397 <main class="layout--template" id="main-content"><div id="shopify-section-template--30094100889760__main" class="shopify-section"> 3398 3399 3400 <h1 class="hidden">Store Locations</h1> 3401 3402<div 3403 class="template-page--root" 3404 data-section-id="template--30094100889760__main" 3405 data-background-color="none" 3406 data-container-width="4" 3407 data-spacing-above="true" 3408 data-spacing-below="true" 3409 data-light-text="false" 3410 3411 > 3412 <div class="template-page--wrapper"><div data-item="rte-content"><div class="closeby-embed-3b1f8591980f81aa79c2d2066470b9f8"></div>
3413<script>window.closeby = { mapKey: "3b1f8591980f81aa79c2d2066470b9f8", options: { embed: true, height: 700 } };</script>
vendor: 1 bytes, line 3413
3413
3414<script src="https://embed.closeby.co/v1.js" async defer></script>
3414 3415*Always call locations to confirm selections of our product!</div> 3416 </div> 3417 </div> 3418</div> 3419 </main> 3420 3421 <footer class="layout--footer-group"><!-- BEGIN sections: footer-group --> 3422<div id="shopify-section-sections--30094091288736__footer_2026_BrAYK8" class="shopify-section shopify-section-group-footer-group section--footer-2026"> 3423 3424<link href="//madhippie.com/cdn/shop/t/190/assets/footer-2026.css?v=7360402689248888431790034617" rel="stylesheet" type="text/css" media="all" /> 3425<footer 3426 class="footer-2026 footer-2026--has-brand-pieces" 3427 data-section-id="sections--30094091288736__footer_2026_BrAYK8" 3428 data-section-type="footer-2026" 3429 style="--footer-2026-bg: #ffffff;--footer-2026-text: #000000;" 3430> 3431 <div class="footer-2026__container"><div class="footer-2026__nav-wrapper footer-2026__nav-wrapper--with-brand"><div class="footer-2026__brand-pieces" > 3432 <div class="footer-2026__brand-pieces-content"> 3433 <div class="footer-2026__brand-pieces-image-wrap"><img 3434 src="//madhippie.com/cdn/shop/files/VitaminC-Circle.png?v=1751336888&width=200" 3435 srcset="//madhippie.com/cdn/shop/files/VitaminC-Circle.png?v=1751336888&width=100 100w, //madhippie.com/cdn/shop/files/VitaminC-Circle.png?v=1751336888&width=200 200w" 3436 alt="" 3437 class="footer-2026__brand-pieces-image" 3438 loading="lazy" 3439 style="width: 80px; height: 80px;" 3440 ><p class="footer-2026__brand-pieces-title footer-2026__brand-pieces-title--mobile" style="color: #000000; font-size: 18px;"> 3441 Who do you want in your circle? 3442 </p></div> 3443 <div class="footer-2026__brand-pieces-text"><p class="footer-2026__brand-pieces-title footer-2026__brand-pieces-title--desktop" style="color: #000000; font-size: 22px;"> 3444 Who do you want in your circle? 3445 </p><div class="footer-2026__brand-pieces-line" style="background-color: #000000;"></div> 3446 <div class="footer-2026__brand-pieces-right"> 3447 <p class="footer-2026__brand-pieces-subtitle" style="color: #000000; font-size: 18px;"> 3448 If it's freethinking, naked ingredient lovers, 3449 </p> 3450 <p class="footer-2026__brand-pieces-tagline" style="color: #000000; font-size: 20px;"> 3451 We are the OG's. 3452 </p> 3453 </div> 3454 </div> 3455 </div> 3456 </div><nav class="footer-2026__nav" aria-label="Footer navigation"><div class="footer-2026__menu-col" ><ul class="footer-2026__menu"><li class="footer-2026__menu-item"> 3457 <a href="/collections/shop-all" class="footer-2026__menu-link"> 3458 shop all 3459 </a> 3460 </li><li class="footer-2026__menu-item"> 3461 <a href="/collections/routines" class="footer-2026__menu-link"> 3462 bundle & save 3463 </a> 3464 </li><li class="footer-2026__menu-item"> 3465 <a href="/pages/routine-builder" class="footer-2026__menu-link"> 3466 routine builder 3467 </a> 3468 </li><li class="footer-2026__menu-item"> 3469 <a href="https://madhippie.com/pages/mad-hippie-skincare-quiz" class="footer-2026__menu-link"> 3470 skin quiz 3471 </a> 3472 </li></ul></div><div class="footer-2026__menu-col" ><ul class="footer-2026__menu"><li class="footer-2026__menu-item"> 3473 <a href="/pages/our-skin-care-philosophy" class="footer-2026__menu-link"> 3474 skincare philosophy 3475 </a> 3476 </li><li class="footer-2026__menu-item"> 3477 <a href="/pages/about-us" class="footer-2026__menu-link"> 3478 the hippie creed 3479 </a> 3480 </li><li class="footer-2026__menu-item"> 3481 <a href="/pages/conservation-efforts" class="footer-2026__menu-link"> 3482 conservation 3483 </a> 3484 </li><li class="footer-2026__menu-item"> 3485 <a href="/pages/pact-collective" class="footer-2026__menu-link"> 3486 sustainability 3487 </a> 3488 </li></ul></div></nav></div><div class="footer-2026__bottom"><a href="/" class="footer-2026__logo-link" title="Mad Hippie"> 3489 <img 3490 src="//madhippie.com/cdn/shop/files/Mad_Hippie_Logo_-_2024_1.png?v=1711461092&width=400" 3491 srcset="//madhippie.com/cdn/shop/files/Mad_Hippie_Logo_-_2024_1.png?v=1711461092&width=200 200w, //madhippie.com/cdn/shop/files/Mad_Hippie_Logo_-_2024_1.png?v=1711461092&width=400 400w" 3492 alt="Mad Hippie logo black - text on white background" 3493 class="footer-2026__logo" 3494 loading="lazy" 3495 width="156" 3496 height="40" 3497 > 3498 </a><div class="footer-2026__copyright"><span class="footer-2026__copyright-line1">© 2026 Mad Hippie 3499</span><span class="footer-2026__copyright-line2"> 3500 <p><a href="/pages/accessibility-statement">Accessibility</a> / <a href="/pages/privacy-policy">Privacy Policy</a> / <a href="/pages/terms-of-service">Terms of Service</a></p> 3501 </span></div></div> 3502 3503 </div> 3504</footer> 3505 3506 3507</div> 3508<!-- END sections: footer-group --></footer> 3509 </div>
3509<drawer-root class="drawer--root"> 3510 <div class="drawer--overlay" aria-hidden="true"></div> 3511 3512 <div class="drawer--focus-trigger" tabindex="0"></div> 3513 3514 <div 3515 class="drawer--close" 3516 role="button" 3517 aria-label="close" 3518 tabindex="0" 3519 data-drawer-close 3520 ><svg class="icon--root icon--cross" width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 3521 <path d="M10 8.727 17.944.783l1.273 1.273L11.273 10l7.944 7.944-1.273 1.273L10 11.273l-7.944 7.944-1.273-1.273L8.727 10 .783 2.056 2.056.783 10 8.727Z" fill="#000" fill-rule="nonzero" /> 3522 </svg></div> 3523 3524 <div 3525 class="drawer--instance" 3526 data-side="top" 3527 data-focus-id="search-input" 3528 aria-expanded="false" 3529 > 3530 <div class="drawer--container" data-view="search"><link 3531 href="//madhippie.com/cdn/shop/t/190/assets/predictive-search.css?v=167321754974556843241790034617" 3532 rel="stylesheet" 3533 onload="this.loaded=true;window.trigger('theme:PredictiveSearchStyles:loaded');" 3534 >
3534<script type="module"> 3535 import '//madhippie.com/cdn/shop/t/190/assets/predictive-search.js?v=45642202801356340241790034617'; 3536 </script>
3536 3537<predictive-search-root class="search--root" data-loading="false"> 3538 <form action="/search" method="get" role="search"> 3539 <div class="search--bar-wrapper"> 3540 <div class="search--bar"> 3541 <div class="search--icon"><svg class="icon--root icon--search" width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 3542 <path d="m14.37 12.86 5.636 5.637-1.414 1.414-5.633-5.632a7.627 7.627 0 0 1-4.688 1.604c-4.256 0-7.707-3.483-7.707-7.78 0-4.297 3.45-7.78 7.707-7.78s7.707 3.483 7.707 7.78c0 1.792-.6 3.442-1.608 4.758ZM8.27 14.084c3.259 0 5.907-2.673 5.907-5.98 0-3.306-2.648-5.98-5.907-5.98-3.258 0-5.907 2.674-5.907 5.98 0 3.307 2.649 5.98 5.907 5.98Z" fill="#000" fill-rule="nonzero" /> 3543 </svg><svg class="icon--root icon--spinner"> 3544 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#loading-spinner" /> 3545 </svg></div> 3546 3547 <label for="search-input" data-item="hidden-text">Search here...</label> 3548 <input 3549 id="search-input" 3550 class="search--textbox" 3551 type="search" 3552 name="q" 3553 value="" 3554 placeholder="Search here..." 3555 data-item="paragraph" 3556 role="combobox" 3557 aria-owns="predictive-search-results-list" 3558 aria-controls="predictive-search-results-list" 3559 aria-autocomplete="list" 3560 autocorrect="off" 3561 autocomplete="off" 3562 autocapitalize="off" 3563 spellcheck="false" 3564 > 3565 3566 <div class="search--clear" tabindex="0" aria-label="clear" style="display:none;"><svg class="icon--root icon--x-mark" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 3567 <path d="M9.997 0c5.518 0 9.998 4.48 9.998 9.997 0 5.518-4.48 9.998-9.998 9.998C4.48 19.995 0 15.515 0 9.997 0 4.48 4.48 0 9.997 0Zm0 8.933L7.276 6.211a.749.749 0 1 0-1.062 1.061l2.722 2.722-2.728 2.728a.75.75 0 1 0 1.061 1.062l2.728-2.728 2.729 2.728a.75.75 0 0 0 1.06-1.062l-2.727-2.728 2.717-2.717a.75.75 0 0 0-.531-1.281.746.746 0 0 0-.531.22L9.997 8.933Z" fill="#222" /> 3568 </svg></div> 3569 </div> 3570 3571 <div class="search--cancel" data-item="block-link" tabindex="0" data-drawer-close> 3572 <div>cancel</div> 3573 </div> 3574 </div> 3575 3576 <div 3577 class="search--results" 3578 id="predictive-search-results-list" 3579 3580 ><div class="predictive-search--products"><div class="predictive-search--heading" data-item="block-heading">Popular products</div><div 3581 class="predictive-search--product-grid" 3582 data-container="panel" 3583 data-columns="4" 3584 data-mobile-columns="2" 3585 ><div 3586 class="product--root" 3587 data-product-item 3588 data-product-view="grid" 3589 data-text-alignment="center" 3590 3591 data-hover-image 3592 3593 data-container="block" 3594 3595 3596><a href="/products/wrinkle-relaxing-eye-treatment" aria-label="Wrinkle Relaxing Eye Treatment"> 3597 <div class="product--image-wrapper coll-bundle__product--image-wrapper"> 3598 <div class="product--image" data-item="image"><picture 3599 class="image--root coll--bundle-image--root" 3600 data-parallax="" 3601 data-darken="" 3602 data-darken-mobile="" 3603 style="--aspect-ratio:0.8056;--mobile-aspect-ratio:0.8056;--max-width:100%;--object-position:;--mobile-object-position:;" 3604><img 3605 class="coll--bundle-slider-image" 3606 src="//madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1856" 3607 srcset="//madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=200 200w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=300 300w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=400 400w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=500 500w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=600 600w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=700 700w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=800 800w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1000 1000w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1200 1200w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1500 1500w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1800 1800w, //madhippie.com/cdn/shop/files/out-v1.jpg?v=1785436994&width=1856 1856w" 3608 alt="" 3609 height="2304" 3610 width="1856" 3611 onload="this.classList.add('loaded');" 3612 sizes="(max-width: 767px) 50vw, 25vw" 3613 loading="lazy" 3614 3615 > 3616</picture></div><div class="product--hover-image"><picture
3617 class="image--root coll--bundle-image--root" 3618 data-parallax="" 3619 data-darken="" 3620 data-darken-mobile="" 3621 style="--aspect-ratio:1.0;--mobile-aspect-ratio:1.0;--max-width:100%;--object-position:;--mobile-object-position:;" 3622><img 3623 class="coll--bundle-slider-image" 3624 src="//madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=2048" 3625 srcset="//madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=200 200w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=300 300w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=400 400w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=500 500w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=600 600w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=700 700w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=800 800w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=1000 1000w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=1200 1200w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=1500 1500w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=1800 1800w, //madhippie.com/cdn/shop/files/MH_RetailSlides_Neuropeptide_2.jpg?v=1785614354&width=2048 2048w" 3626 alt="" 3627 height="2048" 3628 width="2048" 3629 onload="this.classList.add('loaded');" 3630 sizes="(max-width: 767px) 50vw, 25vw" 3631 loading="lazy" 3632 3633 > 3634</picture></div><product-quick-add 3635 class="product--quick-add" 3636 tabindex="0" 3637 role="button" 3638 aria-label="Quick add Wrinkle Relaxing Eye Treatment to cart" 3639 data-handle="wrinkle-relaxing-eye-treatment" 3640 aria-haspopup="menu" 3641 data-loading="false" 3642 data-id="58188014846112"data-form="false" 3643 data-management="shopify" 3644 data-policy="deny" 3645 data-quantity="19634"> 3646 <div class="product--quick-add--icon"><svg class="icon--root icon--plus" width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> 3647 <path d="M10 5.714H5.714V10H4.286V5.714H0V4.286h4.286V0h1.428v4.286H10z" fill="#000" fill-rule="nonzero" /> 3648 </svg></div> 3649 3650 <div class="product--quick-add--spinner"><svg class="icon--root icon--spinner"> 3651 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#loading-spinner" /> 3652 </svg></div> 3653 </product-quick-add></div> 3654 3655 <div class="product--details-container"><div class="product--details"><div class="product--details-wrapper"><p class="product--title" data-item="paragraph">Wrinkle Relaxing Eye Treatment</p><div class="product--rating"><div 3656 class="product-rating--root" 3657 role="img" 3658 aria-label="4.82 out of 5.0 stars" 3659 style="--rating:4;--rating-max:5.0;--rating-decimal:0.82;" 3660 > 3661 <div class="product-rating--stars coll-bundle-product-rating-star"></div> 3662 <span class="product-rating--count" data-item="accent-text" aria-label="total reviews">38</span> 3663 </div></div></div><div class="product--price-container"> 3664 3665 <div class="product--price-wrapper"><span class="product--price money" data-item="accent-text">$34.99</span> 3666 </div> 3667 3668 3669 <div class="product--unit-price-container" data-item="small-text"></div> 3670 </div></div></div> 3671 3672 </a> 3673</div><div 3674 class="product--root" 3675 data-product-item 3676 data-product-view="grid" 3677 data-text-alignment="center" 3678 3679 data-hover-image 3680 3681 data-container="block" 3682 3683 3684><a href="/products/hydrating-nutrient-mist" aria-label="Vitamin C Toning Mist"> 3685 <div class="product--image-wrapper coll-bundle__product--image-wrapper"> 3686 <div class="product--image" data-item="image"><picture 3687 class="image--root coll--bundle-image--root" 3688 data-parallax="" 3689 data-darken="" 3690 data-darken-mobile="" 3691 style="--aspect-ratio:0.8003;--mobile-aspect-ratio:0.8003;--max-width:100%;--object-position:;--mobile-object-position:;" 3692><img 3693 class="coll--bundle-slider-image" 3694 src="//madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=2048" 3695 srcset="//madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=200 200w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=300 300w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=400 400w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=500 500w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=600 600w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=700 700w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=800 800w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=1000 1000w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=1200 1200w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=1500 1500w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=1800 1800w, //madhippie.com/cdn/shop/files/MH2024_VitaminCToningMist_Pastel.jpg?v=1730744731&width=2048 2048w"
3696 alt="Vitamin C Toning Mist Bottle on Peach Background" 3697 height="2559" 3698 width="2048" 3699 onload="this.classList.add('loaded');" 3700 sizes="(max-width: 767px) 50vw, 25vw" 3701 loading="lazy" 3702 3703 > 3704</picture></div><div class="product--hover-image"><picture 3705 class="image--root coll--bundle-image--root" 3706 data-parallax="" 3707 data-darken="" 3708 data-darken-mobile="" 3709 style="--aspect-ratio:0.7997;--mobile-aspect-ratio:0.7997;--max-width:100%;--object-position:;--mobile-object-position:;" 3710><img 3711 class="coll--bundle-slider-image" 3712 src="//madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=3649" 3713 srcset="//madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=200 200w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=300 300w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=400 400w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=500 500w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=600 600w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=700 700w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=800 800w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=1000 1000w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=1200 1200w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=1500 1500w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=1800 1800w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=2100 2100w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=2400 2400w, //madhippie.com/cdn/shop/files/VitaminCToningMist_Slide_02.jpg?v=1702993031&width=3000 3000w" 3714 alt="Vitamin C Toning Mist + two boxes in front of stone slabs, with grey background" 3715 height="4563" 3716 width="3649" 3717 onload="this.classList.add('loaded');" 3718 sizes="(max-width: 767px) 50vw, 25vw" 3719 loading="lazy" 3720 3721 > 3722</picture></div><product-quick-add 3723 class="product--quick-add" 3724 tabindex="0" 3725 role="button" 3726 aria-label="Quick add Vitamin C Toning Mist to cart" 3727 data-handle="hydrating-nutrient-mist" 3728 aria-haspopup="menu" 3729 data-loading="false" 3730 data-id="27896613521"data-form="false" 3731 data-management="shopify" 3732 data-policy="deny" 3733 data-quantity="38568"> 3734 <div class="product--quick-add--icon"><svg class="icon--root icon--plus" width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> 3735 <path d="M10 5.714H5.714V10H4.286V5.714H0V4.286h4.286V0h1.428v4.286H10z" fill="#000" fill-rule="nonzero" /> 3736 </svg></div> 3737 3738 <div class="product--quick-add--spinner"><svg class="icon--root icon--spinner"> 3739 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#loading-spinner" /> 3740 </svg></div> 3741 </product-quick-add></div> 3742 3743 <div class="product--details-container"><div class="product--details"><div class="product--details-wrapper"><p class="product--title" data-item="paragraph">Vitamin C Toning Mist</p><div class="product--rating"><div 3744 class="product-rating--root" 3745 role="img" 3746 aria-label="4.82 out of 5.0 stars" 3747 style="--rating:4;--rating-max:5.0;--rating-decimal:0.82;" 3748 > 3749 <div class="product-rating--stars coll-bundle-product-rating-star"></div> 3750 <span class="product-rating--count" data-item="accent-text" aria-label="total reviews">95</span> 3751 </div></div></div><div class="product--price-container"> 3752 3753 <div class="product--price-wrapper"><span class="product--price money" data-item="accent-text">$19.99</span> 3754 </div> 3755 3756 3757 <div class="product--unit-price-container" data-item="small-text"></div> 3758 </div></div></div> 3759 3760 </a> 3761</div><div 3762 class="product--root" 3763 data-product-item 3764 data-product-view="grid" 3765 data-text-alignment="center" 3766 3767 data-hover-image 3768 3769 data-container="block" 3770 3771 3772><a href="/products/vitamin-c-serum-deluxe-sample-size" aria-label="Vitamin C Serum (mini)"> 3773 <div class="product--image-wrapper coll-bundle__product--image-wrapper"> 3774 <div class="product--image" data-item="image"><picture
3775 class="image--root coll--bundle-image--root" 3776 data-parallax="" 3777 data-darken="" 3778 data-darken-mobile="" 3779 style="--aspect-ratio:0.7995;--mobile-aspect-ratio:0.7995;--max-width:100%;--object-position:;--mobile-object-position:;" 3780><img 3781 class="coll--bundle-slider-image" 3782 src="//madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1842" 3783 srcset="//madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=200 200w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=300 300w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=400 400w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=500 500w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=600 600w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=700 700w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=800 800w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1000 1000w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1200 1200w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1500 1500w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1800 1800w, //madhippie.com/cdn/shop/files/MH2024_RetailSlides_VitaminCSerum_Deluxe_01_Web.png?v=1781537083&width=1842 1842w" 3784 alt="" 3785 height="2304" 3786 width="1842" 3787 onload="this.classList.add('loaded');" 3788 sizes="(max-width: 767px) 50vw, 25vw" 3789 loading="lazy" 3790 3791 > 3792</picture></div><div class="product--hover-image"><picture 3793 class="image--root coll--bundle-image--root" 3794 data-parallax="" 3795 data-darken="" 3796 data-darken-mobile="" 3797 style="--aspect-ratio:0.8002;--mobile-aspect-ratio:0.8002;--max-width:100%;--object-position:;--mobile-object-position:;" 3798><img 3799 class="coll--bundle-slider-image" 3800 src="//madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1882" 3801 srcset="//madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=200 200w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=300 300w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=400 400w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=500 500w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=600 600w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=700 700w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=800 800w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1000 1000w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1200 1200w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1500 1500w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1800 1800w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1882 1882w" 3802 alt="Clinically Proven Skincare" 3803 height="2352" 3804 width="1882" 3805 onload="this.classList.add('loaded');" 3806 sizes="(max-width: 767px) 50vw, 25vw" 3807 loading="lazy" 3808 3809 > 3810</picture></div><product-quick-add 3811 class="product--quick-add" 3812 tabindex="0" 3813 role="button" 3814 aria-label="Quick add Vitamin C Serum (mini) to cart" 3815 data-handle="vitamin-c-serum-deluxe-sample-size" 3816 aria-haspopup="menu" 3817 data-loading="false" 3818 data-id="57903392850080"data-form="false" 3819 data-management="shopify" 3820 data-policy="deny" 3821 data-quantity="30057"> 3822 <div class="product--quick-add--icon"><svg class="icon--root icon--plus" width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> 3823 <path d="M10 5.714H5.714V10H4.286V5.714H0V4.286h4.286V0h1.428v4.286H10z" fill="#000" fill-rule="nonzero" /> 3824 </svg></div> 3825 3826 <div class="product--quick-add--spinner"><svg class="icon--root icon--spinner"> 3827 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#loading-spinner" /> 3828 </svg></div> 3829 </product-quick-add></div> 3830 3831 <div class="product--details-container"><div class="product--details"><div class="product--details-wrapper"><p class="product--title" data-item="paragraph">Vitamin C Serum (mini)</p><div class="product--rating"><div 3832 class="product-rating--root" 3833 role="img" 3834 aria-label="5.0 out of 5.0 stars" 3835 style="--rating:5;--rating-max:5.0;--rating-decimal:0.0;" 3836 > 3837 <div class="product-rating--stars coll-bundle-product-rating-star"></div> 3838 <span class="product-rating--count" data-item="accent-text" aria-label="total reviews">1</span> 3839 </div></div></div><div class="product--price-container"> 3840 3841 <div class="product--price-wrapper"><span class="product--price money" data-item="accent-text">$17.99</span> 3842 </div> 3843 3844 3845 <div class="product--unit-price-container" data-item="small-text"></div> 3846 </div></div></div> 3847 3848 </a> 3849</div><div 3850 class="product--root" 3851 data-product-item 3852 data-product-view="grid" 3853 data-text-alignment="center" 3854 3855 data-hover-image 3856 3857 data-container="block" 3858 3859 3860><a href="/products/vitamin-c-serum" aria-label="Vitamin C Serum"> 3861 <div class="product--image-wrapper coll-bundle__product--image-wrapper"> 3862 <div class="product--image" data-item="image"><picture
3863 class="image--root coll--bundle-image--root" 3864 data-parallax="" 3865 data-darken="" 3866 data-darken-mobile="" 3867 style="--aspect-ratio:0.8003;--mobile-aspect-ratio:0.8003;--max-width:100%;--object-position:;--mobile-object-position:;" 3868><img 3869 class="coll--bundle-slider-image" 3870 src="//madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1868" 3871 srcset="//madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=200 200w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=300 300w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=400 400w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=500 500w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=600 600w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=700 700w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=800 800w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1000 1000w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1200 1200w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1500 1500w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1800 1800w, //madhippie.com/cdn/shop/files/MH2026-DTCPrimary-VitaminCSerum_Shopify_923cb972-84b8-4716-99a4-ed2ca23fb066.jpg?v=1767935440&width=1868 1868w" 3872 alt="" 3873 height="2334" 3874 width="1868" 3875 onload="this.classList.add('loaded');" 3876 sizes="(max-width: 767px) 50vw, 25vw" 3877 loading="lazy" 3878 3879 > 3880</picture></div><div class="product--hover-image"><picture 3881 class="image--root coll--bundle-image--root" 3882 data-parallax="" 3883 data-darken="" 3884 data-darken-mobile="" 3885 style="--aspect-ratio:0.8002;--mobile-aspect-ratio:0.8002;--max-width:100%;--object-position:;--mobile-object-position:;" 3886><img 3887 class="coll--bundle-slider-image" 3888 src="//madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1882" 3889 srcset="//madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=200 200w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=300 300w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=400 400w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=500 500w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=600 600w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=700 700w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=800 800w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1000 1000w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1200 1200w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1500 1500w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1800 1800w, //madhippie.com/cdn/shop/files/MH_Shopify_VitC_02.jpg?v=1767935440&width=1882 1882w" 3890 alt="Clinically Proven Skincare" 3891 height="2352" 3892 width="1882" 3893 onload="this.classList.add('loaded');" 3894 sizes="(max-width: 767px) 50vw, 25vw" 3895 loading="lazy" 3896 3897 > 3898</picture></div><product-quick-add 3899 class="product--quick-add" 3900 tabindex="0" 3901 role="button" 3902 aria-label="Quick add Vitamin C Serum to cart" 3903 data-handle="vitamin-c-serum" 3904 aria-haspopup="menu" 3905 data-loading="false" 3906 data-id="25481970120"data-form="false" 3907 data-management="shopify" 3908 data-policy="deny" 3909 data-quantity="52160"> 3910 <div class="product--quick-add--icon">
3910<svg class="icon--root icon--plus" width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> 3911 <path d="M10 5.714H5.714V10H4.286V5.714H0V4.286h4.286V0h1.428v4.286H10z" fill="#000" fill-rule="nonzero" /> 3912 </svg></div> 3913 3914 <div class="product--quick-add--spinner"><svg class="icon--root icon--spinner"> 3915 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#loading-spinner" /> 3916 </svg></div> 3917 </product-quick-add></div> 3918 3919 <div class="product--details-container"><div class="product--details"><div class="product--details-wrapper"><p class="product--title" data-item="paragraph">Vitamin C Serum</p><div class="product--rating"><div 3920 class="product-rating--root" 3921 role="img" 3922 aria-label="4.86 out of 5.0 stars" 3923 style="--rating:4;--rating-max:5.0;--rating-decimal:0.86;" 3924 > 3925 <div class="product-rating--stars coll-bundle-product-rating-star"></div> 3926 <span class="product-rating--count" data-item="accent-text" aria-label="total reviews">477</span> 3927 </div></div></div><div class="product--price-container"> 3928 3929 <div class="product--price-wrapper"><span class="product--price money" data-item="accent-text">$33.99</span> 3930 </div> 3931 3932 3933 <div class="product--unit-price-container" data-item="small-text"></div> 3934 </div></div></div> 3935 3936 </a> 3937</div></div></div></div> 3938 </form> 3939</predictive-search-root></div> 3940 </div> 3941 3942 <div 3943 class="drawer--instance" 3944 data-side="right" 3945 aria-expanded="false" 3946 ><div class="drawer--container" data-view="product-form"></div><div class="drawer--container" data-view="cart-drawer"><cart-drawer-root 3947 class="cdv2" 3948 data-view="drawer" 3949 data-has-items="false" 3950 data-cart-units="0" 3951 data-builder-group="" 3952 data-tier-rate="0" 3953> 3954 <div class="cdv2__status visually-hidden" aria-live="polite" aria-atomic="true"></div><div class="cdv2__head"> 3955 <div class="cdv2__title-row"> 3956 <h3 class="cdv2__title">Cart</h3></div></div><div class="cdv2__scroll"><div class="cdv2__empty"> 3957 <p class="cdv2__empty-big">Nothing in here yet.</p> 3958 <p class="cdv2__empty-sub">A routine builds itself faster than you’d think.</p> 3959 </div><div class="cdv2__lines"></div></div><div class="cdv2__foot"><div class="cdv2__totals" aria-live="polite" aria-atomic="true"><div class="cdv2__row is-total"><span>Total</span><strong class="cart--total--price">$0.00</strong></div> 3960 <p class="cdv2__tax-note">Taxes and shipping calculated at checkout</p> 3961 </div> 3962 3963 <form action="/cart" method="post" novalidate> 3964 <button type="submit" name="checkout" class="cdv2__checkout" disabled>Checkout</button> 3965 </form> 3966 </div> 3967 3968
3968<script type="application/json" data-cdv2-config> 3969 { 3970 "engaged": false, 3971 "builderGroupId": "", 3972 "tierLabel": "Routine discount", 3973 "tiersEnabled": true, 3974 "cartUnits": 0, 3975 "builderUnits": 0, 3976 "looseUnits": 0, 3977 "tierRate": 0 3978 } 3979 </script>
3979 3980</cart-drawer-root> 3981
3982<script src="//madhippie.com/cdn/shop/t/190/assets/cart-drawer-v2.js?v=175378701260237562321790087280" defer></script>
3982 3983 3984<style data-shopify> 3985/* CART DRAWER V2 â site design system (white/#333/#666, #e5e5e5 borders, theme 3986 accent, green = discounts, 6px/4px radii, site fonts). !important throughout 3987 because theme globals bleed into the drawer (same reason the old drawer did). */ 3988cart-drawer-root.cdv2{ 3989 --drawer-bg:#fff; --drawer-text:#333; --drawer-text-light:#666; --drawer-border:#e5e5e5; 3990 --drawer-accent:#f9815f; --drawer-accent-hover:#f2a18a; 3991 --drawer-success:#27ae60; --drawer-error:#dc3545; 3992 --drawer-radius:6px; --drawer-radius-sm:4px; 3993 --drawer-spacing:1rem; --drawer-spacing-sm:0.75rem; 3994 display:flex !important; flex-direction:column !important; 3995 height:100% !important; height:100dvh !important; overflow:hidden !important; 3996 background:var(--drawer-bg) !important; color:var(--drawer-text) !important; 3997 width:100% !important; margin:0 !important; padding:0 !important; 3998 font-family:'PP Mori', -apple-system, 'Segoe UI', Roboto, sans-serif !important; 3999 font-size:0.875rem !important; line-height:1.4 !important; 4000} 4001cart-drawer-root.cdv2 button, cart-drawer-root.cdv2 input, cart-drawer-root.cdv2 textarea, cart-drawer-root.cdv2 summary{font-family:inherit !important} 4002cart-drawer-root.cdv2 s{color:#9a978f !important; font-weight:400 !important; font-size:0.75rem !important; margin-right:6px !important; text-decoration:line-through !important} 4003 4004/* header */ 4005cart-drawer-root.cdv2 .cdv2__head{flex-shrink:0 !important; padding:var(--drawer-spacing) var(--drawer-spacing) 0.5rem !important} 4006cart-drawer-root.cdv2 .cdv2__title-row{display:flex !important;
4006 align-items:baseline !important; gap:0.5rem !important} 4007cart-drawer-root.cdv2 .cdv2__title{margin:0 !important; font-size:1.25rem !important; font-weight:600 !important} 4008cart-drawer-root.cdv2 .cdv2__count{color:var(--drawer-text-light) !important; font-size:0.75rem !important; font-weight:400 !important} 4009 4010/* scroll body */ 4011cart-drawer-root.cdv2 .cdv2__scroll{flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; overflow-x:hidden !important; -webkit-overflow-scrolling:touch !important; overscroll-behavior:contain !important; padding:0 var(--drawer-spacing) !important} 4012cart-drawer-root.cdv2 .cdv2__empty{display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; padding:3rem var(--drawer-spacing) !important; text-align:center !important} 4013cart-drawer-root.cdv2 .cdv2__empty-big{font-size:0.9375rem !important; font-weight:600 !important; margin:0 0 0.25rem !important} 4014cart-drawer-root.cdv2 .cdv2__empty-sub{color:var(--drawer-text-light) !important; font-size:0.8125rem !important; margin:0 !important} 4015 4016/* lines â 64px thumb, title + price, stepper + Remove. No copy, no per-line 4017 discount text (2026-09-22): the strikethrough is the only per-line signal. */ 4018cart-drawer-root.cdv2 .cdv2__line{display:flex !important; gap:0.75rem !important; padding:0.75rem 0 !important; border-bottom:1px solid var(--drawer-border) !important; position:relative !important; align-items:flex-start !important} 4019cart-drawer-root.cdv2 .cdv2__line:last-child{border-bottom:none !important} 4020cart-drawer-root.cdv2 .cdv2__line-img{flex-shrink:0 !important; width:64px !important; height:64px !important; border-radius:var(--drawer-radius) !important; overflow:hidden !important; background:#f5f5f5 !important; display:block !important} 4021cart-drawer-root.cdv2 .cdv2__line-img img{width:100% !important; height:100% !important; object-fit:cover !important; display:block !important} 4022cart-drawer-root.cdv2 .cdv2__line-info{flex:1 !important; min-width:0 !important; display:flex !important; flex-direction:column !important; gap:0.375rem !important} 4023cart-drawer-root.cdv2 .cdv2__line-top{display:flex !important; justify-content:space-between !important;
4023 align-items:baseline !important; gap:0.625rem !important} 4024cart-drawer-root.cdv2 .cdv2__line-title{font-weight:600 !important; font-size:0.9375rem !important; color:var(--drawer-text) !important; text-decoration:none !important; line-height:1.25 !important} 4025cart-drawer-root.cdv2 .cdv2__line-title:hover{text-decoration:underline !important} 4026cart-drawer-root.cdv2 .cdv2__line-price{flex-shrink:0 !important; white-space:nowrap !important; display:flex !important; align-items:baseline !important; gap:0.375rem !important; font-variant-numeric:tabular-nums !important} 4027cart-drawer-root.cdv2 .cdv2__line-price strong{font-weight:600 !important; font-size:0.9375rem !important} 4028cart-drawer-root.cdv2 .cdv2__line-variant{color:var(--drawer-text-light) !important; font-size:0.75rem !important; margin-top:-0.25rem !important} 4029cart-drawer-root.cdv2 .cdv2__line-ctl{display:flex !important; align-items:center !important; justify-content:space-between !important; margin-top:0.125rem !important} 4030cart-drawer-root.cdv2 .cdv2__qty{display:inline-flex !important; align-items:center !important; border:1px solid var(--drawer-border) !important; border-radius:var(--drawer-radius) !important; height:32px !important; background:#fff !important} 4031cart-drawer-root.cdv2 .cdv2__qty-btn{width:36px !important; height:100% !important; border:0 !important; background:none !important; color:var(--drawer-text) !important; font-size:1rem !important; cursor:pointer !important; line-height:1 !important; padding:0 !important; margin:0 !important} 4032cart-drawer-root.cdv2 .cdv2__qty-val{min-width:30px !important; text-align:center !important; font-size:0.8125rem !important; border-left:1px solid var(--drawer-border) !important; border-right:1px solid var(--drawer-border) !important; line-height:30px !important; height:100% !important; font-variant-numeric:tabular-nums !important} 4033cart-drawer-root.cdv2 .cdv2__rm{border:0 !important; background:none !important; color:var(--drawer-text-light) !important; font-size:0.75rem !important; cursor:pointer !important; line-height:1 !important; padding:0.625rem 0 0.625rem 0.75rem !important; margin:0 !important; text-decoration:underline !important; text-underline-offset:2px !important; transition:color 0.2s !important; position:static !important; width:auto !important; height:auto !important; opacity:1 !important} 4034cart-drawer-root.cdv2 .cdv2__rm:hover{color:var(--drawer-text) !important} 4035cart-drawer-root.cdv2 .cdv2__rm--bundle{position:absolute !important; top:0.25rem !important; right:0.25rem !important; width:36px !important; height:36px !important; padding:0 !important; font-size:1.125rem !important; text-decoration:none !important; display:flex !important; align-items:center !important; justify-content:center !important} 4036 4037/* legacy bundle card */ 4038cart-drawer-root.cdv2 .cdv2__bundle{background:linear-gradient(135deg, rgba(148,163,184,0.08) 0%, rgba(148,163,184,0.14) 100%) !important; border:1px solid rgba(148,163,184,0.25) !important; border-radius:var(--drawer-radius) !important; padding:0.5rem 0.625rem !important; margin:0.375rem 0 !important} 4039cart-drawer-root.cdv2 .cdv2__bundle-thumbs{display:flex !important; flex-wrap:wrap !important; gap:6px !important; width:90px !important; flex-shrink:0 !important; align-content:flex-start !important} 4040cart-drawer-root.cdv2 .cdv2__bundle-thumb{width:40px !important; height:40px !important; border-radius:4px !important; overflow:hidden !important; background:#fff !important; border:1px solid var(--drawer-border) !important} 4041cart-drawer-root.cdv2 .cdv2__bundle-thumb img{width:100% !important; height:100% !important; object-fit:cover !important; display:block !important} 4042cart-drawer-root.cdv2 .cdv2__bundle .cdv2__line-top{flex-direction:column !important; align-items:flex-start !important; gap:0.25rem !important} 4043cart-drawer-root.cdv2 .cdv2__bundle-label{font-weight:600 !important; font-size:0.875rem !important; color:#040404 !important} 4044cart-drawer-root.cdv2 .cdv2__bundle-label em{font-style:normal !important; color:var(--drawer-text-light) !important; font-weight:400 !important; font-size:0.75rem !important; margin-left:5px !important} 4045cart-drawer-root.cdv2 .cdv2__badge{display:inline-block !important; margin-top:2px !important; font-size:0.6875rem !important; font-weight:500 !important; color:var(--drawer-success) !important; background:rgba(255,255,255,0.55) !important; padding:1px 4px !important; border-radius:3px !important} 4046 4047/* routine module â quiet, cross-sell scale */ 4048cart-drawer-root.cdv2 .cdv2__routine{padding:12px 14px 8px !important; border:1px solid var(--drawer-border) !important; border-radius:10px !important; background:#fafaf8 !important; margin:0.75rem 0 0.25rem !important} 4049cart-drawer-root.cdv2 .cdv2__kicker{display:flex !important; align-items:center !important; justify-content:space-between !important; gap:8px !important; font-size:13px !important; color:var(--drawer-text) !important; text-transform:none !important; margin:0 !important; font-weight:600 !important; letter-spacing:0 !important; line-height:1.2 !important} 4050cart-drawer-root.cdv2 .cdv2__kicker-txt{min-width:0 !important} 4051cart-drawer-root.cdv2 .cdv2__status{flex-shrink:0 !important; font-size:11px !important; font-weight:600 !important; color:#6d6d6d !important; background:#f0efeb !important; border-radius:999px !important; padding:3px 9px !important; white-space:nowrap !important; text-transform:none !important; letter-spacing:0.01em !important} 4052cart-drawer-root.cdv2 .cdv2__status.is-applied{color:var(--drawer-success) !important; background:rgba(39,174,96,0.1) !important} 4053cart-drawer-root.cdv2 .cdv2__strip{display:flex !important; gap:5px !important; justify-content:space-between !important; margin:10px 0 4px !important; padding:0 !important; border:0 !important} 4054cart-drawer-root.cdv2 .cdv2__slot{flex:1 !important; text-align:center !important; min-width:0 !important} 4055cart-drawer-root.cdv2 .cdv2__slot-box{display:flex !important; align-items:center !important; justify-content:center !important; height:20px !important; border-radius:10px !important; border:1px dashed #ddd !important; color:#ccc !important; font-size:0.625rem !important; background:#fff !important; position:static !important} 4056cart-drawer-root.cdv2 .cdv2__slot.is-filled .cdv2__slot-box{border:1px solid rgba(39,174,96,0.3) !important; background:rgba(39,174,96,0.07) !important; color:var(--drawer-success) !important} 4057cart-drawer-root.cdv2 .cdv2__slot-lb{display:block !important; margin-top:3px !important; font-size:0.5rem !important; letter-spacing:0.4px !important; text-transform:uppercase !important; color:#6d6d6d !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; font-weight:400 !important} 4058cart-drawer-root.cdv2 .cdv2__exfol-note{margin:8px 0 0 !important; font-size:0.6875rem !important; color:var(--drawer-text-light) !important; background:#fff !important; border:1px solid var(--drawer-border) !important; border-radius:var(--drawer-radius-sm) !important; padding:4px 8px !important}
4059cart-drawer-root.cdv2 .cdv2__complete{margin:8px 0 4px !important; font-size:0.75rem !important; color:var(--drawer-success) !important; font-weight:500 !important} 4060cart-drawer-root.cdv2 .cdv2__sug{display:flex !important; align-items:flex-start !important; gap:10px !important; padding:8px 0 !important; margin:0 !important; border-top:1px dashed #e3e1db !important} 4061cart-drawer-root.cdv2 .cdv2__sug-img{flex-shrink:0 !important; width:48px !important; height:48px !important; border-radius:var(--drawer-radius-sm) !important; overflow:hidden !important; background:#fff !important; border:1px solid #eee !important} 4062cart-drawer-root.cdv2 .cdv2__sug-img img{width:100% !important; height:100% !important; object-fit:cover !important; display:block !important} 4063cart-drawer-root.cdv2 .cdv2__sug-info{flex:1 !important; min-width:0 !important; display:flex !important; flex-direction:column !important; gap:2px !important; padding-top:1px !important} 4064cart-drawer-root.cdv2 .cdv2__sug-top{display:flex !important; justify-content:flex-start !important;
4064 align-items:baseline !important; gap:8px !important} 4065cart-drawer-root.cdv2 .cdv2__sug-name{font-size:0.8125rem !important; font-weight:500 !important; color:var(--drawer-text) !important; line-height:1.2 !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important} 4066cart-drawer-root.cdv2 .cdv2__sug-price{font-size:0.6875rem !important; color:var(--drawer-text-light) !important; white-space:nowrap !important; font-weight:400 !important} 4067cart-drawer-root.cdv2 .cdv2__sug-why{margin:0 !important; font-size:0.6875rem !important; color:#6d6d6d !important; line-height:1.35 !important} 4068cart-drawer-root.cdv2 .cdv2__sug-why em{font-style:normal !important; color:var(--drawer-success) !important; font-weight:600 !important} 4069cart-drawer-root.cdv2 .cdv2__sug-swap{border:0 !important; background:none !important; padding:0 !important; margin:0 !important; font-size:0.6875rem !important; color:#6d6d6d !important; cursor:pointer !important; text-decoration:underline !important; text-decoration-style:dotted !important; text-underline-offset:2px !important; text-align:left !important; align-self:flex-start !important; font-weight:400 !important} 4070cart-drawer-root.cdv2 .cdv2__sug-swap:hover{color:var(--drawer-text) !important} 4071cart-drawer-root.cdv2 .cdv2__sug-add{flex-shrink:0 !important; background:var(--drawer-accent) !important; border:1px solid var(--drawer-accent) !important; border-radius:var(--drawer-radius) !important; padding:8px 14px !important; font-size:0.75rem !important; color:#fff !important; cursor:pointer !important; transition:background 0.2s, border-color 0.2s, opacity 0.2s !important; line-height:1 !important; font-weight:600 !important; white-space:nowrap !important} 4072cart-drawer-root.cdv2 .cdv2__sug-add:hover{background:var(--drawer-accent-hover) !important; border-color:var(--drawer-accent-hover) !important} 4073cart-drawer-root.cdv2 .cdv2__sug-add:disabled{opacity:0.5 !important; cursor:default !important} 4074cart-drawer-root.cdv2 .cdv2__sug--extra{margin-top:0 !important} 4075cart-drawer-root.cdv2 .cdv2__sug > .cdv2__sug-add{align-self:flex-start !important; margin-top:9px !important} 4076cart-drawer-root.cdv2 .cdv2__builder-link-row{margin:8px 0 0 !important; text-align:right !important} 4077cart-drawer-root.cdv2 .cdv2__builder-link{font-size:0.6875rem !important; color:#6d6d6d !important; text-decoration:underline !important; text-decoration-style:dotted !important; text-underline-offset:2px !important} 4078cart-drawer-root.cdv2 .cdv2__builder-link:hover{color:var(--drawer-text) !important} 4079cart-drawer-root.cdv2 .cdv2__adopt{display:block !important; width:100% !important; margin:10px 0 2px !important; padding:10px 12px !important; border:1px solid rgba(39,174,96,0.35) !important; background:rgba(39,174,96,0.1) !important; color:#17603a !important; border-radius:8px !important; font-size:13px !important; font-weight:400 !important; line-height:1.35 !important; text-align:left !important; cursor:pointer !important; text-transform:none !important; letter-spacing:0 !important} 4080cart-drawer-root.cdv2 .cdv2__adopt strong{font-weight:600 !important} 4081cart-drawer-root.cdv2 .cdv2__adopt:hover{background:rgba(39,174,96,0.16) !important} 4082 4083/* free shipping */ 4084cart-drawer-root.cdv2 .cdv2__ship{margin:0.625rem 0 0 !important; font-size:0.75rem !important} 4085cart-drawer-root.cdv2 .cdv2__ship-row{display:flex !important; justify-content:space-between !important; color:var(--drawer-text-light) !important} 4086cart-drawer-root.cdv2 .cdv2__ship-row span{font-size:0.75rem !important; color:var(--drawer-text-light) !important; font-weight:400 !important} 4087cart-drawer-root.cdv2 .cdv2__ship-val.is-done{color:var(--drawer-success) !important; font-weight:600 !important} 4088cart-drawer-root.cdv2 .cdv2__ship-bar{margin-top:6px !important; height:6px !important; border-radius:3px !important; background:#e5e5e5 !important; overflow:hidden !important} 4089cart-drawer-root.cdv2 .cdv2__ship-fill{height:100% !important; background:linear-gradient(90deg, var(--drawer-accent), var(--drawer-accent-hover)) !important; border-radius:3px !important; transform-origin:left !important; transition:transform 0.4s ease !important} 4090 4091/* footer */ 4092cart-drawer-root.cdv2 .cdv2__foot{flex-shrink:0 !important; padding:0.625rem var(--drawer-spacing) var(--drawer-spacing) !important; background:var(--drawer-bg) !important; width:100% !important; box-sizing:border-box !important; border-top:1px solid var(--drawer-border) !important} 4093cart-drawer-root.cdv2 .cdv2__discount{margin:0.75rem 0 1rem !important; padding:0 !important; border:0 !important; font-size:0.8125rem !important} 4094cart-drawer-root.cdv2 .cdv2__discount summary{cursor:pointer !important; color:var(--drawer-text-light) !important; font-weight:400 !important; font-size:0.8125rem !important; padding:0.5rem 0 !important; list-style:none !important; display:flex !important; align-items:center !important; gap:6px !important; min-height:44px !important; box-sizing:border-box !important} 4095cart-drawer-root.cdv2 .cdv2__discount summary::-webkit-details-marker{display:none !important} 4096cart-drawer-root.cdv2 .cdv2__discount summary::before{content:'' !important; width:6px !important; height:6px !important; border-right:1.5px solid currentColor !important; border-bottom:1.5px solid currentColor !important; transform:rotate(-45deg) !important; margin-right:2px !important; transition:transform 0.15s !important; flex-shrink:0 !important} 4097cart-drawer-root.cdv2 .cdv2__discount[open] summary::before{transform:rotate(45deg) !important} 4098cart-drawer-root.cdv2 .cdv2__discount-row{display:flex !important; gap:0.5rem !important; margin-top:0.125rem !important} 4099cart-drawer-root.cdv2 .cdv2__discount-input{flex:1 !important; min-width:0 !important; height:40px !important; padding:0 0.75rem !important; border:1px solid var(--drawer-border) !important; border-radius:var(--drawer-radius) !important; font-size:0.875rem !important; margin:0 !important; text-transform:none !important; background:#fff !important; color:var(--drawer-text) !important} 4100cart-drawer-root.cdv2 .cdv2__discount-input:focus-visible{outline:2px solid var(--drawer-text) !important; outline-offset:-2px !important; background:#fff !important} 4101cart-drawer-root.cdv2 .cdv2__discount-input::placeholder{color:#999 !important} 4102cart-drawer-root.cdv2 .cdv2__discount-btn{height:40px !important; padding:0 1rem !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; background:#fff !important; color:var(--drawer-text) !important; border:1px solid var(--drawer-text) !important; border-radius:var(--drawer-radius) !important; font-size:0.8125rem !important; font-weight:600 !important; text-transform:none !important; letter-spacing:0 !important; cursor:pointer !important; transition:all 0.2s !important} 4103cart-drawer-root.cdv2 .cdv2__discount-btn:hover{background:var(--drawer-text) !important; color:#fff !important} 4104cart-drawer-root.cdv2 .cdv2__discount-msg{display:none; margin-top:0.5rem !important; font-size:0.75rem !important} 4105cart-drawer-root.cdv2 .cdv2__discount-msg.is-ok{display:block !important; color:var(--drawer-success) !important} 4106cart-drawer-root.cdv2 .cdv2__discount-msg.is-err{display:block !important; color:var(--drawer-error) !important} 4107cart-drawer-root.cdv2 .cdv2__discount-applied{margin-top:0.5rem !important; display:flex !important; flex-wrap:wrap !important; gap:0.375rem !important} 4108cart-drawer-root.cdv2 .cdv2__discount-tag{display:inline-flex !important; align-items:center !important; gap:0.25rem !important; padding:0.25rem 0.375rem 0.25rem 0.625rem !important; font-size:0.75rem !important; background:#f0efeb !important; border:0 !important; border-radius:999px !important; color:var(--drawer-text) !important; font-weight:600 !important} 4109cart-drawer-root.cdv2 .cdv2__discount-tag button{border:0 !important; background:none !important; width:24px !important; height:24px !important; border-radius:50% !important; font-size:0.9375rem !important; color:var(--drawer-text-light) !important; cursor:pointer !important; line-height:1 !important; padding:0 !important; margin:0 !important} 4110cart-drawer-root.cdv2 .cdv2__discount-tag button:hover{color:var(--drawer-text) !important; background:#e4e2dc !important} 4111cart-drawer-root.cdv2 .cdv2__note{margin-bottom:var(--drawer-spacing-sm) !important; font-size:0.75rem !important} 4112cart-drawer-root.cdv2 .cdv2__note summary{cursor:pointer !important; color:var(--drawer-text-light) !important; font-weight:500 !important; font-size:0.75rem !important} 4113cart-drawer-root.cdv2 .cdv2__note-text{width:100% !important; min-height:50px !important; margin-top:0.375rem !important; padding:0.5rem !important; border:1px solid var(--drawer-border) !important; border-radius:var(--drawer-radius-sm) !important; font-size:0.8125rem !important; resize:vertical !important; font-family:inherit !important} 4114cart-drawer-root.cdv2 .cdv2__totals{margin-bottom:0.625rem !important; display:flex !important; flex-direction:column !important; gap:0.25rem !important; font-variant-numeric:tabular-nums !important} 4115cart-drawer-root.cdv2 .cdv2__row{display:flex !important; justify-content:space-between !important;
4115 align-items:baseline !important; gap:0.75rem !important; font-size:0.8125rem !important; color:var(--drawer-text-light) !important} 4116cart-drawer-root.cdv2 .cdv2__row > span{font-size:inherit !important; color:inherit !important; font-weight:inherit !important} 4117cart-drawer-root.cdv2 .cdv2__row.is-disc{color:var(--drawer-success) !important} 4118cart-drawer-root.cdv2 .cdv2__row.is-total{color:var(--drawer-text) !important; font-size:1rem !important; font-weight:600 !important; margin-top:0.125rem !important} 4119cart-drawer-root.cdv2 .cdv2__row.is-total strong{font-weight:700 !important; font-size:1.0625rem !important; color:var(--drawer-text) !important} 4120cart-drawer-root.cdv2 .cdv2__tax-note{margin:0.125rem 0 0 !important; font-size:0.6875rem !important; color:#9a978f !important} 4121cart-drawer-root.cdv2 .cdv2__checkout{width:100% !important; height:48px !important; display:flex !important; align-items:center !important; justify-content:center !important; background:var(--drawer-accent) !important; color:#fff !important; border:none !important; border-radius:8px !important; font-size:0.8125rem !important; font-weight:800 !important; text-transform:uppercase !important; letter-spacing:0.1em !important; cursor:pointer !important; transition:all 0.2s !important; padding:0 !important} 4122cart-drawer-root.cdv2 .cdv2__checkout:hover{background:var(--drawer-accent-hover) !important; transform:translateY(-1px) !important; box-shadow:0 4px 12px rgba(0,0,0,0.15) !important} 4123cart-drawer-root.cdv2 .cdv2__checkout:active{transform:translateY(0) !important} 4124cart-drawer-root.cdv2 .cdv2__checkout:disabled{opacity:0.5 !important; cursor:default !important; transform:none !important; box-shadow:none !important} 4125cart-drawer-root.cdv2 .is-busy{opacity:0.55 !important; pointer-events:none !important} 4126cart-drawer-root.cdv2 button:focus-visible, cart-drawer-root.cdv2 input:focus-visible{outline:2px solid var(--drawer-text) !important; outline-offset:-2px !important} 4127cart-drawer-root.cdv2 .visually-hidden{position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important} 4128@keyframes cdv2-pulse{0%{transform:scale(1)}45%{transform:scale(1.08)}100%{transform:scale(1)}} 4129cart-drawer-root.cdv2 .cdv2__status.pulse{display:inline-block !important; animation:cdv2-pulse 0.55s ease !important} 4130 4131/* mobile */ 4132@media screen and (max-width: 767px){ 4133 cart-drawer-root.cdv2{--drawer-spacing:0.75rem; --drawer-spacing-sm:0.375rem} 4134 cart-drawer-root.cdv2 .cdv2__line{padding:0.625rem 0 !important} 4135 cart-drawer-root.cdv2 .cdv2__line-title{font-size:0.875rem !important} 4136 cart-drawer-root.cdv2 .cdv2__line-price strong{font-size:0.875rem !important} 4137 cart-drawer-root.cdv2 .cdv2__checkout{height:46px !important} 4138 cart-drawer-root.cdv2 .cdv2__bundle{padding:0.5rem !important} 4139 cart-drawer-root.cdv2 .cdv2__bundle-thumbs{width:60px !important; gap:3px !important} 4140 cart-drawer-root.cdv2 .cdv2__bundle-thumb{width:28px !important; height:28px !important; border-radius:3px !important} 4141 cart-drawer-root.cdv2 .cdv2__bundle-label{font-size:0.75rem !important} 4142 cart-drawer-root.cdv2 .cdv2__sug-img{width:40px !important; height:40px !important} 4143 cart-drawer-root.cdv2 .cdv2__sug{gap:8px !important} 4144 cart-drawer-root.cdv2 .cdv2__sug > .cdv2__sug-add{margin-top:5px !important} 4145} 4146 4147/* safe area for notched devices */ 4148@supports (padding-bottom: env(safe-area-inset-bottom)){ 4149 cart-drawer-root.cdv2 .cdv2__foot{padding-bottom:calc(var(--drawer-spacing) + env(safe-area-inset-bottom)) !important} 4150} 4151 4152@media (prefers-reduced-motion: reduce){ 4153 cart-drawer-root.cdv2 *{transition:none !important; animation:none !important} 4154} 4155</style> 4156</div></div> 4157 4158 <div 4159 class="drawer--instance" 4160 data-side="left" 4161 aria-expanded="false" 4162 > 4163 <div 4164 class="drawer--container" 4165 data-view="y-menu" 4166 4167 ><div class="mobile-nav"> 4168 <div 4169 class="mobile-nav--header" 4170 4171 > 4172 4173 <div class="mobile-nav--search" data-item="nav-text" data-mq="small"></div> 4174 4175 4176 4177 <div class="mobile-nav--login" data-item="nav-text" data-mq="small"></div> 4178 4179 </div> 4180 4181 <div class="mobile-nav--menu"></div> 4182 <div 4183 class="mobile-nav--localization" 4184 4185 ></div> 4186</div></div> 4187 </div> 4188
4189 <div class="drawer--focus-trigger" tabindex="0"></div> 4190</drawer-root></div> 4191 4192 4193
4193<script type="text/javascript"> 4194 var _learnq = _learnq || []; 4195 if(document.getElementById("AddToCart") != null){ 4196 document.getElementById("AddToCart").addEventListener('click',function (){ 4197 _learnq.push(['track', 'Added to Cart', item]); 4198 }); 4199 } 4200</script>
4200 4201<style> 4202 .klaviyo-close-form:focus, 4203 .klaviyo-close-form:focus-visible, 4204 .klaviyo-close-form:hover{background:transparent !important} 4205 html:not(.mh-kb) .klaviyo-close-form:focus, 4206 html:not(.mh-kb) .klaviyo-close-form:focus-visible{outline:none !important;box-shadow:none !important} 4207 html.mh-kb .klaviyo-close-form:focus-visible{outline:2px solid #fff !important;outline-offset:2px !important;box-shadow:0 0 0 4px rgba(0,0,0,.35) !important} 4208 </style> 4209
4209<script> 4210 (function(){ 4211 var d=document.documentElement; 4212 addEventListener('keydown',function(e){if(e.key==='Tab'||e.key==='Escape'||e.key==='Enter'||e.key===' ')d.classList.add('mh-kb')},true); 4213 addEventListener('pointerdown',function(){d.classList.remove('mh-kb')},true); 4214 })(); 4215 </script>
4215<div class="modal--window"> 4216 <div class="modal--mask"></div> 4217 <div class="modal--container"></div> 4218 <div class="modal--close" tabindex="0" role="button" aria-label="Close modal"><svg class="icon--root icon--cross" width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> 4219 <path d="M10 8.727 17.944.783l1.273 1.273L11.273 10l7.944 7.944-1.273 1.273L10 11.273l-7.944 7.944-1.273-1.273L8.727 10 .783 2.056 2.056.783 10 8.727Z" fill="#000" fill-rule="nonzero" /> 4220 </svg></div> 4221 <div class="modal--prev" tabindex="0" role="button" aria-label="Previous image"><div class="icon--root icon--prev"> 4222 <div></div> 4223 <div></div> 4224 <div></div> 4225 </div></div> 4226 <div class="modal--next" tabindex="0" role="button" aria-label="Next image"><div class="icon--root icon--next"> 4227 <div></div> 4228 <div></div> 4229 <div></div> 4230 </div></div> 4231</div><feedback-bar-root 4232 class="feedback-bar--root" 4233 data-transition-item="viewport" 4234 data-transition-type="slide-in" 4235 data-transition-trigger="custom" 4236 aria-hidden="true" 4237> 4238 <div 4239 id="feedback" 4240 class="feedback-bar--message" 4241 data-item="accent-text" 4242 ></div> 4243
4243<script type="application/json"> 4244 { 4245 "copied": "Link copied to clipboard", 4246 "contact-form": "Thanks for contacting us! We'll get back to you as soon as possible.", 4247 "email-invalid": "Please enter a valid email address", 4248 "newsletter": "Thanks for subscribing", 4249 "product-form": "We will notify you when this becomes available", 4250 "product--no-items": "The max number of items have already been added", 4251 "product--one-item": "There is only one item left to add to the cart", 4252 "product--n-items": "There are only [num_items] items left to add to the cart" 4253 } 4254 </script>
4254 4255</feedback-bar-root><svg class="icon--root icon--defs"> 4256 <defs> 4257 <radialGradient id="instagram-hover" r="150%" cx="30%" cy="107%"> 4258 <stop offset="0%" stop-color="#fdf497" /> 4259 <stop offset="5%" stop-color="#fdf497" /> 4260 <stop offset="45%" stop-color="#fd5949" /> 4261 <stop offset="60%" stop-color="#d6249f" /> 4262 <stop offset="90%" stop-color="#285aeb" /> 4263 </radialGradient> 4264 <symbol id="loading-spinner" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"> 4265 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13"> 4266 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.8391608391608392s" repeatCount="indefinite" /> 4267 </rect> 4268 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(27.692 50 50)"> 4269 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.7692307692307692s" repeatCount="indefinite" /> 4270 </rect> 4271 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(55.385 50 50)"> 4272 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.6993006993006993s" repeatCount="indefinite" /> 4273 </rect> 4274 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(83.077 50 50)"> 4275 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.6293706293706294s" repeatCount="indefinite" /> 4276 </rect> 4277 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(110.77 50 50)"> 4278 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.5594405594405594s" repeatCount="indefinite" /> 4279 </rect> 4280 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(138.462 50 50)"> 4281 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.4895104895104895s" repeatCount="indefinite" /> 4282 </rect> 4283 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(166.154 50 50)"> 4284 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.4195804195804196s" repeatCount="indefinite" /> 4285 </rect> 4286 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(193.846 50 50)"> 4287 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.34965034965034963s" repeatCount="indefinite" /> 4288 </rect> 4289 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(221.538 50 50)"> 4290 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.2797202797202797s" repeatCount="indefinite" /> 4291 </rect> 4292 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(249.23 50 50)"> 4293 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.2097902097902098s" repeatCount="indefinite" /> 4294 </rect> 4295 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(276.923 50 50)"> 4296 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.13986013986013984s" repeatCount="indefinite" /> 4297 </rect> 4298 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(304.615 50 50)"> 4299 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="-0.06993006993006992s" repeatCount="indefinite" /> 4300 </rect> 4301 <rect x="48" y="24.5" rx="0" ry="0" width="4" height="13" transform="rotate(332.308 50 50)"> 4302 <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9090909090909091s" begin="0s" repeatCount="indefinite" /> 4303 </rect> 4304 </symbol> 4305 </defs> 4306 </svg>
4306<script src="//instant.page/5.2.0" type="module" integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>
4306 4307<section id="shopify-section-promo-popup" class="shopify-section promo-popup-section"> 4308 4309</section> 4310 4311
4312<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
4312 4313 <!-- Replace this section in your theme.liquid --> 4314<!-- Put this RIGHT BEFORE <style> body,h1,h2,h3,h4,h5,h6 {font-family: PP Mori, sans-serif !important; font-weight: 600 !important;} .x-menu {font-family: PP Mori, sans-serif !important; font-weight: 600 !important;} </style> 4315<div id="shopify-block-AQXVseTJmTnRYajVON__12741885996470144523" class="shopify-block shopify-app-block">
4315<script type="text/javascript" src="https://enormapps.com/gallery-v2/assets/frontend/js/embed.js" async="" defer="defer"></script>
vendor: 2 bytes, line 4315
4315
4316<script type="text/javascript" src="https://enormapps.com/gallery-v2/assets/frontend/js/enap-video.js" async defer></script>
4316 4317 4318</div></body> tag --> 4319
4320<script> 4321 // Defer heavy tracking scripts 4322 window.addEventListener('load', function() { 4323 setTimeout(function() { 4324 4325 // 1. Microsoft Clarity 4326 (function(c,l,a,r,i,t,y){ 4327 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 4328 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 4329 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 4330 })(window, document, "clarity", "script", "d67i9zahlr"); 4331 4332 // 2. Roku Pixel 4333 !function(e,r){if(!e.rkp){var t=e.rkp=function(){ 4334 var e=Array.prototype.slice.call(arguments); 4335 e.push(Date.now()),t.eventProcessor?t.eventProcessor.apply(t,e):t.queue.push(e) 4336 };t.initiatorVersion="1.0",t.queue=[],t.load=function(e){ 4337 var t=r.createElement("script");t.async=!0,t.src=e; 4338 var n=r.getElementsByTagName("script")[0]; 4339 (n?n.parentNode:r.body).insertBefore(t,n) 4340 },rkp.load("https://cdn.ravm.tv/ust/dist/rkp.loader.js")}}(window,document); 4341 rkp("init","Pacc26uDlt7N"),rkp('event', 'PAGE_VIEW'); 4342 4343 // 3. Vibe.co 4344 !function(v,i,b,e,c,o){if(!v[c]){var s=v[c]=function(){s.process?s.process.apply(s,arguments):s.queue.push(arguments)};s.queue=[],s.b=1*new Date;var t=i.createElement(b);t.async=!0,t.src=e;var n=i.getElementsByTagName(b)[0];n.parentNode.insertBefore(t,n)}}(window,document,"script","https://s.vibe.co/vbpx.js","vbpx"); 4345 vbpx('init','LJ5S5e'); 4346 vbpx('event', 'page_view'); 4347 4348 }, 2500); // 2.5 second delay 4349 }); 4350</script>
4350 4351
4351<script> 4352 document.addEventListener('DOMContentLoaded', function() { 4353 if (new URLSearchParams(window.location.search).has('cart')) { 4354 theme.drawer.open('right', 'cart-drawer'); 4355 } 4356 }); 4357 </script>
4357 4358 4359
4359<script> 4360 /* A11y: honor prefers-reduced-motion for autoplay video (WCAG 2.2.2 / 2.3.1). 4361 Only runs for users who set "reduce motion" at the OS level, so it is invisible to everyone else. 4362 Pauses autoplay videos (incl. ones built dynamically by sections) â static first frame instead of looping motion. */ 4363 (function () { 4364 var mq = window.matchMedia('(prefers-reduced-motion: reduce)'); 4365 if (!mq.matches) return; 4366 function tame(v) { 4367 if (v.dataset.rmTamed) return; 4368 v.dataset.rmTamed = '1'; 4369 v.removeAttribute('autoplay'); 4370 v.autoplay = false; 4371 try { v.pause(); } catch (e) {} 4372 v.addEventListener('play', function () { if (mq.matches) { try { v.pause(); } catch (e) {} } }); 4373 } 4374 function scan() { document.querySelectorAll('video').forEach(tame); } 4375 if (document.readyState !== 'loading') scan(); else document.addEventListener('DOMContentLoaded', scan); 4376 new MutationObserver(function (muts) { 4377 muts.forEach(function (m) { 4378 m.addedNodes && m.addedNodes.forEach(function (n) { 4379 if (n.nodeType !== 1) return; 4380 if (n.tagName === 'VIDEO') tame(n); 4381 else if (n.querySelectorAll) n.querySelectorAll('video').forEach(tame); 4382 }); 4383 }); 4384 }).observe(document.documentElement, { childList: true, subtree: true }); 4385 })(); 4386 </script>
4386 4387 4388<style> body,h1,h2,h3,h4,h5,h6 {font-family: PP Mori, sans-serif !important; font-weight: 600 !important;} .x-menu {font-family: PP Mori, sans-serif !important; font-weight: 600 !important;} </style>
4389<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4389 4390</body> 4391 </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.