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 & 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 & 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 & 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 & 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 & 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 & 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 & 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 & 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">×</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 … <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 … <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 … <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 … <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 … <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're Stressed" title="What CBD Actually Does When You'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'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 … <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">×</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">×</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 & 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 & 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 & 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 & 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"> </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>* 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. 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">© 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 & 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 & 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 & 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 & 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 & 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 & 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 & Save and how does it work?</h4>' + 4609 '<p>Subscribe & 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 & 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">🚚</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">🧪</span>' 4797 + ' <span class="twine-callout-text">' 4798 + ' <strong>Lab Tested & 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">⚡</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">✅</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.