PageSourceSearch

https://twinecbd.com/blog/

html twinecbd.com collected 2026-10-07 02:50:57 UTC 297,127 bytes, 7,900 lines download raw bytes

1<!DOCTYPE html>
2<html class="no-js" lang="en">
3    <head>
4        <title>Blog - TWINE</title>
5        <link rel="dns-prefetch preconnect" href="https://cdn11.bigcommerce.com/s-neutbgywct" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.googleapis.com/" crossorigin><link rel="dns-prefetch preconnect" href="https://fonts.gstatic.com/" crossorigin>
6        <meta name="keywords" content="buy cbd oil, cbd products, best cbd oils, cbd creams, 100% natural cbd oil, cbd pet products"><link rel='canonical' href='https://twinecbd.com/blog/' /><meta name='platform' content='bigcommerce.stencil' />
7        
8         
9
10        <link href="https://cdn11.bigcommerce.com/s-neutbgywct/product_images/facivon-dark-32-32.png?t=1585391016" rel="shortcut icon">
11        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
12        
12<script nonce="">
13            // Change document class from no-js to js so we can detect this in css
14            document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
15        </script>
15
16
17        
17<script nonce="">
18    function browserSupportsAllFeatures() {
19        return window.Promise
20            && window.fetch
21            && window.URL
22            && window.URLSearchParams
23            && window.WeakMap
24            // object-fit support
25            && ('objectFit' in document.documentElement.style);
26    }
27
28    function loadScript(src) {
29        var js = document.createElement('script');
30        js.src = src;
31        js.nonce = '';
32        js.onerror = function () {
33            console.error('Failed to load polyfill script ' + src);
34        };
35        document.head.appendChild(js);
36    }
37
38    if (!browserSupportsAllFeatures()) {
39        loadScript('https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/dist/theme-bundle.polyfills.js');
40    }
41</script>
41        
41<script nonce="">window.consentManagerTranslations = `{"locale":"en","locales":{"consent_manager.data_collection_warning":"en","consent_manager.accept_all_cookies":"en","consent_manager.gdpr_settings":"en","consent_manager.data_collection_preferences":"en","consent_manager.manage_data_collection_preferences":"en","consent_manager.use_data_by_cookies":"en","consent_manager.data_categories_table":"en","consent_manager.allow":"en","consent_manager.accept":"en","consent_manager.deny":"en","consent_manager.dismiss":"en","consent_manager.reject_all":"en","consent_manager.category":"en","consent_manager.purpose":"en","consent_manager.functional_category":"en","consent_manager.functional_purpose":"en","consent_manager.analytics_category":"en","consent_manager.analytics_purpose":"en","consent_manager.targeting_category":"en","consent_manager.advertising_category":"en","consent_manager.advertising_purpose":"en","consent_manager.essential_category":"en","consent_manager.esential_purpose":"en","consent_manager.yes":"en","consent_manager.no":"en","consent_manager.not_available":"en","consent_manager.cancel":"en","consent_manager.save":"en","consent_manager.back_to_preferences":"en","consent_manager.close_without_changes":"en","consent_manager.unsaved_changes":"en","consent_manager.by_using":"en","consent_manager.agree_on_data_collection":"en","consent_manager.change_preferences":"en","consent_manager.cancel_dialog_title":"en","consent_manager.privacy_policy":"en","consent_manager.allow_category_tracking":"en","consent_manager.disallow_category_tracking":"en"},"translations":{"consent_manager.data_collection_warning":"We use cookies (and other similar technologies) to collect data to improve your shopping experience.","consent_manager.accept_all_cookies":"Accept All Cookies","consent_manager.gdpr_settings":"Settings","consent_manager.data_collection_preferences":"Website Data Collection Preferences","consent_manager.manage_data_collection_preferences":"Manage Website Data Collection Preferences","consent_manager.use_data_by_cookies":" uses data collected by cookies and JavaScript libraries to improve your shopping experience.","consent_manager.data_categories_table":"The table below outlines how we use this data by category. To opt out of a category of data collection, select 'No' and save your preferences.","consent_manager.allow":"Allow","consent_manager.accept":"Accept","consent_manager.deny":"Deny","consent_manager.dismiss":"Dismiss","consent_manager.reject_all":"Reject all","consent_manager.category":"Category","consent_manager.purpose":"Purpose","consent_manager.functional_category":"Functional","consent_manager.functional_purpose":"Enables enhanced functionality, such as videos and live chat. If you do not allow these, then some or all of these functions may not work properly.","consent_manager.analytics_category":"Analytics","consent_manager.analytics_purpose":"Provide statistical information on site usage, e.g., web analytics so we can improve this website over time.","consent_manager.targeting_category":"Targeting","consent_manager.advertising_category":"Advertising","consent_manager.advertising_purpose":"Used to create profiles or personalize content to enhance your shopping experience.","consent_manager.essential_category":"Essential","consent_manager.esential_purpose":"Essential for the site and any requested services to work, but do not perform any additional or secondary function.","consent_manager.yes":"Yes","consent_manager.no":"No","consent_manager.not_available":"N/A","consent_manager.cancel":"Cancel","consent_manager.save":"Save","consent_manager.back_to_preferences":"Back to Preferences","consent_manager.close_without_changes":"You have unsaved changes to your data collection preferences. Are you sure you want to close without saving?","consent_manager.unsaved_changes":"You have unsaved changes","consent_manager.by_using":"By using our website, you're agreeing to our","consent_manager.agree_on_data_collection":"By using our website, you're agreeing to the collection of data as described in our ","consent_manager.change_preferences":"You can change your preferences at any time","consent_manager.cancel_dialog_title":"Are you sure you want to cancel?","consent_manager.privacy_policy":"Privacy Policy","consent_manager.allow_category_tracking":"Allow [CATEGORY_NAME] tracking","consent_manager.disallow_category_tracking":"Disallow [CATEGORY_NAME] tracking"}}`;</script>
41
42
43        
43<script nonce="">
44            window.lazySizesConfig = window.lazySizesConfig || {};
45            window.lazySizesConfig.loadMode = 1;
46        </script>
46
47        
47<script async src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/dist/theme-bundle.head_async.js" nonce=""></script>
47
48
49        <link href="https://fonts.googleapis.com/css?family=Open+Sans:600,400,700,500,300&display=block" rel="stylesheet">
50        
50<script async src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/dist/theme-bundle.font.js" nonce=""></script>
50
51
52            
52<script src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/vendor/loadcss/cssrelpreload.min.js" async nonce=""></script>
52
53
54            <style>@media (max-width: 800px) { .pace, .nanobar { display: none } }</style>
55            <link data-stencil-stylesheet href="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/css/theme-05cb9f90-a256-013f-9de1-22b315e3676f.css" rel="stylesheet">
56            
56<script nonce="">window.stencilStyleLoaded = true;</script>
56
57            
57<script nonce="">window.lazySizesConfig = { loadHidden: false, expand: 150, expFactor: 3 };</script>
57
58
59
60         
61
62        <!-- Start Tracking Code for analytics_facebook -->
63
64<script>
65!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
66
67fbq('set', 'autoConfig', 'false', '8920905877989063');
68fbq('dataProcessingOptions', ['LDU'], 0, 0);
69fbq('init', '8920905877989063', {"external_id":"5e9d8dc4-094c-405b-baae-b23ab28288b7"});
70fbq('set', 'agent', 'bigcommerce', '8920905877989063');
71
72function trackEvents() {
73    var pathName = window.location.pathname;
74
75    
76
77    // Search events start -- only fire if the shopper lands on the /search.php page
78    if (pathName.indexOf('/search.php') === 0 && getUrlParameter('search_query')) {
79        fbq('trackSingle', '8920905877989063', 'Search', {
80            content_type: 'product_group',
81            content_ids: [],
82            search_string: getUrlParameter('search_query')
83        });
84    }
85    // Search events end
86
87    // Wishlist events start -- only fire if the shopper attempts to add an item to their wishlist
88    if (pathName.indexOf('/wishlist.php') === 0 && getUrlParameter('added_product_id')) {
89        fbq('trackSingle', '8920905877989063', 'AddToWishlist', {
90            content_type: 'product_group',
91            content_ids: []
92        });
93    }
94    // Wishlist events end
95
96    // Lead events start -- only fire if the shopper subscribes to newsletter
97    if (pathName.indexOf('/subscribe.php') === 0 && getUrlParameter('result') === 'success') {
98        fbq('trackSingle', '8920905877989063', 'Lead', {});
99    }
100    // Lead events end
101
102    // Registration events start -- only fire if the shopper registers an account
103    if (pathName.indexOf('/login.php') === 0 && getUrlParameter('action') === 'account_created') {
104        fbq('trackSingle', '8920905877989063', 'CompleteRegistration', {}, "");
105    }
106    // Registration events end
107
108    
109
110    function getUrlParameter(name) {
111        var cleanName = name.replace(/[\[]/, '\[').replace(/[\]]/, '\]');
112        var regex = new RegExp('[\?&]' + cleanName + '=([^&#]*)');
113        var results = regex.exec(window.location.search);
114        return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
115    }
116}
117
118if (window.addEventListener) {
119    window.addEventListener("load", trackEvents, false)
120}
121</script>
121
122<noscript><img height="1" width="1" style="display:none" alt="null" src="https://www.facebook.com/tr?id=8920905877989063&ev=PageView&noscript=1&a=plbigcommerce1.2&eid="/></noscript>
123
124<!-- End Tracking Code for analytics_facebook -->
125
126<!-- Start Tracking Code for analytics_googleanalytics4 -->
127
128<script data-cfasync="false" src="https://cdn11.bigcommerce.com/shared/js/google_analytics4_bodl_subscribers-358423becf5d870b8b603a81de597c10f6bc7699.js" integrity="sha256-gtOfJ3Avc1pEE/hx6SKj/96cca7JvfqllWA9FTQJyfI=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 128
128
129<script data-cfasync="false">
130  (function () {
131    window.dataLayer = window.dataLayer || [];
132
133    function gtag(){
134        dataLayer.push(arguments);
135    }
136
137    function initGA4(event) {
138         function setupGtag() {
139            function configureGtag() {
140                gtag('js', new Date());
141                gtag('set', 'developer_id.dMjk3Nj', true);
142                gtag('config', 'G-FNJ6TB6BM3');
143            }
144
145            var script = document.createElement('script');
146
147            script.src = 'https://www.googletagmanager.com/gtag/js?id=G-FNJ6TB6BM3';
148            script.async = true;
149            script.onload = configureGtag;
150
151            document.head.appendChild(script);
152        }
153
154        setupGtag();
155
156        if (typeof subscribeOnBodlEvents === 'function') {
157            subscribeOnBodlEvents('G-FNJ6TB6BM3', false);
158        }
159
160        window.removeEventListener(event.type, initGA4);
161    }
162
163    
164
165    var eventName = document.readyState === 'complete' ? 'consentScriptsLoaded' : 'DOMContentLoaded';
166    window.addEventListener(eventName, initGA4, false);
167  })()
168</script>
168
169
170<!-- End Tracking Code for analytics_googleanalytics4 -->
171
172<!-- Start Tracking Code for analytics_siteverification -->
173
174<script async defer src="https://tools.luckyorange.com/core/lo.js?site-id=0eda9280"></script>
174
175
176<!-- End Tracking Code for analytics_siteverification -->
177
178
179<script type="text/javascript" src="https://checkout-sdk.bigcommerce.com/v1/loader.js" defer ></script>
vendor: 1 bytes, line 179
179
180<script type="text/javascript">
181var BCData = {};
182</script>
vendor: 1 bytes, line 182
182
183<script type='text/javascript'>
184document.sezzleConfig = { 
185"configGroups": 
186[ 
187{ "targetXPath": '.productView-price/.price-section/.price--withoutTax', 
188"splitPriceElementsOn": '-' 
189}, 
190{ "targetXPath": '.productView-price/.price-section/.price--withTax',
191 "splitPriceElementsOn": ' - '
192}, 
193{ "targetXPath": '.cart-total-grandTotal/SPAN-0', 
194"renderToPath": '../..', 
195"urlMatch": "cart" }
196]
197  }</script>
197<script src='https://widget.sezzle.com/v1/javascript/price-widget?uuid=9f184b5e-454d-4b2b-b3eb-498fd69e9739'></script>
197<script type="text/javascript">
198!function(e){if(!window.pintrk){window.pintrk=function()
199{window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var
200n=window.pintrk;n.queue=[],n.version="3.0";var
201t=document.createElement("script");t.async=!0,t.src=e;var
202r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r)}}
203("https://s.pinimg.com/ct/core.js");
204pintrk('load','2613448984479', { em: '%%GLOBAL_BillingEmail%%', });
205pintrk('page');
206</script>
206
207<!-- TikTok Pixel Code Start: Initialization Script & Page Event -->
208<script>
209!function (w, d, t) {
210  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{},ttq._partner=ttq._partner||"BigCommerce";var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)};
211
212  ttq.load('CS40A03C77UEQSGTJT40');
213  ttq.page();
214}(window, document, 'ttq');
215
216if (typeof BODL === 'undefined') {
217  // https://developer.bigcommerce.com/theme-objects/breadcrumbs
218  
219  // https://developer.bigcommerce.com/theme-objects/brand
220  
221  // https://developer.bigcommerce.com/theme-objects/category
222  
223  
224  // https://developer.bigcommerce.com/theme-objects/product
225  
226  
227  
228  
229  
230  
231  
232  // https://developer.bigcommerce.com/theme-objects/products
233  
234  // https://developer.bigcommerce.com/theme-objects/product_results
235  
236  // https://developer.bigcommerce.com/theme-objects/order
237  
238  // https://developer.bigcommerce.com/theme-objects/wishlist
239  
240  // https://developer.bigcommerce.com/theme-objects/wishlist
241  
242  // https://developer.bigcommerce.com/theme-objects/cart
243  // (Fetching selective cart data to prevent additional payment button object html from causing JS parse error)
244  
245  
246  
247  // https://developer.bigcommerce.com/theme-objects/customer
248  var BODL = JSON.parse("{\"breadcrumbs\":[{\"url\":\"https://twinecbd.com/\",\"name\":\"Home\"},{\"url\":\"/blog/\",\"name\":\"Blog\"}],\"products\":[],\"phone\":null,\"email\":null,\"address\":null}");
249  
250  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
251  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
252
253  if (BODL.categoryName) {
254    BODL.category = {
255      name: BODL.categoryName,
256      products: BODL.categoryProducts,
257    }
258  }
259
260  if (BODL.productTitle) {
261    BODL.product = {
262      id: BODL.productId,
263      title: BODL.productTitle,
264      price: {
265        without_tax: {
266          currency: BODL.productCurrency,
267          value: BODL.productPrice,
268        },
269      },
270    }
271  }
272}
273
274BODL.getCartItemContentId = (item) => {
275  switch(item.type) {
276    case 'GiftCertificate':
277      return item.type;
278      break;
279    default:
280      return item.product_id;
281  }
282}
283
284BODL.getQueryParamValue = function (name) {
285  var cleanName = name.replace(/[\[]/, '\[').replace(/[\]]/, '\]');
286  var regex = new RegExp('[\?&]' + cleanName + '=([^&#]*)');
287  var results = regex.exec(window.location.search);
288  return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
289}
290
291// Advanced Matching
292  var phoneNumber = ''
293  var email = ''
294  var firstName = ''
295  var lastName = ''
296  var city = ''
297  var state = ''
298  var country = ''
299  var zip = ''
300  if (BODL.phone) {
301    var phoneNumber = BODL.phone;
302    if (BODL.phone.indexOf('+') === -1) {
303   // No country code, so default to US code
304        phoneNumber = `+1${phoneNumber}`;  
305    }
306  }
307
308  if (BODL.email) {
309    var email = BODL.email
310  }
311  
312  if (BODL.address) {
313    if (BODL.address.first_name) {
314        firstName = (BODL.address.first_name).toLowerCase()
315    }
316    
317    if (BODL.address.last_name) {
318        lastName = (BODL.address.last_name).toLowerCase()
319    }
320    
321    if (BODL.address.city) {
322        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
323    }
324    
325    rg = BODL.address.state;
326    if (typeof rg !== 'undefined' && stateList.has(rg)) {
327        state = stateList.get(rg);
328    }
329    
330    cn = BODL.address.country
331    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
332        country = countryCodes.get(cn)
333    }
334    
335    if (BODL.address.zip) {
336        zip = BODL.address.zip
337    }
338  }
339  
340  ttq.instance('CS40A03C77UEQSGTJT40').identify({
341    email: email,
342    phone_number: phoneNumber,
343    first_name: firstName,
344    last_name: lastName,
345    city: city,
346    state: state,
347    country: country,
348    zip_code: zip})
349</script>
349
350<!-- TikTok Pixel Code End: Initialization Script & Page Event -->
351
352<!-- TikTok Pixel Code Start: View Product Content -->
353<script>
354if (BODL.product) {
355  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
356  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
357
358  // Advanced Matching
359  var phoneNumber = ''
360  var email = ''
361  var firstName = ''
362  var lastName = ''
363  var city = ''
364  var state = ''
365  var country = ''
366  var zip = ''
367  if (BODL.phone) {
368    var phoneNumber = BODL.phone;
369    if (BODL.phone.indexOf('+') === -1) {
370   // No country code, so default to US code
371        phoneNumber = `+1${phoneNumber}`;  
372    }
373  }
374  
375  if (BODL.email) {
376    var email = BODL.email
377  }
378  
379  if (BODL.address) {
380    if (BODL.address.first_name) {
381        firstName = (BODL.address.first_name).toLowerCase()
382    }
383    
384    if (BODL.address.last_name) {
385        lastName = (BODL.address.last_name).toLowerCase()
386    }
387    
388    if (BODL.address.city) {
389        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
390    }
391    
392    rg = BODL.address.state;
393    if (typeof rg !== 'undefined' && stateList.has(rg)) {
394        state = stateList.get(rg);
395    }
396    
397    cn = BODL.address.country
398    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
399        country = countryCodes.get(cn)
400    }
401    
402    if (BODL.address.zip) {
403        zip = BODL.address.zip
404    }
405  }
406  
407  ttq.instance('CS40A03C77UEQSGTJT40').identify({
408    email: email,
409    phone_number: phoneNumber,
410    first_name: firstName,
411    last_name: lastName,
412    city: city,
413    state: state,
414    country: country,
415    zip_code: zip})
416    
417  var productPrice = 0
418  var productCurrency = ""
419  if (BODL.productCurrencyWithoutTax && BODL.productCurrencyWithoutTax !== "") {
420    productPrice = BODL.productPriceWithoutTax
421    productCurrency = BODL.productCurrencyWithoutTax
422  }
423  if (BODL.productCurrencyWithTax && BODL.productCurrencyWithTax !== "") {
424    productPrice = BODL.productPriceWithTax
425    productCurrency = BODL.productCurrencyWithTax
426  }
427  //default contentId to productId if sku_id is not found on product 
428  var contentID = BODL.productId
429  if (BODL.skuId && BODL.skuId !== "") {
430    contentID = BODL.skuId
431  }
432  ttq.instance('CS40A03C77UEQSGTJT40').track('ViewContent', {
433    content_id: contentID,
434    content_category: BODL.breadcrumbs[1] ? BODL.breadcrumbs[1].name : '',
435    content_name: BODL.product.title,
436    content_type: "product_group",
437    currency: productCurrency,
438    price: productPrice,
439    value: productPrice,
440  });
441}
442</script>
442
443<!-- TikTok Pixel Code End: View Product Content -->
444
445<!-- TikTok Pixel Code Start: View Category Content -->
446<script>
447if (BODL.category) {
448  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
449  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
450  
451  // Advanced Matching
452  var phoneNumber = ''
453  var email = ''
454  var firstName = ''
455  var lastName = ''
456  var city = ''
457  var state = ''
458  var country = ''
459  var zip = ''
460  if (BODL.phone) {
461    var phoneNumber = BODL.phone;
462    if (BODL.phone.indexOf('+') === -1) {
463    // No country code, so default to US code
464        phoneNumber = `+1${phoneNumber}`;  
465    }
466  }
467    
468  if (BODL.email) {
469    var email = BODL.email
470  }
471  
472  if (BODL.address) {
473    if (BODL.address.first_name) {
474        firstName = (BODL.address.first_name).toLowerCase()
475    }
476    
477    if (BODL.address.last_name) {
478        lastName = (BODL.address.last_name).toLowerCase()
479    }
480    
481    if (BODL.address.city) {
482        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
483    }
484    
485    rg = BODL.address.state;
486    if (typeof rg !== 'undefined' && stateList.has(rg)) {
487        state = stateList.get(rg);
488    }
489    
490    cn = BODL.address.country
491    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
492        country = countryCodes.get(cn)
493    }
494    
495    if (BODL.address.zip) {
496        zip = BODL.address.zip
497    }
498  }
499  
500  ttq.instance('CS40A03C77UEQSGTJT40').identify({
501    email: email,
502    phone_number: phoneNumber,
503    first_name: firstName,
504    last_name: lastName,
505    city: city,
506    state: state,
507    country: country,
508    zip_code: zip})
509    
510  ttq.instance('CS40A03C77UEQSGTJT40').track('ViewContent', {
511    contents: BODL.category.products.map((p) => ({
512      content_id: p.id,
513      content_category: BODL.category.name,
514      content_name: p.name,
515      content_type: "product_group"
516    }))
517  });
518}
519</script>
519
520<!-- TikTok Pixel Code End: View Category Content -->
521
522<!-- TikTok Pixel Code Start: Add to Wishlist -->
523<script>
524// This only sends one wishlist product: the one that was just added based on the 'added_product_id' param in the url
525if (BODL.wishlist) {
526  var productPrice = 0
527  var productCurrency = ""
528  if (BODL.productCurrencyWithoutTax && BODL.productCurrencyWithoutTax !== "") {
529    productPrice = BODL.productPriceWithoutTax
530    productCurrency = BODL.productCurrencyWithoutTax
531  }
532  if (BODL.productCurrencyWithTax && BODL.productCurrencyWithTax !== "") {
533    productPrice = BODL.productPriceWithTax
534    productCurrency = BODL.productCurrencyWithTax
535  }
536
537  var addedWishlistItem = BODL.wishlist.items.filter((i) => i.product_id === parseInt(BODL.getQueryParamValue('added_product_id'))).map((p) => ({
538    var contentId = p.product_id
539    if (p.sku && p.sku !== "") {
540        contentId = p.sku
541    }
542    content_id: contentId,
543    // Commenting out as category data doesn't exist on wishlist items
544    // content_category: p.does_not_exist, 
545    content_name: p.name,
546    content_type: "product_group",
547    currency: productCurrency,
548    price: productPrice,
549    value: productPrice,
550  }));
551  
552  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
553  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
554  
555  // Advanced Matching
556  var phoneNumber = ''
557  var email = ''
558  var firstName = ''
559  var lastName = ''
560  var city = ''
561  var state = ''
562  var country = ''
563  var zip = ''
564  if (BODL.phone) {
565    var phoneNumber = BODL.phone;
566    if (BODL.phone.indexOf('+') === -1) {
567   // No country code, so default to US code
568        phoneNumber = `+1${phoneNumber}`;  
569    }
570  }
571
572  if (BODL.email) {
573    var email = BODL.email
574  }
575  
576  if (BODL.address) {
577    if (BODL.address.first_name) {
578        firstName = (BODL.address.first_name).toLowerCase()
579    }
580    
581    if (BODL.address.last_name) {
582        lastName = (BODL.address.last_name).toLowerCase()
583    }
584    
585    if (BODL.address.city) {
586        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
587    }
588    
589    rg = BODL.address.state;
590    if (typeof rg !== 'undefined' && stateList.has(rg)) {
591        state = stateList.get(rg);
592    }
593    
594    cn = BODL.address.country
595    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
596        country = countryCodes.get(cn)
597    }
598    
599    if (BODL.address.zip) {
600        zip = BODL.address.zip
601    }
602  }
603  
604  ttq.instance('CS40A03C77UEQSGTJT40').identify({
605    email: email,
606    phone_number: phoneNumber,
607    first_name: firstName,
608    last_name: lastName,
609    city: city,
610    state: state,
611    country: country,
612    zip_code: zip})
613  
614  ttq.instance('CS40A03C77UEQSGTJT40').track('AddToWishlist', addedWishlistItem[0]);
615}
616</script>
616
617<!-- TikTok Pixel Code End: Add to Wishlist -->
618
619<!-- TikTok Pixel Code Start: Subscribe to Newsletter -->
620<script>
621if (window.location.pathname.indexOf('/subscribe.php') === 0 && BODL.getQueryParamValue('result') === 'success') {
622  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
623  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
624  
625  // Advanced Matching
626  var phoneNumber = ''
627  var email = ''
628  var firstName = ''
629  var lastName = ''
630  var city = ''
631  var state = ''
632  var country = ''
633  var zip = ''
634  if (BODL.phone) {
635    var phoneNumber = BODL.phone;
636    if (BODL.phone.indexOf('+') === -1) {
637   // No country code, so default to US code
638        phoneNumber = `+1${phoneNumber}`;  
639    }
640  }
641
642  if (BODL.email) {
643    var email = BODL.email
644  }
645  
646  if (BODL.address) {
647    if (BODL.address.first_name) {
648        firstName = (BODL.address.first_name).toLowerCase()
649    }
650    
651    if (BODL.address.last_name) {
652        lastName = (BODL.address.last_name).toLowerCase()
653    }
654    
655    if (BODL.address.city) {
656        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
657    }
658    
659    rg = BODL.address.state;
660    if (typeof rg !== 'undefined' && stateList.has(rg)) {
661        state = stateList.get(rg);
662    }
663    
664    cn = BODL.address.country
665    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
666        country = countryCodes.get(cn)
667    }
668    
669    if (BODL.address.zip) {
670        zip = BODL.address.zip
671    }
672  }
673  
674  ttq.instance('CS40A03C77UEQSGTJT40').identify({
675    email: email,
676    phone_number: phoneNumber,
677    first_name: firstName,
678    last_name: lastName,
679    city: city,
680    state: state,
681    country: country,
682    zip_code: zip})
683
684  ttq.instance('CS40A03C77UEQSGTJT40').track('Subscribe');
685}
686</script>
686
687<!-- TikTok Pixel Code End: Subscribe to Newsletter -->
688
689<!-- TikTok Pixel Code Start: Search -->
690<script>
691if (BODL.search) {
692  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
693  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
694  
695  // Advanced Matching
696  var phoneNumber = ''
697  var email = ''
698  var firstName = ''
699  var lastName = ''
700  var city = ''
701  var state = ''
702  var country = ''
703  var zip = ''
704  if (BODL.phone) {
705    var phoneNumber = BODL.phone;
706    if (BODL.phone.indexOf('+') === -1) {
707   // No country code, so default to US code
708        phoneNumber = `+1${phoneNumber}`;  
709    }
710  }
711
712  if (BODL.email) {
713    var email = BODL.email
714  }
715  
716  if (BODL.address) {
717    if (BODL.address.first_name) {
718        firstName = (BODL.address.first_name).toLowerCase()
719    }
720    
721    if (BODL.address.last_name) {
722        lastName = (BODL.address.last_name).toLowerCase()
723    }
724    
725    if (BODL.address.city) {
726        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
727    }
728    
729    rg = BODL.address.state;
730    if (typeof rg !== 'undefined' && stateList.has(rg)) {
731        state = stateList.get(rg);
732    }
733    
734    cn = BODL.address.country
735    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
736        country = countryCodes.get(cn)
737    }
738    
739    if (BODL.address.zip) {
740        zip = BODL.address.zip
741    }
742  }
743  
744  ttq.instance('CS40A03C77UEQSGTJT40').identify({
745    email: email,
746    phone_number: phoneNumber,
747    first_name: firstName,
748    last_name: lastName,
749    city: city,
750    state: state,
751    country: country,
752    zip_code: zip})
753    
754  var productPrice = 0
755  var productCurrency = ""
756  if (BODL.productCurrencyWithoutTax && BODL.productCurrencyWithoutTax !== "") {
757    productPrice = BODL.productPriceWithoutTax
758    productCurrency = BODL.productCurrencyWithoutTax
759  }
760  if (BODL.productCurrencyWithTax && BODL.productCurrencyWithTax !== "") {
761    productPrice = BODL.productPriceWithTax
762    productCurrency = BODL.productCurrencyWithTax
763  }
764
765  ttq.instance('CS40A03C77UEQSGTJT40').track('Search', {
766    query: BODL.getQueryParamValue('search_query'),
767    contents: BODL.search.products.map((p) => ({
768      var contentId = p.id
769      if (p.sku && p.sku !== "") {
770        contentId = p.sku
771      }
772      content_id: contentId,
773      // Products can be in multiple categories.
774      // Commenting out as this might distort category reports if only the first one is used.
775      // content_category: p.category[0], 
776      content_name: p.name,
777      content_type: "product_group",
778      currency: productCurrency,
779      price: productPrice,
780      value: productPrice,
781    }))
782  });
783}
784</script>
784
785<!-- TikTok Pixel Code End: Search -->
786
787<!-- TikTok Pixel Code Start: Registration -->
788<script>
789if (window.location.pathname.indexOf('/login.php') === 0 && BODL.getQueryParamValue('action') === 'account_created') {
790  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
791  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
792  
793  // Advanced Matching
794  var phoneNumber = ''
795  var email = ''
796  var firstName = ''
797  var lastName = ''
798  var city = ''
799  var state = ''
800  var country = ''
801  var zip = ''
802  if (BODL.phone) {
803    var phoneNumber = BODL.phone;
804    if (BODL.phone.indexOf('+') === -1) {
805   // No country code, so default to US code
806        phoneNumber = `+1${phoneNumber}`;  
807    }
808  }
809
810  if (BODL.email) {
811    var email = BODL.email
812  }
813  
814  if (BODL.address) {
815    if (BODL.address.first_name) {
816        firstName = (BODL.address.first_name).toLowerCase()
817    }
818    
819    if (BODL.address.last_name) {
820        lastName = (BODL.address.last_name).toLowerCase()
821    }
822    
823    if (BODL.address.city) {
824        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
825    }
826    
827    rg = BODL.address.state;
828    if (typeof rg !== 'undefined' && stateList.has(rg)) {
829        state = stateList.get(rg);
830    }
831    
832    cn = BODL.address.country
833    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
834        country = countryCodes.get(cn)
835    }
836    
837    if (BODL.address.zip) {
838        zip = BODL.address.zip
839    }
840  }
841  
842  ttq.instance('CS40A03C77UEQSGTJT40').identify({
843    email: email,
844    phone_number: phoneNumber,
845    first_name: firstName,
846    last_name: lastName,
847    city: city,
848    state: state,
849    country: country,
850    zip_code: zip})
851  
852  ttq.instance('CS40A03C77UEQSGTJT40').track('Registration');
853}
854</script>
854
855<!-- TikTok Pixel Code End: Registration -->
856<script src="https://cdn5.hextom.com/js/vimotia-bigc.js?shop=neutbgywct&platform=bigcommerce" async></script>
856<script async defer src="https://tools.luckyorange.com/core/lo.js?site-id=0eda9280"></script>
856<script nonce="">
857if(typeof fbq === 'function') {
858  fbq('trackSingle', '8920905877989063', 'PageView', {}, {"eventID":"6a6c1451-cf18-4c5e-90ee-5d215f4a3aa1"});
859} else if (typeof window.addEventListener === 'function') {
860  window.addEventListener("load", function() { fbq('trackSingle', '8920905877989063', 'PageView', {}, {"eventID":"6a6c1451-cf18-4c5e-90ee-5d215f4a3aa1"}); }, false)
861}
862</script>
862
863 
863<script data-cfasync="false" src="https://microapps.bigcommerce.com/bodl-events/1.9.4/index.js" integrity="sha256-Y0tDj1qsyiKBRibKllwV0ZJ1aFlGYaHHGl/oUFoXJ7Y=" nonce="" crossorigin="anonymous"></script>
863
864 
864<script data-cfasync="false" nonce="">
865
866 (function() {
867    function decodeBase64(base64) {
868       const text = atob(base64);
869       const length = text.length;
870       const bytes = new Uint8Array(length);
871       for (let i = 0; i < length; i++) {
872          bytes[i] = text.charCodeAt(i);
873       }
874       const decoder = new TextDecoder();
875       return decoder.decode(bytes);
876    }
877    window.bodl = JSON.parse(decodeBase64("eyJzZXNzaW9uIjp7ImlkIjoiN2I2NmRjODMtMzcxOS00Yzg0LTg4ODQtZDgxZTAyY2E3ZTZmIiwiZmlyc3RfdG91Y2hfdGltZXN0YW1wIjoiMjAyNi0xMC0wN1QwMjo1MDo1NyIsImZpcnN0X3RvdWNoX3JlZmVycmFsX3VybCI6IiIsImZpcnN0X3RvdWNoX3JlcXVlc3RfdXJsIjoiaHR0cHM6Ly90d2luZWNiZC5jb20vYmxvZy8ifSwic2hvcHBlciI6eyJ2aXNpdG9yX2lkIjoiIiwiY3VzdG9tZXJfaWQiOm51bGwsImVtYWlsIjpudWxsLCJmaXJzdF9uYW1lIjpudWxsLCJsYXN0X25hbWUiOm51bGx9LCJkYXRhX2NvbnNlbnQiOnsiZnVuY3Rpb25hbCI6dHJ1ZSwiYW5hbHl0aWNzIjp0cnVlLCJhZHZlcnRpc2luZyI6dHJ1ZX0sImV2ZW50cyI6W119"));
878 })()
879
880 </script>
880
881
882<script nonce="">
883(function () {
884    var xmlHttp = new XMLHttpRequest();
885    
886    xmlHttp.open('POST', 'https://bes.gcp.data.bigcommerce.com/nobot');
887    xmlHttp.setRequestHeader('Content-Type', 'application/json');
888    xmlHttp.send('{"store_id":"1001036493","timezone_offset":"-5.0","timestamp":"2026-10-07T02:50:57.70271200Z","visit_id":"2b042373-e933-4b85-9115-a8225eb13e11","channel_id":1}');
889})();
890</script>
890
891
892        
893
894
895
896        <!-- snippet location htmlhead -->
897    </head>
898    <body class="navigation-hover page-type-blog
899        theme-show-outstock-badge
900        theme-header-sticky
901        
902        ">
903
904        <!-- snippet location header -->
905        <svg data-src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/icon-sprite.svg" class="icons-svg-sprite"></svg>
906        <!--  -->
907
908
909        <header class="header" role="banner" data-stickymenu>
910    <!--
911    <a class="mobileMenu-toggle" data-mobile-menu-toggle="menu">
912        <span class="mobileMenu-toggleIcon">Toggle menu</span>
913    </a>
914    -->
915
916    <div class="header-top">
917        <div class="header-top-container">
918            <ul class="header-top-list">
919                
920
921
922                    <li class="header-top-item header-top-item--createAccount">
923                        <a class="header-top-action" href="https://twinecbd.com/login.php?action=create_account">Create Account</a>
924                    </li>
925                    <li class="header-top-item header-top-item--login">
926                            <a class="header-top-action" data-collapsible="navUser-more-panel" data-group-collapsible="main">Sign In</a>
927                    </li>
928            </ul>
929        </div>
930    </div>
931
932    <div class="header-main">
933        <div class="header-main-container header-main-container--left">
934                <div class="header-logo header-logo--left">
935                    <a href="https://twinecbd.com/">
936            <img class="header-logo-image-unknown-size" src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/twine_cbd_live_is_better_with_twine_1758297645__35258.original.png" alt="TWINE" title="TWINE">
937</a>
938                </div>
939
940            <div class="navPages-container" id="menu" data-menu>
941                <p class="navPages-container-heading"><span class="navPages-container-heading-ellipse">More</span></p>
942                <a class="mobile-panel-close" data-mobile-menu-toggle="menu" href="#"><svg><use xlink:href="#icon-close" aria-hidden="true" /></svg></a>
943                <nav class="navPages">
944    <ul class="navPages-list navPages-list--main navPages-list-depth-max" id="navPages-main">
945        <li class="navPages-item navPages-item--home">
946            <a class="navPages-action" href="https://twinecbd.com/">Home</a>
947        </li>
948            <li class="navPages-item navPages-item--category">
949                    <a class="navPages-action navPages-action-depth-max has-subMenu is-root" href="https://twinecbd.com/cbd-products-by-benefit/" data-collapsible="navPages-114"
950            data-collapsible-disabled-breakpoint="large"
951            data-collapsible-disabled-state="open"
952            data-collapsible-enabled-state="closed"
953    >
954        Shop by Benefit <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
955    </a>
956    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-114" aria-hidden="true" tabindex="-1">
957    <ul class="navPage-subMenu-list">
958        <li class="navPage-subMenu-item-parent">
959            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/cbd-products-by-benefit/"><span class='navPage--viewAll'>All </span>Shop by Benefit</a>
960        </li>
961            <li class="navPage-subMenu-item-child">
962                    <a class="navPage-subMenu-action navPages-action navPages-action-depth-max has-subMenu" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/" data-collapsible="navPages-119"
963                            data-collapsible-disabled-breakpoint="large"
964                            data-collapsible-disabled-state="open"
965                            data-collapsible-enabled-state="closed"
966                    >
967                        Beauty &amp; Skin <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
968                    </a>
969                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-119" aria-hidden="true" tabindex="-1">
970    <ul class="navPage-subMenu-list">
971        <li class="navPage-subMenu-item-parent">
972            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/"><span class='navPage--viewAll'>All </span>Beauty & Skin</a>
973        </li>
974            <li class="navPage-subMenu-item-child">
975                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-face-care/">Face Care</a>
976            </li>
977            <li class="navPage-subMenu-item-child">
978                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-lip-care/">Lip Care</a>
979            </li>
980            <li class="navPage-subMenu-item-child">
981                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-body-care/">Body Care</a>
982            </li>
983            <li class="navPage-subMenu-item-child">
984                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-skincare-bundles/">Value Sets</a>
985            </li>
986    </ul>
987</div>
988            </li>
989            <li class="navPage-subMenu-item-child">
990                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-sleep-support/">Sleep</a>
991            </li>
992            <li class="navPage-subMenu-item-child">
993                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-energy-focus/">Energy &amp; Focus</a>
994            </li>
995            <li class="navPage-subMenu-item-child">
996                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-pain-relief-recovery/">Relief &amp; Recovery</a>
997            </li>
998            <li class="navPage-subMenu-item-child">
999                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-stress-anxiety-relief/">Stress &amp; Calm</a>
1000            </li>
1001            <li class="navPage-subMenu-item-child">
1002                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-for-pets/">Pets</a>
1003            </li>
1004    </ul>
1005</div>
1006            </li>
1007            <li class="navPages-item navPages-item--category">
1008                    <a class="navPages-action navPages-action-depth-max has-subMenu is-root" href="https://twinecbd.com/cbd-products/" data-collapsible="navPages-115"
1009            data-collapsible-disabled-breakpoint="large"
1010            data-collapsible-disabled-state="open"
1011            data-collapsible-enabled-state="closed"
1012    >
1013        Shop by Product <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1014    </a>
1015    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-115" aria-hidden="true" tabindex="-1">
1016    <ul class="navPage-subMenu-list">
1017        <li class="navPage-subMenu-item-parent">
1018            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/cbd-products/"><span class='navPage--viewAll'>All </span>Shop by Product</a>
1019        </li>
1020            <li class="navPage-subMenu-item-child">
1021                    <a class="navPage-subMenu-action navPages-action navPages-action-depth-max has-subMenu" href="https://twinecbd.com/cbd-products/cbd-beauty/" data-collapsible="navPages-127"
1022                            data-collapsible-disabled-breakpoint="large"
1023                            data-collapsible-disabled-state="open"
1024                            data-collapsible-enabled-state="closed"
1025                    >
1026                        Beauty <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1027                    </a>
1028                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-127" aria-hidden="true" tabindex="-1">
1029    <ul class="navPage-subMenu-list">
1030        <li class="navPage-subMenu-item-parent">
1031            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/cbd-products/cbd-beauty/"><span class='navPage--viewAll'>All </span>Beauty</a>
1032        </li>
1033            <li class="navPage-subMenu-item-child">
1034                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-face-care/">Face Care</a>
1035            </li>
1036            <li class="navPage-subMenu-item-child">
1037                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-lip-oils-and-balms/">Lip Care</a>
1038            </li>
1039            <li class="navPage-subMenu-item-child">
1040                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-body-care/">Body Care</a>
1041            </li>
1042            <li class="navPage-subMenu-item-child">
1043                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-skincare-bundles/">Value Sets</a>
1044            </li>
1045    </ul>
1046</div>
1047            </li>
1048            <li class="navPage-subMenu-item-child">
1049                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-gummies/">Gummies</a>
1050            </li>
1051            <li class="navPage-subMenu-item-child">
1052                    <a class="navPage-subMenu-action navPages-action navPages-action-depth-max has-subMenu" href="https://twinecbd.com/cbd-products/cbd-topicals/" data-collapsible="navPages-132"
1053                            data-collapsible-disabled-breakpoint="large"
1054                            data-collapsible-disabled-state="open"
1055                            data-collapsible-enabled-state="closed"
1056                    >
1057                        Topicals <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1058                    </a>
1059                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-132" aria-hidden="true" tabindex="-1">
1060    <ul class="navPage-subMenu-list">
1061        <li class="navPage-subMenu-item-parent">
1062            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/cbd-products/cbd-topicals/"><span class='navPage--viewAll'>All </span>Topicals</a>
1063        </li>
1064            <li class="navPage-subMenu-item-child">
1065                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-body-butter/">Body Butter</a>
1066            </li>
1067            <li class="navPage-subMenu-item-child">
1068                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-comfort-cream/">Comfort Cream</a>
1069            </li>
1070            <li class="navPage-subMenu-item-child">
1071                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-hydrating-lotion-spray/">Lotion Spray</a>
1072            </li>
1073            <li class="navPage-subMenu-item-child">
1074                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-relief-roller/">Relief Roller</a>
1075            </li>
1076    </ul>
1077</div>
1078            </li>
1079            <li class="navPage-subMenu-item-child">
1080                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-oils-tinctures/">Oils</a>
1081            </li>
1082            <li class="navPage-subMenu-item-child">
1083                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-pet-products/">Pets</a>
1084            </li>
1085    </ul>
1086</div>
1087            </li>
1088            <li class="navPages-item navPages-item--category">
1089                    <a class="navPages-action navPages-action-depth-max has-subMenu is-root" href="https://twinecbd.com/shop-all-cbd-products/" data-collapsible="navPages-116"
1090            data-collapsible-disabled-breakpoint="large"
1091            data-collapsible-disabled-state="open"
1092            data-collapsible-enabled-state="closed"
1093    >
1094        Shop All <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
1095    </a>
1096    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-116" aria-hidden="true" tabindex="-1">
1097    <ul class="navPage-subMenu-list">
1098        <li class="navPage-subMenu-item-parent">
1099            <a class="navPage-subMenu-action navPages-action navPages-action-depth-max" href="https://twinecbd.com/shop-all-cbd-products/"><span class='navPage--viewAll'>All </span>Shop All</a>
1100        </li>
1101            <li class="navPage-subMenu-item-child">
1102                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/shop-all-cbd-products/best-selling-cbd/">Best Sellers</a>
1103            </li>
1104            <li class="navPage-subMenu-item-child">
1105                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/shop-all-cbd-products/all-cbd-products/">All Products</a>
1106            </li>
1107    </ul>
1108</div>
1109            </li>
1110            <li class="navPages-item navPages-item--category">
1111                    <a class="navPages-action" href="https://twinecbd.com/non-cbd/">Non-CBD</a>
1112            </li>
1113            <li class="navPages-item navPages-item--category">
1114                    <a class="navPages-action" href="https://twinecbd.com/try-me/">Try Me</a>
1115            </li>
1116            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1117                    <a class="navPages-action is-root" href="https://twinecbd.com/subscribe-save/">Subscribe &amp; Save</a>
1118            </li>
1119            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1120                    <a class="navPages-action is-root" href="https://twinecbd.com/refer-a-friend/">Refer a Friend</a>
1121            </li>
1122            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1123                    <a class="navPages-action is-root" href="https://twinecbd.com/shipping-returns/">Shipping &amp; Returns</a>
1124            </li>
1125            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1126                    <a class="navPages-action is-root" href="https://twinecbd.com/contact-us/">Contact Us</a>
1127            </li>
1128            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1129                    <a class="navPages-action is-root" href="https://twinecbd.com/reviews/">Reviews</a>
1130            </li>
1131            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1132                    <a class="navPages-action is-root" href="https://twinecbd.com/blog/">Blog</a>
1133            </li>
1134            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1135                    <a class="navPages-action is-root" href="https://twinecbd.com/social-signup/">Social Signup</a>
1136            </li>
1137            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1138                    <a class="navPages-action is-root" href="https://twinecbd.com/billing-terms-conditions/">Billing Terms &amp; Conditions</a>
1139            </li>
1140            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1141                    <a class="navPages-action is-root" href="https://twinecbd.com/privacy-security-policy/">Privacy / Security Policy</a>
1142            </li>
1143            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1144                    <a class="navPages-action is-root" href="https://twinecbd.com/third-party-test-results/">Third Party Test Results</a>
1145            </li>
1146            <li class="navPages-item navPages-item-page u-hidde
1146nVisually-desktop">
1147                    <a class="navPages-action is-root" href="https://twinecbd.com/sezzle/">Sezzle</a>
1148            </li>
1149            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1150                    <a class="navPages-action is-root" href="https://twinewholesale.com/">Wholesale</a>
1151            </li>
1152            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1153                    <a class="navPages-action is-root" href="https://partners.twinecbd.com">Affiliate Partner</a>
1154            </li>
1155            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1156                    <a class="navPages-action is-root" href="https://twinecbd.com/signup/">Signup &amp; Save</a>
1157            </li>
1158            <li class="navPages-item navPages-item-page u-hiddenVisually-desktop">
1159                    <a class="navPages-action is-root" href="https://twinecbd.com/shop-local/">Shop Local</a>
1160            </li>
1161        <li class="navPages-item navPages-item--dropdown-toggle u-hiddenVisually">
1162            <a class="navPages-action" data-dropdown="navPages-dropdown" href="#" title="Show All"><i class="icon" aria-hidden="true"><svg><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-more"></use></svg></i></a>
1163        </li>
1164    </ul>
1165    <ul class="navPages-list navPages-list--user">
1166            <li class="navPages-item">
1167                <a class="navPages-action" href="https://twinecbd.com/giftcertificates.php">Gift Certificates</a>
1168            </li>
1169            <li class="navPages-item">
1170                    <ul class="socialLinks socialLinks--alt socialLinks--colors">
1171        <li class="socialLinks-item">
1172            <a class="icon icon--instagram"
1173            href="https://www.instagram.com/twinecbd/"
1174            target="_blank"
1175            rel="noopener"
1176            title="Instagram"
1177            >
1178                <span class="aria-description--hidden">Instagram</span>
1179                <svg>
1180                    <use href="#icon-instagram"/>
1181                </svg>
1182            </a>
1183        </li>
1184        <li class="socialLinks-item">
1185            <a class="icon icon--facebook"
1186            href="https://www.facebook.com/twinecbd/"
1187            target="_blank"
1188            rel="noopener"
1189            title="Facebook"
1190            >
1191                <span class="aria-description--hidden">Facebook</span>
1192                <svg>
1193                    <use href="#icon-facebook"/>
1194                </svg>
1195            </a>
1196        </li>
1197        <li class="socialLinks-item">
1198            <a class="icon icon--pinterest"
1199            href="https://www.pinterest.com/twinecbd/"
1200            target="_blank"
1201            rel="noopener"
1202            title="Pinterest"
1203            >
1204                <span class="aria-description--hidden">Pinterest</span>
1205                <svg>
1206                    <use href="#icon-pinterest"/>
1207                </svg>
1208            </a>
1209        </li>
1210        <li class="socialLinks-item">
1211            <a class="icon icon--youtube"
1212            href="https://www.youtube.com/@twinecbd"
1213            target="_blank"
1214            rel="noopener"
1215            title="Youtube"
1216            >
1217                <span class="aria-description--hidden">Youtube</span>
1218                <svg>
1219                    <use href="#icon-youtube"/>
1220                </svg>
1221            </a>
1222        </li>
1223        <li class="socialLinks-item">
1224            <a class="icon icon--x"
1225            href="https://twitter.com/CbdTwine"
1226            target="_blank"
1227            rel="noopener"
1228            title="X"
1229            >
1230                <span class="aria-description--hidden">X</span>
1231                <svg>
1232                    <use href="#icon-x"/>
1233                </svg>
1234            </a>
1235        </li>
1236    </ul>
1237            </li>
1238    </ul>
1239
1240    <ul class="navPages-list navPages-list--dropdown" id="navPages-dropdown" data-dropdown-content></ul>
1241</nav>
1242            </div>
1243
1244            <nav class="navUser navUser--alt">
1245</nav>
1246
1247<nav class="navUser">
1248    <ul class="navUser-section">
1249
1250
1251
1252        <li class="navUser-item navUser-item--search">
1253            <a class="navUser-action navUser-action--quickSearch" href="#" data-search="quickSearch" aria-controls="quickSearch" aria-expanded="false">
1254                <i class="navUser-item-icon"><svg><use xlink:href="#icon-search" /></svg></i>
1255                <span class="navUser-item-searchLabel">Search</span>
1256            </a>
1257        </li>
1258
1259        <li class="navUser-item navUser-item--compare">
1260            <a class="navUser-action navUser-action--compare" href="https://twinecbd.com/compare" data-compare-nav>
1261                <i class="navUser-item-icon"><svg><use xlink:href="#icon-compare" /></svg></i>
1262                <span class="navUser-item-compareLabel">Compare</span>
1263                <span class="countPill countPill--positive"></span></a>
1264        </li>
1265
1266            <li class="navUser-item navUser-item--more">
1267                <a class="navUser-action navUser-action--more" href="#" id="navUser-more-toggle" data-collapsible="navUser-more-panel" data-group-collapsible="main">
1268                    <i class="navUser-item-icon"><svg><use xlink:href="#icon-account" /></svg></i>
1269                    <span class="navUser-item-moreLabel">More</span>
1270                </a>
1271            </li>
1272
1273        <li class="navUser-item navUser-item--cart">
1274            <a
1275                class="navUser-action"
1276                data-cart-preview
1277                data-dropdown="cart-preview-dropdown"
1278                data-options="align:right"
1279                href="https://twinecbd.com/cart.php">
1280                <i class="navUser-item-icon"><svg><use xlink:href="#icon-cart" /></svg></i>
1281                <span class="navUser-item-cartLabel">Cart</span>
1282                <span class="countPill cart-quantity"></span>
1283            </a>
1284
1285            <div class="dropdown-menu" id="cart-preview-dropdown" data-dropdown-content aria-hidden="true"></div>
1286        </li>
1287    </ul>
1288</nav>
1289        </div>
1290    </div>
1291</header>
1292
1293<div class="bottomBar">
1294    <ul class="bottomBar-list">
1295        <li class="bottomBar-item">
1296            <a class="bottomBar-action bottomBar-action--home" href="/">
1297                <i class="bottomBar-item-icon"><svg><use xlink:href="#icon-home" /></svg></i>
1298                <span class="bottomBar-item-label">Home</span>
1299            </a>
1300        </li>
1301        <li class="bottomBar-item">
1302            <a class="bottomBar-action bottomBar-action--store"
1303                data-collapsible="navCatalog-panel"
1304                data-collapsible-disabled-breakpoint="medium"
1305                data-collapsible-disabled-state="closed"
1306                data-group-collapsible="main">
1307                <i class="bottomBar-item-icon"><svg><use xlink:href="#icon-catalog" /></svg></i>
1308                <span class="bottomBar-item-label">Categories</span>
1309            </a>
1310        </li>
1311        <li class="bottomBar-item">
1312            <a class="bottomBar-action bottomBar-action--account" id="navUser-more-toggle2" data-collapsible="navUser-more-panel" data-group-collapsible="main">
1313                <i class="bottomBar-item-icon"><svg><use xlink:href="#icon-account" /></svg></i>
1314                <span class="bottomBar-item-label">Account</span>
1315            </a>
1316        </li>
1317        <li class="bottomBar-item">
1318            <a class="bottomBar-action bottomBar-action--contact"
1319                data-collapsible="bottomBar-contactPanel"
1320                data-collapsible-disabled-breakpoint="medium"
1321                data-collapsible-disabled-state="closed"
1322                data-group-collapsible="main">
1323                <i class="bottomBar-item-icon"><svg><use xlink:href="#icon-location" /></svg></i>
1324                <span class="bottomBar-item-label">Contact</span>
1325            </a>
1326            <div class="bottomBar-contactPanel" id="bottomBar-contactPanel">
1327                <ul>
1328                    <li><a class="button button--primary button--small" href="mailto:[email protected]">[email protected]</a></li>
1329                            <li><a class="button button--primary button--small" href="tel:678-242-9680">Phone: 678-242-9680</a></li>
1330                        <li><a href="/contact-us/">Contact Us</a></li>
1331                </ul>
1332            </div>
1333        </li>
1334        <li class="bottomBar-item">
1335            <a class="bottomBar-action bottomBar-action--menu" data-mobile-menu-toggle="menu">
1336                <i class="bottomBar-item-icon"><svg><use xlink:href="#icon-more" /></svg></i>
1337                <span class="bottomBar-item-label">More</span>
1338            </a>
1339        </li>
1340    </ul>
1341</div>
1342
1343<div class="dropdown dropdown--quickSearch" id="quickSearch" aria-hidden="true" tabindex="-1" data-prevent-quick-search-close>
1344    <!-- snippet location forms_search -->
1345<a class="modal-close mobileOnly" aria-label="Close" data-drop-down-close role="button">
1346    <span aria-hidden="true">&#215;</span>
1347</a>
1348<form class="form" action="https://twinecbd.com/search.php">
1349    <fieldset class="form-fieldset">
1350        <div class="form-field">
1351            <label class="is-srOnly" for="search_query">Search</label>
1352            <input class="form-input" data-search-quick name="search_query" id="search_query" data-error-message="Search field cannot be empty." placeholder="Search the store" autocomplete="off"
1353                >
1354        </div>
1355    </fieldset>
1356</form>
1357<div class="container">
1358    <section class="quickSearchResults " data-bind="html: results">
1359    </section>
1360</div>
1361</div>
1362
1363<div data-content-region="header_bottom--global"><div data-layout-id="2a39ba56-74f2-4afb-a321-79bc1d0d6ac9">       <div data-sub-layout-container="16030925-7969-40d5-b112-568f759cdee8" data-layout-name="Layout">
1364    <style data-container-styling="16030925-7969-40d5-b112-568f759cdee8">
1365        [data-sub-layout-container="16030925-7969-40d5-b112-568f759cdee8"] {
1366            box-sizing: border-box;
1367            display: flex;
1368            flex-wrap: wrap;
1369            z-index: 0;
1370            position: relative;
1371            height: ;
1372            padding-top: 0px;
1373            padding-right: 0px;
1374            padding-bottom: 0px;
1375            padding-left: 0px;
1376            margin-top: 0px;
1377            margin-right: 0px;
1378            margin-bottom: 0px;
1379            margin-left: 0px;
1380            border-width: 0px;
1381            border-style: solid;
1382            border-color: #333333;
1383        }
1384
1385        [data-sub-layout-container="16030925-7969-40d5-b112-568f759cdee8"]:after {
1386            display: block;
1387            position: absolute;
1388            top: 0;
1389            left: 0;
1390            bottom: 0;
1391            right: 0;
1392            background-size: cover;
1393            z-index: auto;
1394        }
1395    </style>
1396
1397    <div data-sub-layout="72189579-e3e5-482d-907b-b01972e91064">
1398        <style data-column-styling="72189579-e3e5-482d-907b-b01972e91064">
1399            [data-sub-layout="72189579-e3e5-482d-907b-b01972e91064"] {
1400                display: flex;
1401                flex-direction: column;
1402                box-sizing: border-box;
1403                flex-basis: 100%;
1404                max-width: 100%;
1405                z-index: 0;
1406                position: relative;
1407                height: ;
1408                padding-top: 0px;
1409                padding-right: 0px;
1410                padding-bottom: 0px;
1411                padding-left: 0px;
1412                margin-top: 0px;
1413                margin-right: 0px;
1414                margin-bottom: 0px;
1415                margin-left: 0px;
1416                border-width: 0px;
1417                border-style: solid;
1418                border-color: #333333;
1419                justify-content: center;
1420            }
1421            [data-sub-layout="72189579-e3e5-482d-907b-b01972e91064"]:after {
1422                display: block;
1423                position: absolute;
1424                top: 0;
1425                left: 0;
1426                bottom: 0;
1427                right: 0;
1428                background-size: cover;
1429                z-index: auto;
1430            }
1431            @media only screen and (max-width: 700px) {
1432                [data-sub-layout="72189579-e3e5-482d-907b-b01972e91064"] {
1433                    flex-basis: 100%;
1434                    max-width: 100%;
1435                }
1436            }
1437        </style>
1438        <div data-widget-id="11377586-9bc5-489e-9118-c4556588be41" data-placement-id="173020d5-8ec9-43e4-92ed-db0cf1a5831d" data-placement-status="ACTIVE"><style>
1439    #sd-image-11377586-9bc5-489e-9118-c4556588be41 {
1440        display: flex;
1441        align-items: center;
1442        background: url('') no-repeat;
1443        opacity: calc(100 / 100);
1444
1445            cursor: pointer;
1446
1447            background-size: contain;
1448
1449            height: auto;
1450
1451        background-position:
1452                center
1453                center
1454;
1455
1456
1457        padding-top: 0px;
1458        padding-right: 0px;
1459        padding-bottom: 0px;
1460        padding-left: 0px;
1461
1462        margin-top: 0px;
1463        margin-right: 0px;
1464        margin-bottom: 0px;
1465        margin-left: 0px;
1466    }
1467
1468    #sd-image-11377586-9bc5-489e-9118-c4556588be41 * {
1469        margin: 0px;
1470    }
1471
1472    #sd-image-11377586-9bc5-489e-9118-c4556588be41 img {
1473        width: auto;
1474        opacity: 0;
1475
1476            height: auto;
1477    }
1478
1479    @media only screen and (max-width: 700px) {
1480        #sd-image-11377586-9bc5-489e-9118-c4556588be41 { }
1481    }
1482</style>
1483
1484<div>
1485        <div onclick="handleClick('https://twinecbd.com/the-best-pet-cbd-oils-treats/')" role="button">
1486    <div id="sd-image-11377586-9bc5-489e-9118-c4556588be41" data-edit-mode="">
1487        <img src="" alt="">
1488    </div>
1489    </div>
1490</div>
1491
1492<script type="text/javascript">
1493
1494    function handleClick(imageLink) {
1495        var trimmedLink = imageLink.trim();
1496        if (!trimmedLink) { return; }
1497
1498        var selector = "sd-image-11377586-9bc5-489e-9118-c4556588be41";
1499        var element = document.getElementById(selector);
1500        var editMode = element.dataset.editMode || false;
1501
1502        if (editMode !== 'true') {
1503            var urlParts = trimmedLink.split('/');
1504            var protocol = urlParts[0];
1505            var isUnformatted = protocol !== '' &&
1506                protocol.indexOf('http') === -1 &&
1507                trimmedLink.indexOf('.') !== -1;
1508
1509            // check if absolute link and is not properly formatted
1510            if (isUnformatted) {
1511                urlParts.unshift('/');
1512            }
1513
1514            var newUrl = urlParts.join('/');
1515            window.open(newUrl, '_top');
1516        }
1517    }
1518</script>
1518
1519</div>
1520    </div>
1521</div>
1522
1523       <div data-sub-layout-container="6f62f756-b10f-4ef7-8463-cd939f9fe3ba" data-layout-name="Layout">
1524    <style data-container-styling="6f62f756-b10f-4ef7-8463-cd939f9fe3ba">
1525        [data-sub-layout-container="6f62f756-b10f-4ef7-8463-cd939f9fe3ba"] {
1526            box-sizing: border-box;
1527            display: flex;
1528            flex-wrap: wrap;
1529            z-index: 0;
1530            position: relative;
1531            height: ;
1532            padding-top: 0px;
1533            padding-right: 0px;
1534            padding-bottom: 0px;
1535            padding-left: 0px;
1536            margin-top: 0px;
1537            margin-right: 0px;
1538            margin-bottom: 0px;
1539            margin-left: 0px;
1540            border-width: 0px;
1541            border-style: solid;
1542            border-color: #333333;
1543        }
1544
1545        [data-sub-layout-container="6f62f756-b10f-4ef7-8463-cd939f9fe3ba"]:after {
1546            display: block;
1547            position: absolute;
1548            top: 0;
1549            left: 0;
1550            bottom: 0;
1551            right: 0;
1552            background-size: cover;
1553            z-index: auto;
1554        }
1555    </style>
1556
1557    <div data-sub-layout="9fe264ef-dc4e-453e-9dcc-eb0fee09db1f">
1558        <style data-column-styling="9fe264ef-dc4e-453e-9dcc-eb0fee09db1f">
1559            [data-sub-layout="9fe264ef-dc4e-453e-9dcc-eb0fee09db1f"] {
1560                display: flex;
1561                flex-direction: column;
1562                box-sizing: border-box;
1563                flex-basis: 100%;
1564                max-width: 100%;
1565                z-index: 0;
1566                position: relative;
1567                height: ;
1568                padding-top: 0px;
1569                padding-right: 5px;
1570                padding-bottom: 0px;
1571                padding-left: 5px;
1572                margin-top: 0px;
1573                margin-right: 0px;
1574                margin-bottom: 0px;
1575                margin-left: 0px;
1576                border-width: 0px;
1577                border-style: solid;
1578                border-color: #333333;
1579                justify-content: ;
1580            }
1581            [data-sub-layout="9fe264ef-dc4e-453e-9dcc-eb0fee09db1f"]:after {
1582                display: block;
1583                position: absolute;
1584                top: 0;
1585                left: 0;
1586                bottom: 0;
1587                right: 0;
1588                background-size: cover;
1589                z-index: auto;
1590            }
1591            @media only screen and (max-width: 700px) {
1592                [data-sub-layout="9fe264ef-dc4e-453e-9dcc-eb0fee09db1f"] {
1593                    flex-basis: 100%;
1594                    max-width: 100%;
1595                }
1596            }
1597        </style>
1598    </div>
1599</div>
1600
1601       <div data-sub-layout-container="93b55728-0451-4faf-b372-5cb4343ad867" data-layout-name="Layout">
1602    <style data-container-styling="93b55728-0451-4faf-b372-5cb4343ad867">
1603        [data-sub-layout-container="93b55728-0451-4faf-b372-5cb4343ad867"] {
1604            box-sizing: border-box;
1605            display: flex;
1606            flex-wrap: wrap;
1607            z-index: 0;
1608            position: relative;
1609            height: ;
1610            padding-top: 0px;
1611            padding-right: 0px;
1612            padding-bottom: 0px;
1613            padding-left: 0px;
1614            margin-top: 0px;
1615            margin-right: 0px;
1616            margin-bottom: 0px;
1617            margin-left: 0px;
1618            border-width: 0px;
1619            border-style: solid;
1620            border-color: #333333;
1621        }
1622
1623        [data-sub-layout-container="93b55728-0451-4faf-b372-5cb4343ad867"]:after {
1624            display: block;
1625            position: absolute;
1626            top: 0;
1627            left: 0;
1628            bottom: 0;
1629            right: 0;
1630            background-size: cover;
1631            z-index: auto;
1632        }
1633    </style>
1634
1635    <div data-sub-layout="218b1a1b-1a6b-4354-b418-62c7b741294f">
1636        <style data-column-styling="218b1a1b-1a6b-4354-b418-62c7b741294f">
1637            [data-sub-layout="218b1a1b-1a6b-4354-b418-62c7b741294f"] {
1638                display: flex;
1639                flex-direction: column;
1640                box-sizing: border-box;
1641                flex-basis: 100%;
1642                max-width: 100%;
1643                z-index: 0;
1644                position: relative;
1645                height: ;
1646                padding-top: 0px;
1647                padding-right: 10.5px;
1648                padding-bottom: 0px;
1649                padding-left: 10.5px;
1650                margin-top: 0px;
1651                margin-right: 0px;
1652                margin-bottom: 0px;
1653                margin-left: 0px;
1654                border-width: 0px;
1655                border-style: solid;
1656                border-color: #333333;
1657                justify-content: center;
1658            }
1659            [data-sub-layout="218b1a1b-1a6b-4354-b418-62c7b741294f"]:after {
1660                display: block;
1661                position: absolute;
1662                top: 0;
1663                left: 0;
1664                bottom: 0;
1665                right: 0;
1666                background-size: cover;
1667                z-index: auto;
1668            }
1669            @media only screen and (max-width: 700px) {
1670                [data-sub-layout="218b1a1b-1a6b-4354-b418-62c7b741294f"] {
1671                    flex-basis: 100%;
1672                    max-width: 100%;
1673                }
1674            }
1675        </style>
1676    </div>
1677</div>
1678
1679       <div data-sub-layout-container="9de2e54c-d4f2-41c5-8a04-2fd270916025" data-layout-name="Layout">
1680    <style data-container-styling="9de2e54c-d4f2-41c5-8a04-2fd270916025">
1681        [data-sub-layout-container="9de2e54c-d4f2-41c5-8a04-2fd270916025"] {
1682            box-sizing: border-box;
1683            display: flex;
1684            flex-wrap: wrap;
1685            z-index: 0;
1686            position: relative;
1687            height: ;
1688            padding-top: 0px;
1689            padding-right: 0px;
1690            padding-bottom: 0px;
1691            padding-left: 0px;
1692            margin-top: 0px;
1693            margin-right: 0px;
1694            margin-bottom: 0px;
1695            margin-left: 0px;
1696            border-width: 0px;
1697            border-style: solid;
1698            border-color: #333333;
1699        }
1700
1701        [data-sub-layout-container="9de2e54c-d4f2-41c5-8a04-2fd270916025"]:after {
1702            display: block;
1703            position: absolute;
1704            top: 0;
1705            left: 0;
1706            bottom: 0;
1707            right: 0;
1708            background-size: cover;
1709            z-index: auto;
1710        }
1711    </style>
1712
1713    <div data-sub-layout="e5767cc4-440e-4d39-8bfe-072c05ebcabf">
1714        <style data-column-styling="e5767cc4-440e-4d39-8bfe-072c05ebcabf">
1715            [data-sub-layout="e5767cc4-440e-4d39-8bfe-072c05ebcabf"] {
1716                display: flex;
1717                flex-direction: column;
1718                box-sizing: border-box;
1719                flex-basis: 100%;
1720                max-width: 100%;
1721                z-index: 0;
1722                position: relative;
1723                height: ;
1724                background-color: rgba(0, 0, 0, 0);
1725                padding-top: 0px;
1726                padding-right: 0px;
1727                padding-bottom: 0px;
1728                padding-left: 0px;
1729                margin-top: 0px;
1730                margin-right: 0px;
1731                margin-bottom: 0px;
1732                margin-left: 0px;
1733                border-width: 0px;
1734                border-style: solid;
1735                border-color: #333333;
1736                justify-content: center;
1737            }
1738            [data-sub-layout="e5767cc4-440e-4d39-8bfe-072c05ebcabf"]:after {
1739                display: block;
1740                position: absolute;
1741                top: 0;
1742                left: 0;
1743                bottom: 0;
1744                right: 0;
1745                background-size: cover;
1746                z-index: -1;
1747                content: '';
1748            }
1749            @media only screen and (max-width: 700px) {
1750                [data-sub-layout="e5767cc4-440e-4d39-8bfe-072c05ebcabf"] {
1751                    flex-basis: 100%;
1752                    max-width: 100%;
1753                }
1754            }
1755        </style>
1756    </div>
1757</div>
1758
1759</div></div>
1760<div data-content-region="header_bottom"></div>
1761        <div class="body" data-currency-code="USD">
1762     
1763     
1764    <div class="container">
1765        
1766<ul class="breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">
1767            <li class="breadcrumb " itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
1768                <a data-instantload href="https://twinecbd.com/" class="breadcrumb-label" itemprop="item">
1769                    <span itemprop="name">Home</span>
1770                    <meta itemprop="position" content="0" />
1771                </a>
1772            </li>
1773            <li class="breadcrumb is-active" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
1774                <a data-instantload href="/blog/" class="breadcrumb-label" itemprop="item">
1775                    <span itemprop="name">Blog</span>
1776                    <meta itemprop="position" content="1" />
1777                </a>
1778            </li>
1779</ul>
1780
1781<main class="page">
1782    <div class="page-content page-content--centered">
1783        <h1 class="page-heading">Blog</h1>
1784
1785            <article class="blog">
1786    <div class="blog-post-figure">
1787            <figure class="blog-thumbnail">
1788                <a href="https://twinecbd.com/blog/a-winddown-routine-for-shorter-evenings/">
1789                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/blog-sleep.jpg?t=1790797102" alt="A Wind-Down Routine for Shorter Evenings" title="A Wind-Down Routine for Shorter Evenings">
1790                </a>
1791            </figure>
1792    </div>
1793
1794    <div class="blog-post-body">
1795        <header class="blog-header">
1796                <h2 class="blog-title"><a href="https://twinecbd.com/blog/a-winddown-routine-for-shorter-evenings/">A Wind-Down Routine for Shorter Evenings</a></h2>
1797                        <p class="blog-date">Sep 30th 2026</p>
1798        </header>
1799
1800        <div class="blog-post">
1801                The sun sets earlier now. Let it put you to bed.
1802Somewhere between the end of summer and the first real chill of fall, evenings start to feel different. The light fades before dinner is on the table.
1803                    &hellip; <a href="https://twinecbd.com/blog/a-winddown-routine-for-shorter-evenings/">read more</a>
1804        </div>
1805
1806
1807
1808
1809    </div>
1810</article>
1811            <article class="blog">
1812    <div class="blog-post-figure">
1813            <figure class="blog-thumbnail">
1814                <a href="https://twinecbd.com/blog/how-to-pick-your-first-cbd-product-format-strength-and-when-to-use-what/">
1815                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/blog-where-to-start.jpg?t=1
1815790795377" alt="How to Pick Your First CBD Product: Format, Strength, and When to Use What" title="How to Pick Your First CBD Product: Format, Strength, and When to Use What">
1816                </a>
1817            </figure>
1818    </div>
1819
1820    <div class="blog-post-body">
1821        <header class="blog-header">
1822                <h2 class="blog-title"><a href="https://twinecbd.com/blog/how-to-pick-your-first-cbd-product-format-strength-and-when-to-use-what/">How to Pick Your First CBD Product: Format, Strength, and When to Use What</a></h2>
1823                        <p class="blog-date">Sep 30th 2026</p>
1824        </header>
1825
1826        <div class="blog-post">
1827                Starting with CBD can feel overwhelming. Gummies, rollers, creams, oils, different milligrams on every label. Where do you even begin?
1828Here's the simple version: start with what you want help with, th
1829                    &hellip; <a href="https://twinecbd.com/blog/how-to-pick-your-first-cbd-product-format-strength-and-when-to-use-what/">read more</a>
1830        </div>
1831
1832
1833
1834
1835    </div>
1836</article>
1837            <article class="blog">
1838    <div class="blog-post-figure">
1839            <figure class="blog-thumbnail">
1840                <a href="https://twinecbd.com/blog/the-fall-switchover-what-to-rotate-in-on-the-first-day-of-fall/">
1841                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/blog-the-fall-switch-over-what-to-rotate-in-on-the-first-day-of-fall.jpg?t=1788196037" alt="The Fall Switch-Over: What to Rotate In on the First Day of Fall" title="The Fall Switch-Over: What to Rotate In on the First Day of Fall">
1842                </a>
1843            </figure>
1844    </div>
1845
1846    <div class="blog-post-body">
1847        <header class="blog-header">
1848                <h2 class="blog-title"><a href="https://twinecbd.com/blog/the-fall-switchover-what-to-rotate-in-on-the-first-day-of-fall/">The Fall Switch-Over: What to Rotate In on the First Day of Fall</a></h2>
1849                        <p class="blog-date">Aug 31st 2026</p>
1850        </header>
1851
1852        <div class="blog-post">
1853                Nobody actually overhauls their whole life on the first day of fall. You don't wake up on September 22 as a different person with a new routine and a color-coded planner. That version of "fall wellnes
1854                    &hellip; <a href="https://twinecbd.com/blog/the-fall-switchover-what-to-rotate-in-on-the-first-day-of-fall/">read more</a>
1855        </div>
1856
1857
1858
1859
1860    </div>
1861</article>
1862            <article class="blog">
1863    <div class="blog-post-figure">
1864            <figure class="blog-thumbnail">
1865                <a href="https://twinecbd.com/blog/what-your-skin-is-actually-doing-when-the-weather-turns/">
1866                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/blog-what-your-skin-is-actually-doing-when-the-weather-turns.jpg?t=1788194732" alt="What Your Skin Is Actually Doing When the Weather Turns" title="What Your Skin Is Actually Doing When the Weather Turns">
1867                </a>
1868            </figure>
1869    </div>
1870
1871    <div class="blog-post-body">
1872        <header class="blog-header">
1873                <h2 class="blog-title"><a href="https://twinecbd.com/blog/what-your-skin-is-actually-doing-when-the-weather-turns/">What Your Skin Is Actually Doing When the Weather Turns</a></h2>
1874                        <p class="blog-date">Aug 31st 2026</p>
1875        </header>
1876
1877        <div class="blog-post">
1878                You know the feeling. One week your skin is behaving, and the next it feels tight after a shower, looks a little dull, or gets flaky in spots that were fine a month ago. It can feel random, like your
1879                    &hellip; <a href="https://twinecbd.com/blog/what-your-skin-is-actually-doing-when-the-weather-turns/">read more</a>
1880        </div>
1881
1882
1883
1884
1885    </div>
1886</article>
1887            <article class="blog">
1888    <div class="blog-post-figure">
1889            <figure class="blog-thumbnail">
1890                <a href="https://twinecbd.com/blog/pickleball-recovery-how-to-cool-down-and-bounce-back-after-the-court/">
1891                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/blog-pickleball-recovery-.jpg?t=1787085397" alt="Pickleball Recovery: How to Cool Down and Bounce Back After the Court" title="Pickleball Recovery: How to Cool Down and Bounce Back After the Court">
1892                </a>
1893            </figure>
1894    </div>
1895
1896    <div class="blog-post-body">
1897        <header class="blog-header">
1898                <h2 class="blog-title"><a href="https://twinecbd.com/blog/pickleball-recovery-how-to-cool-down-and-bounce-back-after-the-court/">Pickleball Recovery: How to Cool Down and Bounce Back After the Court</a></h2>
1899                        <p class="blog-date">Aug 18th 2026</p>
1900        </header>
1901
1902        <div class="blog-post">
1903                If you play pickleball, you already know the truth nobody warns you about. You show up for one game, and three hours later you are still out there saying "okay, last one" for the sixth time. It is the
1904                    &hellip; <a href="https://twinecbd.com/blog/pickleball-recovery-how-to-cool-down-and-bounce-back-after-the-court/">read more</a>
1905        </div>
1906
1907
1908
1909
1910    </div>
1911</article>
1912            <article class="blog">
1913    <div class="blog-post-figure">
1914            <figure class="blog-thumbnail">
1915                <a href="https://twinecbd.com/blog/what-cbd-actually-does-when-youre-stressed/">
1916                    <img class="lazyload" data-sizes="auto" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/832x750/uploaded_images/the-science-of-calm-blog.jpg?t=1
1916785856616" alt="What CBD Actually Does When You&#x27;re Stressed" title="What CBD Actually Does When You&#x27;re Stressed">
1917                </a>
1918            </figure>
1919    </div>
1920
1921    <div class="blog-post-body">
1922        <header class="blog-header">
1923                <h2 class="blog-title"><a href="https://twinecbd.com/blog/what-cbd-actually-does-when-youre-stressed/">What CBD Actually Does When You&#x27;re Stressed</a></h2>
1924                        <p class="blog-date">Aug 4th 2026</p>
1925        </header>
1926
1927        <div class="blog-post">
1928                You know the feeling. Your shoulders are up around your ears, your brain has forty tabs open, and you cannot remember the last time you took a full breath. Stress does that. It lives in the body, not
1929                    &hellip; <a href="https://twinecbd.com/blog/what-cbd-actually-does-when-youre-stressed/">read more</a>
1930        </div>
1931
1932
1933
1934
1935    </div>
1936</article>
1937
1938        <div class="pagination">
1939    <ul class="pagination-list">
1940                <li class="pagination-item pagination-item--current">
1941                    <a class="pagination-link" href="https://twinecbd.com/blog/?page=1" data-faceted-search-facet>1</a>
1942                </li>
1943                <li class="pagination-item">
1944                    <a class="pagination-link" href="https://twinecbd.com/blog/?page=2" data-faceted-search-facet>2</a>
1945                </li>
1946                <li class="pagination-item">
1947                    <a class="pagination-link" href="https://twinecbd.com/blog/?page=3" data-faceted-search-facet>3</a>
1948                </li>
1949                <li class="pagination-item">
1950                    <a class="pagination-link" href="https://twinecbd.com/blog/?page=4" data-faceted-search-facet>4</a>
1951                </li>
1952
1953            <li class="pagination-item pagination-item--next">
1954                <a class="pagination-link" href="https://twinecbd.com/blog/?page=2" data-faceted-search-facet>
1955                    Next
1956                    <i class="icon" aria-hidden="true">
1957                        <svg>
1958                            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-chevron-right"></use>
1959                        </svg>
1960                    </i>
1961                </a>
1962            </li>
1963    </ul>
1964</div>
1965    </div>
1966</main>
1967
1968
1969    </div>
1970     
1971    <div id="modal" class="modal" data-reveal data-prevent-quick-search-close>
1972    <a href="#" class="modal-close" aria-label="Close" role="button">
1973        <span aria-hidden="true">&#215;</span>
1974    </a>
1975    <div class="modal-content"></div>
1976    <div class="loadingOverlay"></div>
1977</div>
1978
1979<div id="previewModal" class="modal modal--large" data-reveal>
1980    <a href="#" class="modal-close" aria-label="Close" role="button">
1981        <span aria-hidden="true">&#215;</span>
1982    </a>
1983    <div class="modal-content"></div>
1984    <div class="loadingOverlay"></div>
1985</div>
1986    <div id="alert-modal" class="modal modal--alert modal--small" data-reveal data-prevent-quick-search-close>
1987    <div class="swal2-icon swal2-error swal2-animate-error-icon"><span class="swal2-x-mark swal2-animate-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span></div>
1988
1989    <div class="modal-content"></div>
1990
1991    <div class="button-container"><button type="button" class="confirm button" data-reveal-close>OK</button></div>
1992</div>
1993</div>
1994        
1995<div data-content-region="footer_before"></div>
1996<div data-content-region="footer_before--global"><div data-layout-id="27cf3f1a-5d21-4e90-9f58-babe08237e9f">       <div data-sub-layout-container="9ab8a404-d260-43e1-bb0b-4de1e9914398" data-layout-name="Layout">
1997    <style data-container-styling="9ab8a404-d260-43e1-bb0b-4de1e9914398">
1998        [data-sub-layout-container="9ab8a404-d260-43e1-bb0b-4de1e9914398"] {
1999            box-sizing: border-box;
2000            display: flex;
2001            flex-wrap: wrap;
2002            z-index: 0;
2003            position: relative;
2004            height: ;
2005            padding-top: 0px;
2006            padding-right: 0px;
2007            padding-bottom: 0px;
2008            padding-left: 0px;
2009            margin-top: 0px;
2010            margin-right: 0px;
2011            margin-bottom: 0px;
2012            margin-left: 0px;
2013            border-width: 0px;
2014            border-style: solid;
2015            border-color: #333333;
2016        }
2017
2018        [data-sub-layout-container="9ab8a404-d260-43e1-bb0b-4de1e9914398"]:after {
2019            display: block;
2020            position: absolute;
2021            top: 0;
2022            left: 0;
2023            bottom: 0;
2024            right: 0;
2025            background-size: cover;
2026            z-index: auto;
2027        }
2028    </style>
2029
2030    <div data-sub-layout="dbc949f6-cef1-438d-99af-9704e05d9181">
2031        <style data-column-styling="dbc949f6-cef1-438d-99af-9704e05d9181">
2032            [data-sub-layout="dbc949f6-cef1-438d-99af-9704e05d9181"] {
2033                display: flex;
2034                flex-direction: column;
2035                box-sizing: border-box;
2036                flex-basis: 100%;
2037                max-width: 100%;
2038                z-index: 0;
2039                position: relative;
2040                height: ;
2041                padding-top: 0px;
2042                padding-right: 10.5px;
2043                padding-bottom: 0px;
2044                padding-left: 10.5px;
2045                margin-top: 0px;
2046                margin-right: 0px;
2047                margin-bottom: 0px;
2048                margin-left: 0px;
2049                border-width: 0px;
2050                border-style: solid;
2051                border-color: #333333;
2052                justify-content: center;
2053            }
2054            [data-sub-layout="dbc949f6-cef1-438d-99af-9704e05d9181"]:after {
2055                display: block;
2056                position: absolute;
2057                top: 0;
2058                left: 0;
2059                bottom: 0;
2060                right: 0;
2061                background-size: cover;
2062                z-index: auto;
2063            }
2064            @media only screen and (max-width: 700px) {
2065                [data-sub-layout="dbc949f6-cef1-438d-99af-9704e05d9181"] {
2066                    flex-basis: 100%;
2067                    max-width: 100%;
2068                }
2069            }
2070        </style>
2071    </div>
2072</div>
2073
2074       <div data-sub-layout-container="f8fd3748-9c08-4b7b-9d5e-7ba6eb228687" data-layout-name="Layout">
2075    <style data-container-styling="f8fd3748-9c08-4b7b-9d5e-7ba6eb228687">
2076        [data-sub-layout-container="f8fd3748-9c08-4b7b-9d5e-7ba6eb228687"] {
2077            box-sizing: border-box;
2078            display: flex;
2079            flex-wrap: wrap;
2080            z-index: 0;
2081            position: relative;
2082            height: ;
2083            padding-top: 0px;
2084            padding-right: 0px;
2085            padding-bottom: 0px;
2086            padding-left: 0px;
2087            margin-top: 0px;
2088            margin-right: 0px;
2089            margin-bottom: 0px;
2090            margin-left: 0px;
2091            border-width: 0px;
2092            border-style: solid;
2093            border-color: #333333;
2094        }
2095
2096        [data-sub-layout-container="f8fd3748-9c08-4b7b-9d5e-7ba6eb228687"]:after {
2097            display: block;
2098            position: absolute;
2099            top: 0;
2100            left: 0;
2101            bottom: 0;
2102            right: 0;
2103            background-size: cover;
2104            z-index: auto;
2105        }
2106    </style>
2107
2108    <div data-sub-layout="3f7bc7ab-6545-4f5e-b86c-85c286b0a45c">
2109        <style data-column-styling="3f7bc7ab-6545-4f5e-b86c-85c286b0a45c">
2110            [data-sub-layout="3f7bc7ab-6545-4f5e-b86c-85c286b0a45c"] {
2111                display: flex;
2112                flex-direction: column;
2113                box-sizing: border-box;
2114                flex-basis: 100%;
2115                max-width: 100%;
2116                z-index: 0;
2117                position: relative;
2118                height: ;
2119                padding-top: 0px;
2120                padding-right: 10.5px;
2121                padding-bottom: 0px;
2122                padding-left: 10.5px;
2123                margin-top: 0px;
2124                margin-right: 0px;
2125                margin-bottom: 0px;
2126                margin-left: 0px;
2127                border-width: 0px;
2128                border-style: solid;
2129                border-color: #333333;
2130                justify-content: center;
2131            }
2132            [data-sub-layout="3f7bc7ab-6545-4f5e-b86c-85c286b0a45c"]:after {
2133                display: block;
2134                position: absolute;
2135                top: 0;
2136                left: 0;
2137                bottom: 0;
2138                right: 0;
2139                background-size: cover;
2140                z-index: auto;
2141            }
2142            @media only screen and (max-width: 700px) {
2143                [data-sub-layout="3f7bc7ab-6545-4f5e-b86c-85c286b0a45c"] {
2144                    flex-basis: 100%;
2145                    max-width: 100%;
2146                }
2147            }
2148        </style>
2149    </div>
2150</div>
2151
2152       <div data-sub-layout-container="08f4027f-7bc4-4242-ba01-90a2581ec028" data-layout-name="Layout">
2153    <style data-container-styling="08f4027f-7bc4-4242-ba01-90a2581ec028">
2154        [data-sub-layout-container="08f4027f-7bc4-4242-ba01-90a2581ec028"] {
2155            box-sizing: border-box;
2156            display: flex;
2157            flex-wrap: wrap;
2158            z-index: 0;
2159            position: relative;
2160            height: ;
2161            padding-top: 0px;
2162            padding-right: 0px;
2163            padding-bottom: 0px;
2164            padding-left: 0px;
2165            margin-top: 0px;
2166            margin-right: 0px;
2167            margin-bottom: 0px;
2168            margin-left: 0px;
2169            border-width: 0px;
2170            border-style: solid;
2171            border-color: #333333;
2172        }
2173
2174        [data-sub-layout-container="08f4027f-7bc4-4242-ba01-90a2581ec028"]:after {
2175            display: block;
2176            position: absolute;
2177            top: 0;
2178            left: 0;
2179            bottom: 0;
2180            right: 0;
2181            background-size: cover;
2182            z-index: auto;
2183        }
2184    </style>
2185
2186    <div data-sub-layout="e02f14df-cc82-45a6-83cf-0614c665882f">
2187        <style data-column-styling="e02f14df-cc82-45a6-83cf-0614c665882f">
2188            [data-sub-layout="e02f14df-cc82-45a6-83cf-0614c665882f"] {
2189                display: flex;
2190                flex-direction: column;
2191                box-sizing: border-box;
2192                flex-basis: 100%;
2193                max-width: 100%;
2194                z-index: 0;
2195                position: relative;
2196                height: ;
2197                padding-top: 0px;
2198                padding-right: 10.5px;
2199                padding-bottom: 0px;
2200                padding-left: 10.5px;
2201                margin-top: 0px;
2202                margin-right: 0px;
2203                margin-bottom: 0px;
2204                margin-left: 0px;
2205                border-width: 0px;
2206                border-style: solid;
2207                border-color: #333333;
2208                justify-content: center;
2209            }
2210            [data-sub-layout="e02f14df-cc82-45a6-83cf-0614c665882f"]:after {
2211                display: block;
2212                position: absolute;
2213                top: 0;
2214                left: 0;
2215                bottom: 0;
2216                right: 0;
2217                background-size: cover;
2218                z-index: auto;
2219            }
2220            @media only screen and (max-width: 700px) {
2221                [data-sub-layout="e02f14df-cc82-45a6-83cf-0614c665882f"] {
2222                    flex-basis: 100%;
2223                    max-width: 100%;
2224                }
2225            }
2226        </style>
2227    </div>
2228</div>
2229
2230       <div data-sub-layout-container="1242a40c-c1b9-4fcb-9c4e-62db1eaf2124" data-layout-name="Layout">
2231    <style data-container-styling="1242a40c-c1b9-4fcb-9c4e-62db1eaf2124">
2232        [data-sub-layout-container="1242a40c-c1b9-4fcb-9c4e-62db1eaf2124"] {
2233            box-sizing: border-box;
2234            display: flex;
2235            flex-wrap: wrap;
2236            z-index: 0;
2237            position: relative;
2238            height: ;
2239            padding-top: 0px;
2240            padding-right: 0px;
2241            padding-bottom: 0px;
2242            padding-left: 0px;
2243            margin-top: 0px;
2244            margin-right: 0px;
2245            margin-bottom: 0px;
2246            margin-left: 0px;
2247            border-width: 0px;
2248            border-style: solid;
2249            border-color: #333333;
2250        }
2251
2252        [data-sub-layout-container="1242a40c-c1b9-4fcb-9c4e-62db1eaf2124"]:after {
2253            display: block;
2254            position: absolute;
2255            top: 0;
2256            left: 0;
2257            bottom: 0;
2258            right: 0;
2259            background-size: cover;
2260            z-index: auto;
2261        }
2262    </style>
2263
2264    <div data-sub-layout="55cbbcd6-7380-4abf-8a92-2ba821751854">
2265        <style data-column-styling="55cbbcd6-7380-4abf-8a92-2ba821751854">
2266            [data-sub-layout="55cbbcd6-7380-4abf-8a92-2ba821751854"] {
2267                display: flex;
2268                flex-direction: column;
2269                box-sizing: border-box;
2270                flex-basis: 100%;
2271                max-width: 100%;
2272                z-index: 0;
2273                position: relative;
2274                height: ;
2275                padding-top: 0px;
2276                padding-right: 10.5px;
2277                padding-bottom: 0px;
2278                padding-left: 10.5px;
2279                margin-top: 0px;
2280                margin-right: 0px;
2281                margin-bottom: 0px;
2282                margin-left: 0px;
2283                border-width: 0px;
2284                border-style: solid;
2285                border-color: #333333;
2286                justify-content: center;
2287            }
2288            [data-sub-layout="55cbbcd6-7380-4abf-8a92-2ba821751854"]:after {
2289                display: block;
2290                position: absolute;
2291                top: 0;
2292                left: 0;
2293                bottom: 0;
2294                right: 0;
2295                background-size: cover;
2296                z-index: auto;
2297            }
2298            @media only screen and (max-width: 700px) {
2299                [data-sub-layout="55cbbcd6-7380-4abf-8a92-2ba821751854"] {
2300                    flex-basis: 100%;
2301                    max-width: 100%;
2302                }
2303            }
2304        </style>
2305        <div data-widget-id="79fc86de-cf05-499f-add8-b198ed02148e" data-placement-id="43ce556f-37b8-4e8f-bede-41bc9250fbfa" data-placement-status="ACTIVE"><style>
2306  .sd-spacer-79fc86de-cf05-499f-add8-b198ed02148e {
2307    height: 50px;
2308  }
2309</style>
2310
2311<div class="sd-spacer-79fc86de-cf05-499f-add8-b198ed02148e">
2312</div>
2313</div>
2314    </div>
2315</div>
2316
2317       <div data-sub-layout-container="c324c5e5-238f-4030-844b-5c695dfb9e95" data-layout-name="Layout">
2318    <style data-container-styling="c324c5e5-238f-4030-844b-5c695dfb9e95">
2319        [data-sub-layout-container="c324c5e5-238f-4030-844b-5c695dfb9e95"] {
2320            box-sizing: border-box;
2321            display: flex;
2322            flex-wrap: wrap;
2323            z-index: 0;
2324            position: relative;
2325            height: ;
2326            padding-top: 10px;
2327            padding-right: 0px;
2328            padding-bottom: 10px;
2329            padding-left: 0px;
2330            margin-top: 0px;
2331            margin-right: 0px;
2332            margin-bottom: 0px;
2333            margin-left: 0px;
2334            border-width: 0px;
2335            border-style: solid;
2336            border-color: #333333;
2337        }
2338
2339        [data-sub-layout-container="c324c5e5-238f-4030-844b-5c695dfb9e95"]:after {
2340            display: block;
2341            position: absolute;
2342            top: 0;
2343            left: 0;
2344            bottom: 0;
2345            right: 0;
2346            background-size: cover;
2347            z-index: auto;
2348        }
2349    </style>
2350
2351    <div data-sub-layout="41de59f2-ea0e-4f6d-96cf-f52b4a976e29">
2352        <style data-column-styling="41de59f2-ea0e-4f6d-96cf-f52b4a976e29">
2353            [data-sub-layout="41de59f2-ea0e-4f6d-96cf-f52b4a976e29"] {
2354                display: flex;
2355                flex-direction: column;
2356                box-sizing: border-box;
2357                flex-basis: 33.333333%;
2358                max-width: 33.333333%;
2359                z-index: 0;
2360                position: relative;
2361                height: ;
2362                padding-top: 10px;
2363                padding-right: 10.5px;
2364                padding-bottom: 10px;
2365                padding-left: 10.5px;
2366                margin-top: 0px;
2367                margin-right: 0px;
2368                margin-bottom: 0px;
2369                margin-left: 0px;
2370                border-width: 0px;
2371                border-style: solid;
2372                border-color: #333333;
2373                justify-content: center;
2374            }
2375            [data-sub-layout="41de59f2-ea0e-4f6d-96cf-f52b4a976e29"]:after {
2376                display: block;
2377                position: absolute;
2378                top: 0;
2379                left: 0;
2380                bottom: 0;
2381                right: 0;
2382                background-size: cover;
2383                z-index: auto;
2384            }
2385            @media only screen and (max-width: 700px) {
2386                [data-sub-layout="41de59f2-ea0e-4f6d-96cf-f52b4a976e29"] {
2387                    flex-basis: 100%;
2388                    max-width: 100%;
2389                }
2390            }
2391        </style>
2392        <div data-widget-id="6a069b7a-45c0-4f44-a43e-71ba81dec847" data-placement-id="616215f9-d22f-4c3a-9cde-9eb1b1cb95e5" data-placement-status="ACTIVE"><style>
2393    #sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847 {
2394        display: flex;
2395        align-items: center;
2396        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/products-with-a-purpose-2.jpg?t=1713125563') no-repeat;
2397        opacity: calc(100 / 100);
2398
2399
2400            background-size: contain;
2401
2402            height: auto;
2403
2404        background-position:
2405                center
2406                center
2407;
2408
2409
2410        padding-top: 0px;
2411        padding-right: 0px;
2412        padding-bottom: 0px;
2413        padding-left: 0px;
2414
2415        margin-top: 0px;
2416        margin-right: 0px;
2417        margin-bottom: 0px;
2418        margin-left: 0px;
2419    }
2420
2421    #sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847 * {
2422        margin: 0px;
2423    }
2424
2425    #sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847 img {
2426        width: auto;
2427        opacity: 0;
2428
2429            height: auto;
2430    }
2431
2432    @media only screen and (max-width: 700px) {
2433        #sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847 { }
2434    }
2435</style>
2436
2437<div>
2438    <div id="sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847" data-edit-mode="">
2439        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/
2439products-with-a-purpose-2.jpg?t=1713125563" alt="">
2440    </div>
2441    
2442</div>
2443
2444<script type="text/javascript">
2445
2446    function handleClick(imageLink) {
2447        var trimmedLink = imageLink.trim();
2448        if (!trimmedLink) { return; }
2449
2450        var selector = "sd-image-6a069b7a-45c0-4f44-a43e-71ba81dec847";
2451        var element = document.getElementById(selector);
2452        var editMode = element.dataset.editMode || false;
2453
2454        if (editMode !== 'true') {
2455            var urlParts = trimmedLink.split('/');
2456            var protocol = urlParts[0];
2457            var isUnformatted = protocol !== '' &&
2458                protocol.indexOf('http') === -1 &&
2459                trimmedLink.indexOf('.') !== -1;
2460
2461            // check if absolute link and is not properly formatted
2462            if (isUnformatted) {
2463                urlParts.unshift('/');
2464            }
2465
2466            var newUrl = urlParts.join('/');
2467            window.open(newUrl, '_top');
2468        }
2469    }
2470</script>
2470
2471</div>
2472    </div>
2473    <div data-sub-layout="78b6e088-c5a7-41a7-986f-f8c29d0f37b7">
2474        <style data-column-styling="78b6e088-c5a7-41a7-986f-f8c29d0f37b7">
2475            [data-sub-layout="78b6e088-c5a7-41a7-986f-f8c29d0f37b7"] {
2476                display: flex;
2477                flex-direction: column;
2478                box-sizing: border-box;
2479                flex-basis: 33.333333%;
2480                max-width: 33.333333%;
2481                z-index: 0;
2482                position: relative;
2483                height: ;
2484                padding-top: 10px;
2485                padding-right: 10.5px;
2486                padding-bottom: 10px;
2487                padding-left: 10.5px;
2488                margin-top: 0px;
2489                margin-right: 0px;
2490                margin-bottom: 0px;
2491                margin-left: 0px;
2492                border-width: 0px;
2493                border-style: solid;
2494                border-color: #333333;
2495                justify-content: center;
2496            }
2497            [data-sub-layout="78b6e088-c5a7-41a7-986f-f8c29d0f37b7"]:after {
2498                display: block;
2499                position: absolute;
2500                top: 0;
2501                left: 0;
2502                bottom: 0;
2503                right: 0;
2504                background-size: cover;
2505                z-index: auto;
2506            }
2507            @media only screen and (max-width: 700px) {
2508                [data-sub-layout="78b6e088-c5a7-41a7-986f-f8c29d0f37b7"] {
2509                    flex-basis: 100%;
2510                    max-width: 100%;
2511                }
2512            }
2513        </style>
2514        <div data-widget-id="baa46095-4362-4fd1-9d07-df17708eb6bd" data-placement-id="b4398b18-34ab-460f-bcea-4e5796a1914b" data-placement-status="ACTIVE"><style>
2515    #sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd {
2516        display: flex;
2517        align-items: center;
2518        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/angie-and-missy-co-founders-of-twine.jpg?t=1771349713') no-repeat;
2519        opacity: calc(100 / 100);
2520
2521
2522            background-size: contain;
2523
2524            height: auto;
2525
2526        background-position:
2527                center
2528                center
2529;
2530
2531
2532        padding-top: 0px;
2533        padding-right: 0px;
2534        padding-bottom: 0px;
2535        padding-left: 0px;
2536
2537        margin-top: 0px;
2538        margin-right: 0px;
2539        margin-bottom: 0px;
2540        margin-left: 0px;
2541    }
2542
2543    #sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd * {
2544        margin: 0px;
2545    }
2546
2547    #sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd img {
2548        width: auto;
2549        opacity: 0;
2550
2551            height: auto;
2552    }
2553
2554    @media only screen and (max-width: 700px) {
2555        #sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd { }
2556    }
2557</style>
2558
2559<div>
2560    <div id="sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd" data-edit-mode="">
2561        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/angie-and-missy-co-founders-of-twine.jpg?t=1771349713" alt="">
2562    </div>
2563    
2564</div>
2565
2566<script type="text/javascript">
2567
2568    function handleClick(imageLink) {
2569        var trimmedLink = imageLink.trim();
2570        if (!trimmedLink) { return; }
2571
2572        var selector = "sd-image-baa46095-4362-4fd1-9d07-df17708eb6bd";
2573        var element = document.getElementById(selector);
2574        var editMode = element.dataset.editMode || false;
2575
2576        if (editMode !== 'true') {
2577            var urlParts = trimmedLink.split('/');
2578            var protocol = urlParts[0];
2579            var isUnformatted = protocol !== '' &&
2580                protocol.indexOf('http') === -1 &&
2581                trimmedLink.indexOf('.') !== -1;
2582
2583            // check if absolute link and is not properly formatted
2584            if (isUnformatted) {
2585                urlParts.unshift('/');
2586            }
2587
2588            var newUrl = urlParts.join('/');
2589            window.open(newUrl, '_top');
2590        }
2591    }
2592</script>
2592
2593</div>
2594    </div>
2595    <div data-sub-layout="750e921a-6805-4f4f-b67b-28400ecfd4b3">
2596        <style data-column-styling="750e921a-6805-4f4f-b67b-28400ecfd4b3">
2597            [data-sub-layout="750e921a-6805-4f4f-b67b-28400ecfd4b3"] {
2598                display: flex;
2599                flex-direction: column;
2600                box-sizing: border-box;
2601                flex-basis: 33.333333%;
2602                max-width: 33.333333%;
2603                z-index: 0;
2604                position: relative;
2605                height: ;
2606                padding-top: 0px;
2607                padding-right: 10.5px;
2608                padding-bottom: 0px;
2609                padding-left: 10.5px;
2610                margin-top: 0px;
2611                margin-right: 0px;
2612                margin-bottom: 0px;
2613                margin-left: 0px;
2614                border-width: 0px;
2615                border-style: solid;
2616                border-color: #333333;
2617                justify-content: center;
2618            }
2619            [data-sub-layout="750e921a-6805-4f4f-b67b-28400ecfd4b3"]:after {
2620                display: block;
2621                position: absolute;
2622                top: 0;
2623                left: 0;
2624                bottom: 0;
2625                right: 0;
2626                background-size: cover;
2627                z-index: auto;
2628            }
2629            @media only screen and (max-width: 700px) {
2630                [data-sub-layout="750e921a-6805-4f4f-b67b-28400ecfd4b3"] {
2631                    flex-basis: 100%;
2632                    max-width: 100%;
2633                }
2634            }
2635        </style>
2636        <div data-widget-id="e607e118-0f31-4e45-893b-2c394482611b" data-placement-id="64b34d99-89cb-48e8-b9d7-53795847b4d6" data-placement-status="ACTIVE"><style>
2637    #sd-image-e607e118-0f31-4e45-893b-2c394482611b {
2638        display: flex;
2639        align-items: center;
2640        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/dedicated-to-quality-2.jpg?t=1
2640713126042') no-repeat;
2641        opacity: calc(100 / 100);
2642
2643
2644            background-size: contain;
2645
2646            height: auto;
2647
2648        background-position:
2649                center
2650                center
2651;
2652
2653
2654        padding-top: 0px;
2655        padding-right: 0px;
2656        padding-bottom: 0px;
2657        padding-left: 0px;
2658
2659        margin-top: 0px;
2660        margin-right: 0px;
2661        margin-bottom: 0px;
2662        margin-left: 0px;
2663    }
2664
2665    #sd-image-e607e118-0f31-4e45-893b-2c394482611b * {
2666        margin: 0px;
2667    }
2668
2669    #sd-image-e607e118-0f31-4e45-893b-2c394482611b img {
2670        width: auto;
2671        opacity: 0;
2672
2673            height: auto;
2674    }
2675
2676    @media only screen and (max-width: 700px) {
2677        #sd-image-e607e118-0f31-4e45-893b-2c394482611b { }
2678    }
2679</style>
2680
2681<div>
2682    <div id="sd-image-e607e118-0f31-4e45-893b-2c394482611b" data-edit-mode="">
2683        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/dedicated-to-quality-2.jpg?t=1713126042" alt="">
2684    </div>
2685    
2686</div>
2687
2688<script type="text/javascript">
2689
2690    function handleClick(imageLink) {
2691        var trimmedLink = imageLink.trim();
2692        if (!trimmedLink) { return; }
2693
2694        var selector = "sd-image-e607e118-0f31-4e45-893b-2c394482611b";
2695        var element = document.getElementById(selector);
2696        var editMode = element.dataset.editMode || false;
2697
2698        if (editMode !== 'true') {
2699            var urlParts = trimmedLink.split('/');
2700            var protocol = urlParts[0];
2701            var isUnformatted = protocol !== '' &&
2702                protocol.indexOf('http') === -1 &&
2703                trimmedLink.indexOf('.') !== -1;
2704
2705            // check if absolute link and is not properly formatted
2706            if (isUnformatted) {
2707                urlParts.unshift('/');
2708            }
2709
2710            var newUrl = urlParts.join('/');
2711            window.open(newUrl, '_top');
2712        }
2713    }
2714</script>
2714
2715</div>
2716    </div>
2717</div>
2718
2719</div></div>
2720
2721<footer class="footer" role="contentinfo">
2722
2723    <div data-content-region="footer_before_columns--global"><div data-layout-id="2413809a-986d-467c-b36b-d920e0587a09">       <div data-sub-layout-container="180f0a8a-9a2a-4d2c-8be3-a776223e5fd1" data-layout-name="Layout">
2724    <style data-container-styling="180f0a8a-9a2a-4d2c-8be3-a776223e5fd1">
2725        [data-sub-layout-container="180f0a8a-9a2a-4d2c-8be3-a776223e5fd1"] {
2726            box-sizing: border-box;
2727            display: flex;
2728            flex-wrap: wrap;
2729            z-index: 0;
2730            position: relative;
2731            height: ;
2732            padding-top: 0px;
2733            padding-right: 0px;
2734            padding-bottom: 0px;
2735            padding-left: 0px;
2736            margin-top: 0px;
2737            margin-right: 0px;
2738            margin-bottom: 0px;
2739            margin-left: 0px;
2740            border-width: 0px;
2741            border-style: solid;
2742            border-color: #333333;
2743        }
2744
2745        [data-sub-layout-container="180f0a8a-9a2a-4d2c-8be3-a776223e5fd1"]:after {
2746            display: block;
2747            position: absolute;
2748            top: 0;
2749            left: 0;
2750            bottom: 0;
2751            right: 0;
2752            background-size: cover;
2753            z-index: auto;
2754        }
2755    </style>
2756
2757    <div data-sub-layout="be56035b-150a-4183-8141-9eb8ab1c3de7">
2758        <style data-column-styling="be56035b-150a-4183-8141-9eb8ab1c3de7">
2759            [data-sub-layout="be56035b-150a-4183-8141-9eb8ab1c3de7"] {
2760                display: flex;
2761                flex-direction: column;
2762                box-sizing: border-box;
2763                flex-basis: 50%;
2764                max-width: 50%;
2765                z-index: 0;
2766                position: relative;
2767                height: ;
2768                padding-top: 0px;
2769                padding-right: 10.5px;
2770                padding-bottom: 0px;
2771                padding-left: 10.5px;
2772                margin-top: 0px;
2773                margin-right: 0px;
2774                margin-bottom: 0px;
2775                margin-left: 0px;
2776                border-width: 0px;
2777                border-style: solid;
2778                border-color: #333333;
2779                justify-content: center;
2780            }
2781            [data-sub-layout="be56035b-150a-4183-8141-9eb8ab1c3de7"]:after {
2782                display: block;
2783                position: absolute;
2784                top: 0;
2785                left: 0;
2786                bottom: 0;
2787                right: 0;
2788                background-size: cover;
2789                z-index: auto;
2790            }
2791            @media only screen and (max-width: 700px) {
2792                [data-sub-layout="be56035b-150a-4183-8141-9eb8ab1c3de7"] {
2793                    flex-basis: 100%;
2794                    max-width: 100%;
2795                }
2796            }
2797        </style>
2798        <div data-widget-id="5d64df86-0a77-445d-af07-f5e36a970695" data-placement-id="f5b98568-c4f0-491e-9009-5224391e61ab" data-placement-status="ACTIVE"><style>
2799    #sd-image-5d64df86-0a77-445d-af07-f5e36a970695 {
2800        display: flex;
2801        align-items: center;
2802        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/looking-for-better-wellness.png?t=1758046506') no-repeat;
2803        opacity: calc(95 / 100);
2804
2805            cursor: pointer;
2806
2807            background-size: contain;
2808
2809            height: 400px;
2810
2811        background-position:
2812                center
2813                center
2814;
2815
2816
2817        padding-top: 0px;
2818        padding-right: 0px;
2819        padding-bottom: 0px;
2820        padding-left: 0px;
2821
2822        margin-top: 5px;
2823        margin-right: 0px;
2824        margin-bottom: 5px;
2825        margin-left: 0px;
2826    }
2827
2828    #sd-image-5d64df86-0a77-445d-af07-f5e36a970695 * {
2829        margin: 0px;
2830    }
2831
2832    #sd-image-5d64df86-0a77-445d-af07-f5e36a970695 img {
2833        width: auto;
2834        opacity: 0;
2835
2836            height: 100%;
2837    }
2838
2839    @media only screen and (max-width: 700px) {
2840        #sd-image-5d64df86-0a77-445d-af07-f5e36a970695 {
2841        }
2842    }
2843</style>
2844
2845<div>
2846    <a href="https://twinecbd.com/the-best-cbd-oils-creams-pet-products/" role="button">
2847    <div id="sd-image-5d64df86-0a77-445d-af07-f5e36a970695" data-edit-mode="">
2848        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/looking-for-better-wellness.png?t=1758046506" alt="Buy TWINE CBD Gift Cards">
2849    </div>
2850    </a>
2851</div>
2852
2853
2854</div>
2855    </div>
2856    <div data-sub-layout="e322c160-8d81-465f-9367-7f11a233e5f8">
2857        <style data-column-styling="e322c160-8d81-465f-9367-7f11a233e5f8">
2858            [data-sub-layout="e322c160-8d81-465f-9367-7f11a233e5f8"] {
2859                display: flex;
2860                flex-direction: column;
2861                box-sizing: border-box;
2862                flex-basis: 50%;
2863                max-width: 50%;
2864                z-index: 0;
2865                position: relative;
2866                height: ;
2867                padding-top: 0px;
2868                padding-right: 10.5px;
2869                padding-bottom: 0px;
2870                padding-left: 10.5px;
2871                margin-top: 0px;
2872                margin-right: 0px;
2873                margin-bottom: 0px;
2874                margin-left: 0px;
2875                border-width: 0px;
2876                border-style: solid;
2877                border-color: #333333;
2878                justify-content: center;
2879            }
2880            [data-sub-layout="e322c160-8d81-465f-9367-7f11a233e5f8"]:after {
2881                display: block;
2882                position: absolute;
2883                top: 0;
2884                left: 0;
2885                bottom: 0;
2886                right: 0;
2887                background-size: cover;
2888                z-index: auto;
2889            }
2890            @media only screen and (max-width: 700px) {
2891                [data-sub-layout="e322c160-8d81-465f-9367-7f11a233e5f8"] {
2892                    flex-basis: 100%;
2893                    max-width: 100%;
2894                }
2895            }
2896        </style>
2897        <div data-widget-id="1612e51a-d941-46a2-96e6-e18372101bef" data-placement-id="f73838b8-bad7-4232-be4d-ec143641e7e6" data-placement-status="ACTIVE"><style>
2898    #sd-image-1612e51a-d941-46a2-96e6-e18372101bef {
2899        display: flex;
2900        align-items: center;
2901        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/shop-local-3-.png?t=1758046401') no-repeat;
2902        opacity: calc(100 / 100);
2903
2904            cursor: pointer;
2905
2906            background-size: contain;
2907
2908            height: 400px;
2909
2910        background-position:
2911                center
2912                center
2913;
2914
2915
2916        padding-top: 0px;
2917        padding-right: 0px;
2918        padding-bottom: 0px;
2919        padding-left: 0px;
2920
2921        margin-top: 5px;
2922        margin-right: 0px;
2923        margin-bottom: 5px;
2924        margin-left: 0px;
2925    }
2926
2927    #sd-image-1612e51a-d941-46a2-96e6-e18372101bef * {
2928        margin: 0px;
2929    }
2930
2931    #sd-image-1612e51a-d941-46a2-96e6-e18372101bef img {
2932        width: auto;
2933        opacity: 0;
2934
2935            height: 100%;
2936    }
2937
2938    @media only screen and (max-width: 700px) {
2939        #sd-image-1612e51a-d941-46a2-96e6-e18372101bef {
2940        }
2941    }
2942</style>
2943
2944<div>
2945    <a href="https://twinecbd.com/shop-local/" role="button">
2946    <div id="sd-image-1612e51a-d941-46a2-96e6-e18372101bef" data-edit-mode="">
2947        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/shop-local-3-.png?t=1758046401" alt="Shop Local For CBD Companies ">
2948    </div>
2949    </a>
2950</div>
2951
2952
2953</div>
2954    </div>
2955</div>
2956
2957</div></div>
2958
2959    <div class="container">
2960        <section class="footer-info">
2961            <div class="footer-info-left">
2962                <article class="footer-info-col footer-info-col--webpages" data-section-type="footer-webPages">
2963                    <h5 class="footer-info-heading" 
2964                        data-collapsible="footer-info-list-webpages"
2965                        data-collapsible-disabled-breakpoint="medium"
2966                        data-collapsible-disabled-state="open"
2967                        data-collapsible-enabled-state="closed">Navigate</h5>
2968                    <ul class="footer-info-list" id="footer-info-list-webpages">
2969                        <li><a href="https://twinecbd.com/subscribe-save/">Subscribe &amp; Save</a></li>
2970                        <li><a href="https://twinecbd.com/refer-a-friend/">Refer a Friend</a></li>
2971                        <li><a href="https://twinecbd.com/shipping-returns/">Shipping &amp; Returns</a></li>
2972                        <li><a href="https://twinecbd.com/contact-us/">Contact Us</a></li>
2973                        <li><a href="https://twinecbd.com/reviews/">Reviews</a></li>
2974                        <li><a href="https://twinecbd.com/blog/">Blog</a></li>
2975                        <li><a href="https://twinecbd.com/social-signup/">Social Signup</a></li>
2976                        <li><a href="https://twinecbd.com/billing-terms-conditions/">Billing Terms &amp; Conditions</a></li>
2977                        <li><a href="https://twinecbd.com/privacy-security-policy/">Privacy / Security Policy</a></li>
2978                        <li><a href="https://twinecbd.com/third-party-test-results/">Third Party Test Results</a></li>
2979                        <li><a href="https://twinecbd.com/sezzle/">Sezzle</a></li>
2980                        <li><a href="https://twinewholesale.com/">Wholesale</a></li>
2981                        <li><a href="https://partners.twinecbd.com">Affiliate Partner</a></li>
2982                        <li><a href="https://twinecbd.com/signup/">Signup &amp; Save</a></li>
2983                        <li><a href="https://twinecbd.com/shop-local/">Shop Local</a></li>
2984                    </ul>
2985                    <div data-content-region="footer_below_pages--global"><div data-layout-id="d3591d17-79e5-4fed-90c5-0c6c692838fa">       <div data-sub-layout-container="99deea35-8d28-449b-9fe4-6a2cd3c29593" data-layout-name="Layout">
2986    <style data-container-styling="99deea35-8d28-449b-9fe4-6a2cd3c29593">
2987        [data-sub-layout-container="99deea35-8d28-449b-9fe4-6a2cd3c29593"] {
2988            box-sizing: border-box;
2989            display: flex;
2990            flex-wrap: wrap;
2991            z-index: 0;
2992            position: relative;
2993            height: ;
2994            padding-top: 0px;
2995            padding-right: 0px;
2996            padding-bottom: 0px;
2997            padding-left: 0px;
2998            margin-top: 0px;
2999            margin-right: 0px;
3000            margin-bottom: 0px;
3001            margin-left: 0px;
3002            border-width: 0px;
3003            border-style: solid;
3004            border-color: #333333;
3005        }
3006
3007        [data-sub-layout-container="99deea35-8d28-449b-9fe4-6a2cd3c29593"]:after {
3008            display: block;
3009            position: absolute;
3010            top: 0;
3011            left: 0;
3012            bottom: 0;
3013            right: 0;
3014            background-size: cover;
3015            z-index: auto;
3016        }
3017    </style>
3018
3019    <div data-sub-layout="3ab0fa46-b4e2-4ac7-8f89-f44e332d4448">
3020        <style data-column-styling="3ab0fa46-b4e2-4ac7-8f89-f44e332d4448">
3021            [data-sub-layout="3ab0fa46-b4e2-4ac7-8f89-f44e332d4448"] {
3022                display: flex;
3023                flex-direction: column;
3024                box-sizing: border-box;
3025                flex-basis: 100%;
3026                max-width: 100%;
3027                z-index: 0;
3028                position: relative;
3029                height: ;
3030                padding-top: 0px;
3031                padding-right: 10.5px;
3032                padding-bottom: 0px;
3033                padding-left: 10.5px;
3034                margin-top: 0px;
3035                margin-right: 0px;
3036                margin-bottom: 0px;
3037                margin-left: 0px;
3038                border-width: 0px;
3039                border-style: solid;
3040                border-color: #333333;
3041                justify-content: center;
3042            }
3043            [data-sub-layout="3ab0fa46-b4e2-4ac7-8f89-f44e332d4448"]:after {
3044                display: block;
3045                position: absolute;
3046                top: 0;
3047                left: 0;
3048                bottom: 0;
3049                right: 0;
3050                background-size: cover;
3051                z-index: auto;
3052            }
3053            @media only screen and (max-width: 700px) {
3054                [data-sub-layout="3ab0fa46-b4e2-4ac7-8f89-f44e332d4448"] {
3055                    flex-basis: 100%;
3056                    max-width: 100%;
3057                }
3058            }
3059        </style>
3060        <div data-widget-id="d7a52747-5388-49d2-a19d-56692af85108" data-placement-id="a6b71b22-5155-488a-9a4b-98e71f4014c6" data-placement-status="ACTIVE"><div id="y-badges" class="yotpo yotpo-badge badge-init">&nbsp;</div>
3061</div>
3062    </div>
3063</div>
3064
3065</div></div>
3066                </article>
3067
3068                <article class="footer-info-col footer-info-col--categories" data-section-type="footer-categories">
3069                    <h5 class="footer-info-heading"
3070                        data-collapsible="footer-info-list-categories"
3071                        data-collapsible-disabled-breakpoint="medium"
3072                        data-collapsible-disabled-state="open"
3073                        data-collapsible-enabled-state="closed">Our Categories</h5>
3074                    <ul class="footer-info-list" id="footer-info-list-categories">
3075                        <li><a href="https://twinecbd.com/cbd-products-by-benefit/">
3075Shop by Benefit</a></li>
3076                        <li><a href="https://twinecbd.com/cbd-products/">Shop by Product</a></li>
3077                        <li><a href="https://twinecbd.com/shop-all-cbd-products/">Shop All</a></li>
3078                        <li><a href="https://twinecbd.com/non-cbd/">Non-CBD</a></li>
3079                        <li><a href="https://twinecbd.com/try-me/">Try Me</a></li>
3080                    </ul>
3081                    <div data-content-region="footer_below_categories--global"></div>
3082                </article>
3083
3084
3085
3086
3087            </div>
3088            <div class="footer-info-right">
3089                <article class="footer-info-col footer-info-col--address" data-section-type="footer-webPages">
3090                    <div data-content-region="footer_before_storeinfo--global"></div>
3091                    <h5 class="footer-info-heading"><a href="https://twinecbd.com/">
3092            <img class="footer-logo-image-unknown-size lazyload" src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg" data-src="https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/twine_cbd_live_is_better_with_twine_1758297645__35258.original.png" alt="TWINE" title="TWINE">
3093</a>
3094</h5>
3095                    <ul class="footer-info-list">
3096                            <li><address>TWINE
3097PO BOX 511
3098Flowery Branch, GA 30542</address></li>
3099                                <li><a href="tel:678-242-9680">Phone: 678-242-9680</a></li>
3100                            <li><a href="mailto:[email protected]">[email protected]</a></li>
3101                            <li><a href="/contact-us/">Contact Us</a></li>
3102                    </ul>
3103                    <div data-content-region="footer_below_storeinfo--global"></div>
3104                </article>
3105                    <article class="footer-info-col footer-info-col--newsletter" data-section-type="newsletterSubscription">
3106    <div class="footer-newsletter-content">
3107        <h5 class="footer-info-heading">Subscribe to our newsletter</h5>
3108    </div>
3109    <form class="form footer-newsletter-form" action="https://twinecbd.com/subscribe.php" method="post">
3110        <fieldset class="form-fieldset">
3111            <input type="hidden" name="action" value="subscribe">
3112            <input type="hidden" name="nl_first_name" value="bc">
3113            <input type="hidden" name="check" value="1">
3114            <div class="form-field">
3115                <label class="form-label is-srOnly" for="nl_email">Email Address</label>
3116                <div class="form-prefixPostfix wrap">
3117                    <input class="form-input" id="nl_email" name="nl_email" type="email" value="" placeholder="Your email address">
3118                    <input class="button button--primary form-prefixPostfix-button--postfix" type="submit" value="Subscribe">
3119                </div>
3120            </div>
3121        </fieldset>
3122    </form>
3123    <div data-content-region="footer_below_newsletter--global"><div data-layout-id="8b6757a0-e1ce-4f7d-be06-d1abf885dd6f">       <div data-sub-layout-container="9b6cae9d-d781-43d7-96b6-69daae498b01" data-layout-name="Layout">
3124    <style data-container-styling="9b6cae9d-d781-43d7-96b6-69daae498b01">
3125        [data-sub-layout-container="9b6cae9d-d781-43d7-96b6-69daae498b01"] {
3126            box-sizing: border-box;
3127            display: flex;
3128            flex-wrap: wrap;
3129            z-index: 0;
3130            position: relative;
3131            height: ;
3132            padding-top: 0px;
3133            padding-right: 0px;
3134            padding-bottom: 0px;
3135            padding-left: 0px;
3136            margin-top: 0px;
3137            margin-right: 0px;
3138            margin-bottom: 0px;
3139            margin-left: 0px;
3140            border-width: 0px;
3141            border-style: solid;
3142            border-color: #333333;
3143        }
3144
3145        [data-sub-layout-container="9b6cae9d-d781-43d7-96b6-69daae498b01"]:after {
3146            display: block;
3147            position: absolute;
3148            top: 0;
3149            left: 0;
3150            bottom: 0;
3151            right: 0;
3152            background-size: cover;
3153            z-index: auto;
3154        }
3155    </style>
3156
3157    <div data-sub-layout="80d2d72b-33e8-4710-ba98-f2d3c4c67d24">
3158        <style data-column-styling="80d2d72b-33e8-4710-ba98-f2d3c4c67d24">
3159            [data-sub-layout="80d2d72b-33e8-4710-ba98-f2d3c4c67d24"] {
3160                display: flex;
3161                flex-direction: column;
3162                box-sizing: border-box;
3163                flex-basis: 100%;
3164                max-width: 100%;
3165                z-index: 0;
3166                position: relative;
3167                height: ;
3168                padding-top: 0px;
3169                padding-right: 10.5px;
3170                padding-bottom: 0px;
3171                padding-left: 10.5px;
3172                margin-top: 0px;
3173                margin-right: 0px;
3174                margin-bottom: 0px;
3175                margin-left: 0px;
3176                border-width: 0px;
3177                border-style: solid;
3178                border-color: #333333;
3179                justify-content: center;
3180            }
3181            [data-sub-layout="80d2d72b-33e8-4710-ba98-f2d3c4c67d24"]:after {
3182                display: block;
3183                position: absolute;
3184                top: 0;
3185                left: 0;
3186                bottom: 0;
3187                right: 0;
3188                background-size: cover;
3189                z-index: auto;
3190            }
3191            @media only screen and (max-width: 700px) {
3192                [data-sub-layout="80d2d72b-33e8-4710-ba98-f2d3c4c67d24"] {
3193                    flex-basis: 100%;
3194                    max-width: 100%;
3195                }
3196            }
3197        </style>
3198    </div>
3199</div>
3200
3201</div></div>
3202</article>
3203                <article class="footer-info-col footer-info-col--socials" data-section-type="newsletterSubscription">
3204                    <h5 class="footer-info-heading">Connect With Us</h5>
3205                        <ul class="socialLinks socialLinks--alt socialLinks--colors">
3206        <li class="socialLinks-item">
3207            <a class="icon icon--instagram"
3208            href="https://www.instagram.com/twinecbd/"
3209            target="_blank"
3210            rel="noopener"
3211            title="Instagram"
3212            >
3213                <span class="aria-description--hidden">Instagram</span>
3214                <svg>
3215                    <use href="#icon-instagram"/>
3216                </svg>
3217            </a>
3218        </li>
3219        <li class="socialLinks-item">
3220            <a class="icon icon--facebook"
3221            href="https://www.facebook.com/twinecbd/"
3222            target="_blank"
3223            rel="noopener"
3224            title="Facebook"
3225            >
3226                <span class="aria-description--hidden">Facebook</span>
3227                <svg>
3228                    <use href="#icon-facebook"/>
3229                </svg>
3230            </a>
3231        </li>
3232        <li class="socialLinks-item">
3233            <a class="icon icon--pinterest"
3234            href="https://www.pinterest.com/twinecbd/"
3235            target="_blank"
3236            rel="noopener"
3237            title="Pinterest"
3238            >
3239                <span class="aria-description--hidden">Pinterest</span>
3240                <svg>
3241                    <use href="#icon-pinterest"/>
3242                </svg>
3243            </a>
3244        </li>
3245        <li class="socialLinks-item">
3246            <a class="icon icon--youtube"
3247            href="https://www.youtube.com/@twinecbd"
3248            target="_blank"
3249            rel="noopener"
3250            title="Youtube"
3251            >
3252                <span class="aria-description--hidden">Youtube</span>
3253                <svg>
3254                    <use href="#icon-youtube"/>
3255                </svg>
3256            </a>
3257        </li>
3258        <li class="socialLinks-item">
3259            <a class="icon icon--x"
3260            href="https://twitter.com/CbdTwine"
3261            target="_blank"
3262            rel="noopener"
3263            title="X"
3264            >
3265                <span class="aria-description--hidden">X</span>
3266                <svg>
3267                    <use href="#icon-x"/>
3268                </svg>
3269            </a>
3270        </li>
3271    </ul>
3272
3273                    <div data-content-region="footer_below_socials--global"></div>
3274
3275                    
3276                </article>
3277            </div>
3278        </section>
3279    </div>
3280
3281    <div data-content-region="footer_below_columns--global"><div data-layout-id="9c548c26-1528-4aae-ad7f-391f6e341d51">       <div data-sub-layout-container="b9e1e1a3-1bf5-4c7e-9347-cdc458507b34" data-layout-name="Layout">
3282    <style data-container-styling="b9e1e1a3-1bf5-4c7e-9347-cdc458507b34">
3283        [data-sub-layout-container="b9e1e1a3-1bf5-4c7e-9347-cdc458507b34"] {
3284            box-sizing: border-box;
3285            display: flex;
3286            flex-wrap: wrap;
3287            z-index: 0;
3288            position: relative;
3289            height: ;
3290            padding-top: 0px;
3291            padding-right: 0px;
3292            padding-bottom: 0px;
3293            padding-left: 0px;
3294            margin-top: 0px;
3295            margin-right: 0px;
3296            margin-bottom: 0px;
3297            margin-left: 0px;
3298            border-width: 0px;
3299            border-style: solid;
3300            border-color: #333333;
3301        }
3302
3303        [data-sub-layout-container="b9e1e1a3-1bf5-4c7e-9347-cdc458507b34"]:after {
3304            display: block;
3305            position: absolute;
3306            top: 0;
3307            left: 0;
3308            bottom: 0;
3309            right: 0;
3310            background-size: cover;
3311            z-index: auto;
3312        }
3313    </style>
3314
3315    <div data-sub-layout="6db67641-cd4e-406e-9c3f-288a0cf28957">
3316        <style data-column-styling="6db67641-cd4e-406e-9c3f-288a0cf28957">
3317            [data-sub-layout="6db67641-cd4e-406e-9c3f-288a0cf28957"] {
3318                display: flex;
3319                flex-direction: column;
3320                box-sizing: border-box;
3321                flex-basis: 100%;
3322                max-width: 100%;
3323                z-index: 0;
3324                position: relative;
3325                height: ;
3326                padding-top: 0px;
3327                padding-right: 10.5px;
3328                padding-bottom: 0px;
3329                padding-left: 10.5px;
3330                margin-top: 0px;
3331                margin-right: 0px;
3332                margin-bottom: 0px;
3333                margin-left: 0px;
3334                border-width: 0px;
3335                border-style: solid;
3336                border-color: #333333;
3337                justify-content: center;
3338            }
3339            [data-sub-layout="6db67641-cd4e-406e-9c3f-288a0cf28957"]:after {
3340                display: block;
3341                position: absolute;
3342                top: 0;
3343                left: 0;
3344                bottom: 0;
3345                right: 0;
3346                background-size: cover;
3347                z-index: auto;
3348            }
3349            @media only screen and (max-width: 700px) {
3350                [data-sub-layout="6db67641-cd4e-406e-9c3f-288a0cf28957"] {
3351                    flex-basis: 100%;
3352                    max-width: 100%;
3353                }
3354            }
3355        </style>
3356        <div data-widget-id="6644183f-3a77-4fba-aa1c-b1a42f3ac993" data-placement-id="b07877e9-2265-4f85-940f-60d7a572b851" data-placement-status="ACTIVE"><style>
3357    #sd-image-6644183f-3a77-4fba-aa1c-b1a42f3ac993 {
3358        display: flex;
3359        align-items: center;
3360        background: url('https://cdn11.bigcommerce.com/s-neutbgywct/product_images/uploaded_images/leaderboard-web-banner-745x90-purple.png') no-repeat;
3361        opacity: calc(100 / 100);
3362
3363            cursor: pointer;
3364
3365            background-size: contain;
3366
3367            height: auto;
3368
3369        background-position:
3370                center
3371                center
3372;
3373
3374
3375        padding-top: 0px;
3376        padding-right: 0px;
3377        padding-bottom: 0px;
3378        padding-left: 0px;
3379
3380        margin-top: 0px;
3381        margin-right: 0px;
3382        margin-bottom: 0px;
3383        margin-left: 0px;
3384    }
3385
3386    #sd-image-6644183f-3a77-4fba-aa1c-b1a42f3ac993 * {
3387        margin: 0px;
3388    }
3389
3390    #sd-image-6644183f-3a77-4fba-aa1c-b1a42f3ac993 img {
3391        width: auto;
3392        opacity: 0;
3393
3394            height: auto;
3395    }
3396
3397    @media only screen and (max-width: 700px) {
3398        #sd-image-6644183f-3a77-4fba-aa1c-b1a42f3ac993 {
3399        }
3400    }
3401</style>
3402
3403<div>
3404    <a href="https://twinecbd.com/sezzle/" role="button">
3405    <div id="sd-image-6644183f-3a77-4fba-aa1c-b1a42f3ac993" data-edit-mode="">
3406        <img src="https://cdn11.bigcommerce.com/s-neutbgywct/product_images/uploaded_images/leaderboard-web-banner-745x90-purple.png" alt="Sezzle Buy Now, Pay Later">
3407    </div>
3408    </a>
3409</div>
3410
3411
3412</div>
3413    </div>
3414</div>
3415
3416       <div data-sub-layout-container="29a306c6-51bc-4a48-9f63-b74ee2d3acd0" data-layout-name="Layout">
3417    <style data-container-styling="29a306c6-51bc-4a48-9f63-b74ee2d3acd0">
3418        [data-sub-layout-container="29a306c6-51bc-4a48-9f63-b74ee2d3acd0"] {
3419            box-sizing: border-box;
3420            display: flex;
3421            flex-wrap: wrap;
3422            z-index: 0;
3423            position: relative;
3424            height: ;
3425            padding-top: 0px;
3426            padding-right: 0px;
3427            padding-bottom: 0px;
3428            padding-left: 0px;
3429            margin-top: 0px;
3430            margin-right: 0px;
3431            margin-bottom: 0px;
3432            margin-left: 0px;
3433            border-width: 0px;
3434            border-style: solid;
3435            border-color: #333333;
3436        }
3437
3438        [data-sub-layout-container="29a306c6-51bc-4a48-9f63-b74ee2d3acd0"]:after {
3439            display: block;
3440            position: absolute;
3441            top: 0;
3442            left: 0;
3443            bottom: 0;
3444            right: 0;
3445            background-size: cover;
3446            z-index: auto;
3447        }
3448    </style>
3449
3450    <div data-sub-layout="0668ede8-21a6-4785-86b4-98fc096ca497">
3451        <style data-column-styling="0668ede8-21a6-4785-86b4-98fc096ca497">
3452            [data-sub-layout="0668ede8-21a6-4785-86b4-98fc096ca497"] {
3453                display: flex;
3454                flex-direction: column;
3455                box-sizing: border-box;
3456                flex-basis: 100%;
3457                max-width: 100%;
3458                z-index: 0;
3459                position: relative;
3460                height: ;
3461                padding-top: 0px;
3462                padding-right: 10.5px;
3463                padding-bottom: 0px;
3464                padding-left: 10.5px;
3465                margin-top: 0px;
3466                margin-right: 0px;
3467                margin-bottom: 0px;
3468                margin-left: 0px;
3469                border-width: 0px;
3470                border-style: solid;
3471                border-color: #333333;
3472                justify-content: center;
3473            }
3474            [data-sub-layout="0668ede8-21a6-4785-86b4-98fc096ca497"]:after {
3475                display: block;
3476                position: absolute;
3477                top: 0;
3478                left: 0;
3479                bottom: 0;
3480                right: 0;
3481                background-size: cover;
3482                z-index: auto;
3483            }
3484            @media only screen and (max-width: 700px) {
3485                [data-sub-layout="0668ede8-21a6-4785-86b4-98fc096ca497"] {
3486                    flex-basis: 100%;
3487                    max-width: 100%;
3488                }
3489            }
3490        </style>
3491        <div data-widget-id="c671c575-5af2-45e0-9dc6-3e14217fae4c" data-placement-id="93fbc7e4-1ac7-4901-af8c-60515034fe27" data-placement-status="ACTIVE"><style>
3492  .sd-divider-wrapper-c671c575-5af2-45e0-9dc6-3e14217fae4c {
3493    display: flex;
3494    height: 20px;
3495      align-items: center;
3496      justify-content: center;
3497      text-align: center;
3498  }
3499
3500  .sd-divider-c671c575-5af2-45e0-9dc6-3e14217fae4c {
3501    height: 0;
3502    border-top: 1px;
3503    border-color: rgba(180, 186, 209, 1);
3504    border-style: solid;
3505    width: 100%;
3506    margin: 0;
3507  }
3508</style>
3509
3510<div class="sd-divider-wrapper-c671c575-5af2-45e0-9dc6-3e14217fae4c">
3511  <hr class="sd-divider-c671c575-5af2-45e0-9dc6-3e14217fae4c">
3512</div>
3513</div>
3514    </div>
3515</div>
3516
3517       <div data-sub-layout-container="029a7d24-ad0b-4a12-a829-e859088279b0" data-layout-name="Layout">
3518    <style data-container-styling="029a7d24-ad0b-4a12-a829-e859088279b0">
3519        [data-sub-layout-container="029a7d24-ad0b-4a12-a829-e859088279b0"] {
3520            box-sizing: border-box;
3521            display: flex;
3522            flex-wrap: wrap;
3523            z-index: 0;
3524            position: relative;
3525            height: ;
3526            background-color: rgba(0, 0, 0, 0);
3527            padding-top: 0px;
3528            padding-right: 0px;
3529            padding-bottom: 0px;
3530            padding-left: 0px;
3531            margin-top: 0px;
3532            margin-right: 0px;
3533            margin-bottom: 0px;
3534            margin-left: 0px;
3535            border-width: 0px;
3536            border-style: solid;
3537            border-color: #333333;
3538        }
3539
3540        [data-sub-layout-container="029a7d24-ad0b-4a12-a829-e859088279b0"]:after {
3541            display: block;
3542            position: absolute;
3543            top: 0;
3544            left: 0;
3545            bottom: 0;
3546            right: 0;
3547            background-size: cover;
3548            z-index: -2;
3549            content: '';
3550        }
3551    </style>
3552
3553    <div data-sub-layout="03011ef3-8f22-4352-97fb-496deed388f8">
3554        <style data-column-styling="03011ef3-8f22-4352-97fb-496deed388f8">
3555            [data-sub-layout="03011ef3-8f22-4352-97fb-496deed388f8"] {
3556                display: flex;
3557                flex-direction: column;
3558                box-sizing: border-box;
3559                flex-basis: 100%;
3560                max-width: 100%;
3561                z-index: 0;
3562                position: relative;
3563                height: ;
3564                padding-top: 0px;
3565                padding-right: 10.5px;
3566                padding-bottom: 0px;
3567                padding-left: 10.5px;
3568                margin-top: 0px;
3569                margin-right: 0px;
3570                margin-bottom: 0px;
3571                margin-left: 0px;
3572                border-width: 0px;
3573                border-style: solid;
3574                border-color: #333333;
3575                justify-content: center;
3576            }
3577            [data-sub-layout="03011ef3-8f22-4352-97fb-496deed388f8"]:after {
3578                display: block;
3579                position: absolute;
3580                top: 0;
3581                left: 0;
3582                bottom: 0;
3583                right: 0;
3584                background-size: cover;
3585                z-index: auto;
3586            }
3587            @media only screen and (max-width: 700px) {
3588                [data-sub-layout="03011ef3-8f22-4352-97fb-496deed388f8"] {
3589                    flex-basis: 100%;
3590                    max-width: 100%;
3591                }
3592            }
3593        </style>
3594        <div data-widget-id="5f5ddf39-00a7-4ada-9021-238bc2bd91f5" data-placement-id="5c6e4cc9-a0cd-439a-8167-3a5315ec5fc3" data-placement-status="ACTIVE"><style>
3595    .sd-simple-text-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 {
3596      padding-top: 0px;
3597      padding-right: 0px;
3598      padding-bottom: 0px;
3599      padding-left: 0px;
3600
3601      margin-top: 0px;
3602      margin-right: 0px;
3603      margin-bottom: 0px;
3604      margin-left: 0px;
3605
3606    }
3607
3608    .sd-simple-text-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 * {
3609      margin: 0;
3610      padding: 0;
3611
3612        color: #333333;
3613        font-family: inherit;
3614        font-weight: 500;
3615        font-size: 14px;
3616        min-height: 14px;
3617
3618    }
3619
3620    .sd-simple-text-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 {
3621        text-align: center;
3622    }
3623
3624    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 {
3625      min-width: 14px;
3626      line-height: 1.5;
3627      display: inline-block;
3628    }
3629
3630    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5[data-edit-mode="true"]:hover,
3631    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5[data-edit-mode="true"]:active,
3632    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5[data-edit-mode="true"]:focus {
3633      outline: 1px dashed #3C64F4;
3634    }
3635
3636    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 strong,
3637    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 strong * {
3638      font-weight: bold;
3639    }
3640
3641    #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a {
3642      color: inherit;
3643    }
3644
3645    @supports (color: color-mix(in srgb, #000 50%, #fff 50%)) {
3646      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:hover,
3647      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:active,
3648      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:focus {
3649        color: color-mix(in srgb, currentColor 68%, white 32%);
3650      }
3651    }
3652
3653    @supports not (color: color-mix(in srgb, #000 50%, #fff 50%)) {
3654      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:hover,
3655      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:active,
3656      #sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 a:focus {
3657        filter: brightness(2);
3658      }
3659    }
3660</style>
3661
3662<div class="sd-simple-text-5f5ddf39-00a7-4ada-9021-238bc2bd91f5 ">
3663  <div id="sd-simple-text-editable-5f5ddf39-00a7-4ada-9021-238bc2bd91f5" data-edit-mode="">
3664    <p>*&nbsp;The statements on this website regarding these products have not been evaluated by the U.S. Food and Drug Administration (FDA) and are not intended to diagnose, treat, cure, or prevent any disease.</p>
3665<p>These products are not FDA-approved, and their effectiveness has not been confirmed by FDA-approved research. CBD products are not intended as medical advice, and n
3665o information on this site should be considered medical guidance. Always consult a qualified healthcare professional before using any product, especially if you are pregnant, nursing, have a medical condition, or are taking medications.&nbsp; All products contain less than 0.3% THC as required under the 2018 Farm Bill.</p>
3666  </div>
3667</div>
3668
3669</div>
3670        <div data-widget-id="949cc8b5-6609-49c6-8ac8-f70da1255164" data-placement-id="808396ff-3254-4e5b-8e1d-6810953da513" data-placement-status="ACTIVE"><style>
3671  .sd-divider-wrapper-949cc8b5-6609-49c6-8ac8-f70da1255164 {
3672    display: flex;
3673    height: 20px;
3674      align-items: center;
3675      justify-content: center;
3676      text-align: center;
3677  }
3678
3679  .sd-divider-949cc8b5-6609-49c6-8ac8-f70da1255164 {
3680    height: 0;
3681    border-top: 1px;
3682    border-color: rgba(180, 186, 209, 1);
3683    border-style: solid;
3684    width: 100%;
3685    margin: 0;
3686  }
3687</style>
3688
3689<div class="sd-divider-wrapper-949cc8b5-6609-49c6-8ac8-f70da1255164">
3690  <hr class="sd-divider-949cc8b5-6609-49c6-8ac8-f70da1255164">
3691</div>
3692</div>
3693    </div>
3694</div>
3695
3696</div></div>
3697
3698    <div class="footer-copyright">
3699        <div class="container">
3700            <section class="footer-icons">
3701                        <div class="footer-payment-icons">
3702                <svg class="footer-payment-icon"><use xlink:href="#icon-logo-american-express-color"></use></svg>
3703                <svg class="footer-payment-icon"><use xlink:href="#icon-logo-discover-color"></use></svg>
3704                <svg class="footer-payment-icon"><use xlink:href="#icon-logo-mastercard-color"></use></svg>
3705                <svg class="footer-payment-icon"><use xlink:href="#icon-logo-visa-color"></use></svg>
3706                <svg class="footer-payment-icon"><use xlink:href="#icon-logo-applepay-color"></use></svg>
3707        </div>
3708
3709                <div data-content-region="ssl_site_seal--global"></div>
3710
3711                <div data-content-region="footer_below_payments--global"></div>
3712            </section>
3713                
3714                <p class="powered-by">&copy; 2026 TWINE.</p>
3715
3716            <div data-content-region="footer_below_copyright--global"><div data-layout-id="2ee5d82f-4cbc-4fad-8cdd-c5c27fcd579c">       <div data-sub-layout-container="df66ebfb-56c7-4b7e-9bdc-b16b7aa4011d" data-layout-name="Layout">
3717    <style data-container-styling="df66ebfb-56c7-4b7e-9bdc-b16b7aa4011d">
3718        [data-sub-layout-container="df66ebfb-56c7-4b7e-9bdc-b16b7aa4011d"] {
3719            box-sizing: border-box;
3720            display: flex;
3721            flex-wrap: wrap;
3722            z-index: 0;
3723            position: relative;
3724            height: ;
3725            padding-top: 0px;
3726            padding-right: 0px;
3727            padding-bottom: 0px;
3728            padding-left: 0px;
3729            margin-top: 0px;
3730            margin-right: 0px;
3731            margin-bottom: 0px;
3732            margin-left: 0px;
3733            border-width: 0px;
3734            border-style: solid;
3735            border-color: #333333;
3736        }
3737
3738        [data-sub-layout-container="df66ebfb-56c7-4b7e-9bdc-b16b7aa4011d"]:after {
3739            display: block;
3740            position: absolute;
3741            top: 0;
3742            left: 0;
3743            bottom: 0;
3744            right: 0;
3745            background-size: cover;
3746            z-index: auto;
3747        }
3748    </style>
3749
3750    <div data-sub-layout="e628bfa6-e5e5-4eb3-8f51-d79e2360be89">
3751        <style data-column-styling="e628bfa6-e5e5-4eb3-8f51-d79e2360be89">
3752            [data-sub-layout="e628bfa6-e5e5-4eb3-8f51-d79e2360be89"] {
3753                display: flex;
3754                flex-direction: column;
3755                box-sizing: border-box;
3756                flex-basis: 100%;
3757                max-width: 100%;
3758                z-index: 0;
3759                position: relative;
3760                height: ;
3761                padding-top: 0px;
3762                padding-right: 10.5px;
3763                padding-bottom: 0px;
3764                padding-left: 10.5px;
3765                margin-top: 0px;
3766                margin-right: 0px;
3767                margin-bottom: 0px;
3768                margin-left: 0px;
3769                border-width: 0px;
3770                border-style: solid;
3771                border-color: #333333;
3772                justify-content: center;
3773            }
3774            [data-sub-layout="e628bfa6-e5e5-4eb3-8f51-d79e2360be89"]:after {
3775                display: block;
3776                position: absolute;
3777                top: 0;
3778                left: 0;
3779                bottom: 0;
3780                right: 0;
3781                background-size: cover;
3782                z-index: auto;
3783            }
3784            @media only screen and (max-width: 700px) {
3785                [data-sub-layout="e628bfa6-e5e5-4eb3-8f51-d79e2360be89"] {
3786                    flex-basis: 100%;
3787                    max-width: 100%;
3788                }
3789            }
3790        </style>
3791    </div>
3792</div>
3793
3794</div></div>
3795        </div>
3796    </div>
3797</footer>
3798
3799<div data-content-region="footer_below--global"></div>
3800
3801<div class="navCatalog-panel" id="navCatalog-panel">
3802    <p class="mobile-panel-heading"><span class="mobile-panel-heading-ellipse">Categories</span></p>
3803    <a class="mobile-panel-close" data-collapsible="navCatalog-panel" data-group-collapsible="main"><svg><use xlink:href="#icon-close" aria-hidden="true"></use></svg></a>
3804    <div class="navCatalog-panel-body" data-lock-body-scroll>
3805        <nav class="navPages navPages--catalogPanel">
3806            <ul class="navPages-list">
3807                    <li class="navPages-item">
3808                        <a class="navPages-action has-subMenu is-root" href="https://twinecbd.com/cbd-products-by-benefit/" data-collapsible="navPages-114-catalogPanel"
3809            data-collapsible-disabled-breakpoint="large"
3810            data-collapsible-disabled-state="open"
3811            data-collapsible-enabled-state="closed"
3812    >
3813        Shop by Benefit <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3814    </a>
3815    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-114-catalogPanel" aria-hidden="true" tabindex="-1">
3816    <ul class="navPage-subMenu-list">
3817        <li class="navPage-subMenu-item-parent">
3818            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/"><span class='navPage--viewAll'>All </span>
3818Shop by Benefit</a>
3819        </li>
3820            <li class="navPage-subMenu-item-child">
3821                    <a class="navPage-subMenu-action navPages-action has-subMenu" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/" data-collapsible="navPages-119-catalogPanel"
3822                            data-collapsible-disabled-breakpoint="large"
3823                            data-collapsible-disabled-state="open"
3824                            data-collapsible-enabled-state="closed"
3825                    >
3826                        Beauty &amp; Skin <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3827                    </a>
3828                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-119-catalogPanel" aria-hidden="true" tabindex="-1">
3829    <ul class="navPage-subMenu-list">
3830        <li class="navPage-subMenu-item-parent">
3831            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/"><span class='navPage--viewAll'>All </span>Beauty & Skin</a>
3832        </li>
3833            <li class="navPage-subMenu-item-child">
3834                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-face-care/">Face Care</a>
3835            </li>
3836            <li class="navPage-subMenu-item-child">
3837                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-lip-care/">Lip Care</a>
3838            </li>
3839            <li class="navPage-subMenu-item-child">
3840                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-body-care/">Body Care</a>
3841            </li>
3842            <li class="navPage-subMenu-item-child">
3843                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/beauty-skincare/cbd-skincare-bundles/">Value Sets</a>
3844            </li>
3845    </ul>
3846</div>
3847            </li>
3848            <li class="navPage-subMenu-item-child">
3849                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-sleep-support/">Sleep</a>
3850            </li>
3851            <li class="navPage-subMenu-item-child">
3852                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-energy-focus/">Energy &amp; Focus</a>
3853            </li>
3854            <li class="navPage-subMenu-item-child">
3855                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-pain-relief-recovery/">Relief &amp; Recovery</a>
3856            </li>
3857            <li class="navPage-subMenu-item-child">
3858                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-stress-anxiety-relief/">Stress &amp; Calm</a>
3859            </li>
3860            <li class="navPage-subMenu-item-child">
3861                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products-by-benefit/cbd-for-pets/">Pets</a>
3862            </li>
3863    </ul>
3864</div>
3865                    </li>
3866                    <li class="navPages-item">
3867                        <a class="navPages-action has-subMenu is-root" href="https://twinecbd.com/cbd-products/" data-collapsible="navPages-115-catalogPanel"
3868            data-collapsible-disabled-breakpoint="large"
3869            data-collapsible-disabled-state="open"
3870            data-collapsible-enabled-state="closed"
3871    >
3872        Shop by Product <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3873    </a>
3874    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-115-catalogPanel" aria-hidden="true" tabindex="-1">
3875    <ul class="navPage-subMenu-list">
3876        <li class="navPage-subMenu-item-parent">
3877            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/"><span class='navPage--viewAll'>All </span>Shop by Product</a>
3878        </li>
3879            <li class="navPage-subMenu-item-child">
3880                    <a class="navPage-subMenu-action navPages-action has-subMenu" href="https://twinecbd.com/cbd-products/cbd-beauty/" data-collapsible="navPages-127-catalogPanel"
3881                            data-collapsible-disabled-breakpoint="large"
3882                            data-collapsible-disabled-state="open"
3883                            data-collapsible-enabled-state="closed"
3884                    >
3885                        Beauty <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3886                    </a>
3887                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-127-catalogPanel" aria-hidden="true" tabindex="-1">
3888    <ul class="navPage-subMenu-list">
3889        <li class="navPage-subMenu-item-parent">
3890            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-beauty/"><span class='navPage--viewAll'>All </span>Beauty</a>
3891        </li>
3892            <li class="navPage-subMenu-item-child">
3893                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-face-care/">Face Care</a>
3894            </li>
3895            <li class="navPage-subMenu-item-child">
3896                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-lip-oils-and-balms/">Lip Care</a>
3897            </li>
3898            <li class="navPage-subMenu-item-child">
3899                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-body-care/">Body Care</a>
3900            </li>
3901            <li class="navPage-subMenu-item-child">
3902                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/beauty/cbd-skincare-bundles/">Value Sets</a>
3903            </li>
3904    </ul>
3905</div>
3906            </li>
3907            <li class="navPage-subMenu-item-child">
3908                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-gummies/">Gummies</a>
3909            </li>
3910            <li class="navPage-subMenu-item-child">
3911                    <a class="navPage-subMenu-action navPages-action has-subMenu" href="https://twinecbd.com/cbd-products/cbd-topicals/" data-collapsible="navPages-132-catalogPanel"
3912                            data-collapsible-disabled-breakpoint="large"
3913                            data-collapsible-disabled-state="open"
3914                            data-collapsible-enabled-state="closed"
3915                    >
3916                        Topicals <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3917                    </a>
3918                    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-132-catalogPanel" aria-hidden="true" tabindex="-1">
3919    <ul class="navPage-subMenu-list">
3920        <li class="navPage-subMenu-item-parent">
3921            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-topicals/"><span class='navPage--viewAll'>All </span>Topicals</a>
3922        </li>
3923            <li class="navPage-subMenu-item-child">
3924                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-body-butter/">Body Butter</a>
3925            </li>
3926            <li class="navPage-subMenu-item-child">
3927                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-comfort-cream/">Comfort Cream</a>
3928            </li>
3929            <li class="navPage-subMenu-item-child">
3930                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-hydrating-lotion-spray/">Lotion Spray</a>
3931            </li>
3932            <li class="navPage-subMenu-item-child">
3933                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/topicals/cbd-relief-roller/">Relief Roller</a>
3934            </li>
3935    </ul>
3936</div>
3937            </li>
3938            <li class="navPage-subMenu-item-child">
3939                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-oils-tinctures/">Oils</a>
3940            </li>
3941            <li class="navPage-subMenu-item-child">
3942                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/cbd-products/cbd-pet-products/">Pets</a>
3943            </li>
3944    </ul>
3945</div>
3946                    </li>
3947                    <li class="navPages-item">
3948                        <a class="navPages-action has-subMenu is-root" href="https://twinecbd.com/shop-all-cbd-products/" data-collapsible="navPages-116-catalogPanel"
3949            data-collapsible-disabled-breakpoint="large"
3950            data-collapsible-disabled-state="open"
3951            data-collapsible-enabled-state="closed"
3952    >
3953        Shop All <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3954    </a>
3955    <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-116-catalogPanel" aria-hidden="true" tabindex="-1">
3956    <ul class="navPage-subMenu-list">
3957        <li class="navPage-subMenu-item-parent">
3958            <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/shop-all-cbd-products/"><span class='navPage--viewAll'>All </span>Shop All</a>
3959        </li>
3960            <li class="navPage-subMenu-item-child">
3961                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/shop-all-cbd-products/best-selling-cbd/">Best Sellers</a>
3962            </li>
3963            <li class="navPage-subMenu-item-child">
3964                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/shop-all-cbd-products/all-cbd-products/">All Products</a>
3965            </li>
3966    </ul>
3967</div>
3968                    </li>
3969                    <li class="navPages-item">
3970                        <a class="navPages-action" href="https://twinecbd.com/non-cbd/">Non-CBD</a>
3971                    </li>
3972                    <li class="navPages-item">
3973                        <a class="navPages-action" href="https://twinecbd.com/try-me/">Try Me</a>
3974                    </li>
3975                
3976                    <li class="navPages-item navPages-item--brands">
3977                        <a class="navPages-action has-subMenu is-root" href="" data-collapsible="navPages-brands-root"
3978                                data-collapsible-disabled-breakpoint="large"
3979                                data-collapsible-disabled-state="open"
3980                                data-collapsible-enabled-state="closed"
3981                        >
3982                            Shop by Brands <i class="icon navPages-action-moreIcon" aria-hidden="true"><svg><use xlink:href="#icon-chevron-down" /></svg></i>
3983                        </a>
3984                        <div class="navPage-subMenu navPage-subMenu-horizontal" id="navPages-brands-root" aria-hidden="true" tabindex="-1">
3985                            <ul class="navPage-subMenu-list">
3986                                    <li class="navPage-subMenu-item-child">
3987                                        <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/twine/">Twine</a>
3988                                    </li>
3989                                <li class="navPage-subMenu-item-parent">
3990                                    <a class="navPage-subMenu-action navPages-action" href="https://twinecbd.com/brands/">View all brands</a>
3991                                </li>
3992                            </ul>
3993                        </div>
3994                    </li>
3995            </ul>
3996        </nav>
3997    </div>
3998</div>
3999
4000<div class="navUser-panel" id="navUser-more-panel">
4001    <p class="navUser-panel-heading"><span class="navUser-panel-heading-ellipse">Account</span></p>
4002    <a class="navUser-more-close" id="navUser-more-close" data-collapsible="navUser-more-panel" data-group-collapsible="main"><svg><use xlink:href="#icon-close" aria-hidden="true" /></svg></a>
4003    <div class="navUser-panel-content" data-lock-body-scroll>
4004        <ul class="navUser-section navUser-section--panel">
4005
4006                <li class="navUser-item navUser-item--loginForm">
4007                    <p class="navUser-item-heading">Sign In</p>
4008                    <form class="navUser-loginForm form" action="https://twinecbd.com/login.php?action=check_login" method="post" data-login-form>
4009                        
4010                        
4011                        <div class="form-field">
4012                            <label class="form-label" for="login_email">Email Address:</label>
4013                            <input class="form-input" name="login_email" id="login_email" type="email">
4014                        </div>
4015                        <div class="form-field">
4016                            <label class="form-label" for="login_pass">Password:</label>
4017                            <input class="form-input" id="login_pass" type="password" name="login_pass">
4018                        </div>
4019                        <div class="form-actions">
4020                            <input type="submit" class="button button--primary" value="Sign in">
4021                            <a class="forgot-password" href="https://twinecbd.com/login.php?action=reset_password">Forgot your password?</a>
4022                            <a class="create-account" href="https://twinecbd.com/login.php?action=create_account">Create Account</a>
4023                        </div>
4024                    </form>
4025                </li>
4026                
4027                <li class="navUser-item navUser-item--giftCert">
4028                    <a class="navUser-action" href="https://twinecbd.com/giftcertificates.php">Gift Certificates</a>
4029                </li>
4030
4031
4032            
4033                <li class="navUser-item navUser-item--social">
4034                        <ul class="socialLinks socialLinks--alt socialLinks--colors">
4035        <li class="socialLinks-item">
4036            <a class="icon icon--instagram"
4037            href="https://www.instagram.com/twinecbd/"
4038            target="_blank"
4039            rel="noopener"
4040            title="Instagram"
4041            >
4042                <span class="aria-description--hidden">Instagram</span>
4043                <svg>
4044                    <use href="#icon-instagram"/>
4045                </svg>
4046            </a>
4047        </li>
4048        <li class="socialLinks-item">
4049            <a class="icon icon--facebook"
4050            href="https://www.facebook.com/twinecbd/"
4051            target="_blank"
4052            rel="noopener"
4053            title="Facebook"
4054            >
4055                <span class="aria-description--hidden">Facebook</span>
4056                <svg>
4057                    <use href="#icon-facebook"/>
4058                </svg>
4059            </a>
4060        </li>
4061        <li class="socialLinks-item">
4062            <a class="icon icon--pinterest"
4063            href="https://www.pinterest.com/twinecbd/"
4064            target="_blank"
4065            rel="noopener"
4066            title="Pinterest"
4067            >
4068                <span class="aria-description--hidden">Pinterest</span>
4069                <svg>
4070                    <use href="#icon-pinterest"/>
4071                </svg>
4072            </a>
4073        </li>
4074        <li class="socialLinks-item">
4075            <a class="icon icon--youtube"
4076            href="https://www.youtube.com/@twinecbd"
4077            target="_blank"
4078            rel="noopener"
4079            title="Youtube"
4080            >
4081                <span class="aria-description--hidden">Youtube</span>
4082                <svg>
4083                    <use href="#icon-youtube"/>
4084                </svg>
4085            </a>
4086        </li>
4087        <li class="socialLinks-item">
4088            <a class="icon icon--x"
4089            href="https://twitter.com/CbdTwine"
4090            target="_blank"
4091            rel="noopener"
4092            title="X"
4093            >
4094                <span class="aria-description--hidden">X</span>
4095                <svg>
4096                    <use href="#icon-x"/>
4097                </svg>
4098            </a>
4099        </li>
4100    </ul>
4101                </li>
4102        </ul>
4103    </div>
4104</div>
4105
4106            <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
4107    <div class="pswp__bg"></div>
4108    <div class="pswp__scroll-wrap">
4109        <div class="pswp__container">
4110            <div class="pswp__item"></div>
4111            <div class="pswp__item"></div>
4112            <div class="pswp__item"></div>
4113        </div>
4114        <div class="pswp__ui pswp__ui--hidden">
4115            <div class="pswp__top-bar">
4116                <div class="pswp__counter"></div>
4117                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
4118                <button class="pswp__button pswp__button--share" title="Share"></button>
4119                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
4120                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
4121                <div class="pswp__preloader">
4122                    <div class="pswp__preloader__icn">
4123                      <div class="pswp__preloader__cut">
4124                        <div class="pswp__preloader__donut"></div>
4125                      </div>
4126                    </div>
4127                </div>
4128            </div>
4129            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
4130                <div class="pswp__share-tooltip"></div> 
4131            </div>
4132            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
4133            </button>
4134            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
4135            </button>
4136            <div class="pswp__caption">
4137                <div class="pswp__caption__center"></div>
4138            </div>
4139        </div>
4140    </div>
4141</div>
4142
4143        
4143<script nonce="">window.__webpack_public_path__ = "https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/dist/";</script>
4143
4144        
4144<script nonce="">window.__webpack_nonce__ = "";</script>
4144
4145            
4145<script nonce="">
4146                window.stencilThemeJsLoaded = false;
4147                function onThemeBundleMain() {
4148                    if (!window.stencilThemeJsLoaded && window.stencilStyleLoaded && window.stencilBootstrap) {
4149                        window.stencilThemeJsLoaded = true;
4150                        window.stencilBootstrap("blog", "{\"breadcrumbs\":[{\"url\":\"https://twinecbd.com/\",\"name\":\"Home\"},{\"url\":\"/blog/\",\"name\":\"Blog\"}],\"products\":[],\"phone\":null,\"email\":null,\"address\":null,\"themeSettings\":{\"optimizedCheckout-formChecklist-color\":\"#131313\",\"footer_custom3_link3\":\"#\",\"footer_custom3_title2\":\"Affiliate Program\",\"color-secondaryDarker\":\"#cccccc\",\"card--alternate-color--hover\":\"#131313\",\"fontSize-root\":\"14\",\"show_accept_amex\":true,\"optimizedCheckout-buttonPrimary-borderColorDisabled\":\"transparent\",\"optimizedCheckout-buttonPrimary-backgroundColorActive\":\"#000000\",\"pbcst_bannerImagePath1\":\"/product_images/uploaded_images/banner03.jpg\",\"paymentbuttons-paypal-size\":\"responsive\",\"footer-backgroundColor-alt\":\"#ffffff\",\"optimizedCheckout-colorFocus\":\"#4496f6\",\"alsobought_product\":\"custom\",\"navUser-color\":\"#000000\",\"color-textBase--active\":\"#757575\",\"social_icon_placement_bottom\":\"bottom_right\",\"home_cats_banner0\":\"//via.placeholder.com/400x600\",\"productpage_bulk_price_table\":true,\"pbcst_position2\":\"right\",\"footer_custom2_title6\":\"\",\"show_powered_by\":false,\"product_list_columns\":3,\"categorypage_show_sub\":10,\"button--default-backgroundColorActive\":\"#ffffff\",\"home_cats_sub_count\":\"20\",\"fontSize-h4\":\"18\",\"checkRadio-borderColor\":\"#cccccc\",\"product_custom_badges\":true,\"color-primaryDarker\":\"#333333\",\"show_sidebar_category_banner1\":false,\"pbcst_bannerImageDomain5\":\"\",\"optimizedCheckout-buttonPrimary-colorHover\":\"#ffffff\",\"brand_size\":\"350x175\",\"o
4150ptimizedCheckout-logo-position\":\"left\",\"optimizedCheckout-discountBanner-backgroundColor\":\"#e5e5e5\",\"color-textLink--hover\":\"#333333\",\"lightbox_type\":\"photoswipe\",\"pdp-sale-price-label\":\"Sale:\",\"optimizedCheckout-buttonSecondary-backgroundColorHover\":\"#f5f5f5\",\"products_top_bg\":\"\",\"optimizedCheckout-headingPrimary-font\":\"Google_Open+Sans_600\",\"logo_size\":\"original\",\"productpage_description_type\":\"full\",\"logo-fontSize\":\"28\",\"footer_custom2_link4\":\"#\",\"price-main-fontSize\":\"24\",\"pbcst_url3\":\"\",\"footer-backgroundColor\":\"#f0f0f0\",\"navPages-color\":\"#000000\",\"productpage_reviews_count\":10,\"optimizedCheckout-step-borderColor\":\"#dddddd\",\"productpage_properties_tab\":false,\"optimizedCheckout-formField-backgroundColor\":\"#ffffff\",\"products_featured_heading\":\"FEATURED\",\"products_featured_columns\":4,\"show_accept_paypal\":false,\"paymentbuttons-paypal-label\":\"checkout\",\"footer_webpages_heading\":\"Navigate\",\"footer_show_address\":true,\"carousel_vid5\":\"\",\"color_badge_product_custom_badges\":\"#68AFC3\",\"optimizedCheckout-discountBanner-textColor\":\"#131313\",\"optimizedCheckout-backgroundImage-size\":\"1000x400\",\"optimizedCheckout-buttonPrimary-font\":\"Google_Open+Sans_400\",\"paymentbuttons-paypal-shape\":\"pill\",\"footer_brands_limit\":\"0\",\"pbcst_bannerImagePath4\":\"\",\"section4\":\"categories-list\",\"carousel-description-color-alt\":\"#333333\",\"pdp-retail-price-label\":\"MSRP:\",\"contact_phoneText\":\"Phone: 678-242-9680\",\"footer_custom1_title3\":\"Privacy Policy\",\"home_cats_banner7\":\"//via.placeholder.com/400x600\",\"carousel-dot-color\":\"#888888\",\"button--disabled-backgroundColor\":\"#cccccc\",\"header_sticky\":true,\"topHeader_show_phone\":false,\"section10\":\"-\",\"blockquote-cite-font-color\":\"#999999\",\"pbcst_position6\":\"\",\"pbcst_bannerButton6\":\"\",\"recentBlog_subheading\":\"\",\"keywords_file3\":\"/content/suggest-keywords-3.csv\",\"use_tweenmax\":false,\"optimizedCheckout-formField-shadowColor\":\"#e5e5e5\",\"brandspage_infiniteScroll\":true,\"topBanner-color\":\"#ffffff\",\"footer_custom3_link4\":\"#\",\"carousel-width\":\"auto\",\"container-fill-base\":\"#ffffff\",\"paymentbuttons-paypal-layout\":\"horizontal\",\"button--default-color\":\"#000000\",\"recentBlog_type\":\"columns\",\"pace-progress-backgroundColor\":\"#999999\",\"color-textLink--active\":\"#333333\",\"home_cats_banner8\":\"//via.placeholder.com/400x600\",\"productpage_vertical_thumbnails\":false,\"section7\":\"-\",\"footer_show_custom2\":false,\"page-heading-font\":\"Google_Open+Sans_700\",\"carousel-bgOpacity\":\"0\",\"optimizedCheckout-loadingToaster-backgroundColor\":\"#131313\",\"color-textHeading\":\"#000000\",\"show_accept_discover\":true,\"footer_custom1_link6\":\"\",\"optimizedCheckout-formField-errorColor\":\"#d14343\",\"products_top_type\":\"carousel\",\"spinner-borderColor-dark\":\"#999999\",\"restrict_to_login\":false,\"input-font-color\":\"#666666\",\"carousel_mobile_height_fixed\":false,\"carousel-title-color\":\"#444444\",\"select-bg-color\":\"#ffffff\",\"show_accept_mastercard\":true,\"color_text_product_sale_badges\":\"#ffffff\",\"optimizedCheckout-link-font\":\"Google_Open+Sans_400\",\"homepage_show_carousel_arrows\":false,\"carousel-button-style-alt\":\"default\",\"carousel-arrow-bgColor\":\"#ffffff\",\"show_accept_googlepay\":false,\"card--alternate-borderColor\":\"#ffffff\",\"products_new_count\":10,\"navUser-icon-fontSize\":\"22\",\"button--disabled-color\":\"#ffffff\",\"footer_custom1_link2\":\"#\",\"color-primaryDark\":\"#666666\",\"carousel-button-style\":\"default\",\"footer_custom2_title2\":\"Size and Fit Guides\",\"pbcst_bannerHeading5\":\"\",\"optimizedCheckout-step-textColor\":\"#ffffff\",\"footer_custom1_title6\":\"\",\"color_hover_product_sale_badges\":\"#ee534f\",\"color-price\":\"#68AFC3\",\"home_cats_banner4\":\"//via.placeholder.com/400x600\",\"pbcst_heading4\":\"\",\"optimizedCheckout-buttonPrimary-borderColorActive\":\"transparent\",\"pbcst_bannerImageDomain1\":\"//store-esi1aufjsk.mybigcommerce.com\",\"navPages-subMenu-backgroundColor\":\"#ffffff\",\"product_outstock_badge\":true,\"home_cats_subheading\":\"\",\"topHeader_show\":true,\"color-grey\":\"#999999\",\"footer_custom3_title3\":\"Join Our Community\",\"body-font\":\"Google_Open+Sans_400,500,600,700,300\",\"optimizedCheckout-formField-borderColor\":\"#cccccc\",\"show_product_dimensions\":false,\"optimizedCheckout-link-color\":\"#476bef\",\"card-figcaption-button-background\":\"#000000\",\"button--default-borderColor\":\"#000000\",\"blog_post_size\":\"832x750\",\"headings-font\":\"Google_Open+Sans_600\",\"categorypage_show_sub_thumb\":true,\"footer_custom3_title1\":\"Top Searches\",\"button--primary-backgroundColorHover\":\"#ee534f\",\"add_to_cart_btn\":\"add_to_cart\",\"button--primary-backgroundColor\":\"#000000\",\"products_featured_columns_sm\":2,\"checkRadio-color\":\"#333333\",\"icon-color-hover\":\"#999999\",\"navPages-subMenu-fontSize\":\"14\",\"optimizedCheckout-headingSecondary-font\":\"Google_Open+Sans_600\",\"footer_custom1_title4\":\"Terms and Conditions\",\"label-backgroundColor\":\"#cccccc\",\"copyright-linkColor-hover\":\"#ee534f\",\"pdp-non-sale-price-label\":\"\",\"button--disabled-borderColor\":\"#cccccc\",\"label-color\":\"#ffffff\",\"optimizedCheckout-headingSecondary-color\":\"#131313\",\"pbcst_bannerHeading6\":\"\",\"optimizedCheckout-logo-size\":\"250x100\",\"default_image_brand\":\"img/BrandDefault.gif\",\"footer-borderColor\":\"#dddddd\",\"card-title-color\":\"#666666\",\"select-arrow-color\":\"#757575\",\"pbcst_bannerImagePath5\":\"\",\"footer_show_custom3\":false,\"payment_icons_style\":\"color\",\"alert-backgroundColor\":\"#ffffff\",\"keywords_file1\":\"/content/suggest-keywords-1.csv\",\"footer-color\":\"#818181\",\"carousel-transition\":\"none\",\"payment_icons_position\":\"copyright_left\",\"footer_custom3_title6\":\"\",\"paymentbanners-cartpage-logo-type\":\"primary\",\"pbcst_url6\":\"\",\"fontSize-h5\":\"16\",\"navPages-fontWeight\":\"700\",\"card_img_hover\":false,\"section5\":\"recent-blog\",\"suggest_keywords\":false,\"footer-link-color\":\"#323232\",\"product_list_display_mode\":\"grid\",\"products_new_columns\":4,\"optimizedCheckout-link-hoverColor\":\"#002fe1\",\"categorypage_infiniteScroll\":true,\"product_size\":\"728x728\",\"paymentbuttons-paypal-color\":\"gold\",\"homepage_show_carousel\":false,\"optimizedCheckout-body-backgroundColor\":\"#ffffff\",\"section1\":\"home-banner1\",\"show_sidebar_brand_banner2\":false,\"header-backgroundColor\":\"#EFE2DA\",\"home_cats_count\":\"6\",\"color-greyDarkest\":\"#000000\",\"price_ranges\":true,\"productpage_videos_count\":8,\"ajax_add_to_cart\":false,\"carousel-arrow-borderColor\":\"#ffffff\",\"footer_custom2_title3\":\"Payments\",\"button--default-borderColorActive\":\"#000000\",\"productpage_reviews_tab\":false,\"footer_custom2_link3\":\"#\",\"color_badge_product_sale_badges\":\"#ee534f\",\"navigation_widgets\":true,\"products_featured_subheading\":\"Products you may interest\",\"use_wow\":false,\"color-greyDark\":\"#666666\",\"optimizedCheckout-buttonSecondary-borderColorHover\":\"#999999\",\"optimizedCheckout-discountBanner
4150-iconColor\":\"#131313\",\"productpage_thumbnails_count\":\"10\",\"optimizedCheckout-buttonSecondary-borderColor\":\"#cccccc\",\"pbcst_bannerImagePath2\":\"/product_images/uploaded_images/banner04.jpg\",\"pbcst_heading6\":\"\",\"optimizedCheckout-buttonPrimary-colorDisabled\":\"#ffffff\",\"icon-ratingFull\":\"#f1c556\",\"default_image_gift_certificate\":\"img/GiftCertificate.png\",\"pbcst_bannerImageDomain4\":\"\",\"footer-heading-color\":\"#000000\",\"add_to_cart_popup\":\"mini\",\"topBanner-color-link\":\"#ffffff\",\"optimizedCheckout-loadingToaster-textColor\":\"#ffffff\",\"color-textBase--hover\":\"#757575\",\"color-errorLight\":\"#ffdddd\",\"navPages-childList-fontSize\":\"13\",\"optimizedCheckout-formField-placeholderColor\":\"#999999\",\"navUser-color-hover\":\"#ee534f\",\"footer_custom2_title4\":\"Shipping Info\",\"carousel-slide4-position\":\"center\",\"productpage_description_tab\":false,\"contact_linkText\":\"Contact Us\",\"carousel-slide2-style\":\"alt\",\"pbcst_position3\":\"\",\"products_new_columns_sm\":2,\"social_icon_placement_top\":true,\"section6\":\"-\",\"blog_size\":\"400x360\",\"products_new_heading\":\"NEW ARRIVAL\",\"footer_custom1_heading\":\"About Chiara\",\"use_remote_banner\":true,\"shop_by_price_visibility\":false,\"optimizedCheckout-buttonSecondary-colorActive\":\"#000000\",\"paymentbanners-proddetailspage-color\":\"white\",\"color-warningLight\":\"#fffdea\",\"show_product_weight\":false,\"home_cats_banner3\":\"//via.placeholder.com/400x600\",\"optimizedCheckout-orderSummary-backgroundColor\":\"#ffffff\",\"pbcst_url1\":\"/shop-all/\",\"products_featured_type\":\"grid\",\"button--default-colorActive\":\"#000000\",\"products_featured_bg\":\"\",\"color-info\":\"#111111\",\"copyright-backgroundColor\":\"#ffffff\",\"navPages-fontSize\":\"14\",\"optimizedCheckout-formChecklist-backgroundColorSelected\":\"#f5f5f5\",\"button--default-borderColorHover\":\"#000000\",\"card--alternate-backgroundColor\":\"#ffffff\",\"footer_custom1_link3\":\"#\",\"hide_content_navigation\":true,\"footer_custom3_title5\":\"Stundent Discount\",\"show_product_quick_view\":false,\"home_cats_banner9\":\"//via.placeholder.com/400x600\",\"pdp-price-label\":\"Price:\",\"show_copyright_footer\":true,\"swatch_option_size\":\"64x64\",\"carousel-slide5-style\":\"default\",\"optimizedCheckout-orderSummary-borderColor\":\"#dddddd\",\"pbcst_bannerButton2\":\"View More\",\"productpage_thumbnails_slider\":true,\"optimizedCheckout-show-logo\":\"none\",\"home_cats_style\":\"furniture\",\"carousel-description-color\":\"#333333\",\"recentBlog_heading\":\"FROM OUR BLOG\",\"navigation_hover\":true,\"optimizedCheckout-formChecklist-backgroundColor\":\"#ffffff\",\"fontSize-h2\":\"20\",\"o
4150ptimizedCheckout-step-backgroundColor\":\"#757575\",\"carousel-slide1-style\":\"default\",\"pbcst_heading3\":\"\",\"optimizedCheckout-headingPrimary-color\":\"#131313\",\"carousel-heading-fontSize\":\"22\",\"color-textBase\":\"#131313\",\"color-warning\":\"#f1a500\",\"productgallery_size\":\"532x532\",\"show_accept_applepay\":true,\"footer_custom1_title5\":\"Legal Window\",\"alert-color\":\"#333333\",\"topHeader_show_banner\":true,\"card-figcaption-button-color\":\"#ffffff\",\"color-textSecondary--active\":\"#333333\",\"footer_newsletter_position\":\"right\",\"optimizedCheckout-formField-inputControlColor\":\"#476bef\",\"optimizedCheckout-buttonSecondary-font\":\"Google_Open+Sans_400\",\"storeName-color\":\"#000000\",\"form-label-font-color\":\"#666666\",\"pbcst_bannerHeading2\":\"Real<br/>Men's<br/>Fashion\",\"color_badge_product_outstock_badges\":\"#eeeeee\",\"copyright-linkColor\":\"#323232\",\"optimizedCheckout-contentPrimary-color\":\"#131313\",\"optimizedCheckout-backgroundImage\":\"\",\"footer_webpages_limit\":\"30\",\"color-greyLightest\":\"#e5e5e5\",\"carousel-bgColor-alt\":\"#ffffff\",\"pbcst_bannerImagePath6\":\"\",\"productpage_related_products_count\":10,\"optimizedCheckout-buttonSecondary-backgroundColorActive\":\"#e5e5e5\",\"color-textLink\":\"#ee534f\",\"carousel_vid3\":\"\",\"pbcst_bannerHeading3\":\"\",\"paymentbanners-homepage-ratio\":\"8x1\",\"products_new_subheading\":\"\",\"optimizedCheckout-header-backgroundColor\":\"#f5f5f5\",\"carousel_vid2\":\"\",\"color-secondaryDark\":\"#e5e5e5\",\"fontSize-h6\":\"12\",\"home_cats_banner2\":\"//via.placeholder.com/400x600\",\"fb_page\":\"\",\"home_cats_heading\":\"\",\"carousel-arrow-color\":\"#000000\",\"productpage_similar_by_views_count\":10,\"color-greyLighter\":\"#cccccc\",\"products_featured_count\":4,\"products_new_type\":\"grid\",\"contact_link\":\"/contact-us/\",\"footer_custom2_heading\":\"Customer Support\",\"show_accept_amazon\":false,\"footer_custom2_link2\":\"#\",\"footer_brands_heading\":\"Our Brands\",\"bottomBar-fontSize\":\"11\",\"products_new_bg\":\"\",\"input-bg-color\":\"#ffffff\",\"footer_custom3_link1\":\"#\",\"pbcst_url5\":\"\",\"loadingOverlay-backgroundColor\":\"#ffffff\",\"paymentbanners-proddetailspage-ratio\":\"8x1\",\"color_text_product_outstock_badges\":\"#282828\",\"optimizedCheckout-buttonPrimary-color\":\"#ffffff\",\"navPages-subMenu-separatorColor\":\"#e5e5e5\",\"navPages-color-hover\":\"#ee534f\",\"color-infoLight\":\"#008a06\",\"paymentbanners-homepage-color\":\"white\",\"footer_categories_heading\":\"Our Categories\",\"product_sale_badges\":\"topleft\",\"home_cats_banner6\":\"//via.placeholder.com/400x600\",\"default_image_product\":\"img/ProductDefault.gif\",\"footer_categories_limit\":\"10\",\"navUser-dropdown-borderColor\":\"#cccccc\",\"footer_custom2_link5\":\"#\",\"carousel-slide5-position\":\"center\",\"pbcst_bannerButton1\":\"View More\",\"optimizedCheckout-formChecklist-borderColor\":\"#cccccc\",\"fontSize-h1\":\"22\",\"pbcst_bannerImageDomain3\":\"\",\"productpage_custom_fields_tab_heading\":\"Specifications\",\"footer_custom1_link4\":\"#\",\"bottomBar-icon-size\":\"22\",\"optimizedCheckout-buttonPrimary-colorActive\":\"#ffffff\",\"contact_phone\":\"678-242-9680\",\"color-greyMedium\":\"#757575\",\"pbcst_heading1\":\"For Ladies\",\"productpage_tabs_type\":\"full\",\"section9\":\"-\",\"color-greyLight\":\"#999999\",\"optimizedCheckout-logo\":\"\",\"icon-ratingEmpty\":\"#cccccc\",\"icon-color\":\"#757575\",\"button--default-backgroundColorHover\":\"#000000\",\"redirect_cart\":true,\"section2\":\"top-products\",\"overlay-backgroundColor\":\"#333333\",\"input-border-color-active\":\"#999999\",\"container-fill-dark\":\"#f0f0f0\",\"pbcst_url2\":\"/utility/\",\"copyright-color\":\"#666666\",\"optimizedCheckout-buttonPrimary-backgroundColorDisabled\":\"#cccccc\",\"card_swatch_option_size\":\"18x18\",\"carousel-slide3-style\":\"default\",\"brandpage_infiniteScroll\":true,\"footer_custom3_heading\":\"More About Chiara\",\"pbcst_heading2\":\"For Men\",\"color-successLight\":\"#d5ffd8\",\"pbcst_position4\":\"\",\"productpage_addCart_mobile\":\"inline\",\"button--default-backgroundColor\":\"#ffffff\",\"button--primary-color\":\"#ffffff\",\"pbcst_bannerHeading1\":\"Wo-<br/>men's<br/>Trends\",\"carousel-slide3-position\":\"center\",\"optimizedCheckout-buttonPrimary-borderColorHover\":\"transparent\",\"footer_custom2_title5\":\"Returns\",\"color-greyDarker\":\"#333333\",\"show_product_quantity_box\":true,\"footer_custom1_title1\":\"About Us\",\"carousel-description-fontSize\":\"18\",\"card_custom_fields\":\"\",\"color-success\":\"#008a06\",\"spinner-borderColor-light\":\"#ffffff\",\"zoom_size\":\"1280x1280\",\"pbcst_bannerButton4\":\"\",\"color-white\":\"#ffffff\",\"productview_thumb_size\":\"50x50\",\"fontSize-h3\":\"20\",\"color_text_product_custom_badges\":\"#ffffff\",\"products_top_columns_sm\":2,\"optimizedCheckout-header-borderColor\":\"#dddddd\",\"paymentbuttons-container\":\"medium\",\"optimizedCheckout-buttonSecondary-backgroundColor\":\"#ffffff\",\"footer_custom3_link6\":\"\",\"carousel-dot-color-active\":\"#f26522\",\"input-border-color\":\"#cccccc\",\"optimizedCheckout-buttonPrimary-backgroundColor\":\"#131313\",\"carousel-button-fontSize\":\"16\",\"color-secondary\":\"#ffffff\",\"carousel-slide4-style\":\"alt\",\"products_per_page\":100,\"products_top_heading\":\"BESTSELLING\",\"show_sidebar_category_banner2\":false,\"alsobought_checked\":true,\"bottomBar-color-active\":\"#ee534f\",\"carousel-bgColor\":\"#ffffff\",\"button--primary-backgroundColorActive\":\"#ee534f\",\"color-textSecondary--hover\":\"#333333\",\"recentBlog_count\":0,\"card_show_brand\":true,\"home_cats_id\":\"\",\"footer_custom3_title4\":\"Follow Our Blog\",\"productpage_custom_fields_tab\":false,\"body-bg\":\"#ffffff\",\"carousel-title-color-alt\":\"#444444\",\"dropdown--quickSearch-backgroundColor\":\"#e5e5e5\",\"optimizedCheckout-contentSecondary-font\":\"Google_Open+Sans_400\",\"footer_custom3_link2\":\"#\",\"color-primary\":\"#ee534f\",\"color-whitesBase\":\"#e5e5e5\",\"footer_custom1_title2\":\"Contact Us\",\"bottomBar-color\":\"#131313\",\"navUser-dropdown-backgroundColor\":\"#ffffff\",\"optimizedCheckout-contentPrimary-font\":\"Google_Open+Sans_400\",\"csspreload\":\"performance\",\"card_show_swatches\":false,\"bottomBar\":\"bottom\",\"supported_card_type_icons\":[\"american_express\",\"diners\",\"discover\",\"mastercard\",\"visa\"],\"footer_custom2_link1\":\"#\",\"navigation_design\":\"alternate\",\"optimizedCheckout-formField-textColor\":\"#131313\",\"color-black\":\"#000000\",\"home_cats_banner1\":\"//via.placeholder.com/400x600\",\"carousel-slide1-position\":\"center\",\"carousel_vid4\":\"\",\"optimizedCheckout-buttonSecondary-colorHover\":\"#131313\",\"show_accept_klarna\":false,\"topB
4150anner-bgColor\":\"#131313\",\"button--primary-colorActive\":\"#ffffff\",\"paymentbanners-cartpage-logo-position\":\"left\",\"homepage_stretch_carousel_images\":false,\"pbcst_url4\":\"\",\"products_top_columns\":4,\"alsobought\":true,\"optimizedCheckout-contentSecondary-color\":\"#757575\",\"products_top_subheading\":\"\",\"productpage_videos_type\":\"gallery\",\"carousel_vid1\":\"\",\"card-title-color-hover\":\"#ee534f\",\"applePay-button\":\"black\",\"carousel-height\":\"equal\",\"pbcst_position1\":\"left\",\"thumb_size\":\"100x100\",\"footer_custom1_link1\":\"#\",\"optimizedCheckout-buttonPrimary-borderColor\":\"#cccccc\",\"footer_custom2_title1\":\"Shopping FAQs\",\"section3\":\"new-products\",\"optimizedCheckout-buttonSecondary-borderColorActive\":\"#757575\",\"keywords_file2\":\"/content/suggest-keywords-2.csv\",\"footer-link-colorHover\":\"#ee534f\",\"products_top_count\":8,\"page-heading-fontSize\":\"22\",\"optimizedCheckout-header-textColor\":\"#131313\",\"optimizedCheckout-show-backgroundImage\":false,\"home_cats_banner5\":\"//via.placeholder.com/400x600\",\"color-primaryLight\":\"#999999\",\"navUser-indicator-backgroundColor\":\"#333333\",\"color-textHeading-alt\":\"#000000\",\"footer_custom2_link6\":\"\",\"topHeader_show_address\":false,\"footer_custom3_link5\":\"#\",\"show_accept_visa\":true,\"searchpage_infiniteScroll\":true,\"show_sidebar_brand_banner1\":false,\"optimizedCheckout-buttonSecondary-color\":\"#131313\",\"pbcst_bannerImagePath3\":\"\",\"logo-position\":\"left\",\"carousel-dot-bgColor\":\"#ffffff\",\"blog_posts_per_page\":6,\"optimizedCheckout-form-textColor\":\"#666666\",\"card_show_img_slider\":true,\"footer_custom1_link5\":\"#\",\"carousel-slide2-position\":\"center\",\"pbcst_bannerImageDomain2\":\"//store-esi1aufjsk.mybigcommerce.com\",\"bottomBar_show_brands\":true,\"pbcst_position5\":\"\",\"button--icon-svg-color\":\"#757575\",\"pbcst_bannerHeading4\":\"\",\"footer_show_custom1\":false,\"price-fontSize\":\"16\",\"button--default-colorHover\":\"#ffffff\",\"checkRadio-backgroundColor\":\"#ffffff\",\"pbcst_heading5\":\"\",\"input-disabled-bg\":\"#ffffff\",\"pbcst_bannerButton5\":\"\",\"section8\":\"-\",\"alert-color-alt\":\"#ffffff\",\"productpage-title-fontSize\":\"20\",\"contact_email\":\"[email protected]\",\"carousel-bgOpacity-alt\":\"0\",\"optimizedCheckout-buttonPrimary-backgroundColorHover\":\"#666666\",\"paymentbanners-cartpage-text-color\":\"black\",\"container-border-global-color-base\":\"#e5e5e5\",\"pbcst_limit\":\"8\",\"swatch_option_display_type\":\"default\",\"productthumb_size\":\"100x100\",\"button--primary-colorHover\":\"#ffffff\",\"color-error\":\"#cc4749\",\"bottomBar-bgColor\":\"#ffffff\",\"navUser_panel\":true,\"checkout_theme\":false,\"productpage_custom_fields_hide_special\":true,\"home_cats_show_banner\":false,\"pbcst_bannerButton3\":\"\",\"pbcst_bannerImageDomain6\":\"\",\"color-textSecondary\":\"#999999\",\"sidebar_new_products_count\":0,\"gallery_size\":\"300x300\",\"carousel-mobile-height\":\"350\"},\"genericError\":\"Oops! Something went wrong.\",\"maintenanceMode\":[],\"urls\":{\"home\":\"https://twinecbd.com/\",\"brands\":\"https://twinecbd.com/brands/\",\"search\":\"https://twinecbd.com/search.php\",\"compare\":\"https://twinecbd.com/compare\",\"sitemap\":\"https://twinecbd.com/sitemap.php\",\"contact_us_submit\":\"https://twinecbd.com/pages.php?action=sendContactForm\",\"subscribe\":{\"action\":\"https://twinecbd.com/subscribe.php\"},\"checkout\":{\"single_address\":\"https://twinecbd.com/checkout\",\"multiple_address\":\"https://twinecbd.com/checkout.php?action=multiple\"},\"account\":{\"orders\":{\"all\":\"https://twinecbd.com/account.php?action=order_status\",\"completed\":\"https://twinecbd.com/account.php?action=view_orders\",\"save_new_return\":\"https://twinecbd.com/account.php?action=save_new_return\"},\"returns\":\"https://twinecbd.com/account.php?action=view_returns\",\"addresses\":\"https://twinecbd.com/account.php?action=address_book\",\"inbox\":\"https://twinecbd.com/account.php?action=inbox\",\"send_message\":\"https://twinecbd.com/account.php?action=send_message\",\"add_address\":\"https://twinecbd.com/account.php?action=add_shipping_address\",\"update_action\":\"https://twinecbd.com/account.php?action=update_account\",\"details\":\"https://twinecbd.com/account.php?action=account_details\",\"recent_items\":\"https://twinecbd.com/account.php?action=recent_items\",\"index\":\"https://twinecbd.com/account.php\",\"wishlists\":{\"all\":\"https://twinecbd.com/wishlist.php\",\"add\":\"https://twinecbd.com/wishlist.php?action=addwishlist\",\"edit\":\"https://twinecbd.com/wishlist.php?action=editwishlist\",\"delete\":\"https://twinecbd.com/wishlist.php?action=deletewishlist\"},\"payment_methods\":{\"all\":\"https://twinecbd.com/account.php?action=payment_methods\"}},\"auth\":{\"login\":\"https://twinecbd.com/login.php\",\"check_login\":\"https://twinecbd.com/login.php?action=check_login\",\"create_account\":\"https://twinecbd.com/login.php?action=create_account\",\"save_new_account\":\"https://twinecbd.com/login.php?action=save_new_account\",\"forgot_password\":\"https://twinecbd.com/login.php?action=reset_password\",\"send_password_email\":\"https://twinecbd.com/login.php?action=send_password_email\",\"save_new_password\":\"https://twinecbd.com/login.php?action=save_new_password\",\"logout\":\"https://twinecbd.com/login.php?action=logout\"},\"cart\":\"https://twinecbd.com/cart.php\",\"product\":{\"post_review\":\"https://twinecbd.com/postreview.php\"},\"gift_certificate\":{\"purchase\":\"https://twinecbd.com/giftcertificates.php\",\"redeem\":\"https://twinecbd.com/giftcertificates.php?action=redeem\",\"balance\":\"https://twinecbd.com/giftcertificates.php?action=balance\"},\"rss\":{\"products\":[]}},\"secureBaseUrl\":\"https://twinecbd.com\",\"assetsUrl\":\"https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/\",\"pageType\":\"blog\",\"cartId\":null,\"template\":\"pages/blog\",\"validationDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"validation_messages.val
4150id_email\\\":\\\"en\\\",\\\"validation_messages.password\\\":\\\"en\\\",\\\"validation_messages.password_match\\\":\\\"en\\\",\\\"validation_messages.invalid_password\\\":\\\"en\\\",\\\"validation_messages.field_not_blank\\\":\\\"en\\\",\\\"validation_messages.certificate_amount\\\":\\\"en\\\",\\\"validation_messages.certificate_amount_range\\\":\\\"en\\\",\\\"validation_messages.price_min_evaluation\\\":\\\"en\\\",\\\"validation_messages.price_max_evaluation\\\":\\\"en\\\",\\\"validation_messages.price_min_not_entered\\\":\\\"en\\\",\\\"validation_messages.price_max_not_entered\\\":\\\"en\\\",\\\"validation_messages.price_invalid_value\\\":\\\"en\\\",\\\"validation_messages.invalid_gift_certificate\\\":\\\"en\\\"},\\\"translations\\\":{\\\"validation_messages.valid_email\\\":\\\"You must enter a valid email.\\\",\\\"validation_messages.password\\\":\\\"You must enter a password.\\\",\\\"validation_messages.password_match\\\":\\\"Your passwords do not match.\\\",\\\"validation_messages.invalid_password\\\":\\\"Passwords must be at least 7 characters and contain both alphabetic and numeric characters.\\\",\\\"validation_messages.field_not_blank\\\":\\\" field cannot be blank.\\\",\\\"validation_messages.certificate_amount\\\":\\\"You must enter a gift certificate amount.\\\",\\\"validation_messages.certificate_amount_range\\\":\\\"You must enter a certificate amount between [MIN] and [MAX]\\\",\\\"validation_messages.price_min_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_messages.price_max_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_messages.price_min_not_entered\\\":\\\"Min. price is required.\\\",\\\"validation_messages.price_max_not_entered\\\":\\\"Max. price is required.\\\",\\\"validation_messages.price_invalid_value\\\":\\\"Input must be greater than 0.\\\",\\\"validation_messages.invalid_gift_certificate\\\":\\\"Please enter your valid certificate code.\\\"}}\",\"validationFallbackDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{\\\"validation_fallback_messages.valid_email\\\":\\\"en\\\",\\\"validation_fallback_messages.password\\\":\\\"en\\\",\\\"validation_fallback_messages.password_match\\\":\\\"en\\\",\\\"validation_fallback_messages.invalid_password\\\":\\\"en\\\",\\\"validation_fallback_messages.field_not_blank\\\":\\\"en\\\",\\\"validation_fallback_messages.certificate_amount\\\":\\\"en\\\",\\\"validation_fallback_messages.certificate_amount_range\\\":\\\"en\\\",\\\"validation_fallback_messages.price_min_evaluation\\\":\\\"en\\\",\\\"validation_fallback_messages.price_max_evaluation\\\":\\\"en\\\",\\\"validation_fallback_messages.price_min_not_entered\\\":\\\"en\\\",\\\"validation_fallback_messages.price_max_not_entered\\\":\\\"en\\\",\\\"validation_fallback_messages.price_invalid_value\\\":\\\"en\\\",\\\"validation_fallback_messages.invalid_gift_certificate\\\":\\\"en\\\"},\\\"translations\\\":{\\\"validation_fallback_messages.valid_email\\\":\\\"You must enter a valid email.\\\",\\\"validation_fallback_messages.password\\\":\\\"You must enter a password.\\\",\\\"validation_fallback_messages.password_match\\\":\\\"Your passwords do not match.\\\",\\\"validation_fallback_messages.invalid_password\\\":\\\"Passwords must be at least 7 characters and contain both alphabetic and numeric characters.\\\",\\\"validation_fallback_messages.field_not_blank\\\":\\\" field cannot be blank.\\\",\\\"validation_fallback_messages.certificate_amount\\\":\\\"You must enter a gift certificate amount.\\\",\\\"validation_fallback_messages.certificate_amount_range\\\":\\\"You must enter a certificate amount between [MIN] and [MAX]\\\",\\\"validation_fallback_messages.price_min_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_fallback_messages.price_max_evaluation\\\":\\\"Min. price must be less than max. price.\\\",\\\"validation_fallback_messages.price_min_not_entered\\\":\\\"Min. price is required.\\\",\\\"validation_fallback_messages.price_max_not_entered\\\":\\\"Max. price is required.\\\",\\\"validation_fallback_messages.price_invalid_value\\\":\\\"Input must be greater than 0.\\\",\\\"validation_fallback_messages.invalid_gift_certificate\\\":\\\"Please enter your valid certificate code.\\\"}}\",\"validationDefaultDictionaryJSON\":\"{\\\"locale\\\":\\\"en\\\",\\\"locales\\\":{},\\\"translations\\\":{}}\",\"loadingImg\":\"https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/loading.svg\",\"money\":{\"currency_token\":\"$\",\"currency_location\":\"left\",\"decimal_token\":\".\",\"decimal_places\":2,\"thous
4150ands_token\":\",\"},\"graphQLToken\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOlsxXSwiY29ycyI6WyJodHRwczovL3R3aW5lY2JkLmNvbSJdLCJlYXQiOjE3OTE0NTg5MTcsImlhdCI6MTc5MTI4NjExNywiaXNzIjoiQkMiLCJzaWQiOjEwMDEwMzY0OTMsInN1YiI6IkJDIiwic3ViX3R5cGUiOjAsInRva2VuX3R5cGUiOjF9.tb94w3lhrG-7KWHI8rihBmiY2Os5IR9mv7g7TdgEefmh-dfxkvI2n1-I4JouRLxMhcqZ2HZJQMTmIJjL1-Hf9g\",\"loginUrl\":\"https://twinecbd.com/login.php\",\"activeCurrencyCode\":\"USD\",\"defaultCurrencyCode\":\"USD\",\"defaultProductImage\":\"https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/img/ProductDefault.gif\",\"priceWithTaxTxt\":\"Inc. Tax\",\"priceWithoutTaxTxt\":\"Ex. Tax\",\"includingTaxTxt\":\"Including Tax\",\"excludingTaxTxt\":\"Excluding Tax\",\"chooseOptionsTxt\":\"Choose Options\",\"loginForPriceTxt\":\"Log in for pricing\",\"txtAlsoBoughtNumberArray\":\",both,three,four,five,six,seven,eight,nine,ten\",\"txtAlsoBoughtAllNumberArray\":\"all,all two,all three,all four,all five,all six,all seven,all eight,all nine,all ten\",\"txtSelectOne\":\"Please select one\",\"suggest_keywords\":false,\"keywords_file1\":\"/content/suggest-keywords-1.csv\",\"keywords_file2\":\"/content/suggest-keywords-2.csv\",\"keywords_file3\":\"/content/suggest-keywords-3.csv\",\"useValidEmail\":\"Please use a valid email address, such as [email protected].\",\"enterPass\":\"You must enter a password.\"}").load();
4151                    }
4152                }
4153            </script>
4153
4154            
4154<script src="https://cdn11.bigcommerce.com/s-neutbgywct/stencil/bf7790b0-e027-013e-e096-426267a8bd43/e/57d66270-1657-013f-5a44-76bf1942548d/dist/theme-bundle.main.js" async defer onload="onThemeBundleMain()" nonce=""></script>
4154
4155
4156        
4156<script type="text/javascript" src="https://cdn11.bigcommerce.com/shared/js/csrf-protection-header-5eeddd5de78d98d146ef4fd71b2aedce4161903e.js"></script>
vendor: 1 bytes, line 4156
4156
4157<script src='https://api.goaffpro.com/loader.js?shop=neutbgywct' ></script>
4157<script src='https://static.klaviyo.com/onsite/js/WYdRfT/klaviyo.js?company_id=WYdRfT' async ></script>
4157<script src='https://static.affiliatly.com/bigcommerce/v3/bigcommerce.js?affiliatly_code=AF-1073307'   ></script>
4157<script type="text/javascript"> (function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/jk72qUwaDJTVpE3jYdYEEeMlLKTSKZWAC9QuCnQY/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();</script>
4157 
4157<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
vendor: 1 bytes, line 4157
4157
4158<script id="rebillia-platform-connect" src="https://code.rebillia.com/bc/v6/js/connector.js?consoleIsEnabled=1&publicKey=LB9K8WKD700QPMWLQ41ZV5AJOOZT6MR1"></script>
vendor: 1 bytes, line 4158
4158
4159<script type="text/javascript" src="https://js.authorize.net/v1/Accept.js" charset="utf-8"></script>
4159
4160
4161<script type="text/javascript">
4162    $(document).ready(function(){
4163        setTimeout(function(){
4164            $('a[data-name="rebillia-create-account"]').attr('href','/login.php?action=create_account');
4165			$('a[data-name="rebillia-create-account"]').attr('target','');
4166        }, 3000);
4167        
4168        $('ul.navUser-section.navUser-section--panel li:first').after('<li class="navUser-item navUser-item--rbPayMethods"><a class="navUser-action" href="/account.php?action=order_status&rbAction=PayMethods">Payment Methods</a></li><li class="navUser-item navUser-item--rbSubscriptions"><a class="navUser-action" href="/account.php?action=order_status&rbAction=Subscriptions">My Subscriptions</a></li><li class="navUser-item navUser-item--rbUpcoming"><a class="navUser-action" href="/account.php?action=order_status&rbAction=Upcoming">Upcoming Schedule</a></li>');
4169        
4170        setTimeout(function(){
4171            const params = new URLSearchParams(window.location.search);
4172            const rbAction = params.get('rbAction');
4173
4174            const actionMap = {
4175              PayMethods: 'a[data-action="manage_payment_methods"]',
4176              Subscriptions: 'a[data-action="view_subscriptions"]',
4177              Upcoming: 'a[data-action="upcoming_deliveries"]'
4178            };
4179
4180            if (rbAction){
4181                const selector = actionMap[rbAction];
4182                console.log(selector);
4183                const $el = $(selector);
4184                console.log($el);
4185                if ($el.length) {
4186                  $el.trigger('click');
4187                }
4188            }
4189        },2500);
4190    });
4191</script>
4191<script type = "text/javascript" >
4192    $(document).ready(function() {
4193        // show discount on my subscriptions page
4194        setTimeout(function(){
4195        $('a[data-ref="rebillia-link-subscriptions"]').on('click',function() {
4196            console.log("fas");
4197            setTimeout(function() {
4198                $('.rebillia--body-wrapper').children().eq(2).remove();
4199                $('.rebillia--label-price b').each(function(){
4200                    var a = $(this).text();
4201					console.log(a);
4202                    a = a.split(" ");
4203                    $(this).html('<del style="color:#ff0000a3">'+$(this).text()+'</del>');
4204                    $(this).append(" " + a[0]+ " " +(a[1]*0.8).toFixed(2));
4205                });
4206            }, 1000);
4207        });
4208        },2000);
4209        // show discount message in PDP "$x when you subscribe"
4210        if($('.productView-optionsGrid:contains("Subscribe and Save 20% Off + Free Shipping on Recurring Shipments")').length > 0){
4211            const price = $('meta[itemprop="price"]').attr('content')*0.8;
4212            const subPrice = price.toFixed(2);
4213         $('.productView-details').append(
4214  '<div class="price-on-sub" style="font-size:16px;">' +
4215    '<span style="font-weight:normal;color:#999999;">
4215Price: </span>' +
4216    '<span style="font-size:1.6rem;font-weight:bold;color:#68afc3;">$' + subPrice + '</span>' +
4217    '<span style="font-weight:normal;color:black;"> when you subscribe</span>' +
4218    '<img src="https://cdn-icons-png.flaticon.com/512/4662/4662281.png" alt="Recurring subscription" ' +
4219      'style="width:1.4em; height:1.4em; vertical-align:middle; margin-left:0.25em;">' +
4220  '</div>'
4221);
4222
4223
4224        }
4225    });
4226</script>
4226<script type="text/javascript">
4227    //DO NOT REMOVE - DRIVES REVENUE
4228    var AddShoppersWidgetOptions = { 'loadCss': false, 'pushResponse': false };
4229    var js = document.createElement('script');
4230    js.type = 'text/javascript';
4231    js.async = true;
4232    js.id = 'AddShoppers';
4233    js.src = ('https:' == document.location.protocol ? 'https://shop.pe/widget/' : 'http://d3rr3d0n31t48m.cloudfront.net/widget/') + 'widget_async.js#6666b438cde7975d89c3e069';
4234    document.getElementsByTagName("head")[0].appendChild(js);
4235</script>
4235
4236<!-- TikTok Pixel Code Start: Product Detail Page Add to Cart Event -->
4237<script>
4238document.querySelectorAll('[data-cart-item-add]').forEach(form => form.addEventListener('submit', (event) => {
4239  event.preventDefault();
4240  const formData = new FormData(event.target);
4241  let productId, productQty;
4242  for (const pair of formData.entries()) {
4243    if (pair[0] === 'product_id') {
4244      productId = pair[1];
4245    } else if (pair[0] === 'qty[]') {
4246      productQty = pair[1];
4247    }
4248  }
4249  
4250  const countryCodes = new Map([['Australia', 'au'],['New Zealand', 'nz'],['Russia', 'ru'],['Poland', 'pl'],['Czech Republic', 'cz'],['Israel', 'il'],['Romania', 'ro'],['Ukraine', 'ua'],['Japan', 'jp'],['Taiwan', 'tw'],['Ireland', 'ie'],['Austria', 'at'],['Sweden', 'se'],['Netherlands', 'nl'],['Norway', 'no'],['Finland', 'fi'],['Denmark', 'dk'],['Switzerland', 'ch'],['Belgium', 'be'],['Portugal', 'pt'],['Greece', 'gr'],['Germany', 'de'],['United Kingdom', 'gb'],['France', 'fr'],['Spain', 'es'],['Italy', 'it'],['India', 'in'],['South Korea', 'kr'],['Brazil', 'br'],['Mexico', 'mx'],['Argentina', 'ar'],['Chile', 'cl'],['Colombia', 'co'],['Peru', 'pe'],['Saudi Arabia', 'sa'],['Egypt', 'eg'],['United Arab Emirates', 'ae'],['Turkey', 'tr'],['Pakistan', 'pk'],['Morocco', 'ma'],['Iraq', 'iq'],['South Africa', 'za'],['Kuwait', 'kw'],['Oman', 'om'],['Qatar', 'qa'],['Bahrain', 'bh'],['Jordan', 'jo'],['Lebanon', 'lb'],['United States', 'us'],['Canada', 'ca'],['Singapore', 'sg'],['Thailand', 'th'],['Malaysia', 'my'],['Vietnam', 'vn'],['Philippines', 'ph'],['Indonesia', 'id'],['Cambodia', 'kh'],['Belarus', 'by'],['Venezuela', 've']]);
4251  const stateList = new Map([['Arizona', 'az'],['Alabama', 'al'],['Alaska', 'ak'],['Arkansas', 'ar'],['California', 'ca'],['Colorado', 'co'],['Connecticut', 'ct'],['Delaware', 'de'],['Florida', 'fl'],['Georgia', 'ga'],['Hawaii', 'hi'],['Idaho', 'id'],['Illinois', 'il'],['Indiana', 'in'],['Iowa', 'ia'],['Kansas', 'ks'],['Kentucky', 'ky'],['Louisiana', 'la'],['Maine', 'me'],['Maryland', 'md'],['Massachusetts', 'ma'],['Michigan', 'mi'],['Minnesota', 'mn'],['Mississippi', 'ms'],['Missouri', 'mo'],['Montana', 'mt'],['Nebraska', 'ne'],['Nevada', 'nv'],['New Hampshire', 'nh'],['New Jersey', 'nj'],['New Mexico', 'nm'],['New York', 'ny'],['North Carolina', 'nc'],['North Dakota', 'nd'],['Ohio', 'oh'],['Oklahoma', 'ok'],['Oregon', 'or'],['Pennsylvania', 'pa'],['Rhode Island', 'ri'],['South Carolina', 'sc'],['South Dakota', 'sd'],['Tennessee', 'tn'],['Texas', 'tx'],['Utah', 'ut'],['Vermont', 'vt'],['Virginia', 'va'],['Washington', 'wa'],['West Virginia', 'wv'],['Wisconsin', 'wi'],['Wyoming', 'wy']]);
4252  
4253  var phoneNumber = ''
4254  var email = ''
4255  var firstName = ''
4256  var lastName = ''
4257  var city = ''
4258  var state = ''
4259  var country = ''
4260  var zip = ''
4261  if (BODL.phone) {
4262    var phoneNumber = BODL.phone;
4263    if (BODL.phone.indexOf('+') === -1) {
4264   // No country code, so default to US code
4265        phoneNumber = `+1${phoneNumber}`;  
4266    }
4267  }
4268  
4269  if (BODL.email) {
4270    var email = BODL.email
4271  }
4272
4273  if (BODL.address) {
4274    if (BODL.address.first_name) {
4275        firstName = (BODL.address.first_name).toLowerCase()
4276    }
4277    
4278    if (BODL.address.last_name) {
4279        lastName = (BODL.address.last_name).toLowerCase()
4280    }
4281    
4282    if (BODL.address.city) {
4283        city = BODL.address.city.replace(/\s+/g, '').toLowerCase();
4284    }
4285    
4286    rg = BODL.address.state;
4287    if (typeof rg !== 'undefined' && stateList.has(rg)) {
4288        state = stateList.get(rg);
4289    }
4290    
4291    cn = BODL.address.country
4292    if (typeof cn !== 'undefined' && countryCodes.has(cn)) {
4293        country = countryCodes.get(cn)
4294    }
4295    
4296    if (BODL.address.zip) {
4297        zip = BODL.address.zip
4298    }
4299  }
4300  
4301  ttq.instance('CS40A03C77UEQSGTJT40').identify({
4302    email: email,
4303    phone_number: phoneNumber,
4304    first_name: firstName,
4305    last_name: lastName,
4306    city: city,
4307    state: state,
4308    country: country,
4309    zip_code: zip})
4310
4311  // References:
4312  // https://developer.bigcommerce.com/theme-objects/product
4313  // https://developer.bigcommerce.com/stencil-docs/developing-further/catalog-price-object
4314  var productPrice = 0
4315  var productCurrency = ""
4316  if (BODL.productCurrencyWithoutTax && BODL.productCurrencyWithoutTax !== "") {
4317    productPrice = BODL.productPriceWithoutTax
4318    productCurrency = BODL.productCurrencyWithoutTax
4319  }
4320  if (BODL.productCurrencyWithTax && BODL.productCurrencyWithTax !== "") {
4321    productPrice = BODL.productPriceWithTax
4322    productCurrency = BODL.productCurrencyWithTax
4323  }
4324  
4325  //default contentId to productId if sku_id is not found on product 
4326  var contentID = BODL.productId
4327  if (BODL.skuId && BODL.skuId !== "") {
4328    contentID = BODL.skuId
4329  }
4330  
4331  ttq.instance('CS40A03C77UEQSGTJT40').track('AddToCart', {
4332    content_id: contentID,
4333    content_category: BODL.breadcrumbs[1] ? BODL.breadcrumbs[1].name : '',
4334    content_type: 'product_group',
4335    content_name: BODL.product.title,
4336    quantity: productQty,
4337    price: productPrice,
4338    value: (productPrice * productQty),
4339    currency: productCurrency,
4340  });
4341}));
4342
4343if (BODL.cartItemAdded) {
4344  var cartItemContentId = BODL.cartItemAdded.product_id
4345  if (BODL.cartItemAdded.sku && BODL.cartItemAdded.sku !== "") {
4346    cartItemContentId = BODL.cartItemAdded.sku
4347  }
4348  ttq.instance('CS40A03C77UEQSGTJT40').track('AddToCart', {
4349    content_id: cartItemContentId,
4350    content_type: 'product_group',
4351    content_name: BODL.cartItemAdded.name,
4352    quantity: BODL.cartItemAdded.quantity,
4353    price: BODL.cartItemAdded.price.value,
4354    value: BODL.cartItemAdded.total.value,
4355    currency: BODL.cartItemAdded.price.currency,
4356  });
4357}
4358</script>
4358
4359<!-- TikTok Pixel Code End: Product Detail Page Add to Cart Event -->
4360<script type="text/javascript">window.htVimotia = { orderId: "" }</script>
4360<script>
4361(function () {
4362  var isCart =
4363    (document.body && document.body.classList.contains('page-type-cart')) ||
4364    (window.location.pathname && window.location.pathname.indexOf('cart.php') !== -1);
4365
4366  if (!isCart) return;
4367
4368  var FREE_SHIP_THRESHOLD = 60;
4369
4370  // Add coupon codes here with the message you want shown
4371  var COUPON_MESSAGES = {
4372    FB1235: 'Congrats — you qualify for free shipping during checkout.',
4373    FB1745: 'Congrats — you qualify for free shipping during checkout.',
4374      KE4519:'Congrats — you qualify for free shipping during checkout.',
4375      FB2537:'Congrats! You got 20% Off and Free Shipping!'
4376    // Add more like:
4377    // NEWCODE1: 'Congrats — you qualify for free shipping during checkout.',
4378    // NEWCODE2: 'Special offer applied — free shipping during checkout.'
4379  };
4380
4381  var DEFAULT_COUPON_MESSAGE = 'Congrats — you qualify for free shipping during checkout.';
4382
4383  function money(n) {
4384    try {
4385      return new Intl.NumberFormat('en-US', {
4386        style: 'currency',
4387        currency: 'USD'
4388      }).format(n);
4389    } catch (e) {
4390      return '$' + (Math.round(n * 100) / 100).toFixed(2);
4391    }
4392  }
4393
4394  function ensureAlert() {
4395    var statusWrap = document.querySelector('[data-cart-status]');
4396    if (!statusWrap) return null;
4397
4398    var existing = document.getElementById('free-shipping-alert');
4399    if (existing) return existing;
4400
4401    var alert = document.createElement('div');
4402    alert.id = 'free-shipping-alert';
4403    alert.className = 'alertBox alertBox--info';
4404
4405    var msgP = document.createElement('p');
4406    msgP.className = 'alertBox-column alertBox-message';
4407
4408    alert.appendChild(msgP);
4409    statusWrap.insertBefore(alert, statusWrap.firstChild);
4410
4411    return alert;
4412  }
4413
4414  function setUI(state, text) {
4415    var alert = ensureAlert();
4416    if (!alert) return;
4417
4418    alert.style.display = '';
4419    alert.className = state === 'qualified'
4420      ? 'alertBox alertBox--success'
4421      : 'alertBox alertBox--info';
4422
4423    var msg = alert.querySelector('.alertBox-message');
4424    if (msg) msg.textContent = text;
4425  }
4426
4427  function normalizeCode(code) {
4428    return String(code || '').replace(/\s+/g, '').toUpperCase();
4429  }
4430
4431  function findMatchingCoupon(cart) {
4432    if (!cart) return null;
4433
4434    var couponKeys = Object.keys(COUPON_MESSAGES);
4435
4436    function match(code) {
4437      var normalized = normalizeCode(code);
4438      for (var i = 0; i < couponKeys.length; i++) {
4439        if (normalizeCode(couponKeys[i]) === normalized) {
4440          return couponKeys[i];
4441        }
4442      }
4443      return null;
4444    }
4445
4446    if (Array.isArray(cart.coupons)) {
4447      for (var i = 0; i < cart.coupons.length; i++) {
4448        var coupon = cart.coupons[i] || {};
4449        var found = match(coupon.code);
4450        if (found) return found;
4451      }
4452    }
4453
4454    if (Array.isArray(cart.discounts)) {
4455      for (var j = 0; j < cart.discounts.length; j++) {
4456        var discount = cart.discounts[j] || {};
4457        var found =
4458          match(discount.code) ||
4459          match(discount.couponCode) ||
4460          match(discount.coupon_code);
4461
4462        if (found) return found;
4463      }
4464    }
4465
4466    return null;
4467  }
4468
4469  function getAfterDiscountAmount(cart) {
4470    if (!cart) return 0;
4471
4472    if (cart.cartAmount && typeof cart.cartAmount.value === 'number') {
4473      return cart.cartAmount.value;
4474    }
4475
4476    if (typeof cart.cartAmount === 'number') {
4477      return cart.cartAmount;
4478    }
4479
4480    if (typeof cart.cart_amount === 'number') {
4481      return cart.cart_amount;
4482    }
4483
4484    var subtotal =
4485      cart.subtotalExcludingTax && typeof cart.subtotalExcludingTax.value === 'number'
4486        ? cart.subtotalExcludingTax.value
4487        : 0;
4488
4489    var discount =
4490      cart.discountAmount && typeof cart.discountAmount.value === 'number'
4491        ? cart.discountAmount.value
4492        : (typeof cart.discount_amount === 'number' ? cart.discount_amount : 0);
4493
4494    return Math.max(0, subtotal - discount);
4495  }
4496
4497  function refresh() {
4498    fetch('/api/storefront/carts', { credentials: 'include' })
4499      .then(function (r) {
4500        if (!r.ok) throw new Error('Cart request failed');
4501        return r.json();
4502      })
4503      .then(function (carts) {
4504        var cart = Array.isArray(carts) ? carts[0] : carts;
4505        var matchedCoupon = findMatchingCoupon(cart);
4506
4507        if (matchedCoupon) {
4508          setUI('qualified', COUPON_MESSAGES[matchedCoupon] || DEFAULT_COUPON_MESSAGE);
4509          return;
4510        }
4511
4512        var amount = getAfterDiscountAmount(cart);
4513        var remaining = FREE_SHIP_THRESHOLD - amount;
4514
4515        if (remaining > 0.01) {
4516          setUI('need_more', 'Add ' + money(remaining) + ' more to get FREE shipping.');
4517        } else {
4518          setUI('qualified', 'Congratulations — you qualify for FREE shipping!');
4519        }
4520      })
4521      .catch(function () {
4522        // Do nothing if the cart API fails
4523      });
4524  }
4525
4526  refresh();
4527
4528  var t;
4529  new MutationObserver(function () {
4530    clearTimeout(t);
4531    t = setTimeout(refresh, 200);
4532  }).observe(document.body, { childList: true, subtree: true });
4533})();
4534</script>
4534<script nonce="">if (!window.__webpack_nonce__) window.__webpack_nonce__ = '';window.PapaThemesDinosaurWidgetProductTags_graphQLToken = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOlsxXSwiY29ycyI6WyJodHRwczovL3R3aW5lY2JkLmNvbSJdLCJlYXQiOjE3OTE0NTg5MTcsImlhdCI6MTc5MTI4NjExNywiaXNzIjoiQkMiLCJzaWQiOjEwMDEwMzY0OTMsInN1YiI6IkJDIiwic3ViX3R5cGUiOjAsInRva2VuX3R5cGUiOjF9.tb94w3lhrG-7KWHI8rihBmiY2Os5IR9mv7g7TdgEefmh-dfxkvI2n1-I4JouRLxMhcqZ2HZJQMTmIJjL1-Hf9g'</script>
4534<script> 
4535(function ($) {
4536  $(function () {
4537    // inject CSS once
4538    if (!document.getElementById("twine-desc-faq-style")) {
4539      var css =
4540        ".twine-desc{max-width:100%;margin:24px 0;font-family:inherit;}" +
4541        ".twine-desc__title{font-size:1.8rem;font-weight:800;margin:0 0 10px 0;}" +
4542        ".twine-desc__body{position:relative;overflow:hidden;line-height:1.6;}" +
4543        ".twine-desc__remaining{display:block;}" +
4544        ".twine-desc__body--collapsed .twine-desc__remaining{display:none;}" +
4545        ".twine-desc__fade{position:absolute;left:0;right:0;bottom:0;height:2.5em;pointer-events:none;background:linear-gradient(to bottom, rgba(255,255,255,0), #ffffff);}" +
4546        ".twine-desc__more-wrap{text-align:center;margin-top:16px;}" +
4547        ".twine-desc__more-btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;cursor:pointer;padding:10px 14px;border-radius:10px;user-select:none;border:none;background:none;}" +
4548        ".twine-desc__more-btn:hover{background:rgba(0,0,0,0.05);}" +
4549        ".twine-desc__icon{width:32px;height:32px;min-width:32px;border-radius:999px;border:1px solid rgba(0,0,0,0.25);display:flex;align-items:center;justify-content:center;transition:transform 180ms ease;}" +
4550        ".twine-desc__icon svg{width:18px;height:18px;display:block;}" +
4551        ".twine-desc__more-text--hide{display:none;}" +
4552        ".twine-desc__more-btn--open .twine-desc__more-text--show{display:none;}" +
4553        ".twine-desc__more-btn--open .twine-desc__more-text--hide{display:inline;}" +
4554        ".twine-desc__more-btn--open .twine-desc__icon{transform:rotate(180deg);}" +
4555        ".twine-faq{max-width:100%;margin:24px 0 0 0;font-family:inherit;}" +
4556        ".twine-faq__title{font-size:1.6rem;font-weight:800;margin:0 0 10px 0;}" +
4557        ".twine-faq__sub{margin:0 0 18px 0;opacity:0.85;line-height:1.5;}" +
4558        ".twine-faq__questions{display:none;}" +
4559        ".twine-faq--open .twine-faq__questions{display:block;}" +
4560        ".twine-faq__more-wrap{text-align:center;margin-top:16px;}" +
4561        ".twine-faq__more-btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;cursor:pointer;padding:10px 14px;border-radius:10px;user-select:none;border:none;background:none;}" +
4562        ".twine-faq__more-btn:hover{background:rgba(0,0,0,0.05);}" +
4563        ".twine-faq__more-text--hide{display:none;}" +
4564        ".twine-faq__more-btn--open .twine-faq__more-text--show{display:none;}" +
4565        ".twine-faq__more-btn--open .twine-faq__more-text--hide{display:inline;}" +
4566        ".twine-faq__more-btn--open .twine-desc__icon{transform:rotate(180deg);}";
4567
4568      var style = document.createElement("style");
4569      style.id = "twine-desc-faq-style";
4570      style.type = "text/css";
4571
4572      if (style.styleSheet) {
4573        style.styleSheet.cssText = css;
4574      } else {
4575        style.appendChild(document.createTextNode(css));
4576      }
4577
4578      var head = document.getElementsByTagName("head")[0];
4579      if (head) head.appendChild(style);
4580    }
4581
4582    // find the existing accordion in the product description
4583    var $accord = $(".twine-accordion").first();
4584    if (!$accord.length) return;
4585
4586    var $items = $accord.find(".twine-accordion-item");
4587    if ($items.length < 1) return;
4588
4589    // item 0 = Product Description, item 1 (if exists) = FAQ
4590    var descHtml = $items.eq(0).find(".twine-accordion-inner").html() || "";
4591    var faqHtml = "";
4592    if ($items.length > 1) {
4593      faqHtml = $items.eq(1).find(".twine-accordion-inner").html() || "";
4594    }
4595    if (!descHtml) return;
4596
4597    // ---- GLOBAL FAQ (APPENDED BELOW PRODUCT-SPECIFIC FAQ) ----
4598    var globalFaqHtml =
4599      '<h4>Q: How fast do you ship, and do you offer free shipping?</h4>' +
4600      '<p>Orders are typically processed the same day or within 24 hours (business days) and shipped with tracking. We offer <strong>free shipping on orders $60+</strong>. Learn more on our <a href="/shipping-returns/">Shipping &amp; Returns Policy</a>.</p>' +
4601
4602      '<h4>Q: What is your return policy and guarantee?</h4>' +
4603      '<p>We want you to feel confident in your purchase. Full details about returns and our guarantee can be found on our <a href="/shipping-returns/">Shipping &amp; Returns Policy</a> page.</p>' +
4604
4605      '<h4>Q: How do I contact support?</h4>' +
4606      '<p>You can call us at <a href="tel:16782429680">678-242-9680</a> or reach out anytime through our <a href="/contact-us/">Contact Support</a> page.</p>' +
4607
4608      '<h4>Q: What is Subscribe &amp; Save and how does it work?</h4>' +
4609      '<p>Subscribe &amp; Save makes it easy to get your favorites delivered automatically on your schedule with Free Shipping, so you never run out. Learn more and manage your subscription options on our <a href="/subscribe-save/">Subscribe &amp; Save</a> page.</p>';
4610
4611    // Append global FAQs after the product-specific FAQs (only if FAQ section exists)
4612    if (faqHtml && $.trim(faqHtml).length > 0) {
4613      faqHtml = faqHtml + globalFaqHtml;
4614    }
4615
4616    // build new description section
4617    // NOTE: Title removed so "Product Description" no longer appears above Benefits
4618    var descSectionHtml =
4619      '<section class="twine-desc">' +
4620        '<div class="twine-desc__body twine-desc__body--collapsed">' +
4621          '<div class="twine-desc__inner">' + descHtml + '</div>' +
4622          '<div class="twine-desc__fade"></div>' +
4623        '</div>' +
4624        '<div class="twine-desc__more-wrap">' +
4625          '<button type="button" class="twine-desc__more-btn">' +
4626            '<span class="twine-desc__more-text--show">Read full description</span>' +
4627            '<span class="twine-desc__more-text--hide">Hide description</span>' +
4628            '<span class="twine-desc__icon">' +
4629              '<svg viewBox="0 0 24 24" fill="none">' +
4630                '<path d="M6 9l6 6 6-6" stroke="currentColor" stroke-width="2"/>' +
4631              '</svg>' +
4632            '</span>' +
4633          '</button>' +
4634        '</div>' +
4635      '</section>';
4636
4637    // build FAQ section (if second item exists)
4638    var faqSectionHtml = "";
4639    if (faqHtml && $.trim(faqHtml).length > 0) {
4640      faqSectionHtml =
4641        '<section class="twine-faq">' +
4642          '<h2 class="twine-faq__title">Frequently Asked Questions</h2>' +
4643          '<p class="twine-faq__sub">Get quick answers about how to use this product, what is inside, and how it may help.
4643</p>' +
4644          '<div class="twine-faq__questions">' +
4645            faqHtml +
4646          '</div>' +
4647          '<div class="twine-faq__more-wrap">' +
4648            '<button type="button" class="twine-faq__more-btn">' +
4649              '<span class="twine-faq__more-text--show">See more FAQ</span>' +
4650              '<span class="twine-faq__more-text--hide">Hide FAQ</span>' +
4651              '<span class="twine-desc__icon">' +
4652                '<svg viewBox="0 0 24 24" fill="none">' +
4653                  '<path d="M6 9l6 6 6-6" stroke="currentColor" stroke-width="2"/>' +
4654                '</svg>' +
4655              '</span>' +
4656            '</button>' +
4657          '</div>' +
4658        '</section>';
4659    }
4660
4661    // replace the original accordion with new sections
4662    $accord.replaceWith(descSectionHtml + faqSectionHtml);
4663
4664    // limit description to first paragraph initially
4665    var $descInner = $(".twine-desc__inner").first();
4666    if ($descInner.length) {
4667      var $firstP = $descInner.find("p").first();
4668      if ($firstP.length) {
4669        $firstP.wrap('<div class="twine-desc__first"></div>');
4670        var $rest = $firstP.parent().nextAll();
4671        if ($rest.length) {
4672          $rest.wrapAll('<div class="twine-desc__remaining"></div>');
4673        } else {
4674          $(".twine-desc__fade").hide();
4675          $(".twine-desc__more-wrap").hide();
4676        }
4677      } else {
4678        $(".twine-desc__fade").hide();
4679        $(".twine-desc__more-wrap").hide();
4680      }
4681    }
4682
4683    // description toggle
4684    $(document).on("click", ".twine-desc__more-btn", function () {
4685      var $btn = $(this);
4686      var $body = $btn.closest(".twine-desc").find(".twine-desc__body");
4687      var $fade = $body.find(".twine-desc__fade");
4688
4689      if ($body.hasClass("twine-desc__body--collapsed")) {
4690        $body.removeClass("twine-desc__body--collapsed");
4691        $fade.hide();
4692        $btn.addClass("twine-desc__more-btn--open");
4693      } else {
4694        $body.addClass("twine-desc__body--collapsed");
4695        $fade.show();
4696        $btn.removeClass("twine-desc__more-btn--open");
4697      }
4698    });
4699
4700    // FAQ toggle (section level)
4701    $(document).on("click", ".twine-faq__more-btn", function () {
4702      var $btn = $(this);
4703      var $faq = $btn.closest(".twine-faq");
4704      $faq.toggleClass("twine-faq--open");
4705      $btn.toggleClass("twine-faq__more-btn--open");
4706    });
4707  });
4708})(window.jQuery);
4709</script>
vendor: 1 bytes, line 4709
4709
4710<script>
4711(function() {
4712  function insertTwineProductCallouts() {
4713    // Avoid inserting twice
4714    if (document.querySelector('.twine-product-callouts')) return;
4715
4716    // Try to find the Add to Cart button (handles common BigCommerce selectors)
4717    var addToCartBtn = document.querySelector(
4718      '.productView-actions [data-button-type="add-cart"],' +
4719      '.productView-details [data-button-type="add-cart"],' +
4720      'form[action*="/cart.php"] [data-button-type="add-cart"],' +
4721      'form[action*="/cart.php"] .button--primary,' +
4722      'form[action*="/cart.php"] [type="submit"].button,' +
4723      '[data-button-type="add-cart"]'
4724    );
4725
4726    if (!addToCartBtn) return;
4727
4728    // Find the best container to insert after (the Add to Cart block)
4729    var container =
4730      addToCartBtn.closest('.productView-actions') ||
4731      addToCartBtn.closest('.productView-details') ||
4732      addToCartBtn.closest('form[action*="/cart.php"]') ||
4733      addToCartBtn.parentNode;
4734
4735    if (!container || !container.parentNode) return;
4736
4737    // Inject CSS once
4738    var styleId = 'twine-product-callouts-style';
4739    if (!document.getElementById(styleId)) {
4740      var style = document.createElement('style');
4741      style.id = styleId;
4742      style.textContent = `
4743        /* TWINE product callouts */
4744        .twine-product-callouts {
4745          margin-top: 1rem;
4746          padding: 0.75rem 1rem;
4747          background: #f9fafb;
4748          border: 1px solid #e5e7eb;
4749          display: flex;
4750          flex-wrap: wrap;
4751          gap: 0.75rem 1.5rem;
4752          align-items: flex-start;
4753          font-size: 0.9rem;
4754          border-radius: 0; /* square corners */
4755        }
4756
4757        .twine-product-callouts .twine-callout {
4758          display: flex;
4759          align-items: center;
4760          flex: 0 0 48%; /* 2 columns on desktop */
4761          min-width: 0;
4762        }
4763
4764        .twine-product-callouts .twine-callout-icon {
4765          font-size: 1.3rem;
4766          margin-right: 0.5rem;
4767          flex-shrink: 0;
4768          line-height: 1;
4769        }
4770
4771        .twine-product-callouts .twine-callout-text {
4772          line-height: 1.3;
4773        }
4774
4775        /* Mobile: single column */
4776        @media (max-width: 600px) {
4777          .twine-product-callouts .twine-callout {
4778            flex: 0 0 100%;
4779          }
4780        }
4781      `;
4782      document.head.appendChild(style);
4783    }
4784
4785    // Build the callouts block
4786    var callouts = document.createElement('div');
4787    callouts.className = 'twine-product-callouts';
4788    callouts.innerHTML = ''
4789      + '<div class="twine-callout">'
4790      + '  <span class="twine-callout-icon">&#128666;</span>'
4791      + '  <span class="twine-callout-text">'
4792      + '    <strong>Free Shipping</strong> on all orders of <strong>$60+</strong> — No Codes, No Hassle.' 
4793      + '  </span>'
4794      + '</div>'
4795	  + '<div class="twine-callout">'
4796      + '  <span class="twine-callout-icon">&#129514;</span>'
4797      + '  <span class="twine-callout-text">'
4798      + '    <strong>Lab Tested &amp; THC-Free</strong> – Latest lab results available in the product image carousel.'
4799      + '  </span>'
4800      + '</div>'
4801     
4802      + '<div class="twine-callout">'
4803      + '  <span class="twine-callout-icon">&#9889;</span>'
4804      + '  <span class="twine-callout-text">'
4805      + '    <strong>Fast Processing</strong> – Orders typically ship the same day or within 24 hours.'
4806      + '  </span>'
4807      + '</div>'
4808      + '<div class="twine-callout">'
4809      + '  <span class="twine-callout-icon">&#9989;</span>'
4810      + '  <span class="twine-callout-text">'
4811      + '    <strong>100% Happiness Guarantee</strong> – If something’s not right, we’ll help make it right.'
4812      + '  </span>'
4813      + '</div>';
4814
4815    // Insert the callouts block immediately after the Add to Cart block
4816    container.parentNode.insertBefore(callouts, container.nextSibling);
4817  }
4818
4819  // Run after DOM is ready
4820  if (document.readyState === 'loading') {
4821    document.addEventListener('DOMContentLoaded', insertTwineProductCallouts);
4822  } else {
4823    insertTwineProductCallouts();
4824  }
4825})();
4826</script>
vendor: 1 bytes, line 4826
4826
4827<script>
4828(function () {
4829  if (window.__twineYotpoCombinedInit) return;
4830  window.__twineYotpoCombinedInit = true;
4831
4832  // ---------- Helpers ----------
4833  function refreshYotpoDebounced() {
4834    if (window.__twineYotpoRefreshTimer) return;
4835    window.__twineYotpoRefreshTimer = setTimeout(function () {
4836      window.__twineYotpoRefreshTimer = null;
4837
4838      if (window.yotpo && typeof window.yotpo.refreshWidgets === "function") {
4839        window.yotpo.refreshWidgets();
4840      } else if (window.yotpoWidgetsContainer && typeof window.yotpoWidgetsContainer.initWidgets === "function") {
4841        window.yotpoWidgetsContainer.initWidgets();
4842      }
4843    }, 500);
4844  }
4845
4846  // ---------- CATEGORY/SEARCH (Stars) ----------
4847  function initPLPStars() {
4848    var isPLP =
4849      document.body.classList.contains("page-type-category") ||
4850      document.body.classList.contains("page-type-search");
4851    if (!isPLP) return;
4852
4853    if (window.__twineYotpoPLPStarsInit) return;
4854    window.__twineYotpoPLPStarsInit = true;
4855
4856    var processed = new Set();
4857
4858    function getGrid() {
4859      return document.querySelector(".productGrid") || document.querySelector("[data-listing-container]");
4860    }
4861
4862    function getCards() {
4863      var grid = getGrid();
4864      if (!grid) return [];
4865      return Array.from(grid.querySelectorAll(".card, .product"));
4866    }
4867
4868    function getProductId(card) {
4869      var idEl = card.closest("[data-entity-id]") || card.querySelector("[data-entity-id]");
4870      var id = idEl && idEl.getAttribute("data-entity-id");
4871      if (id) return id;
4872
4873      return card.getAttribute("data-entity-id") || card.getAttribute("data-product-id") || "";
4874    }
4875
4876    function getProductUrl(card) {
4877      var a =
4878        card.querySelector(".card-title a[href]") ||
4879        card.querySelector("h3 a[href], h4 a[href]") ||
4880        card.querySelector('a[href^="/"]');
4881      if (!a) return "";
4882      var href = a.getAttribute("href") || "";
4883      if (!href) return "";
4884      return href.startsWith("http") ? href : (location.origin + href);
4885    }
4886
4887    function injectStars(card) {
4888      var pid = getProductId(card);
4889      if (!pid) return false;
4890
4891      if (processed.has(pid)) return false;
4892
4893      if (card.querySelector(".yotpo.bottomLine")) {
4894        processed.add(pid);
4895        return false;
4896      }
4897
4898      var url = getProductUrl(card);
4899      if (!url) return false;
4900
4901      var anchor =
4902        card.querySelector(".card-title") ||
4903        card.querySelector("h3, h4") ||
4904        card;
4905
4906      var div = document.createElement("div");
4907      div.className = "yotpo bottomLine";
4908      div.setAttribute("data-url", url);
4909      div.setAttribute("data-product-id", pid);
4910
4911      if (anchor && anchor.parentNode) {
4912        anchor.parentNode.insertBefore(div, anchor.nextSibling);
4913      } else {
4914        card.appendChild(div);
4915      }
4916
4917      processed.add(pid);
4918      return true;
4919    }
4920
4921    function run() {
4922      var changed = false;
4923      var cards = getCards();
4924      for (var i = 0; i < cards.length; i++) {
4925        if (injectStars(cards[i])) changed = true;
4926      }
4927      if (changed) refreshYotpoDebounced();
4928    }
4929
4930    function startObserver() {
4931      var grid = getGrid();
4932      if (!grid) return;
4933
4934      var obs = new MutationObserver(function (mutations) {
4935        var shouldRun = false;
4936
4937        for (var i = 0; i < mutations.length; i++) {
4938          var m = mutations[i];
4939          if (!m.addedNodes || !m.addedNodes.length) continue;
4940
4941          for (var j = 0; j < m.addedNodes.length; j++) {
4942            var n = m.addedNodes[j];
4943            if (n.nodeType !== 1) continue;
4944
4945            if (n.matches && (n.matches(".card") || n.matches(".product") || n.querySelector(".card, .product"))) {
4946              shouldRun = true;
4947              break;
4948            }
4949          }
4950          if (shouldRun) break;
4951        }
4952
4953        if (shouldRun) run();
4954      });
4955
4956      obs.observe(grid, { childList: true, subtree: true });
4957    }
4958
4959    if (document.readyState === "loading") {
4960      document.addEventListener("DOMContentLoaded", function () {
4961        run();
4962        startObserver();
4963      });
4964    } else {
4965      run();
4966      startObserver();
4967    }
4968  }
4969
4970  // ---------- PRODUCT PAGE (Stars + Reviews) ----------
4971  function initPDP() {
4972    var isPDP = document.body.classList.contains("page-type-product");
4973    if (!isPDP) return;
4974
4975    if (window.__twineYotpoPDPInit) return;
4976    window.__twineYotpoPDPInit = true;
4977
4978    function getProductId() {
4979      var el =
4980        document.querySelector("[data-entity-id]") ||
4981        document.querySelector("input[name='product_id']");
4982      return el ? (el.getAttribute("data-entity-id") || el.value) : "";
4983    }
4984
4985    function getCleanUrl() {
4986      return window.location.href.split("?")[0];
4987    }
4988
4989    function injectPDPStars() {
4990      if (document.querySelector(".yotpo.bottomLine")) return false;
4991
4992      var pid = getProductId();
4993      if (!pid) return false;
4994
4995      var anchor =
4996        document.querySelector(".productView-title") ||
4997        document.querySelector("h1") ||
4998        document.querySelector(".productView-details") ||
4999        document.querySelector(".productView");
5000
5001      if (!anchor || !anchor.parentNode) return false;
5002
5003      var div = document.createElement("div");
5004      div.className = "yotpo bottomLine";
5005      div.setAttribute("data-product-id", pid);
5006      div.setAttribute("data-url", getCleanUrl());
5007
5008      // place just after title
5009      anchor.parentNode.insertBefore(div, anchor.nextSibling);
5010      return true;
5011    }
5012
5013    function injectPDPReviews() {
5014      if (document.querySelector(".yotpo.yotpo-main-widget")) return false;
5015
5016      var pid = getProductId();
5017      if (!pid) return false;
5018
5019      var anchor =
5020        document.querySelector(".productView-description") ||
5021        document.querySelector("#tab-reviews") ||
5022        document.querySelector(".productView") ||
5023        document.querySelector("main");
5024
5025      if (!anchor) return false;
5026
5027      var div = document.createElement("div");
5028      div.className = "yotpo yotpo-main-widget";
5029      div.setAttribute("data-product-id", pid);
5030      div.setAttribute("data-url", getCleanUrl());
5031      anchor.appendChild(div);
5032
5033      return true;
5034    }
5035
5036    function run() {
5037      var changed = false;
5038      if (injectPDPStars()) changed = true;
5039      if (injectPDPReviews()) changed = true;
5040      if (changed) refreshYotpoDebounced();
5041    }
5042
5043    if (document.readyState === "loading") {
5044      document.addEventListener("DOMContentLoaded", run);
5045    } else {
5046      run();
5047    }
5048  }
5049
5050  // Run the right init for the page type
5051  initPLPStars();
5052  initPDP();
5053})();
5054</script>
vendor: 1 bytes, line 5054
5054
5055<script>
5056(function () {
5057  // Helper: safely parse JSON
5058  function safeJsonParse(str) {
5059    try { return JSON.parse(str); } catch (e) { return null; }
5060  }
5061
5062  // Helper: find a Product object in JSON-LD
5063  function findProductJsonLd() {
5064    var nodes = document.querySelectorAll('script[type="application/ld+json"]');
5065    for (var i = 0; i < nodes.length; i++) {
5066      var data = safeJsonParse(nodes[i].textContent);
5067      if (!data) continue;
5068
5069      // JSON-LD can be object, array, or graph
5070      var candidates = [];
5071      if (Array.isArray(data)) candidates = data;
5072      else if (data['@graph'] && Array.isArray(data['@graph'])) candidates = data['@graph'];
5073      else candidates = [data];
5074
5075      for (var j = 0; j < candidates.length; j++) {
5076        var obj = candidates[j];
5077        if (!obj) continue;
5078        if (obj['@type'] === 'Product' || (Array.isArray(obj['@type']) && obj['@type'].indexOf('Product') !== -1)) {
5079          return obj;
5080        }
5081      }
5082    }
5083    return null;
5084  }
5085
5086  // Helper: best-effort product id from DOM
5087  function getProductIdFromDom() {
5088    // Common on BC product pages:
5089    var el =
5090      document.querySelector('[data-product-id]') ||
5091      document.querySelector('input[name="product_id"]') ||
5092      document.querySelector('[name="product_id"]');
5093
5094    if (!el) return null;
5095
5096    var id = el.getAttribute('data-product-id') || el.value || el.getAttribute('content');
5097    return id ? String(id) : null;
5098  }
5099
5100  // Helper: collect breadcrumb categories (optional)
5101  function getCategoriesFromBreadcrumbs() {
5102    var crumbs = document.querySelectorAll('.breadcrumbs a, nav[aria-label="Breadcrumb"] a');
5103    var cats = [];
5104    for (var i = 0; i < crumbs.length; i++) {
5105      var t = (crumbs[i].textContent || '').trim();
5106      if (!t) continue;
5107      if (/^home$/i.test(t)) continue;
5108      cats.push(t);
5109    }
5110    // de-dupe
5111    return Array.from(new Set(cats));
5112  }
5113
5114  function run() {
5115    // Only fire on likely product pages
5116    // (BC commonly uses type-product; keep it loose)
5117    var isProduct =
5118      document.body.classList.contains('type-product') ||
5119      !!document.querySelector('form[action*="/cart.php"][method="post"] input[name="action"][value="add"]') ||
5120      !!document.querySelector('meta[property="og:type"][content*="product"]');
5121
5122    if (!isProduct) return;
5123
5124    // Ensure Klaviyo queue exists
5125    window._learnq = window._learnq || [];
5126    var _learnq = window._learnq;
5127
5128    var p = findProductJsonLd();
5129
5130    // Pull fields from JSON-LD when available
5131    var name = p && p.name ? String(p.name) : (document.querySelector('h1') ? document.querySelector('h1').textContent.trim() : '');
5132    var url = (p && p.url) ? String(p.url) : window.location.href;
5133
5134    var imageUrl = '';
5135    if (p && p.image) {
5136      imageUrl = Array.isArray(p.image) ? String(p.image[0] || '') : String(p.image);
5137    }
5138    if (!imageUrl) {
5139      var ogImg = document.querySelector('meta[property="og:image"]');
5140      imageUrl = ogImg ? ogImg.getAttribute('content') : '';
5141    }
5142
5143    var brand = '';
5144    if (p && p.brand) {
5145      brand = typeof p.brand === 'string' ? p.brand : (p.brand.name ? String(p.brand.name) : '');
5146    }
5147
5148    // Price from JSON-LD offers
5149    var price = '';
5150    var compareAtPrice = ''; // Often not present in JSON-LD; leave blank unless you have a DOM source
5151    if (p && p.offers) {
5152      var offers = Array.isArray(p.offers) ? p.offers[0] : p.offers;
5153      if (offers && offers.price != null) price = String(offers.price);
5154    }
5155
5156    // ProductID from DOM (best) or fallback to SKU from JSON-LD
5157    var productId = getProductIdFromDom();
5158    if (!productId && p && p.sku) productId = String(p.sku);
5159
5160    // Categories from breadcrumbs (best-effort)
5161    var categories = getCategoriesFromBreadcrumbs();
5162
5163    // If we still don't have the minimum fields, don't send junk
5164    if (!name || !productId) return;
5165
5166    var item = {
5167      Name: name,
5168      ProductID: productId,
5169      ImageURL: imageUrl,
5170      URL: url,
5171      Brand: brand,
5172      Categories: categories,
5173      Price: price,
5174      CompareAtPrice: compareAtPrice
5175    };
5176
5177    _learnq.push(['track', 'Viewed Product', item]);
5178    _learnq.push(['trackViewedItem', {
5179      Title: item.Name,
5180      ItemId: item.ProductID,
5181      Categories: item.Categories,
5182      ImageUrl: item.ImageURL,
5183      Url: item.URL,
5184      Metadata: {
5185        Brand: item.Brand,
5186        Price: item.Price,
5187        CompareAtPrice: item.CompareAtPrice
5188      }
5189    }]);
5190  }
5191
5192  if (document.readyState === "loading") {
5193    document.addEventListener("DOMContentLoaded", run);
5194  } else {
5195    run();
5196  }
5197})();
5198</script>
vendor: 1 bytes, line 5198
5198
5199<script>
5200(function () {
5201
5202  function isMobile() {
5203    return window.matchMedia && window.matchMedia("(max-width: 801px)").matches;
5204  }
5205
5206  function ensureHolder() {
5207    var target = document.querySelector(".productView-desc-content");
5208    if (!target) return null;
5209
5210    var holder = document.getElementById("twine-yotpo-reviews-holder");
5211    if (holder) return holder;
5212
5213    holder = document.createElement("div");
5214    holder.id = "twine-yotpo-reviews-holder";
5215    holder.style.marginTop = "16px";
5216
5217    target.insertAdjacentElement("afterend", holder);
5218    return holder;
5219  }
5220
5221  function findMainReviewsInstance() {
5222    // Find the yotpo instance that actually contains the MAIN reviews widget
5223    var instances = document.querySelectorAll(".yotpo-widget-instance");
5224    for (var i = 0; i < instances.length; i++) {
5225      if (instances[i].querySelector("#yotpo-reviews-main-widget")) {
5226        return instances[i];
5227      }
5228    }
5229
5230    // Fallback (in case the wrapper changes but the id remains)
5231    var main = document.querySelector("#yotpo-reviews-main-widget");
5232    if (main) return main.closest(".yotpo-widget-instance") || main;
5233
5234    return null;
5235  }
5236
5237  function unhide(el) {
5238    if (!el) return;
5239    el.style.display = "";
5240    el.style.visibility = "";
5241    el.style.opacity = "";
5242  }
5243
5244  function moveOnce() {
5245    if (!isMobile()) return false;
5246
5247    var holder = ensureHolder();
5248    var widget = findMainReviewsInstance();
5249
5250    if (!holder || !widget) return false;
5251
5252    // Already in the right place
5253    if (holder.contains(widget)) return true;
5254
5255    unhide(widget);
5256
5257    // Move the entire instance (so Yotpo can’t “leave behind” the wrapper)
5258    holder.appendChild(widget);
5259
5260    return true;
5261  }
5262
5263  function runWithRetries() {
5264    var tries = 0;
5265    var maxTries = 25; // ~5 seconds total
5266    var timer = setInterval(function () {
5267      tries++;
5268
5269      var done = false;
5270      try { done = moveOnce(); } catch (e) {}
5271
5272      if (done || tries >= maxTries) {
5273        clearInterval(timer);
5274      }
5275    }, 200);
5276  }
5277
5278  document.addEventListener("DOMContentLoaded", runWithRetries);
5279  window.addEventListener("load", runWithRetries);
5280
5281})();
5282</script>
vendor: 1 bytes, line 5282
5282
5283<script>
5284(function () {
5285
5286  // Optional but recommended to prevent flash:
5287  var style = document.createElement("style");
5288  style.textContent = ".chiara-category-description{visibility:hidden}";
5289  document.head.appendChild(style);
5290
5291  function getDesc() {
5292    return document.querySelector(".chiara-category-description");
5293  }
5294
5295  function getGrid() {
5296    return (
5297      document.querySelector(".productGrid") ||
5298      document.querySelector("[data-product-grid]") ||
5299      document.querySelector(".productListing") ||
5300      document.querySelector(".product-listing") ||
5301      null
5302    );
5303  }
5304
5305  function moveOnce() {
5306    var desc = getDesc();
5307    var grid = getGrid();
5308    if (!desc || !grid) return false;
5309
5310    if (desc.getAttribute("data-twine-moved") === "1") {
5311      desc.style.visibility = "visible";
5312      return true;
5313    }
5314
5315    grid.insertAdjacentElement("afterend", desc);
5316    desc.setAttribute("data-twine-moved", "1");
5317    desc.style.visibility = "visible";
5318    return true;
5319  }
5320
5321  // Try immediately
5322  if (moveOnce()) return;
5323
5324  // Observe DOM until grid/desc exists, then move and disconnect
5325  var obs = new MutationObserver(function () {
5326    if (moveOnce()) obs.disconnect();
5327  });
5328
5329  obs.observe(document.documentElement, { childList: true, subtree: true });
5330
5331  // Safety stop
5332  setTimeout(function () { try { obs.disconnect(); } catch(e){} }, 8000);
5333
5334})();
5335</script>
vendor: 1 bytes, line 5335
5335
5336<script>
5337(function () {
5338
5339  var STORAGE_KEY = "twine_coupon_code";
5340  var HIDE_KEY = "twine_coupon_banner_hidden";
5341  var LAST_APPLY_TS_KEY = "twine_coupon_last_apply_ts";
5342
5343  var MIN_APPLY_GAP_MS = 3000;
5344  var SUBMIT_LOCK_MS = 3500;
5345  var DEBOUNCE_MS = 350;
5346
5347  var submitting = false;
5348  var debounceTimer = null;
5349  var removeClickedRecently = false;
5350
5351
5352  /********************************************************************
5353   * CUSTOM COUPON MESSAGES
5354   ********************************************************************/
5355
5356  var COUPON_MESSAGES = {
5357
5358    "MIKE":
5359      "Mike Code is working",
5360
5361    "FB2538":"Get your Roller for just $19.99 and enjoy FREE shipping.",
5362       "FB4893":"Get your Roller for just $19.99 and enjoy FREE shipping."
5363
5364  };
5365
5366
5367  /********************************************************************
5368   * COUPONS THAT INCLUDE FREE SHIPPING
5369   ********************************************************************/
5370
5371  var FREE_SHIPPING_COUPONS = [
5372    "FB4893",
5373    "FB2538"
5374  ];
5375
5376
5377  function normalizeCode(code) {
5378
5379    return String(
5380      code || ""
5381    )
5382    .trim()
5383    .toUpperCase();
5384
5385  }
5386
5387
5388  function getCouponMessage(code) {
5389
5390    return COUPON_MESSAGES[
5391      normalizeCode(code)
5392    ] || "";
5393
5394  }
5395
5396
5397  function isFreeShippingCoupon(code) {
5398
5399    return FREE_SHIPPING_COUPONS.indexOf(
5400      normalizeCode(code)
5401    ) !== -1;
5402
5403  }
5404
5405
5406  function isCartPage() {
5407
5408    return /cart/i.test(
5409      window.location.pathname
5410    );
5411
5412  }
5413
5414
5415  function getTwineParam() {
5416
5417    try {
5418
5419      return new URL(
5420        window.location.href
5421      )
5422      .searchParams
5423      .get(
5424        "twine"
5425      );
5426
5427    } catch (e) {
5428
5429      return null;
5430
5431    }
5432
5433  }
5434
5435
5436  function saveCode(code) {
5437
5438    code =
5439      normalizeCode(
5440        code
5441      );
5442
5443
5444    if (!code) {
5445
5446      return;
5447
5448    }
5449
5450
5451    localStorage.setItem(
5452      STORAGE_KEY,
5453      code
5454    );
5455
5456
5457    localStorage.removeItem(
5458      HIDE_KEY
5459    );
5460
5461
5462    localStorage.removeItem(
5463      LAST_APPLY_TS_KEY
5464    );
5465
5466  }
5467
5468
5469  function loadCode() {
5470
5471    return normalizeCode(
5472      localStorage.getItem(
5473        STORAGE_KEY
5474      ) || ""
5475    );
5476
5477  }
5478
5479
5480  function clearCode() {
5481
5482    localStorage.removeItem(
5483      STORAGE_KEY
5484    );
5485
5486
5487    localStorage.removeItem(
5488      LAST_APPLY_TS_KEY
5489    );
5490
5491  }
5492
5493
5494  function hideBanner() {
5495
5496    localStorage.setItem(
5497      HIDE_KEY,
5498      "1"
5499    );
5500
5501  }
5502
5503
5504  function bannerHidden() {
5505
5506    return localStorage.getItem(
5507      HIDE_KEY
5508    ) === "1";
5509
5510  }
5511
5512
5513  /********************************************************************
5514   * INSTALL FREE SHIPPING CSS
5515   *
5516   * CSS is installed once.
5517   *
5518   * We do NOT repeatedly change #free-shipping-alert inline styles.
5519   ********************************************************************/
5520
5521  function installFreeShippingCSS() {
5522
5523    if (
5524      document.getElementById(
5525        "twine-free-shipping-css"
5526      )
5527    ) {
5528
5529      return;
5530
5531    }
5532
5533
5534    var style =
5535      document.createElement(
5536        "style"
5537      );
5538
5539
5540    style.id =
5541      "twine-free-shipping-css";
5542
5543
5544    style.textContent =
5545
5546      "body.twine-free-shipping-coupon #free-shipping-alert {" +
5547
5548        "display:none !important;" +
5549
5550      "}";
5551
5552
5553    document.head.appendChild(
5554      style
5555    );
5556
5557  }
5558
5559
5560  /********************************************************************
5561   * BIGCOMMERCE COUPON INPUT
5562   ********************************************************************/
5563
5564  function getCouponInput() {
5565
5566    var selectors = [
5567
5568      'input[name="couponcode"]',
5569
5570      'input[id="couponcode"]',
5571
5572      'input[name="couponCode"]',
5573
5574      'input[id="couponCode"]',
5575
5576      'input[name*="coupon" i]',
5577
5578      'input[id*="coupon" i]',
5579
5580      'input[placeholder*="coupon" i]',
5581
5582      'input[placeholder*="promo" i]',
5583
5584      'input[placeholder*="discount" i]'
5585
5586    ];
5587
5588
5589    for (
5590      var i = 0;
5591      i < selectors.length;
5592      i++
5593    ) {
5594
5595      try {
5596
5597        var input =
5598          document.querySelector(
5599            selectors[i]
5600          );
5601
5602
5603        if (input) {
5604
5605          return input;
5606
5607        }
5608
5609      } catch (e) {}
5610
5611    }
5612
5613
5614    return null;
5615
5616  }
5617
5618
5619  /********************************************************************
5620   * FIND COUPON FORM
5621   ********************************************************************/
5622
5623  function getCouponForm(input) {
5624
5625    if (!input) {
5626
5627      return null;
5628
5629    }
5630
5631
5632    var form =
5633      input.closest(
5634        "form"
5635      );
5636
5637
5638    if (form) {
5639
5640      return form;
5641
5642    }
5643
5644
5645    var forms =
5646      document.querySelectorAll(
5647        "form"
5648      );
5649
5650
5651    for (
5652      var i = 0;
5653      i < forms.length;
5654      i++
5655    ) {
5656
5657      var txt =
5658        (
5659          forms[i].textContent ||
5660          ""
5661        )
5662        .replace(/\s+/g, " ")
5663        .toLowerCase();
5664
5665
5666      if (
5667        txt.indexOf("coupon") !== -1 ||
5668        txt.indexOf("promo") !== -1
5669      ) {
5670
5671        return forms[i];
5672
5673      }
5674
5675    }
5676
5677
5678    return null;
5679
5680  }
5681
5682
5683  /********************************************************************
5684   * FIND APPLY BUTTON
5685   ********************************************************************/
5686
5687  function getCouponSubmitButton(
5688    form,
5689    input
5690  ) {
5691
5692    if (!form) {
5693
5694      return null;
5695
5696    }
5697
5698
5699    var selectors = [
5700
5701      'button[type="submit"]',
5702
5703      'input[type="submit"]',
5704
5705      '[data-coupon-submit]',
5706
5707      '[data-cart-coupon-submit]',
5708
5709      'button[name*="coupon" i]',
5710
5711      'button[class*="coupon" i]',
5712
5713      'input[class*="coupon" i]'
5714
5715    ];
5716
5717
5718    for (
5719      var i = 0;
5720      i < selectors.length;
5721      i++
5722    ) {
5723
5724      try {
5725
5726        var btn =
5727          form.querySelector(
5728            selectors[i]
5729          );
5730
5731
5732        if (
5733          btn &&
5734          btn !== input
5735        ) {
5736
5737          return btn;
5738
5739        }
5740
5741      } catch (e) {}
5742
5743    }
5744
5745
5746    var buttons =
5747      form.querySelectorAll(
5748        "button, input[type='button'], input[type='submit']"
5749      );
5750
5751
5752    for (
5753      var b = 0;
5754      b < buttons.length;
5755      b++
5756    ) {
5757
5758      var text =
5759        (
5760          buttons[b].textContent ||
5761          buttons[b].value ||
5762          ""
5763        )
5764        .replace(/\s+/g, " ")
5765        .trim()
5766        .toLowerCase();
5767
5768
5769      if (
5770        text === "apply" ||
5771        text.indexOf("apply coupon") !== -1 ||
5772        text.indexOf("apply code") !== -1
5773      ) {
5774
5775        return buttons[b];
5776
5777      }
5778
5779    }
5780
5781
5782    return null;
5783
5784  }
5785
5786
5787  /********************************************************************
5788   * CHECK IF COUPON CODE IS DISPLAYED AS APPLIED
5789   ********************************************************************/
5790
5791  function isCouponVisibleAsApplied(code) {
5792
5793    code =
5794      normalizeCode(
5795        code
5796      );
5797
5798
5799    if (!code) {
5800
5801      return false;
5802
5803    }
5804
5805
5806    var input =
5807      getCouponInput();
5808
5809
5810    var couponForm =
5811      input
5812        ? input.closest("form")
5813        : null;
5814
5815
5816    var selectors = [
5817
5818      ".cart-total",
5819
5820      ".cartTotal",
5821
5822      ".cart-totals",
5823
5824      ".cartTotals",
5825
5826      ".coupon",
5827
5828      ".coupon-code",
5829
5830      ".couponCode",
5831
5832      ".discount",
5833
5834      ".discount-code",
5835
5836      ".discountCode",
5837
5838      "[data-cart-totals]",
5839
5840      "[data-coupon-code]",
5841
5842      "[data-cart-coupon]",
5843
5844      "[class*='coupon']",
5845
5846      "[class*='Coupon']",
5847
5848      "[class*='discount']",
5849
5850      "[class*='Discount']"
5851
5852    ];
5853
5854
5855    for (
5856      var s = 0;
5857      s < selectors.length;
5858      s++
5859    ) {
5860
5861      var elements;
5862
5863
5864      try {
5865
5866        elements =
5867          document.querySelectorAll(
5868            selectors[s]
5869          );
5870
5871      } catch (e) {
5872
5873        continue;
5874
5875      }
5876
5877
5878      for (
5879        var i = 0;
5880        i < elements.length;
5881        i++
5882      ) {
5883
5884        var el =
5885          elements[i];
5886
5887
5888        if (!el) {
5889
5890          continue;
5891
5892        }
5893
5894
5895        if (
5896          el.closest &&
5897          el.closest(
5898            "#twine-banner"
5899          )
5900        ) {
5901
5902          continue;
5903
5904        }
5905
5906
5907        if (
5908          el.closest &&
5909          el.closest(
5910            "#twine-coupon-custom-message"
5911          )
5912        ) {
5913
5914          continue;
5915
5916        }
5917
5918
5919        if (
5920          couponForm &&
5921          (
5922            el === couponForm ||
5923            couponForm.contains(el)
5924          )
5925        ) {
5926
5927          continue;
5928
5929        }
5930
5931
5932        var txt =
5933          (
5934            el.textContent ||
5935            el.innerText ||
5936            ""
5937          )
5938          .replace(/\s+/g, " ")
5939          .toUpperCase();
5940
5941
5942        if (
5943          txt.indexOf(
5944            code
5945          ) !== -1
5946        ) {
5947
5948          return true;
5949
5950        }
5951
5952      }
5953
5954    }
5955
5956
5957    return false;
5958
5959  }
5960
5961
5962  /********************************************************************
5963   * FIND BIGCOMMERCE COUPON SUCCESS ALERT
5964   *
5965   * THIS IS NOW ALSO USED TO POSITION OUR CUSTOM MESSAGE.
5966   ********************************************************************/
5967
5968  function findCouponSuccessAlert() {
5969
5970    var selectors = [
5971
5972      ".alertBox",
5973
5974      ".alert",
5975
5976      ".notification",
5977
5978      "[role='alert']",
5979
5980      "[class*='alert']",
5981
5982      "[class*='notification']"
5983
5984    ];
5985
5986
5987    for (
5988      var s = 0;
5989      s < selectors.length;
5990      s++
5991    ) {
5992
5993      var els;
5994
5995
5996      try {
5997
5998        els =
5999          document.querySelectorAll(
6000            selectors[s]
6001          );
6002
6003      } catch (e) {
6004
6005        continue;
6006
6007      }
6008
6009
6010      for (
6011        var i = 0;
6012        i < els.length;
6013        i++
6014      ) {
6015
6016        var el =
6017          els[i];
6018
6019
6020        if (
6021          el.id ===
6022          "twine-coupon-custom-message"
6023        ) {
6024
6025          continue;
6026
6027        }
6028
6029
6030        var txt =
6031          (
6032            el.textContent ||
6033            el.innerText ||
6034            ""
6035          )
6036          .replace(/\s+/g, " ")
6037          .toLowerCase();
6038
6039
6040        if (
6041          txt.indexOf("coupon") !== -1 &&
6042          (
6043            txt.indexOf("has been applied") !== -1 ||
6044            txt.indexOf("successfully applied") !== -1 ||
6045            txt.indexOf("applied to your cart") !== -1
6046          )
6047        ) {
6048
6049          return el;
6050
6051        }
6052
6053      }
6054
6055    }
6056
6057
6058    return null;
6059
6060  }
6061
6062
6063  function hasCouponSuccessMessage() {
6064
6065    return !!findCouponSuccessAlert();
6066
6067  }
6068
6069
6070  /********************************************************************
6071   * CONFIRM SAVED COUPON IS ACTUALLY APPLIED
6072   ********************************************************************/
6073
6074  function isSavedCouponApplied() {
6075
6076    var code =
6077      loadCode();
6078
6079
6080    if (!code) {
6081
6082      return false;
6083
6084    }
6085
6086
6087    if (
6088      isCouponVisibleAsApplied(
6089        code
6090      )
6091    ) {
6092
6093      return true;
6094
6095    }
6096
6097
6098    if (
6099      hasCouponSuccessMessage()
6100    ) {
6101
6102      return true;
6103
6104    }
6105
6106
6107    return false;
6108
6109  }
6110
6111
6112  /********************************************************************
6113   * FREE SHIPPING MESSAGE VISIBILITY
6114   ********************************************************************/
6115
6116  function updateFreeShippingVisibility() {
6117
6118    if (
6119      !document.body
6120    ) {
6121
6122      return;
6123
6124    }
6125
6126
6127    if (
6128      !isCartPage()
6129    ) {
6130
6131      document.body.classList.remove(
6132        "twine-free-shipping-coupon"
6133      );
6134
6135      return;
6136
6137    }
6138
6139
6140    var code =
6141      loadCode();
6142
6143
6144    if (
6145      code &&
6146      isFreeShippingCoupon(
6147        code
6148      ) &&
6149      isSavedCouponApplied() &&
6150      !removeClickedRecently
6151    ) {
6152
6153      document.body.classList.add(
6154        "twine-free-shipping-coupon"
6155      );
6156
6157    } else {
6158
6159      document.body.classList.remove(
6160        "twine-free-shipping-coupon"
6161      );
6162
6163    }
6164
6165  }
6166
6167
6168  /********************************************************************
6169   * REMOVE CUSTOM MESSAGE
6170   ********************************************************************/
6171
6172  function removeCouponCustomMessage() {
6173
6174    var old =
6175      document.getElementById(
6176        "twine-coupon-custom-message"
6177      );
6178
6179
6180    if (old) {
6181
6182      old.remove();
6183
6184    }
6185
6186  }
6187
6188
6189  /********************************************************************
6190   * CUSTOM COUPON MESSAGE
6191   *
6192   * IMPORTANT:
6193   *
6194   * PRIMARY POSITION:
6195   *
6196   * Directly ABOVE BigCommerce's:
6197   *
6198   * "The coupon that you entered has been applied to your cart."
6199   ********************************************************************/
6200
6201  function showCouponCustomMessage() {
6202
6203    if (
6204      !isCartPage()
6205    ) {
6206
6207      return;
6208
6209    }
6210
6211
6212    var code =
6213      loadCode();
6214
6215
6216    var message =
6217      getCouponMessage(
6218        code
6219      );
6220
6221
6222    var existing =
6223      document.getElementById(
6224        "twine-coupon-custom-message"
6225      );
6226
6227
6228    if (
6229      !message ||
6230      !isSavedCouponApplied() ||
6231      removeClickedRecently
6232    ) {
6233
6234      if (existing) {
6235
6236        existing.remove();
6237
6238      }
6239
6240
6241      return;
6242
6243    }
6244
6245
6246    /*
6247     * FIRST CHOICE:
6248     *
6249     * Locate the actual BigCommerce success alert.
6250     */
6251
6252    var successAlert =
6253      findCouponSuccessAlert();
6254
6255
6256    /*
6257     * If the correct message already exists AND is directly
6258     * before the success alert, leave it alone.
6259     *
6260     * This avoids unnecessary DOM changes / loops.
6261     */
6262
6263    if (
6264      existing &&
6265      existing.getAttribute(
6266        "data-twine-message-code"
6267      ) === code &&
6268      existing.textContent.trim() ===
6269        message.trim()
6270    ) {
6271
6272      if (
6273        successAlert &&
6274        existing.nextElementSibling ===
6275          successAlert
6276      ) {
6277
6278        return;
6279
6280      }
6281
6282
6283      /*
6284       * If the BigCommerce success alert has disappeared,
6285       * leave our existing message where it is.
6286       */
6287
6288      if (!successAlert) {
6289
6290        return;
6291
6292      }
6293
6294    }
6295
6296
6297    if (existing) {
6298
6299      existing.remove();
6300
6301    }
6302
6303
6304    var msg =
6305      document.createElement(
6306        "div"
6307      );
6308
6309
6310    msg.id =
6311      "twine-coupon-custom-message";
6312
6313
6314    msg.setAttribute(
6315      "data-twine-message-code",
6316      code
6317    );
6318
6319
6320    msg.style.cssText =
6321
6322      "display:block;" +
6323
6324      "box-sizing:border-box;" +
6325
6326      "width:100%;" +
6327
6328      "max-width:562px;" +
6329
6330      "margin:0 auto 10px auto;" +
6331
6332      "padding:13px 18px;" +
6333
6334      "background:#eaf7ea;" +
6335
6336      "border:1px solid #b8dfb8;" +
6337
6338      "border-radius:5px;" +
6339
6340      "color:#1f5f1f;" +
6341
6342      "font-size:14px;" +
6343
6344      "font-weight:700;" +
6345
6346      "line-height:1.45;" +
6347
6348      "text-align:center;";
6349
6350
6351    msg.innerText =
6352      message;
6353
6354
6355    /*
6356     * EXACT PLACEMENT REQUESTED:
6357     *
6358     * Put our message directly ABOVE the BigCommerce
6359     * "coupon has been applied" alert.
6360     */
6361
6362    if (
6363      successAlert
6364    ) {
6365
6366      successAlert.insertAdjacentElement(
6367        "beforebegin",
6368        msg
6369      );
6370
6371
6372      return;
6373
6374    }
6375
6376
6377    /*
6378     * FALLBACK:
6379     *
6380     * If BigCommerce's success alert has already disappeared,
6381     * place the custom message directly below "Your Cart".
6382     */
6383
6384    var heading =
6385      document.querySelector(
6386        ".page-heading, h1"
6387      );
6388
6389
6390    if (
6391      heading
6392    ) {
6393
6394      heading.insertAdjacentElement(
6395        "afterend",
6396        msg
6397      );
6398
6399
6400      return;
6401
6402    }
6403
6404
6405    /*
6406     * Last fallback.
6407     */
6408
6409    var cart =
6410      document.querySelector(
6411        ".cart, [data-cart]"
6412      );
6413
6414
6415    if (
6416      cart
6417    ) {
6418
6419      cart.insertAdjacentElement(
6420        "beforebegin",
6421        msg
6422      );
6423
6424    }
6425
6426  }
6427
6428
6429  /********************************************************************
6430   * APPLY THROTTLE
6431   ********************************************************************/
6432
6433  function canTryApplyNow() {
6434
6435    var lastTs =
6436      parseInt(
6437        localStorage.getItem(
6438          LAST_APPLY_TS_KEY
6439        ) || "0",
6440        10
6441      );
6442
6443
6444    if (
6445      Date.now() -
6446      lastTs <
6447      MIN_APPLY_GAP_MS
6448    ) {
6449
6450      return false;
6451
6452    }
6453
6454
6455    return true;
6456
6457  }
6458
6459
6460  function markTriedApply() {
6461
6462    localStorage.setItem(
6463      LAST_APPLY_TS_KEY,
6464      String(
6465        Date.now()
6466      )
6467    );
6468
6469  }
6470
6471
6472  /********************************************************************
6473   * SUBMIT COUPON FORM
6474   ********************************************************************/
6475
6476  function submitCouponForm(
6477    form,
6478    button
6479  ) {
6480
6481    if (
6482      form &&
6483      typeof form.requestSubmit ===
6484        "function"
6485    ) {
6486
6487      try {
6488
6489        if (
6490          button &&
6491          (
6492            button.tagName === "BUTTON" ||
6493            button.type === "submit"
6494          )
6495        ) {
6496
6497          form.requestSubmit(
6498            button
6499          );
6500
6501        } else {
6502
6503          form.requestSubmit();
6504
6505        }
6506
6507
6508        return true;
6509
6510      } catch (e) {}
6511
6512    }
6513
6514
6515    if (
6516      button &&
6517      typeof button.click ===
6518        "function"
6519    ) {
6520
6521      try {
6522
6523        button.click();
6524
6525        return true;
6526
6527      } catch (e) {}
6528
6529    }
6530
6531
6532    if (form) {
6533
6534      try {
6535
6536        form.submit();
6537
6538        return true;
6539
6540      } catch (e) {}
6541
6542    }
6543
6544
6545    return false;
6546
6547  }
6548
6549
6550  /********************************************************************
6551   * AUTOMATICALLY APPLY SAVED COUPON
6552   ********************************************************************/
6553
6554  function applyCoupon() {
6555
6556    var code =
6557      loadCode();
6558
6559
6560    savedCode =
6561      code;
6562
6563
6564    if (!code) {
6565
6566      return false;
6567
6568    }
6569
6570
6571    if (
6572      !isCartPage()
6573    ) {
6574
6575      return false;
6576
6577    }
6578
6579
6580    if (
6581      submitting ||
6582      removeClickedRecently
6583    ) {
6584
6585      return false;
6586
6587    }
6588
6589
6590    if (
6591      isSavedCouponApplied()
6592    ) {
6593
6594      showCouponCustomMessage();
6595
6596      updateFreeShippingVisibility();
6597
6598      return false;
6599
6600    }
6601
6602
6603    if (
6604      !canTryApplyNow()
6605    ) {
6606
6607      return false;
6608
6609    }
6610
6611
6612    var input =
6613      getCouponInput();
6614
6615
6616    if (!input) {
6617
6618      return false;
6619
6620    }
6621
6622
6623    var currentInputCode =
6624      normalizeCode(
6625        input.value
6626      );
6627
6628
6629    if (
6630      currentInputCode &&
6631      currentInputCode !== code
6632    ) {
6633
6634      return false;
6635
6636    }
6637
6638
6639    input.value =
6640      code;
6641
6642
6643    try {
6644
6645      input.dispatchEvent(
6646        new Event(
6647          "input",
6648          {
6649            bubbles: true
6650          }
6651        )
6652      );
6653
6654    } catch (e) {}
6655
6656
6657    try {
6658
6659      input.dispatchEvent(
6660        new Event(
6661          "change",
6662          {
6663            bubbles: true
6664          }
6665        )
6666      );
6667
6668    } catch (e) {}
6669
6670
6671    try {
6672
6673      input.focus();
6674
6675      input.blur();
6676
6677    } catch (e) {}
6678
6679
6680    var form =
6681      getCouponForm(
6682        input
6683      );
6684
6685
6686    if (!form) {
6687
6688      return false;
6689
6690    }
6691
6692
6693    var button =
6694      getCouponSubmitButton(
6695        form,
6696        input
6697      );
6698
6699
6700    submitting =
6701      true;
6702
6703
6704    markTriedApply();
6705
6706
6707    var submitted =
6708      submitCouponForm(
6709        form,
6710        button
6711      );
6712
6713
6714    if (!submitted) {
6715
6716      submitting =
6717        false;
6718
6719      return false;
6720
6721    }
6722
6723
6724    setTimeout(
6725      function () {
6726
6727        submitting =
6728          false;
6729
6730
6731        showCouponCustomMessage();
6732
6733        updateFreeShippingVisibility();
6734
6735      },
6736      SUBMIT_LOCK_MS
6737    );
6738
6739
6740    return true;
6741
6742  }
6743
6744
6745  /********************************************************************
6746   * TOP SAVED COUPON BANNER
6747   ********************************************************************/
6748
6749  var savedCode =
6750    loadCode();
6751
6752
6753  function showBanner() {
6754
6755    savedCode =
6756      loadCode();
6757
6758
6759    if (
6760      !savedCode ||
6761      bannerHidden()
6762    ) {
6763
6764      return;
6765
6766    }
6767
6768
6769    if (
6770      document.getElementById(
6771        "twine-banner"
6772      )
6773    ) {
6774
6775      return;
6776
6777    }
6778
6779
6780    var banner =
6781      document.createElement(
6782        "div"
6783      );
6784
6785
6786    banner.id =
6787      "twine-banner";
6788
6789
6790    banner.style.cssText =
6791
6792      "position:sticky;" +
6793
6794      "top:0;" +
6795
6796      "z-index:9999;" +
6797
6798      "box-sizing:border-box;" +
6799
6800      "width:100%;" +
6801
6802      "padding:9px 12px;" +
6803
6804      "background:#c4d6ee;" +
6805
6806      "color:#000;" +
6807
6808      "text-align:center;" +
6809
6810      "font-size:14px;" +
6811
6812      "line-height:1.4;";
6813
6814
6815    banner.innerHTML =
6816
6817      'Discount code <strong>' +
6818
6819      savedCode +
6820
6821      '</strong> saved.' +
6822
6823      ' <a href="#" id="twine-remove" ' +
6824
6825      'style="margin-left:10px;color:inherit;text-decoration:underline;">' +
6826
6827      'Remove</a>' +
6828
6829      ' <button id="twine-hide" ' +
6830
6831      'style="margin-left:10px;padding:4px 9px;cursor:pointer;">' +
6832
6833      'Hide</button>';
6834
6835
6836    document.body.prepend(
6837      banner
6838    );
6839
6840
6841    document.getElementById(
6842      "twine-remove"
6843    ).onclick =
6844      function (e) {
6845
6846        e.preventDefault();
6847
6848
6849        var ok =
6850          window.confirm(
6851            "Are you sure you want to remove discount?"
6852          );
6853
6854
6855        if (!ok) {
6856
6857          return;
6858
6859        }
6860
6861
6862        removeClickedRecently =
6863          true;
6864
6865
6866        clearCode();
6867
6868
6869        savedCode =
6870          "";
6871
6872
6873        document.body.classList.remove(
6874          "twine-free-shipping-coupon"
6875        );
6876
6877
6878        removeCouponCustomMessage();
6879
6880
6881        banner.remove();
6882
6883
6884        setTimeout(
6885          function () {
6886
6887            removeClickedRecently =
6888              false;
6889
6890          },
6891          4000
6892        );
6893
6894      };
6895
6896
6897    document.getElementById(
6898      "twine-hide"
6899    ).onclick =
6900      function () {
6901
6902        hideBanner();
6903
6904        banner.remove();
6905
6906      };
6907
6908  }
6909
6910
6911  /********************************************************************
6912   * WATCH BIGCOMMERCE COUPON REMOVE
6913   ********************************************************************/
6914
6915  function bindCartCouponRemoveWatch() {
6916
6917    if (
6918      !isCartPage()
6919    ) {
6920
6921      return;
6922
6923    }
6924
6925
6926    document.addEventListener(
6927      "click",
6928      function (e) {
6929
6930        var target =
6931          e.target;
6932
6933
6934        if (
6935          !target ||
6936          !target.closest
6937        ) {
6938
6939          return;
6940
6941        }
6942
6943
6944        var button =
6945          target.closest(
6946            "a, button, [role='button']"
6947          );
6948
6949
6950        if (!button) {
6951
6952          return;
6953
6954        }
6955
6956
6957        if (
6958          button.closest(
6959            "#twine-banner"
6960          )
6961        ) {
6962
6963          return;
6964
6965        }
6966
6967
6968        var text =
6969          (
6970            (button.textContent || "") +
6971            " " +
6972            (button.getAttribute("aria-label") || "") +
6973            " " +
6974            (button.getAttribute("title") || "")
6975          )
6976          .replace(/\s+/g, " ")
6977          .toLowerCase();
6978
6979
6980        var href =
6981          (
6982            button.getAttribute(
6983              "href"
6984            ) || ""
6985          )
6986          .toLowerCase();
6987
6988
6989        var context =
6990          button.closest(
6991
6992            "[class*='coupon'], " +
6993
6994            "[id*='coupon'], " +
6995
6996            "[data-coupon-code], " +
6997
6998            "[data-cart-coupon], " +
6999
7000            ".cart-total, " +
7001
7002            ".cartTotal, " +
7003
7004            ".cart-totals, " +
7005
7006            ".cartTotals"
7007
7008          );
7009
7010
7011        if (!context) {
7012
7013          return;
7014
7015        }
7016
7017
7018        var contextText =
7019          (
7020            context.textContent ||
7021            ""
7022          )
7023          .replace(/\s+/g, " ")
7024          .toLowerCase();
7025
7026
7027        var looksLikeRemove =
7028
7029          text.indexOf("remove") !== -1 ||
7030
7031          text.indexOf("delete") !== -1 ||
7032
7033          href.indexOf("remove") !== -1;
7034
7035
7036        var looksLikeCouponArea =
7037
7038          contextText.indexOf("coupon") !== -1 ||
7039
7040          contextText.indexOf("discount") !== -1 ||
7041
7042          href.indexOf("coupon") !== -1;
7043
7044
7045        if (
7046          looksLikeRemove &&
7047          looksLikeCouponArea &&
7048          loadCode()
7049        ) {
7050
7051          removeClickedRecently =
7052            true;
7053
7054
7055          clearCode();
7056
7057
7058          savedCode =
7059            "";
7060
7061
7062          document.body.classList.remove(
7063            "twine-free-shipping-coupon"
7064          );
7065
7066
7067          removeCouponCustomMessage();
7068
7069
7070          var banner =
7071            document.getElementById(
7072              "twine-banner"
7073            );
7074
7075
7076          if (banner) {
7077
7078            banner.remove();
7079
7080          }
7081
7082
7083          setTimeout(
7084            function () {
7085
7086              removeClickedRecently =
7087                false;
7088
7089            },
7090            4000
7091          );
7092
7093        }
7094
7095      },
7096      true
7097    );
7098
7099  }
7100
7101
7102  /********************************************************************
7103   * WATCH MANUAL COUPONS
7104   ********************************************************************/
7105
7106  function bindManualCouponWatch() {
7107
7108    if (
7109      !isCartPage()
7110    ) {
7111
7112      return;
7113
7114    }
7115
7116
7117    document.addEventListener(
7118      "input",
7119      function (e) {
7120
7121        var input =
7122          getCouponInput();
7123
7124
7125        if (
7126          !input ||
7127          e.target !== input
7128        ) {
7129
7130          return;
7131
7132        }
7133
7134
7135        var code =
7136          normalizeCode(
7137            input.value
7138          );
7139
7140
7141        if (
7142          getCouponMessage(
7143            code
7144          ) ||
7145          isFreeShippingCoupon(
7146            code
7147          )
7148        ) {
7149
7150          removeClickedRecently =
7151            false;
7152
7153
7154          saveCode(
7155            code
7156          );
7157
7158
7159          savedCode =
7160            code;
7161
7162        }
7163
7164      },
7165      true
7166    );
7167
7168
7169    document.addEventListener(
7170      "submit",
7171      function (e) {
7172
7173        var input =
7174          getCouponInput();
7175
7176
7177        if (!input) {
7178
7179          return;
7180
7181        }
7182
7183
7184        var form =
7185          input.closest(
7186            "form"
7187          );
7188
7189
7190        if (
7191          form &&
7192          e.target !== form
7193        ) {
7194
7195          return;
7196
7197        }
7198
7199
7200        var code =
7201          normalizeCode(
7202            input.value
7203          );
7204
7205
7206        if (
7207          getCouponMessage(
7208            code
7209          ) ||
7210          isFreeShippingCoupon(
7211            code
7212          )
7213        ) {
7214
7215          removeClickedRecently =
7216            false;
7217
7218
7219          localStorage.setItem(
7220            STORAGE_KEY,
7221            code
7222          );
7223
7224
7225          savedCode =
7226            code;
7227
7228
7229          setTimeout(
7230            function () {
7231
7232              showCouponCustomMessage();
7233
7234              updateFreeShippingVisibility();
7235
7236            },
7237            800
7238          );
7239
7240
7241          setTimeout(
7242            function () {
7243
7244              showCouponCustomMessage();
7245
7246              updateFreeShippingVisibility();
7247
7248            },
7249            1800
7250          );
7251
7252        }
7253
7254      },
7255      true
7256    );
7257
7258  }
7259
7260
7261  /********************************************************************
7262   * WATCH CART REDRAWS
7263   *
7264   * CHILD LIST ONLY.
7265   *
7266   * NO ATTRIBUTE / STYLE / CLASS WATCHING.
7267   ********************************************************************/
7268
7269  function watchCartChangesAndRetry() {
7270
7271    if (
7272      !isCartPage() ||
7273      !document.body
7274    ) {
7275
7276      return;
7277
7278    }
7279
7280
7281    var observer =
7282      new MutationObserver(
7283        function () {
7284
7285          clearTimeout(
7286            debounceTimer
7287          );
7288
7289
7290          debounceTimer =
7291            setTimeout(
7292              function () {
7293
7294                if (
7295                  removeClickedRecently
7296                ) {
7297
7298                  return;
7299
7300                }
7301
7302
7303                if (
7304                  isSavedCouponApplied()
7305                ) {
7306
7307                  showCouponCustomMessage();
7308
7309                  updateFreeShippingVisibility();
7310
7311                  return;
7312
7313                }
7314
7315
7316                if (
7317                  !submitting
7318                ) {
7319
7320                  applyCoupon();
7321
7322                }
7323
7324              },
7325              DEBOUNCE_MS
7326            );
7327
7328        }
7329      );
7330
7331
7332    observer.observe(
7333      document.body,
7334      {
7335
7336        childList: true,
7337
7338        subtree: true
7339
7340      }
7341    );
7342
7343  }
7344
7345
7346  /********************************************************************
7347   * CAPTURE ?twine=
7348   ********************************************************************/
7349
7350  var twineCode =
7351    getTwineParam();
7352
7353
7354  if (
7355    twineCode
7356  ) {
7357
7358    twineCode =
7359      normalizeCode(
7360        twineCode
7361      );
7362
7363
7364    saveCode(
7365      twineCode
7366    );
7367
7368
7369    savedCode =
7370      twineCode;
7371
7372
7373    try {
7374
7375      var url =
7376        new URL(
7377          window.location.href
7378        );
7379
7380
7381      url.searchParams.delete(
7382        "twine"
7383      );
7384
7385
7386      window.history.replaceState(
7387
7388        {},
7389
7390        document.title,
7391
7392        url.toString()
7393
7394      );
7395
7396    } catch (e) {}
7397
7398  }
7399
7400
7401  /********************************************************************
7402   * INITIALIZE
7403   ********************************************************************/
7404
7405  function init() {
7406
7407    installFreeShippingCSS();
7408
7409
7410    savedCode =
7411      loadCode();
7412
7413
7414    showBanner();
7415
7416
7417    if (
7418      !isCartPage()
7419    ) {
7420
7421      return;
7422
7423    }
7424
7425
7426    bindCartCouponRemoveWatch();
7427
7428
7429    bindManualCouponWatch();
7430
7431
7432    watchCartChangesAndRetry();
7433
7434
7435    applyCoupon();
7436
7437
7438    var tries =
7439      0;
7440
7441
7442    var timer =
7443      setInterval(
7444        function () {
7445
7446          tries++;
7447
7448
7449          if (
7450            removeClickedRecently
7451          ) {
7452
7453            if (
7454              tries >= 24
7455            ) {
7456
7457              clearInterval(
7458                timer
7459              );
7460
7461            }
7462
7463
7464            return;
7465
7466          }
7467
7468
7469          if (
7470            isSavedCouponApplied()
7471          ) {
7472
7473            showCouponCustomMessage();
7474
7475
7476            updateFreeShippingVisibility();
7477
7478
7479            clearInterval(
7480              timer
7481            );
7482
7483
7484            return;
7485
7486          }
7487
7488
7489          if (
7490            !submitting
7491          ) {
7492
7493            applyCoupon();
7494
7495          }
7496
7497
7498          if (
7499            tries >= 24
7500          ) {
7501
7502            clearInterval(
7503              timer
7504            );
7505
7506          }
7507
7508        },
7509        500
7510      );
7511
7512
7513    setTimeout(
7514      function () {
7515
7516        showCouponCustomMessage();
7517
7518        updateFreeShippingVisibility();
7519
7520      },
7521      750
7522    );
7523
7524
7525    setTimeout(
7526      function () {
7527
7528        showCouponCustomMessage();
7529
7530        updateFreeShippingVisibility();
7531
7532      },
7533      1500
7534    );
7535
7536
7537    setTimeout(
7538      function () {
7539
7540        showCouponCustomMessage();
7541
7542        updateFreeShippingVisibility();
7543
7544      },
7545      3000
7546    );
7547
7548  }
7549
7550
7551  if (
7552    document.readyState ===
7553      "loading"
7554  ) {
7555
7556    document.addEventListener(
7557      "DOMContentLoaded",
7558      init
7559    );
7560
7561  } else {
7562
7563    init();
7564
7565  }
7566
7567})();
7568</script>
7568<script>
7569(function () {
7570
7571  var INSERT_SELECTOR = ".productView-rating";
7572
7573  function getEasternDateMidnight() {
7574    var now = new Date();
7575
7576    var parts = new Intl.DateTimeFormat("en-US", {
7577      timeZone: "America/New_York",
7578      year: "numeric",
7579      month: "2-digit",
7580      day: "2-digit"
7581    }).formatToParts(now);
7582
7583    return new Date(
7584      parts.find(function (p) {
7585        return p.type === "year";
7586      }).value + "-" +
7587      parts.find(function (p) {
7588        return p.type === "month";
7589      }).value + "-" +
7590      parts.find(function (p) {
7591        return p.type === "day";
7592      }).value + "T00:00:00"
7593    );
7594  }
7595
7596  function parseISODateMidnight(iso) {
7597    return new Date(iso + "T00:00:00");
7598  }
7599
7600  function inRange(today, start, end) {
7601    return (
7602      today >= parseISODateMidnight(start) &&
7603      today <= parseISODateMidnight(end)
7604    );
7605  }
7606
7607  // ===== SALE RULES =====
7608  var rules = [
7609    {
7610      start: "2026-02-06",
7611      end: "2026-02-08",
7612      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/free-face-serum-banner-with-any-purchase.jpg?t=1770398642",
7613      link: "",
7614      text: ""
7615    },
7616    {
7617      start: "2026-02-13",
7618      end: "2026-02-15",
7619      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/buy-1-lip-get-1-50-off-banner-.jpg?t=1770923692",
7620      link: "https://twinecbd.com/the-best-cbd-beauty-products/?sort=priceasc&twine=KE1681",
7621      text: "Offer Only Valid Feb 13-15. Use Code KE1681 at checkout. Don't Miss Out!"
7622    },
7623    {
7624      start: "2026-02-27",
7625      end: "2026-03-01",
7626      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/beauty-bundle-sale.jpg?t=1771521650",
7627      link: "https://twinecbd.com/value-sets/",
7628      text: "+ Get FREE Pack of Beauty Gummies. Offer Only Valid This Weekend."
7629    },
7630    {
7631      start: "2026-03-17",
7632      end: "2026-03-17",
7633      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/lotion-spray-sale.jpg",
7634      link: "https://twinecbd.com/hydrating-lotion-spray?twine=KE1736",
7635      text: "Use Code: KE1736 - Offer Valid March 17 Only"
7636    },
7637    {
7638      start: "2026-04-09",
7639      end: "2026-04-12",
7640      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/20-off-comfort-creams.jpg?t=1775565936",
7641      link: "https://twinecbd.com/comfort-cream/?twine=KE4816",
7642      text: "Coupon code KE4816 is valid April 9–12, 2026"
7643    },
7644    {
7645      start: "2026-05-21",
7646      end: "2026-05-25",
7647      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/memorial-day-banner.jpg?t=1778514220",
7648      link: "https://twinecbd.com/the-best-cbd-oils-creams-pet-products/?twine=KE7845",
7649      text: "Get $20 off when you spend $100+ or Get $10 off when you spend $50+. Offer valid this weekend only."
7650    },
7651    {
7652      start: "2026-07-24",
7653      end: "2026-07-26",
7654      img: "https://cdn11.bigcommerce.com/s-neutbgywct/images/stencil/original/image-manager/banner-bundle-2-or-more-and-save-with-20-off-and-free-shipping.jpg?t=1784558772",
7655      link: "https://twinecbd.com/the-best-cbd-oils-creams-pet-products/?twine=KE9463&_bc_fsnf=1&Benefit=Sleep",
7656      text: "Sale Ends Sunday"
7657    }
7658  ];
7659
7660  var defaultMessage =
7661    "Free Shipping on all orders of $60+ — No Codes, No Hassle.";
7662
7663  function render() {
7664    var target = document.querySelector(INSERT_SELECTOR);
7665
7666    if (!target) {
7667      return false;
7668    }
7669
7670    var today = getEasternDateMidnight();
7671
7672    var active = rules.filter(function (rule) {
7673      return inRange(today, rule.start, rule.end);
7674    });
7675
7676    var container = document.getElementById("twine-sale-container");
7677
7678    if (!container) {
7679      container = document.createElement("div");
7680      container.id = "twine-sale-container";
7681    }
7682
7683    if (active.length) {
7684      container.innerHTML = active.map(function (rule) {
7685        var imgHTML = "";
7686
7687        if (rule.img) {
7688          if (rule.link) {
7689            imgHTML =
7690              '<a href="' +
7691              rule.link +
7692              '">' +
7693              '<img src="' +
7694              rule.img +
7695              '" alt="Current TWINE sale offer">' +
7696              "</a>";
7697          } else {
7698            imgHTML =
7699              '<img src="' +
7700              rule.img +
7701              '" alt="Current TWINE sale offer">';
7702          }
7703        }
7704
7705        var textHTML = rule.text
7706          ? "<p>" + rule.text + "</p>"
7707          : "";
7708
7709        return imgHTML + textHTML;
7710      }).join("");
7711    } else {
7712      container.innerHTML =
7713        "<p>" + defaultMessage + "</p>";
7714    }
7715
7716    /*
7717      Insert the banner immediately AFTER the element
7718      with class="productView-rating".
7719    */
7720    if (container.dataset.inserted !== "1") {
7721      target.insertAdjacentElement("afterend", container);
7722      container.dataset.inserted = "1";
7723    }
7724
7725    return true;
7726  }
7727
7728  var tries = 0;
7729
7730  var interval = setInterval(function () {
7731    tries++;
7732
7733    if (render() || tries > 40) {
7734      clearInterval(interval);
7735    }
7736  }, 300);
7737
7738})();
7739</script>
7739<script>
7740(function () {
7741  function safeJsonParse(str) {
7742    try { return JSON.parse(str); } catch (e) { return null; }
7743  }
7744
7745  function findProductJsonLd() {
7746    var nodes = document.querySelectorAll('script[type="application/ld+json"]');
7747    for (var i = 0; i < nodes.length; i++) {
7748      var data = safeJsonParse(nodes[i].textContent);
7749      if (!data) continue;
7750
7751      var candidates = [];
7752      if (Array.isArray(data)) candidates = data;
7753      else if (data['@graph'] && Array.isArray(data['@graph'])) candidates = data['@graph'];
7754      else candidates = [data];
7755
7756      for (var j = 0; j < candidates.length; j++) {
7757        var obj = candidates[j];
7758        if (!obj) continue;
7759        if (
7760          obj['@type'] === 'Product' ||
7761          (Array.isArray(obj['@type']) && obj['@type'].indexOf('Product') !== -1)
7762        ) {
7763          return obj;
7764        }
7765      }
7766    }
7767    return null;
7768  }
7769
7770  function getProductIdFromDom() {
7771    var el =
7772      document.querySelector('[data-product-id]') ||
7773      document.querySelector('input[name="product_id"]') ||
7774      document.querySelector('[name="product_id"]');
7775
7776    if (!el) return null;
7777
7778    return el.getAttribute('data-product-id') || el.value || null;
7779  }
7780
7781  function getCategoriesFromBreadcrumbs() {
7782    var crumbs = document.querySelectorAll('.breadcrumbs a, nav[aria-label="Breadcrumb"] a');
7783    var cats = [];
7784    for (var i = 0; i < crumbs.length; i++) {
7785      var t = (crumbs[i].textContent || '').trim();
7786      if (!t || /^home$/i.test(t)) continue;
7787      cats.push(t);
7788    }
7789    return Array.from(new Set(cats));
7790  }
7791
7792  function buildItem() {
7793    var p = findProductJsonLd();
7794
7795    var name = p && p.name ? String(p.name) :
7796      (document.querySelector('h1') ? document.querySelector('h1').textContent.trim() : '');
7797
7798    var url = (p && p.url) ? String(p.url) : window.location.href;
7799
7800    var imageUrl = '';
7801    if (p && p.image) {
7802      imageUrl = Array.isArray(p.image) ? String(p.image[0] || '') : String(p.image);
7803    }
7804    if (!imageUrl) {
7805      var ogImg = document.querySelector('meta[property="og:image"]');
7806      imageUrl = ogImg ? ogImg.getAttribute('content') : '';
7807    }
7808
7809    var brand = '';
7810    if (p && p.brand) {
7811      brand = typeof p.brand === 'string'
7812        ? p.brand
7813        : (p.brand.name ? String(p.brand.name) : '');
7814    }
7815
7816    var price = '';
7817    if (p && p.offers) {
7818      var offers = Array.isArray(p.offers) ? p.offers[0] : p.offers;
7819      if (offers && offers.price != null) price = String(offers.price);
7820    }
7821
7822    var productId = getProductIdFromDom();
7823    if (!productId && p && p.sku) productId = String(p.sku);
7824
7825    if (!name || !productId) return null;
7826
7827    return {
7828      Name: name,
7829      ProductID: String(productId),
7830      ImageURL: imageUrl,
7831      URL: url,
7832      Brand: brand,
7833      Categories: getCategoriesFromBreadcrumbs(),
7834      Price: price,
7835      Quantity: 1
7836    };
7837  }
7838
7839  function sendAddedToCartEvent() {
7840    window._learnq = window._learnq || [];
7841    var item = buildItem();
7842    if (!item) return;
7843
7844    window._learnq.push(['track', 'Added to Cart', item]);
7845  }
7846
7847  function init() {
7848    var form = document.querySelector('form[action*="/cart.php"]');
7849    if (!form) return;
7850
7851    form.addEventListener('submit', function (e) {
7852      var actionInput = form.querySelector('input[name="action"]');
7853      if (actionInput && actionInput.value === 'add') {
7854        sendAddedToCartEvent();
7855      }
7856    });
7857
7858    var addBtn =
7859      document.querySelector('#form-action-addToCart') ||
7860      document.querySelector('[data-button-type="add-cart"]') ||
7861      document.querySelector('button[name="add"]') ||
7862      document.querySelector('input[value="Add to Cart"]');
7863
7864    if (addBtn) {
7865      addBtn.addEventListener('click', function () {
7866        sendAddedToCartEvent();
7867      });
7868    }
7869  }
7870
7871  if (document.readyState === 'loading') {
7872    document.addEventListener('DOMContentLoaded', init);
7873  } else {
7874    init();
7875  }
7876})();
7877</script>
7877<script>
7878document.addEventListener("DOMContentLoaded", function () {
7879
7880    const pagesToHideTitle = [
7881        "/dupr-relief/",
7882        "/another-page/"
7883    ];
7884
7885    if (pagesToHideTitle.includes(window.location.pathname)) {
7886        const title =
7887            document.querySelector(".page-heading") ||
7888            document.querySelector(".productView-title") ||
7889            document.querySelector("h1");
7890
7891        if (title) {
7892            title.style.display = "none";
7893        }
7894    }
7895
7896});
7897</script>
7897
7898        <!-- snippet location footer -->
7899    
7899<script>window.__CF$cv$params={r:'a46999ee6e86fa06',t:'MTc5MTM0MTQ1Nw==',u:'01a114457241732d87e19b76787c0caa',ut:'W4su.RwO9AWQXbi5sl11NUGKTVNEeVDoymPVvmx9NW0-1791341457-1.2.1.1-bBd.HjocgCB3PAyuZKbXrPQPvXCrP6CeBWYb_RKrUnvFk0AX83ZQwloHri19gU6EOXVN5_Ze9OtQIlP1nfwQGJmppilKFbr0rcOV.Gx6SP8',i:60};(function(){if(!document.body)return;var s=document.createElement('script');s.src='/cdn-cgi/challenge-platform/scripts/precursor/main.js';document.head.appendChild(s);})();</script>
7899</body>
7900</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.