PageSourceSearch

https://teamdoctors.com/pages/about-us

html teamdoctors.com collected 2026-10-09 22:16:24 UTC 859,421 bytes, 20,377 lines download raw bytes

1<!doctype html>
2<html class="no-js" lang="en">
3  <head>
4<!-- Start of Booster Apps Seo-0.1--><title>About Us</title><meta name="description" content="" />
4<script type="application/ld+json">
5  {
6    "@context": "https://schema.org",
7    "@type": "WebSite",
8    "name": "Team Doctors",
9    "url": "https://teamdoctors.com",
10    "potentialAction": {
11      "@type": "SearchAction",
12      "query-input": "required name=query",
13      "target": "https://teamdoctors.com/search?q={query}"
14    }
15  }
16</script>
16<!-- end of Booster Apps SEO -->
17
18    <meta charset="utf-8">
19    <meta http-equiv="X-UA-Compatible" content="IE=edge">
20    <meta name="viewport" content="width=device-width,initial-scale=1">
21    <meta name="theme-color" content="">
22    <link rel="canonical" href="https://teamdoctors.com/pages/about-us">
23
24    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
25    
26
27    
27<script src="//teamdoctors.com/cdn/shop/t/40/assets/main.js?v=21054179157073394981776237761" defer="defer" data-defer="true" data-country-list-function="block" data-country-list="" data-country-list-error="<h2>Unfortunately this store isn't available in your country.</h2>" data-animations-type="RfaaO6tc35zLKcDRUCltKqx5sXmgAgKrTClqXyYJb4nkV8I/xi1BjoFOTSDWYyy7mYpaz8tdnUIuo33R4J1YMCHzsxfvRzZwl1pYsCp5+ZuhAvfjIMeuWwVa/Z18t/GmA6L4Wm7s3a5VRGakCsshnlvnWEZ6+yhYLS7h7Kg2oDgY9rhPIOdVKLYbOPSC+DKe0ST+z2XaAEg/X/70GpBodknSyBSv780BkNSlsn53aBN6G01kcGetmqrBwLdIKuSbtvUEVz6c6I9vwn2Ni5mGBYObqP9R5Gu85tetSC3V4z2OWL6Xj1w2hcfcITSk615rP4GL8XEH3aej6YsmyAYMs0Ux/t9IFZPbwreRhb4sjhAhW67LoVTOYXnOPbm6/AXr6RmBPpj6l6/DgaBGR4ednszWnbI03fR+Kvp0cqFcsmNpCMxrl1X3oCjFizIw8yDE"></script>
27
28    
28<script src="//teamdoctors.com/cdn/shop/t/40/assets/secondary.js?v=176493633728047177611776237761" defer="defer" data-defer="true" data-is-rtl="false"></script>
28
29    
30    <link rel="preconnect" href="https://www.gstatic.com" crossorigin>
31    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>
32
33    
34
35    
36
37<meta property="og:site_name" content="Team Doctors">
38<meta property="og:url" content="https://teamdoctors.com/pages/about-us">
39<meta property="og:title" content="About Us">
40<meta property="og:type" content="website">
41<meta property="og:description" content="Team Doctors"><meta property="og:image" content="http://teamdoctors.com/cdn/shop/files/Logo-New_410x_fada13d7-0da7-41d7-9573-fa61547df968.png?v=1597257974">
42  <meta property="og:image:secure_url" content="https://teamdoctors.com/cdn/shop/files/Logo-New_410x_fada13d7-0da7-41d7-9573-fa61547df968.png?v=1597257974">
43  <meta property="og:image:width" content="361">
44  <meta property="og:image:height" content="335"><meta name="twitter:card" content="summary_large_image">
45<meta name="twitter:title" content="About Us">
46<meta name="twitter:description" content="Team Doctors">
47
48    
49    
49<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
49<meta name="facebook-domain-verification" content="142j4qmogdzj1dkjsz3zlabn0hisul">
50<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/29429629027/digital_wallets/dialog">
51<meta id="in-context-paypal-metadata" data-shop-id="29429629027" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
52<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
52<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
52
53<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
54<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=29429629027" crossorigin="anonymous"></script>
vendor: 1 bytes, line 54
54
55<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":29429629027,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/29429629027","merchantName":"Team Doctors","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"Team Doctors","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 55
55
56<script id="shopify-features" type="application/json">{"accessToken":"91c8173e40e98bad2f5dd3b4f84d9d3f","betas":["rich-media-storefront-analytics"],"domain":"teamdoctors.com","predictiveSearch":true,"shopId":29429629027,"locale":"en"}</script>
vendor: 1 bytes, line 56
56
57<script>var Shopify = Shopify || {};
58Shopify.shop = "team-doctors.myshopify.com";
59Shopify.locale = "en";
60Shopify.currency = {"active":"USD","rate":"1.0"};
61Shopify.country = "US";
62Shopify.theme = {"name":"New Theme - April 2026","id":151249617087,"schema_name":"Shrine PRO","schema_version":"1.3.0","theme_store_id":null,"role":"main"};
63Shopify.theme.handle = "null";
64Shopify.theme.style = {"id":null,"handle":null};
65Shopify.cdnHost = "teamdoctors.com/cdn";
66Shopify.routes = Shopify.routes || {};
67Shopify.routes.root = "/";
68Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
69Shopify.SignInWithShop = Shopify.SignInWithShop || {};
70Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
71Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 71
71
72<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 72
72
73<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 73
73
74<script>
75  window.ShopifyPay = window.ShopifyPay || {};
76  window.ShopifyPay.apiHost = "shop.app\/pay";
77  window.ShopifyPay.redirectState = null;
78</script>
vendor: 1 bytes, line 78
78
79<script>
80  window.Shopify = window.Shopify || {};
81  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
82  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
83  window.Shopify.SignInWithShop.eligible = true;
84</script>
vendor: 1 bytes, line 84
84
85<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 85
85
86<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 86
86
87<script type="module">
88  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
89
90  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
91
92</script>
vendor: 1 bytes, line 92
92
93<script>
94  window.Shopify = window.Shopify || {};
95  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
96  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
97</script>
vendor: 1 bytes, line 97
97
98<script>(function() {
99  var isLoaded = false;
100  function asyncLoad() {
101    if (isLoaded) return;
102    isLoaded = true;
103    var urls = ["\/\/code.tidio.co\/6yvsbhuqspjui9j40msodchnsmiq1drq.js?shop=team-doctors.myshopify.com","https:\/\/app-sp.webkul.com\/shopify-gift-onorder\/js\/wk_order_gift.js?shop=team-doctors.myshopify.com","https:\/\/cdn.recovermycart.com\/scripts\/keepcart\/CartJS.min.js?shop=team-doctors.myshopify.com\u0026shop=team-doctors.myshopify.com","https:\/\/trust.conversionbear.com\/script?app=trust_badge\u0026shop=team-doctors.myshopify.com","\/\/cdn.shopify.com\/proxy\/5f8b689599975ed14f23783e9129f74bff8576261edbb8781d9eb12c5a3ece1f\/api.goaffpro.com\/loader.js?shop=team-doctors.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/teamdoctorsusa.com\/a\/ldc\/shopify.js?key=48ed0128d40cee10d6c0f542627a6fd207d05371\u0026shop=team-doctors.myshopify.com"];
104    for (var i = 0; i < urls.length; i++) {
105      var s = document.createElement('script');
106      s.type = 'text/javascript';
107      s.async = true;
108      s.src = urls[i];
109      var x = document.getElementsByTagName('script')[0];
110      x.parentNode.insertBefore(s, x);
111    }
112  };
113  if(window.attachEvent) {
114    window.attachEvent('onload', asyncLoad);
115  } else {
116    window.addEventListener('load', asyncLoad, false);
117  }
118})();</script>
vendor: 1 bytes, line 118
118
119<script id="__st">var __st={"a":29429629027,"offset":-18000,"reqid":"3597a89c-bc01-45a1-8be1-e5ca50c71f86-1791584183","pageurl":"teamdoctors.com\/pages\/about-us","s":"pages-49751621731","u":"97cf80157cb4","p":"page","rtyp":"page","rid":49751621731};</script>
vendor: 1 bytes, line 119
119
120<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 120
120
121<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 121
121
122<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//teamdoctors.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 122
122
123<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//teamdoctors.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
123<script crossorigin="anonymous" defer="defer" src="//teamdoctors.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 123
123
124<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 124
124
125<script>
126  window.Shopify = window.Shopify || {};
127  window.Shopify.MCP = window.Shopify.MCP || {};
128  window.Shopify.MCP.enabled = true;
129  window.Shopify.MCP.shop = "team-doctors.myshopify.com";
130  window.Shopify.MCP.mcpEndpoint = "https:\/\/teamdoctors.com\/api\/mcp";
131  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
132</script>
vendor: 1 bytes, line 132
132
133<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/teamdoctors.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})();
134</script>
vendor: 1 bytes, line 134
134
135<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://teamdoctors.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
136</script>
vendor: 1 bytes, line 136
136
137<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
138  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
139</script>
vendor: 1 bytes, line 139
139
140<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
141</script>
141
142<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://teamdoctors.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
143<style id="shopify-accelerated-checkout-cart">
144        #shopify-buyer-consent {
145  margin-top: 1em;
146  display: inline-block;
147  width: 100%;
148}
149
150#shopify-buyer-consent.hidden {
151  display: none;
152}
153
154#shopify-subscription-policy-button {
155  background: none;
156  border: none;
157  padding: 0;
158  text-decoration: underline;
159  font-size: inherit;
160  cursor: pointer;
161}
162
163#shopify-subscription-policy-button::before {
164  box-shadow: none;
165}
166
167      </style>
168<script id="sections-script" data-sections="header,footer" defer="defer" src="//teamdoctors.com/cdn/shop/t/40/compiled_assets/scripts.js?v=105813173562866673361776237783"></script>
vendor: 1 bytes, line 168
168
169<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
169
170
171
172    <style data-shopify>
173      
174        @font-face {
175  font-family: Poppins;
176  font-weight: 400;
177  font-style: normal;
178  font-display: swap;
179  src: url("//teamdoctors.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"),
180       url("//teamdoctors.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff");
181}
182
183        @font-face {
184  font-family: Poppins;
185  font-weight: 700;
186  font-style: normal;
187  font-display: swap;
188  src: url("//teamdoctors.com/cdn/fonts/poppins/poppins_n7.56758dcf284489feb014a026f3727f2f20a54626.woff2") format("woff2"),
189       url("//teamdoctors.com/cdn/fonts/poppins/poppins_n7.f34f55d9b3d3205d2cd6f64955ff4b36f0cfd8da.woff") format("woff");
190}
191
192        @font-face {
193  font-family: Poppins;
194  font-weight: 400;
195  font-style: italic;
196  font-display: swap;
197  src: url("//teamdoctors.com/cdn/fonts/poppins/poppins_i4.846ad1e22474f856bd6b81ba4585a60799a9f5d2.woff2") format("woff2"),
198       url("//teamdoctors.com/cdn/fonts/poppins/poppins_i4.56b43284e8b52fc64c1fd271f289a39e8477e9ec.woff") format("woff");
199}
200
201        @font-face {
202  font-family: Poppins;
203  font-weight: 700;
204  font-style: italic;
205  font-display: swap;
206  src: url("//teamdoctors.com/cdn/fonts/poppins/poppins_i7.42fd71da11e9d101e1e6c7932199f925f9eea42d.woff2") format("woff2"),
207       url("//teamdoctors.com/cdn/fonts/poppins/poppins_i7.ec8499dbd7616004e21155106d13837fff4cf556.woff") format("woff");
208}
209
210
211        :root {
212          --font-body-family: Poppins, sans-serif;
213          --font-body-style: normal;
214          --font-body-weight: 400;
215          --font-body-weight-bold: 700;
216        }
217      
218      
219      
220        @font-face {
221  font-family: Poppins;
222  font-weight: 700;
223  font-style: normal;
224  font-display: swap;
225  src: url("//teamdoctors.com/cdn/fonts/poppins/poppins_n7.56758dcf284489feb014a026f3727f2f20a54626.woff2") format("woff2"),
226       url("//teamdoctors.com/cdn/fonts/poppins/poppins_n7.f34f55d9b3d3205d2cd6f64955ff4b36f0cfd8da.woff") format("woff");
227}
228
229        :root {
230          --font-heading-family: Poppins, sans-serif;
231          --font-heading-style: normal;
232          --font-heading-weight: 700;
233        }
234      
235
236      :root {
237        --font-body-scale: 1.0;
238        --font-heading-scale: 1.3;
239        --font-heading-line-height: 0.3;
240        --font-heading-letter-spacing: 0.06rem;
241
242        --color-base-text: 18, 18, 18;
243        --color-shadow: 18, 18, 18;
244        --color-base-background-1: 255, 255, 255;
245        --color-base-background-2: 243, 243, 243;
246        --color-base-solid-button-labels: 255, 255, 255;
247        --color-base-outline-button-labels: 0, 17, 49;
248        --color-base-accent-1: 0, 17, 49;
249        --color-base-accent-2: 20, 90, 125;
250        --payment-terms-background-color: #ffffff;
251
252        --gradient-base-background-1: #ffffff;
253        --gradient-base-background-2: #f3f3f3;
254        --gradient-base-accent-1: #001131;
255        --gradient-base-accent-2: linear-gradient(54deg, rgba(47, 146, 207, 1) 14%, rgba(0, 17, 49, 1) 85%);
256
257        --media-padding: px;
258        --media-border-opacity: 0.1;
259        --media-border-width: 0px;
260        --media-radius: 12px;
261        --media-shadow-opacity: 0.0;
262        --media-shadow-horizontal-offset: 0px;
263        --media-shadow-vertical-offset: 0px;
264        --media-shadow-blur-radius: 20px;
265        --media-shadow-visible: 0;
266
267        --page-width: 160rem;
268        --page-width-margin: 0rem;
269
270        --product-card-image-padding: 0.0rem;
271        --product-card-corner-radius: 1.2rem;
272        --product-card-text-alignment: center;
273        --product-card-border-width: 0.0rem;
274        --product-card-border-opacity: 0.1;
275        --product-card-shadow-opacity: 0.1;
276        --product-card-shadow-visible: 1;
277        --product-card-shadow-horizontal-offset: 0.2rem;
278        --product-card-shadow-vertical-offset: 0.6rem;
279        --product-card-shadow-blur-radius: 1.5rem;
280
281        --collection-card-image-padding: 0.0rem;
282        --collection-card-corner-radius: 1.2rem;
283        --collection-card-text-alignment: center;
284        --collection-card-border-width: 0.0rem;
285        --collection-card-border-opacity: 0.1;
286        --collection-card-shadow-opacity: 0.05;
287        --collection-card-shadow-visible: 1;
288        --collection-card-shadow-horizontal-offset: 0.2rem;
289        --collection-card-shadow-vertical-offset: 0.6rem;
290        --collection-card-shadow-blur-radius: 1.5rem;
291
292        --blog-card-image-padding: 0.0rem;
293        --blog-card-corner-radius: 1.2rem;
294        --blog-card-text-alignment: center;
295        --blog-card-border-width: 0.0rem;
296        --blog-card-border-opacity: 0.1;
297        --blog-card-shadow-opacity: 0.05;
298        --blog-card-shadow-visible: 1;
299        --blog-card-shadow-horizontal-offset: 1.0rem;
300        --blog-card-shadow-vertical-offset: 1.0rem;
301        --blog-card-shadow-blur-radius: 3.5rem;
302
303        --badge-corner-radius: 0.6rem;
304        
305        --slider-arrow-size: 3.0rem;
306        --slider-arrow-border-radius: 50.0%;
307        --slider-arrow-icon-size: 0.6em;
308        --pagination-dot-width: 6px;
309        --pagination-dot-height: 6px;
310        --pagination-dot-active-scale: 1.5;
311        --pagination-dot-spacing: 12px;
312        --pagination-dot-radius: 5px;
313
314        --popup-border-width: 1px;
315        --popup-border-opacity: 0.1;
316        --popup-corner-radius: 14px;
317        --popup-shadow-opacity: 0.1;
318        --popup-shadow-horizontal-offset: 10px;
319        --popup-shadow-vertical-offset: 12px;
320        --popup-shadow-blur-radius: 20px;
321
322        --drawer-border-width: 1px;
323        --drawer-border-opacity: 0.1;
324        --drawer-shadow-opacity: 0.0;
325        --drawer-shadow-horizontal-offset: 0px;
326        --drawer-shadow-vertical-offset: 4px;
327        --drawer-shadow-blur-radius: 5px;
328
329        --spacing-sections-desktop: 0px;
330        --spacing-sections-mobile: 0px;
331
332        --grid-desktop-vertical-spacing: 40px;
333        --grid-desktop-horizontal-spacing: 40px;
334        --grid-mobile-vertical-spacing: 20px;
335        --grid-mobile-horizontal-spacing: 20px;
336
337        --text-boxes-border-opacity: 0.1;
338        --text-boxes-border-width: 0px;
339        --text-boxes-radius: 24px;
340        --text-boxes-shadow-opacity: 0.0;
341        --text-boxes-shadow-visible: 0;
342        --text-boxes-shadow-horizontal-offset: 10px;
343        --text-boxes-shadow-vertical-offset: 12px;
344        --text-boxes-shadow-blur-radius: 20px;
345
346        --buttons-radius: 6px;
347        --buttons-radius-outset: 8px;
348        --buttons-border-width: 2px;
349        --buttons-border-opacity: 1.0;
350        --buttons-shadow-opacity: 0.0;
351        --buttons-shadow-visible: 0;
352        --buttons-shadow-horizontal-offset: 0px;
353        --buttons-shadow-vertical-offset: 4px;
354        --buttons-shadow-blur-radius: 5px;
355        --buttons-border-offset: 0.3px;
356
357        --swatches-radius: 50.0%;
358        --swatches-border-opacity: 0.0;
359        --swatches-selected-border-opacity: 0.5;
360
361        --pickers-overlay-opacity: 0.08;
362        --pickers-radius: 8px;
363        --pickers-small-radius: 3.2px;
364        --pickers-border-width: 1px;
365        --pickers-border-color: var(--color-base-accent-1);
366        --pickers-border-opacity: 0.2;
367        --pickers-shadow-opacity: 0.0;
368        --pickers-shadow-horizontal-offset: 0px;
369        --pickers-margin-offset: 0px;
370        --pickers-shadow-vertical-offset: 0px;
371        --pickers-shadow-blur-radius: 0px;
372        --pickers-radius-outset: 9px;
373        --pickers-hover-overlay-opacity: 0.1;
374        --pickers-hover-border-opacity: 0.55;
375
376        --quantity-overlay-opacity: 0.06;
377        --quantity-radius: 8px;
378        --quantity-small-radius: 3.2px;
379        --quantity-border-width: 1px;
380        --quantity-border-color: var(--color-base-accent-1);
381        --quantity-border-opacity: 0.2;
382        --quantity-shadow-opacity: 0.0;
383        --quantity-shadow-horizontal-offset: 0px;
384        --quantity-margin-offset: 0px;
385        --quantity-shadow-vertical-offset: 0px;
386        --quantity-shadow-blur-radius: 0px;
387        --quantity-radius-outset: 9px;
388        --quantity-hover-overlay-opacity: 0.06;
389        --quantity-hover-border-opacity: 0.15;
390
391        --inputs-radius: 6px;
392        --inputs-border-width: 1px;
393        --inputs-border-opacity: 0.6;
394        --inputs-shadow-opacity: 0.0;
395        --inputs-shadow-horizontal-offset: 0px;
396        --inputs-margin-offset: 0px;
397        --inputs-shadow-vertical-offset: 4px;
398        --inputs-shadow-blur-radius: 5px;
399        --inputs-radius-outset: 7px;
400        --inputs-hover-border-opacity: 1;
401        
402        --variant-pills-inactive-overlay-opacity: 0.0;
403        --variant-pills-text-size: 1.4rem;
404        --variant-pills-padding-y: 1.0rem;
405        --variant-pills-padding-x: 2.0rem;
406        --variant-pills-radius: 40px;
407        --variant-pills-border-width: 1px;
408        --variant-pills-border-opacity: 0.55;
409        --variant-pills-shadow-opacity: 0.0;
410        --variant-pills-shadow-horizontal-offset: 0px;
411        --variant-pills-shadow-vertical-offset: 4px;
412        --variant-pills-shadow-blur-radius: 5px;
413      }
414
415      *,
416      *::before,
417      *::after {
418        box-sizing: inherit;
419      }
420
421      html {
422        box-sizing: border-box;
423        font-size: calc(var(--font-body-scale) * 62.5%);
424        height: 100%;
425      }
426
427      body {
428        display: grid;
429        grid-template-rows: auto auto 1fr auto;grid-template-rows: auto auto auto 1fr auto;grid-template-columns: 100%;
430        min-height: 100%;
431        margin: 0;
432        overflow-x: hidden;
433        font-size: 1.5rem;
434        letter-spacing: 0.06em;
435        line-height: calc(1 + 0.8 / var(--font-body-scale));
436        font-family: var(--font-body-family);
437        font-style: var(--font-body-style);
438        font-weight: var(--font-body-weight);
439        
440      }
441
442      
443        .animate-section {
444          --animation-duration: 650ms;
445          --init-delay: 150ms;
446          --child-delay: 150ms;
447        }
448        .animate-section.animate--hidden .animate-item {
449          opacity: 0;
450          filter: blur(1px);
451          transform: translate(0%, 0%) scale(100%);
452        }
453        .animate-section.animate--shown .animate-item {
454          opacity: 1;
455          filter: blur(0);
456          transform: none;
457          transition: opacity var(--animation-duration) var(--init-delay),
458            filter var(--animation-duration) var(--init-delay),transform var(--animation-duration) var(--init-delay);
459        }
460        .animate-section.animate--shown .animate-item.animate-item--child {
461          transition-delay: calc(
462            var(--init-delay) + (var(--child-delay) * var(--index))
463          );
464        }
465      
466
467      @media screen and (min-width: 750px) {
468        body {
469          font-size: 1.6rem;
470        }
471      }
472
473      /* fallback */
474      @font-face {
475        font-family: 'Material Symbols Outlined';
476        src: url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v141/kJF4BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzBwG-RpA6RzaxHMPdY40KH8nGzv3fzfVJU22ZZLsYEpzC_1qmr5Y0.woff2) format('woff2');
477        font-style: normal;
478        font-weight: 300;
479        font-display: block;
480      }
481
482      .material-symbols-outlined {
483        font-family: 'Material Symbols Outlined';
484        font-weight: normal;
485        font-style: normal;
486        font-size: 24px;
487        line-height: 1;
488        letter-spacing: normal;
489        text-transform: none;
490        display: inline-block;
491        white-space: nowrap;
492        word-wrap: normal;
493        direction: ltr;
494        -webkit-font-feature-settings: 'liga';
495        -webkit-font-smoothing: antialiased;
496        max-width: 1em;
497        overflow: hidden;
498        flex-shrink: 0;
499        font-variation-settings:
500        'FILL' 0,
501        'wght' 300,
502        'GRAD' 0,
503        'opsz' 48;
504        vertical-align: bottom;
505      }
506      .material-symbols-outlined.filled {
507        font-variation-settings:
508        'FILL' 1
509      }
510      
511    </style>
512
513    <noscript>
514      <style>
515        .animate-section.animate--hidden .animate-item {
516          opacity: 1;
517          filter: blur(0);
518          transform: none;
519        }
520      </style>
521    </noscript>
522
523    <link href="//teamdoctors.com/cdn/shop/t/40/assets/base.css?v=137280531906220013711782782749" rel="stylesheet" type="text/css" media="all" />
524    
525
526      <link rel="preload" as="font" href="//teamdoctors.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin>
527      
528
529      <link rel="preload" as="font" href="//teamdoctors.com/cdn/fonts/poppins/poppins_n7.56758dcf284489feb014a026f3727f2f20a54626.woff2" type="font/woff2" crossorigin>
530      
531<link
532        rel="stylesheet"
533        href="//teamdoctors.com/cdn/shop/t/40/assets/component-predictive-search.css?v=76514217051199997821776237761"
534        media="print"
535        onload="this.media='all'"
536      >
536<script>
537      document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
538      if (Shopify.designMode) {
539        document.documentElement.classList.add('shopify-design-mode');
540      }
541    </script>
541
542  
542<script src="https://cdn.shopify.com/extensions/c1eb4680-ad4e-49c3-898d-493ebb06e626/affirm-pay-over-time-messaging-9/assets/affirm-cart-drawer-embed-handler.js" type="text/javascript" defer="defer"></script>
542
543<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
544<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 29429629027,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 544
544
545<script>
546  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
547</script>
vendor: 1 bytes, line 547
547
548<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
548).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 29429629027,storefrontBaseUrl: "https://teamdoctors.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://teamdoctors.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2308309183","configuration":"{\"publicKey\":\"48ed0128d40cee10d6c0f542627a6fd207d05371\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"acde9d0a95393596ea6382e22c68ec37","type":"APP","apiClientId":158835,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2279702719","configuration":"{\"mailchimp_store_id\":\"store_pzazo2nlbxy4foz3rlgr\", \"mailchimp_user_id\":\"18857947\",\"mailchimp_list_id\":\"d36e765f97\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2002845887","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
548,"dataSharingState":"unrestricted"},{"id":"1849852095","configuration":"{\"pixel_id\":\"1787360351945078\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"978583743","configuration":"{\"shop\":\"team-doctors.myshopify.com\",\"cookie_duration\":\"604800\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a2e7513c3708f34b1f617d7ce88f9697","type":"APP","apiClientId":2744533,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Team Doctors","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"team-doctors.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/teamdoctors.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8455539065023","handle":"complete-recovery-solution-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45703649165503","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7253705130175","handle":"vibeassage-pro","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41663358501055","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8342973219007","handle":"vibeassage-complete-system","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45464249041087","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8342972334271","handle":"vibeassage-relief-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45451957272767","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8342972760255","handle":"vibeassage-performance-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45464251433151","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8342966534335","handle":"vibeassage-core-system","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45464258838719","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8394187342015","handle":"biomemetic-applicator-pads-full-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45467248230591","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8433935974591","handle":"relief-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45638352502975","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8433936007359","handle":"performance-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45638352535743","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8358127599807","handle":"biomimetic-comfort-relief-pad","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45310135271615","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8358145917119","handle":"biomimetic-core-recovery-pad","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"453101
54855423935","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8358149750975","handle":"biomimetic-peak-performance-pad","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45310160863423","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8402094031039","handle":"vibeassage®-relief-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45495352852671","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7475904184511","handle":"vibeassage-pro-replacement-cables","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42314400661695","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://teamdoctors.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"151249617087","themePublished":"true","eventMetadataId":"2be38574-eda8-40e7-9c03-181b71446dab","pageType":"page","resourceId":"49751621731","shopId":"29429629027","storefrontBaseUrl":"https:\/\/teamdoctors.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
548<script>
549  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
550  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
551  window.ShopifyAnalytics.meta.currency = 'USD';
552  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":49751621731,"requestId":"3597a89c-bc01-45a1-8be1-e5ca50c71f86-1791584183"}};
553  for (var attr in meta) {
554    window.ShopifyAnalytics.meta[attr] = meta[attr];
555  }
556</script>
vendor: 1 bytes, line 556
556
557<script class="analytics">
558  (function () {
559    var customDocumentWrite = function(content) {
560      var jquery = null;
561
562      if (window.jQuery) {
563        jquery = window.jQuery;
564      } else if (window.Checkout && window.Checkout.$) {
565        jquery = window.Checkout.$;
566      }
567
568      if (jquery) {
569        jquery('body').append(content);
570      }
571    };
572
573    var hasLoggedConversion = function(token) {
574      if (token) {
575        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
576      }
577      return false;
578    }
579
580    var setCookieIfConversion = function(token) {
581      if (token) {
582        var twoMonthsFromNow = new Date(Date.now());
583        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
584
585        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
586      }
587    }
588
589    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
590    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
591    if (trekkie.integrations) {
592      return;
593    }
594    trekkie.methods = [
595      'identify',
596      'page',
597      'ready',
598      'track',
599      'trackForm',
600      'trackLink'
601    ];
602    trekkie.factory = function(method) {
603      return function() {
604        var args = Array.prototype.slice.call(arguments);
605        args.unshift(method);
606        trekkie.push(args);
607        if (method == 'track' || method == 'page') {
608          var pageUrl;
609          try {
610            pageUrl = window.location.href;
611          } catch (e) {}
612          var pageReferrer;
613          try {
614            pageReferrer = document.referrer;
615          } catch (e) {}
616          try {
617            if (window.__TREKKIE_SHIM_QUEUE == null) {
618              window.__TREKKIE_SHIM_QUEUE = [];
619            }
620            window.__TREKKIE_SHIM_QUEUE.push({
621              from: 'trekkie-stub',
622              method: method,
623              args: args.slice(1),
624              pageContext: {
625                url: pageUrl,
626                referrer: pageReferrer
627              }
628            });
629          } catch (e) {
630            // no-op
631          }
632        }
633        return trekkie;
634      };
635    };
636    for (var i = 0; i < trekkie.methods.length; i++) {
637      var key = trekkie.methods[i];
638      trekkie[key] = trekkie.factory(key);
639    }
640    trekkie.load = function(config) {
641      trekkie.config = config || {};
642      trekkie.config.initialDocumentCookie = document.cookie;
643      var first = document.getElementsByTagName('script')[0];
644var script = document.createElement('script');
645script.type = 'text/javascript';
646script.onerror = function(e) {
647  var scriptFallback = document.createElement('script');
648  scriptFallback.type = 'text/javascript';
649  scriptFallback.onerror = function(error) {
650          var Monorail = {
651      produce: function produce(monorailDomain, schemaId, payload) {
652        var currentMs = new Date().getTime();
653        var event = {
654          schema_id: schemaId,
655          payload: payload,
656          metadata: {
657            event_created_at_ms: currentMs,
658            event_sent_at_ms: currentMs
659          }
660        };
661        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
662      },
663      sendRequest: function sendRequest(endpointUrl, payload) {
664        // Try the sendBeacon API
665        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
666          var blobData = new window.Blob([payload], {
667            type: 'text/plain'
668          });
669
670          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
671            return true;
672          } // sendBeacon was not successful
673
674        } // XHR beacon
675
676        var xhr = new XMLHttpRequest();
677
678        try {
679          xhr.open('POST', endpointUrl);
680          xhr.setRequestHeader('Content-Type', 'text/plain');
681          xhr.send(payload);
682        } catch (e) {
683          console.log(e);
684        }
685
686        return false;
687      },
688      isIos12: function isIos12() {
689        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
690      }
691    };
692    Monorail.produce('monorail-edge.shopifysvc.com',
693      'trekkie_storefront_load_errors/1.1',
694      {shop_id: 29429629027,
695      theme_id: 151249617087,
696      app_name: "storefront",
697      context_url: window.location.href,
698      source_url: "//teamdoctors.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
699
700  };
701  scriptFallback.async = true;
702  scriptFallback.src = '//teamdoctors.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
703  first.parentNode.insertBefore(scriptFallback, first);
704};
705script.async = true;
706script.src = '//teamdoctors.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
707first.parentNode.insertBefore(script, first);
708
709    };
710    trekkie.load(
711      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":29429629027,"isMerchantRequest":null,"themeId":151249617087,"themeCityHash":"412120198059539800","contentLanguage":"en","currency":"USD","eventMetadataId":"2be38574-eda8-40e7-9c03-181b71446dab"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
712    );
713
714    var loaded = false;
715    trekkie.ready(function() {
716      if (loaded) return;
717      loaded = true;
718
719      window.ShopifyAnalytics.lib = window.trekkie;
720
721      var originalDocumentWrite = document.write;
722      document.write = customDocumentWrite;
723      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
724      document.write = originalDocumentWrite;
725
726      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
727      var token = match? match[1]: undefined;
728      if (!hasLoggedConversion(token)) {
729        setCookieIfConversion(token);
730        
731      }
732    });
733
734    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":49751621731,"requestId":"3597a89c-bc01-45a1-8be1-e5ca50c71f86-1791584183","shopifyEmitted":true});
735
736    var eventsListenerScript = document.createElement('script');
737    eventsListenerScript.async = true;
738    eventsListenerScript.src = "//teamdoctors.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
739    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
740})();</script>
vendor: 1 bytes, line 740
740
741<script
742  defer
743  src="https://teamdoctors.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js"
744  data-application="storefront-renderer"
745  data-shop-id="29429629027"
746  data-render-region="gcp-us-central1"
747  data-page-type="page"
748  data-theme-instance-id="151249617087"
749  data-theme-name="Shrine PRO"
750  data-theme-version="1.3.0"
751  data-monorail-region="shop_domain"
752  data-resource-timing-sampling-rate="10"
753  data-shs="true"
754  data-shs-beacon="true"
755  data-shs-export-with-fetch="true"
756  data-shs-logs-sample-rate="1"
757  data-shs-beacon-endpoint="https://teamdoctors.com/api/collect"
758></script>
758
759<meta name="shopify-y" content="dff0f91a-5621-40d2-810f-eddd3f24775e" data-expiration="1823141783000"><meta name="shopify-s" content="4aa1ca26-b881-436c-a3a8-091d66df67d5" data-expiration="1791585983000">
760</head>
761
762  <body class="gradient link-btns--arrow action-btns--center">
763    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
764      Skip to content
765    </a>
766
767    <!-- BEGIN sections: header-group -->
768<div id="shopify-section-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0" class="shopify-section shopify-section-group-header-group announcement-bar-section"><style data-shopify>.section-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0-padding {
769    padding-top: 12px;
770    padding-bottom: 12px;
771  }
772
773  @media screen and (min-width: 750px) {
774    .section-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0-padding {
775      padding-top: 16px;
776      padding-bottom: 16px;
777    }
778  }
779
780  .announcement-bar-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0.color-custom {
781    --color-background: 221, 29, 29;
782    --gradient-background: #dd1d1d;
783    --color-foreground: 255, 255, 255;
784  }</style>
785
786
787  <div
788    class="announcement-bar announcement-bar-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0 section-sections--20359605911743__fe1c8c67-b84c-4466-a515-70df3134c1c0-padding color-accent-1 gradient"
789    role="region"
790    style="--columns-desktop: 1;--columns-mobile: 1;--gap-desktop:2.8rem;--gap-mobile:1.6rem;"
791  >
792    <div class="page-width">
793      
794        <splide-component
795          data-type='loop'
796          data-autoplay='false'
797          data-autoplay-speed='3'
798          data-slides-desktop="1"
799          data-slides-mobile="1"
800          data-gap-desktop='28'
801          data-gap-mobile='16'
802          data-arrows='false'
803          data-pagination='false'
804          
805            data-destroy-desktop="true"
806          
807        >
808      
809        <div class='splide splide--vertically-centered splide--precalc-width-mobile'>
810          <div class="splide__track">
811            <ul 
812              class="splide__list announcement-bar__desktop-grid"
813              data-columns-desktop="1"
814              data-columns-mobile="1"
815            >
816                
817                  <li class="splide__slide">
818                    <div class="splide__slide__container">
819                      <div
820                        class="announcement-bar__item announcement-bar__item-center"
821                        style="
822                          --mobile-text-size: 1.4rem;
823                          --desktop-text-size: 1.5rem;
824                          --mobile-icon-size: 2.0rem;
825                          --desktop-icon-size: 2.6rem;
826                        "
827                        
828                      >
829<p class="announcement-bar__message announcement-bar__message--mobile-horizontal announcement-bar__message--desktop-horizontal">
830                                
831                                  <span class="material-icon material-symbols-outlined">
832  storefront
833</span>
834                                
835                                <span>Welcome to our store</span>
836                              </p></div>
837                    </div>
838                  </li>
839                
840</ul>
841          </div>
842        </div>
843      
844        </splide-component>
845      
846    </div>
847  </div>
848
849
850<script>
851  function copyCode(e) {
852    const btn = e.currentTarget;
853    navigator.clipboard.writeText(btn.dataset.code.trim());
854    btn.classList.add('success');
855    setTimeout(() => {
856      btn.classList.remove('success')
857    }, 2000)
858  }
859</script>
859
860
861
862</div><div id="shopify-section-sections--20359605911743__header" class="shopify-section shopify-section-group-header-group section-header"><style>
863  header-drawer {
864    justify-self: start;
865    margin-left: -1.2rem;
866  }
867
868  .header__heading-link.media {
869    --media-radius: 0;
870    width: 200px;
871    max-width: 200px;
872  }
873  
874  .header__heading-link.media img {
875    object-fit: contain;
876  }
877
878  .header__heading-link.media .header__heading-logo--secondary {
879    display: none;
880  }
881  
882  @media screen and (max-width: 749px) {
883    .header__heading-link.media {
884      width: 130px;
885      max-width: 130px;
886    }
887  }
888
889  
890
891    @media screen and (min-width: 990px) {
892      header-drawer {
893        display: none;
894      }
895    }
896  
897
898  .menu-drawer-container {
899    display: flex;
900  }
901
902  .list-menu {
903    list-style: none;
904    padding: 0;
905    margin: 0;
906  }
907
908  .list-menu--inline {
909    display: inline-flex;
910    flex-wrap: wrap;
911  }
912
913  summary.list-menu__item {
914    padding-right: 2.7rem;
915  }
916
917  .list-menu__item {
918    display: flex;
919    align-items: center;
920    line-height: calc(1 + 0.3 / var(--font-body-scale));
921  }
922
923  .list-menu__item--link {
924    text-decoration: none;
925    padding-bottom: 1rem;
926    padding-top: 1rem;
927    line-height: calc(1 + 0.8 / var(--font-body-scale));
928  }
929
930  @media screen and (min-width: 750px) {
931    .list-menu__item--link {
932      padding-bottom: 0.5rem;
933      padding-top: 0.5rem;
934    }
935  }
936</style><style data-shopify>.header {
937    padding-top: 10px;
938    padding-bottom: 16px;
939  }
940
941  .section-header {
942    position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */
943    margin-bottom: 0px;
944  }
945
946  @media screen and (min-width: 750px) {
947    .section-header {
948      margin-bottom: 0px;
949    }
950  }
951
952  @media screen and (min-width: 990px) {
953    .header {
954      padding-top: 20px;
955      padding-bottom: 32px;
956    }
957  }</style>
958
959<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
960  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
961    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
962  </symbol>
963
964  <symbol id="icon-reset" class="icon icon-close"  fill="none" viewBox="0 0 18 18" stroke="currentColor">
965    <circle r="8.5" cy="9" cx="9" stroke-opacity="0.2"/>
966    <path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/>
967    <path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/>
968  </symbol>
969
970  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
971    <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
972  </symbol>
973</svg>
974<sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-background-1 gradient header-wrapper--border-bottom">
975  <header class="header header--middle-center header--mobile-center page-width header--has-menu"><header-drawer data-breakpoint="tablet" data-desktop-type="dropdown" data-drawer="RfaaO6tc35zLKcDRUCltKqx5sXmgAgKrTClqXyYJb4nkV8I/xi1BjoFOTSDWYyy7mYpaz8tdnUIuo33R4J1YMCHzsxfvRzZwl1pYsCp5+ZuhAvfjIMeuWwVa/Z18t/GmA6L4Wm7s3a5VRGakCsshnlvnWEZ6+yhYLS7h7Kg2oDgY9rhPIOdVKLYbOPSC+DKe0ST+z2XaAEg/X/70GpBodknSyBSv780BkNSlsn53aBN6G01kcGetmqrBwLdIKuSbtvUEVz6c6I9vwn2Ni5mGBYObqP9R5Gu85tetSC3V4z2OWL6Xj1w2hcfcITSk615rP4GL8XEH3aej6YsmyAYMs0Ux/t9IFZPbwreRhb4sjhAhW67LoVTOYXnOPbm6/AXr6RmBPpj6l6/DgaBGR4ednszWnbI03fR+Kvp0cqFcsmNpCMxrl1X3oCjFizIw8yDE">
976  <details id="Details-menu-drawer-container" class="menu-drawer-container">
977    <summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu">
978      <span>
979        <svg
980  xmlns="http://www.w3.org/2000/svg"
981  aria-hidden="true"
982  focusable="false"
983  class="icon icon-hamburger"
984  fill="none"
985  viewBox="0 0 18 16"
986>
987  <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor">
988</svg>
989
990        <svg
991  xmlns="http://www.w3.org/2000/svg"
992  aria-hidden="true"
993  focusable="false"
994  class="icon icon-close"
995  fill="none"
996  viewBox="0 0 18 17"
997>
998  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
999</svg>
1000
1001      </span>
1002    </summary>
1003    <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-background-1" tabindex="-1">
1004      <div class="menu-drawer__inner-container">
1005        <div class='menu-drawer__mobile-content menu-drawer__title-and-close-btn'>
1006          <h3 class='menu-drawer__title'>Menu</h3>
1007          <button class='menu-drawer__close-btn menu-drawer__close-menu-btn header__icon header__icon--menu header__icon--summary link focus-inset'>
1008            <svg
1009  xmlns="http://www.w3.org/2000/svg"
1010  aria-hidden="true"
1011  focusable="false"
1012  class="icon icon-close"
1013  fill="none"
1014  viewBox="0 0 18 17"
1015>
1016  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
1017</svg>
1018
1019          </button>
1020        </div>
1021        <div class="menu-drawer__navigation-container">
1022          <nav class="menu-drawer__navigation">
1023            <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><a href="/" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1024                      Home
1025                    </a></li><li>
1025<details id="Details-menu-drawer-menu-item-2">
1026                      <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
1027                        Shop
1028                        <svg
1029  viewBox="0 0 14 10"
1030  fill="none"
1031  aria-hidden="true"
1032  focusable="false"
1033  class="icon icon-arrow"
1034  xmlns="http://www.w3.org/2000/svg"
1035>
1036  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1037</svg>
1038
1039                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
1040  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1041</svg>
1042
1043                      </summary>
1044                      <div id="link-shop" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
1045                        <div class="menu-drawer__inner-submenu">
1046                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1047                            <svg
1048  viewBox="0 0 14 10"
1049  fill="none"
1050  aria-hidden="true"
1051  focusable="false"
1052  class="icon icon-arrow"
1053  xmlns="http://www.w3.org/2000/svg"
1054>
1055  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1056</svg>
1057
1058                            Shop
1059                          </button>
1060                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><details id="Details-menu-drawer-submenu-1">
1061                                    <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
1062                                      
1063                                      Doctor Recommended
1064                                      <svg
1065  viewBox="0 0 14 10"
1066  fill="none"
1067  aria-hidden="true"
1068  focusable="false"
1069  class="icon icon-arrow"
1070  xmlns="http://www.w3.org/2000/svg"
1071>
1072  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1073</svg>
1074
1075                                      <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
1076  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
1077</svg>
1078
1079                                    </summary>
1080                                    <div id="childlink-doctor-recommended" class="menu-drawer__submenu has-submenu gradient motion-reduce">
1081                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
1082                                        <svg
1083  viewBox="0 0 14 10"
1084  fill="none"
1085  aria-hidden="true"
1086  focusable="false"
1087  class="icon icon-arrow"
1088  xmlns="http://www.w3.org/2000/svg"
1089>
1090  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
1091</svg>
1092
1093                                        Doctor Recommended
1094                                      </button>
1095                                      
1096                                        <ul class="products-mega-menu__cards products-mega-menu__cards--mobile">
1097                                          
1098                                            
1099                                            
1100                                            
1101                                              <li>
1102                                                
1103<div class="card-wrapper product-card-wrapper underline-links-hover">
1104    <div
1105      class="
1106        card
1107        card--card
1108         card--media
1109         color-background-1 gradient
1110        
1111        
1112        
1113         card--badge-sided
1114        
1115        
1116      "
1117      style="--ratio-percent: 100%;"
1118    >
1119      <div
1120        class="card__inner  ratio"
1121        style="--ratio-percent: 100%;"
1122      ><div class="card__media">
1123            <div class="media media--transparent media--hover-effect">
1124              
1125              <img
1126                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523 1254w
1127                "
1128                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533"
1129                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1130                alt="Complete Recovery Solution Bundle - Team Doctors"
1131                class="motion-reduce"
1132                
1133                  loading="lazy"
1134                
1135                width="1254"
1136                height="1254"
1137                id='quick-add-8455539065023-image'
1138              >
1139              
1140<img
1141                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014 w
1142                  "
1143                  src="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014&width=533"
1144                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1145                  alt=""
1146                  class="motion-reduce"
1147                  loading="lazy"
1148                  width=""
1149                  height=""
1150                ></div>
1151          </div><div class="card__content">
1152          <div class="card__information">
1153            <h3
1154              class="card__heading"
1155              
1156            >
1157              <a
1158                href="/products/complete-recovery-solution-bundle"
1159                id="StandardCardNoMediaLink--8455539065023"
1160                class="full-unstyled-link"
1161                aria-labelledby="StandardCardNoMediaLink--8455539065023 NoMediaStandardBadge--8455539065023"
1162              >
1163                Complete Biomimetic Recovery System™
1164              </a>
1165            </h3>
1166          </div>
1167          <div class="card__badge bottom left">
1168              
1169              
1170                <span
1171                  id="NoMediaStandardBadge--8455539065023"
1172                  class="badge badge--bottom-left color-accent-2"
1173                >
1174                  <svg
1175  aria-hidden="true"
1176  focusable="false"
1177  class="icon icon-discount color-foreground-text"
1178  viewBox="0 0 12 12"
1179>
1180  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
1181</svg>
1182<span class='nowrap'>SAVE 10%</span>
1183                </span></div>
1184        </div>
1185      </div>
1186      <div class="card__content">
1187        <div class="card__information">
1188          <h3
1189            class="card__heading h5"
1190            
1191              id="title--8455539065023"
1192            
1193          >
1194            <a
1195              href="/products/complete-recovery-solution-bundle"
1196              id="CardLink--8455539065023"
1197              class="full-unstyled-link"
1198              aria-labelledby="CardLink--8455539065023 Badge--8455539065023"
1199            >
1200              Complete Biomimetic Recovery System™
1201            </a>
1202          </h3>
1203          
1204            <div class="product-subtitle">
1205              The Vibeassage Pro® + The Vibeassage Sport®
1206            </div>
1207          
1208          <div class="card-information"><span class="caption-large light"></span>
1209<div
1210  class="
1211    price  price--on-sale "
1212>
1213  <div class="price__container"><div class="price__regular">
1214      <span class="visually-hidden visually-hidden--inline">Regular price</span>
1215      <span class="price-item price-item--regular">
1216        $1,807.00
1217      </span>
1218    </div>
1219    <div class="price__sale ">
1220      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
1221      <span class="price-item price-item--sale price-item--last">
1222        $1,807.00
1223      </span>
1224        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
1225        <span class="price__compare-price">
1226          <s class="price-item price-item--regular">
1227            $2,008.00
1228          </s>
1229        </span></div>
1230    <small class="unit-price caption hidden">
1231      <span class="visually-hidden">Unit price</span>
1232      <span class="price-item price-item--last">
1233        <span></span>
1234        <span aria-hidden="true">/</span>
1235        <span class="visually-hidden">&nbsp;per&nbsp;</span>
1236        <span>
1237        </span>
1238      </span>
1239    </small>
1240  </div></div>
1241
1242          </div>
1243        </div>
1244        
1245<div class="card__badge bottom left"><span
1246              id="Badge--8455539065023"
1247              class="badge badge--bottom-left color-accent-2"
1248            >
1249              10%
1250            </span></div>
1251      </div>
1252    </div>
1253  </div>
1253<script>
1254  (() => {
1255    if (window.cardProductQuickAddVariantFixLoaded) return;
1256    window.cardProductQuickAddVariantFixLoaded = true;
1257
1258    const ADD_TO_CART_TEXT = "Add to cart";
1259    const SOLD_OUT_TEXT = "Sold out";
1260
1261    function parseVariants(container) {
1262      if (!container) return [];
1263
1264      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
1265
1266      for (const script of scripts) {
1267        try {
1268          const data = JSON.parse(script.textContent.trim());
1269
1270          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
1271            return data;
1272          }
1273
1274          if (data && Array.isArray(data.variants)) {
1275            return data.variants;
1276          }
1277        } catch (error) {}
1278      }
1279
1280      return [];
1281    }
1282
1283    function getSelectedOptionValues(container) {
1284      const values = [];
1285
1286      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
1287        const checkedInput = group.querySelector('input[type="radio"]:checked');
1288        const select = group.querySelector('select');
1289
1290        if (checkedInput) {
1291          values.push(checkedInput.value);
1292        } else if (select) {
1293          values.push(select.value);
1294        }
1295      });
1296
1297      return values;
1298    }
1299
1300    function getCurrentVariant(container, form, variants) {
1301      const idInput = form && form.querySelector('[name="id"]');
1302      const selectedId = idInput && idInput.value;
1303
1304      if (selectedId) {
1305        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
1306        if (byId) return byId;
1307      }
1308
1309      const selectedOptions = getSelectedOptionValues(container);
1310
1311      if (selectedOptions.length) {
1312        return variants.find((variant) => {
1313          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
1314          return selectedOptions.every((value, index) => String(options[index]) === String(value));
1315        });
1316      }
1317
1318      return null;
1319    }
1320
1321    function setButtonState(form, variant) {
1322      if (!form) return;
1323
1324      const idInput = form.querySelector('[name="id"]');
1325      const addButton = form.querySelector('[name="add"]');
1326      const buttonLabel =
1327        addButton &&
1328        (addButton.querySelector('.main-atc__label__text') ||
1329          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
1330      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
1331      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
1332
1333      if (!addButton || !idInput || !variant) return;
1334
1335      idInput.value = variant.id;
1336      idInput.disabled = false;
1337
1338      if (spinner) spinner.classList.add('hidden');
1339
1340      if (variant.available) {
1341        addButton.disabled = false;
1342        addButton.removeAttribute('disabled');
1343        addButton.removeAttribute('aria-disabled');
1344        addButton.classList.remove('loading');
1345
1346        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
1347        if (soldOutMessage) soldOutMessage.classList.add('hidden');
1348      } else {
1349        addButton.disabled = true;
1350        addButton.setAttribute('disabled', 'disabled');
1351        addButton.setAttribute('aria-disabled', 'true');
1352
1353        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
1354        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
1355      }
1356    }
1357
1358    function syncContainer(container) {
1359      if (!container) return;
1360
1361      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
1362      if (!form) return;
1363
1364      const variants = parseVariants(container);
1365      if (!variants.length) return;
1366
1367      const variant = getCurrentVariant(container, form, variants);
1368      if (!variant) return;
1369
1370      setButtonState(form, variant);
1371    }
1372
1373    document.addEventListener('change', (event) => {
1374      const quickAddModal = event.target.closest('quick-add-modal');
1375      const cardVariantSelects = event.target.closest('card-variant-selects');
1376
1377      if (quickAddModal) {
1378        setTimeout(() => syncContainer(quickAddModal), 80);
1379        setTimeout(() => syncContainer(quickAddModal), 250);
1380      }
1381
1382      if (cardVariantSelects) {
1383        const card = cardVariantSelects.closest('.card-wrapper');
1384        if (card) {
1385          setTimeout(() => syncContainer(card), 80);
1386          setTimeout(() => syncContainer(card), 250);
1387        }
1388      }
1389    });
1390
1391    const observer = new MutationObserver((mutations) => {
1392      mutations.forEach((mutation) => {
1393        mutation.addedNodes.forEach((node) => {
1394          if (!(node instanceof HTMLElement)) return;
1395
1396          if (node.matches && node.matches('quick-add-modal')) {
1397            setTimeout(() => syncContainer(node), 150);
1398          }
1399
1400          node.querySelectorAll &&
1401            node.querySelectorAll('quick-add-modal').forEach((modal) => {
1402              setTimeout(() => syncContainer(modal), 150);
1403            });
1404        });
1405      });
1406    });
1407
1408    observer.observe(document.documentElement, {
1409      childList: true,
1410      subtree: true
1411    });
1412
1413    document.addEventListener('DOMContentLoaded', () => {
1414      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
1415    });
1416  })();
1417</script>
1417
1418
1419
1420
1421
1422                                              </li>
1423                                            
1424                                              <li>
1425                                                
1426<div class="card-wrapper product-card-wrapper underline-links-hover">
1427    <div
1428      class="
1429        card
1430        card--card
1431         card--media
1432         color-background-1 gradient
1433        
1434        
1435        
1436         card--badge-sided
1437        
1438        
1439      "
1440      style="--ratio-percent: 100%;"
1441    >
1442      <div
1443        class="card__inner  ratio"
1444        style="--ratio-percent: 100%;"
1445      ><div class="card__media">
1446            <div class="media media--transparent media--hover-effect">
1447              
1448              <img
1449                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
1450                "
1451                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
1452                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1453                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
1454                class="motion-reduce"
1455                
1456                  loading="lazy"
1457                
1458                width=""
1459                height=""
1460                id='quick-add-7253705130175-image'
1461              >
1462              
1463<img
1464                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
1465                  "
1466                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
1467                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1468                  alt=""
1469                  class="motion-reduce"
1470                  loading="lazy"
1471                  width="810"
1472                  height="605"
1473                ></div>
1474          </div><div class="card__content">
1475          <div class="card__information">
1476            <h3
1477              class="card__heading"
1478              
1479            >
1480              <a
1481                href="/products/vibeassage-pro"
1482                id="StandardCardNoMediaLink--7253705130175"
1483                class="full-unstyled-link"
1484                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
1485              >
1486                The Vibeassage Pro® with the full 3-pad Biomimetic System™
1487              </a>
1488            </h3>
1489          </div>
1490          <div class="card__badge bottom left">
1491              
1492              
1493                <span
1494                  id="NoMediaStandardBadge--7253705130175"
1495                  class="badge badge--bottom-left color-accent-2"
1496                >
1497                  <svg
1498  aria-hidden="true"
1499  focusable="false"
1500  class="icon icon-discount color-foreground-text"
1501  viewBox="0 0 12 12"
1502>
1503  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
1504</svg>
1505<span class='nowrap'>SAVE 9%</span>
1506                </span></div>
1507        </div>
1508      </div>
1509      <div class="card__content">
1510        <div class="card__information">
1511          <h3
1512            class="card__heading h5"
1513            
1514              id="title--7253705130175"
1515            
1516          >
1517            <a
1518              href="/products/vibeassage-pro"
1519              id="CardLink--7253705130175"
1520              class="full-unstyled-link"
1521              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
1522            >
1523              The Vibeassage Pro® with the full 3-pad Biomimetic System™
1524            </a>
1525          </h3>
1526          
1527          <div class="card-information"><span class="caption-large light"></span>
1528<div
1529  class="
1530    price  price--on-sale "
1531>
1532  <div class="price__container"><div class="price__regular">
1533      <span class="visually-hidden visually-hidden--inline">Regular price</span>
1534      <span class="price-item price-item--regular">
1535        $1,579.00
1536      </span>
1537    </div>
1538    <div class="price__sale ">
1539      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
1540      <span class="price-item price-item--sale price-item--last">
1541        $1,579.00
1542      </span>
1543        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
1544        <span class="price__compare-price">
1545          <s class="price-item price-item--regular">
1546            $1,749.00
1547          </s>
1548        </span></div>
1549    <small class="unit-price caption hidden">
1550      <span class="visually-hidden">Unit price</span>
1551      <span class="price-item price-item--last">
1552        <span></span>
1553        <span aria-hidden="true">/</span>
1554        <span class="visually-hidden">&nbsp;per&nbsp;</span>
1555        <span>
1556        </span>
1557      </span>
1558    </small>
1559  </div></div>
1560
1561          </div>
1562        </div>
1563        
1564<div class="card__badge bottom left"><span
1565              id="Badge--7253705130175"
1566              class="badge badge--bottom-left color-accent-2"
1567            >
1568              9%
1569            </span></div>
1570      </div>
1571    </div>
1572  </div>
1572<script>
1573  (() => {
1574    if (window.cardProductQuickAddVariantFixLoaded) return;
1575    window.cardProductQuickAddVariantFixLoaded = true;
1576
1577    const ADD_TO_CART_TEXT = "Add to cart";
1578    const SOLD_OUT_TEXT = "Sold out";
1579
1580    function parseVariants(container) {
1581      if (!container) return [];
1582
1583      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
1584
1585      for (const script of scripts) {
1586        try {
1587          const data = JSON.parse(script.textContent.trim());
1588
1589          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
1590            return data;
1591          }
1592
1593          if (data && Array.isArray(data.variants)) {
1594            return data.variants;
1595          }
1596        } catch (error) {}
1597      }
1598
1599      return [];
1600    }
1601
1602    function getSelectedOptionValues(container) {
1603      const values = [];
1604
1605      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
1606        const checkedInput = group.querySelector('input[type="radio"]:checked');
1607        const select = group.querySelector('select');
1608
1609        if (checkedInput) {
1610          values.push(checkedInput.value);
1611        } else if (select) {
1612          values.push(select.value);
1613        }
1614      });
1615
1616      return values;
1617    }
1618
1619    function getCurrentVariant(container, form, variants) {
1620      const idInput = form && form.querySelector('[name="id"]');
1621      const selectedId = idInput && idInput.value;
1622
1623      if (selectedId) {
1624        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
1625        if (byId) return byId;
1626      }
1627
1628      const selectedOptions = getSelectedOptionValues(container);
1629
1630      if (selectedOptions.length) {
1631        return variants.find((variant) => {
1632          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
1633          return selectedOptions.every((value, index) => String(options[index]) === String(value));
1634        });
1635      }
1636
1637      return null;
1638    }
1639
1640    function setButtonState(form, variant) {
1641      if (!form) return;
1642
1643      const idInput = form.querySelector('[name="id"]');
1644      const addButton = form.querySelector('[name="add"]');
1645      const buttonLabel =
1646        addButton &&
1647        (addButton.querySelector('.main-atc__label__text') ||
1648          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
1649      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
1650      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
1651
1652      if (!addButton || !idInput || !variant) return;
1653
1654      idInput.value = variant.id;
1655      idInput.disabled = false;
1656
1657      if (spinner) spinner.classList.add('hidden');
1658
1659      if (variant.available) {
1660        addButton.disabled = false;
1661        addButton.removeAttribute('disabled');
1662        addButton.removeAttribute('aria-disabled');
1663        addButton.classList.remove('loading');
1664
1665        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
1666        if (soldOutMessage) soldOutMessage.classList.add('hidden');
1667      } else {
1668        addButton.disabled = true;
1669        addButton.setAttribute('disabled', 'disabled');
1670        addButton.setAttribute('aria-disabled', 'true');
1671
1672        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
1673        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
1674      }
1675    }
1676
1677    function syncContainer(container) {
1678      if (!container) return;
1679
1680      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
1681      if (!form) return;
1682
1683      const variants = parseVariants(container);
1684      if (!variants.length) return;
1685
1686      const variant = getCurrentVariant(container, form, variants);
1687      if (!variant) return;
1688
1689      setButtonState(form, variant);
1690    }
1691
1692    document.addEventListener('change', (event) => {
1693      const quickAddModal = event.target.closest('quick-add-modal');
1694      const cardVariantSelects = event.target.closest('card-variant-selects');
1695
1696      if (quickAddModal) {
1697        setTimeout(() => syncContainer(quickAddModal), 80);
1698        setTimeout(() => syncContainer(quickAddModal), 250);
1699      }
1700
1701      if (cardVariantSelects) {
1702        const card = cardVariantSelects.closest('.card-wrapper');
1703        if (card) {
1704          setTimeout(() => syncContainer(card), 80);
1705          setTimeout(() => syncContainer(card), 250);
1706        }
1707      }
1708    });
1709
1710    const observer = new MutationObserver((mutations) => {
1711      mutations.forEach((mutation) => {
1712        mutation.addedNodes.forEach((node) => {
1713          if (!(node instanceof HTMLElement)) return;
1714
1715          if (node.matches && node.matches('quick-add-modal')) {
1716            setTimeout(() => syncContainer(node), 150);
1717          }
1718
1719          node.querySelectorAll &&
1720            node.querySelectorAll('quick-add-modal').forEach((modal) => {
1721              setTimeout(() => syncContainer(modal), 150);
1722            });
1723        });
1724      });
1725    });
1726
1727    observer.observe(document.documentElement, {
1728      childList: true,
1729      subtree: true
1730    });
1731
1732    document.addEventListener('DOMContentLoaded', () => {
1733      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
1734    });
1735  })();
1736</script>
1736
1737
1738
1739
1740
1741                                              </li>
1742                                            
1743                                              <li>
1744                                                
1745<div class="card-wrapper product-card-wrapper underline-links-hover">
1746    <div
1747      class="
1748        card
1749        card--card
1750         card--media
1751         color-background-1 gradient
1752        
1753        
1754        
1755         card--badge-sided
1756        
1757        
1758      "
1759      style="--ratio-percent: 100%;"
1760    >
1761      <div
1762        class="card__inner  ratio"
1763        style="--ratio-percent: 100%;"
1764      ><div class="card__media">
1765            <div class="media media--transparent media--hover-effect">
1766              
1767              <img
1768                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068 1254w
1769                "
1770                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533"
1771                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1772                alt="White"
1773                class="motion-reduce"
1774                
1775                  loading="lazy"
1776                
1777                width="1254"
1778                height="1254"
1779                id='quick-add-8342973219007-image'
1780              >
1781              
1782<img
1783                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847 1080w
1784                  "
1785                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533"
1786                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
1787                  alt=""
1788                  class="motion-reduce"
1789                  loading="lazy"
1790                  width="1080"
1791                  height="1080"
1792                ></div>
1793          </div><div class="card__content">
1794          <div class="card__information">
1795            <h3
1796              class="card__heading"
1797              
1798            >
1799              <a
1800                href="/products/vibeassage-complete-system"
1801                id="StandardCardNoMediaLink--8342973219007"
1802                class="full-unstyled-link"
1803                aria-labelledby="StandardCardNoMediaLink--8342973219007 NoMediaStandardBadge--8342973219007"
1804              >
1805                ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
1806              </a>
1807            </h3>
1808          </div>
1809          <div class="card__badge bottom left">
1810              
1811              </div>
1812        </div>
1813      </div>
1814      <div class="card__content">
1815        <div class="card__information">
1816          <h3
1817            class="card__heading h5"
1818            
1819              id="title--8342973219007"
1820            
1821          >
1822            <a
1823              href="/products/vibeassage-complete-system"
1824              id="CardLink--8342973219007"
1825              class="full-unstyled-link"
1826              aria-labelledby="CardLink--8342973219007 Badge--8342973219007"
1827            >
1828              ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
1829            </a>
1830          </h3>
1831          
1832          <div class="card-information"><span class="caption-large light"></span>
1833<div
1834  class="
1835    price "
1836>
1837  <div class="price__container"><div class="price__regular">
1838      <span class="visually-hidden visually-hidden--inline">Regular price</span>
1839      <span class="price-item price-item--regular">
1840        From $429.00
1841      </span>
1842    </div>
1843    <div class="price__sale ">
1844      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
1845      <span class="price-item price-item--sale price-item--last">
1846        From $429.00
1847      </span>
1848        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
1849        <span class="price__compare-price">
1850          <s class="price-item price-item--regular">
1851            
1852          </s>
1853        </span></div>
1854    <small class="unit-price caption hidden">
1855      <span class="visually-hidden">Unit price</span>
1856      <span class="price-item price-item--last">
1857        <span></span>
1858        <span aria-hidden="true">/</span>
1859        <span class="visually-hidden">&nbsp;per&nbsp;</span>
1860        <span>
1861        </span>
1862      </span>
1863    </small>
1864  </div></div>
1865
1866          </div>
1867        </div>
1868        
1869<div class="card__badge bottom left"></div>
1870      </div>
1871    </div>
1872  </div>
1872<script>
1873  (() => {
1874    if (window.cardProductQuickAddVariantFixLoaded) return;
1875    window.cardProductQuickAddVariantFixLoaded = true;
1876
1877    const ADD_TO_CART_TEXT = "Add to cart";
1878    const SOLD_OUT_TEXT = "Sold out";
1879
1880    function parseVariants(container) {
1881      if (!container) return [];
1882
1883      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
1884
1885      for (const script of scripts) {
1886        try {
1887          const data = JSON.parse(script.textContent.trim());
1888
1889          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
1890            return data;
1891          }
1892
1893          if (data && Array.isArray(data.variants)) {
1894            return data.variants;
1895          }
1896        } catch (error) {}
1897      }
1898
1899      return [];
1900    }
1901
1902    function getSelectedOptionValues(container) {
1903      const values = [];
1904
1905      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
1906        const checkedInput = group.querySelector('input[type="radio"]:checked');
1907        const select = group.querySelector('select');
1908
1909        if (checkedInput) {
1910          values.push(checkedInput.value);
1911        } else if (select) {
1912          values.push(select.value);
1913        }
1914      });
1915
1916      return values;
1917    }
1918
1919    function getCurrentVariant(container, form, variants) {
1920      const idInput = form && form.querySelector('[name="id"]');
1921      const selectedId = idInput && idInput.value;
1922
1923      if (selectedId) {
1924        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
1925        if (byId) return byId;
1926      }
1927
1928      const selectedOptions = getSelectedOptionValues(container);
1929
1930      if (selectedOptions.length) {
1931        return variants.find((variant) => {
1932          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
1933          return selectedOptions.every((value, index) => String(options[index]) === String(value));
1934        });
1935      }
1936
1937      return null;
1938    }
1939
1940    function setButtonState(form, variant) {
1941      if (!form) return;
1942
1943      const idInput = form.querySelector('[name="id"]');
1944      const addButton = form.querySelector('[name="add"]');
1945      const buttonLabel =
1946        addButton &&
1947        (addButton.querySelector('.main-atc__label__text') ||
1948          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
1949      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
1950      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
1951
1952      if (!addButton || !idInput || !variant) return;
1953
1954      idInput.value = variant.id;
1955      idInput.disabled = false;
1956
1957      if (spinner) spinner.classList.add('hidden');
1958
1959      if (variant.available) {
1960        addButton.disabled = false;
1961        addButton.removeAttribute('disabled');
1962        addButton.removeAttribute('aria-disabled');
1963        addButton.classList.remove('loading');
1964
1965        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
1966        if (soldOutMessage) soldOutMessage.classList.add('hidden');
1967      } else {
1968        addButton.disabled = true;
1969        addButton.setAttribute('disabled', 'disabled');
1970        addButton.setAttribute('aria-disabled', 'true');
1971
1972        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
1973        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
1974      }
1975    }
1976
1977    function syncContainer(container) {
1978      if (!container) return;
1979
1980      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
1981      if (!form) return;
1982
1983      const variants = parseVariants(container);
1984      if (!variants.length) return;
1985
1986      const variant = getCurrentVariant(container, form, variants);
1987      if (!variant) return;
1988
1989      setButtonState(form, variant);
1990    }
1991
1992    document.addEventListener('change', (event) => {
1993      const quickAddModal = event.target.closest('quick-add-modal');
1994      const cardVariantSelects = event.target.closest('card-variant-selects');
1995
1996      if (quickAddModal) {
1997        setTimeout(() => syncContainer(quickAddModal), 80);
1998        setTimeout(() => syncContainer(quickAddModal), 250);
1999      }
2000
2001      if (cardVariantSelects) {
2002        const card = cardVariantSelects.closest('.card-wrapper');
2003        if (card) {
2004          setTimeout(() => syncContainer(card), 80);
2005          setTimeout(() => syncContainer(card), 250);
2006        }
2007      }
2008    });
2009
2010    const observer = new MutationObserver((mutations) => {
2011      mutations.forEach((mutation) => {
2012        mutation.addedNodes.forEach((node) => {
2013          if (!(node instanceof HTMLElement)) return;
2014
2015          if (node.matches && node.matches('quick-add-modal')) {
2016            setTimeout(() => syncContainer(node), 150);
2017          }
2018
2019          node.querySelectorAll &&
2020            node.querySelectorAll('quick-add-modal').forEach((modal) => {
2021              setTimeout(() => syncContainer(modal), 150);
2022            });
2023        });
2024      });
2025    });
2026
2027    observer.observe(document.documentElement, {
2028      childList: true,
2029      subtree: true
2030    });
2031
2032    document.addEventListener('DOMContentLoaded', () => {
2033      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
2034    });
2035  })();
2036</script>
2036
2037
2038
2039
2040
2041                                              </li>
2042                                            
2043                                              <li>
2044                                                
2045<div class="card-wrapper product-card-wrapper underline-links-hover">
2046    <div
2047      class="
2048        card
2049        card--card
2050         card--media
2051         color-background-1 gradient
2052        
2053        
2054        
2055         card--badge-sided
2056        
2057        
2058      "
2059      style="--ratio-percent: 100%;"
2060    >
2061      <div
2062        class="card__inner  ratio"
2063        style="--ratio-percent: 100%;"
2064      ><div class="card__media">
2065            <div class="media media--transparent media--hover-effect">
2066              
2067              <img
2068                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068 1254w
2069                "
2070                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533"
2071                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2072                alt="White"
2073                class="motion-reduce"
2074                
2075                  loading="lazy"
2076                
2077                width="1254"
2078                height="1254"
2079                id='quick-add-8342972334271-image'
2080              >
2081              
2082<img
2083                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068 1254w
2084                  "
2085                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533"
2086                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2087                  alt=""
2088                  class="motion-reduce"
2089                  loading="lazy"
2090                  width="1254"
2091                  height="1254"
2092                ></div>
2093          </div><div class="card__content">
2094          <div class="card__information">
2095            <h3
2096              class="card__heading"
2097              
2098            >
2099              <a
2100                href="/products/vibeassage-relief-bundle"
2101                id="StandardCardNoMediaLink--8342972334271"
2102                class="full-unstyled-link"
2103                aria-labelledby="StandardCardNoMediaLink--8342972334271 NoMediaStandardBadge--8342972334271"
2104              >
2105                Vibeassage® Relief Bundle
2106              </a>
2107            </h3>
2108          </div>
2109          <div class="card__badge bottom left">
2110              
2111              </div>
2112        </div>
2113      </div>
2114      <div class="card__content">
2115        <div class="card__information">
2116          <h3
2117            class="card__heading h5"
2118            
2119              id="title--8342972334271"
2120            
2121          >
2122            <a
2123              href="/products/vibeassage-relief-bundle"
2124              id="CardLink--8342972334271"
2125              class="full-unstyled-link"
2126              aria-labelledby="CardLink--8342972334271 Badge--8342972334271"
2127            >
2128              Vibeassage® Relief Bundle
2129            </a>
2130          </h3>
2131          
2132          <div class="card-information"><span class="caption-large light"></span>
2133<div
2134  class="
2135    price "
2136>
2137  <div class="price__container"><div class="price__regular">
2138      <span class="visually-hidden visually-hidden--inline">Regular price</span>
2139      <span class="price-item price-item--regular">
2140        From $389.00
2141      </span>
2142    </div>
2143    <div class="price__sale ">
2144      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
2145      <span class="price-item price-item--sale price-item--last">
2146        From $389.00
2147      </span>
2148        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
2149        <span class="price__compare-price">
2150          <s class="price-item price-item--regular">
2151            
2152          </s>
2153        </span></div>
2154    <small class="unit-price caption hidden">
2155      <span class="visually-hidden">Unit price</span>
2156      <span class="price-item price-item--last">
2157        <span></span>
2158        <span aria-hidden="true">/</span>
2159        <span class="visually-hidden">&nbsp;per&nbsp;</span>
2160        <span>
2161        </span>
2162      </span>
2163    </small>
2164  </div></div>
2165
2166          </div>
2167        </div>
2168        
2169<div class="card__badge bottom left"></div>
2170      </div>
2171    </div>
2172  </div>
2172<script>
2173  (() => {
2174    if (window.cardProductQuickAddVariantFixLoaded) return;
2175    window.cardProductQuickAddVariantFixLoaded = true;
2176
2177    const ADD_TO_CART_TEXT = "Add to cart";
2178    const SOLD_OUT_TEXT = "Sold out";
2179
2180    function parseVariants(container) {
2181      if (!container) return [];
2182
2183      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
2184
2185      for (const script of scripts) {
2186        try {
2187          const data = JSON.parse(script.textContent.trim());
2188
2189          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
2190            return data;
2191          }
2192
2193          if (data && Array.isArray(data.variants)) {
2194            return data.variants;
2195          }
2196        } catch (error) {}
2197      }
2198
2199      return [];
2200    }
2201
2202    function getSelectedOptionValues(container) {
2203      const values = [];
2204
2205      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
2206        const checkedInput = group.querySelector('input[type="radio"]:checked');
2207        const select = group.querySelector('select');
2208
2209        if (checkedInput) {
2210          values.push(checkedInput.value);
2211        } else if (select) {
2212          values.push(select.value);
2213        }
2214      });
2215
2216      return values;
2217    }
2218
2219    function getCurrentVariant(container, form, variants) {
2220      const idInput = form && form.querySelector('[name="id"]');
2221      const selectedId = idInput && idInput.value;
2222
2223      if (selectedId) {
2224        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
2225        if (byId) return byId;
2226      }
2227
2228      const selectedOptions = getSelectedOptionValues(container);
2229
2230      if (selectedOptions.length) {
2231        return variants.find((variant) => {
2232          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
2233          return selectedOptions.every((value, index) => String(options[index]) === String(value));
2234        });
2235      }
2236
2237      return null;
2238    }
2239
2240    function setButtonState(form, variant) {
2241      if (!form) return;
2242
2243      const idInput = form.querySelector('[name="id"]');
2244      const addButton = form.querySelector('[name="add"]');
2245      const buttonLabel =
2246        addButton &&
2247        (addButton.querySelector('.main-atc__label__text') ||
2248          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
2249      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
2250      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
2251
2252      if (!addButton || !idInput || !variant) return;
2253
2254      idInput.value = variant.id;
2255      idInput.disabled = false;
2256
2257      if (spinner) spinner.classList.add('hidden');
2258
2259      if (variant.available) {
2260        addButton.disabled = false;
2261        addButton.removeAttribute('disabled');
2262        addButton.removeAttribute('aria-disabled');
2263        addButton.classList.remove('loading');
2264
2265        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
2266        if (soldOutMessage) soldOutMessage.classList.add('hidden');
2267      } else {
2268        addButton.disabled = true;
2269        addButton.setAttribute('disabled', 'disabled');
2270        addButton.setAttribute('aria-disabled', 'true');
2271
2272        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
2273        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
2274      }
2275    }
2276
2277    function syncContainer(container) {
2278      if (!container) return;
2279
2280      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
2281      if (!form) return;
2282
2283      const variants = parseVariants(container);
2284      if (!variants.length) return;
2285
2286      const variant = getCurrentVariant(container, form, variants);
2287      if (!variant) return;
2288
2289      setButtonState(form, variant);
2290    }
2291
2292    document.addEventListener('change', (event) => {
2293      const quickAddModal = event.target.closest('quick-add-modal');
2294      const cardVariantSelects = event.target.closest('card-variant-selects');
2295
2296      if (quickAddModal) {
2297        setTimeout(() => syncContainer(quickAddModal), 80);
2298        setTimeout(() => syncContainer(quickAddModal), 250);
2299      }
2300
2301      if (cardVariantSelects) {
2302        const card = cardVariantSelects.closest('.card-wrapper');
2303        if (card) {
2304          setTimeout(() => syncContainer(card), 80);
2305          setTimeout(() => syncContainer(card), 250);
2306        }
2307      }
2308    });
2309
2310    const observer = new MutationObserver((mutations) => {
2311      mutations.forEach((mutation) => {
2312        mutation.addedNodes.forEach((node) => {
2313          if (!(node instanceof HTMLElement)) return;
2314
2315          if (node.matches && node.matches('quick-add-modal')) {
2316            setTimeout(() => syncContainer(node), 150);
2317          }
2318
2319          node.querySelectorAll &&
2320            node.querySelectorAll('quick-add-modal').forEach((modal) => {
2321              setTimeout(() => syncContainer(modal), 150);
2322            });
2323        });
2324      });
2325    });
2326
2327    observer.observe(document.documentElement, {
2328      childList: true,
2329      subtree: true
2330    });
2331
2332    document.addEventListener('DOMContentLoaded', () => {
2333      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
2334    });
2335  })();
2336</script>
2336
2337
2338
2339
2340
2341                                              </li>
2342                                            
2343                                              <li>
2344                                                
2345<div class="card-wrapper product-card-wrapper underline-links-hover">
2346    <div
2347      class="
2348        card
2349        card--card
2350         card--media
2351         color-background-1 gradient
2352        
2353        
2354        
2355         card--badge-sided
2356        
2357        
2358      "
2359      style="--ratio-percent: 100%;"
2360    >
2361      <div
2362        class="card__inner  ratio"
2363        style="--ratio-percent: 100%;"
2364      ><div class="card__media">
2365            <div class="media media--transparent media--hover-effect">
2366              
2367              <img
2368                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763 1254w
2369                "
2370                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533"
2371                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2372                alt="White"
2373                class="motion-reduce"
2374                
2375                  loading="lazy"
2376                
2377                width="1254"
2378                height="1254"
2379                id='quick-add-8342972760255-image'
2380              >
2381              
2382<img
2383                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068 1254w
2384                  "
2385                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533"
2386                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2387                  alt=""
2388                  class="motion-reduce"
2389                  loading="lazy"
2390                  width="1254"
2391                  height="1254"
2392                ></div>
2393          </div><div class="card__content">
2394          <div class="card__information">
2395            <h3
2396              class="card__heading"
2397              
2398            >
2399              <a
2400                href="/products/vibeassage-performance-bundle"
2401                id="StandardCardNoMediaLink--8342972760255"
2402                class="full-unstyled-link"
2403                aria-labelledby="StandardCardNoMediaLink--8342972760255 NoMediaStandardBadge--8342972760255"
2404              >
2405                Vibeassage® Performance Bundle
2406              </a>
2407            </h3>
2408          </div>
2409          <div class="card__badge bottom left">
2410              
2411              </div>
2412        </div>
2413      </div>
2414      <div class="card__content">
2415        <div class="card__information">
2416          <h3
2417            class="card__heading h5"
2418            
2419              id="title--8342972760255"
2420            
2421          >
2422            <a
2423              href="/products/vibeassage-performance-bundle"
2424              id="CardLink--8342972760255"
2425              class="full-unstyled-link"
2426              aria-labelledby="CardLink--8342972760255 Badge--8342972760255"
2427            >
2428              Vibeassage® Performance Bundle
2429            </a>
2430          </h3>
2431          
2432          <div class="card-information"><span class="caption-large light"></span>
2433<div
2434  class="
2435    price "
2436>
2437  <div class="price__container"><div class="price__regular">
2438      <span class="visually-hidden visually-hidden--inline">Regular price</span>
2439      <span class="price-item price-item--regular">
2440        From $389.00
2441      </span>
2442    </div>
2443    <div class="price__sale ">
2444      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
2445      <span class="price-item price-item--sale price-item--last">
2446        From $389.00
2447      </span>
2448        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
2449        <span class="price__compare-price">
2450          <s class="price-item price-item--regular">
2451            
2452          </s>
2453        </span></div>
2454    <small class="unit-price caption hidden">
2455      <span class="visually-hidden">Unit price</span>
2456      <span class="price-item price-item--last">
2457        <span></span>
2458        <span aria-hidden="true">/</span>
2459        <span class="visually-hidden">&nbsp;per&nbsp;</span>
2460        <span>
2461        </span>
2462      </span>
2463    </small>
2464  </div></div>
2465
2466          </div>
2467        </div>
2468        
2469<div class="card__badge bottom left"></div>
2470      </div>
2471    </div>
2472  </div>
2472<script>
2473  (() => {
2474    if (window.cardProductQuickAddVariantFixLoaded) return;
2475    window.cardProductQuickAddVariantFixLoaded = true;
2476
2477    const ADD_TO_CART_TEXT = "Add to cart";
2478    const SOLD_OUT_TEXT = "Sold out";
2479
2480    function parseVariants(container) {
2481      if (!container) return [];
2482
2483      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
2484
2485      for (const script of scripts) {
2486        try {
2487          const data = JSON.parse(script.textContent.trim());
2488
2489          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
2490            return data;
2491          }
2492
2493          if (data && Array.isArray(data.variants)) {
2494            return data.variants;
2495          }
2496        } catch (error) {}
2497      }
2498
2499      return [];
2500    }
2501
2502    function getSelectedOptionValues(container) {
2503      const values = [];
2504
2505      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
2506        const checkedInput = group.querySelector('input[type="radio"]:checked');
2507        const select = group.querySelector('select');
2508
2509        if (checkedInput) {
2510          values.push(checkedInput.value);
2511        } else if (select) {
2512          values.push(select.value);
2513        }
2514      });
2515
2516      return values;
2517    }
2518
2519    function getCurrentVariant(container, form, variants) {
2520      const idInput = form && form.querySelector('[name="id"]');
2521      const selectedId = idInput && idInput.value;
2522
2523      if (selectedId) {
2524        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
2525        if (byId) return byId;
2526      }
2527
2528      const selectedOptions = getSelectedOptionValues(container);
2529
2530      if (selectedOptions.length) {
2531        return variants.find((variant) => {
2532          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
2533          return selectedOptions.every((value, index) => String(options[index]) === String(value));
2534        });
2535      }
2536
2537      return null;
2538    }
2539
2540    function setButtonState(form, variant) {
2541      if (!form) return;
2542
2543      const idInput = form.querySelector('[name="id"]');
2544      const addButton = form.querySelector('[name="add"]');
2545      const buttonLabel =
2546        addButton &&
2547        (addButton.querySelector('.main-atc__label__text') ||
2548          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
2549      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
2550      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
2551
2552      if (!addButton || !idInput || !variant) return;
2553
2554      idInput.value = variant.id;
2555      idInput.disabled = false;
2556
2557      if (spinner) spinner.classList.add('hidden');
2558
2559      if (variant.available) {
2560        addButton.disabled = false;
2561        addButton.removeAttribute('disabled');
2562        addButton.removeAttribute('aria-disabled');
2563        addButton.classList.remove('loading');
2564
2565        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
2566        if (soldOutMessage) soldOutMessage.classList.add('hidden');
2567      } else {
2568        addButton.disabled = true;
2569        addButton.setAttribute('disabled', 'disabled');
2570        addButton.setAttribute('aria-disabled', 'true');
2571
2572        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
2573        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
2574      }
2575    }
2576
2577    function syncContainer(container) {
2578      if (!container) return;
2579
2580      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
2581      if (!form) return;
2582
2583      const variants = parseVariants(container);
2584      if (!variants.length) return;
2585
2586      const variant = getCurrentVariant(container, form, variants);
2587      if (!variant) return;
2588
2589      setButtonState(form, variant);
2590    }
2591
2592    document.addEventListener('change', (event) => {
2593      const quickAddModal = event.target.closest('quick-add-modal');
2594      const cardVariantSelects = event.target.closest('card-variant-selects');
2595
2596      if (quickAddModal) {
2597        setTimeout(() => syncContainer(quickAddModal), 80);
2598        setTimeout(() => syncContainer(quickAddModal), 250);
2599      }
2600
2601      if (cardVariantSelects) {
2602        const card = cardVariantSelects.closest('.card-wrapper');
2603        if (card) {
2604          setTimeout(() => syncContainer(card), 80);
2605          setTimeout(() => syncContainer(card), 250);
2606        }
2607      }
2608    });
2609
2610    const observer = new MutationObserver((mutations) => {
2611      mutations.forEach((mutation) => {
2612        mutation.addedNodes.forEach((node) => {
2613          if (!(node instanceof HTMLElement)) return;
2614
2615          if (node.matches && node.matches('quick-add-modal')) {
2616            setTimeout(() => syncContainer(node), 150);
2617          }
2618
2619          node.querySelectorAll &&
2620            node.querySelectorAll('quick-add-modal').forEach((modal) => {
2621              setTimeout(() => syncContainer(modal), 150);
2622            });
2623        });
2624      });
2625    });
2626
2627    observer.observe(document.documentElement, {
2628      childList: true,
2629      subtree: true
2630    });
2631
2632    document.addEventListener('DOMContentLoaded', () => {
2633      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
2634    });
2635  })();
2636</script>
2636
2637
2638
2639
2640
2641                                              </li>
2642                                            
2643                                              <li>
2644                                                
2645<div class="card-wrapper product-card-wrapper underline-links-hover">
2646    <div
2647      class="
2648        card
2649        card--card
2650         card--media
2651         color-background-1 gradient
2652        
2653        
2654        
2655         card--badge-sided
2656        
2657        
2658      "
2659      style="--ratio-percent: 100%;"
2660    >
2661      <div
2662        class="card__inner  ratio"
2663        style="--ratio-percent: 100%;"
2664      ><div class="card__media">
2665            <div class="media media--transparent media--hover-effect">
2666              
2667              <img
2668                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068 1254w
2669                "
2670                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533"
2671                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2672                alt="White"
2673                class="motion-reduce"
2674                
2675                  loading="lazy"
2676                
2677                width="1254"
2678                height="1254"
2679                id='quick-add-8342966534335-image'
2680              >
2681              
2682<img
2683                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140 w
2684                  "
2685                  src="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140&width=533"
2686                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2687                  alt=""
2688                  class="motion-reduce"
2689                  loading="lazy"
2690                  width=""
2691                  height=""
2692                ></div>
2693          </div><div class="card__content">
2694          <div class="card__information">
2695            <h3
2696              class="card__heading"
2697              
2698            >
2699              <a
2700                href="/products/vibeassage-core-system"
2701                id="StandardCardNoMediaLink--8342966534335"
2702                class="full-unstyled-link"
2703                aria-labelledby="StandardCardNoMediaLink--8342966534335 NoMediaStandardBadge--8342966534335"
2704              >
2705                Vibeassage® Core System
2706              </a>
2707            </h3>
2708          </div>
2709          <div class="card__badge bottom left">
2710              
2711              </div>
2712        </div>
2713      </div>
2714      <div class="card__content">
2715        <div class="card__information">
2716          <h3
2717            class="card__heading h5"
2718            
2719              id="title--8342966534335"
2720            
2721          >
2722            <a
2723              href="/products/vibeassage-core-system"
2724              id="CardLink--8342966534335"
2725              class="full-unstyled-link"
2726              aria-labelledby="CardLink--8342966534335 Badge--8342966534335"
2727            >
2728              Vibeassage® Core System
2729            </a>
2730          </h3>
2731          
2732          <div class="card-information"><span class="caption-large light"></span>
2733<div
2734  class="
2735    price "
2736>
2737  <div class="price__container"><div class="price__regular">
2738      <span class="visually-hidden visually-hidden--inline">Regular price</span>
2739      <span class="price-item price-item--regular">
2740        From $349.00
2741      </span>
2742    </div>
2743    <div class="price__sale ">
2744      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
2745      <span class="price-item price-item--sale price-item--last">
2746        From $349.00
2747      </span>
2748        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
2749        <span class="price__compare-price">
2750          <s class="price-item price-item--regular">
2751            
2752          </s>
2753        </span></div>
2754    <small class="unit-price caption hidden">
2755      <span class="visually-hidden">Unit price</span>
2756      <span class="price-item price-item--last">
2757        <span></span>
2758        <span aria-hidden="true">/</span>
2759        <span class="visually-hidden">&nbsp;per&nbsp;</span>
2760        <span>
2761        </span>
2762      </span>
2763    </small>
2764  </div></div>
2765
2766          </div>
2767        </div>
2768        
2769<div class="card__badge bottom left"></div>
2770      </div>
2771    </div>
2772  </div>
2772<script>
2773  (() => {
2774    if (window.cardProductQuickAddVariantFixLoaded) return;
2775    window.cardProductQuickAddVariantFixLoaded = true;
2776
2777    const ADD_TO_CART_TEXT = "Add to cart";
2778    const SOLD_OUT_TEXT = "Sold out";
2779
2780    function parseVariants(container) {
2781      if (!container) return [];
2782
2783      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
2784
2785      for (const script of scripts) {
2786        try {
2787          const data = JSON.parse(script.textContent.trim());
2788
2789          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
2790            return data;
2791          }
2792
2793          if (data && Array.isArray(data.variants)) {
2794            return data.variants;
2795          }
2796        } catch (error) {}
2797      }
2798
2799      return [];
2800    }
2801
2802    function getSelectedOptionValues(container) {
2803      const values = [];
2804
2805      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
2806        const checkedInput = group.querySelector('input[type="radio"]:checked');
2807        const select = group.querySelector('select');
2808
2809        if (checkedInput) {
2810          values.push(checkedInput.value);
2811        } else if (select) {
2812          values.push(select.value);
2813        }
2814      });
2815
2816      return values;
2817    }
2818
2819    function getCurrentVariant(container, form, variants) {
2820      const idInput = form && form.querySelector('[name="id"]');
2821      const selectedId = idInput && idInput.value;
2822
2823      if (selectedId) {
2824        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
2825        if (byId) return byId;
2826      }
2827
2828      const selectedOptions = getSelectedOptionValues(container);
2829
2830      if (selectedOptions.length) {
2831        return variants.find((variant) => {
2832          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
2833          return selectedOptions.every((value, index) => String(options[index]) === String(value));
2834        });
2835      }
2836
2837      return null;
2838    }
2839
2840    function setButtonState(form, variant) {
2841      if (!form) return;
2842
2843      const idInput = form.querySelector('[name="id"]');
2844      const addButton = form.querySelector('[name="add"]');
2845      const buttonLabel =
2846        addButton &&
2847        (addButton.querySelector('.main-atc__label__text') ||
2848          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
2849      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
2850      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
2851
2852      if (!addButton || !idInput || !variant) return;
2853
2854      idInput.value = variant.id;
2855      idInput.disabled = false;
2856
2857      if (spinner) spinner.classList.add('hidden');
2858
2859      if (variant.available) {
2860        addButton.disabled = false;
2861        addButton.removeAttribute('disabled');
2862        addButton.removeAttribute('aria-disabled');
2863        addButton.classList.remove('loading');
2864
2865        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
2866        if (soldOutMessage) soldOutMessage.classList.add('hidden');
2867      } else {
2868        addButton.disabled = true;
2869        addButton.setAttribute('disabled', 'disabled');
2870        addButton.setAttribute('aria-disabled', 'true');
2871
2872        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
2873        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
2874      }
2875    }
2876
2877    function syncContainer(container) {
2878      if (!container) return;
2879
2880      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
2881      if (!form) return;
2882
2883      const variants = parseVariants(container);
2884      if (!variants.length) return;
2885
2886      const variant = getCurrentVariant(container, form, variants);
2887      if (!variant) return;
2888
2889      setButtonState(form, variant);
2890    }
2891
2892    document.addEventListener('change', (event) => {
2893      const quickAddModal = event.target.closest('quick-add-modal');
2894      const cardVariantSelects = event.target.closest('card-variant-selects');
2895
2896      if (quickAddModal) {
2897        setTimeout(() => syncContainer(quickAddModal), 80);
2898        setTimeout(() => syncContainer(quickAddModal), 250);
2899      }
2900
2901      if (cardVariantSelects) {
2902        const card = cardVariantSelects.closest('.card-wrapper');
2903        if (card) {
2904          setTimeout(() => syncContainer(card), 80);
2905          setTimeout(() => syncContainer(card), 250);
2906        }
2907      }
2908    });
2909
2910    const observer = new MutationObserver((mutations) => {
2911      mutations.forEach((mutation) => {
2912        mutation.addedNodes.forEach((node) => {
2913          if (!(node instanceof HTMLElement)) return;
2914
2915          if (node.matches && node.matches('quick-add-modal')) {
2916            setTimeout(() => syncContainer(node), 150);
2917          }
2918
2919          node.querySelectorAll &&
2920            node.querySelectorAll('quick-add-modal').forEach((modal) => {
2921              setTimeout(() => syncContainer(modal), 150);
2922            });
2923        });
2924      });
2925    });
2926
2927    observer.observe(document.documentElement, {
2928      childList: true,
2929      subtree: true
2930    });
2931
2932    document.addEventListener('DOMContentLoaded', () => {
2933      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
2934    });
2935  })();
2936</script>
2936
2937
2938
2939
2940
2941                                              </li>
2942                                            
2943                                              <li>
2944                                                
2945<div class="card-wrapper product-card-wrapper underline-links-hover">
2946    <div
2947      class="
2948        card
2949        card--card
2950         card--media
2951         color-background-1 gradient
2952        
2953        
2954        
2955         card--badge-sided
2956        
2957        
2958      "
2959      style="--ratio-percent: 100%;"
2960    >
2961      <div
2962        class="card__inner  ratio"
2963        style="--ratio-percent: 100%;"
2964      ><div class="card__media">
2965            <div class="media media--transparent media--hover-effect">
2966              
2967              <img
2968                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443 1080w
2969                "
2970                src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533"
2971                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2972                alt="Biomimetic Applicator Pads (Full Set) - Team Doctors"
2973                class="motion-reduce"
2974                
2975                  loading="lazy"
2976                
2977                width="1080"
2978                height="1080"
2979                id='quick-add-8394187342015-image'
2980              >
2981              
2982<img
2983                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
2984                  "
2985                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
2986                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
2987                  alt=""
2988                  class="motion-reduce"
2989                  loading="lazy"
2990                  width="1080"
2991                  height="1080"
2992                ></div>
2993          </div><div class="card__content">
2994          <div class="card__information">
2995            <h3
2996              class="card__heading"
2997              
2998            >
2999              <a
3000                href="/products/biomemetic-applicator-pads-full-set"
3001                id="StandardCardNoMediaLink--8394187342015"
3002                class="full-unstyled-link"
3003                aria-labelledby="StandardCardNoMediaLink--8394187342015 NoMediaStandardBadge--8394187342015"
3004              >
3005                Biomimetic Applicator Pads
3006              </a>
3007            </h3>
3008          </div>
3009          <div class="card__badge bottom left">
3010              
3011              
3012                <span
3013                  id="NoMediaStandardBadge--8394187342015"
3014                  class="badge badge--bottom-left color-accent-2"
3015                >
3016                  <svg
3017  aria-hidden="true"
3018  focusable="false"
3019  class="icon icon-discount color-foreground-text"
3020  viewBox="0 0 12 12"
3021>
3022  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
3023</svg>
3024<span class='nowrap'>SAVE 21%</span>
3025                </span></div>
3026        </div>
3027      </div>
3028      <div class="card__content">
3029        <div class="card__information">
3030          <h3
3031            class="card__heading h5"
3032            
3033              id="title--8394187342015"
3034            
3035          >
3036            <a
3037              href="/products/biomemetic-applicator-pads-full-set"
3038              id="CardLink--8394187342015"
3039              class="full-unstyled-link"
3040              aria-labelledby="CardLink--8394187342015 Badge--8394187342015"
3041            >
3042              Biomimetic Applicator Pads
3043            </a>
3044          </h3>
3045          
3046            <div class="product-subtitle">
3047              3 Pads - Full Set
3048            </div>
3049          
3050          <div class="card-information"><span class="caption-large light"></span>
3051<div
3052  class="
3053    price  price--on-sale "
3054>
3055  <div class="price__container"><div class="price__regular">
3056      <span class="visually-hidden visually-hidden--inline">Regular price</span>
3057      <span class="price-item price-item--regular">
3058        $129.00
3059      </span>
3060    </div>
3061    <div class="price__sale ">
3062      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
3063      <span class="price-item price-item--sale price-item--last">
3064        $129.00
3065      </span>
3066        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
3067        <span class="price__compare-price">
3068          <s class="price-item price-item--regular">
3069            $164.85
3070          </s>
3071        </span></div>
3072    <small class="unit-price caption hidden">
3073      <span class="visually-hidden">Unit price</span>
3074      <span class="price-item price-item--last">
3075        <span></span>
3076        <span aria-hidden="true">/</span>
3077        <span class="visually-hidden">&nbsp;per&nbsp;</span>
3078        <span>
3079        </span>
3080      </span>
3081    </small>
3082  </div></div>
3083
3084          </div>
3085        </div>
3086        
3087<div class="card__badge bottom left"><span
3088              id="Badge--8394187342015"
3089              class="badge badge--bottom-left color-accent-2"
3090            >
3091              21%
3092            </span></div>
3093      </div>
3094    </div>
3095  </div>
3095<script>
3096  (() => {
3097    if (window.cardProductQuickAddVariantFixLoaded) return;
3098    window.cardProductQuickAddVariantFixLoaded = true;
3099
3100    const ADD_TO_CART_TEXT = "Add to cart";
3101    const SOLD_OUT_TEXT = "Sold out";
3102
3103    function parseVariants(container) {
3104      if (!container) return [];
3105
3106      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
3107
3108      for (const script of scripts) {
3109        try {
3110          const data = JSON.parse(script.textContent.trim());
3111
3112          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
3113            return data;
3114          }
3115
3116          if (data && Array.isArray(data.variants)) {
3117            return data.variants;
3118          }
3119        } catch (error) {}
3120      }
3121
3122      return [];
3123    }
3124
3125    function getSelectedOptionValues(container) {
3126      const values = [];
3127
3128      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
3129        const checkedInput = group.querySelector('input[type="radio"]:checked');
3130        const select = group.querySelector('select');
3131
3132        if (checkedInput) {
3133          values.push(checkedInput.value);
3134        } else if (select) {
3135          values.push(select.value);
3136        }
3137      });
3138
3139      return values;
3140    }
3141
3142    function getCurrentVariant(container, form, variants) {
3143      const idInput = form && form.querySelector('[name="id"]');
3144      const selectedId = idInput && idInput.value;
3145
3146      if (selectedId) {
3147        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
3148        if (byId) return byId;
3149      }
3150
3151      const selectedOptions = getSelectedOptionValues(container);
3152
3153      if (selectedOptions.length) {
3154        return variants.find((variant) => {
3155          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
3156          return selectedOptions.every((value, index) => String(options[index]) === String(value));
3157        });
3158      }
3159
3160      return null;
3161    }
3162
3163    function setButtonState(form, variant) {
3164      if (!form) return;
3165
3166      const idInput = form.querySelector('[name="id"]');
3167      const addButton = form.querySelector('[name="add"]');
3168      const buttonLabel =
3169        addButton &&
3170        (addButton.querySelector('.main-atc__label__text') ||
3171          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
3172      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
3173      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
3174
3175      if (!addButton || !idInput || !variant) return;
3176
3177      idInput.value = variant.id;
3178      idInput.disabled = false;
3179
3180      if (spinner) spinner.classList.add('hidden');
3181
3182      if (variant.available) {
3183        addButton.disabled = false;
3184        addButton.removeAttribute('disabled');
3185        addButton.removeAttribute('aria-disabled');
3186        addButton.classList.remove('loading');
3187
3188        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
3189        if (soldOutMessage) soldOutMessage.classList.add('hidden');
3190      } else {
3191        addButton.disabled = true;
3192        addButton.setAttribute('disabled', 'disabled');
3193        addButton.setAttribute('aria-disabled', 'true');
3194
3195        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
3196        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
3197      }
3198    }
3199
3200    function syncContainer(container) {
3201      if (!container) return;
3202
3203      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
3204      if (!form) return;
3205
3206      const variants = parseVariants(container);
3207      if (!variants.length) return;
3208
3209      const variant = getCurrentVariant(container, form, variants);
3210      if (!variant) return;
3211
3212      setButtonState(form, variant);
3213    }
3214
3215    document.addEventListener('change', (event) => {
3216      const quickAddModal = event.target.closest('quick-add-modal');
3217      const cardVariantSelects = event.target.closest('card-variant-selects');
3218
3219      if (quickAddModal) {
3220        setTimeout(() => syncContainer(quickAddModal), 80);
3221        setTimeout(() => syncContainer(quickAddModal), 250);
3222      }
3223
3224      if (cardVariantSelects) {
3225        const card = cardVariantSelects.closest('.card-wrapper');
3226        if (card) {
3227          setTimeout(() => syncContainer(card), 80);
3228          setTimeout(() => syncContainer(card), 250);
3229        }
3230      }
3231    });
3232
3233    const observer = new MutationObserver((mutations) => {
3234      mutations.forEach((mutation) => {
3235        mutation.addedNodes.forEach((node) => {
3236          if (!(node instanceof HTMLElement)) return;
3237
3238          if (node.matches && node.matches('quick-add-modal')) {
3239            setTimeout(() => syncContainer(node), 150);
3240          }
3241
3242          node.querySelectorAll &&
3243            node.querySelectorAll('quick-add-modal').forEach((modal) => {
3244              setTimeout(() => syncContainer(modal), 150);
3245            });
3246        });
3247      });
3248    });
3249
3250    observer.observe(document.documentElement, {
3251      childList: true,
3252      subtree: true
3253    });
3254
3255    document.addEventListener('DOMContentLoaded', () => {
3256      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
3257    });
3258  })();
3259</script>
3259
3260
3261
3262
3263
3264                                              </li>
3265                                            
3266                                              <li>
3267                                                
3268<div class="card-wrapper product-card-wrapper underline-links-hover">
3269    <div
3270      class="
3271        card
3272        card--card
3273         card--media
3274         color-background-1 gradient
3275        
3276        
3277        
3278         card--badge-sided
3279        
3280        
3281      "
3282      style="--ratio-percent: 100%;"
3283    >
3284      <div
3285        class="card__inner  ratio"
3286        style="--ratio-percent: 100%;"
3287      ><div class="card__media">
3288            <div class="media media--transparent media--hover-effect">
3289              
3290              <img
3291                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844 1254w
3292                "
3293                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533"
3294                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3295                alt="Relief Bundle - Team Doctors"
3296                class="motion-reduce"
3297                
3298                  loading="lazy"
3299                
3300                width="1254"
3301                height="1254"
3302                id='quick-add-8433935974591-image'
3303              >
3304              
3305<img
3306                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
3307                  "
3308                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
3309                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3310                  alt=""
3311                  class="motion-reduce"
3312                  loading="lazy"
3313                  width="1080"
3314                  height="1080"
3315                ></div>
3316          </div><div class="card__content">
3317          <div class="card__information">
3318            <h3
3319              class="card__heading"
3320              
3321            >
3322              <a
3323                href="/products/relief-bundle"
3324                id="StandardCardNoMediaLink--8433935974591"
3325                class="full-unstyled-link"
3326                aria-labelledby="StandardCardNoMediaLink--8433935974591 NoMediaStandardBadge--8433935974591"
3327              >
3328                Relief Bundle
3329              </a>
3330            </h3>
3331          </div>
3332          <div class="card__badge bottom left">
3333              
3334              
3335                <span
3336                  id="NoMediaStandardBadge--8433935974591"
3337                  class="badge badge--bottom-left color-accent-2"
3338                >
3339                  <svg
3340  aria-hidden="true"
3341  focusable="false"
3342  class="icon icon-discount color-foreground-text"
3343  viewBox="0 0 12 12"
3344>
3345  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
3346</svg>
3347<span class='nowrap'>SAVE 9%</span>
3348                </span></div>
3349        </div>
3350      </div>
3351      <div class="card__content">
3352        <div class="card__information">
3353          <h3
3354            class="card__heading h5"
3355            
3356              id="title--8433935974591"
3357            
3358          >
3359            <a
3360              href="/products/relief-bundle"
3361              id="CardLink--8433935974591"
3362              class="full-unstyled-link"
3363              aria-labelledby="CardLink--8433935974591 Badge--8433935974591"
3364            >
3365              Relief Bundle
3366            </a>
3367          </h3>
3368          
3369            <div class="product-subtitle">
3370              Comfort Relief Pad + Core Recovery Pad
3371            </div>
3372          
3373          <div class="card-information"><span class="caption-large light"></span>
3374<div
3375  class="
3376    price  price--on-sale "
3377>
3378  <div class="price__container"><div class="price__regular">
3379      <span class="visually-hidden visually-hidden--inline">Regular price</span>
3380      <span class="price-item price-item--regular">
3381        $99.00
3382      </span>
3383    </div>
3384    <div class="price__sale ">
3385      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
3386      <span class="price-item price-item--sale price-item--last">
3387        $99.00
3388      </span>
3389        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
3390        <span class="price__compare-price">
3391          <s class="price-item price-item--regular">
3392            $109.90
3393          </s>
3394        </span></div>
3395    <small class="unit-price caption hidden">
3396      <span class="visually-hidden">Unit price</span>
3397      <span class="price-item price-item--last">
3398        <span></span>
3399        <span aria-hidden="true">/</span>
3400        <span class="visually-hidden">&nbsp;per&nbsp;</span>
3401        <span>
3402        </span>
3403      </span>
3404    </small>
3405  </div></div>
3406
3407          </div>
3408        </div>
3409        
3410<div class="card__badge bottom left"><span
3411              id="Badge--8433935974591"
3412              class="badge badge--bottom-left color-accent-2"
3413            >
3414              9%
3415            </span></div>
3416      </div>
3417    </div>
3418  </div>
3418<script>
3419  (() => {
3420    if (window.cardProductQuickAddVariantFixLoaded) return;
3421    window.cardProductQuickAddVariantFixLoaded = true;
3422
3423    const ADD_TO_CART_TEXT = "Add to cart";
3424    const SOLD_OUT_TEXT = "Sold out";
3425
3426    function parseVariants(container) {
3427      if (!container) return [];
3428
3429      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
3430
3431      for (const script of scripts) {
3432        try {
3433          const data = JSON.parse(script.textContent.trim());
3434
3435          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
3436            return data;
3437          }
3438
3439          if (data && Array.isArray(data.variants)) {
3440            return data.variants;
3441          }
3442        } catch (error) {}
3443      }
3444
3445      return [];
3446    }
3447
3448    function getSelectedOptionValues(container) {
3449      const values = [];
3450
3451      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
3452        const checkedInput = group.querySelector('input[type="radio"]:checked');
3453        const select = group.querySelector('select');
3454
3455        if (checkedInput) {
3456          values.push(checkedInput.value);
3457        } else if (select) {
3458          values.push(select.value);
3459        }
3460      });
3461
3462      return values;
3463    }
3464
3465    function getCurrentVariant(container, form, variants) {
3466      const idInput = form && form.querySelector('[name="id"]');
3467      const selectedId = idInput && idInput.value;
3468
3469      if (selectedId) {
3470        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
3471        if (byId) return byId;
3472      }
3473
3474      const selectedOptions = getSelectedOptionValues(container);
3475
3476      if (selectedOptions.length) {
3477        return variants.find((variant) => {
3478          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
3479          return selectedOptions.every((value, index) => String(options[index]) === String(value));
3480        });
3481      }
3482
3483      return null;
3484    }
3485
3486    function setButtonState(form, variant) {
3487      if (!form) return;
3488
3489      const idInput = form.querySelector('[name="id"]');
3490      const addButton = form.querySelector('[name="add"]');
3491      const buttonLabel =
3492        addButton &&
3493        (addButton.querySelector('.main-atc__label__text') ||
3494          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
3495      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
3496      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
3497
3498      if (!addButton || !idInput || !variant) return;
3499
3500      idInput.value = variant.id;
3501      idInput.disabled = false;
3502
3503      if (spinner) spinner.classList.add('hidden');
3504
3505      if (variant.available) {
3506        addButton.disabled = false;
3507        addButton.removeAttribute('disabled');
3508        addButton.removeAttribute('aria-disabled');
3509        addButton.classList.remove('loading');
3510
3511        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
3512        if (soldOutMessage) soldOutMessage.classList.add('hidden');
3513      } else {
3514        addButton.disabled = true;
3515        addButton.setAttribute('disabled', 'disabled');
3516        addButton.setAttribute('aria-disabled', 'true');
3517
3518        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
3519        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
3520      }
3521    }
3522
3523    function syncContainer(container) {
3524      if (!container) return;
3525
3526      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
3527      if (!form) return;
3528
3529      const variants = parseVariants(container);
3530      if (!variants.length) return;
3531
3532      const variant = getCurrentVariant(container, form, variants);
3533      if (!variant) return;
3534
3535      setButtonState(form, variant);
3536    }
3537
3538    document.addEventListener('change', (event) => {
3539      const quickAddModal = event.target.closest('quick-add-modal');
3540      const cardVariantSelects = event.target.closest('card-variant-selects');
3541
3542      if (quickAddModal) {
3543        setTimeout(() => syncContainer(quickAddModal), 80);
3544        setTimeout(() => syncContainer(quickAddModal), 250);
3545      }
3546
3547      if (cardVariantSelects) {
3548        const card = cardVariantSelects.closest('.card-wrapper');
3549        if (card) {
3550          setTimeout(() => syncContainer(card), 80);
3551          setTimeout(() => syncContainer(card), 250);
3552        }
3553      }
3554    });
3555
3556    const observer = new MutationObserver((mutations) => {
3557      mutations.forEach((mutation) => {
3558        mutation.addedNodes.forEach((node) => {
3559          if (!(node instanceof HTMLElement)) return;
3560
3561          if (node.matches && node.matches('quick-add-modal')) {
3562            setTimeout(() => syncContainer(node), 150);
3563          }
3564
3565          node.querySelectorAll &&
3566            node.querySelectorAll('quick-add-modal').forEach((modal) => {
3567              setTimeout(() => syncContainer(modal), 150);
3568            });
3569        });
3570      });
3571    });
3572
3573    observer.observe(document.documentElement, {
3574      childList: true,
3575      subtree: true
3576    });
3577
3578    document.addEventListener('DOMContentLoaded', () => {
3579      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
3580    });
3581  })();
3582</script>
3582
3583
3584
3585
3586
3587                                              </li>
3588                                            
3589                                              <li>
3590                                                
3591<div class="card-wrapper product-card-wrapper underline-links-hover">
3592    <div
3593      class="
3594        card
3595        card--card
3596         card--media
3597         color-background-1 gradient
3598        
3599        
3600        
3601         card--badge-sided
3602        
3603        
3604      "
3605      style="--ratio-percent: 100%;"
3606    >
3607      <div
3608        class="card__inner  ratio"
3609        style="--ratio-percent: 100%;"
3610      ><div class="card__media">
3611            <div class="media media--transparent media--hover-effect">
3612              
3613              <img
3614                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844 1254w
3615                "
3616                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533"
3617                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3618                alt="Performance Bundle - Team Doctors"
3619                class="motion-reduce"
3620                
3621                  loading="lazy"
3622                
3623                width="1254"
3624                height="1254"
3625                id='quick-add-8433936007359-image'
3626              >
3627              
3628<img
3629                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322 1080w
3630                  "
3631                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533"
3632                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3633                  alt=""
3634                  class="motion-reduce"
3635                  loading="lazy"
3636                  width="1080"
3637                  height="1080"
3638                ></div>
3639          </div><div class="card__content">
3640          <div class="card__information">
3641            <h3
3642              class="card__heading"
3643              
3644            >
3645              <a
3646                href="/products/performance-bundle"
3647                id="StandardCardNoMediaLink--8433936007359"
3648                class="full-unstyled-link"
3649                aria-labelledby="StandardCardNoMediaLink--8433936007359 NoMediaStandardBadge--8433936007359"
3650              >
3651                Performance Bundle
3652              </a>
3653            </h3>
3654          </div>
3655          <div class="card__badge bottom left">
3656              
3657              
3658                <span
3659                  id="NoMediaStandardBadge--8433936007359"
3660                  class="badge badge--bottom-left color-accent-2"
3661                >
3662                  <svg
3663  aria-hidden="true"
3664  focusable="false"
3665  class="icon icon-discount color-foreground-text"
3666  viewBox="0 0 12 12"
3667>
3668  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
3669</svg>
3670<span class='nowrap'>SAVE 9%</span>
3671                </span></div>
3672        </div>
3673      </div>
3674      <div class="card__content">
3675        <div class="card__information">
3676          <h3
3677            class="card__heading h5"
3678            
3679              id="title--8433936007359"
3680            
3681          >
3682            <a
3683              href="/products/performance-bundle"
3684              id="CardLink--8433936007359"
3685              class="full-unstyled-link"
3686              aria-labelledby="CardLink--8433936007359 Badge--8433936007359"
3687            >
3688              Performance Bundle
3689            </a>
3690          </h3>
3691          
3692            <div class="product-subtitle">
3693              Core Cecovery Pad + Peak Performance Pad
3694            </div>
3695          
3696          <div class="card-information"><span class="caption-large light"></span>
3697<div
3698  class="
3699    price  price--on-sale "
3700>
3701  <div class="price__container"><div class="price__regular">
3702      <span class="visually-hidden visually-hidden--inline">Regular price</span>
3703      <span class="price-item price-item--regular">
3704        $99.00
3705      </span>
3706    </div>
3707    <div class="price__sale ">
3708      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
3709      <span class="price-item price-item--sale price-item--last">
3710        $99.00
3711      </span>
3712        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
3713        <span class="price__compare-price">
3714          <s class="price-item price-item--regular">
3715            $109.90
3716          </s>
3717        </span></div>
3718    <small class="unit-price caption hidden">
3719      <span class="visually-hidden">Unit price</span>
3720      <span class="price-item price-item--last">
3721        <span></span>
3722        <span aria-hidden="true">/</span>
3723        <span class="visually-hidden">&nbsp;per&nbsp;</span>
3724        <span>
3725        </span>
3726      </span>
3727    </small>
3728  </div></div>
3729
3730          </div>
3731        </div>
3732        
3733<div class="card__badge bottom left"><span
3734              id="Badge--8433936007359"
3735              class="badge badge--bottom-left color-accent-2"
3736            >
3737              9%
3738            </span></div>
3739      </div>
3740    </div>
3741  </div>
3741<script>
3742  (() => {
3743    if (window.cardProductQuickAddVariantFixLoaded) return;
3744    window.cardProductQuickAddVariantFixLoaded = true;
3745
3746    const ADD_TO_CART_TEXT = "Add to cart";
3747    const SOLD_OUT_TEXT = "Sold out";
3748
3749    function parseVariants(container) {
3750      if (!container) return [];
3751
3752      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
3753
3754      for (const script of scripts) {
3755        try {
3756          const data = JSON.parse(script.textContent.trim());
3757
3758          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
3759            return data;
3760          }
3761
3762          if (data && Array.isArray(data.variants)) {
3763            return data.variants;
3764          }
3765        } catch (error) {}
3766      }
3767
3768      return [];
3769    }
3770
3771    function getSelectedOptionValues(container) {
3772      const values = [];
3773
3774      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
3775        const checkedInput = group.querySelector('input[type="radio"]:checked');
3776        const select = group.querySelector('select');
3777
3778        if (checkedInput) {
3779          values.push(checkedInput.value);
3780        } else if (select) {
3781          values.push(select.value);
3782        }
3783      });
3784
3785      return values;
3786    }
3787
3788    function getCurrentVariant(container, form, variants) {
3789      const idInput = form && form.querySelector('[name="id"]');
3790      const selectedId = idInput && idInput.value;
3791
3792      if (selectedId) {
3793        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
3794        if (byId) return byId;
3795      }
3796
3797      const selectedOptions = getSelectedOptionValues(container);
3798
3799      if (selectedOptions.length) {
3800        return variants.find((variant) => {
3801          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
3802          return selectedOptions.every((value, index) => String(options[index]) === String(value));
3803        });
3804      }
3805
3806      return null;
3807    }
3808
3809    function setButtonState(form, variant) {
3810      if (!form) return;
3811
3812      const idInput = form.querySelector('[name="id"]');
3813      const addButton = form.querySelector('[name="add"]');
3814      const buttonLabel =
3815        addButton &&
3816        (addButton.querySelector('.main-atc__label__text') ||
3817          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
3818      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
3819      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
3820
3821      if (!addButton || !idInput || !variant) return;
3822
3823      idInput.value = variant.id;
3824      idInput.disabled = false;
3825
3826      if (spinner) spinner.classList.add('hidden');
3827
3828      if (variant.available) {
3829        addButton.disabled = false;
3830        addButton.removeAttribute('disabled');
3831        addButton.removeAttribute('aria-disabled');
3832        addButton.classList.remove('loading');
3833
3834        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
3835        if (soldOutMessage) soldOutMessage.classList.add('hidden');
3836      } else {
3837        addButton.disabled = true;
3838        addButton.setAttribute('disabled', 'disabled');
3839        addButton.setAttribute('aria-disabled', 'true');
3840
3841        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
3842        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
3843      }
3844    }
3845
3846    function syncContainer(container) {
3847      if (!container) return;
3848
3849      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
3850      if (!form) return;
3851
3852      const variants = parseVariants(container);
3853      if (!variants.length) return;
3854
3855      const variant = getCurrentVariant(container, form, variants);
3856      if (!variant) return;
3857
3858      setButtonState(form, variant);
3859    }
3860
3861    document.addEventListener('change', (event) => {
3862      const quickAddModal = event.target.closest('quick-add-modal');
3863      const cardVariantSelects = event.target.closest('card-variant-selects');
3864
3865      if (quickAddModal) {
3866        setTimeout(() => syncContainer(quickAddModal), 80);
3867        setTimeout(() => syncContainer(quickAddModal), 250);
3868      }
3869
3870      if (cardVariantSelects) {
3871        const card = cardVariantSelects.closest('.card-wrapper');
3872        if (card) {
3873          setTimeout(() => syncContainer(card), 80);
3874          setTimeout(() => syncContainer(card), 250);
3875        }
3876      }
3877    });
3878
3879    const observer = new MutationObserver((mutations) => {
3880      mutations.forEach((mutation) => {
3881        mutation.addedNodes.forEach((node) => {
3882          if (!(node instanceof HTMLElement)) return;
3883
3884          if (node.matches && node.matches('quick-add-modal')) {
3885            setTimeout(() => syncContainer(node), 150);
3886          }
3887
3888          node.querySelectorAll &&
3889            node.querySelectorAll('quick-add-modal').forEach((modal) => {
3890              setTimeout(() => syncContainer(modal), 150);
3891            });
3892        });
3893      });
3894    });
3895
3896    observer.observe(document.documentElement, {
3897      childList: true,
3898      subtree: true
3899    });
3900
3901    document.addEventListener('DOMContentLoaded', () => {
3902      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
3903    });
3904  })();
3905</script>
3905
3906
3907
3908
3909
3910                                              </li>
3911                                            
3912                                              <li>
3913                                                
3914<div class="card-wrapper product-card-wrapper underline-links-hover">
3915    <div
3916      class="
3917        card
3918        card--card
3919         card--media
3920         color-background-1 gradient
3921        
3922        
3923        
3924         card--badge-sided
3925        
3926        
3927      "
3928      style="--ratio-percent: 100%;"
3929    >
3930      <div
3931        class="card__inner  ratio"
3932        style="--ratio-percent: 100%;"
3933      ><div class="card__media">
3934            <div class="media media--transparent media--hover-effect">
3935              
3936              <img
3937                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
3938                "
3939                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
3940                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3941                alt="🔴 Comfort Relief Pad™ - Team Doctors"
3942                class="motion-reduce"
3943                
3944                  loading="lazy"
3945                
3946                width="1080"
3947                height="1080"
3948                id='quick-add-8358127599807-image'
3949              >
3950              
3951<img
3952                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
3953                  "
3954                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
3955                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
3956                  alt=""
3957                  class="motion-reduce"
3958                  loading="lazy"
3959                  width="1080"
3960                  height="1080"
3961                ></div>
3962          </div><div class="card__content">
3963          <div class="card__information">
3964            <h3
3965              class="card__heading"
3966              
3967            >
3968              <a
3969                href="/products/biomimetic-comfort-relief-pad"
3970                id="StandardCardNoMediaLink--8358127599807"
3971                class="full-unstyled-link"
3972                aria-labelledby="StandardCardNoMediaLink--8358127599807 NoMediaStandardBadge--8358127599807"
3973              >
3974                🔴 Comfort Relief Pad™
3975              </a>
3976            </h3>
3977          </div>
3978          <div class="card__badge bottom left">
3979              
3980              </div>
3981        </div>
3982      </div>
3983      <div class="card__content">
3984        <div class="card__information">
3985          <h3
3986            class="card__heading h5"
3987            
3988              id="title--8358127599807"
3989            
3990          >
3991            <a
3992              href="/products/biomimetic-comfort-relief-pad"
3993              id="CardLink--8358127599807"
3994              class="full-unstyled-link"
3995              aria-labelledby="CardLink--8358127599807 Badge--8358127599807"
3996            >
3997              🔴 Comfort Relief Pad™
3998            </a>
3999          </h3>
4000          
4001          <div class="card-information"><span class="caption-large light"></span>
4002<div
4003  class="
4004    price "
4005>
4006  <div class="price__container"><div class="price__regular">
4007      <span class="visually-hidden visually-hidden--inline">Regular price</span>
4008      <span class="price-item price-item--regular">
4009        $54.95
4010      </span>
4011    </div>
4012    <div class="price__sale ">
4013      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
4014      <span class="price-item price-item--sale price-item--last">
4015        $54.95
4016      </span>
4017        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
4018        <span class="price__compare-price">
4019          <s class="price-item price-item--regular">
4020            
4021          </s>
4022        </span></div>
4023    <small class="unit-price caption hidden">
4024      <span class="visually-hidden">Unit price</span>
4025      <span class="price-item price-item--last">
4026        <span></span>
4027        <span aria-hidden="true">/</span>
4028        <span class="visually-hidden">&nbsp;per&nbsp;</span>
4029        <span>
4030        </span>
4031      </span>
4032    </small>
4033  </div></div>
4034
4035          </div>
4036        </div>
4037        
4038<div class="card__badge bottom left"></div>
4039      </div>
4040    </div>
4041  </div>
4041<script>
4042  (() => {
4043    if (window.cardProductQuickAddVariantFixLoaded) return;
4044    window.cardProductQuickAddVariantFixLoaded = true;
4045
4046    const ADD_TO_CART_TEXT = "Add to cart";
4047    const SOLD_OUT_TEXT = "Sold out";
4048
4049    function parseVariants(container) {
4050      if (!container) return [];
4051
4052      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
4053
4054      for (const script of scripts) {
4055        try {
4056          const data = JSON.parse(script.textContent.trim());
4057
4058          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
4059            return data;
4060          }
4061
4062          if (data && Array.isArray(data.variants)) {
4063            return data.variants;
4064          }
4065        } catch (error) {}
4066      }
4067
4068      return [];
4069    }
4070
4071    function getSelectedOptionValues(container) {
4072      const values = [];
4073
4074      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
4075        const checkedInput = group.querySelector('input[type="radio"]:checked');
4076        const select = group.querySelector('select');
4077
4078        if (checkedInput) {
4079          values.push(checkedInput.value);
4080        } else if (select) {
4081          values.push(select.value);
4082        }
4083      });
4084
4085      return values;
4086    }
4087
4088    function getCurrentVariant(container, form, variants) {
4089      const idInput = form && form.querySelector('[name="id"]');
4090      const selectedId = idInput && idInput.value;
4091
4092      if (selectedId) {
4093        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
4094        if (byId) return byId;
4095      }
4096
4097      const selectedOptions = getSelectedOptionValues(container);
4098
4099      if (selectedOptions.length) {
4100        return variants.find((variant) => {
4101          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
4102          return selectedOptions.every((value, index) => String(options[index]) === String(value));
4103        });
4104      }
4105
4106      return null;
4107    }
4108
4109    function setButtonState(form, variant) {
4110      if (!form) return;
4111
4112      const idInput = form.querySelector('[name="id"]');
4113      const addButton = form.querySelector('[name="add"]');
4114      const buttonLabel =
4115        addButton &&
4116        (addButton.querySelector('.main-atc__label__text') ||
4117          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
4118      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
4119      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
4120
4121      if (!addButton || !idInput || !variant) return;
4122
4123      idInput.value = variant.id;
4124      idInput.disabled = false;
4125
4126      if (spinner) spinner.classList.add('hidden');
4127
4128      if (variant.available) {
4129        addButton.disabled = false;
4130        addButton.removeAttribute('disabled');
4131        addButton.removeAttribute('aria-disabled');
4132        addButton.classList.remove('loading');
4133
4134        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
4135        if (soldOutMessage) soldOutMessage.classList.add('hidden');
4136      } else {
4137        addButton.disabled = true;
4138        addButton.setAttribute('disabled', 'disabled');
4139        addButton.setAttribute('aria-disabled', 'true');
4140
4141        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
4142        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
4143      }
4144    }
4145
4146    function syncContainer(container) {
4147      if (!container) return;
4148
4149      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
4150      if (!form) return;
4151
4152      const variants = parseVariants(container);
4153      if (!variants.length) return;
4154
4155      const variant = getCurrentVariant(container, form, variants);
4156      if (!variant) return;
4157
4158      setButtonState(form, variant);
4159    }
4160
4161    document.addEventListener('change', (event) => {
4162      const quickAddModal = event.target.closest('quick-add-modal');
4163      const cardVariantSelects = event.target.closest('card-variant-selects');
4164
4165      if (quickAddModal) {
4166        setTimeout(() => syncContainer(quickAddModal), 80);
4167        setTimeout(() => syncContainer(quickAddModal), 250);
4168      }
4169
4170      if (cardVariantSelects) {
4171        const card = cardVariantSelects.closest('.card-wrapper');
4172        if (card) {
4173          setTimeout(() => syncContainer(card), 80);
4174          setTimeout(() => syncContainer(card), 250);
4175        }
4176      }
4177    });
4178
4179    const observer = new MutationObserver((mutations) => {
4180      mutations.forEach((mutation) => {
4181        mutation.addedNodes.forEach((node) => {
4182          if (!(node instanceof HTMLElement)) return;
4183
4184          if (node.matches && node.matches('quick-add-modal')) {
4185            setTimeout(() => syncContainer(node), 150);
4186          }
4187
4188          node.querySelectorAll &&
4189            node.querySelectorAll('quick-add-modal').forEach((modal) => {
4190              setTimeout(() => syncContainer(modal), 150);
4191            });
4192        });
4193      });
4194    });
4195
4196    observer.observe(document.documentElement, {
4197      childList: true,
4198      subtree: true
4199    });
4200
4201    document.addEventListener('DOMContentLoaded', () => {
4202      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
4203    });
4204  })();
4205</script>
4205
4206
4207
4208
4209
4210                                              </li>
4211                                            
4212                                              <li>
4213                                                
4214<div class="card-wrapper product-card-wrapper underline-links-hover">
4215    <div
4216      class="
4217        card
4218        card--card
4219         card--media
4220         color-background-1 gradient
4221        
4222        
4223        
4224         card--badge-sided
4225        
4226        
4227      "
4228      style="--ratio-percent: 100%;"
4229    >
4230      <div
4231        class="card__inner  ratio"
4232        style="--ratio-percent: 100%;"
4233      ><div class="card__media">
4234            <div class="media media--transparent media--hover-effect">
4235              
4236              <img
4237                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451 1080w
4238                "
4239                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533"
4240                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4241                alt="White"
4242                class="motion-reduce"
4243                
4244                  loading="lazy"
4245                
4246                width="1080"
4247                height="1080"
4248                id='quick-add-8358145917119-image'
4249              >
4250              
4251<img
4252                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477 1080w
4253                  "
4254                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533"
4255                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4256                  alt=""
4257                  class="motion-reduce"
4258                  loading="lazy"
4259                  width="1080"
4260                  height="1080"
4261                ></div>
4262          </div><div class="card__content">
4263          <div class="card__information">
4264            <h3
4265              class="card__heading"
4266              
4267            >
4268              <a
4269                href="/products/biomimetic-core-recovery-pad"
4270                id="StandardCardNoMediaLink--8358145917119"
4271                class="full-unstyled-link"
4272                aria-labelledby="StandardCardNoMediaLink--8358145917119 NoMediaStandardBadge--8358145917119"
4273              >
4274                🟡 Core Recovery Pad™
4275              </a>
4276            </h3>
4277          </div>
4278          <div class="card__badge bottom left">
4279              
4280              </div>
4281        </div>
4282      </div>
4283      <div class="card__content">
4284        <div class="card__information">
4285          <h3
4286            class="card__heading h5"
4287            
4288              id="title--8358145917119"
4289            
4290          >
4291            <a
4292              href="/products/biomimetic-core-recovery-pad"
4293              id="CardLink--8358145917119"
4294              class="full-unstyled-link"
4295              aria-labelledby="CardLink--8358145917119 Badge--8358145917119"
4296            >
4297              🟡 Core Recovery Pad™
4298            </a>
4299          </h3>
4300          
4301          <div class="card-information"><span class="caption-large light"></span>
4302<div
4303  class="
4304    price "
4305>
4306  <div class="price__container"><div class="price__regular">
4307      <span class="visually-hidden visually-hidden--inline">Regular price</span>
4308      <span class="price-item price-item--regular">
4309        $54.95
4310      </span>
4311    </div>
4312    <div class="price__sale ">
4313      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
4314      <span class="price-item price-item--sale price-item--last">
4315        $54.95
4316      </span>
4317        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
4318        <span class="price__compare-price">
4319          <s class="price-item price-item--regular">
4320            
4321          </s>
4322        </span></div>
4323    <small class="unit-price caption hidden">
4324      <span class="visually-hidden">Unit price</span>
4325      <span class="price-item price-item--last">
4326        <span></span>
4327        <span aria-hidden="true">/</span>
4328        <span class="visually-hidden">&nbsp;per&nbsp;</span>
4329        <span>
4330        </span>
4331      </span>
4332    </small>
4333  </div></div>
4334
4335          </div>
4336        </div>
4337        
4338<div class="card__badge bottom left"></div>
4339      </div>
4340    </div>
4341  </div>
4341<script>
4342  (() => {
4343    if (window.cardProductQuickAddVariantFixLoaded) return;
4344    window.cardProductQuickAddVariantFixLoaded = true;
4345
4346    const ADD_TO_CART_TEXT = "Add to cart";
4347    const SOLD_OUT_TEXT = "Sold out";
4348
4349    function parseVariants(container) {
4350      if (!container) return [];
4351
4352      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
4353
4354      for (const script of scripts) {
4355        try {
4356          const data = JSON.parse(script.textContent.trim());
4357
4358          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
4359            return data;
4360          }
4361
4362          if (data && Array.isArray(data.variants)) {
4363            return data.variants;
4364          }
4365        } catch (error) {}
4366      }
4367
4368      return [];
4369    }
4370
4371    function getSelectedOptionValues(container) {
4372      const values = [];
4373
4374      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
4375        const checkedInput = group.querySelector('input[type="radio"]:checked');
4376        const select = group.querySelector('select');
4377
4378        if (checkedInput) {
4379          values.push(checkedInput.value);
4380        } else if (select) {
4381          values.push(select.value);
4382        }
4383      });
4384
4385      return values;
4386    }
4387
4388    function getCurrentVariant(container, form, variants) {
4389      const idInput = form && form.querySelector('[name="id"]');
4390      const selectedId = idInput && idInput.value;
4391
4392      if (selectedId) {
4393        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
4394        if (byId) return byId;
4395      }
4396
4397      const selectedOptions = getSelectedOptionValues(container);
4398
4399      if (selectedOptions.length) {
4400        return variants.find((variant) => {
4401          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
4402          return selectedOptions.every((value, index) => String(options[index]) === String(value));
4403        });
4404      }
4405
4406      return null;
4407    }
4408
4409    function setButtonState(form, variant) {
4410      if (!form) return;
4411
4412      const idInput = form.querySelector('[name="id"]');
4413      const addButton = form.querySelector('[name="add"]');
4414      const buttonLabel =
4415        addButton &&
4416        (addButton.querySelector('.main-atc__label__text') ||
4417          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
4418      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
4419      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
4420
4421      if (!addButton || !idInput || !variant) return;
4422
4423      idInput.value = variant.id;
4424      idInput.disabled = false;
4425
4426      if (spinner) spinner.classList.add('hidden');
4427
4428      if (variant.available) {
4429        addButton.disabled = false;
4430        addButton.removeAttribute('disabled');
4431        addButton.removeAttribute('aria-disabled');
4432        addButton.classList.remove('loading');
4433
4434        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
4435        if (soldOutMessage) soldOutMessage.classList.add('hidden');
4436      } else {
4437        addButton.disabled = true;
4438        addButton.setAttribute('disabled', 'disabled');
4439        addButton.setAttribute('aria-disabled', 'true');
4440
4441        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
4442        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
4443      }
4444    }
4445
4446    function syncContainer(container) {
4447      if (!container) return;
4448
4449      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
4450      if (!form) return;
4451
4452      const variants = parseVariants(container);
4453      if (!variants.length) return;
4454
4455      const variant = getCurrentVariant(container, form, variants);
4456      if (!variant) return;
4457
4458      setButtonState(form, variant);
4459    }
4460
4461    document.addEventListener('change', (event) => {
4462      const quickAddModal = event.target.closest('quick-add-modal');
4463      const cardVariantSelects = event.target.closest('card-variant-selects');
4464
4465      if (quickAddModal) {
4466        setTimeout(() => syncContainer(quickAddModal), 80);
4467        setTimeout(() => syncContainer(quickAddModal), 250);
4468      }
4469
4470      if (cardVariantSelects) {
4471        const card = cardVariantSelects.closest('.card-wrapper');
4472        if (card) {
4473          setTimeout(() => syncContainer(card), 80);
4474          setTimeout(() => syncContainer(card), 250);
4475        }
4476      }
4477    });
4478
4479    const observer = new MutationObserver((mutations) => {
4480      mutations.forEach((mutation) => {
4481        mutation.addedNodes.forEach((node) => {
4482          if (!(node instanceof HTMLElement)) return;
4483
4484          if (node.matches && node.matches('quick-add-modal')) {
4485            setTimeout(() => syncContainer(node), 150);
4486          }
4487
4488          node.querySelectorAll &&
4489            node.querySelectorAll('quick-add-modal').forEach((modal) => {
4490              setTimeout(() => syncContainer(modal), 150);
4491            });
4492        });
4493      });
4494    });
4495
4496    observer.observe(document.documentElement, {
4497      childList: true,
4498      subtree: true
4499    });
4500
4501    document.addEventListener('DOMContentLoaded', () => {
4502      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
4503    });
4504  })();
4505</script>
4505
4506
4507
4508
4509
4510                                              </li>
4511                                            
4512                                              <li>
4513                                                
4514<div class="card-wrapper product-card-wrapper underline-links-hover">
4515    <div
4516      class="
4517        card
4518        card--card
4519         card--media
4520         color-background-1 gradient
4521        
4522        
4523        
4524         card--badge-sided
4525        
4526        
4527      "
4528      style="--ratio-percent: 100%;"
4529    >
4530      <div
4531        class="card__inner  ratio"
4532        style="--ratio-percent: 100%;"
4533      ><div class="card__media">
4534            <div class="media media--transparent media--hover-effect">
4535              
4536              <img
4537                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
4538                "
4539                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
4540                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4541                alt="🟢 Peak Performance Pad™ - Team Doctors"
4542                class="motion-reduce"
4543                
4544                  loading="lazy"
4545                
4546                width="1080"
4547                height="1080"
4548                id='quick-add-8358149750975-image'
4549              >
4550              
4551<img
4552                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529 1080w
4553                  "
4554                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533"
4555                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4556                  alt=""
4557                  class="motion-reduce"
4558                  loading="lazy"
4559                  width="1080"
4560                  height="1080"
4561                ></div>
4562          </div><div class="card__content">
4563          <div class="card__information">
4564            <h3
4565              class="card__heading"
4566              
4567            >
4568              <a
4569                href="/products/biomimetic-peak-performance-pad"
4570                id="StandardCardNoMediaLink--8358149750975"
4571                class="full-unstyled-link"
4572                aria-labelledby="StandardCardNoMediaLink--8358149750975 NoMediaStandardBadge--8358149750975"
4573              >
4574                🟢 Peak Performance Pad™
4575              </a>
4576            </h3>
4577          </div>
4578          <div class="card__badge bottom left">
4579              
4580              </div>
4581        </div>
4582      </div>
4583      <div class="card__content">
4584        <div class="card__information">
4585          <h3
4586            class="card__heading h5"
4587            
4588              id="title--8358149750975"
4589            
4590          >
4591            <a
4592              href="/products/biomimetic-peak-performance-pad"
4593              id="CardLink--8358149750975"
4594              class="full-unstyled-link"
4595              aria-labelledby="CardLink--8358149750975 Badge--8358149750975"
4596            >
4597              🟢 Peak Performance Pad™
4598            </a>
4599          </h3>
4600          
4601          <div class="card-information"><span class="caption-large light"></span>
4602<div
4603  class="
4604    price "
4605>
4606  <div class="price__container"><div class="price__regular">
4607      <span class="visually-hidden visually-hidden--inline">Regular price</span>
4608      <span class="price-item price-item--regular">
4609        $54.95
4610      </span>
4611    </div>
4612    <div class="price__sale ">
4613      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
4614      <span class="price-item price-item--sale price-item--last">
4615        $54.95
4616      </span>
4617        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
4618        <span class="price__compare-price">
4619          <s class="price-item price-item--regular">
4620            
4621          </s>
4622        </span></div>
4623    <small class="unit-price caption hidden">
4624      <span class="visually-hidden">Unit price</span>
4625      <span class="price-item price-item--last">
4626        <span></span>
4627        <span aria-hidden="true">/</span>
4628        <span class="visually-hidden">&nbsp;per&nbsp;</span>
4629        <span>
4630        </span>
4631      </span>
4632    </small>
4633  </div></div>
4634
4635          </div>
4636        </div>
4637        
4638<div class="card__badge bottom left"></div>
4639      </div>
4640    </div>
4641  </div>
4641<script>
4642  (() => {
4643    if (window.cardProductQuickAddVariantFixLoaded) return;
4644    window.cardProductQuickAddVariantFixLoaded = true;
4645
4646    const ADD_TO_CART_TEXT = "Add to cart";
4647    const SOLD_OUT_TEXT = "Sold out";
4648
4649    function parseVariants(container) {
4650      if (!container) return [];
4651
4652      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
4653
4654      for (const script of scripts) {
4655        try {
4656          const data = JSON.parse(script.textContent.trim());
4657
4658          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
4659            return data;
4660          }
4661
4662          if (data && Array.isArray(data.variants)) {
4663            return data.variants;
4664          }
4665        } catch (error) {}
4666      }
4667
4668      return [];
4669    }
4670
4671    function getSelectedOptionValues(container) {
4672      const values = [];
4673
4674      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
4675        const checkedInput = group.querySelector('input[type="radio"]:checked');
4676        const select = group.querySelector('select');
4677
4678        if (checkedInput) {
4679          values.push(checkedInput.value);
4680        } else if (select) {
4681          values.push(select.value);
4682        }
4683      });
4684
4685      return values;
4686    }
4687
4688    function getCurrentVariant(container, form, variants) {
4689      const idInput = form && form.querySelector('[name="id"]');
4690      const selectedId = idInput && idInput.value;
4691
4692      if (selectedId) {
4693        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
4694        if (byId) return byId;
4695      }
4696
4697      const selectedOptions = getSelectedOptionValues(container);
4698
4699      if (selectedOptions.length) {
4700        return variants.find((variant) => {
4701          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
4702          return selectedOptions.every((value, index) => String(options[index]) === String(value));
4703        });
4704      }
4705
4706      return null;
4707    }
4708
4709    function setButtonState(form, variant) {
4710      if (!form) return;
4711
4712      const idInput = form.querySelector('[name="id"]');
4713      const addButton = form.querySelector('[name="add"]');
4714      const buttonLabel =
4715        addButton &&
4716        (addButton.querySelector('.main-atc__label__text') ||
4717          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
4718      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
4719      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
4720
4721      if (!addButton || !idInput || !variant) return;
4722
4723      idInput.value = variant.id;
4724      idInput.disabled = false;
4725
4726      if (spinner) spinner.classList.add('hidden');
4727
4728      if (variant.available) {
4729        addButton.disabled = false;
4730        addButton.removeAttribute('disabled');
4731        addButton.removeAttribute('aria-disabled');
4732        addButton.classList.remove('loading');
4733
4734        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
4735        if (soldOutMessage) soldOutMessage.classList.add('hidden');
4736      } else {
4737        addButton.disabled = true;
4738        addButton.setAttribute('disabled', 'disabled');
4739        addButton.setAttribute('aria-disabled', 'true');
4740
4741        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
4742        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
4743      }
4744    }
4745
4746    function syncContainer(container) {
4747      if (!container) return;
4748
4749      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
4750      if (!form) return;
4751
4752      const variants = parseVariants(container);
4753      if (!variants.length) return;
4754
4755      const variant = getCurrentVariant(container, form, variants);
4756      if (!variant) return;
4757
4758      setButtonState(form, variant);
4759    }
4760
4761    document.addEventListener('change', (event) => {
4762      const quickAddModal = event.target.closest('quick-add-modal');
4763      const cardVariantSelects = event.target.closest('card-variant-selects');
4764
4765      if (quickAddModal) {
4766        setTimeout(() => syncContainer(quickAddModal), 80);
4767        setTimeout(() => syncContainer(quickAddModal), 250);
4768      }
4769
4770      if (cardVariantSelects) {
4771        const card = cardVariantSelects.closest('.card-wrapper');
4772        if (card) {
4773          setTimeout(() => syncContainer(card), 80);
4774          setTimeout(() => syncContainer(card), 250);
4775        }
4776      }
4777    });
4778
4779    const observer = new MutationObserver((mutations) => {
4780      mutations.forEach((mutation) => {
4781        mutation.addedNodes.forEach((node) => {
4782          if (!(node instanceof HTMLElement)) return;
4783
4784          if (node.matches && node.matches('quick-add-modal')) {
4785            setTimeout(() => syncContainer(node), 150);
4786          }
4787
4788          node.querySelectorAll &&
4789            node.querySelectorAll('quick-add-modal').forEach((modal) => {
4790              setTimeout(() => syncContainer(modal), 150);
4791            });
4792        });
4793      });
4794    });
4795
4796    observer.observe(document.documentElement, {
4797      childList: true,
4798      subtree: true
4799    });
4800
4801    document.addEventListener('DOMContentLoaded', () => {
4802      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
4803    });
4804  })();
4805</script>
4805
4806
4807
4808
4809
4810                                              </li>
4811                                            
4812                                          
4813</ul>
4814                                      
4815                                    </div>
4816                                  </details></li><li><details id="Details-menu-drawer-submenu-2">
4817                                    <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
4818                                      
4819                                      All Products
4820                                      <svg
4821  viewBox="0 0 14 10"
4822  fill="none"
4823  aria-hidden="true"
4824  focusable="false"
4825  class="icon icon-arrow"
4826  xmlns="http://www.w3.org/2000/svg"
4827>
4828  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
4829</svg>
4830
4831                                      <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
4832  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
4833</svg>
4834
4835                                    </summary>
4836                                    <div id="childlink-all-products" class="menu-drawer__submenu has-submenu gradient motion-reduce">
4837                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
4838                                        <svg
4839  viewBox="0 0 14 10"
4840  fill="none"
4841  aria-hidden="true"
4842  focusable="false"
4843  class="icon icon-arrow"
4844  xmlns="http://www.w3.org/2000/svg"
4845>
4846  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
4847</svg>
4848
4849                                        All Products
4850                                      </button>
4851                                      
4852                                        <ul class="products-mega-menu__cards products-mega-menu__cards--mobile">
4853                                          
4854                                            
4855                                            
4856                                            
4857                                              <li>
4858                                                
4859<div class="card-wrapper product-card-wrapper underline-links-hover">
4860    <div
4861      class="
4862        card
4863        card--card
4864         card--media
4865         color-background-1 gradient
4866        
4867        
4868        
4869         card--badge-sided
4870        
4871        
4872      "
4873      style="--ratio-percent: 100%;"
4874    >
4875      <div
4876        class="card__inner  ratio"
4877        style="--ratio-percent: 100%;"
4878      ><div class="card__media">
4879            <div class="media media--transparent media--hover-effect">
4880              
4881              <img
4882                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
4883                "
4884                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
4885                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4886                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
4887                class="motion-reduce"
4888                
4889                  loading="lazy"
4890                
4891                width=""
4892                height=""
4893                id='quick-add-7253705130175-image'
4894              >
4895              
4896<img
4897                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.c
4897om/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
4898                  "
4899                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
4900                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
4901                  alt=""
4902                  class="motion-reduce"
4903                  loading="lazy"
4904                  width="810"
4905                  height="605"
4906                ></div>
4907          </div><div class="card__content">
4908          <div class="card__information">
4909            <h3
4910              class="card__heading"
4911              
4912            >
4913              <a
4914                href="/products/vibeassage-pro"
4915                id="StandardCardNoMediaLink--7253705130175"
4916                class="full-unstyled-link"
4917                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
4918              >
4919                The Vibeassage Pro® with the full 3-pad Biomimetic System™
4920              </a>
4921            </h3>
4922          </div>
4923          <div class="card__badge bottom left">
4924              
4925              
4926                <span
4927                  id="NoMediaStandardBadge--7253705130175"
4928                  class="badge badge--bottom-left color-accent-2"
4929                >
4930                  <svg
4931  aria-hidden="true"
4932  focusable="false"
4933  class="icon icon-discount color-foreground-text"
4934  viewBox="0 0 12 12"
4935>
4936  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
4937</svg>
4938<span class='nowrap'>SAVE 9%</span>
4939                </span></div>
4940        </div>
4941      </div>
4942      <div class="card__content">
4943        <div class="card__information">
4944          <h3
4945            class="card__heading h5"
4946            
4947              id="title--7253705130175"
4948            
4949          >
4950            <a
4951              href="/products/vibeassage-pro"
4952              id="CardLink--7253705130175"
4953              class="full-unstyled-link"
4954              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
4955            >
4956              The Vibeassage Pro® with the full 3-pad Biomimetic System™
4957            </a>
4958          </h3>
4959          
4960          <div class="card-information"><span class="caption-large light"></span>
4961<div
4962  class="
4963    price  price--on-sale "
4964>
4965  <div class="price__container"><div class="price__regular">
4966      <span class="visually-hidden visually-hidden--inline">Regular price</span>
4967      <span class="price-item price-item--regular">
4968        $1,579.00
4969      </span>
4970    </div>
4971    <div class="price__sale ">
4972      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
4973      <span class="price-item price-item--sale price-item--last">
4974        $1,579.00
4975      </span>
4976        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
4977        <span class="price__compare-price">
4978          <s class="price-item price-item--regular">
4979            $1,749.00
4980          </s>
4981        </span></div>
4982    <small class="unit-price caption hidden">
4983      <span class="visually-hidden">Unit price</span>
4984      <span class="price-item price-item--last">
4985        <span></span>
4986        <span aria-hidden="true">/</span>
4987        <span class="visually-hidden">&nbsp;per&nbsp;</span>
4988        <span>
4989        </span>
4990      </span>
4991    </small>
4992  </div></div>
4993
4994          </div>
4995        </div>
4996        
4997<div class="card__badge bottom left"><span
4998              id="Badge--7253705130175"
4999              class="badge badge--bottom-left color-accent-2"
5000            >
5001              9%
5002            </span></div>
5003      </div>
5004    </div>
5005  </div>
5005<script>
5006  (() => {
5007    if (window.cardProductQuickAddVariantFixLoaded) return;
5008    window.cardProductQuickAddVariantFixLoaded = true;
5009
5010    const ADD_TO_CART_TEXT = "Add to cart";
5011    const SOLD_OUT_TEXT = "Sold out";
5012
5013    function parseVariants(container) {
5014      if (!container) return [];
5015
5016      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
5017
5018      for (const script of scripts) {
5019        try {
5020          const data = JSON.parse(script.textContent.trim());
5021
5022          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
5023            return data;
5024          }
5025
5026          if (data && Array.isArray(data.variants)) {
5027            return data.variants;
5028          }
5029        } catch (error) {}
5030      }
5031
5032      return [];
5033    }
5034
5035    function getSelectedOptionValues(container) {
5036      const values = [];
5037
5038      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
5039        const checkedInput = group.querySelector('input[type="radio"]:checked');
5040        const select = group.querySelector('select');
5041
5042        if (checkedInput) {
5043          values.push(checkedInput.value);
5044        } else if (select) {
5045          values.push(select.value);
5046        }
5047      });
5048
5049      return values;
5050    }
5051
5052    function getCurrentVariant(container, form, variants) {
5053      const idInput = form && form.querySelector('[name="id"]');
5054      const selectedId = idInput && idInput.value;
5055
5056      if (selectedId) {
5057        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
5058        if (byId) return byId;
5059      }
5060
5061      const selectedOptions = getSelectedOptionValues(container);
5062
5063      if (selectedOptions.length) {
5064        return variants.find((variant) => {
5065          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
5066          return selectedOptions.every((value, index) => String(options[index]) === String(value));
5067        });
5068      }
5069
5070      return null;
5071    }
5072
5073    function setButtonState(form, variant) {
5074      if (!form) return;
5075
5076      const idInput = form.querySelector('[name="id"]');
5077      const addButton = form.querySelector('[name="add"]');
5078      const buttonLabel =
5079        addButton &&
5080        (addButton.querySelector('.main-atc__label__text') ||
5081          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
5082      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
5083      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
5084
5085      if (!addButton || !idInput || !variant) return;
5086
5087      idInput.value = variant.id;
5088      idInput.disabled = false;
5089
5090      if (spinner) spinner.classList.add('hidden');
5091
5092      if (variant.available) {
5093        addButton.disabled = false;
5094        addButton.removeAttribute('disabled');
5095        addButton.removeAttribute('aria-disabled');
5096        addButton.classList.remove('loading');
5097
5098        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
5099        if (soldOutMessage) soldOutMessage.classList.add('hidden');
5100      } else {
5101        addButton.disabled = true;
5102        addButton.setAttribute('disabled', 'disabled');
5103        addButton.setAttribute('aria-disabled', 'true');
5104
5105        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
5106        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
5107      }
5108    }
5109
5110    function syncContainer(container) {
5111      if (!container) return;
5112
5113      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
5114      if (!form) return;
5115
5116      const variants = parseVariants(container);
5117      if (!variants.length) return;
5118
5119      const variant = getCurrentVariant(container, form, variants);
5120      if (!variant) return;
5121
5122      setButtonState(form, variant);
5123    }
5124
5125    document.addEventListener('change', (event) => {
5126      const quickAddModal = event.target.closest('quick-add-modal');
5127      const cardVariantSelects = event.target.closest('card-variant-selects');
5128
5129      if (quickAddModal) {
5130        setTimeout(() => syncContainer(quickAddModal), 80);
5131        setTimeout(() => syncContainer(quickAddModal), 250);
5132      }
5133
5134      if (cardVariantSelects) {
5135        const card = cardVariantSelects.closest('.card-wrapper');
5136        if (card) {
5137          setTimeout(() => syncContainer(card), 80);
5138          setTimeout(() => syncContainer(card), 250);
5139        }
5140      }
5141    });
5142
5143    const observer = new MutationObserver((mutations) => {
5144      mutations.forEach((mutation) => {
5145        mutation.addedNodes.forEach((node) => {
5146          if (!(node instanceof HTMLElement)) return;
5147
5148          if (node.matches && node.matches('quick-add-modal')) {
5149            setTimeout(() => syncContainer(node), 150);
5150          }
5151
5152          node.querySelectorAll &&
5153            node.querySelectorAll('quick-add-modal').forEach((modal) => {
5154              setTimeout(() => syncContainer(modal), 150);
5155            });
5156        });
5157      });
5158    });
5159
5160    observer.observe(document.documentElement, {
5161      childList: true,
5162      subtree: true
5163    });
5164
5165    document.addEventListener('DOMContentLoaded', () => {
5166      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
5167    });
5168  })();
5169</script>
5169
5170
5171
5172
5173
5174                                              </li>
5175                                            
5176                                              <li>
5177                                                
5178<div class="card-wrapper product-card-wrapper underline-links-hover">
5179    <div
5180      class="
5181        card
5182        card--card
5183         card--media
5184         color-background-1 gradient
5185        
5186        
5187        
5188         card--badge-sided
5189        
5190        
5191      "
5192      style="--ratio-percent: 100%;"
5193    >
5194      <div
5195        class="card__inner  ratio"
5196        style="--ratio-percent: 100%;"
5197      ><div class="card__media">
5198            <div class="media media--transparent media--hover-effect">
5199              
5200              <img
5201                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
5202                "
5203                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
5204                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5205                alt="🟢 Peak Performance Pad™ - Team Doctors"
5206                class="motion-reduce"
5207                
5208                  loading="lazy"
5209                
5210                width="1080"
5211                height="1080"
5212                id='quick-add-8358149750975-image'
5213              >
5214              
5215<img
5216                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529 1080w
5217                  "
5218                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533"
5219                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5220                  alt=""
5221                  class="motion-reduce"
5222                  loading="lazy"
5223                  width="1080"
5224                  height="1080"
5225                ></div>
5226          </div><div class="card__content">
5227          <div class="card__information">
5228            <h3
5229              class="card__heading"
5230              
5231            >
5232              <a
5233                href="/products/biomimetic-peak-performance-pad"
5234                id="StandardCardNoMediaLink--8358149750975"
5235                class="full-unstyled-link"
5236                aria-labelledby="StandardCardNoMediaLink--8358149750975 NoMediaStandardBadge--8358149750975"
5237              >
5238                🟢 Peak Performance Pad™
5239              </a>
5240            </h3>
5241          </div>
5242          <div class="card__badge bottom left">
5243              
5244              </div>
5245        </div>
5246      </div>
5247      <div class="card__content">
5248        <div class="card__information">
5249          <h3
5250            class="card__heading h5"
5251            
5252              id="title--8358149750975"
5253            
5254          >
5255            <a
5256              href="/products/biomimetic-peak-performance-pad"
5257              id="CardLink--8358149750975"
5258              class="full-unstyled-link"
5259              aria-labelledby="CardLink--8358149750975 Badge--8358149750975"
5260            >
5261              🟢 Peak Performance Pad™
5262            </a>
5263          </h3>
5264          
5265          <div class="card-information"><span class="caption-large light"></span>
5266<div
5267  class="
5268    price "
5269>
5270  <div class="price__container"><div class="price__regular">
5271      <span class="visually-hidden visually-hidden--inline">Regular price</span>
5272      <span class="price-item price-item--regular">
5273        $54.95
5274      </span>
5275    </div>
5276    <div class="price__sale ">
5277      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
5278      <span class="price-item price-item--sale price-item--last">
5279        $54.95
5280      </span>
5281        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
5282        <span class="price__compare-price">
5283          <s class="price-item price-item--regular">
5284            
5285          </s>
5286        </span></div>
5287    <small class="unit-price caption hidden">
5288      <span class="visually-hidden">Unit price</span>
5289      <span class="price-item price-item--last">
5290        <span></span>
5291        <span aria-hidden="true">/</span>
5292        <span class="visually-hidden">&nbsp;per&nbsp;</span>
5293        <span>
5294        </span>
5295      </span>
5296    </small>
5297  </div></div>
5298
5299          </div>
5300        </div>
5301        
5302<div class="card__badge bottom left"></div>
5303      </div>
5304    </div>
5305  </div>
5305<script>
5306  (() => {
5307    if (window.cardProductQuickAddVariantFixLoaded) return;
5308    window.cardProductQuickAddVariantFixLoaded = true;
5309
5310    const ADD_TO_CART_TEXT = "Add to cart";
5311    const SOLD_OUT_TEXT = "Sold out";
5312
5313    function parseVariants(container) {
5314      if (!container) return [];
5315
5316      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
5317
5318      for (const script of scripts) {
5319        try {
5320          const data = JSON.parse(script.textContent.trim());
5321
5322          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
5323            return data;
5324          }
5325
5326          if (data && Array.isArray(data.variants)) {
5327            return data.variants;
5328          }
5329        } catch (error) {}
5330      }
5331
5332      return [];
5333    }
5334
5335    function getSelectedOptionValues(container) {
5336      const values = [];
5337
5338      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
5339        const checkedInput = group.querySelector('input[type="radio"]:checked');
5340        const select = group.querySelector('select');
5341
5342        if (checkedInput) {
5343          values.push(checkedInput.value);
5344        } else if (select) {
5345          values.push(select.value);
5346        }
5347      });
5348
5349      return values;
5350    }
5351
5352    function getCurrentVariant(container, form, variants) {
5353      const idInput = form && form.querySelector('[name="id"]');
5354      const selectedId = idInput && idInput.value;
5355
5356      if (selectedId) {
5357        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
5358        if (byId) return byId;
5359      }
5360
5361      const selectedOptions = getSelectedOptionValues(container);
5362
5363      if (selectedOptions.length) {
5364        return variants.find((variant) => {
5365          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
5366          return selectedOptions.every((value, index) => String(options[index]) === String(value));
5367        });
5368      }
5369
5370      return null;
5371    }
5372
5373    function setButtonState(form, variant) {
5374      if (!form) return;
5375
5376      const idInput = form.querySelector('[name="id"]');
5377      const addButton = form.querySelector('[name="add"]');
5378      const buttonLabel =
5379        addButton &&
5380        (addButton.querySelector('.main-atc__label__text') ||
5381          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
5382      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
5383      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
5384
5385      if (!addButton || !idInput || !variant) return;
5386
5387      idInput.value = variant.id;
5388      idInput.disabled = false;
5389
5390      if (spinner) spinner.classList.add('hidden');
5391
5392      if (variant.available) {
5393        addButton.disabled = false;
5394        addButton.removeAttribute('disabled');
5395        addButton.removeAttribute('aria-disabled');
5396        addButton.classList.remove('loading');
5397
5398        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
5399        if (soldOutMessage) soldOutMessage.classList.add('hidden');
5400      } else {
5401        addButton.disabled = true;
5402        addButton.setAttribute('disabled', 'disabled');
5403        addButton.setAttribute('aria-disabled', 'true');
5404
5405        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
5406        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
5407      }
5408    }
5409
5410    function syncContainer(container) {
5411      if (!container) return;
5412
5413      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
5414      if (!form) return;
5415
5416      const variants = parseVariants(container);
5417      if (!variants.length) return;
5418
5419      const variant = getCurrentVariant(container, form, variants);
5420      if (!variant) return;
5421
5422      setButtonState(form, variant);
5423    }
5424
5425    document.addEventListener('change', (event) => {
5426      const quickAddModal = event.target.closest('quick-add-modal');
5427      const cardVariantSelects = event.target.closest('card-variant-selects');
5428
5429      if (quickAddModal) {
5430        setTimeout(() => syncContainer(quickAddModal), 80);
5431        setTimeout(() => syncContainer(quickAddModal), 250);
5432      }
5433
5434      if (cardVariantSelects) {
5435        const card = cardVariantSelects.closest('.card-wrapper');
5436        if (card) {
5437          setTimeout(() => syncContainer(card), 80);
5438          setTimeout(() => syncContainer(card), 250);
5439        }
5440      }
5441    });
5442
5443    const observer = new MutationObserver((mutations) => {
5444      mutations.forEach((mutation) => {
5445        mutation.addedNodes.forEach((node) => {
5446          if (!(node instanceof HTMLElement)) return;
5447
5448          if (node.matches && node.matches('quick-add-modal')) {
5449            setTimeout(() => syncContainer(node), 150);
5450          }
5451
5452          node.querySelectorAll &&
5453            node.querySelectorAll('quick-add-modal').forEach((modal) => {
5454              setTimeout(() => syncContainer(modal), 150);
5455            });
5456        });
5457      });
5458    });
5459
5460    observer.observe(document.documentElement, {
5461      childList: true,
5462      subtree: true
5463    });
5464
5465    document.addEventListener('DOMContentLoaded', () => {
5466      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
5467    });
5468  })();
5469</script>
5469
5470
5471
5472
5473
5474                                              </li>
5475                                            
5476                                              <li>
5477                                                
5478<div class="card-wrapper product-card-wrapper underline-links-hover">
5479    <div
5480      class="
5481        card
5482        card--card
5483         card--media
5484         color-background-1 gradient
5485        
5486        
5487        
5488         card--badge-sided
5489        
5490        
5491      "
5492      style="--ratio-percent: 100%;"
5493    >
5494      <div
5495        class="card__inner  ratio"
5496        style="--ratio-percent: 100%;"
5497      ><div class="card__media">
5498            <div class="media media--transparent media--hover-effect">
5499              
5500              <img
5501                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451 1080w
5502                "
5503                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533"
5504                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5505                alt="White"
5506                class="motion-reduce"
5507                
5508                  loading="lazy"
5509                
5510                width="1080"
5511                height="1080"
5512                id='quick-add-8358145917119-image'
5513              >
5514              
5515<img
5516                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477 1080w
5517                  "
5518                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533"
5519                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5520                  alt=""
5521                  class="motion-reduce"
5522                  loading="lazy"
5523                  width="1080"
5524                  height="1080"
5525                ></div>
5526          </div><div class="card__content">
5527          <div class="card__information">
5528            <h3
5529              class="card__heading"
5530              
5531            >
5532              <a
5533                href="/products/biomimetic-core-recovery-pad"
5534                id="StandardCardNoMediaLink--8358145917119"
5535                class="full-unstyled-link"
5536                aria-labelledby="StandardCardNoMediaLink--8358145917119 NoMediaStandardBadge--8358145917119"
5537              >
5538                🟡 Core Recovery Pad™
5539              </a>
5540            </h3>
5541          </div>
5542          <div class="card__badge bottom left">
5543              
5544              </div>
5545        </div>
5546      </div>
5547      <div class="card__content">
5548        <div class="card__information">
5549          <h3
5550            class="card__heading h5"
5551            
5552              id="title--8358145917119"
5553            
5554          >
5555            <a
5556              href="/products/biomimetic-core-recovery-pad"
5557              id="CardLink--8358145917119"
5558              class="full-unstyled-link"
5559              aria-labelledby="CardLink--8358145917119 Badge--8358145917119"
5560            >
5561              🟡 Core Recovery Pad™
5562            </a>
5563          </h3>
5564          
5565          <div class="card-information"><span class="caption-large light"></span>
5566<div
5567  class="
5568    price "
5569>
5570  <div class="price__container"><div class="price__regular">
5571      <span class="visually-hidden visually-hidden--inline">Regular price</span>
5572      <span class="price-item price-item--regular">
5573        $54.95
5574      </span>
5575    </div>
5576    <div class="price__sale ">
5577      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
5578      <span class="price-item price-item--sale price-item--last">
5579        $54.95
5580      </span>
5581        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
5582        <span class="price__compare-price">
5583          <s class="price-item price-item--regular">
5584            
5585          </s>
5586        </span></div>
5587    <small class="unit-price caption hidden">
5588      <span class="visually-hidden">Unit price</span>
5589      <span class="price-item price-item--last">
5590        <span></span>
5591        <span aria-hidden="true">/</span>
5592        <span class="visually-hidden">&nbsp;per&nbsp;</span>
5593        <span>
5594        </span>
5595      </span>
5596    </small>
5597  </div></div>
5598
5599          </div>
5600        </div>
5601        
5602<div class="card__badge bottom left"></div>
5603      </div>
5604    </div>
5605  </div>
5605<script>
5606  (() => {
5607    if (window.cardProductQuickAddVariantFixLoaded) return;
5608    window.cardProductQuickAddVariantFixLoaded = true;
5609
5610    const ADD_TO_CART_TEXT = "Add to cart";
5611    const SOLD_OUT_TEXT = "Sold out";
5612
5613    function parseVariants(container) {
5614      if (!container) return [];
5615
5616      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
5617
5618      for (const script of scripts) {
5619        try {
5620          const data = JSON.parse(script.textContent.trim());
5621
5622          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
5623            return data;
5624          }
5625
5626          if (data && Array.isArray(data.variants)) {
5627            return data.variants;
5628          }
5629        } catch (error) {}
5630      }
5631
5632      return [];
5633    }
5634
5635    function getSelectedOptionValues(container) {
5636      const values = [];
5637
5638      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
5639        const checkedInput = group.querySelector('input[type="radio"]:checked');
5640        const select = group.querySelector('select');
5641
5642        if (checkedInput) {
5643          values.push(checkedInput.value);
5644        } else if (select) {
5645          values.push(select.value);
5646        }
5647      });
5648
5649      return values;
5650    }
5651
5652    function getCurrentVariant(container, form, variants) {
5653      const idInput = form && form.querySelector('[name="id"]');
5654      const selectedId = idInput && idInput.value;
5655
5656      if (selectedId) {
5657        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
5658        if (byId) return byId;
5659      }
5660
5661      const selectedOptions = getSelectedOptionValues(container);
5662
5663      if (selectedOptions.length) {
5664        return variants.find((variant) => {
5665          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
5666          return selectedOptions.every((value, index) => String(options[index]) === String(value));
5667        });
5668      }
5669
5670      return null;
5671    }
5672
5673    function setButtonState(form, variant) {
5674      if (!form) return;
5675
5676      const idInput = form.querySelector('[name="id"]');
5677      const addButton = form.querySelector('[name="add"]');
5678      const buttonLabel =
5679        addButton &&
5680        (addButton.querySelector('.main-atc__label__text') ||
5681          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
5682      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
5683      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
5684
5685      if (!addButton || !idInput || !variant) return;
5686
5687      idInput.value = variant.id;
5688      idInput.disabled = false;
5689
5690      if (spinner) spinner.classList.add('hidden');
5691
5692      if (variant.available) {
5693        addButton.disabled = false;
5694        addButton.removeAttribute('disabled');
5695        addButton.removeAttribute('aria-disabled');
5696        addButton.classList.remove('loading');
5697
5698        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
5699        if (soldOutMessage) soldOutMessage.classList.add('hidden');
5700      } else {
5701        addButton.disabled = true;
5702        addButton.setAttribute('disabled', 'disabled');
5703        addButton.setAttribute('aria-disabled', 'true');
5704
5705        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
5706        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
5707      }
5708    }
5709
5710    function syncContainer(container) {
5711      if (!container) return;
5712
5713      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
5714      if (!form) return;
5715
5716      const variants = parseVariants(container);
5717      if (!variants.length) return;
5718
5719      const variant = getCurrentVariant(container, form, variants);
5720      if (!variant) return;
5721
5722      setButtonState(form, variant);
5723    }
5724
5725    document.addEventListener('change', (event) => {
5726      const quickAddModal = event.target.closest('quick-add-modal');
5727      const cardVariantSelects = event.target.closest('card-variant-selects');
5728
5729      if (quickAddModal) {
5730        setTimeout(() => syncContainer(quickAddModal), 80);
5731        setTimeout(() => syncContainer(quickAddModal), 250);
5732      }
5733
5734      if (cardVariantSelects) {
5735        const card = cardVariantSelects.closest('.card-wrapper');
5736        if (card) {
5737          setTimeout(() => syncContainer(card), 80);
5738          setTimeout(() => syncContainer(card), 250);
5739        }
5740      }
5741    });
5742
5743    const observer = new MutationObserver((mutations) => {
5744      mutations.forEach((mutation) => {
5745        mutation.addedNodes.forEach((node) => {
5746          if (!(node instanceof HTMLElement)) return;
5747
5748          if (node.matches && node.matches('quick-add-modal')) {
5749            setTimeout(() => syncContainer(node), 150);
5750          }
5751
5752          node.querySelectorAll &&
5753            node.querySelectorAll('quick-add-modal').forEach((modal) => {
5754              setTimeout(() => syncContainer(modal), 150);
5755            });
5756        });
5757      });
5758    });
5759
5760    observer.observe(document.documentElement, {
5761      childList: true,
5762      subtree: true
5763    });
5764
5765    document.addEventListener('DOMContentLoaded', () => {
5766      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
5767    });
5768  })();
5769</script>
5769
5770
5771
5772
5773
5774                                              </li>
5775                                            
5776                                              <li>
5777                                                
5778<div class="card-wrapper product-card-wrapper underline-links-hover">
5779    <div
5780      class="
5781        card
5782        card--card
5783         card--media
5784         color-background-1 gradient
5785        
5786        
5787        
5788         card--badge-sided
5789        
5790        
5791      "
5792      style="--ratio-percent: 100%;"
5793    >
5794      <div
5795        class="card__inner  ratio"
5796        style="--ratio-percent: 100%;"
5797      ><div class="card__media">
5798            <div class="media media--transparent media--hover-effect">
5799              
5800              <img
5801                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
5802                "
5803                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
5804                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5805                alt="🔴 Comfort Relief Pad™ - Team Doctors"
5806                class="motion-reduce"
5807                
5808                  loading="lazy"
5809                
5810                width="1080"
5811                height="1080"
5812                id='quick-add-8358127599807-image'
5813              >
5814              
5815<img
5816                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
5817                  "
5818                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
5819                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
5820                  alt=""
5821                  class="motion-reduce"
5822                  loading="lazy"
5823                  width="1080"
5824                  height="1080"
5825                ></div>
5826          </div><div class="card__content">
5827          <div class="card__information">
5828            <h3
5829              class="card__heading"
5830              
5831            >
5832              <a
5833                href="/products/biomimetic-comfort-relief-pad"
5834                id="StandardCardNoMediaLink--8358127599807"
5835                class="full-unstyled-link"
5836                aria-labelledby="StandardCardNoMediaLink--8358127599807 NoMediaStandardBadge--8358127599807"
5837              >
5838                🔴 Comfort Relief Pad™
5839              </a>
5840            </h3>
5841          </div>
5842          <div class="card__badge bottom left">
5843              
5844              </div>
5845        </div>
5846      </div>
5847      <div class="card__content">
5848        <div class="card__information">
5849          <h3
5850            class="card__heading h5"
5851            
5852              id="title--8358127599807"
5853            
5854          >
5855            <a
5856              href="/products/biomimetic-comfort-relief-pad"
5857              id="CardLink--8358127599807"
5858              class="full-unstyled-link"
5859              aria-labelledby="CardLink--8358127599807 Badge--8358127599807"
5860            >
5861              🔴 Comfort Relief Pad™
5862            </a>
5863          </h3>
5864          
5865          <div class="card-information"><span class="caption-large light"></span>
5866<div
5867  class="
5868    price "
5869>
5870  <div class="price__container"><div class="price__regular">
5871      <span class="visually-hidden visually-hidden--inline">Regular price</span>
5872      <span class="price-item price-item--regular">
5873        $54.95
5874      </span>
5875    </div>
5876    <div class="price__sale ">
5877      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
5878      <span class="price-item price-item--sale price-item--last">
5879        $54.95
5880      </span>
5881        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
5882        <span class="price__compare-price">
5883          <s class="price-item price-item--regular">
5884            
5885          </s>
5886        </span></div>
5887    <small class="unit-price caption hidden">
5888      <span class="visually-hidden">Unit price</span>
5889      <span class="price-item price-item--last">
5890        <span></span>
5891        <span aria-hidden="true">/</span>
5892        <span class="visually-hidden">&nbsp;per&nbsp;</span>
5893        <span>
5894        </span>
5895      </span>
5896    </small>
5897  </div></div>
5898
5899          </div>
5900        </div>
5901        
5902<div class="card__badge bottom left"></div>
5903      </div>
5904    </div>
5905  </div>
5905<script>
5906  (() => {
5907    if (window.cardProductQuickAddVariantFixLoaded) return;
5908    window.cardProductQuickAddVariantFixLoaded = true;
5909
5910    const ADD_TO_CART_TEXT = "Add to cart";
5911    const SOLD_OUT_TEXT = "Sold out";
5912
5913    function parseVariants(container) {
5914      if (!container) return [];
5915
5916      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
5917
5918      for (const script of scripts) {
5919        try {
5920          const data = JSON.parse(script.textContent.trim());
5921
5922          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
5923            return data;
5924          }
5925
5926          if (data && Array.isArray(data.variants)) {
5927            return data.variants;
5928          }
5929        } catch (error) {}
5930      }
5931
5932      return [];
5933    }
5934
5935    function getSelectedOptionValues(container) {
5936      const values = [];
5937
5938      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
5939        const checkedInput = group.querySelector('input[type="radio"]:checked');
5940        const select = group.querySelector('select');
5941
5942        if (checkedInput) {
5943          values.push(checkedInput.value);
5944        } else if (select) {
5945          values.push(select.value);
5946        }
5947      });
5948
5949      return values;
5950    }
5951
5952    function getCurrentVariant(container, form, variants) {
5953      const idInput = form && form.querySelector('[name="id"]');
5954      const selectedId = idInput && idInput.value;
5955
5956      if (selectedId) {
5957        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
5958        if (byId) return byId;
5959      }
5960
5961      const selectedOptions = getSelectedOptionValues(container);
5962
5963      if (selectedOptions.length) {
5964        return variants.find((variant) => {
5965          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
5966          return selectedOptions.every((value, index) => String(options[index]) === String(value));
5967        });
5968      }
5969
5970      return null;
5971    }
5972
5973    function setButtonState(form, variant) {
5974      if (!form) return;
5975
5976      const idInput = form.querySelector('[name="id"]');
5977      const addButton = form.querySelector('[name="add"]');
5978      const buttonLabel =
5979        addButton &&
5980        (addButton.querySelector('.main-atc__label__text') ||
5981          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
5982      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
5983      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
5984
5985      if (!addButton || !idInput || !variant) return;
5986
5987      idInput.value = variant.id;
5988      idInput.disabled = false;
5989
5990      if (spinner) spinner.classList.add('hidden');
5991
5992      if (variant.available) {
5993        addButton.disabled = false;
5994        addButton.removeAttribute('disabled');
5995        addButton.removeAttribute('aria-disabled');
5996        addButton.classList.remove('loading');
5997
5998        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
5999        if (soldOutMessage) soldOutMessage.classList.add('hidden');
6000      } else {
6001        addButton.disabled = true;
6002        addButton.setAttribute('disabled', 'disabled');
6003        addButton.setAttribute('aria-disabled', 'true');
6004
6005        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
6006        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
6007      }
6008    }
6009
6010    function syncContainer(container) {
6011      if (!container) return;
6012
6013      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
6014      if (!form) return;
6015
6016      const variants = parseVariants(container);
6017      if (!variants.length) return;
6018
6019      const variant = getCurrentVariant(container, form, variants);
6020      if (!variant) return;
6021
6022      setButtonState(form, variant);
6023    }
6024
6025    document.addEventListener('change', (event) => {
6026      const quickAddModal = event.target.closest('quick-add-modal');
6027      const cardVariantSelects = event.target.closest('card-variant-selects');
6028
6029      if (quickAddModal) {
6030        setTimeout(() => syncContainer(quickAddModal), 80);
6031        setTimeout(() => syncContainer(quickAddModal), 250);
6032      }
6033
6034      if (cardVariantSelects) {
6035        const card = cardVariantSelects.closest('.card-wrapper');
6036        if (card) {
6037          setTimeout(() => syncContainer(card), 80);
6038          setTimeout(() => syncContainer(card), 250);
6039        }
6040      }
6041    });
6042
6043    const observer = new MutationObserver((mutations) => {
6044      mutations.forEach((mutation) => {
6045        mutation.addedNodes.forEach((node) => {
6046          if (!(node instanceof HTMLElement)) return;
6047
6048          if (node.matches && node.matches('quick-add-modal')) {
6049            setTimeout(() => syncContainer(node), 150);
6050          }
6051
6052          node.querySelectorAll &&
6053            node.querySelectorAll('quick-add-modal').forEach((modal) => {
6054              setTimeout(() => syncContainer(modal), 150);
6055            });
6056        });
6057      });
6058    });
6059
6060    observer.observe(document.documentElement, {
6061      childList: true,
6062      subtree: true
6063    });
6064
6065    document.addEventListener('DOMContentLoaded', () => {
6066      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
6067    });
6068  })();
6069</script>
6069
6070
6071
6072
6073
6074                                              </li>
6075                                            
6076                                              <li>
6077                                                
6078<div class="card-wrapper product-card-wrapper underline-links-hover">
6079    <div
6080      class="
6081        card
6082        card--card
6083         card--media
6084         color-background-1 gradient
6085        
6086        
6087        
6088         card--badge-sided
6089        
6090        
6091      "
6092      style="--ratio-percent: 100%;"
6093    >
6094      <div
6095        class="card__inner  ratio"
6096        style="--ratio-percent: 100%;"
6097      ><div class="card__media">
6098            <div class="media media--transparent media--hover-effect">
6099              
6100              <img
6101                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068 1254w
6102                "
6103                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533"
6104                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6105                alt="White"
6106                class="motion-reduce"
6107                
6108                  loading="lazy"
6109                
6110                width="1254"
6111                height="1254"
6112                id='quick-add-8342973219007-image'
6113              >
6114              
6115<img
6116                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847 1080w
6117                  "
6118                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533"
6119                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6120                  alt=""
6121                  class="motion-reduce"
6122                  loading="lazy"
6123                  width="1080"
6124                  height="1080"
6125                ></div>
6126          </div><div class="card__content">
6127          <div class="card__information">
6128            <h3
6129              class="card__heading"
6130              
6131            >
6132              <a
6133                href="/products/vibeassage-complete-system"
6134                id="StandardCardNoMediaLink--8342973219007"
6135                class="full-unstyled-link"
6136                aria-labelledby="StandardCardNoMediaLink--8342973219007 NoMediaStandardBadge--8342973219007"
6137              >
6138                ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
6139              </a>
6140            </h3>
6141          </div>
6142          <div class="card__badge bottom left">
6143              
6144              </div>
6145        </div>
6146      </div>
6147      <div class="card__content">
6148        <div class="card__information">
6149          <h3
6150            class="card__heading h5"
6151            
6152              id="title--8342973219007"
6153            
6154          >
6155            <a
6156              href="/products/vibeassage-complete-system"
6157              id="CardLink--8342973219007"
6158              class="full-unstyled-link"
6159              aria-labelledby="CardLink--8342973219007 Badge--8342973219007"
6160            >
6161              ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
6162            </a>
6163          </h3>
6164          
6165          <div class="card-information"><span class="caption-large light"></span>
6166<div
6167  class="
6168    price "
6169>
6170  <div class="price__container"><div class="price__regular">
6171      <span class="visually-hidden visually-hidden--inline">Regular price</span>
6172      <span class="price-item price-item--regular">
6173        From $429.00
6174      </span>
6175    </div>
6176    <div class="price__sale ">
6177      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
6178      <span class="price-item price-item--sale price-item--last">
6179        From $429.00
6180      </span>
6181        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
6182        <span class="price__compare-price">
6183          <s class="price-item price-item--regular">
6184            
6185          </s>
6186        </span></div>
6187    <small class="unit-price caption hidden">
6188      <span class="visually-hidden">Unit price</span>
6189      <span class="price-item price-item--last">
6190        <span></span>
6191        <span aria-hidden="true">/</span>
6192        <span class="visually-hidden">&nbsp;per&nbsp;</span>
6193        <span>
6194        </span>
6195      </span>
6196    </small>
6197  </div></div>
6198
6199          </div>
6200        </div>
6201        
6202<div class="card__badge bottom left"></div>
6203      </div>
6204    </div>
6205  </div>
6205<script>
6206  (() => {
6207    if (window.cardProductQuickAddVariantFixLoaded) return;
6208    window.cardProductQuickAddVariantFixLoaded = true;
6209
6210    const ADD_TO_CART_TEXT = "Add to cart";
6211    const SOLD_OUT_TEXT = "Sold out";
6212
6213    function parseVariants(container) {
6214      if (!container) return [];
6215
6216      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
6217
6218      for (const script of scripts) {
6219        try {
6220          const data = JSON.parse(script.textContent.trim());
6221
6222          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
6223            return data;
6224          }
6225
6226          if (data && Array.isArray(data.variants)) {
6227            return data.variants;
6228          }
6229        } catch (error) {}
6230      }
6231
6232      return [];
6233    }
6234
6235    function getSelectedOptionValues(container) {
6236      const values = [];
6237
6238      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
6239        const checkedInput = group.querySelector('input[type="radio"]:checked');
6240        const select = group.querySelector('select');
6241
6242        if (checkedInput) {
6243          values.push(checkedInput.value);
6244        } else if (select) {
6245          values.push(select.value);
6246        }
6247      });
6248
6249      return values;
6250    }
6251
6252    function getCurrentVariant(container, form, variants) {
6253      const idInput = form && form.querySelector('[name="id"]');
6254      const selectedId = idInput && idInput.value;
6255
6256      if (selectedId) {
6257        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
6258        if (byId) return byId;
6259      }
6260
6261      const selectedOptions = getSelectedOptionValues(container);
6262
6263      if (selectedOptions.length) {
6264        return variants.find((variant) => {
6265          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
6266          return selectedOptions.every((value, index) => String(options[index]) === String(value));
6267        });
6268      }
6269
6270      return null;
6271    }
6272
6273    function setButtonState(form, variant) {
6274      if (!form) return;
6275
6276      const idInput = form.querySelector('[name="id"]');
6277      const addButton = form.querySelector('[name="add"]');
6278      const buttonLabel =
6279        addButton &&
6280        (addButton.querySelector('.main-atc__label__text') ||
6281          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
6282      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
6283      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
6284
6285      if (!addButton || !idInput || !variant) return;
6286
6287      idInput.value = variant.id;
6288      idInput.disabled = false;
6289
6290      if (spinner) spinner.classList.add('hidden');
6291
6292      if (variant.available) {
6293        addButton.disabled = false;
6294        addButton.removeAttribute('disabled');
6295        addButton.removeAttribute('aria-disabled');
6296        addButton.classList.remove('loading');
6297
6298        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
6299        if (soldOutMessage) soldOutMessage.classList.add('hidden');
6300      } else {
6301        addButton.disabled = true;
6302        addButton.setAttribute('disabled', 'disabled');
6303        addButton.setAttribute('aria-disabled', 'true');
6304
6305        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
6306        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
6307      }
6308    }
6309
6310    function syncContainer(container) {
6311      if (!container) return;
6312
6313      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
6314      if (!form) return;
6315
6316      const variants = parseVariants(container);
6317      if (!variants.length) return;
6318
6319      const variant = getCurrentVariant(container, form, variants);
6320      if (!variant) return;
6321
6322      setButtonState(form, variant);
6323    }
6324
6325    document.addEventListener('change', (event) => {
6326      const quickAddModal = event.target.closest('quick-add-modal');
6327      const cardVariantSelects = event.target.closest('card-variant-selects');
6328
6329      if (quickAddModal) {
6330        setTimeout(() => syncContainer(quickAddModal), 80);
6331        setTimeout(() => syncContainer(quickAddModal), 250);
6332      }
6333
6334      if (cardVariantSelects) {
6335        const card = cardVariantSelects.closest('.card-wrapper');
6336        if (card) {
6337          setTimeout(() => syncContainer(card), 80);
6338          setTimeout(() => syncContainer(card), 250);
6339        }
6340      }
6341    });
6342
6343    const observer = new MutationObserver((mutations) => {
6344      mutations.forEach((mutation) => {
6345        mutation.addedNodes.forEach((node) => {
6346          if (!(node instanceof HTMLElement)) return;
6347
6348          if (node.matches && node.matches('quick-add-modal')) {
6349            setTimeout(() => syncContainer(node), 150);
6350          }
6351
6352          node.querySelectorAll &&
6353            node.querySelectorAll('quick-add-modal').forEach((modal) => {
6354              setTimeout(() => syncContainer(modal), 150);
6355            });
6356        });
6357      });
6358    });
6359
6360    observer.observe(document.documentElement, {
6361      childList: true,
6362      subtree: true
6363    });
6364
6365    document.addEventListener('DOMContentLoaded', () => {
6366      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
6367    });
6368  })();
6369</script>
6369
6370
6371
6372
6373
6374                                              </li>
6375                                            
6376                                              <li>
6377                                                
6378<div class="card-wrapper product-card-wrapper underline-links-hover">
6379    <div
6380      class="
6381        card
6382        card--card
6383         card--media
6384         color-background-1 gradient
6385        
6386        
6387        
6388         card--badge-sided
6389        
6390        
6391      "
6392      style="--ratio-percent: 100%;"
6393    >
6394      <div
6395        class="card__inner  ratio"
6396        style="--ratio-percent: 100%;"
6397      ><div class="card__media">
6398            <div class="media media--transparent media--hover-effect">
6399              
6400              <img
6401                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068 1254w
6402                "
6403                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533"
6404                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6405                alt="White"
6406                class="motion-reduce"
6407                
6408                  loading="lazy"
6409                
6410                width="1254"
6411                height="1254"
6412                id='quick-add-8342972334271-image'
6413              >
6414              
6415<img
6416                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068 1254w
6417                  "
6418                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533"
6419                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6420                  alt=""
6421                  class="motion-reduce"
6422                  loading="lazy"
6423                  width="1254"
6424                  height="1254"
6425                ></div>
6426          </div><div class="card__content">
6427          <div class="card__information">
6428            <h3
6429              class="card__heading"
6430              
6431            >
6432              <a
6433                href="/products/vibeassage-relief-bundle"
6434                id="StandardCardNoMediaLink--8342972334271"
6435                class="full-unstyled-link"
6436                aria-labelledby="StandardCardNoMediaLink--8342972334271 NoMediaStandardBadge--8342972334271"
6437              >
6438                Vibeassage® Relief Bundle
6439              </a>
6440            </h3>
6441          </div>
6442          <div class="card__badge bottom left">
6443              
6444              </div>
6445        </div>
6446      </div>
6447      <div class="card__content">
6448        <div class="card__information">
6449          <h3
6450            class="card__heading h5"
6451            
6452              id="title--8342972334271"
6453            
6454          >
6455            <a
6456              href="/products/vibeassage-relief-bundle"
6457              id="CardLink--8342972334271"
6458              class="full-unstyled-link"
6459              aria-labelledby="CardLink--8342972334271 Badge--8342972334271"
6460            >
6461              Vibeassage® Relief Bundle
6462            </a>
6463          </h3>
6464          
6465          <div class="card-information"><span class="caption-large light"></span>
6466<div
6467  class="
6468    price "
6469>
6470  <div class="price__container"><div class="price__regular">
6471      <span class="visually-hidden visually-hidden--inline">Regular price</span>
6472      <span class="price-item price-item--regular">
6473        From $389.00
6474      </span>
6475    </div>
6476    <div class="price__sale ">
6477      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
6478      <span class="price-item price-item--sale price-item--last">
6479        From $389.00
6480      </span>
6481        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
6482        <span class="price__compare-price">
6483          <s class="price-item price-item--regular">
6484            
6485          </s>
6486        </span></div>
6487    <small class="unit-price caption hidden">
6488      <span class="visually-hidden">Unit price</span>
6489      <span class="price-item price-item--last">
6490        <span></span>
6491        <span aria-hidden="true">/</span>
6492        <span class="visually-hidden">&nbsp;per&nbsp;</span>
6493        <span>
6494        </span>
6495      </span>
6496    </small>
6497  </div></div>
6498
6499          </div>
6500        </div>
6501        
6502<div class="card__badge bottom left"></div>
6503      </div>
6504    </div>
6505  </div>
6505<script>
6506  (() => {
6507    if (window.cardProductQuickAddVariantFixLoaded) return;
6508    window.cardProductQuickAddVariantFixLoaded = true;
6509
6510    const ADD_TO_CART_TEXT = "Add to cart";
6511    const SOLD_OUT_TEXT = "Sold out";
6512
6513    function parseVariants(container) {
6514      if (!container) return [];
6515
6516      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
6517
6518      for (const script of scripts) {
6519        try {
6520          const data = JSON.parse(script.textContent.trim());
6521
6522          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
6523            return data;
6524          }
6525
6526          if (data && Array.isArray(data.variants)) {
6527            return data.variants;
6528          }
6529        } catch (error) {}
6530      }
6531
6532      return [];
6533    }
6534
6535    function getSelectedOptionValues(container) {
6536      const values = [];
6537
6538      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
6539        const checkedInput = group.querySelector('input[type="radio"]:checked');
6540        const select = group.querySelector('select');
6541
6542        if (checkedInput) {
6543          values.push(checkedInput.value);
6544        } else if (select) {
6545          values.push(select.value);
6546        }
6547      });
6548
6549      return values;
6550    }
6551
6552    function getCurrentVariant(container, form, variants) {
6553      const idInput = form && form.querySelector('[name="id"]');
6554      const selectedId = idInput && idInput.value;
6555
6556      if (selectedId) {
6557        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
6558        if (byId) return byId;
6559      }
6560
6561      const selectedOptions = getSelectedOptionValues(container);
6562
6563      if (selectedOptions.length) {
6564        return variants.find((variant) => {
6565          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
6566          return selectedOptions.every((value, index) => String(options[index]) === String(value));
6567        });
6568      }
6569
6570      return null;
6571    }
6572
6573    function setButtonState(form, variant) {
6574      if (!form) return;
6575
6576      const idInput = form.querySelector('[name="id"]');
6577      const addButton = form.querySelector('[name="add"]');
6578      const buttonLabel =
6579        addButton &&
6580        (addButton.querySelector('.main-atc__label__text') ||
6581          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
6582      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
6583      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
6584
6585      if (!addButton || !idInput || !variant) return;
6586
6587      idInput.value = variant.id;
6588      idInput.disabled = false;
6589
6590      if (spinner) spinner.classList.add('hidden');
6591
6592      if (variant.available) {
6593        addButton.disabled = false;
6594        addButton.removeAttribute('disabled');
6595        addButton.removeAttribute('aria-disabled');
6596        addButton.classList.remove('loading');
6597
6598        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
6599        if (soldOutMessage) soldOutMessage.classList.add('hidden');
6600      } else {
6601        addButton.disabled = true;
6602        addButton.setAttribute('disabled', 'disabled');
6603        addButton.setAttribute('aria-disabled', 'true');
6604
6605        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
6606        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
6607      }
6608    }
6609
6610    function syncContainer(container) {
6611      if (!container) return;
6612
6613      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
6614      if (!form) return;
6615
6616      const variants = parseVariants(container);
6617      if (!variants.length) return;
6618
6619      const variant = getCurrentVariant(container, form, variants);
6620      if (!variant) return;
6621
6622      setButtonState(form, variant);
6623    }
6624
6625    document.addEventListener('change', (event) => {
6626      const quickAddModal = event.target.closest('quick-add-modal');
6627      const cardVariantSelects = event.target.closest('card-variant-selects');
6628
6629      if (quickAddModal) {
6630        setTimeout(() => syncContainer(quickAddModal), 80);
6631        setTimeout(() => syncContainer(quickAddModal), 250);
6632      }
6633
6634      if (cardVariantSelects) {
6635        const card = cardVariantSelects.closest('.card-wrapper');
6636        if (card) {
6637          setTimeout(() => syncContainer(card), 80);
6638          setTimeout(() => syncContainer(card), 250);
6639        }
6640      }
6641    });
6642
6643    const observer = new MutationObserver((mutations) => {
6644      mutations.forEach((mutation) => {
6645        mutation.addedNodes.forEach((node) => {
6646          if (!(node instanceof HTMLElement)) return;
6647
6648          if (node.matches && node.matches('quick-add-modal')) {
6649            setTimeout(() => syncContainer(node), 150);
6650          }
6651
6652          node.querySelectorAll &&
6653            node.querySelectorAll('quick-add-modal').forEach((modal) => {
6654              setTimeout(() => syncContainer(modal), 150);
6655            });
6656        });
6657      });
6658    });
6659
6660    observer.observe(document.documentElement, {
6661      childList: true,
6662      subtree: true
6663    });
6664
6665    document.addEventListener('DOMContentLoaded', () => {
6666      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
6667    });
6668  })();
6669</script>
6669
6670
6671
6672
6673
6674                                              </li>
6675                                            
6676                                              <li>
6677                                                
6678<div class="card-wrapper product-card-wrapper underline-links-hover">
6679    <div
6680      class="
6681        card
6682        card--card
6683         card--media
6684         color-background-1 gradient
6685        
6686        
6687        
6688         card--badge-sided
6689        
6690        
6691      "
6692      style="--ratio-percent: 100%;"
6693    >
6694      <div
6695        class="card__inner  ratio"
6696        style="--ratio-percent: 100%;"
6697      ><div class="card__media">
6698            <div class="media media--transparent media--hover-effect">
6699              
6700              <img
6701                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443 1080w
6702                "
6703                src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533"
6704                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6705                alt="Biomimetic Applicator Pads (Full Set) - Team Doctors"
6706                class="motion-reduce"
6707                
6708                  loading="lazy"
6709                
6710                width="1080"
6711                height="1080"
6712                id='quick-add-8394187342015-image'
6713              >
6714              
6715<img
6716                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
6717                  "
6718                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
6719                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
6720                  alt=""
6721                  class="motion-reduce"
6722                  loading="lazy"
6723                  width="1080"
6724                  height="1080"
6725                ></div>
6726          </div><div class="card__content">
6727          <div class="card__information">
6728            <h3
6729              class="card__heading"
6730              
6731            >
6732              <a
6733                href="/products/biomemetic-applicator-pads-full-set"
6734                id="StandardCardNoMediaLink--8394187342015"
6735                class="full-unstyled-link"
6736                aria-labelledby="StandardCardNoMediaLink--8394187342015 NoMediaStandardBadge--8394187342015"
6737              >
6738                Biomimetic Applicator Pads
6739              </a>
6740            </h3>
6741          </div>
6742          <div class="card__badge bottom left">
6743              
6744              
6745                <span
6746                  id="NoMediaStandardBadge--8394187342015"
6747                  class="badge badge--bottom-left color-accent-2"
6748                >
6749                  <svg
6750  aria-hidden="true"
6751  focusable="false"
6752  class="icon icon-discount color-foreground-text"
6753  viewBox="0 0 12 12"
6754>
6755  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
6756</svg>
6757<span class='nowrap'>SAVE 21%</span>
6758                </span></div>
6759        </div>
6760      </div>
6761      <div class="card__content">
6762        <div class="card__information">
6763          <h3
6764            class="card__heading h5"
6765            
6766              id="title--8394187342015"
6767            
6768          >
6769            <a
6770              href="/products/biomemetic-applicator-pads-full-set"
6771              id="CardLink--8394187342015"
6772              class="full-unstyled-link"
6773              aria-labelledby="CardLink--8394187342015 Badge--8394187342015"
6774            >
6775              Biomimetic Applicator Pads
6776            </a>
6777          </h3>
6778          
6779            <div class="product-subtitle">
6780              3 Pads - Full Set
6781            </div>
6782          
6783          <div class="card-information"><span class="caption-large light"></span>
6784<div
6785  class="
6786    price  price--on-sale "
6787>
6788  <div class="price__container"><div class="price__regular">
6789      <span class="visually-hidden visually-hidden--inline">Regular price</span>
6790      <span class="price-item price-item--regular">
6791        $129.00
6792      </span>
6793    </div>
6794    <div class="price__sale ">
6795      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
6796      <span class="price-item price-item--sale price-item--last">
6797        $129.00
6798      </span>
6799        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
6800        <span class="price__compare-price">
6801          <s class="price-item price-item--regular">
6802            $164.85
6803          </s>
6804        </span></div>
6805    <small class="unit-price caption hidden">
6806      <span class="visually-hidden">Unit price</span>
6807      <span class="price-item price-item--last">
6808        <span></span>
6809        <span aria-hidden="true">/</span>
6810        <span class="visually-hidden">&nbsp;per&nbsp;</span>
6811        <span>
6812        </span>
6813      </span>
6814    </small>
6815  </div></div>
6816
6817          </div>
6818        </div>
6819        
6820<div class="card__badge bottom left"><span
6821              id="Badge--8394187342015"
6822              class="badge badge--bottom-left color-accent-2"
6823            >
6824              21%
6825            </span></div>
6826      </div>
6827    </div>
6828  </div>
6828<script>
6829  (() => {
6830    if (window.cardProductQuickAddVariantFixLoaded) return;
6831    window.cardProductQuickAddVariantFixLoaded = true;
6832
6833    const ADD_TO_CART_TEXT = "Add to cart";
6834    const SOLD_OUT_TEXT = "Sold out";
6835
6836    function parseVariants(container) {
6837      if (!container) return [];
6838
6839      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
6840
6841      for (const script of scripts) {
6842        try {
6843          const data = JSON.parse(script.textContent.trim());
6844
6845          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
6846            return data;
6847          }
6848
6849          if (data && Array.isArray(data.variants)) {
6850            return data.variants;
6851          }
6852        } catch (error) {}
6853      }
6854
6855      return [];
6856    }
6857
6858    function getSelectedOptionValues(container) {
6859      const values = [];
6860
6861      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
6862        const checkedInput = group.querySelector('input[type="radio"]:checked');
6863        const select = group.querySelector('select');
6864
6865        if (checkedInput) {
6866          values.push(checkedInput.value);
6867        } else if (select) {
6868          values.push(select.value);
6869        }
6870      });
6871
6872      return values;
6873    }
6874
6875    function getCurrentVariant(container, form, variants) {
6876      const idInput = form && form.querySelector('[name="id"]');
6877      const selectedId = idInput && idInput.value;
6878
6879      if (selectedId) {
6880        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
6881        if (byId) return byId;
6882      }
6883
6884      const selectedOptions = getSelectedOptionValues(container);
6885
6886      if (selectedOptions.length) {
6887        return variants.find((variant) => {
6888          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
6889          return selectedOptions.every((value, index) => String(options[index]) === String(value));
6890        });
6891      }
6892
6893      return null;
6894    }
6895
6896    function setButtonState(form, variant) {
6897      if (!form) return;
6898
6899      const idInput = form.querySelector('[name="id"]');
6900      const addButton = form.querySelector('[name="add"]');
6901      const buttonLabel =
6902        addButton &&
6903        (addButton.querySelector('.main-atc__label__text') ||
6904          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
6905      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
6906      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
6907
6908      if (!addButton || !idInput || !variant) return;
6909
6910      idInput.value = variant.id;
6911      idInput.disabled = false;
6912
6913      if (spinner) spinner.classList.add('hidden');
6914
6915      if (variant.available) {
6916        addButton.disabled = false;
6917        addButton.removeAttribute('disabled');
6918        addButton.removeAttribute('aria-disabled');
6919        addButton.classList.remove('loading');
6920
6921        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
6922        if (soldOutMessage) soldOutMessage.classList.add('hidden');
6923      } else {
6924        addButton.disabled = true;
6925        addButton.setAttribute('disabled', 'disabled');
6926        addButton.setAttribute('aria-disabled', 'true');
6927
6928        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
6929        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
6930      }
6931    }
6932
6933    function syncContainer(container) {
6934      if (!container) return;
6935
6936      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
6937      if (!form) return;
6938
6939      const variants = parseVariants(container);
6940      if (!variants.length) return;
6941
6942      const variant = getCurrentVariant(container, form, variants);
6943      if (!variant) return;
6944
6945      setButtonState(form, variant);
6946    }
6947
6948    document.addEventListener('change', (event) => {
6949      const quickAddModal = event.target.closest('quick-add-modal');
6950      const cardVariantSelects = event.target.closest('card-variant-selects');
6951
6952      if (quickAddModal) {
6953        setTimeout(() => syncContainer(quickAddModal), 80);
6954        setTimeout(() => syncContainer(quickAddModal), 250);
6955      }
6956
6957      if (cardVariantSelects) {
6958        const card = cardVariantSelects.closest('.card-wrapper');
6959        if (card) {
6960          setTimeout(() => syncContainer(card), 80);
6961          setTimeout(() => syncContainer(card), 250);
6962        }
6963      }
6964    });
6965
6966    const observer = new MutationObserver((mutations) => {
6967      mutations.forEach((mutation) => {
6968        mutation.addedNodes.forEach((node) => {
6969          if (!(node instanceof HTMLElement)) return;
6970
6971          if (node.matches && node.matches('quick-add-modal')) {
6972            setTimeout(() => syncContainer(node), 150);
6973          }
6974
6975          node.querySelectorAll &&
6976            node.querySelectorAll('quick-add-modal').forEach((modal) => {
6977              setTimeout(() => syncContainer(modal), 150);
6978            });
6979        });
6980      });
6981    });
6982
6983    observer.observe(document.documentElement, {
6984      childList: true,
6985      subtree: true
6986    });
6987
6988    document.addEventListener('DOMContentLoaded', () => {
6989      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
6990    });
6991  })();
6992</script>
6992
6993
6994
6995
6996
6997                                              </li>
6998                                            
6999                                              <li>
7000                                                
7001<div class="card-wrapper product-card-wrapper underline-links-hover">
7002    <div
7003      class="
7004        card
7005        card--card
7006         card--media
7007         color-background-1 gradient
7008        
7009        
7010        
7011         card--badge-sided
7012        
7013        
7014      "
7015      style="--ratio-percent: 100%;"
7016    >
7017      <div
7018        class="card__inner  ratio"
7019        style="--ratio-percent: 100%;"
7020      ><div class="card__media">
7021            <div class="media media--transparent media--hover-effect">
7022              
7023              <img
7024                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844 1254w
7025                "
7026                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533"
7027                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7028                alt="Balance bundle - Team Doctors"
7029                class="motion-reduce"
7030                
7031                  loading="lazy"
7032                
7033                width="1254"
7034                height="1254"
7035                id='quick-add-8402094031039-image'
7036              >
7037              
7038<img
7039                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
7040                  "
7041                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
7042                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7043                  alt=""
7044                  class="motion-reduce"
7045                  loading="lazy"
7046                  width="1080"
7047                  height="1080"
7048                ></div>
7049          </div><div class="card__content">
7050          <div class="card__information">
7051            <h3
7052              class="card__heading"
7053              
7054            >
7055              <a
7056                href="/products/vibeassage%C2%AE-relief-bundle"
7057                id="StandardCardNoMediaLink--8402094031039"
7058                class="full-unstyled-link"
7059                aria-labelledby="StandardCardNoMediaLink--8402094031039 NoMediaStandardBadge--8402094031039"
7060              >
7061                Balance bundle
7062              </a>
7063            </h3>
7064          </div>
7065          <div class="card__badge bottom left">
7066              
7067              
7068                <span
7069                  id="NoMediaStandardBadge--8402094031039"
7070                  class="badge badge--bottom-left color-accent-2"
7071                >
7072                  <svg
7073  aria-hidden="true"
7074  focusable="false"
7075  class="icon icon-discount color-foreground-text"
7076  viewBox="0 0 12 12"
7077>
7078  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
7079</svg>
7080<span class='nowrap'>SAVE 9%</span>
7081                </span></div>
7082        </div>
7083      </div>
7084      <div class="card__content">
7085        <div class="card__information">
7086          <h3
7087            class="card__heading h5"
7088            
7089              id="title--8402094031039"
7090            
7091          >
7092            <a
7093              href="/products/vibeassage%C2%AE-relief-bundle"
7094              id="CardLink--8402094031039"
7095              class="full-unstyled-link"
7096              aria-labelledby="CardLink--8402094031039 Badge--8402094031039"
7097            >
7098              Balance bundle
7099            </a>
7100          </h3>
7101          
7102            <div class="product-subtitle">
7103              Comfort Relief Pad + Peak Performance Pad
7104            </div>
7105          
7106          <div class="card-information"><span class="caption-large light"></span>
7107<div
7108  class="
7109    price  price--on-sale "
7110>
7111  <div class="price__container"><div class="price__regular">
7112      <span class="visually-hidden visually-hidden--inline">Regular price</span>
7113      <span class="price-item price-item--regular">
7114        $99.00
7115      </span>
7116    </div>
7117    <div class="price__sale ">
7118      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
7119      <span class="price-item price-item--sale price-item--last">
7120        $99.00
7121      </span>
7122        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
7123        <span class="price__compare-price">
7124          <s class="price-item price-item--regular">
7125            $109.95
7126          </s>
7127        </span></div>
7128    <small class="unit-price caption hidden">
7129      <span class="visually-hidden">Unit price</span>
7130      <span class="price-item price-item--last">
7131        <span></span>
7132        <span aria-hidden="true">/</span>
7133        <span class="visually-hidden">&nbsp;per&nbsp;</span>
7134        <span>
7135        </span>
7136      </span>
7137    </small>
7138  </div></div>
7139
7140          </div>
7141        </div>
7142        
7143<div class="card__badge bottom left"><span
7144              id="Badge--8402094031039"
7145              class="badge badge--bottom-left color-accent-2"
7146            >
7147              9%
7148            </span></div>
7149      </div>
7150    </div>
7151  </div>
7151<script>
7152  (() => {
7153    if (window.cardProductQuickAddVariantFixLoaded) return;
7154    window.cardProductQuickAddVariantFixLoaded = true;
7155
7156    const ADD_TO_CART_TEXT = "Add to cart";
7157    const SOLD_OUT_TEXT = "Sold out";
7158
7159    function parseVariants(container) {
7160      if (!container) return [];
7161
7162      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
7163
7164      for (const script of scripts) {
7165        try {
7166          const data = JSON.parse(script.textContent.trim());
7167
7168          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
7169            return data;
7170          }
7171
7172          if (data && Array.isArray(data.variants)) {
7173            return data.variants;
7174          }
7175        } catch (error) {}
7176      }
7177
7178      return [];
7179    }
7180
7181    function getSelectedOptionValues(container) {
7182      const values = [];
7183
7184      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
7185        const checkedInput = group.querySelector('input[type="radio"]:checked');
7186        const select = group.querySelector('select');
7187
7188        if (checkedInput) {
7189          values.push(checkedInput.value);
7190        } else if (select) {
7191          values.push(select.value);
7192        }
7193      });
7194
7195      return values;
7196    }
7197
7198    function getCurrentVariant(container, form, variants) {
7199      const idInput = form && form.querySelector('[name="id"]');
7200      const selectedId = idInput && idInput.value;
7201
7202      if (selectedId) {
7203        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
7204        if (byId) return byId;
7205      }
7206
7207      const selectedOptions = getSelectedOptionValues(container);
7208
7209      if (selectedOptions.length) {
7210        return variants.find((variant) => {
7211          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
7212          return selectedOptions.every((value, index) => String(options[index]) === String(value));
7213        });
7214      }
7215
7216      return null;
7217    }
7218
7219    function setButtonState(form, variant) {
7220      if (!form) return;
7221
7222      const idInput = form.querySelector('[name="id"]');
7223      const addButton = form.querySelector('[name="add"]');
7224      const buttonLabel =
7225        addButton &&
7226        (addButton.querySelector('.main-atc__label__text') ||
7227          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
7228      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
7229      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
7230
7231      if (!addButton || !idInput || !variant) return;
7232
7233      idInput.value = variant.id;
7234      idInput.disabled = false;
7235
7236      if (spinner) spinner.classList.add('hidden');
7237
7238      if (variant.available) {
7239        addButton.disabled = false;
7240        addButton.removeAttribute('disabled');
7241        addButton.removeAttribute('aria-disabled');
7242        addButton.classList.remove('loading');
7243
7244        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
7245        if (soldOutMessage) soldOutMessage.classList.add('hidden');
7246      } else {
7247        addButton.disabled = true;
7248        addButton.setAttribute('disabled', 'disabled');
7249        addButton.setAttribute('aria-disabled', 'true');
7250
7251        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
7252        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
7253      }
7254    }
7255
7256    function syncContainer(container) {
7257      if (!container) return;
7258
7259      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
7260      if (!form) return;
7261
7262      const variants = parseVariants(container);
7263      if (!variants.length) return;
7264
7265      const variant = getCurrentVariant(container, form, variants);
7266      if (!variant) return;
7267
7268      setButtonState(form, variant);
7269    }
7270
7271    document.addEventListener('change', (event) => {
7272      const quickAddModal = event.target.closest('quick-add-modal');
7273      const cardVariantSelects = event.target.closest('card-variant-selects');
7274
7275      if (quickAddModal) {
7276        setTimeout(() => syncContainer(quickAddModal), 80);
7277        setTimeout(() => syncContainer(quickAddModal), 250);
7278      }
7279
7280      if (cardVariantSelects) {
7281        const card = cardVariantSelects.closest('.card-wrapper');
7282        if (card) {
7283          setTimeout(() => syncContainer(card), 80);
7284          setTimeout(() => syncContainer(card), 250);
7285        }
7286      }
7287    });
7288
7289    const observer = new MutationObserver((mutations) => {
7290      mutations.forEach((mutation) => {
7291        mutation.addedNodes.forEach((node) => {
7292          if (!(node instanceof HTMLElement)) return;
7293
7294          if (node.matches && node.matches('quick-add-modal')) {
7295            setTimeout(() => syncContainer(node), 150);
7296          }
7297
7298          node.querySelectorAll &&
7299            node.querySelectorAll('quick-add-modal').forEach((modal) => {
7300              setTimeout(() => syncContainer(modal), 150);
7301            });
7302        });
7303      });
7304    });
7305
7306    observer.observe(document.documentElement, {
7307      childList: true,
7308      subtree: true
7309    });
7310
7311    document.addEventListener('DOMContentLoaded', () => {
7312      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
7313    });
7314  })();
7315</script>
7315
7316
7317
7318
7319
7320                                              </li>
7321                                            
7322                                              <li>
7323                                                
7324<div class="card-wrapper product-card-wrapper underline-links-hover">
7325    <div
7326      class="
7327        card
7328        card--card
7329         card--media
7330         color-background-1 gradient
7331        
7332        
7333        
7334         card--badge-sided
7335        
7336        
7337      "
7338      style="--ratio-percent: 100%;"
7339    >
7340      <div
7341        class="card__inner  ratio"
7342        style="--ratio-percent: 100%;"
7343      ><div class="card__media">
7344            <div class="media media--transparent media--hover-effect">
7345              
7346              <img
7347                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763 1254w
7348                "
7349                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533"
7350                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7351                alt="White"
7352                class="motion-reduce"
7353                
7354                  loading="lazy"
7355                
7356                width="1254"
7357                height="1254"
7358                id='quick-add-8342972760255-image'
7359              >
7360              
7361<img
7362                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068 1254w
7363                  "
7364                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533"
7365                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7366                  alt=""
7367                  class="motion-reduce"
7368                  loading="lazy"
7369                  width="1254"
7370                  height="1254"
7371                ></div>
7372          </div><div class="card__content">
7373          <div class="card__information">
7374            <h3
7375              class="card__heading"
7376              
7377            >
7378              <a
7379                href="/products/vibeassage-performance-bundle"
7380                id="StandardCardNoMediaLink--8342972760255"
7381                class="full-unstyled-link"
7382                aria-labelledby="StandardCardNoMediaLink--8342972760255 NoMediaStandardBadge--8342972760255"
7383              >
7384                Vibeassage® Performance Bundle
7385              </a>
7386            </h3>
7387          </div>
7388          <div class="card__badge bottom left">
7389              
7390              </div>
7391        </div>
7392      </div>
7393      <div class="card__content">
7394        <div class="card__information">
7395          <h3
7396            class="card__heading h5"
7397            
7398              id="title--8342972760255"
7399            
7400          >
7401            <a
7402              href="/products/vibeassage-performance-bundle"
7403              id="CardLink--8342972760255"
7404              class="full-unstyled-link"
7405              aria-labelledby="CardLink--8342972760255 Badge--8342972760255"
7406            >
7407              Vibeassage® Performance Bundle
7408            </a>
7409          </h3>
7410          
7411          <div class="card-information"><span class="caption-large light"></span>
7412<div
7413  class="
7414    price "
7415>
7416  <div class="price__container"><div class="price__regular">
7417      <span class="visually-hidden visually-hidden--inline">Regular price</span>
7418      <span class="price-item price-item--regular">
7419        From $389.00
7420      </span>
7421    </div>
7422    <div class="price__sale ">
7423      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
7424      <span class="price-item price-item--sale price-item--last">
7425        From $389.00
7426      </span>
7427        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
7428        <span class="price__compare-price">
7429          <s class="price-item price-item--regular">
7430            
7431          </s>
7432        </span></div>
7433    <small class="unit-price caption hidden">
7434      <span class="visually-hidden">Unit price</span>
7435      <span class="price-item price-item--last">
7436        <span></span>
7437        <span aria-hidden="true">/</span>
7438        <span class="visually-hidden">&nbsp;per&nbsp;</span>
7439        <span>
7440        </span>
7441      </span>
7442    </small>
7443  </div></div>
7444
7445          </div>
7446        </div>
7447        
7448<div class="card__badge bottom left"></div>
7449      </div>
7450    </div>
7451  </div>
7451<script>
7452  (() => {
7453    if (window.cardProductQuickAddVariantFixLoaded) return;
7454    window.cardProductQuickAddVariantFixLoaded = true;
7455
7456    const ADD_TO_CART_TEXT = "Add to cart";
7457    const SOLD_OUT_TEXT = "Sold out";
7458
7459    function parseVariants(container) {
7460      if (!container) return [];
7461
7462      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
7463
7464      for (const script of scripts) {
7465        try {
7466          const data = JSON.parse(script.textContent.trim());
7467
7468          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
7469            return data;
7470          }
7471
7472          if (data && Array.isArray(data.variants)) {
7473            return data.variants;
7474          }
7475        } catch (error) {}
7476      }
7477
7478      return [];
7479    }
7480
7481    function getSelectedOptionValues(container) {
7482      const values = [];
7483
7484      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
7485        const checkedInput = group.querySelector('input[type="radio"]:checked');
7486        const select = group.querySelector('select');
7487
7488        if (checkedInput) {
7489          values.push(checkedInput.value);
7490        } else if (select) {
7491          values.push(select.value);
7492        }
7493      });
7494
7495      return values;
7496    }
7497
7498    function getCurrentVariant(container, form, variants) {
7499      const idInput = form && form.querySelector('[name="id"]');
7500      const selectedId = idInput && idInput.value;
7501
7502      if (selectedId) {
7503        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
7504        if (byId) return byId;
7505      }
7506
7507      const selectedOptions = getSelectedOptionValues(container);
7508
7509      if (selectedOptions.length) {
7510        return variants.find((variant) => {
7511          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
7512          return selectedOptions.every((value, index) => String(options[index]) === String(value));
7513        });
7514      }
7515
7516      return null;
7517    }
7518
7519    function setButtonState(form, variant) {
7520      if (!form) return;
7521
7522      const idInput = form.querySelector('[name="id"]');
7523      const addButton = form.querySelector('[name="add"]');
7524      const buttonLabel =
7525        addButton &&
7526        (addButton.querySelector('.main-atc__label__text') ||
7527          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
7528      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
7529      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
7530
7531      if (!addButton || !idInput || !variant) return;
7532
7533      idInput.value = variant.id;
7534      idInput.disabled = false;
7535
7536      if (spinner) spinner.classList.add('hidden');
7537
7538      if (variant.available) {
7539        addButton.disabled = false;
7540        addButton.removeAttribute('disabled');
7541        addButton.removeAttribute('aria-disabled');
7542        addButton.classList.remove('loading');
7543
7544        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
7545        if (soldOutMessage) soldOutMessage.classList.add('hidden');
7546      } else {
7547        addButton.disabled = true;
7548        addButton.setAttribute('disabled', 'disabled');
7549        addButton.setAttribute('aria-disabled', 'true');
7550
7551        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
7552        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
7553      }
7554    }
7555
7556    function syncContainer(container) {
7557      if (!container) return;
7558
7559      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
7560      if (!form) return;
7561
7562      const variants = parseVariants(container);
7563      if (!variants.length) return;
7564
7565      const variant = getCurrentVariant(container, form, variants);
7566      if (!variant) return;
7567
7568      setButtonState(form, variant);
7569    }
7570
7571    document.addEventListener('change', (event) => {
7572      const quickAddModal = event.target.closest('quick-add-modal');
7573      const cardVariantSelects = event.target.closest('card-variant-selects');
7574
7575      if (quickAddModal) {
7576        setTimeout(() => syncContainer(quickAddModal), 80);
7577        setTimeout(() => syncContainer(quickAddModal), 250);
7578      }
7579
7580      if (cardVariantSelects) {
7581        const card = cardVariantSelects.closest('.card-wrapper');
7582        if (card) {
7583          setTimeout(() => syncContainer(card), 80);
7584          setTimeout(() => syncContainer(card), 250);
7585        }
7586      }
7587    });
7588
7589    const observer = new MutationObserver((mutations) => {
7590      mutations.forEach((mutation) => {
7591        mutation.addedNodes.forEach((node) => {
7592          if (!(node instanceof HTMLElement)) return;
7593
7594          if (node.matches && node.matches('quick-add-modal')) {
7595            setTimeout(() => syncContainer(node), 150);
7596          }
7597
7598          node.querySelectorAll &&
7599            node.querySelectorAll('quick-add-modal').forEach((modal) => {
7600              setTimeout(() => syncContainer(modal), 150);
7601            });
7602        });
7603      });
7604    });
7605
7606    observer.observe(document.documentElement, {
7607      childList: true,
7608      subtree: true
7609    });
7610
7611    document.addEventListener('DOMContentLoaded', () => {
7612      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
7613    });
7614  })();
7615</script>
7615
7616
7617
7618
7619
7620                                              </li>
7621                                            
7622                                              <li>
7623                                                
7624<div class="card-wrapper product-card-wrapper underline-links-hover">
7625    <div
7626      class="
7627        card
7628        card--card
7629         card--media
7630         color-background-1 gradient
7631        
7632        
7633        
7634         card--badge-sided
7635        
7636        
7637      "
7638      style="--ratio-percent: 100%;"
7639    >
7640      <div
7641        class="card__inner  ratio"
7642        style="--ratio-percent: 100%;"
7643      ><div class="card__media">
7644            <div class="media media--transparent media--hover-effect">
7645              
7646              <img
7647                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068 1254w
7648                "
7649                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533"
7650                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7651                alt="White"
7652                class="motion-reduce"
7653                
7654                  loading="lazy"
7655                
7656                width="1254"
7657                height="1254"
7658                id='quick-add-8342966534335-image'
7659              >
7660              
7661<img
7662                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140 w
7663                  "
7664                  src="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140&width=533"
7665                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7666                  alt=""
7667                  class="motion-reduce"
7668                  loading="lazy"
7669                  width=""
7670                  height=""
7671                ></div>
7672          </div><div class="card__content">
7673          <div class="card__information">
7674            <h3
7675              class="card__heading"
7676              
7677            >
7678              <a
7679                href="/products/vibeassage-core-system"
7680                id="StandardCardNoMediaLink--8342966534335"
7681                class="full-unstyled-link"
7682                aria-labelledby="StandardCardNoMediaLink--8342966534335 NoMediaStandardBadge--8342966534335"
7683              >
7684                Vibeassage® Core System
7685              </a>
7686            </h3>
7687          </div>
7688          <div class="card__badge bottom left">
7689              
7690              </div>
7691        </div>
7692      </div>
7693      <div class="card__content">
7694        <div class="card__information">
7695          <h3
7696            class="card__heading h5"
7697            
7698              id="title--8342966534335"
7699            
7700          >
7701            <a
7702              href="/products/vibeassage-core-system"
7703              id="CardLink--8342966534335"
7704              class="full-unstyled-link"
7705              aria-labelledby="CardLink--8342966534335 Badge--8342966534335"
7706            >
7707              Vibeassage® Core System
7708            </a>
7709          </h3>
7710          
7711          <div class="card-information"><span class="caption-large light"></span>
7712<div
7713  class="
7714    price "
7715>
7716  <div class="price__container"><div class="price__regular">
7717      <span class="visually-hidden visually-hidden--inline">Regular price</span>
7718      <span class="price-item price-item--regular">
7719        From $349.00
7720      </span>
7721    </div>
7722    <div class="price__sale ">
7723      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
7724      <span class="price-item price-item--sale price-item--last">
7725        From $349.00
7726      </span>
7727        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
7728        <span class="price__compare-price">
7729          <s class="price-item price-item--regular">
7730            
7731          </s>
7732        </span></div>
7733    <small class="unit-price caption hidden">
7734      <span class="visually-hidden">Unit price</span>
7735      <span class="price-item price-item--last">
7736        <span></span>
7737        <span aria-hidden="true">/</span>
7738        <span class="visually-hidden">&nbsp;per&nbsp;</span>
7739        <span>
7740        </span>
7741      </span>
7742    </small>
7743  </div></div>
7744
7745          </div>
7746        </div>
7747        
7748<div class="card__badge bottom left"></div>
7749      </div>
7750    </div>
7751  </div>
7751<script>
7752  (() => {
7753    if (window.cardProductQuickAddVariantFixLoaded) return;
7754    window.cardProductQuickAddVariantFixLoaded = true;
7755
7756    const ADD_TO_CART_TEXT = "Add to cart";
7757    const SOLD_OUT_TEXT = "Sold out";
7758
7759    function parseVariants(container) {
7760      if (!container) return [];
7761
7762      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
7763
7764      for (const script of scripts) {
7765        try {
7766          const data = JSON.parse(script.textContent.trim());
7767
7768          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
7769            return data;
7770          }
7771
7772          if (data && Array.isArray(data.variants)) {
7773            return data.variants;
7774          }
7775        } catch (error) {}
7776      }
7777
7778      return [];
7779    }
7780
7781    function getSelectedOptionValues(container) {
7782      const values = [];
7783
7784      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
7785        const checkedInput = group.querySelector('input[type="radio"]:checked');
7786        const select = group.querySelector('select');
7787
7788        if (checkedInput) {
7789          values.push(checkedInput.value);
7790        } else if (select) {
7791          values.push(select.value);
7792        }
7793      });
7794
7795      return values;
7796    }
7797
7798    function getCurrentVariant(container, form, variants) {
7799      const idInput = form && form.querySelector('[name="id"]');
7800      const selectedId = idInput && idInput.value;
7801
7802      if (selectedId) {
7803        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
7804        if (byId) return byId;
7805      }
7806
7807      const selectedOptions = getSelectedOptionValues(container);
7808
7809      if (selectedOptions.length) {
7810        return variants.find((variant) => {
7811          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
7812          return selectedOptions.every((value, index) => String(options[index]) === String(value));
7813        });
7814      }
7815
7816      return null;
7817    }
7818
7819    function setButtonState(form, variant) {
7820      if (!form) return;
7821
7822      const idInput = form.querySelector('[name="id"]');
7823      const addButton = form.querySelector('[name="add"]');
7824      const buttonLabel =
7825        addButton &&
7826        (addButton.querySelector('.main-atc__label__text') ||
7827          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
7828      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
7829      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
7830
7831      if (!addButton || !idInput || !variant) return;
7832
7833      idInput.value = variant.id;
7834      idInput.disabled = false;
7835
7836      if (spinner) spinner.classList.add('hidden');
7837
7838      if (variant.available) {
7839        addButton.disabled = false;
7840        addButton.removeAttribute('disabled');
7841        addButton.removeAttribute('aria-disabled');
7842        addButton.classList.remove('loading');
7843
7844        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
7845        if (soldOutMessage) soldOutMessage.classList.add('hidden');
7846      } else {
7847        addButton.disabled = true;
7848        addButton.setAttribute('disabled', 'disabled');
7849        addButton.setAttribute('aria-disabled', 'true');
7850
7851        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
7852        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
7853      }
7854    }
7855
7856    function syncContainer(container) {
7857      if (!container) return;
7858
7859      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
7860      if (!form) return;
7861
7862      const variants = parseVariants(container);
7863      if (!variants.length) return;
7864
7865      const variant = getCurrentVariant(container, form, variants);
7866      if (!variant) return;
7867
7868      setButtonState(form, variant);
7869    }
7870
7871    document.addEventListener('change', (event) => {
7872      const quickAddModal = event.target.closest('quick-add-modal');
7873      const cardVariantSelects = event.target.closest('card-variant-selects');
7874
7875      if (quickAddModal) {
7876        setTimeout(() => syncContainer(quickAddModal), 80);
7877        setTimeout(() => syncContainer(quickAddModal), 250);
7878      }
7879
7880      if (cardVariantSelects) {
7881        const card = cardVariantSelects.closest('.card-wrapper');
7882        if (card) {
7883          setTimeout(() => syncContainer(card), 80);
7884          setTimeout(() => syncContainer(card), 250);
7885        }
7886      }
7887    });
7888
7889    const observer = new MutationObserver((mutations) => {
7890      mutations.forEach((mutation) => {
7891        mutation.addedNodes.forEach((node) => {
7892          if (!(node instanceof HTMLElement)) return;
7893
7894          if (node.matches && node.matches('quick-add-modal')) {
7895            setTimeout(() => syncContainer(node), 150);
7896          }
7897
7898          node.querySelectorAll &&
7899            node.querySelectorAll('quick-add-modal').forEach((modal) => {
7900              setTimeout(() => syncContainer(modal), 150);
7901            });
7902        });
7903      });
7904    });
7905
7906    observer.observe(document.documentElement, {
7907      childList: true,
7908      subtree: true
7909    });
7910
7911    document.addEventListener('DOMContentLoaded', () => {
7912      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
7913    });
7914  })();
7915</script>
7915
7916
7917
7918
7919
7920                                              </li>
7921                                            
7922                                              <li>
7923                                                
7924<div class="card-wrapper product-card-wrapper underline-links-hover">
7925    <div
7926      class="
7927        card
7928        card--card
7929         card--media
7930         color-background-1 gradient
7931        
7932        
7933        
7934         card--badge-sided
7935        
7936        
7937      "
7938      style="--ratio-percent: 100%;"
7939    >
7940      <div
7941        class="card__inner  ratio"
7942        style="--ratio-percent: 100%;"
7943      ><div class="card__media">
7944            <div class="media media--transparent media--hover-effect">
7945              
7946              <img
7947                srcset="//teamdoctors.com/cdn/shop/products/ScreenShot2023-04-07at10.46.01PM.png?v=1680925749&width=165 165w,//teamdoctors.com/cdn/shop/products/ScreenShot2023-04-07at10.46.01PM.png?v=1680925749 332w
7948                "
7949                src="//teamdoctors.com/cdn/shop/products/ScreenShot2023-04-07at10.46.01PM.png?v=1680925749&width=533"
7950                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
7951                alt="Vibeassage Pro Replacement Cables - Team Doctors"
7952                class="motion-reduce"
7953                
7954                  loading="lazy"
7955                
7956                width="332"
7957                height="279"
7958                id='quick-add-7475904184511-image'
7959              >
7960              
7961</div>
7962          </div><div class="card__content">
7963          <div class="card__information">
7964            <h3
7965              class="card__heading"
7966              
7967            >
7968              <a
7969                href="/products/vibeassage-pro-replacement-cables"
7970                id="StandardCardNoMediaLink--7475904184511"
7971                class="full-unstyled-link"
7972                aria-labelledby="StandardCardNoMediaLink--7475904184511 NoMediaStandardBadge--7475904184511"
7973              >
7974                Vibeassage® Pro Replacement Cables
7975              </a>
7976            </h3>
7977          </div>
7978          <div class="card__badge bottom left">
7979              
7980              </div>
7981        </div>
7982      </div>
7983      <div class="card__content">
7984        <div class="card__information">
7985          <h3
7986            class="card__heading h5"
7987            
7988              id="title--7475904184511"
7989            
7990          >
7991            <a
7992              href="/products/vibeassage-pro-replacement-cables"
7993              id="CardLink--7475904184511"
7994              class="full-unstyled-link"
7995              aria-labelledby="CardLink--7475904184511 Badge--7475904184511"
7996            >
7997              Vibeassage® Pro Replacement Cables
7998            </a>
7999          </h3>
8000          
8001          <div class="card-information"><span class="caption-large light"></span>
8002<div
8003  class="
8004    price "
8005>
8006  <div class="price__container"><div class="price__regular">
8007      <span class="visually-hidden visually-hidden--inline">Regular price</span>
8008      <span class="price-item price-item--regular">
8009        $129.00
8010      </span>
8011    </div>
8012    <div class="price__sale ">
8013      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
8014      <span class="price-item price-item--sale price-item--last">
8015        $129.00
8016      </span>
8017        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
8018        <span class="price__compare-price">
8019          <s class="price-item price-item--regular">
8020            
8021          </s>
8022        </span></div>
8023    <small class="unit-price caption hidden">
8024      <span class="visually-hidden">Unit price</span>
8025      <span class="price-item price-item--last">
8026        <span></span>
8027        <span aria-hidden="true">/</span>
8028        <span class="visually-hidden">&nbsp;per&nbsp;</span>
8029        <span>
8030        </span>
8031      </span>
8032    </small>
8033  </div></div>
8034
8035          </div>
8036        </div>
8037        
8038<div class="card__badge bottom left"></div>
8039      </div>
8040    </div>
8041  </div>
8041<script>
8042  (() => {
8043    if (window.cardProductQuickAddVariantFixLoaded) return;
8044    window.cardProductQuickAddVariantFixLoaded = true;
8045
8046    const ADD_TO_CART_TEXT = "Add to cart";
8047    const SOLD_OUT_TEXT = "Sold out";
8048
8049    function parseVariants(container) {
8050      if (!container) return [];
8051
8052      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
8053
8054      for (const script of scripts) {
8055        try {
8056          const data = JSON.parse(script.textContent.trim());
8057
8058          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
8059            return data;
8060          }
8061
8062          if (data && Array.isArray(data.variants)) {
8063            return data.variants;
8064          }
8065        } catch (error) {}
8066      }
8067
8068      return [];
8069    }
8070
8071    function getSelectedOptionValues(container) {
8072      const values = [];
8073
8074      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
8075        const checkedInput = group.querySelector('input[type="radio"]:checked');
8076        const select = group.querySelector('select');
8077
8078        if (checkedInput) {
8079          values.push(checkedInput.value);
8080        } else if (select) {
8081          values.push(select.value);
8082        }
8083      });
8084
8085      return values;
8086    }
8087
8088    function getCurrentVariant(container, form, variants) {
8089      const idInput = form && form.querySelector('[name="id"]');
8090      const selectedId = idInput && idInput.value;
8091
8092      if (selectedId) {
8093        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
8094        if (byId) return byId;
8095      }
8096
8097      const selectedOptions = getSelectedOptionValues(container);
8098
8099      if (selectedOptions.length) {
8100        return variants.find((variant) => {
8101          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
8102          return selectedOptions.every((value, index) => String(options[index]) === String(value));
8103        });
8104      }
8105
8106      return null;
8107    }
8108
8109    function setButtonState(form, variant) {
8110      if (!form) return;
8111
8112      const idInput = form.querySelector('[name="id"]');
8113      const addButton = form.querySelector('[name="add"]');
8114      const buttonLabel =
8115        addButton &&
8116        (addButton.querySelector('.main-atc__label__text') ||
8117          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
8118      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
8119      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
8120
8121      if (!addButton || !idInput || !variant) return;
8122
8123      idInput.value = variant.id;
8124      idInput.disabled = false;
8125
8126      if (spinner) spinner.classList.add('hidden');
8127
8128      if (variant.available) {
8129        addButton.disabled = false;
8130        addButton.removeAttribute('disabled');
8131        addButton.removeAttribute('aria-disabled');
8132        addButton.classList.remove('loading');
8133
8134        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
8135        if (soldOutMessage) soldOutMessage.classList.add('hidden');
8136      } else {
8137        addButton.disabled = true;
8138        addButton.setAttribute('disabled', 'disabled');
8139        addButton.setAttribute('aria-disabled', 'true');
8140
8141        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
8142        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
8143      }
8144    }
8145
8146    function syncContainer(container) {
8147      if (!container) return;
8148
8149      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
8150      if (!form) return;
8151
8152      const variants = parseVariants(container);
8153      if (!variants.length) return;
8154
8155      const variant = getCurrentVariant(container, form, variants);
8156      if (!variant) return;
8157
8158      setButtonState(form, variant);
8159    }
8160
8161    document.addEventListener('change', (event) => {
8162      const quickAddModal = event.target.closest('quick-add-modal');
8163      const cardVariantSelects = event.target.closest('card-variant-selects');
8164
8165      if (quickAddModal) {
8166        setTimeout(() => syncContainer(quickAddModal), 80);
8167        setTimeout(() => syncContainer(quickAddModal), 250);
8168      }
8169
8170      if (cardVariantSelects) {
8171        const card = cardVariantSelects.closest('.card-wrapper');
8172        if (card) {
8173          setTimeout(() => syncContainer(card), 80);
8174          setTimeout(() => syncContainer(card), 250);
8175        }
8176      }
8177    });
8178
8179    const observer = new MutationObserver((mutations) => {
8180      mutations.forEach((mutation) => {
8181        mutation.addedNodes.forEach((node) => {
8182          if (!(node instanceof HTMLElement)) return;
8183
8184          if (node.matches && node.matches('quick-add-modal')) {
8185            setTimeout(() => syncContainer(node), 150);
8186          }
8187
8188          node.querySelectorAll &&
8189            node.querySelectorAll('quick-add-modal').forEach((modal) => {
8190              setTimeout(() => syncContainer(modal), 150);
8191            });
8192        });
8193      });
8194    });
8195
8196    observer.observe(document.documentElement, {
8197      childList: true,
8198      subtree: true
8199    });
8200
8201    document.addEventListener('DOMContentLoaded', () => {
8202      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
8203    });
8204  })();
8205</script>
8205
8206
8207
8208
8209
8210                                              </li>
8211                                            
8212                                              <li>
8213                                                
8214<div class="card-wrapper product-card-wrapper underline-links-hover">
8215    <div
8216      class="
8217        card
8218        card--card
8219         card--media
8220         color-background-1 gradient
8221        
8222        
8223        
8224         card--badge-sided
8225        
8226        
8227      "
8228      style="--ratio-percent: 100%;"
8229    >
8230      <div
8231        class="card__inner  ratio"
8232        style="--ratio-percent: 100%;"
8233      ><div class="card__media">
8234            <div class="media media--transparent media--hover-effect">
8235              
8236              <img
8237                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844 1254w
8238                "
8239                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533"
8240                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8241                alt="Relief Bundle - Team Doctors"
8242                class="motion-reduce"
8243                
8244                  loading="lazy"
8245                
8246                width="1254"
8247                height="1254"
8248                id='quick-add-8433935974591-image'
8249              >
8250              
8251<img
8252                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
8253                  "
8254                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
8255                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8256                  alt=""
8257                  class="motion-reduce"
8258                  loading="lazy"
8259                  width="1080"
8260                  height="1080"
8261                ></div>
8262          </div><div class="card__content">
8263          <div class="card__information">
8264            <h3
8265              class="card__heading"
8266              
8267            >
8268              <a
8269                href="/products/relief-bundle"
8270                id="StandardCardNoMediaLink--8433935974591"
8271                class="full-unstyled-link"
8272                aria-labelledby="StandardCardNoMediaLink--8433935974591 NoMediaStandardBadge--8433935974591"
8273              >
8274                Relief Bundle
8275              </a>
8276            </h3>
8277          </div>
8278          <div class="card__badge bottom left">
8279              
8280              
8281                <span
8282                  id="NoMediaStandardBadge--8433935974591"
8283                  class="badge badge--bottom-left color-accent-2"
8284                >
8285                  <svg
8286  aria-hidden="true"
8287  focusable="false"
8288  class="icon icon-discount color-foreground-text"
8289  viewBox="0 0 12 12"
8290>
8291  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
8292</svg>
8293<span class='nowrap'>SAVE 9%</span>
8294                </span></div>
8295        </div>
8296      </div>
8297      <div class="card__content">
8298        <div class="card__information">
8299          <h3
8300            class="card__heading h5"
8301            
8302              id="title--8433935974591"
8303            
8304          >
8305            <a
8306              href="/products/relief-bundle"
8307              id="CardLink--8433935974591"
8308              class="full-unstyled-link"
8309              aria-labelledby="CardLink--8433935974591 Badge--8433935974591"
8310            >
8311              Relief Bundle
8312            </a>
8313          </h3>
8314          
8315            <div class="product-subtitle">
8316              Comfort Relief Pad + Core Recovery Pad
8317            </div>
8318          
8319          <div class="card-information"><span class="caption-large light"></span>
8320<div
8321  class="
8322    price  price--on-sale "
8323>
8324  <div class="price__container"><div class="price__regular">
8325      <span class="visually-hidden visually-hidden--inline">Regular price</span>
8326      <span class="price-item price-item--regular">
8327        $99.00
8328      </span>
8329    </div>
8330    <div class="price__sale ">
8331      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
8332      <span class="price-item price-item--sale price-item--last">
8333        $99.00
8334      </span>
8335        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
8336        <span class="price__compare-price">
8337          <s class="price-item price-item--regular">
8338            $109.90
8339          </s>
8340        </span></div>
8341    <small class="unit-price caption hidden">
8342      <span class="visually-hidden">Unit price</span>
8343      <span class="price-item price-item--last">
8344        <span></span>
8345        <span aria-hidden="true">/</span>
8346        <span class="visually-hidden">&nbsp;per&nbsp;</span>
8347        <span>
8348        </span>
8349      </span>
8350    </small>
8351  </div></div>
8352
8353          </div>
8354        </div>
8355        
8356<div class="card__badge bottom left"><span
8357              id="Badge--8433935974591"
8358              class="badge badge--bottom-left color-accent-2"
8359            >
8360              9%
8361            </span></div>
8362      </div>
8363    </div>
8364  </div>
8364<script>
8365  (() => {
8366    if (window.cardProductQuickAddVariantFixLoaded) return;
8367    window.cardProductQuickAddVariantFixLoaded = true;
8368
8369    const ADD_TO_CART_TEXT = "Add to cart";
8370    const SOLD_OUT_TEXT = "Sold out";
8371
8372    function parseVariants(container) {
8373      if (!container) return [];
8374
8375      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
8376
8377      for (const script of scripts) {
8378        try {
8379          const data = JSON.parse(script.textContent.trim());
8380
8381          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
8382            return data;
8383          }
8384
8385          if (data && Array.isArray(data.variants)) {
8386            return data.variants;
8387          }
8388        } catch (error) {}
8389      }
8390
8391      return [];
8392    }
8393
8394    function getSelectedOptionValues(container) {
8395      const values = [];
8396
8397      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
8398        const checkedInput = group.querySelector('input[type="radio"]:checked');
8399        const select = group.querySelector('select');
8400
8401        if (checkedInput) {
8402          values.push(checkedInput.value);
8403        } else if (select) {
8404          values.push(select.value);
8405        }
8406      });
8407
8408      return values;
8409    }
8410
8411    function getCurrentVariant(container, form, variants) {
8412      const idInput = form && form.querySelector('[name="id"]');
8413      const selectedId = idInput && idInput.value;
8414
8415      if (selectedId) {
8416        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
8417        if (byId) return byId;
8418      }
8419
8420      const selectedOptions = getSelectedOptionValues(container);
8421
8422      if (selectedOptions.length) {
8423        return variants.find((variant) => {
8424          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
8425          return selectedOptions.every((value, index) => String(options[index]) === String(value));
8426        });
8427      }
8428
8429      return null;
8430    }
8431
8432    function setButtonState(form, variant) {
8433      if (!form) return;
8434
8435      const idInput = form.querySelector('[name="id"]');
8436      const addButton = form.querySelector('[name="add"]');
8437      const buttonLabel =
8438        addButton &&
8439        (addButton.querySelector('.main-atc__label__text') ||
8440          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
8441      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
8442      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
8443
8444      if (!addButton || !idInput || !variant) return;
8445
8446      idInput.value = variant.id;
8447      idInput.disabled = false;
8448
8449      if (spinner) spinner.classList.add('hidden');
8450
8451      if (variant.available) {
8452        addButton.disabled = false;
8453        addButton.removeAttribute('disabled');
8454        addButton.removeAttribute('aria-disabled');
8455        addButton.classList.remove('loading');
8456
8457        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
8458        if (soldOutMessage) soldOutMessage.classList.add('hidden');
8459      } else {
8460        addButton.disabled = true;
8461        addButton.setAttribute('disabled', 'disabled');
8462        addButton.setAttribute('aria-disabled', 'true');
8463
8464        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
8465        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
8466      }
8467    }
8468
8469    function syncContainer(container) {
8470      if (!container) return;
8471
8472      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
8473      if (!form) return;
8474
8475      const variants = parseVariants(container);
8476      if (!variants.length) return;
8477
8478      const variant = getCurrentVariant(container, form, variants);
8479      if (!variant) return;
8480
8481      setButtonState(form, variant);
8482    }
8483
8484    document.addEventListener('change', (event) => {
8485      const quickAddModal = event.target.closest('quick-add-modal');
8486      const cardVariantSelects = event.target.closest('card-variant-selects');
8487
8488      if (quickAddModal) {
8489        setTimeout(() => syncContainer(quickAddModal), 80);
8490        setTimeout(() => syncContainer(quickAddModal), 250);
8491      }
8492
8493      if (cardVariantSelects) {
8494        const card = cardVariantSelects.closest('.card-wrapper');
8495        if (card) {
8496          setTimeout(() => syncContainer(card), 80);
8497          setTimeout(() => syncContainer(card), 250);
8498        }
8499      }
8500    });
8501
8502    const observer = new MutationObserver((mutations) => {
8503      mutations.forEach((mutation) => {
8504        mutation.addedNodes.forEach((node) => {
8505          if (!(node instanceof HTMLElement)) return;
8506
8507          if (node.matches && node.matches('quick-add-modal')) {
8508            setTimeout(() => syncContainer(node), 150);
8509          }
8510
8511          node.querySelectorAll &&
8512            node.querySelectorAll('quick-add-modal').forEach((modal) => {
8513              setTimeout(() => syncContainer(modal), 150);
8514            });
8515        });
8516      });
8517    });
8518
8519    observer.observe(document.documentElement, {
8520      childList: true,
8521      subtree: true
8522    });
8523
8524    document.addEventListener('DOMContentLoaded', () => {
8525      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
8526    });
8527  })();
8528</script>
8528
8529
8530
8531
8532
8533                                              </li>
8534                                            
8535                                              <li>
8536                                                
8537<div class="card-wrapper product-card-wrapper underline-links-hover">
8538    <div
8539      class="
8540        card
8541        card--card
8542         card--media
8543         color-background-1 gradient
8544        
8545        
8546        
8547         card--badge-sided
8548        
8549        
8550      "
8551      style="--ratio-percent: 100%;"
8552    >
8553      <div
8554        class="card__inner  ratio"
8555        style="--ratio-percent: 100%;"
8556      ><div class="card__media">
8557            <div class="media media--transparent media--hover-effect">
8558              
8559              <img
8560                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844 1254w
8561                "
8562                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533"
8563                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8564                alt="Performance Bundle - Team Doctors"
8565                class="motion-reduce"
8566                
8567                  loading="lazy"
8568                
8569                width="1254"
8570                height="1254"
8571                id='quick-add-8433936007359-image'
8572              >
8573              
8574<img
8575                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322 1080w
8576                  "
8577                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533"
8578                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8579                  alt=""
8580                  class="motion-reduce"
8581                  loading="lazy"
8582                  width="1080"
8583                  height="1080"
8584                ></div>
8585          </div><div class="card__content">
8586          <div class="card__information">
8587            <h3
8588              class="card__heading"
8589              
8590            >
8591              <a
8592                href="/products/performance-bundle"
8593                id="StandardCardNoMediaLink--8433936007359"
8594                class="full-unstyled-link"
8595                aria-labelledby="StandardCardNoMediaLink--8433936007359 NoMediaStandardBadge--8433936007359"
8596              >
8597                Performance Bundle
8598              </a>
8599            </h3>
8600          </div>
8601          <div class="card__badge bottom left">
8602              
8603              
8604                <span
8605                  id="NoMediaStandardBadge--8433936007359"
8606                  class="badge badge--bottom-left color-accent-2"
8607                >
8608                  <svg
8609  aria-hidden="true"
8610  focusable="false"
8611  class="icon icon-discount color-foreground-text"
8612  viewBox="0 0 12 12"
8613>
8614  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
8615</svg>
8616<span class='nowrap'>SAVE 9%</span>
8617                </span></div>
8618        </div>
8619      </div>
8620      <div class="card__content">
8621        <div class="card__information">
8622          <h3
8623            class="card__heading h5"
8624            
8625              id="title--8433936007359"
8626            
8627          >
8628            <a
8629              href="/products/performance-bundle"
8630              id="CardLink--8433936007359"
8631              class="full-unstyled-link"
8632              aria-labelledby="CardLink--8433936007359 Badge--8433936007359"
8633            >
8634              Performance Bundle
8635            </a>
8636          </h3>
8637          
8638            <div class="product-subtitle">
8639              Core Cecovery Pad + Peak Performance Pad
8640            </div>
8641          
8642          <div class="card-information"><span class="caption-large light"></span>
8643<div
8644  class="
8645    price  price--on-sale "
8646>
8647  <div class="price__container"><div class="price__regular">
8648      <span class="visually-hidden visually-hidden--inline">Regular price</span>
8649      <span class="price-item price-item--regular">
8650        $99.00
8651      </span>
8652    </div>
8653    <div class="price__sale ">
8654      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
8655      <span class="price-item price-item--sale price-item--last">
8656        $99.00
8657      </span>
8658        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
8659        <span class="price__compare-price">
8660          <s class="price-item price-item--regular">
8661            $109.90
8662          </s>
8663        </span></div>
8664    <small class="unit-price caption hidden">
8665      <span class="visually-hidden">Unit price</span>
8666      <span class="price-item price-item--last">
8667        <span></span>
8668        <span aria-hidden="true">/</span>
8669        <span class="visually-hidden">&nbsp;per&nbsp;</span>
8670        <span>
8671        </span>
8672      </span>
8673    </small>
8674  </div></div>
8675
8676          </div>
8677        </div>
8678        
8679<div class="card__badge bottom left"><span
8680              id="Badge--8433936007359"
8681              class="badge badge--bottom-left color-accent-2"
8682            >
8683              9%
8684            </span></div>
8685      </div>
8686    </div>
8687  </div>
8687<script>
8688  (() => {
8689    if (window.cardProductQuickAddVariantFixLoaded) return;
8690    window.cardProductQuickAddVariantFixLoaded = true;
8691
8692    const ADD_TO_CART_TEXT = "Add to cart";
8693    const SOLD_OUT_TEXT = "Sold out";
8694
8695    function parseVariants(container) {
8696      if (!container) return [];
8697
8698      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
8699
8700      for (const script of scripts) {
8701        try {
8702          const data = JSON.parse(script.textContent.trim());
8703
8704          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
8705            return data;
8706          }
8707
8708          if (data && Array.isArray(data.variants)) {
8709            return data.variants;
8710          }
8711        } catch (error) {}
8712      }
8713
8714      return [];
8715    }
8716
8717    function getSelectedOptionValues(container) {
8718      const values = [];
8719
8720      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
8721        const checkedInput = group.querySelector('input[type="radio"]:checked');
8722        const select = group.querySelector('select');
8723
8724        if (checkedInput) {
8725          values.push(checkedInput.value);
8726        } else if (select) {
8727          values.push(select.value);
8728        }
8729      });
8730
8731      return values;
8732    }
8733
8734    function getCurrentVariant(container, form, variants) {
8735      const idInput = form && form.querySelector('[name="id"]');
8736      const selectedId = idInput && idInput.value;
8737
8738      if (selectedId) {
8739        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
8740        if (byId) return byId;
8741      }
8742
8743      const selectedOptions = getSelectedOptionValues(container);
8744
8745      if (selectedOptions.length) {
8746        return variants.find((variant) => {
8747          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
8748          return selectedOptions.every((value, index) => String(options[index]) === String(value));
8749        });
8750      }
8751
8752      return null;
8753    }
8754
8755    function setButtonState(form, variant) {
8756      if (!form) return;
8757
8758      const idInput = form.querySelector('[name="id"]');
8759      const addButton = form.querySelector('[name="add"]');
8760      const buttonLabel =
8761        addButton &&
8762        (addButton.querySelector('.main-atc__label__text') ||
8763          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
8764      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
8765      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
8766
8767      if (!addButton || !idInput || !variant) return;
8768
8769      idInput.value = variant.id;
8770      idInput.disabled = false;
8771
8772      if (spinner) spinner.classList.add('hidden');
8773
8774      if (variant.available) {
8775        addButton.disabled = false;
8776        addButton.removeAttribute('disabled');
8777        addButton.removeAttribute('aria-disabled');
8778        addButton.classList.remove('loading');
8779
8780        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
8781        if (soldOutMessage) soldOutMessage.classList.add('hidden');
8782      } else {
8783        addButton.disabled = true;
8784        addButton.setAttribute('disabled', 'disabled');
8785        addButton.setAttribute('aria-disabled', 'true');
8786
8787        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
8788        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
8789      }
8790    }
8791
8792    function syncContainer(container) {
8793      if (!container) return;
8794
8795      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
8796      if (!form) return;
8797
8798      const variants = parseVariants(container);
8799      if (!variants.length) return;
8800
8801      const variant = getCurrentVariant(container, form, variants);
8802      if (!variant) return;
8803
8804      setButtonState(form, variant);
8805    }
8806
8807    document.addEventListener('change', (event) => {
8808      const quickAddModal = event.target.closest('quick-add-modal');
8809      const cardVariantSelects = event.target.closest('card-variant-selects');
8810
8811      if (quickAddModal) {
8812        setTimeout(() => syncContainer(quickAddModal), 80);
8813        setTimeout(() => syncContainer(quickAddModal), 250);
8814      }
8815
8816      if (cardVariantSelects) {
8817        const card = cardVariantSelects.closest('.card-wrapper');
8818        if (card) {
8819          setTimeout(() => syncContainer(card), 80);
8820          setTimeout(() => syncContainer(card), 250);
8821        }
8822      }
8823    });
8824
8825    const observer = new MutationObserver((mutations) => {
8826      mutations.forEach((mutation) => {
8827        mutation.addedNodes.forEach((node) => {
8828          if (!(node instanceof HTMLElement)) return;
8829
8830          if (node.matches && node.matches('quick-add-modal')) {
8831            setTimeout(() => syncContainer(node), 150);
8832          }
8833
8834          node.querySelectorAll &&
8835            node.querySelectorAll('quick-add-modal').forEach((modal) => {
8836              setTimeout(() => syncContainer(modal), 150);
8837            });
8838        });
8839      });
8840    });
8841
8842    observer.observe(document.documentElement, {
8843      childList: true,
8844      subtree: true
8845    });
8846
8847    document.addEventListener('DOMContentLoaded', () => {
8848      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
8849    });
8850  })();
8851</script>
8851
8852
8853
8854
8855
8856                                              </li>
8857                                            
8858                                          
8859</ul>
8860                                      
8861                                    </div>
8862                                  </details></li><li><details id="Details-menu-drawer-submenu-3">
8863                                    <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
8864                                      
8865                                      Bundles
8866                                      <svg
8867  viewBox="0 0 14 10"
8868  fill="none"
8869  aria-hidden="true"
8870  focusable="false"
8871  class="icon icon-arrow"
8872  xmlns="http://www.w3.org/2000/svg"
8873>
8874  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
8875</svg>
8876
8877                                      <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
8878  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
8879</svg>
8880
8881                                    </summary>
8882                                    <div id="childlink-bundles" class="menu-drawer__submenu has-submenu gradient motion-reduce">
8883                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
8884                                        <svg
8885  viewBox="0 0 14 10"
8886  fill="none"
8887  aria-hidden="true"
8888  focusable="false"
8889  class="icon icon-arrow"
8890  xmlns="http://www.w3.org/2000/svg"
8891>
8892  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
8893</svg>
8894
8895                                        Bundles
8896                                      </button>
8897                                      
8898                                        <ul class="products-mega-menu__cards products-mega-menu__cards--mobile">
8899                                          
8900                                            
8901                                            
8902                                            
8903                                              <li>
8904                                                
8905<div class="card-wrapper product-card-wrapper underline-links-hover">
8906    <div
8907      class="
8908        card
8909        card--card
8910         card--media
8911         color-background-1 gradient
8912        
8913        
8914        
8915         card--badge-sided
8916        
8917        
8918      "
8919      style="--ratio-percent: 100%;"
8920    >
8921      <div
8922        class="card__inner  ratio"
8923        style="--ratio-percent: 100%;"
8924      ><div class="card__media">
8925            <div class="media media--transparent media--hover-effect">
8926              
8927              <img
8928                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523 1254w
8929                "
8930                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533"
8931                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8932                alt="Complete Recovery Solution Bundle - Team Doctors"
8933                class="motion-reduce"
8934                
8935                  loading="lazy"
8936                
8937                width="1254"
8938                height="1254"
8939                id='quick-add-8455539065023-image'
8940              >
8941              
8942<img
8943                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014 w
8944                  "
8945                  src="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014&width=533"
8946                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
8947                  alt=""
8948                  class="motion-reduce"
8949                  loading="lazy"
8950                  width=""
8951                  height=""
8952                ></div>
8953          </div><div class="card__content">
8954          <div class="card__information">
8955            <h3
8956              class="card__heading"
8957              
8958            >
8959              <a
8960                href="/products/complete-recovery-solution-bundle"
8961                id="StandardCardNoMediaLink--8455539065023"
8962                class="full-unstyled-link"
8963                aria-labelledby="StandardCardNoMediaLink--8455539065023 NoMediaStandardBadge--8455539065023"
8964              >
8965                Complete Biomimetic Recovery System™
8966              </a>
8967            </h3>
8968          </div>
8969          <div class="card__badge bottom left">
8970              
8971              
8972                <span
8973                  id="NoMediaStandardBadge--8455539065023"
8974                  class="badge badge--bottom-left color-accent-2"
8975                >
8976                  <svg
8977  aria-hidden="true"
8978  focusable="false"
8979  class="icon icon-discount color-foreground-text"
8980  viewBox="0 0 12 12"
8981>
8982  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
8983</svg>
8984<span class='nowrap'>SAVE 10%</span>
8985                </span></div>
8986        </div>
8987      </div>
8988      <div class="card__content">
8989        <div class="card__information">
8990          <h3
8991            class="card__heading h5"
8992            
8993              id="title--8455539065023"
8994            
8995          >
8996            <a
8997              href="/products/complete-recovery-solution-bundle"
8998              id="CardLink--8455539065023"
8999              class="full-unstyled-link"
9000              aria-labelledby="CardLink--8455539065023 Badge--8455539065023"
9001            >
9002              Complete Biomimetic Recovery System™
9003            </a>
9004          </h3>
9005          
9006            <div class="product-subtitle">
9007              The Vibeassage Pro® + The Vibeassage Sport®
9008            </div>
9009          
9010          <div class="card-information"><span class="caption-large light"></span>
9011<div
9012  class="
9013    price  price--on-sale "
9014>
9015  <div class="price__container"><div class="price__regular">
9016      <span class="visually-hidden visually-hidden--inline">Regular price</span>
9017      <span class="price-item price-item--regular">
9018        $1,807.00
9019      </span>
9020    </div>
9021    <div class="price__sale ">
9022      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
9023      <span class="price-item price-item--sale price-item--last">
9024        $1,807.00
9025      </span>
9026        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
9027        <span class="price__compare-price">
9028          <s class="price-item price-item--regular">
9029            $2,008.00
9030          </s>
9031        </span></div>
9032    <small class="unit-price caption hidden">
9033      <span class="visually-hidden">Unit price</span>
9034      <span class="price-item price-item--last">
9035        <span></span>
9036        <span aria-hidden="true">/</span>
9037        <span class="visually-hidden">&nbsp;per&nbsp;</span>
9038        <span>
9039        </span>
9040      </span>
9041    </small>
9042  </div></div>
9043
9044          </div>
9045        </div>
9046        
9047<div class="card__badge bottom left"><span
9048              id="Badge--8455539065023"
9049              class="badge badge--bottom-left color-accent-2"
9050            >
9051              10%
9052            </span></div>
9053      </div>
9054    </div>
9055  </div>
9055<script>
9056  (() => {
9057    if (window.cardProductQuickAddVariantFixLoaded) return;
9058    window.cardProductQuickAddVariantFixLoaded = true;
9059
9060    const ADD_TO_CART_TEXT = "Add to cart";
9061    const SOLD_OUT_TEXT = "Sold out";
9062
9063    function parseVariants(container) {
9064      if (!container) return [];
9065
9066      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
9067
9068      for (const script of scripts) {
9069        try {
9070          const data = JSON.parse(script.textContent.trim());
9071
9072          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
9073            return data;
9074          }
9075
9076          if (data && Array.isArray(data.variants)) {
9077            return data.variants;
9078          }
9079        } catch (error) {}
9080      }
9081
9082      return [];
9083    }
9084
9085    function getSelectedOptionValues(container) {
9086      const values = [];
9087
9088      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
9089        const checkedInput = group.querySelector('input[type="radio"]:checked');
9090        const select = group.querySelector('select');
9091
9092        if (checkedInput) {
9093          values.push(checkedInput.value);
9094        } else if (select) {
9095          values.push(select.value);
9096        }
9097      });
9098
9099      return values;
9100    }
9101
9102    function getCurrentVariant(container, form, variants) {
9103      const idInput = form && form.querySelector('[name="id"]');
9104      const selectedId = idInput && idInput.value;
9105
9106      if (selectedId) {
9107        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
9108        if (byId) return byId;
9109      }
9110
9111      const selectedOptions = getSelectedOptionValues(container);
9112
9113      if (selectedOptions.length) {
9114        return variants.find((variant) => {
9115          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
9116          return selectedOptions.every((value, index) => String(options[index]) === String(value));
9117        });
9118      }
9119
9120      return null;
9121    }
9122
9123    function setButtonState(form, variant) {
9124      if (!form) return;
9125
9126      const idInput = form.querySelector('[name="id"]');
9127      const addButton = form.querySelector('[name="add"]');
9128      const buttonLabel =
9129        addButton &&
9130        (addButton.querySelector('.main-atc__label__text') ||
9131          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
9132      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
9133      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
9134
9135      if (!addButton || !idInput || !variant) return;
9136
9137      idInput.value = variant.id;
9138      idInput.disabled = false;
9139
9140      if (spinner) spinner.classList.add('hidden');
9141
9142      if (variant.available) {
9143        addButton.disabled = false;
9144        addButton.removeAttribute('disabled');
9145        addButton.removeAttribute('aria-disabled');
9146        addButton.classList.remove('loading');
9147
9148        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
9149        if (soldOutMessage) soldOutMessage.classList.add('hidden');
9150      } else {
9151        addButton.disabled = true;
9152        addButton.setAttribute('disabled', 'disabled');
9153        addButton.setAttribute('aria-disabled', 'true');
9154
9155        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
9156        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
9157      }
9158    }
9159
9160    function syncContainer(container) {
9161      if (!container) return;
9162
9163      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
9164      if (!form) return;
9165
9166      const variants = parseVariants(container);
9167      if (!variants.length) return;
9168
9169      const variant = getCurrentVariant(container, form, variants);
9170      if (!variant) return;
9171
9172      setButtonState(form, variant);
9173    }
9174
9175    document.addEventListener('change', (event) => {
9176      const quickAddModal = event.target.closest('quick-add-modal');
9177      const cardVariantSelects = event.target.closest('card-variant-selects');
9178
9179      if (quickAddModal) {
9180        setTimeout(() => syncContainer(quickAddModal), 80);
9181        setTimeout(() => syncContainer(quickAddModal), 250);
9182      }
9183
9184      if (cardVariantSelects) {
9185        const card = cardVariantSelects.closest('.card-wrapper');
9186        if (card) {
9187          setTimeout(() => syncContainer(card), 80);
9188          setTimeout(() => syncContainer(card), 250);
9189        }
9190      }
9191    });
9192
9193    const observer = new MutationObserver((mutations) => {
9194      mutations.forEach((mutation) => {
9195        mutation.addedNodes.forEach((node) => {
9196          if (!(node instanceof HTMLElement)) return;
9197
9198          if (node.matches && node.matches('quick-add-modal')) {
9199            setTimeout(() => syncContainer(node), 150);
9200          }
9201
9202          node.querySelectorAll &&
9203            node.querySelectorAll('quick-add-modal').forEach((modal) => {
9204              setTimeout(() => syncContainer(modal), 150);
9205            });
9206        });
9207      });
9208    });
9209
9210    observer.observe(document.documentElement, {
9211      childList: true,
9212      subtree: true
9213    });
9214
9215    document.addEventListener('DOMContentLoaded', () => {
9216      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
9217    });
9218  })();
9219</script>
9219
9220
9221
9222
9223
9224                                              </li>
9225                                            
9226                                              <li>
9227                                                
9228<div class="card-wrapper product-card-wrapper underline-links-hover">
9229    <div
9230      class="
9231        card
9232        card--card
9233         card--media
9234         color-background-1 gradient
9235        
9236        
9237        
9238         card--badge-sided
9239        
9240        
9241      "
9242      style="--ratio-percent: 100%;"
9243    >
9244      <div
9245        class="card__inner  ratio"
9246        style="--ratio-percent: 100%;"
9247      ><div class="card__media">
9248            <div class="media media--transparent media--hover-effect">
9249              
9250              <img
9251                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
9252                "
9253                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
9254                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9255                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
9256                class="motion-reduce"
9257                
9258                  loading="lazy"
9259                
9260                width=""
9261                height=""
9262                id='quick-add-7253705130175-image'
9263              >
9264              
9265<img
9266                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
9267                  "
9268                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
9269                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9270                  alt=""
9271                  class="motion-reduce"
9272                  loading="lazy"
9273                  width="810"
9274                  height="605"
9275                ></div>
9276          </div><div class="card__content">
9277          <div class="card__information">
9278            <h3
9279              class="card__heading"
9280              
9281            >
9282              <a
9283                href="/products/vibeassage-pro"
9284                id="StandardCardNoMediaLink--7253705130175"
9285                class="full-unstyled-link"
9286                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
9287              >
9288                The Vibeassage Pro® with the full 3-pad Biomimetic System™
9289              </a>
9290            </h3>
9291          </div>
9292          <div class="card__badge bottom left">
9293              
9294              
9295                <span
9296                  id="NoMediaStandardBadge--7253705130175"
9297                  class="badge badge--bottom-left color-accent-2"
9298                >
9299                  <svg
9300  aria-hidden="true"
9301  focusable="false"
9302  class="icon icon-discount color-foreground-text"
9303  viewBox="0 0 12 12"
9304>
9305  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
9306</svg>
9307<span class='nowrap'>SAVE 9%</span>
9308                </span></div>
9309        </div>
9310      </div>
9311      <div class="card__content">
9312        <div class="card__information">
9313          <h3
9314            class="card__heading h5"
9315            
9316              id="title--7253705130175"
9317            
9318          >
9319            <a
9320              href="/products/vibeassage-pro"
9321              id="CardLink--7253705130175"
9322              class="full-unstyled-link"
9323              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
9324            >
9325              The Vibeassage Pro® with the full 3-pad Biomimetic System™
9326            </a>
9327          </h3>
9328          
9329          <div class="card-information"><span class="caption-large light"></span>
9330<div
9331  class="
9332    price  price--on-sale "
9333>
9334  <div class="price__container"><div class="price__regular">
9335      <span class="visually-hidden visually-hidden--inline">Regular price</span>
9336      <span class="price-item price-item--regular">
9337        $1,579.00
9338      </span>
9339    </div>
9340    <div class="price__sale ">
9341      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
9342      <span class="price-item price-item--sale price-item--last">
9343        $1,579.00
9344      </span>
9345        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
9346        <span class="price__compare-price">
9347          <s class="price-item price-item--regular">
9348            $1,749.00
9349          </s>
9350        </span></div>
9351    <small class="unit-price caption hidden">
9352      <span class="visually-hidden">Unit price</span>
9353      <span class="price-item price-item--last">
9354        <span></span>
9355        <span aria-hidden="true">/</span>
9356        <span class="visually-hidden">&nbsp;per&nbsp;</span>
9357        <span>
9358        </span>
9359      </span>
9360    </small>
9361  </div></div>
9362
9363          </div>
9364        </div>
9365        
9366<div class="card__badge bottom left"><span
9367              id="Badge--7253705130175"
9368              class="badge badge--bottom-left color-accent-2"
9369            >
9370              9%
9371            </span></div>
9372      </div>
9373    </div>
9374  </div>
9374<script>
9375  (() => {
9376    if (window.cardProductQuickAddVariantFixLoaded) return;
9377    window.cardProductQuickAddVariantFixLoaded = true;
9378
9379    const ADD_TO_CART_TEXT = "Add to cart";
9380    const SOLD_OUT_TEXT = "Sold out";
9381
9382    function parseVariants(container) {
9383      if (!container) return [];
9384
9385      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
9386
9387      for (const script of scripts) {
9388        try {
9389          const data = JSON.parse(script.textContent.trim());
9390
9391          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
9392            return data;
9393          }
9394
9395          if (data && Array.isArray(data.variants)) {
9396            return data.variants;
9397          }
9398        } catch (error) {}
9399      }
9400
9401      return [];
9402    }
9403
9404    function getSelectedOptionValues(container) {
9405      const values = [];
9406
9407      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
9408        const checkedInput = group.querySelector('input[type="radio"]:checked');
9409        const select = group.querySelector('select');
9410
9411        if (checkedInput) {
9412          values.push(checkedInput.value);
9413        } else if (select) {
9414          values.push(select.value);
9415        }
9416      });
9417
9418      return values;
9419    }
9420
9421    function getCurrentVariant(container, form, variants) {
9422      const idInput = form && form.querySelector('[name="id"]');
9423      const selectedId = idInput && idInput.value;
9424
9425      if (selectedId) {
9426        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
9427        if (byId) return byId;
9428      }
9429
9430      const selectedOptions = getSelectedOptionValues(container);
9431
9432      if (selectedOptions.length) {
9433        return variants.find((variant) => {
9434          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
9435          return selectedOptions.every((value, index) => String(options[index]) === String(value));
9436        });
9437      }
9438
9439      return null;
9440    }
9441
9442    function setButtonState(form, variant) {
9443      if (!form) return;
9444
9445      const idInput = form.querySelector('[name="id"]');
9446      const addButton = form.querySelector('[name="add"]');
9447      const buttonLabel =
9448        addButton &&
9449        (addButton.querySelector('.main-atc__label__text') ||
9450          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
9451      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
9452      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
9453
9454      if (!addButton || !idInput || !variant) return;
9455
9456      idInput.value = variant.id;
9457      idInput.disabled = false;
9458
9459      if (spinner) spinner.classList.add('hidden');
9460
9461      if (variant.available) {
9462        addButton.disabled = false;
9463        addButton.removeAttribute('disabled');
9464        addButton.removeAttribute('aria-disabled');
9465        addButton.classList.remove('loading');
9466
9467        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
9468        if (soldOutMessage) soldOutMessage.classList.add('hidden');
9469      } else {
9470        addButton.disabled = true;
9471        addButton.setAttribute('disabled', 'disabled');
9472        addButton.setAttribute('aria-disabled', 'true');
9473
9474        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
9475        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
9476      }
9477    }
9478
9479    function syncContainer(container) {
9480      if (!container) return;
9481
9482      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
9483      if (!form) return;
9484
9485      const variants = parseVariants(container);
9486      if (!variants.length) return;
9487
9488      const variant = getCurrentVariant(container, form, variants);
9489      if (!variant) return;
9490
9491      setButtonState(form, variant);
9492    }
9493
9494    document.addEventListener('change', (event) => {
9495      const quickAddModal = event.target.closest('quick-add-modal');
9496      const cardVariantSelects = event.target.closest('card-variant-selects');
9497
9498      if (quickAddModal) {
9499        setTimeout(() => syncContainer(quickAddModal), 80);
9500        setTimeout(() => syncContainer(quickAddModal), 250);
9501      }
9502
9503      if (cardVariantSelects) {
9504        const card = cardVariantSelects.closest('.card-wrapper');
9505        if (card) {
9506          setTimeout(() => syncContainer(card), 80);
9507          setTimeout(() => syncContainer(card), 250);
9508        }
9509      }
9510    });
9511
9512    const observer = new MutationObserver((mutations) => {
9513      mutations.forEach((mutation) => {
9514        mutation.addedNodes.forEach((node) => {
9515          if (!(node instanceof HTMLElement)) return;
9516
9517          if (node.matches && node.matches('quick-add-modal')) {
9518            setTimeout(() => syncContainer(node), 150);
9519          }
9520
9521          node.querySelectorAll &&
9522            node.querySelectorAll('quick-add-modal').forEach((modal) => {
9523              setTimeout(() => syncContainer(modal), 150);
9524            });
9525        });
9526      });
9527    });
9528
9529    observer.observe(document.documentElement, {
9530      childList: true,
9531      subtree: true
9532    });
9533
9534    document.addEventListener('DOMContentLoaded', () => {
9535      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
9536    });
9537  })();
9538</script>
9538
9539
9540
9541
9542
9543                                              </li>
9544                                            
9545                                              <li>
9546                                                
9547<div class="card-wrapper product-card-wrapper underline-links-hover">
9548    <div
9549      class="
9550        card
9551        card--card
9552         card--media
9553         color-background-1 gradient
9554        
9555        
9556        
9557         card--badge-sided
9558        
9559        
9560      "
9561      style="--ratio-percent: 100%;"
9562    >
9563      <div
9564        class="card__inner  ratio"
9565        style="--ratio-percent: 100%;"
9566      ><div class="card__media">
9567            <div class="media media--transparent media--hover-effect">
9568              
9569              <img
9570                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068 1254w
9571                "
9572                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533"
9573                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9574                alt="White"
9575                class="motion-reduce"
9576                
9577                  loading="lazy"
9578                
9579                width="1254"
9580                height="1254"
9581                id='quick-add-8342973219007-image'
9582              >
9583              
9584<img
9585                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847 1080w
9586                  "
9587                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533"
9588                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9589                  alt=""
9590                  class="motion-reduce"
9591                  loading="lazy"
9592                  width="1080"
9593                  height="1080"
9594                ></div>
9595          </div><div class="card__content">
9596          <div class="card__information">
9597            <h3
9598              class="card__heading"
9599              
9600            >
9601              <a
9602                href="/products/vibeassage-complete-system"
9603                id="StandardCardNoMediaLink--8342973219007"
9604                class="full-unstyled-link"
9605                aria-labelledby="StandardCardNoMediaLink--8342973219007 NoMediaStandardBadge--8342973219007"
9606              >
9607                ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
9608              </a>
9609            </h3>
9610          </div>
9611          <div class="card__badge bottom left">
9612              
9613              </div>
9614        </div>
9615      </div>
9616      <div class="card__content">
9617        <div class="card__information">
9618          <h3
9619            class="card__heading h5"
9620            
9621              id="title--8342973219007"
9622            
9623          >
9624            <a
9625              href="/products/vibeassage-complete-system"
9626              id="CardLink--8342973219007"
9627              class="full-unstyled-link"
9628              aria-labelledby="CardLink--8342973219007 Badge--8342973219007"
9629            >
9630              ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
9631            </a>
9632          </h3>
9633          
9634          <div class="card-information"><span class="caption-large light"></span>
9635<div
9636  class="
9637    price "
9638>
9639  <div class="price__container"><div class="price__regular">
9640      <span class="visually-hidden visually-hidden--inline">Regular price</span>
9641      <span class="price-item price-item--regular">
9642        From $429.00
9643      </span>
9644    </div>
9645    <div class="price__sale ">
9646      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
9647      <span class="price-item price-item--sale price-item--last">
9648        From $429.00
9649      </span>
9650        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
9651        <span class="price__compare-price">
9652          <s class="price-item price-item--regular">
9653            
9654          </s>
9655        </span></div>
9656    <small class="unit-price caption hidden">
9657      <span class="visually-hidden">Unit price</span>
9658      <span class="price-item price-item--last">
9659        <span></span>
9660        <span aria-hidden="true">/</span>
9661        <span class="visually-hidden">&nbsp;per&nbsp;</span>
9662        <span>
9663        </span>
9664      </span>
9665    </small>
9666  </div></div>
9667
9668          </div>
9669        </div>
9670        
9671<div class="card__badge bottom left"></div>
9672      </div>
9673    </div>
9674  </div>
9674<script>
9675  (() => {
9676    if (window.cardProductQuickAddVariantFixLoaded) return;
9677    window.cardProductQuickAddVariantFixLoaded = true;
9678
9679    const ADD_TO_CART_TEXT = "Add to cart";
9680    const SOLD_OUT_TEXT = "Sold out";
9681
9682    function parseVariants(container) {
9683      if (!container) return [];
9684
9685      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
9686
9687      for (const script of scripts) {
9688        try {
9689          const data = JSON.parse(script.textContent.trim());
9690
9691          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
9692            return data;
9693          }
9694
9695          if (data && Array.isArray(data.variants)) {
9696            return data.variants;
9697          }
9698        } catch (error) {}
9699      }
9700
9701      return [];
9702    }
9703
9704    function getSelectedOptionValues(container) {
9705      const values = [];
9706
9707      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
9708        const checkedInput = group.querySelector('input[type="radio"]:checked');
9709        const select = group.querySelector('select');
9710
9711        if (checkedInput) {
9712          values.push(checkedInput.value);
9713        } else if (select) {
9714          values.push(select.value);
9715        }
9716      });
9717
9718      return values;
9719    }
9720
9721    function getCurrentVariant(container, form, variants) {
9722      const idInput = form && form.querySelector('[name="id"]');
9723      const selectedId = idInput && idInput.value;
9724
9725      if (selectedId) {
9726        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
9727        if (byId) return byId;
9728      }
9729
9730      const selectedOptions = getSelectedOptionValues(container);
9731
9732      if (selectedOptions.length) {
9733        return variants.find((variant) => {
9734          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
9735          return selectedOptions.every((value, index) => String(options[index]) === String(value));
9736        });
9737      }
9738
9739      return null;
9740    }
9741
9742    function setButtonState(form, variant) {
9743      if (!form) return;
9744
9745      const idInput = form.querySelector('[name="id"]');
9746      const addButton = form.querySelector('[name="add"]');
9747      const buttonLabel =
9748        addButton &&
9749        (addButton.querySelector('.main-atc__label__text') ||
9750          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
9751      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
9752      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
9753
9754      if (!addButton || !idInput || !variant) return;
9755
9756      idInput.value = variant.id;
9757      idInput.disabled = false;
9758
9759      if (spinner) spinner.classList.add('hidden');
9760
9761      if (variant.available) {
9762        addButton.disabled = false;
9763        addButton.removeAttribute('disabled');
9764        addButton.removeAttribute('aria-disabled');
9765        addButton.classList.remove('loading');
9766
9767        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
9768        if (soldOutMessage) soldOutMessage.classList.add('hidden');
9769      } else {
9770        addButton.disabled = true;
9771        addButton.setAttribute('disabled', 'disabled');
9772        addButton.setAttribute('aria-disabled', 'true');
9773
9774        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
9775        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
9776      }
9777    }
9778
9779    function syncContainer(container) {
9780      if (!container) return;
9781
9782      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
9783      if (!form) return;
9784
9785      const variants = parseVariants(container);
9786      if (!variants.length) return;
9787
9788      const variant = getCurrentVariant(container, form, variants);
9789      if (!variant) return;
9790
9791      setButtonState(form, variant);
9792    }
9793
9794    document.addEventListener('change', (event) => {
9795      const quickAddModal = event.target.closest('quick-add-modal');
9796      const cardVariantSelects = event.target.closest('card-variant-selects');
9797
9798      if (quickAddModal) {
9799        setTimeout(() => syncContainer(quickAddModal), 80);
9800        setTimeout(() => syncContainer(quickAddModal), 250);
9801      }
9802
9803      if (cardVariantSelects) {
9804        const card = cardVariantSelects.closest('.card-wrapper');
9805        if (card) {
9806          setTimeout(() => syncContainer(card), 80);
9807          setTimeout(() => syncContainer(card), 250);
9808        }
9809      }
9810    });
9811
9812    const observer = new MutationObserver((mutations) => {
9813      mutations.forEach((mutation) => {
9814        mutation.addedNodes.forEach((node) => {
9815          if (!(node instanceof HTMLElement)) return;
9816
9817          if (node.matches && node.matches('quick-add-modal')) {
9818            setTimeout(() => syncContainer(node), 150);
9819          }
9820
9821          node.querySelectorAll &&
9822            node.querySelectorAll('quick-add-modal').forEach((modal) => {
9823              setTimeout(() => syncContainer(modal), 150);
9824            });
9825        });
9826      });
9827    });
9828
9829    observer.observe(document.documentElement, {
9830      childList: true,
9831      subtree: true
9832    });
9833
9834    document.addEventListener('DOMContentLoaded', () => {
9835      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
9836    });
9837  })();
9838</script>
9838
9839
9840
9841
9842
9843                                              </li>
9844                                            
9845                                              <li>
9846                                                
9847<div class="card-wrapper product-card-wrapper underline-links-hover">
9848    <div
9849      class="
9850        card
9851        card--card
9852         card--media
9853         color-background-1 gradient
9854        
9855        
9856        
9857         card--badge-sided
9858        
9859        
9860      "
9861      style="--ratio-percent: 100%;"
9862    >
9863      <div
9864        class="card__inner  ratio"
9865        style="--ratio-percent: 100%;"
9866      ><div class="card__media">
9867            <div class="media media--transparent media--hover-effect">
9868              
9869              <img
9870                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068 1254w
9871                "
9872                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533"
9873                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9874                alt="White"
9875                class="motion-reduce"
9876                
9877                  loading="lazy"
9878                
9879                width="1254"
9880                height="1254"
9881                id='quick-add-8342972334271-image'
9882              >
9883              
9884<img
9885                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068 1254w
9886                  "
9887                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533"
9888                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
9889                  alt=""
9890                  class="motion-reduce"
9891                  loading="lazy"
9892                  width="1254"
9893                  height="1254"
9894                ></div>
9895          </div><div class="card__content">
9896          <div class="card__information">
9897            <h3
9898              class="card__heading"
9899              
9900            >
9901              <a
9902                href="/products/vibeassage-relief-bundle"
9903                id="StandardCardNoMediaLink--8342972334271"
9904                class="full-unstyled-link"
9905                aria-labelledby="StandardCardNoMediaLink--8342972334271 NoMediaStandardBadge--8342972334271"
9906              >
9907                Vibeassage® Relief Bundle
9908              </a>
9909            </h3>
9910          </div>
9911          <div class="card__badge bottom left">
9912              
9913              </div>
9914        </div>
9915      </div>
9916      <div class="card__content">
9917        <div class="card__information">
9918          <h3
9919            class="card__heading h5"
9920            
9921              id="title--8342972334271"
9922            
9923          >
9924            <a
9925              href="/products/vibeassage-relief-bundle"
9926              id="CardLink--8342972334271"
9927              class="full-unstyled-link"
9928              aria-labelledby="CardLink--8342972334271 Badge--8342972334271"
9929            >
9930              Vibeassage® Relief Bundle
9931            </a>
9932          </h3>
9933          
9934          <div class="card-information"><span class="caption-large light"></span>
9935<div
9936  class="
9937    price "
9938>
9939  <div class="price__container"><div class="price__regular">
9940      <span class="visually-hidden visually-hidden--inline">Regular price</span>
9941      <span class="price-item price-item--regular">
9942        From $389.00
9943      </span>
9944    </div>
9945    <div class="price__sale ">
9946      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
9947      <span class="price-item price-item--sale price-item--last">
9948        From $389.00
9949      </span>
9950        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
9951        <span class="price__compare-price">
9952          <s class="price-item price-item--regular">
9953            
9954          </s>
9955        </span></div>
9956    <small class="unit-price caption hidden">
9957      <span class="visually-hidden">Unit price</span>
9958      <span class="price-item price-item--last">
9959        <span></span>
9960        <span aria-hidden="true">/</span>
9961        <span class="visually-hidden">&nbsp;per&nbsp;</span>
9962        <span>
9963        </span>
9964      </span>
9965    </small>
9966  </div></div>
9967
9968          </div>
9969        </div>
9970        
9971<div class="card__badge bottom left"></div>
9972      </div>
9973    </div>
9974  </div>
9974<script>
9975  (() => {
9976    if (window.cardProductQuickAddVariantFixLoaded) return;
9977    window.cardProductQuickAddVariantFixLoaded = true;
9978
9979    const ADD_TO_CART_TEXT = "Add to cart";
9980    const SOLD_OUT_TEXT = "Sold out";
9981
9982    function parseVariants(container) {
9983      if (!container) return [];
9984
9985      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
9986
9987      for (const script of scripts) {
9988        try {
9989          const data = JSON.parse(script.textContent.trim());
9990
9991          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
9992            return data;
9993          }
9994
9995          if (data && Array.isArray(data.variants)) {
9996            return data.variants;
9997          }
9998        } catch (error) {}
9999      }
10000
10001      return [];
10002    }
10003
10004    function getSelectedOptionValues(container) {
10005      const values = [];
10006
10007      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
10008        const checkedInput = group.querySelector('input[type="radio"]:checked');
10009        const select = group.querySelector('select');
10010
10011        if (checkedInput) {
10012          values.push(checkedInput.value);
10013        } else if (select) {
10014          values.push(select.value);
10015        }
10016      });
10017
10018      return values;
10019    }
10020
10021    function getCurrentVariant(container, form, variants) {
10022      const idInput = form && form.querySelector('[name="id"]');
10023      const selectedId = idInput && idInput.value;
10024
10025      if (selectedId) {
10026        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
10027        if (byId) return byId;
10028      }
10029
10030      const selectedOptions = getSelectedOptionValues(container);
10031
10032      if (selectedOptions.length) {
10033        return variants.find((variant) => {
10034          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
10035          return selectedOptions.every((value, index) => String(options[index]) === String(value));
10036        });
10037      }
10038
10039      return null;
10040    }
10041
10042    function setButtonState(form, variant) {
10043      if (!form) return;
10044
10045      const idInput = form.querySelector('[name="id"]');
10046      const addButton = form.querySelector('[name="add"]');
10047      const buttonLabel =
10048        addButton &&
10049        (addButton.querySelector('.main-atc__label__text') ||
10050          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
10051      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
10052      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
10053
10054      if (!addButton || !idInput || !variant) return;
10055
10056      idInput.value = variant.id;
10057      idInput.disabled = false;
10058
10059      if (spinner) spinner.classList.add('hidden');
10060
10061      if (variant.available) {
10062        addButton.disabled = false;
10063        addButton.removeAttribute('disabled');
10064        addButton.removeAttribute('aria-disabled');
10065        addButton.classList.remove('loading');
10066
10067        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
10068        if (soldOutMessage) soldOutMessage.classList.add('hidden');
10069      } else {
10070        addButton.disabled = true;
10071        addButton.setAttribute('disabled', 'disabled');
10072        addButton.setAttribute('aria-disabled', 'true');
10073
10074        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
10075        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
10076      }
10077    }
10078
10079    function syncContainer(container) {
10080      if (!container) return;
10081
10082      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
10083      if (!form) return;
10084
10085      const variants = parseVariants(container);
10086      if (!variants.length) return;
10087
10088      const variant = getCurrentVariant(container, form, variants);
10089      if (!variant) return;
10090
10091      setButtonState(form, variant);
10092    }
10093
10094    document.addEventListener('change', (event) => {
10095      const quickAddModal = event.target.closest('quick-add-modal');
10096      const cardVariantSelects = event.target.closest('card-variant-selects');
10097
10098      if (quickAddModal) {
10099        setTimeout(() => syncContainer(quickAddModal), 80);
10100        setTimeout(() => syncContainer(quickAddModal), 250);
10101      }
10102
10103      if (cardVariantSelects) {
10104        const card = cardVariantSelects.closest('.card-wrapper');
10105        if (card) {
10106          setTimeout(() => syncContainer(card), 80);
10107          setTimeout(() => syncContainer(card), 250);
10108        }
10109      }
10110    });
10111
10112    const observer = new MutationObserver((mutations) => {
10113      mutations.forEach((mutation) => {
10114        mutation.addedNodes.forEach((node) => {
10115          if (!(node instanceof HTMLElement)) return;
10116
10117          if (node.matches && node.matches('quick-add-modal')) {
10118            setTimeout(() => syncContainer(node), 150);
10119          }
10120
10121          node.querySelectorAll &&
10122            node.querySelectorAll('quick-add-modal').forEach((modal) => {
10123              setTimeout(() => syncContainer(modal), 150);
10124            });
10125        });
10126      });
10127    });
10128
10129    observer.observe(document.documentElement, {
10130      childList: true,
10131      subtree: true
10132    });
10133
10134    document.addEventListener('DOMContentLoaded', () => {
10135      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
10136    });
10137  })();
10138</script>
10138
10139
10140
10141
10142
10143                                              </li>
10144                                            
10145                                              <li>
10146                                                
10147<div class="card-wrapper product-card-wrapper underline-links-hover">
10148    <div
10149      class="
10150        card
10151        card--card
10152         card--media
10153         color-background-1 gradient
10154        
10155        
10156        
10157         card--badge-sided
10158        
10159        
10160      "
10161      style="--ratio-percent: 100%;"
10162    >
10163      <div
10164        class="card__inner  ratio"
10165        style="--ratio-percent: 100%;"
10166      ><div class="card__media">
10167            <div class="media media--transparent media--hover-effect">
10168              
10169              <img
10170                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763 1254w
10171                "
10172                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-04-30_at_11.44.41.jpg?v=1777520763&width=533"
10173                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10174                alt="White"
10175                class="motion-reduce"
10176                
10177                  loading="lazy"
10178                
10179                width="1254"
10180                height="1254"
10181                id='quick-add-8342972760255-image'
10182              >
10183              
10184<img
10185                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068 1254w
10186                  "
10187                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_11_59_21_AM.png?v=1777520068&width=533"
10188                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10189                  alt=""
10190                  class="motion-reduce"
10191                  loading="lazy"
10192                  width="1254"
10193                  height="1254"
10194                ></div>
10195          </div><div class="card__content">
10196          <div class="card__information">
10197            <h3
10198              class="card__heading"
10199              
10200            >
10201              <a
10202                href="/products/vibeassage-performance-bundle"
10203                id="StandardCardNoMediaLink--8342972760255"
10204                class="full-unstyled-link"
10205                aria-labelledby="StandardCardNoMediaLink--8342972760255 NoMediaStandardBadge--8342972760255"
10206              >
10207                Vibeassage® Performance Bundle
10208              </a>
10209            </h3>
10210          </div>
10211          <div class="card__badge bottom left">
10212              
10213              </div>
10214        </div>
10215      </div>
10216      <div class="card__content">
10217        <div class="card__information">
10218          <h3
10219            class="card__heading h5"
10220            
10221              id="title--8342972760255"
10222            
10223          >
10224            <a
10225              href="/products/vibeassage-performance-bundle"
10226              id="CardLink--8342972760255"
10227              class="full-unstyled-link"
10228              aria-labelledby="CardLink--8342972760255 Badge--8342972760255"
10229            >
10230              Vibeassage® Performance Bundle
10231            </a>
10232          </h3>
10233          
10234          <div class="card-information"><span class="caption-large light"></span>
10235<div
10236  class="
10237    price "
10238>
10239  <div class="price__container"><div class="price__regular">
10240      <span class="visually-hidden visually-hidden--inline">Regular price</span>
10241      <span class="price-item price-item--regular">
10242        From $389.00
10243      </span>
10244    </div>
10245    <div class="price__sale ">
10246      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
10247      <span class="price-item price-item--sale price-item--last">
10248        From $389.00
10249      </span>
10250        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
10251        <span class="price__compare-price">
10252          <s class="price-item price-item--regular">
10253            
10254          </s>
10255        </span></div>
10256    <small class="unit-price caption hidden">
10257      <span class="visually-hidden">Unit price</span>
10258      <span class="price-item price-item--last">
10259        <span></span>
10260        <span aria-hidden="true">/</span>
10261        <span class="visually-hidden">&nbsp;per&nbsp;</span>
10262        <span>
10263        </span>
10264      </span>
10265    </small>
10266  </div></div>
10267
10268          </div>
10269        </div>
10270        
10271<div class="card__badge bottom left"></div>
10272      </div>
10273    </div>
10274  </div>
10274<script>
10275  (() => {
10276    if (window.cardProductQuickAddVariantFixLoaded) return;
10277    window.cardProductQuickAddVariantFixLoaded = true;
10278
10279    const ADD_TO_CART_TEXT = "Add to cart";
10280    const SOLD_OUT_TEXT = "Sold out";
10281
10282    function parseVariants(container) {
10283      if (!container) return [];
10284
10285      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
10286
10287      for (const script of scripts) {
10288        try {
10289          const data = JSON.parse(script.textContent.trim());
10290
10291          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
10292            return data;
10293          }
10294
10295          if (data && Array.isArray(data.variants)) {
10296            return data.variants;
10297          }
10298        } catch (error) {}
10299      }
10300
10301      return [];
10302    }
10303
10304    function getSelectedOptionValues(container) {
10305      const values = [];
10306
10307      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
10308        const checkedInput = group.querySelector('input[type="radio"]:checked');
10309        const select = group.querySelector('select');
10310
10311        if (checkedInput) {
10312          values.push(checkedInput.value);
10313        } else if (select) {
10314          values.push(select.value);
10315        }
10316      });
10317
10318      return values;
10319    }
10320
10321    function getCurrentVariant(container, form, variants) {
10322      const idInput = form && form.querySelector('[name="id"]');
10323      const selectedId = idInput && idInput.value;
10324
10325      if (selectedId) {
10326        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
10327        if (byId) return byId;
10328      }
10329
10330      const selectedOptions = getSelectedOptionValues(container);
10331
10332      if (selectedOptions.length) {
10333        return variants.find((variant) => {
10334          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
10335          return selectedOptions.every((value, index) => String(options[index]) === String(value));
10336        });
10337      }
10338
10339      return null;
10340    }
10341
10342    function setButtonState(form, variant) {
10343      if (!form) return;
10344
10345      const idInput = form.querySelector('[name="id"]');
10346      const addButton = form.querySelector('[name="add"]');
10347      const buttonLabel =
10348        addButton &&
10349        (addButton.querySelector('.main-atc__label__text') ||
10350          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
10351      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
10352      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
10353
10354      if (!addButton || !idInput || !variant) return;
10355
10356      idInput.value = variant.id;
10357      idInput.disabled = false;
10358
10359      if (spinner) spinner.classList.add('hidden');
10360
10361      if (variant.available) {
10362        addButton.disabled = false;
10363        addButton.removeAttribute('disabled');
10364        addButton.removeAttribute('aria-disabled');
10365        addButton.classList.remove('loading');
10366
10367        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
10368        if (soldOutMessage) soldOutMessage.classList.add('hidden');
10369      } else {
10370        addButton.disabled = true;
10371        addButton.setAttribute('disabled', 'disabled');
10372        addButton.setAttribute('aria-disabled', 'true');
10373
10374        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
10375        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
10376      }
10377    }
10378
10379    function syncContainer(container) {
10380      if (!container) return;
10381
10382      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
10383      if (!form) return;
10384
10385      const variants = parseVariants(container);
10386      if (!variants.length) return;
10387
10388      const variant = getCurrentVariant(container, form, variants);
10389      if (!variant) return;
10390
10391      setButtonState(form, variant);
10392    }
10393
10394    document.addEventListener('change', (event) => {
10395      const quickAddModal = event.target.closest('quick-add-modal');
10396      const cardVariantSelects = event.target.closest('card-variant-selects');
10397
10398      if (quickAddModal) {
10399        setTimeout(() => syncContainer(quickAddModal), 80);
10400        setTimeout(() => syncContainer(quickAddModal), 250);
10401      }
10402
10403      if (cardVariantSelects) {
10404        const card = cardVariantSelects.closest('.card-wrapper');
10405        if (card) {
10406          setTimeout(() => syncContainer(card), 80);
10407          setTimeout(() => syncContainer(card), 250);
10408        }
10409      }
10410    });
10411
10412    const observer = new MutationObserver((mutations) => {
10413      mutations.forEach((mutation) => {
10414        mutation.addedNodes.forEach((node) => {
10415          if (!(node instanceof HTMLElement)) return;
10416
10417          if (node.matches && node.matches('quick-add-modal')) {
10418            setTimeout(() => syncContainer(node), 150);
10419          }
10420
10421          node.querySelectorAll &&
10422            node.querySelectorAll('quick-add-modal').forEach((modal) => {
10423              setTimeout(() => syncContainer(modal), 150);
10424            });
10425        });
10426      });
10427    });
10428
10429    observer.observe(document.documentElement, {
10430      childList: true,
10431      subtree: true
10432    });
10433
10434    document.addEventListener('DOMContentLoaded', () => {
10435      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
10436    });
10437  })();
10438</script>
10438
10439
10440
10441
10442
10443                                              </li>
10444                                            
10445                                              <li>
10446                                                
10447<div class="card-wrapper product-card-wrapper underline-links-hover">
10448    <div
10449      class="
10450        card
10451        card--card
10452         card--media
10453         color-background-1 gradient
10454        
10455        
10456        
10457         card--badge-sided
10458        
10459        
10460      "
10461      style="--ratio-percent: 100%;"
10462    >
10463      <div
10464        class="card__inner  ratio"
10465        style="--ratio-percent: 100%;"
10466      ><div class="card__media">
10467            <div class="media media--transparent media--hover-effect">
10468              
10469              <img
10470                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068 1254w
10471                "
10472                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_02_53_35_PM.png?v=1777520068&width=533"
10473                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10474                alt="White"
10475                class="motion-reduce"
10476                
10477                  loading="lazy"
10478                
10479                width="1254"
10480                height="1254"
10481                id='quick-add-8342966534335-image'
10482              >
10483              
10484<img
10485                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140 w
10486                  "
10487                  src="//teamdoctors.com/cdn/shop/files/preview_images/d879e7a2fdf742819c922f2bb2e3d0c3.thumbnail.0000000000.jpg?v=1777424140&width=533"
10488                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10489                  alt=""
10490                  class="motion-reduce"
10491                  loading="lazy"
10492                  width=""
10493                  height=""
10494                ></div>
10495          </div><div class="card__content">
10496          <div class="card__information">
10497            <h3
10498              class="card__heading"
10499              
10500            >
10501              <a
10502                href="/products/vibeassage-core-system"
10503                id="StandardCardNoMediaLink--8342966534335"
10504                class="full-unstyled-link"
10505                aria-labelledby="StandardCardNoMediaLink--8342966534335 NoMediaStandardBadge--8342966534335"
10506              >
10507                Vibeassage® Core System
10508              </a>
10509            </h3>
10510          </div>
10511          <div class="card__badge bottom left">
10512              
10513              </div>
10514        </div>
10515      </div>
10516      <div class="card__content">
10517        <div class="card__information">
10518          <h3
10519            class="card__heading h5"
10520            
10521              id="title--8342966534335"
10522            
10523          >
10524            <a
10525              href="/products/vibeassage-core-system"
10526              id="CardLink--8342966534335"
10527              class="full-unstyled-link"
10528              aria-labelledby="CardLink--8342966534335 Badge--8342966534335"
10529            >
10530              Vibeassage® Core System
10531            </a>
10532          </h3>
10533          
10534          <div class="card-information"><span class="caption-large light"></span>
10535<div
10536  class="
10537    price "
10538>
10539  <div class="price__container"><div class="price__regular">
10540      <span class="visually-hidden visually-hidden--inline">Regular price</span>
10541      <span class="price-item price-item--regular">
10542        From $349.00
10543      </span>
10544    </div>
10545    <div class="price__sale ">
10546      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
10547      <span class="price-item price-item--sale price-item--last">
10548        From $349.00
10549      </span>
10550        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
10551        <span class="price__compare-price">
10552          <s class="price-item price-item--regular">
10553            
10554          </s>
10555        </span></div>
10556    <small class="unit-price caption hidden">
10557      <span class="visually-hidden">Unit price</span>
10558      <span class="price-item price-item--last">
10559        <span></span>
10560        <span aria-hidden="true">/</span>
10561        <span class="visually-hidden">&nbsp;per&nbsp;</span>
10562        <span>
10563        </span>
10564      </span>
10565    </small>
10566  </div></div>
10567
10568          </div>
10569        </div>
10570        
10571<div class="card__badge bottom left"></div>
10572      </div>
10573    </div>
10574  </div>
10574<script>
10575  (() => {
10576    if (window.cardProductQuickAddVariantFixLoaded) return;
10577    window.cardProductQuickAddVariantFixLoaded = true;
10578
10579    const ADD_TO_CART_TEXT = "Add to cart";
10580    const SOLD_OUT_TEXT = "Sold out";
10581
10582    function parseVariants(container) {
10583      if (!container) return [];
10584
10585      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
10586
10587      for (const script of scripts) {
10588        try {
10589          const data = JSON.parse(script.textContent.trim());
10590
10591          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
10592            return data;
10593          }
10594
10595          if (data && Array.isArray(data.variants)) {
10596            return data.variants;
10597          }
10598        } catch (error) {}
10599      }
10600
10601      return [];
10602    }
10603
10604    function getSelectedOptionValues(container) {
10605      const values = [];
10606
10607      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
10608        const checkedInput = group.querySelector('input[type="radio"]:checked');
10609        const select = group.querySelector('select');
10610
10611        if (checkedInput) {
10612          values.push(checkedInput.value);
10613        } else if (select) {
10614          values.push(select.value);
10615        }
10616      });
10617
10618      return values;
10619    }
10620
10621    function getCurrentVariant(container, form, variants) {
10622      const idInput = form && form.querySelector('[name="id"]');
10623      const selectedId = idInput && idInput.value;
10624
10625      if (selectedId) {
10626        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
10627        if (byId) return byId;
10628      }
10629
10630      const selectedOptions = getSelectedOptionValues(container);
10631
10632      if (selectedOptions.length) {
10633        return variants.find((variant) => {
10634          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
10635          return selectedOptions.every((value, index) => String(options[index]) === String(value));
10636        });
10637      }
10638
10639      return null;
10640    }
10641
10642    function setButtonState(form, variant) {
10643      if (!form) return;
10644
10645      const idInput = form.querySelector('[name="id"]');
10646      const addButton = form.querySelector('[name="add"]');
10647      const buttonLabel =
10648        addButton &&
10649        (addButton.querySelector('.main-atc__label__text') ||
10650          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
10651      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
10652      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
10653
10654      if (!addButton || !idInput || !variant) return;
10655
10656      idInput.value = variant.id;
10657      idInput.disabled = false;
10658
10659      if (spinner) spinner.classList.add('hidden');
10660
10661      if (variant.available) {
10662        addButton.disabled = false;
10663        addButton.removeAttribute('disabled');
10664        addButton.removeAttribute('aria-disabled');
10665        addButton.classList.remove('loading');
10666
10667        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
10668        if (soldOutMessage) soldOutMessage.classList.add('hidden');
10669      } else {
10670        addButton.disabled = true;
10671        addButton.setAttribute('disabled', 'disabled');
10672        addButton.setAttribute('aria-disabled', 'true');
10673
10674        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
10675        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
10676      }
10677    }
10678
10679    function syncContainer(container) {
10680      if (!container) return;
10681
10682      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
10683      if (!form) return;
10684
10685      const variants = parseVariants(container);
10686      if (!variants.length) return;
10687
10688      const variant = getCurrentVariant(container, form, variants);
10689      if (!variant) return;
10690
10691      setButtonState(form, variant);
10692    }
10693
10694    document.addEventListener('change', (event) => {
10695      const quickAddModal = event.target.closest('quick-add-modal');
10696      const cardVariantSelects = event.target.closest('card-variant-selects');
10697
10698      if (quickAddModal) {
10699        setTimeout(() => syncContainer(quickAddModal), 80);
10700        setTimeout(() => syncContainer(quickAddModal), 250);
10701      }
10702
10703      if (cardVariantSelects) {
10704        const card = cardVariantSelects.closest('.card-wrapper');
10705        if (card) {
10706          setTimeout(() => syncContainer(card), 80);
10707          setTimeout(() => syncContainer(card), 250);
10708        }
10709      }
10710    });
10711
10712    const observer = new MutationObserver((mutations) => {
10713      mutations.forEach((mutation) => {
10714        mutation.addedNodes.forEach((node) => {
10715          if (!(node instanceof HTMLElement)) return;
10716
10717          if (node.matches && node.matches('quick-add-modal')) {
10718            setTimeout(() => syncContainer(node), 150);
10719          }
10720
10721          node.querySelectorAll &&
10722            node.querySelectorAll('quick-add-modal').forEach((modal) => {
10723              setTimeout(() => syncContainer(modal), 150);
10724            });
10725        });
10726      });
10727    });
10728
10729    observer.observe(document.documentElement, {
10730      childList: true,
10731      subtree: true
10732    });
10733
10734    document.addEventListener('DOMContentLoaded', () => {
10735      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
10736    });
10737  })();
10738</script>
10738
10739
10740
10741
10742
10743                                              </li>
10744                                            
10745                                              <li>
10746                                                
10747<div class="card-wrapper product-card-wrapper underline-links-hover">
10748    <div
10749      class="
10750        card
10751        card--card
10752         card--media
10753         color-background-1 gradient
10754        
10755        
10756        
10757         card--badge-sided
10758        
10759        
10760      "
10761      style="--ratio-percent: 100%;"
10762    >
10763      <div
10764        class="card__inner  ratio"
10765        style="--ratio-percent: 100%;"
10766      ><div class="card__media">
10767            <div class="media media--transparent media--hover-effect">
10768              
10769              <img
10770                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443 1080w
10771                "
10772                src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533"
10773                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10774                alt="Biomimetic Applicator Pads (Full Set) - Team Doctors"
10775                class="motion-reduce"
10776                
10777                  loading="lazy"
10778                
10779                width="1080"
10780                height="1080"
10781                id='quick-add-8394187342015-image'
10782              >
10783              
10784<img
10785                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
10786                  "
10787                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
10788                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
10789                  alt=""
10790                  class="motion-reduce"
10791                  loading="lazy"
10792                  width="1080"
10793                  height="1080"
10794                ></div>
10795          </div><div class="card__content">
10796          <div class="card__information">
10797            <h3
10798              class="card__heading"
10799              
10800            >
10801              <a
10802                href="/products/biomemetic-applicator-pads-full-set"
10803                id="StandardCardNoMediaLink--8394187342015"
10804                class="full-unstyled-link"
10805                aria-labelledby="StandardCardNoMediaLink--8394187342015 NoMediaStandardBadge--8394187342015"
10806              >
10807                Biomimetic Applicator Pads
10808              </a>
10809            </h3>
10810          </div>
10811          <div class="card__badge bottom left">
10812              
10813              
10814                <span
10815                  id="NoMediaStandardBadge--8394187342015"
10816                  class="badge badge--bottom-left color-accent-2"
10817                >
10818                  <svg
10819  aria-hidden="true"
10820  focusable="false"
10821  class="icon icon-discount color-foreground-text"
10822  viewBox="0 0 12 12"
10823>
10824  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
10825</svg>
10826<span class='nowrap'>SAVE 21%</span>
10827                </span></div>
10828        </div>
10829      </div>
10830      <div class="card__content">
10831        <div class="card__information">
10832          <h3
10833            class="card__heading h5"
10834            
10835              id="title--8394187342015"
10836            
10837          >
10838            <a
10839              href="/products/biomemetic-applicator-pads-full-set"
10840              id="CardLink--8394187342015"
10841              class="full-unstyled-link"
10842              aria-labelledby="CardLink--8394187342015 Badge--8394187342015"
10843            >
10844              Biomimetic Applicator Pads
10845            </a>
10846          </h3>
10847          
10848            <div class="product-subtitle">
10849              3 Pads - Full Set
10850            </div>
10851          
10852          <div class="card-information"><span class="caption-large light"></span>
10853<div
10854  class="
10855    price  price--on-sale "
10856>
10857  <div class="price__container"><div class="price__regular">
10858      <span class="visually-hidden visually-hidden--inline">Regular price</span>
10859      <span class="price-item price-item--regular">
10860        $129.00
10861      </span>
10862    </div>
10863    <div class="price__sale ">
10864      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
10865      <span class="price-item price-item--sale price-item--last">
10866        $129.00
10867      </span>
10868        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
10869        <span class="price__compare-price">
10870          <s class="price-item price-item--regular">
10871            $164.85
10872          </s>
10873        </span></div>
10874    <small class="unit-price caption hidden">
10875      <span class="visually-hidden">Unit price</span>
10876      <span class="price-item price-item--last">
10877        <span></span>
10878        <span aria-hidden="true">/</span>
10879        <span class="visually-hidden">&nbsp;per&nbsp;</span>
10880        <span>
10881        </span>
10882      </span>
10883    </small>
10884  </div></div>
10885
10886          </div>
10887        </div>
10888        
10889<div class="card__badge bottom left"><span
10890              id="Badge--8394187342015"
10891              class="badge badge--bottom-left color-accent-2"
10892            >
10893              21%
10894            </span></div>
10895      </div>
10896    </div>
10897  </div>
10897<script>
10898  (() => {
10899    if (window.cardProductQuickAddVariantFixLoaded) return;
10900    window.cardProductQuickAddVariantFixLoaded = true;
10901
10902    const ADD_TO_CART_TEXT = "Add to cart";
10903    const SOLD_OUT_TEXT = "Sold out";
10904
10905    function parseVariants(container) {
10906      if (!container) return [];
10907
10908      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
10909
10910      for (const script of scripts) {
10911        try {
10912          const data = JSON.parse(script.textContent.trim());
10913
10914          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
10915            return data;
10916          }
10917
10918          if (data && Array.isArray(data.variants)) {
10919            return data.variants;
10920          }
10921        } catch (error) {}
10922      }
10923
10924      return [];
10925    }
10926
10927    function getSelectedOptionValues(container) {
10928      const values = [];
10929
10930      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
10931        const checkedInput = group.querySelector('input[type="radio"]:checked');
10932        const select = group.querySelector('select');
10933
10934        if (checkedInput) {
10935          values.push(checkedInput.value);
10936        } else if (select) {
10937          values.push(select.value);
10938        }
10939      });
10940
10941      return values;
10942    }
10943
10944    function getCurrentVariant(container, form, variants) {
10945      const idInput = form && form.querySelector('[name="id"]');
10946      const selectedId = idInput && idInput.value;
10947
10948      if (selectedId) {
10949        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
10950        if (byId) return byId;
10951      }
10952
10953      const selectedOptions = getSelectedOptionValues(container);
10954
10955      if (selectedOptions.length) {
10956        return variants.find((variant) => {
10957          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
10958          return selectedOptions.every((value, index) => String(options[index]) === String(value));
10959        });
10960      }
10961
10962      return null;
10963    }
10964
10965    function setButtonState(form, variant) {
10966      if (!form) return;
10967
10968      const idInput = form.querySelector('[name="id"]');
10969      const addButton = form.querySelector('[name="add"]');
10970      const buttonLabel =
10971        addButton &&
10972        (addButton.querySelector('.main-atc__label__text') ||
10973          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
10974      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
10975      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
10976
10977      if (!addButton || !idInput || !variant) return;
10978
10979      idInput.value = variant.id;
10980      idInput.disabled = false;
10981
10982      if (spinner) spinner.classList.add('hidden');
10983
10984      if (variant.available) {
10985        addButton.disabled = false;
10986        addButton.removeAttribute('disabled');
10987        addButton.removeAttribute('aria-disabled');
10988        addButton.classList.remove('loading');
10989
10990        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
10991        if (soldOutMessage) soldOutMessage.classList.add('hidden');
10992      } else {
10993        addButton.disabled = true;
10994        addButton.setAttribute('disabled', 'disabled');
10995        addButton.setAttribute('aria-disabled', 'true');
10996
10997        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
10998        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
10999      }
11000    }
11001
11002    function syncContainer(container) {
11003      if (!container) return;
11004
11005      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
11006      if (!form) return;
11007
11008      const variants = parseVariants(container);
11009      if (!variants.length) return;
11010
11011      const variant = getCurrentVariant(container, form, variants);
11012      if (!variant) return;
11013
11014      setButtonState(form, variant);
11015    }
11016
11017    document.addEventListener('change', (event) => {
11018      const quickAddModal = event.target.closest('quick-add-modal');
11019      const cardVariantSelects = event.target.closest('card-variant-selects');
11020
11021      if (quickAddModal) {
11022        setTimeout(() => syncContainer(quickAddModal), 80);
11023        setTimeout(() => syncContainer(quickAddModal), 250);
11024      }
11025
11026      if (cardVariantSelects) {
11027        const card = cardVariantSelects.closest('.card-wrapper');
11028        if (card) {
11029          setTimeout(() => syncContainer(card), 80);
11030          setTimeout(() => syncContainer(card), 250);
11031        }
11032      }
11033    });
11034
11035    const observer = new MutationObserver((mutations) => {
11036      mutations.forEach((mutation) => {
11037        mutation.addedNodes.forEach((node) => {
11038          if (!(node instanceof HTMLElement)) return;
11039
11040          if (node.matches && node.matches('quick-add-modal')) {
11041            setTimeout(() => syncContainer(node), 150);
11042          }
11043
11044          node.querySelectorAll &&
11045            node.querySelectorAll('quick-add-modal').forEach((modal) => {
11046              setTimeout(() => syncContainer(modal), 150);
11047            });
11048        });
11049      });
11050    });
11051
11052    observer.observe(document.documentElement, {
11053      childList: true,
11054      subtree: true
11055    });
11056
11057    document.addEventListener('DOMContentLoaded', () => {
11058      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
11059    });
11060  })();
11061</script>
11061
11062
11063
11064
11065
11066                                              </li>
11067                                            
11068                                              <li>
11069                                                
11070<div class="card-wrapper product-card-wrapper underline-links-hover">
11071    <div
11072      class="
11073        card
11074        card--card
11075         card--media
11076         color-background-1 gradient
11077        
11078        
11079        
11080         card--badge-sided
11081        
11082        
11083      "
11084      style="--ratio-percent: 100%;"
11085    >
11086      <div
11087        class="card__inner  ratio"
11088        style="--ratio-percent: 100%;"
11089      ><div class="card__media">
11090            <div class="media media--transparent media--hover-effect">
11091              
11092              <img
11093                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844 1254w
11094                "
11095                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533"
11096                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11097                alt="Balance bundle - Team Doctors"
11098                class="motion-reduce"
11099                
11100                  loading="lazy"
11101                
11102                width="1254"
11103                height="1254"
11104                id='quick-add-8402094031039-image'
11105              >
11106              
11107<img
11108                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
11109                  "
11110                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
11111                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11112                  alt=""
11113                  class="motion-reduce"
11114                  loading="lazy"
11115                  width="1080"
11116                  height="1080"
11117                ></div>
11118          </div><div class="card__content">
11119          <div class="card__information">
11120            <h3
11121              class="card__heading"
11122              
11123            >
11124              <a
11125                href="/products/vibeassage%C2%AE-relief-bundle"
11126                id="StandardCardNoMediaLink--8402094031039"
11127                class="full-unstyled-link"
11128                aria-labelledby="StandardCardNoMediaLink--8402094031039 NoMediaStandardBadge--8402094031039"
11129              >
11130                Balance bundle
11131              </a>
11132            </h3>
11133          </div>
11134          <div class="card__badge bottom left">
11135              
11136              
11137                <span
11138                  id="NoMediaStandardBadge--8402094031039"
11139                  class="badge badge--bottom-left color-accent-2"
11140                >
11141                  <svg
11142  aria-hidden="true"
11143  focusable="false"
11144  class="icon icon-discount color-foreground-text"
11145  viewBox="0 0 12 12"
11146>
11147  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
11148</svg>
11149<span class='nowrap'>SAVE 9%</span>
11150                </span></div>
11151        </div>
11152      </div>
11153      <div class="card__content">
11154        <div class="card__information">
11155          <h3
11156            class="card__heading h5"
11157            
11158              id="title--8402094031039"
11159            
11160          >
11161            <a
11162              href="/products/vibeassage%C2%AE-relief-bundle"
11163              id="CardLink--8402094031039"
11164              class="full-unstyled-link"
11165              aria-labelledby="CardLink--8402094031039 Badge--8402094031039"
11166            >
11167              Balance bundle
11168            </a>
11169          </h3>
11170          
11171            <div class="product-subtitle">
11172              Comfort Relief Pad + Peak Performance Pad
11173            </div>
11174          
11175          <div class="card-information"><span class="caption-large light"></span>
11176<div
11177  class="
11178    price  price--on-sale "
11179>
11180  <div class="price__container"><div class="price__regular">
11181      <span class="visually-hidden visually-hidden--inline">Regular price</span>
11182      <span class="price-item price-item--regular">
11183        $99.00
11184      </span>
11185    </div>
11186    <div class="price__sale ">
11187      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
11188      <span class="price-item price-item--sale price-item--last">
11189        $99.00
11190      </span>
11191        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
11192        <span class="price__compare-price">
11193          <s class="price-item price-item--regular">
11194            $109.95
11195          </s>
11196        </span></div>
11197    <small class="unit-price caption hidden">
11198      <span class="visually-hidden">Unit price</span>
11199      <span class="price-item price-item--last">
11200        <span></span>
11201        <span aria-hidden="true">/</span>
11202        <span class="visually-hidden">&nbsp;per&nbsp;</span>
11203        <span>
11204        </span>
11205      </span>
11206    </small>
11207  </div></div>
11208
11209          </div>
11210        </div>
11211        
11212<div class="card__badge bottom left"><span
11213              id="Badge--8402094031039"
11214              class="badge badge--bottom-left color-accent-2"
11215            >
11216              9%
11217            </span></div>
11218      </div>
11219    </div>
11220  </div>
11220<script>
11221  (() => {
11222    if (window.cardProductQuickAddVariantFixLoaded) return;
11223    window.cardProductQuickAddVariantFixLoaded = true;
11224
11225    const ADD_TO_CART_TEXT = "Add to cart";
11226    const SOLD_OUT_TEXT = "Sold out";
11227
11228    function parseVariants(container) {
11229      if (!container) return [];
11230
11231      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
11232
11233      for (const script of scripts) {
11234        try {
11235          const data = JSON.parse(script.textContent.trim());
11236
11237          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
11238            return data;
11239          }
11240
11241          if (data && Array.isArray(data.variants)) {
11242            return data.variants;
11243          }
11244        } catch (error) {}
11245      }
11246
11247      return [];
11248    }
11249
11250    function getSelectedOptionValues(container) {
11251      const values = [];
11252
11253      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
11254        const checkedInput = group.querySelector('input[type="radio"]:checked');
11255        const select = group.querySelector('select');
11256
11257        if (checkedInput) {
11258          values.push(checkedInput.value);
11259        } else if (select) {
11260          values.push(select.value);
11261        }
11262      });
11263
11264      return values;
11265    }
11266
11267    function getCurrentVariant(container, form, variants) {
11268      const idInput = form && form.querySelector('[name="id"]');
11269      const selectedId = idInput && idInput.value;
11270
11271      if (selectedId) {
11272        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
11273        if (byId) return byId;
11274      }
11275
11276      const selectedOptions = getSelectedOptionValues(container);
11277
11278      if (selectedOptions.length) {
11279        return variants.find((variant) => {
11280          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
11281          return selectedOptions.every((value, index) => String(options[index]) === String(value));
11282        });
11283      }
11284
11285      return null;
11286    }
11287
11288    function setButtonState(form, variant) {
11289      if (!form) return;
11290
11291      const idInput = form.querySelector('[name="id"]');
11292      const addButton = form.querySelector('[name="add"]');
11293      const buttonLabel =
11294        addButton &&
11295        (addButton.querySelector('.main-atc__label__text') ||
11296          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
11297      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
11298      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
11299
11300      if (!addButton || !idInput || !variant) return;
11301
11302      idInput.value = variant.id;
11303      idInput.disabled = false;
11304
11305      if (spinner) spinner.classList.add('hidden');
11306
11307      if (variant.available) {
11308        addButton.disabled = false;
11309        addButton.removeAttribute('disabled');
11310        addButton.removeAttribute('aria-disabled');
11311        addButton.classList.remove('loading');
11312
11313        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
11314        if (soldOutMessage) soldOutMessage.classList.add('hidden');
11315      } else {
11316        addButton.disabled = true;
11317        addButton.setAttribute('disabled', 'disabled');
11318        addButton.setAttribute('aria-disabled', 'true');
11319
11320        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
11321        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
11322      }
11323    }
11324
11325    function syncContainer(container) {
11326      if (!container) return;
11327
11328      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
11329      if (!form) return;
11330
11331      const variants = parseVariants(container);
11332      if (!variants.length) return;
11333
11334      const variant = getCurrentVariant(container, form, variants);
11335      if (!variant) return;
11336
11337      setButtonState(form, variant);
11338    }
11339
11340    document.addEventListener('change', (event) => {
11341      const quickAddModal = event.target.closest('quick-add-modal');
11342      const cardVariantSelects = event.target.closest('card-variant-selects');
11343
11344      if (quickAddModal) {
11345        setTimeout(() => syncContainer(quickAddModal), 80);
11346        setTimeout(() => syncContainer(quickAddModal), 250);
11347      }
11348
11349      if (cardVariantSelects) {
11350        const card = cardVariantSelects.closest('.card-wrapper');
11351        if (card) {
11352          setTimeout(() => syncContainer(card), 80);
11353          setTimeout(() => syncContainer(card), 250);
11354        }
11355      }
11356    });
11357
11358    const observer = new MutationObserver((mutations) => {
11359      mutations.forEach((mutation) => {
11360        mutation.addedNodes.forEach((node) => {
11361          if (!(node instanceof HTMLElement)) return;
11362
11363          if (node.matches && node.matches('quick-add-modal')) {
11364            setTimeout(() => syncContainer(node), 150);
11365          }
11366
11367          node.querySelectorAll &&
11368            node.querySelectorAll('quick-add-modal').forEach((modal) => {
11369              setTimeout(() => syncContainer(modal), 150);
11370            });
11371        });
11372      });
11373    });
11374
11375    observer.observe(document.documentElement, {
11376      childList: true,
11377      subtree: true
11378    });
11379
11380    document.addEventListener('DOMContentLoaded', () => {
11381      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
11382    });
11383  })();
11384</script>
11384
11385
11386
11387
11388
11389                                              </li>
11390                                            
11391                                              <li>
11392                                                
11393<div class="card-wrapper product-card-wrapper underline-links-hover">
11394    <div
11395      class="
11396        card
11397        card--card
11398         card--media
11399         color-background-1 gradient
11400        
11401        
11402        
11403         card--badge-sided
11404        
11405        
11406      "
11407      style="--ratio-percent: 100%;"
11408    >
11409      <div
11410        class="card__inner  ratio"
11411        style="--ratio-percent: 100%;"
11412      ><div class="card__media">
11413            <div class="media media--transparent media--hover-effect">
11414              
11415              <img
11416                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844 1254w
11417                "
11418                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533"
11419                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11420                alt="Relief Bundle - Team Doctors"
11421                class="motion-reduce"
11422                
11423                  loading="lazy"
11424                
11425                width="1254"
11426                height="1254"
11427                id='quick-add-8433935974591-image'
11428              >
11429              
11430<img
11431                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
11432                  "
11433                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
11434                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11435                  alt=""
11436                  class="motion-reduce"
11437                  loading="lazy"
11438                  width="1080"
11439                  height="1080"
11440                ></div>
11441          </div><div class="card__content">
11442          <div class="card__information">
11443            <h3
11444              class="card__heading"
11445              
11446            >
11447              <a
11448                href="/products/relief-bundle"
11449                id="StandardCardNoMediaLink--8433935974591"
11450                class="full-unstyled-link"
11451                aria-labelledby="StandardCardNoMediaLink--8433935974591 NoMediaStandardBadge--8433935974591"
11452              >
11453                Relief Bundle
11454              </a>
11455            </h3>
11456          </div>
11457          <div class="card__badge bottom left">
11458              
11459              
11460                <span
11461                  id="NoMediaStandardBadge--8433935974591"
11462                  class="badge badge--bottom-left color-accent-2"
11463                >
11464                  <svg
11465  aria-hidden="true"
11466  focusable="false"
11467  class="icon icon-discount color-foreground-text"
11468  viewBox="0 0 12 12"
11469>
11470  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
11471</svg>
11472<span class='nowrap'>SAVE 9%</span>
11473                </span></div>
11474        </div>
11475      </div>
11476      <div class="card__content">
11477        <div class="card__information">
11478          <h3
11479            class="card__heading h5"
11480            
11481              id="title--8433935974591"
11482            
11483          >
11484            <a
11485              href="/products/relief-bundle"
11486              id="CardLink--8433935974591"
11487              class="full-unstyled-link"
11488              aria-labelledby="CardLink--8433935974591 Badge--8433935974591"
11489            >
11490              Relief Bundle
11491            </a>
11492          </h3>
11493          
11494            <div class="product-subtitle">
11495              Comfort Relief Pad + Core Recovery Pad
11496            </div>
11497          
11498          <div class="card-information"><span class="caption-large light"></span>
11499<div
11500  class="
11501    price  price--on-sale "
11502>
11503  <div class="price__container"><div class="price__regular">
11504      <span class="visually-hidden visually-hidden--inline">Regular price</span>
11505      <span class="price-item price-item--regular">
11506        $99.00
11507      </span>
11508    </div>
11509    <div class="price__sale ">
11510      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
11511      <span class="price-item price-item--sale price-item--last">
11512        $99.00
11513      </span>
11514        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
11515        <span class="price__compare-price">
11516          <s class="price-item price-item--regular">
11517            $109.90
11518          </s>
11519        </span></div>
11520    <small class="unit-price caption hidden">
11521      <span class="visually-hidden">Unit price</span>
11522      <span class="price-item price-item--last">
11523        <span></span>
11524        <span aria-hidden="true">/</span>
11525        <span class="visually-hidden">&nbsp;per&nbsp;</span>
11526        <span>
11527        </span>
11528      </span>
11529    </small>
11530  </div></div>
11531
11532          </div>
11533        </div>
11534        
11535<div class="card__badge bottom left"><span
11536              id="Badge--8433935974591"
11537              class="badge badge--bottom-left color-accent-2"
11538            >
11539              9%
11540            </span></div>
11541      </div>
11542    </div>
11543  </div>
11543<script>
11544  (() => {
11545    if (window.cardProductQuickAddVariantFixLoaded) return;
11546    window.cardProductQuickAddVariantFixLoaded = true;
11547
11548    const ADD_TO_CART_TEXT = "Add to cart";
11549    const SOLD_OUT_TEXT = "Sold out";
11550
11551    function parseVariants(container) {
11552      if (!container) return [];
11553
11554      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
11555
11556      for (const script of scripts) {
11557        try {
11558          const data = JSON.parse(script.textContent.trim());
11559
11560          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
11561            return data;
11562          }
11563
11564          if (data && Array.isArray(data.variants)) {
11565            return data.variants;
11566          }
11567        } catch (error) {}
11568      }
11569
11570      return [];
11571    }
11572
11573    function getSelectedOptionValues(container) {
11574      const values = [];
11575
11576      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
11577        const checkedInput = group.querySelector('input[type="radio"]:checked');
11578        const select = group.querySelector('select');
11579
11580        if (checkedInput) {
11581          values.push(checkedInput.value);
11582        } else if (select) {
11583          values.push(select.value);
11584        }
11585      });
11586
11587      return values;
11588    }
11589
11590    function getCurrentVariant(container, form, variants) {
11591      const idInput = form && form.querySelector('[name="id"]');
11592      const selectedId = idInput && idInput.value;
11593
11594      if (selectedId) {
11595        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
11596        if (byId) return byId;
11597      }
11598
11599      const selectedOptions = getSelectedOptionValues(container);
11600
11601      if (selectedOptions.length) {
11602        return variants.find((variant) => {
11603          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
11604          return selectedOptions.every((value, index) => String(options[index]) === String(value));
11605        });
11606      }
11607
11608      return null;
11609    }
11610
11611    function setButtonState(form, variant) {
11612      if (!form) return;
11613
11614      const idInput = form.querySelector('[name="id"]');
11615      const addButton = form.querySelector('[name="add"]');
11616      const buttonLabel =
11617        addButton &&
11618        (addButton.querySelector('.main-atc__label__text') ||
11619          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
11620      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
11621      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
11622
11623      if (!addButton || !idInput || !variant) return;
11624
11625      idInput.value = variant.id;
11626      idInput.disabled = false;
11627
11628      if (spinner) spinner.classList.add('hidden');
11629
11630      if (variant.available) {
11631        addButton.disabled = false;
11632        addButton.removeAttribute('disabled');
11633        addButton.removeAttribute('aria-disabled');
11634        addButton.classList.remove('loading');
11635
11636        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
11637        if (soldOutMessage) soldOutMessage.classList.add('hidden');
11638      } else {
11639        addButton.disabled = true;
11640        addButton.setAttribute('disabled', 'disabled');
11641        addButton.setAttribute('aria-disabled', 'true');
11642
11643        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
11644        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
11645      }
11646    }
11647
11648    function syncContainer(container) {
11649      if (!container) return;
11650
11651      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
11652      if (!form) return;
11653
11654      const variants = parseVariants(container);
11655      if (!variants.length) return;
11656
11657      const variant = getCurrentVariant(container, form, variants);
11658      if (!variant) return;
11659
11660      setButtonState(form, variant);
11661    }
11662
11663    document.addEventListener('change', (event) => {
11664      const quickAddModal = event.target.closest('quick-add-modal');
11665      const cardVariantSelects = event.target.closest('card-variant-selects');
11666
11667      if (quickAddModal) {
11668        setTimeout(() => syncContainer(quickAddModal), 80);
11669        setTimeout(() => syncContainer(quickAddModal), 250);
11670      }
11671
11672      if (cardVariantSelects) {
11673        const card = cardVariantSelects.closest('.card-wrapper');
11674        if (card) {
11675          setTimeout(() => syncContainer(card), 80);
11676          setTimeout(() => syncContainer(card), 250);
11677        }
11678      }
11679    });
11680
11681    const observer = new MutationObserver((mutations) => {
11682      mutations.forEach((mutation) => {
11683        mutation.addedNodes.forEach((node) => {
11684          if (!(node instanceof HTMLElement)) return;
11685
11686          if (node.matches && node.matches('quick-add-modal')) {
11687            setTimeout(() => syncContainer(node), 150);
11688          }
11689
11690          node.querySelectorAll &&
11691            node.querySelectorAll('quick-add-modal').forEach((modal) => {
11692              setTimeout(() => syncContainer(modal), 150);
11693            });
11694        });
11695      });
11696    });
11697
11698    observer.observe(document.documentElement, {
11699      childList: true,
11700      subtree: true
11701    });
11702
11703    document.addEventListener('DOMContentLoaded', () => {
11704      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
11705    });
11706  })();
11707</script>
11707
11708
11709
11710
11711
11712                                              </li>
11713                                            
11714                                              <li>
11715                                                
11716<div class="card-wrapper product-card-wrapper underline-links-hover">
11717    <div
11718      class="
11719        card
11720        card--card
11721         card--media
11722         color-background-1 gradient
11723        
11724        
11725        
11726         card--badge-sided
11727        
11728        
11729      "
11730      style="--ratio-percent: 100%;"
11731    >
11732      <div
11733        class="card__inner  ratio"
11734        style="--ratio-percent: 100%;"
11735      ><div class="card__media">
11736            <div class="media media--transparent media--hover-effect">
11737              
11738              <img
11739                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844 1254w
11740                "
11741                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533"
11742                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11743                alt="Performance Bundle - Team Doctors"
11744                class="motion-reduce"
11745                
11746                  loading="lazy"
11747                
11748                width="1254"
11749                height="1254"
11750                id='quick-add-8433936007359-image'
11751              >
11752              
11753<img
11754                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322 1080w
11755                  "
11756                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533"
11757                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
11758                  alt=""
11759                  class="motion-reduce"
11760                  loading="lazy"
11761                  width="1080"
11762                  height="1080"
11763                ></div>
11764          </div><div class="card__content">
11765          <div class="card__information">
11766            <h3
11767              class="card__heading"
11768              
11769            >
11770              <a
11771                href="/products/performance-bundle"
11772                id="StandardCardNoMediaLink--8433936007359"
11773                class="full-unstyled-link"
11774                aria-labelledby="StandardCardNoMediaLink--8433936007359 NoMediaStandardBadge--8433936007359"
11775              >
11776                Performance Bundle
11777              </a>
11778            </h3>
11779          </div>
11780          <div class="card__badge bottom left">
11781              
11782              
11783                <span
11784                  id="NoMediaStandardBadge--8433936007359"
11785                  class="badge badge--bottom-left color-accent-2"
11786                >
11787                  <svg
11788  aria-hidden="true"
11789  focusable="false"
11790  class="icon icon-discount color-foreground-text"
11791  viewBox="0 0 12 12"
11792>
11793  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
11794</svg>
11795<span class='nowrap'>SAVE 9%</span>
11796                </span></div>
11797        </div>
11798      </div>
11799      <div class="card__content">
11800        <div class="card__information">
11801          <h3
11802            class="card__heading h5"
11803            
11804              id="title--8433936007359"
11805            
11806          >
11807            <a
11808              href="/products/performance-bundle"
11809              id="CardLink--8433936007359"
11810              class="full-unstyled-link"
11811              aria-labelledby="CardLink--8433936007359 Badge--8433936007359"
11812            >
11813              Performance Bundle
11814            </a>
11815          </h3>
11816          
11817            <div class="product-subtitle">
11818              Core Cecovery Pad + Peak Performance Pad
11819            </div>
11820          
11821          <div class="card-information"><span class="caption-large light"></span>
11822<div
11823  class="
11824    price  price--on-sale "
11825>
11826  <div class="price__container"><div class="price__regular">
11827      <span class="visually-hidden visually-hidden--inline">Regular price</span>
11828      <span class="price-item price-item--regular">
11829        $99.00
11830      </span>
11831    </div>
11832    <div class="price__sale ">
11833      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
11834      <span class="price-item price-item--sale price-item--last">
11835        $99.00
11836      </span>
11837        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
11838        <span class="price__compare-price">
11839          <s class="price-item price-item--regular">
11840            $109.90
11841          </s>
11842        </span></div>
11843    <small class="unit-price caption hidden">
11844      <span class="visually-hidden">Unit price</span>
11845      <span class="price-item price-item--last">
11846        <span></span>
11847        <span aria-hidden="true">/</span>
11848        <span class="visually-hidden">&nbsp;per&nbsp;</span>
11849        <span>
11850        </span>
11851      </span>
11852    </small>
11853  </div></div>
11854
11855          </div>
11856        </div>
11857        
11858<div class="card__badge bottom left"><span
11859              id="Badge--8433936007359"
11860              class="badge badge--bottom-left color-accent-2"
11861            >
11862              9%
11863            </span></div>
11864      </div>
11865    </div>
11866  </div>
11866<script>
11867  (() => {
11868    if (window.cardProductQuickAddVariantFixLoaded) return;
11869    window.cardProductQuickAddVariantFixLoaded = true;
11870
11871    const ADD_TO_CART_TEXT = "Add to cart";
11872    const SOLD_OUT_TEXT = "Sold out";
11873
11874    function parseVariants(container) {
11875      if (!container) return [];
11876
11877      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
11878
11879      for (const script of scripts) {
11880        try {
11881          const data = JSON.parse(script.textContent.trim());
11882
11883          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
11884            return data;
11885          }
11886
11887          if (data && Array.isArray(data.variants)) {
11888            return data.variants;
11889          }
11890        } catch (error) {}
11891      }
11892
11893      return [];
11894    }
11895
11896    function getSelectedOptionValues(container) {
11897      const values = [];
11898
11899      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
11900        const checkedInput = group.querySelector('input[type="radio"]:checked');
11901        const select = group.querySelector('select');
11902
11903        if (checkedInput) {
11904          values.push(checkedInput.value);
11905        } else if (select) {
11906          values.push(select.value);
11907        }
11908      });
11909
11910      return values;
11911    }
11912
11913    function getCurrentVariant(container, form, variants) {
11914      const idInput = form && form.querySelector('[name="id"]');
11915      const selectedId = idInput && idInput.value;
11916
11917      if (selectedId) {
11918        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
11919        if (byId) return byId;
11920      }
11921
11922      const selectedOptions = getSelectedOptionValues(container);
11923
11924      if (selectedOptions.length) {
11925        return variants.find((variant) => {
11926          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
11927          return selectedOptions.every((value, index) => String(options[index]) === String(value));
11928        });
11929      }
11930
11931      return null;
11932    }
11933
11934    function setButtonState(form, variant) {
11935      if (!form) return;
11936
11937      const idInput = form.querySelector('[name="id"]');
11938      const addButton = form.querySelector('[name="add"]');
11939      const buttonLabel =
11940        addButton &&
11941        (addButton.querySelector('.main-atc__label__text') ||
11942          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
11943      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
11944      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
11945
11946      if (!addButton || !idInput || !variant) return;
11947
11948      idInput.value = variant.id;
11949      idInput.disabled = false;
11950
11951      if (spinner) spinner.classList.add('hidden');
11952
11953      if (variant.available) {
11954        addButton.disabled = false;
11955        addButton.removeAttribute('disabled');
11956        addButton.removeAttribute('aria-disabled');
11957        addButton.classList.remove('loading');
11958
11959        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
11960        if (soldOutMessage) soldOutMessage.classList.add('hidden');
11961      } else {
11962        addButton.disabled = true;
11963        addButton.setAttribute('disabled', 'disabled');
11964        addButton.setAttribute('aria-disabled', 'true');
11965
11966        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
11967        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
11968      }
11969    }
11970
11971    function syncContainer(container) {
11972      if (!container) return;
11973
11974      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
11975      if (!form) return;
11976
11977      const variants = parseVariants(container);
11978      if (!variants.length) return;
11979
11980      const variant = getCurrentVariant(container, form, variants);
11981      if (!variant) return;
11982
11983      setButtonState(form, variant);
11984    }
11985
11986    document.addEventListener('change', (event) => {
11987      const quickAddModal = event.target.closest('quick-add-modal');
11988      const cardVariantSelects = event.target.closest('card-variant-selects');
11989
11990      if (quickAddModal) {
11991        setTimeout(() => syncContainer(quickAddModal), 80);
11992        setTimeout(() => syncContainer(quickAddModal), 250);
11993      }
11994
11995      if (cardVariantSelects) {
11996        const card = cardVariantSelects.closest('.card-wrapper');
11997        if (card) {
11998          setTimeout(() => syncContainer(card), 80);
11999          setTimeout(() => syncContainer(card), 250);
12000        }
12001      }
12002    });
12003
12004    const observer = new MutationObserver((mutations) => {
12005      mutations.forEach((mutation) => {
12006        mutation.addedNodes.forEach((node) => {
12007          if (!(node instanceof HTMLElement)) return;
12008
12009          if (node.matches && node.matches('quick-add-modal')) {
12010            setTimeout(() => syncContainer(node), 150);
12011          }
12012
12013          node.querySelectorAll &&
12014            node.querySelectorAll('quick-add-modal').forEach((modal) => {
12015              setTimeout(() => syncContainer(modal), 150);
12016            });
12017        });
12018      });
12019    });
12020
12021    observer.observe(document.documentElement, {
12022      childList: true,
12023      subtree: true
12024    });
12025
12026    document.addEventListener('DOMContentLoaded', () => {
12027      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
12028    });
12029  })();
12030</script>
12030
12031
12032
12033
12034
12035                                              </li>
12036                                            
12037                                          
12038</ul>
12039                                      
12040                                    </div>
12041                                  </details></li><li><details id="Details-menu-drawer-submenu-4">
12042                                    <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
12043                                      
12044                                      Pads
12045                                      <svg
12046  viewBox="0 0 14 10"
12047  fill="none"
12048  aria-hidden="true"
12049  focusable="false"
12050  class="icon icon-arrow"
12051  xmlns="http://www.w3.org/2000/svg"
12052>
12053  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
12054</svg>
12055
12056                                      <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
12057  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
12058</svg>
12059
12060                                    </summary>
12061                                    <div id="childlink-pads" class="menu-drawer__submenu has-submenu gradient motion-reduce">
12062                                      <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
12063                                        <svg
12064  viewBox="0 0 14 10"
12065  fill="none"
12066  aria-hidden="true"
12067  focusable="false"
12068  class="icon icon-arrow"
12069  xmlns="http://www.w3.org/2000/svg"
12070>
12071  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
12072</svg>
12073
12074                                        Pads
12075                                      </button>
12076                                      
12077                                        <ul class="products-mega-menu__cards products-mega-menu__cards--mobile">
12078                                          
12079                                            
12080                                            
12081                                            
12082                                              <li>
12083                                                
12084<div class="card-wrapper product-card-wrapper underline-links-hover">
12085    <div
12086      class="
12087        card
12088        card--card
12089         card--media
12090         color-background-1 gradient
12091        
12092        
12093        
12094         card--badge-sided
12095        
12096        
12097      "
12098      style="--ratio-percent: 100%;"
12099    >
12100      <div
12101        class="card__inner  ratio"
12102        style="--ratio-percent: 100%;"
12103      ><div class="card__media">
12104            <div class="media media--transparent media--hover-effect">
12105              
12106              <img
12107                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443 1080w
12108                "
12109                src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533"
12110                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12111                alt="Biomimetic Applicator Pads (Full Set) - Team Doctors"
12112                class="motion-reduce"
12113                
12114                  loading="lazy"
12115                
12116                width="1080"
12117                height="1080"
12118                id='quick-add-8394187342015-image'
12119              >
12120              
12121<img
12122                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
12123                  "
12124                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
12125                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12126                  alt=""
12127                  class="motion-reduce"
12128                  loading="lazy"
12129                  width="1080"
12130                  height="1080"
12131                ></div>
12132          </div><div class="card__content">
12133          <div class="card__information">
12134            <h3
12135              class="card__heading"
12136              
12137            >
12138              <a
12139                href="/products/biomemetic-applicator-pads-full-set"
12140                id="StandardCardNoMediaLink--8394187342015"
12141                class="full-unstyled-link"
12142                aria-labelledby="StandardCardNoMediaLink--8394187342015 NoMediaStandardBadge--8394187342015"
12143              >
12144                Biomimetic Applicator Pads
12145              </a>
12146            </h3>
12147          </div>
12148          <div class="card__badge bottom left">
12149              
12150              
12151                <span
12152                  id="NoMediaStandardBadge--8394187342015"
12153                  class="badge badge--bottom-left color-accent-2"
12154                >
12155                  <svg
12156  aria-hidden="true"
12157  focusable="false"
12158  class="icon icon-discount color-foreground-text"
12159  viewBox="0 0 12 12"
12160>
12161  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
12162</svg>
12163<span class='nowrap'>SAVE 21%</span>
12164                </span></div>
12165        </div>
12166      </div>
12167      <div class="card__content">
12168        <div class="card__information">
12169          <h3
12170            class="card__heading h5"
12171            
12172              id="title--8394187342015"
12173            
12174          >
12175            <a
12176              href="/products/biomemetic-applicator-pads-full-set"
12177              id="CardLink--8394187342015"
12178              class="full-unstyled-link"
12179              aria-labelledby="CardLink--8394187342015 Badge--8394187342015"
12180            >
12181              Biomimetic Applicator Pads
12182            </a>
12183          </h3>
12184          
12185            <div class="product-subtitle">
12186              3 Pads - Full Set
12187            </div>
12188          
12189          <div class="card-information"><span class="caption-large light"></span>
12190<div
12191  class="
12192    price  price--on-sale "
12193>
12194  <div class="price__container"><div class="price__regular">
12195      <span class="visually-hidden visually-hidden--inline">Regular price</span>
12196      <span class="price-item price-item--regular">
12197        $129.00
12198      </span>
12199    </div>
12200    <div class="price__sale ">
12201      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
12202      <span class="price-item price-item--sale price-item--last">
12203        $129.00
12204      </span>
12205        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
12206        <span class="price__compare-price">
12207          <s class="price-item price-item--regular">
12208            $164.85
12209          </s>
12210        </span></div>
12211    <small class="unit-price caption hidden">
12212      <span class="visually-hidden">Unit price</span>
12213      <span class="price-item price-item--last">
12214        <span></span>
12215        <span aria-hidden="true">/</span>
12216        <span class="visually-hidden">&nbsp;per&nbsp;</span>
12217        <span>
12218        </span>
12219      </span>
12220    </small>
12221  </div></div>
12222
12223          </div>
12224        </div>
12225        
12226<div class="card__badge bottom left"><span
12227              id="Badge--8394187342015"
12228              class="badge badge--bottom-left color-accent-2"
12229            >
12230              21%
12231            </span></div>
12232      </div>
12233    </div>
12234  </div>
12234<script>
12235  (() => {
12236    if (window.cardProductQuickAddVariantFixLoaded) return;
12237    window.cardProductQuickAddVariantFixLoaded = true;
12238
12239    const ADD_TO_CART_TEXT = "Add to cart";
12240    const SOLD_OUT_TEXT = "Sold out";
12241
12242    function parseVariants(container) {
12243      if (!container) return [];
12244
12245      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
12246
12247      for (const script of scripts) {
12248        try {
12249          const data = JSON.parse(script.textContent.trim());
12250
12251          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
12252            return data;
12253          }
12254
12255          if (data && Array.isArray(data.variants)) {
12256            return data.variants;
12257          }
12258        } catch (error) {}
12259      }
12260
12261      return [];
12262    }
12263
12264    function getSelectedOptionValues(container) {
12265      const values = [];
12266
12267      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
12268        const checkedInput = group.querySelector('input[type="radio"]:checked');
12269        const select = group.querySelector('select');
12270
12271        if (checkedInput) {
12272          values.push(checkedInput.value);
12273        } else if (select) {
12274          values.push(select.value);
12275        }
12276      });
12277
12278      return values;
12279    }
12280
12281    function getCurrentVariant(container, form, variants) {
12282      const idInput = form && form.querySelector('[name="id"]');
12283      const selectedId = idInput && idInput.value;
12284
12285      if (selectedId) {
12286        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
12287        if (byId) return byId;
12288      }
12289
12290      const selectedOptions = getSelectedOptionValues(container);
12291
12292      if (selectedOptions.length) {
12293        return variants.find((variant) => {
12294          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
12295          return selectedOptions.every((value, index) => String(options[index]) === String(value));
12296        });
12297      }
12298
12299      return null;
12300    }
12301
12302    function setButtonState(form, variant) {
12303      if (!form) return;
12304
12305      const idInput = form.querySelector('[name="id"]');
12306      const addButton = form.querySelector('[name="add"]');
12307      const buttonLabel =
12308        addButton &&
12309        (addButton.querySelector('.main-atc__label__text') ||
12310          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
12311      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
12312      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
12313
12314      if (!addButton || !idInput || !variant) return;
12315
12316      idInput.value = variant.id;
12317      idInput.disabled = false;
12318
12319      if (spinner) spinner.classList.add('hidden');
12320
12321      if (variant.available) {
12322        addButton.disabled = false;
12323        addButton.removeAttribute('disabled');
12324        addButton.removeAttribute('aria-disabled');
12325        addButton.classList.remove('loading');
12326
12327        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
12328        if (soldOutMessage) soldOutMessage.classList.add('hidden');
12329      } else {
12330        addButton.disabled = true;
12331        addButton.setAttribute('disabled', 'disabled');
12332        addButton.setAttribute('aria-disabled', 'true');
12333
12334        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
12335        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
12336      }
12337    }
12338
12339    function syncContainer(container) {
12340      if (!container) return;
12341
12342      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
12343      if (!form) return;
12344
12345      const variants = parseVariants(container);
12346      if (!variants.length) return;
12347
12348      const variant = getCurrentVariant(container, form, variants);
12349      if (!variant) return;
12350
12351      setButtonState(form, variant);
12352    }
12353
12354    document.addEventListener('change', (event) => {
12355      const quickAddModal = event.target.closest('quick-add-modal');
12356      const cardVariantSelects = event.target.closest('card-variant-selects');
12357
12358      if (quickAddModal) {
12359        setTimeout(() => syncContainer(quickAddModal), 80);
12360        setTimeout(() => syncContainer(quickAddModal), 250);
12361      }
12362
12363      if (cardVariantSelects) {
12364        const card = cardVariantSelects.closest('.card-wrapper');
12365        if (card) {
12366          setTimeout(() => syncContainer(card), 80);
12367          setTimeout(() => syncContainer(card), 250);
12368        }
12369      }
12370    });
12371
12372    const observer = new MutationObserver((mutations) => {
12373      mutations.forEach((mutation) => {
12374        mutation.addedNodes.forEach((node) => {
12375          if (!(node instanceof HTMLElement)) return;
12376
12377          if (node.matches && node.matches('quick-add-modal')) {
12378            setTimeout(() => syncContainer(node), 150);
12379          }
12380
12381          node.querySelectorAll &&
12382            node.querySelectorAll('quick-add-modal').forEach((modal) => {
12383              setTimeout(() => syncContainer(modal), 150);
12384            });
12385        });
12386      });
12387    });
12388
12389    observer.observe(document.documentElement, {
12390      childList: true,
12391      subtree: true
12392    });
12393
12394    document.addEventListener('DOMContentLoaded', () => {
12395      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
12396    });
12397  })();
12398</script>
12398
12399
12400
12401
12402
12403                                              </li>
12404                                            
12405                                              <li>
12406                                                
12407<div class="card-wrapper product-card-wrapper underline-links-hover">
12408    <div
12409      class="
12410        card
12411        card--card
12412         card--media
12413         color-background-1 gradient
12414        
12415        
12416        
12417         card--badge-sided
12418        
12419        
12420      "
12421      style="--ratio-percent: 100%;"
12422    >
12423      <div
12424        class="card__inner  ratio"
12425        style="--ratio-percent: 100%;"
12426      ><div class="card__media">
12427            <div class="media media--transparent media--hover-effect">
12428              
12429              <img
12430                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844 1254w
12431                "
12432                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533"
12433                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12434                alt="Balance bundle - Team Doctors"
12435                class="motion-reduce"
12436                
12437                  loading="lazy"
12438                
12439                width="1254"
12440                height="1254"
12441                id='quick-add-8402094031039-image'
12442              >
12443              
12444<img
12445                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
12446                  "
12447                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
12448                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12449                  alt=""
12450                  class="motion-reduce"
12451                  loading="lazy"
12452                  width="1080"
12453                  height="1080"
12454                ></div>
12455          </div><div class="card__content">
12456          <div class="card__information">
12457            <h3
12458              class="card__heading"
12459              
12460            >
12461              <a
12462                href="/products/vibeassage%C2%AE-relief-bundle"
12463                id="StandardCardNoMediaLink--8402094031039"
12464                class="full-unstyled-link"
12465                aria-labelledby="StandardCardNoMediaLink--8402094031039 NoMediaStandardBadge--8402094031039"
12466              >
12467                Balance bundle
12468              </a>
12469            </h3>
12470          </div>
12471          <div class="card__badge bottom left">
12472              
12473              
12474                <span
12475                  id="NoMediaStandardBadge--8402094031039"
12476                  class="badge badge--bottom-left color-accent-2"
12477                >
12478                  <svg
12479  aria-hidden="true"
12480  focusable="false"
12481  class="icon icon-discount color-foreground-text"
12482  viewBox="0 0 12 12"
12483>
12484  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
12485</svg>
12486<span class='nowrap'>SAVE 9%</span>
12487                </span></div>
12488        </div>
12489      </div>
12490      <div class="card__content">
12491        <div class="card__information">
12492          <h3
12493            class="card__heading h5"
12494            
12495              id="title--8402094031039"
12496            
12497          >
12498            <a
12499              href="/products/vibeassage%C2%AE-relief-bundle"
12500              id="CardLink--8402094031039"
12501              class="full-unstyled-link"
12502              aria-labelledby="CardLink--8402094031039 Badge--8402094031039"
12503            >
12504              Balance bundle
12505            </a>
12506          </h3>
12507          
12508            <div class="product-subtitle">
12509              Comfort Relief Pad + Peak Performance Pad
12510            </div>
12511          
12512          <div class="card-information"><span class="caption-large light"></span>
12513<div
12514  class="
12515    price  price--on-sale "
12516>
12517  <div class="price__container"><div class="price__regular">
12518      <span class="visually-hidden visually-hidden--inline">Regular price</span>
12519      <span class="price-item price-item--regular">
12520        $99.00
12521      </span>
12522    </div>
12523    <div class="price__sale ">
12524      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
12525      <span class="price-item price-item--sale price-item--last">
12526        $99.00
12527      </span>
12528        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
12529        <span class="price__compare-price">
12530          <s class="price-item price-item--regular">
12531            $109.95
12532          </s>
12533        </span></div>
12534    <small class="unit-price caption hidden">
12535      <span class="visually-hidden">Unit price</span>
12536      <span class="price-item price-item--last">
12537        <span></span>
12538        <span aria-hidden="true">/</span>
12539        <span class="visually-hidden">&nbsp;per&nbsp;</span>
12540        <span>
12541        </span>
12542      </span>
12543    </small>
12544  </div></div>
12545
12546          </div>
12547        </div>
12548        
12549<div class="card__badge bottom left"><span
12550              id="Badge--8402094031039"
12551              class="badge badge--bottom-left color-accent-2"
12552            >
12553              9%
12554            </span></div>
12555      </div>
12556    </div>
12557  </div>
12557<script>
12558  (() => {
12559    if (window.cardProductQuickAddVariantFixLoaded) return;
12560    window.cardProductQuickAddVariantFixLoaded = true;
12561
12562    const ADD_TO_CART_TEXT = "Add to cart";
12563    const SOLD_OUT_TEXT = "Sold out";
12564
12565    function parseVariants(container) {
12566      if (!container) return [];
12567
12568      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
12569
12570      for (const script of scripts) {
12571        try {
12572          const data = JSON.parse(script.textContent.trim());
12573
12574          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
12575            return data;
12576          }
12577
12578          if (data && Array.isArray(data.variants)) {
12579            return data.variants;
12580          }
12581        } catch (error) {}
12582      }
12583
12584      return [];
12585    }
12586
12587    function getSelectedOptionValues(container) {
12588      const values = [];
12589
12590      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
12591        const checkedInput = group.querySelector('input[type="radio"]:checked');
12592        const select = group.querySelector('select');
12593
12594        if (checkedInput) {
12595          values.push(checkedInput.value);
12596        } else if (select) {
12597          values.push(select.value);
12598        }
12599      });
12600
12601      return values;
12602    }
12603
12604    function getCurrentVariant(container, form, variants) {
12605      const idInput = form && form.querySelector('[name="id"]');
12606      const selectedId = idInput && idInput.value;
12607
12608      if (selectedId) {
12609        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
12610        if (byId) return byId;
12611      }
12612
12613      const selectedOptions = getSelectedOptionValues(container);
12614
12615      if (selectedOptions.length) {
12616        return variants.find((variant) => {
12617          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
12618          return selectedOptions.every((value, index) => String(options[index]) === String(value));
12619        });
12620      }
12621
12622      return null;
12623    }
12624
12625    function setButtonState(form, variant) {
12626      if (!form) return;
12627
12628      const idInput = form.querySelector('[name="id"]');
12629      const addButton = form.querySelector('[name="add"]');
12630      const buttonLabel =
12631        addButton &&
12632        (addButton.querySelector('.main-atc__label__text') ||
12633          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
12634      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
12635      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
12636
12637      if (!addButton || !idInput || !variant) return;
12638
12639      idInput.value = variant.id;
12640      idInput.disabled = false;
12641
12642      if (spinner) spinner.classList.add('hidden');
12643
12644      if (variant.available) {
12645        addButton.disabled = false;
12646        addButton.removeAttribute('disabled');
12647        addButton.removeAttribute('aria-disabled');
12648        addButton.classList.remove('loading');
12649
12650        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
12651        if (soldOutMessage) soldOutMessage.classList.add('hidden');
12652      } else {
12653        addButton.disabled = true;
12654        addButton.setAttribute('disabled', 'disabled');
12655        addButton.setAttribute('aria-disabled', 'true');
12656
12657        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
12658        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
12659      }
12660    }
12661
12662    function syncContainer(container) {
12663      if (!container) return;
12664
12665      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
12666      if (!form) return;
12667
12668      const variants = parseVariants(container);
12669      if (!variants.length) return;
12670
12671      const variant = getCurrentVariant(container, form, variants);
12672      if (!variant) return;
12673
12674      setButtonState(form, variant);
12675    }
12676
12677    document.addEventListener('change', (event) => {
12678      const quickAddModal = event.target.closest('quick-add-modal');
12679      const cardVariantSelects = event.target.closest('card-variant-selects');
12680
12681      if (quickAddModal) {
12682        setTimeout(() => syncContainer(quickAddModal), 80);
12683        setTimeout(() => syncContainer(quickAddModal), 250);
12684      }
12685
12686      if (cardVariantSelects) {
12687        const card = cardVariantSelects.closest('.card-wrapper');
12688        if (card) {
12689          setTimeout(() => syncContainer(card), 80);
12690          setTimeout(() => syncContainer(card), 250);
12691        }
12692      }
12693    });
12694
12695    const observer = new MutationObserver((mutations) => {
12696      mutations.forEach((mutation) => {
12697        mutation.addedNodes.forEach((node) => {
12698          if (!(node instanceof HTMLElement)) return;
12699
12700          if (node.matches && node.matches('quick-add-modal')) {
12701            setTimeout(() => syncContainer(node), 150);
12702          }
12703
12704          node.querySelectorAll &&
12705            node.querySelectorAll('quick-add-modal').forEach((modal) => {
12706              setTimeout(() => syncContainer(modal), 150);
12707            });
12708        });
12709      });
12710    });
12711
12712    observer.observe(document.documentElement, {
12713      childList: true,
12714      subtree: true
12715    });
12716
12717    document.addEventListener('DOMContentLoaded', () => {
12718      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
12719    });
12720  })();
12721</script>
12721
12722
12723
12724
12725
12726                                              </li>
12727                                            
12728                                              <li>
12729                                                
12730<div class="card-wrapper product-card-wrapper underline-links-hover">
12731    <div
12732      class="
12733        card
12734        card--card
12735         card--media
12736         color-background-1 gradient
12737        
12738        
12739        
12740         card--badge-sided
12741        
12742        
12743      "
12744      style="--ratio-percent: 100%;"
12745    >
12746      <div
12747        class="card__inner  ratio"
12748        style="--ratio-percent: 100%;"
12749      ><div class="card__media">
12750            <div class="media media--transparent media--hover-effect">
12751              
12752              <img
12753                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844 1254w
12754                "
12755                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533"
12756                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12757                alt="Relief Bundle - Team Doctors"
12758                class="motion-reduce"
12759                
12760                  loading="lazy"
12761                
12762                width="1254"
12763                height="1254"
12764                id='quick-add-8433935974591-image'
12765              >
12766              
12767<img
12768                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
12769                  "
12770                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
12771                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
12772                  alt=""
12773                  class="motion-reduce"
12774                  loading="lazy"
12775                  width="1080"
12776                  height="1080"
12777                ></div>
12778          </div><div class="card__content">
12779          <div class="card__information">
12780            <h3
12781              class="card__heading"
12782              
12783            >
12784              <a
12785                href="/products/relief-bundle"
12786                id="StandardCardNoMediaLink--8433935974591"
12787                class="full-unstyled-link"
12788                aria-labelledby="StandardCardNoMediaLink--8433935974591 NoMediaStandardBadge--8433935974591"
12789              >
12790                Relief Bundle
12791              </a>
12792            </h3>
12793          </div>
12794          <div class="card__badge bottom left">
12795              
12796              
12797                <span
12798                  id="NoMediaStandardBadge--8433935974591"
12799                  class="badge badge--bottom-left color-accent-2"
12800                >
12801                  <svg
12802  aria-hidden="true"
12803  focusable="false"
12804  class="icon icon-discount color-foreground-text"
12805  viewBox="0 0 12 12"
12806>
12807  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
12808</svg>
12809<span class='nowrap'>SAVE 9%</span>
12810                </span></div>
12811        </div>
12812      </div>
12813      <div class="card__content">
12814        <div class="card__information">
12815          <h3
12816            class="card__heading h5"
12817            
12818              id="title--8433935974591"
12819            
12820          >
12821            <a
12822              href="/products/relief-bundle"
12823              id="CardLink--8433935974591"
12824              class="full-unstyled-link"
12825              aria-labelledby="CardLink--8433935974591 Badge--8433935974591"
12826            >
12827              Relief Bundle
12828            </a>
12829          </h3>
12830          
12831            <div class="product-subtitle">
12832              Comfort Relief Pad + Core Recovery Pad
12833            </div>
12834          
12835          <div class="card-information"><span class="caption-large light"></span>
12836<div
12837  class="
12838    price  price--on-sale "
12839>
12840  <div class="price__container"><div class="price__regular">
12841      <span class="visually-hidden visually-hidden--inline">Regular price</span>
12842      <span class="price-item price-item--regular">
12843        $99.00
12844      </span>
12845    </div>
12846    <div class="price__sale ">
12847      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
12848      <span class="price-item price-item--sale price-item--last">
12849        $99.00
12850      </span>
12851        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
12852        <span class="price__compare-price">
12853          <s class="price-item price-item--regular">
12854            $109.90
12855          </s>
12856        </span></div>
12857    <small class="unit-price caption hidden">
12858      <span class="visually-hidden">Unit price</span>
12859      <span class="price-item price-item--last">
12860        <span></span>
12861        <span aria-hidden="true">/</span>
12862        <span class="visually-hidden">&nbsp;per&nbsp;</span>
12863        <span>
12864        </span>
12865      </span>
12866    </small>
12867  </div></div>
12868
12869          </div>
12870        </div>
12871        
12872<div class="card__badge bottom left"><span
12873              id="Badge--8433935974591"
12874              class="badge badge--bottom-left color-accent-2"
12875            >
12876              9%
12877            </span></div>
12878      </div>
12879    </div>
12880  </div>
12880<script>
12881  (() => {
12882    if (window.cardProductQuickAddVariantFixLoaded) return;
12883    window.cardProductQuickAddVariantFixLoaded = true;
12884
12885    const ADD_TO_CART_TEXT = "Add to cart";
12886    const SOLD_OUT_TEXT = "Sold out";
12887
12888    function parseVariants(container) {
12889      if (!container) return [];
12890
12891      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
12892
12893      for (const script of scripts) {
12894        try {
12895          const data = JSON.parse(script.textContent.trim());
12896
12897          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
12898            return data;
12899          }
12900
12901          if (data && Array.isArray(data.variants)) {
12902            return data.variants;
12903          }
12904        } catch (error) {}
12905      }
12906
12907      return [];
12908    }
12909
12910    function getSelectedOptionValues(container) {
12911      const values = [];
12912
12913      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
12914        const checkedInput = group.querySelector('input[type="radio"]:checked');
12915        const select = group.querySelector('select');
12916
12917        if (checkedInput) {
12918          values.push(checkedInput.value);
12919        } else if (select) {
12920          values.push(select.value);
12921        }
12922      });
12923
12924      return values;
12925    }
12926
12927    function getCurrentVariant(container, form, variants) {
12928      const idInput = form && form.querySelector('[name="id"]');
12929      const selectedId = idInput && idInput.value;
12930
12931      if (selectedId) {
12932        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
12933        if (byId) return byId;
12934      }
12935
12936      const selectedOptions = getSelectedOptionValues(container);
12937
12938      if (selectedOptions.length) {
12939        return variants.find((variant) => {
12940          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
12941          return selectedOptions.every((value, index) => String(options[index]) === String(value));
12942        });
12943      }
12944
12945      return null;
12946    }
12947
12948    function setButtonState(form, variant) {
12949      if (!form) return;
12950
12951      const idInput = form.querySelector('[name="id"]');
12952      const addButton = form.querySelector('[name="add"]');
12953      const buttonLabel =
12954        addButton &&
12955        (addButton.querySelector('.main-atc__label__text') ||
12956          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
12957      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
12958      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
12959
12960      if (!addButton || !idInput || !variant) return;
12961
12962      idInput.value = variant.id;
12963      idInput.disabled = false;
12964
12965      if (spinner) spinner.classList.add('hidden');
12966
12967      if (variant.available) {
12968        addButton.disabled = false;
12969        addButton.removeAttribute('disabled');
12970        addButton.removeAttribute('aria-disabled');
12971        addButton.classList.remove('loading');
12972
12973        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
12974        if (soldOutMessage) soldOutMessage.classList.add('hidden');
12975      } else {
12976        addButton.disabled = true;
12977        addButton.setAttribute('disabled', 'disabled');
12978        addButton.setAttribute('aria-disabled', 'true');
12979
12980        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
12981        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
12982      }
12983    }
12984
12985    function syncContainer(container) {
12986      if (!container) return;
12987
12988      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
12989      if (!form) return;
12990
12991      const variants = parseVariants(container);
12992      if (!variants.length) return;
12993
12994      const variant = getCurrentVariant(container, form, variants);
12995      if (!variant) return;
12996
12997      setButtonState(form, variant);
12998    }
12999
13000    document.addEventListener('change', (event) => {
13001      const quickAddModal = event.target.closest('quick-add-modal');
13002      const cardVariantSelects = event.target.closest('card-variant-selects');
13003
13004      if (quickAddModal) {
13005        setTimeout(() => syncContainer(quickAddModal), 80);
13006        setTimeout(() => syncContainer(quickAddModal), 250);
13007      }
13008
13009      if (cardVariantSelects) {
13010        const card = cardVariantSelects.closest('.card-wrapper');
13011        if (card) {
13012          setTimeout(() => syncContainer(card), 80);
13013          setTimeout(() => syncContainer(card), 250);
13014        }
13015      }
13016    });
13017
13018    const observer = new MutationObserver((mutations) => {
13019      mutations.forEach((mutation) => {
13020        mutation.addedNodes.forEach((node) => {
13021          if (!(node instanceof HTMLElement)) return;
13022
13023          if (node.matches && node.matches('quick-add-modal')) {
13024            setTimeout(() => syncContainer(node), 150);
13025          }
13026
13027          node.querySelectorAll &&
13028            node.querySelectorAll('quick-add-modal').forEach((modal) => {
13029              setTimeout(() => syncContainer(modal), 150);
13030            });
13031        });
13032      });
13033    });
13034
13035    observer.observe(document.documentElement, {
13036      childList: true,
13037      subtree: true
13038    });
13039
13040    document.addEventListener('DOMContentLoaded', () => {
13041      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
13042    });
13043  })();
13044</script>
13044
13045
13046
13047
13048
13049                                              </li>
13050                                            
13051                                              <li>
13052                                                
13053<div class="card-wrapper product-card-wrapper underline-links-hover">
13054    <div
13055      class="
13056        card
13057        card--card
13058         card--media
13059         color-background-1 gradient
13060        
13061        
13062        
13063         card--badge-sided
13064        
13065        
13066      "
13067      style="--ratio-percent: 100%;"
13068    >
13069      <div
13070        class="card__inner  ratio"
13071        style="--ratio-percent: 100%;"
13072      ><div class="card__media">
13073            <div class="media media--transparent media--hover-effect">
13074              
13075              <img
13076                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844 1254w
13077                "
13078                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533"
13079                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13080                alt="Performance Bundle - Team Doctors"
13081                class="motion-reduce"
13082                
13083                  loading="lazy"
13084                
13085                width="1254"
13086                height="1254"
13087                id='quick-add-8433936007359-image'
13088              >
13089              
13090<img
13091                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322 1080w
13092                  "
13093                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533"
13094                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13095                  alt=""
13096                  class="motion-reduce"
13097                  loading="lazy"
13098                  width="1080"
13099                  height="1080"
13100                ></div>
13101          </div><div class="card__content">
13102          <div class="card__information">
13103            <h3
13104              class="card__heading"
13105              
13106            >
13107              <a
13108                href="/products/performance-bundle"
13109                id="StandardCardNoMediaLink--8433936007359"
13110                class="full-unstyled-link"
13111                aria-labelledby="StandardCardNoMediaLink--8433936007359 NoMediaStandardBadge--8433936007359"
13112              >
13113                Performance Bundle
13114              </a>
13115            </h3>
13116          </div>
13117          <div class="card__badge bottom left">
13118              
13119              
13120                <span
13121                  id="NoMediaStandardBadge--8433936007359"
13122                  class="badge badge--bottom-left color-accent-2"
13123                >
13124                  <svg
13125  aria-hidden="true"
13126  focusable="false"
13127  class="icon icon-discount color-foreground-text"
13128  viewBox="0 0 12 12"
13129>
13130  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
13131</svg>
13132<span class='nowrap'>SAVE 9%</span>
13133                </span></div>
13134        </div>
13135      </div>
13136      <div class="card__content">
13137        <div class="card__information">
13138          <h3
13139            class="card__heading h5"
13140            
13141              id="title--8433936007359"
13142            
13143          >
13144            <a
13145              href="/products/performance-bundle"
13146              id="CardLink--8433936007359"
13147              class="full-unstyled-link"
13148              aria-labelledby="CardLink--8433936007359 Badge--8433936007359"
13149            >
13150              Performance Bundle
13151            </a>
13152          </h3>
13153          
13154            <div class="product-subtitle">
13155              Core Cecovery Pad + Peak Performance Pad
13156            </div>
13157          
13158          <div class="card-information"><span class="caption-large light"></span>
13159<div
13160  class="
13161    price  price--on-sale "
13162>
13163  <div class="price__container"><div class="price__regular">
13164      <span class="visually-hidden visually-hidden--inline">Regular price</span>
13165      <span class="price-item price-item--regular">
13166        $99.00
13167      </span>
13168    </div>
13169    <div class="price__sale ">
13170      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
13171      <span class="price-item price-item--sale price-item--last">
13172        $99.00
13173      </span>
13174        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
13175        <span class="price__compare-price">
13176          <s class="price-item price-item--regular">
13177            $109.90
13178          </s>
13179        </span></div>
13180    <small class="unit-price caption hidden">
13181      <span class="visually-hidden">Unit price</span>
13182      <span class="price-item price-item--last">
13183        <span></span>
13184        <span aria-hidden="true">/</span>
13185        <span class="visually-hidden">&nbsp;per&nbsp;</span>
13186        <span>
13187        </span>
13188      </span>
13189    </small>
13190  </div></div>
13191
13192          </div>
13193        </div>
13194        
13195<div class="card__badge bottom left"><span
13196              id="Badge--8433936007359"
13197              class="badge badge--bottom-left color-accent-2"
13198            >
13199              9%
13200            </span></div>
13201      </div>
13202    </div>
13203  </div>
13203<script>
13204  (() => {
13205    if (window.cardProductQuickAddVariantFixLoaded) return;
13206    window.cardProductQuickAddVariantFixLoaded = true;
13207
13208    const ADD_TO_CART_TEXT = "Add to cart";
13209    const SOLD_OUT_TEXT = "Sold out";
13210
13211    function parseVariants(container) {
13212      if (!container) return [];
13213
13214      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
13215
13216      for (const script of scripts) {
13217        try {
13218          const data = JSON.parse(script.textContent.trim());
13219
13220          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
13221            return data;
13222          }
13223
13224          if (data && Array.isArray(data.variants)) {
13225            return data.variants;
13226          }
13227        } catch (error) {}
13228      }
13229
13230      return [];
13231    }
13232
13233    function getSelectedOptionValues(container) {
13234      const values = [];
13235
13236      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
13237        const checkedInput = group.querySelector('input[type="radio"]:checked');
13238        const select = group.querySelector('select');
13239
13240        if (checkedInput) {
13241          values.push(checkedInput.value);
13242        } else if (select) {
13243          values.push(select.value);
13244        }
13245      });
13246
13247      return values;
13248    }
13249
13250    function getCurrentVariant(container, form, variants) {
13251      const idInput = form && form.querySelector('[name="id"]');
13252      const selectedId = idInput && idInput.value;
13253
13254      if (selectedId) {
13255        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
13256        if (byId) return byId;
13257      }
13258
13259      const selectedOptions = getSelectedOptionValues(container);
13260
13261      if (selectedOptions.length) {
13262        return variants.find((variant) => {
13263          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
13264          return selectedOptions.every((value, index) => String(options[index]) === String(value));
13265        });
13266      }
13267
13268      return null;
13269    }
13270
13271    function setButtonState(form, variant) {
13272      if (!form) return;
13273
13274      const idInput = form.querySelector('[name="id"]');
13275      const addButton = form.querySelector('[name="add"]');
13276      const buttonLabel =
13277        addButton &&
13278        (addButton.querySelector('.main-atc__label__text') ||
13279          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
13280      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
13281      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
13282
13283      if (!addButton || !idInput || !variant) return;
13284
13285      idInput.value = variant.id;
13286      idInput.disabled = false;
13287
13288      if (spinner) spinner.classList.add('hidden');
13289
13290      if (variant.available) {
13291        addButton.disabled = false;
13292        addButton.removeAttribute('disabled');
13293        addButton.removeAttribute('aria-disabled');
13294        addButton.classList.remove('loading');
13295
13296        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
13297        if (soldOutMessage) soldOutMessage.classList.add('hidden');
13298      } else {
13299        addButton.disabled = true;
13300        addButton.setAttribute('disabled', 'disabled');
13301        addButton.setAttribute('aria-disabled', 'true');
13302
13303        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
13304        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
13305      }
13306    }
13307
13308    function syncContainer(container) {
13309      if (!container) return;
13310
13311      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
13312      if (!form) return;
13313
13314      const variants = parseVariants(container);
13315      if (!variants.length) return;
13316
13317      const variant = getCurrentVariant(container, form, variants);
13318      if (!variant) return;
13319
13320      setButtonState(form, variant);
13321    }
13322
13323    document.addEventListener('change', (event) => {
13324      const quickAddModal = event.target.closest('quick-add-modal');
13325      const cardVariantSelects = event.target.closest('card-variant-selects');
13326
13327      if (quickAddModal) {
13328        setTimeout(() => syncContainer(quickAddModal), 80);
13329        setTimeout(() => syncContainer(quickAddModal), 250);
13330      }
13331
13332      if (cardVariantSelects) {
13333        const card = cardVariantSelects.closest('.card-wrapper');
13334        if (card) {
13335          setTimeout(() => syncContainer(card), 80);
13336          setTimeout(() => syncContainer(card), 250);
13337        }
13338      }
13339    });
13340
13341    const observer = new MutationObserver((mutations) => {
13342      mutations.forEach((mutation) => {
13343        mutation.addedNodes.forEach((node) => {
13344          if (!(node instanceof HTMLElement)) return;
13345
13346          if (node.matches && node.matches('quick-add-modal')) {
13347            setTimeout(() => syncContainer(node), 150);
13348          }
13349
13350          node.querySelectorAll &&
13351            node.querySelectorAll('quick-add-modal').forEach((modal) => {
13352              setTimeout(() => syncContainer(modal), 150);
13353            });
13354        });
13355      });
13356    });
13357
13358    observer.observe(document.documentElement, {
13359      childList: true,
13360      subtree: true
13361    });
13362
13363    document.addEventListener('DOMContentLoaded', () => {
13364      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
13365    });
13366  })();
13367</script>
13367
13368
13369
13370
13371
13372                                              </li>
13373                                            
13374                                              <li>
13375                                                
13376<div class="card-wrapper product-card-wrapper underline-links-hover">
13377    <div
13378      class="
13379        card
13380        card--card
13381         card--media
13382         color-background-1 gradient
13383        
13384        
13385        
13386         card--badge-sided
13387        
13388        
13389      "
13390      style="--ratio-percent: 100%;"
13391    >
13392      <div
13393        class="card__inner  ratio"
13394        style="--ratio-percent: 100%;"
13395      ><div class="card__media">
13396            <div class="media media--transparent media--hover-effect">
13397              
13398              <img
13399                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
13400                "
13401                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
13402                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13403                alt="🔴 Comfort Relief Pad™ - Team Doctors"
13404                class="motion-reduce"
13405                
13406                  loading="lazy"
13407                
13408                width="1080"
13409                height="1080"
13410                id='quick-add-8358127599807-image'
13411              >
13412              
13413<img
13414                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
13415                  "
13416                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
13417                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13418                  alt=""
13419                  class="motion-reduce"
13420                  loading="lazy"
13421                  width="1080"
13422                  height="1080"
13423                ></div>
13424          </div><div class="card__content">
13425          <div class="card__information">
13426            <h3
13427              class="card__heading"
13428              
13429            >
13430              <a
13431                href="/products/biomimetic-comfort-relief-pad"
13432                id="StandardCardNoMediaLink--8358127599807"
13433                class="full-unstyled-link"
13434                aria-labelledby="StandardCardNoMediaLink--8358127599807 NoMediaStandardBadge--8358127599807"
13435              >
13436                🔴 Comfort Relief Pad™
13437              </a>
13438            </h3>
13439          </div>
13440          <div class="card__badge bottom left">
13441              
13442              </div>
13443        </div>
13444      </div>
13445      <div class="card__content">
13446        <div class="card__information">
13447          <h3
13448            class="card__heading h5"
13449            
13450              id="title--8358127599807"
13451            
13452          >
13453            <a
13454              href="/products/biomimetic-comfort-relief-pad"
13455              id="CardLink--8358127599807"
13456              class="full-unstyled-link"
13457              aria-labelledby="CardLink--8358127599807 Badge--8358127599807"
13458            >
13459              🔴 Comfort Relief Pad™
13460            </a>
13461          </h3>
13462          
13463          <div class="card-information"><span class="caption-large light"></span>
13464<div
13465  class="
13466    price "
13467>
13468  <div class="price__container"><div class="price__regular">
13469      <span class="visually-hidden visually-hidden--inline">Regular price</span>
13470      <span class="price-item price-item--regular">
13471        $54.95
13472      </span>
13473    </div>
13474    <div class="price__sale ">
13475      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
13476      <span class="price-item price-item--sale price-item--last">
13477        $54.95
13478      </span>
13479        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
13480        <span class="price__compare-price">
13481          <s class="price-item price-item--regular">
13482            
13483          </s>
13484        </span></div>
13485    <small class="unit-price caption hidden">
13486      <span class="visually-hidden">Unit price</span>
13487      <span class="price-item price-item--last">
13488        <span></span>
13489        <span aria-hidden="true">/</span>
13490        <span class="visually-hidden">&nbsp;per&nbsp;</span>
13491        <span>
13492        </span>
13493      </span>
13494    </small>
13495  </div></div>
13496
13497          </div>
13498        </div>
13499        
13500<div class="card__badge bottom left"></div>
13501      </div>
13502    </div>
13503  </div>
13503<script>
13504  (() => {
13505    if (window.cardProductQuickAddVariantFixLoaded) return;
13506    window.cardProductQuickAddVariantFixLoaded = true;
13507
13508    const ADD_TO_CART_TEXT = "Add to cart";
13509    const SOLD_OUT_TEXT = "Sold out";
13510
13511    function parseVariants(container) {
13512      if (!container) return [];
13513
13514      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
13515
13516      for (const script of scripts) {
13517        try {
13518          const data = JSON.parse(script.textContent.trim());
13519
13520          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
13521            return data;
13522          }
13523
13524          if (data && Array.isArray(data.variants)) {
13525            return data.variants;
13526          }
13527        } catch (error) {}
13528      }
13529
13530      return [];
13531    }
13532
13533    function getSelectedOptionValues(container) {
13534      const values = [];
13535
13536      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
13537        const checkedInput = group.querySelector('input[type="radio"]:checked');
13538        const select = group.querySelector('select');
13539
13540        if (checkedInput) {
13541          values.push(checkedInput.value);
13542        } else if (select) {
13543          values.push(select.value);
13544        }
13545      });
13546
13547      return values;
13548    }
13549
13550    function getCurrentVariant(container, form, variants) {
13551      const idInput = form && form.querySelector('[name="id"]');
13552      const selectedId = idInput && idInput.value;
13553
13554      if (selectedId) {
13555        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
13556        if (byId) return byId;
13557      }
13558
13559      const selectedOptions = getSelectedOptionValues(container);
13560
13561      if (selectedOptions.length) {
13562        return variants.find((variant) => {
13563          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
13564          return selectedOptions.every((value, index) => String(options[index]) === String(value));
13565        });
13566      }
13567
13568      return null;
13569    }
13570
13571    function setButtonState(form, variant) {
13572      if (!form) return;
13573
13574      const idInput = form.querySelector('[name="id"]');
13575      const addButton = form.querySelector('[name="add"]');
13576      const buttonLabel =
13577        addButton &&
13578        (addButton.querySelector('.main-atc__label__text') ||
13579          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
13580      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
13581      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
13582
13583      if (!addButton || !idInput || !variant) return;
13584
13585      idInput.value = variant.id;
13586      idInput.disabled = false;
13587
13588      if (spinner) spinner.classList.add('hidden');
13589
13590      if (variant.available) {
13591        addButton.disabled = false;
13592        addButton.removeAttribute('disabled');
13593        addButton.removeAttribute('aria-disabled');
13594        addButton.classList.remove('loading');
13595
13596        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
13597        if (soldOutMessage) soldOutMessage.classList.add('hidden');
13598      } else {
13599        addButton.disabled = true;
13600        addButton.setAttribute('disabled', 'disabled');
13601        addButton.setAttribute('aria-disabled', 'true');
13602
13603        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
13604        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
13605      }
13606    }
13607
13608    function syncContainer(container) {
13609      if (!container) return;
13610
13611      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
13612      if (!form) return;
13613
13614      const variants = parseVariants(container);
13615      if (!variants.length) return;
13616
13617      const variant = getCurrentVariant(container, form, variants);
13618      if (!variant) return;
13619
13620      setButtonState(form, variant);
13621    }
13622
13623    document.addEventListener('change', (event) => {
13624      const quickAddModal = event.target.closest('quick-add-modal');
13625      const cardVariantSelects = event.target.closest('card-variant-selects');
13626
13627      if (quickAddModal) {
13628        setTimeout(() => syncContainer(quickAddModal), 80);
13629        setTimeout(() => syncContainer(quickAddModal), 250);
13630      }
13631
13632      if (cardVariantSelects) {
13633        const card = cardVariantSelects.closest('.card-wrapper');
13634        if (card) {
13635          setTimeout(() => syncContainer(card), 80);
13636          setTimeout(() => syncContainer(card), 250);
13637        }
13638      }
13639    });
13640
13641    const observer = new MutationObserver((mutations) => {
13642      mutations.forEach((mutation) => {
13643        mutation.addedNodes.forEach((node) => {
13644          if (!(node instanceof HTMLElement)) return;
13645
13646          if (node.matches && node.matches('quick-add-modal')) {
13647            setTimeout(() => syncContainer(node), 150);
13648          }
13649
13650          node.querySelectorAll &&
13651            node.querySelectorAll('quick-add-modal').forEach((modal) => {
13652              setTimeout(() => syncContainer(modal), 150);
13653            });
13654        });
13655      });
13656    });
13657
13658    observer.observe(document.documentElement, {
13659      childList: true,
13660      subtree: true
13661    });
13662
13663    document.addEventListener('DOMContentLoaded', () => {
13664      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
13665    });
13666  })();
13667</script>
13667
13668
13669
13670
13671
13672                                              </li>
13673                                            
13674                                              <li>
13675                                                
13676<div class="card-wrapper product-card-wrapper underline-links-hover">
13677    <div
13678      class="
13679        card
13680        card--card
13681         card--media
13682         color-background-1 gradient
13683        
13684        
13685        
13686         card--badge-sided
13687        
13688        
13689      "
13690      style="--ratio-percent: 100%;"
13691    >
13692      <div
13693        class="card__inner  ratio"
13694        style="--ratio-percent: 100%;"
13695      ><div class="card__media">
13696            <div class="media media--transparent media--hover-effect">
13697              
13698              <img
13699                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451 1080w
13700                "
13701                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533"
13702                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13703                alt="White"
13704                class="motion-reduce"
13705                
13706                  loading="lazy"
13707                
13708                width="1080"
13709                height="1080"
13710                id='quick-add-8358145917119-image'
13711              >
13712              
13713<img
13714                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477 1080w
13715                  "
13716                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533"
13717                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
13718                  alt=""
13719                  class="motion-reduce"
13720                  loading="lazy"
13721                  width="1080"
13722                  height="1080"
13723                ></div>
13724          </div><div class="card__content">
13725          <div class="card__information">
13726            <h3
13727              class="card__heading"
13728              
13729            >
13730              <a
13731                href="/products/biomimetic-core-recovery-pad"
13732                id="StandardCardNoMediaLink--8358145917119"
13733                class="full-unstyled-link"
13734                aria-labelledby="StandardCardNoMediaLink--8358145917119 NoMediaStandardBadge--8358145917119"
13735              >
13736                🟡 Core Recovery Pad™
13737              </a>
13738            </h3>
13739          </div>
13740          <div class="card__badge bottom left">
13741              
13742              </div>
13743        </div>
13744      </div>
13745      <div class="card__content">
13746        <div class="card__information">
13747          <h3
13748            class="card__heading h5"
13749            
13750              id="title--8358145917119"
13751            
13752          >
13753            <a
13754              href="/products/biomimetic-core-recovery-pad"
13755              id="CardLink--8358145917119"
13756              class="full-unstyled-link"
13757              aria-labelledby="CardLink--8358145917119 Badge--8358145917119"
13758            >
13759              🟡 Core Recovery Pad™
13760            </a>
13761          </h3>
13762          
13763          <div class="card-information"><span class="caption-large light"></span>
13764<div
13765  class="
13766    price "
13767>
13768  <div class="price__container"><div class="price__regular">
13769      <span class="visually-hidden visually-hidden--inline">Regular price</span>
13770      <span class="price-item price-item--regular">
13771        $54.95
13772      </span>
13773    </div>
13774    <div class="price__sale ">
13775      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
13776      <span class="price-item price-item--sale price-item--last">
13777        $54.95
13778      </span>
13779        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
13780        <span class="price__compare-price">
13781          <s class="price-item price-item--regular">
13782            
13783          </s>
13784        </span></div>
13785    <small class="unit-price caption hidden">
13786      <span class="visually-hidden">Unit price</span>
13787      <span class="price-item price-item--last">
13788        <span></span>
13789        <span aria-hidden="true">/</span>
13790        <span class="visually-hidden">&nbsp;per&nbsp;</span>
13791        <span>
13792        </span>
13793      </span>
13794    </small>
13795  </div></div>
13796
13797          </div>
13798        </div>
13799        
13800<div class="card__badge bottom left"></div>
13801      </div>
13802    </div>
13803  </div>
13803<script>
13804  (() => {
13805    if (window.cardProductQuickAddVariantFixLoaded) return;
13806    window.cardProductQuickAddVariantFixLoaded = true;
13807
13808    const ADD_TO_CART_TEXT = "Add to cart";
13809    const SOLD_OUT_TEXT = "Sold out";
13810
13811    function parseVariants(container) {
13812      if (!container) return [];
13813
13814      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
13815
13816      for (const script of scripts) {
13817        try {
13818          const data = JSON.parse(script.textContent.trim());
13819
13820          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
13821            return data;
13822          }
13823
13824          if (data && Array.isArray(data.variants)) {
13825            return data.variants;
13826          }
13827        } catch (error) {}
13828      }
13829
13830      return [];
13831    }
13832
13833    function getSelectedOptionValues(container) {
13834      const values = [];
13835
13836      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
13837        const checkedInput = group.querySelector('input[type="radio"]:checked');
13838        const select = group.querySelector('select');
13839
13840        if (checkedInput) {
13841          values.push(checkedInput.value);
13842        } else if (select) {
13843          values.push(select.value);
13844        }
13845      });
13846
13847      return values;
13848    }
13849
13850    function getCurrentVariant(container, form, variants) {
13851      const idInput = form && form.querySelector('[name="id"]');
13852      const selectedId = idInput && idInput.value;
13853
13854      if (selectedId) {
13855        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
13856        if (byId) return byId;
13857      }
13858
13859      const selectedOptions = getSelectedOptionValues(container);
13860
13861      if (selectedOptions.length) {
13862        return variants.find((variant) => {
13863          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
13864          return selectedOptions.every((value, index) => String(options[index]) === String(value));
13865        });
13866      }
13867
13868      return null;
13869    }
13870
13871    function setButtonState(form, variant) {
13872      if (!form) return;
13873
13874      const idInput = form.querySelector('[name="id"]');
13875      const addButton = form.querySelector('[name="add"]');
13876      const buttonLabel =
13877        addButton &&
13878        (addButton.querySelector('.main-atc__label__text') ||
13879          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
13880      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
13881      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
13882
13883      if (!addButton || !idInput || !variant) return;
13884
13885      idInput.value = variant.id;
13886      idInput.disabled = false;
13887
13888      if (spinner) spinner.classList.add('hidden');
13889
13890      if (variant.available) {
13891        addButton.disabled = false;
13892        addButton.removeAttribute('disabled');
13893        addButton.removeAttribute('aria-disabled');
13894        addButton.classList.remove('loading');
13895
13896        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
13897        if (soldOutMessage) soldOutMessage.classList.add('hidden');
13898      } else {
13899        addButton.disabled = true;
13900        addButton.setAttribute('disabled', 'disabled');
13901        addButton.setAttribute('aria-disabled', 'true');
13902
13903        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
13904        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
13905      }
13906    }
13907
13908    function syncContainer(container) {
13909      if (!container) return;
13910
13911      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
13912      if (!form) return;
13913
13914      const variants = parseVariants(container);
13915      if (!variants.length) return;
13916
13917      const variant = getCurrentVariant(container, form, variants);
13918      if (!variant) return;
13919
13920      setButtonState(form, variant);
13921    }
13922
13923    document.addEventListener('change', (event) => {
13924      const quickAddModal = event.target.closest('quick-add-modal');
13925      const cardVariantSelects = event.target.closest('card-variant-selects');
13926
13927      if (quickAddModal) {
13928        setTimeout(() => syncContainer(quickAddModal), 80);
13929        setTimeout(() => syncContainer(quickAddModal), 250);
13930      }
13931
13932      if (cardVariantSelects) {
13933        const card = cardVariantSelects.closest('.card-wrapper');
13934        if (card) {
13935          setTimeout(() => syncContainer(card), 80);
13936          setTimeout(() => syncContainer(card), 250);
13937        }
13938      }
13939    });
13940
13941    const observer = new MutationObserver((mutations) => {
13942      mutations.forEach((mutation) => {
13943        mutation.addedNodes.forEach((node) => {
13944          if (!(node instanceof HTMLElement)) return;
13945
13946          if (node.matches && node.matches('quick-add-modal')) {
13947            setTimeout(() => syncContainer(node), 150);
13948          }
13949
13950          node.querySelectorAll &&
13951            node.querySelectorAll('quick-add-modal').forEach((modal) => {
13952              setTimeout(() => syncContainer(modal), 150);
13953            });
13954        });
13955      });
13956    });
13957
13958    observer.observe(document.documentElement, {
13959      childList: true,
13960      subtree: true
13961    });
13962
13963    document.addEventListener('DOMContentLoaded', () => {
13964      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
13965    });
13966  })();
13967</script>
13967
13968
13969
13970
13971
13972                                              </li>
13973                                            
13974                                              <li>
13975                                                
13976<div class="card-wrapper product-card-wrapper underline-links-hover">
13977    <div
13978      class="
13979        card
13980        card--card
13981         card--media
13982         color-background-1 gradient
13983        
13984        
13985        
13986         card--badge-sided
13987        
13988        
13989      "
13990      style="--ratio-percent: 100%;"
13991    >
13992      <div
13993        class="card__inner  ratio"
13994        style="--ratio-percent: 100%;"
13995      ><div class="card__media">
13996            <div class="media media--transparent media--hover-effect">
13997              
13998              <img
13999                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
14000                "
14001                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
14002                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14003                alt="🟢 Peak Performance Pad™ - Team Doctors"
14004                class="motion-reduce"
14005                
14006                  loading="lazy"
14007                
14008                width="1080"
14009                height="1080"
14010                id='quick-add-8358149750975-image'
14011              >
14012              
14013<img
14014                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529 1080w
14015                  "
14016                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533"
14017                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14018                  alt=""
14019                  class="motion-reduce"
14020                  loading="lazy"
14021                  width="1080"
14022                  height="1080"
14023                ></div>
14024          </div><div class="card__content">
14025          <div class="card__information">
14026            <h3
14027              class="card__heading"
14028              
14029            >
14030              <a
14031                href="/products/biomimetic-peak-performance-pad"
14032                id="StandardCardNoMediaLink--8358149750975"
14033                class="full-unstyled-link"
14034                aria-labelledby="StandardCardNoMediaLink--8358149750975 NoMediaStandardBadge--8358149750975"
14035              >
14036                🟢 Peak Performance Pad™
14037              </a>
14038            </h3>
14039          </div>
14040          <div class="card__badge bottom left">
14041              
14042              </div>
14043        </div>
14044      </div>
14045      <div class="card__content">
14046        <div class="card__information">
14047          <h3
14048            class="card__heading h5"
14049            
14050              id="title--8358149750975"
14051            
14052          >
14053            <a
14054              href="/products/biomimetic-peak-performance-pad"
14055              id="CardLink--8358149750975"
14056              class="full-unstyled-link"
14057              aria-labelledby="CardLink--8358149750975 Badge--8358149750975"
14058            >
14059              🟢 Peak Performance Pad™
14060            </a>
14061          </h3>
14062          
14063          <div class="card-information"><span class="caption-large light"></span>
14064<div
14065  class="
14066    price "
14067>
14068  <div class="price__container"><div class="price__regular">
14069      <span class="visually-hidden visually-hidden--inline">Regular price</span>
14070      <span class="price-item price-item--regular">
14071        $54.95
14072      </span>
14073    </div>
14074    <div class="price__sale ">
14075      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
14076      <span class="price-item price-item--sale price-item--last">
14077        $54.95
14078      </span>
14079        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
14080        <span class="price__compare-price">
14081          <s class="price-item price-item--regular">
14082            
14083          </s>
14084        </span></div>
14085    <small class="unit-price caption hidden">
14086      <span class="visually-hidden">Unit price</span>
14087      <span class="price-item price-item--last">
14088        <span></span>
14089        <span aria-hidden="true">/</span>
14090        <span class="visually-hidden">&nbsp;per&nbsp;</span>
14091        <span>
14092        </span>
14093      </span>
14094    </small>
14095  </div></div>
14096
14097          </div>
14098        </div>
14099        
14100<div class="card__badge bottom left"></div>
14101      </div>
14102    </div>
14103  </div>
14103<script>
14104  (() => {
14105    if (window.cardProductQuickAddVariantFixLoaded) return;
14106    window.cardProductQuickAddVariantFixLoaded = true;
14107
14108    const ADD_TO_CART_TEXT = "Add to cart";
14109    const SOLD_OUT_TEXT = "Sold out";
14110
14111    function parseVariants(container) {
14112      if (!container) return [];
14113
14114      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
14115
14116      for (const script of scripts) {
14117        try {
14118          const data = JSON.parse(script.textContent.trim());
14119
14120          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
14121            return data;
14122          }
14123
14124          if (data && Array.isArray(data.variants)) {
14125            return data.variants;
14126          }
14127        } catch (error) {}
14128      }
14129
14130      return [];
14131    }
14132
14133    function getSelectedOptionValues(container) {
14134      const values = [];
14135
14136      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
14137        const checkedInput = group.querySelector('input[type="radio"]:checked');
14138        const select = group.querySelector('select');
14139
14140        if (checkedInput) {
14141          values.push(checkedInput.value);
14142        } else if (select) {
14143          values.push(select.value);
14144        }
14145      });
14146
14147      return values;
14148    }
14149
14150    function getCurrentVariant(container, form, variants) {
14151      const idInput = form && form.querySelector('[name="id"]');
14152      const selectedId = idInput && idInput.value;
14153
14154      if (selectedId) {
14155        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
14156        if (byId) return byId;
14157      }
14158
14159      const selectedOptions = getSelectedOptionValues(container);
14160
14161      if (selectedOptions.length) {
14162        return variants.find((variant) => {
14163          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
14164          return selectedOptions.every((value, index) => String(options[index]) === String(value));
14165        });
14166      }
14167
14168      return null;
14169    }
14170
14171    function setButtonState(form, variant) {
14172      if (!form) return;
14173
14174      const idInput = form.querySelector('[name="id"]');
14175      const addButton = form.querySelector('[name="add"]');
14176      const buttonLabel =
14177        addButton &&
14178        (addButton.querySelector('.main-atc__label__text') ||
14179          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
14180      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
14181      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
14182
14183      if (!addButton || !idInput || !variant) return;
14184
14185      idInput.value = variant.id;
14186      idInput.disabled = false;
14187
14188      if (spinner) spinner.classList.add('hidden');
14189
14190      if (variant.available) {
14191        addButton.disabled = false;
14192        addButton.removeAttribute('disabled');
14193        addButton.removeAttribute('aria-disabled');
14194        addButton.classList.remove('loading');
14195
14196        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
14197        if (soldOutMessage) soldOutMessage.classList.add('hidden');
14198      } else {
14199        addButton.disabled = true;
14200        addButton.setAttribute('disabled', 'disabled');
14201        addButton.setAttribute('aria-disabled', 'true');
14202
14203        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
14204        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
14205      }
14206    }
14207
14208    function syncContainer(container) {
14209      if (!container) return;
14210
14211      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
14212      if (!form) return;
14213
14214      const variants = parseVariants(container);
14215      if (!variants.length) return;
14216
14217      const variant = getCurrentVariant(container, form, variants);
14218      if (!variant) return;
14219
14220      setButtonState(form, variant);
14221    }
14222
14223    document.addEventListener('change', (event) => {
14224      const quickAddModal = event.target.closest('quick-add-modal');
14225      const cardVariantSelects = event.target.closest('card-variant-selects');
14226
14227      if (quickAddModal) {
14228        setTimeout(() => syncContainer(quickAddModal), 80);
14229        setTimeout(() => syncContainer(quickAddModal), 250);
14230      }
14231
14232      if (cardVariantSelects) {
14233        const card = cardVariantSelects.closest('.card-wrapper');
14234        if (card) {
14235          setTimeout(() => syncContainer(card), 80);
14236          setTimeout(() => syncContainer(card), 250);
14237        }
14238      }
14239    });
14240
14241    const observer = new MutationObserver((mutations) => {
14242      mutations.forEach((mutation) => {
14243        mutation.addedNodes.forEach((node) => {
14244          if (!(node instanceof HTMLElement)) return;
14245
14246          if (node.matches && node.matches('quick-add-modal')) {
14247            setTimeout(() => syncContainer(node), 150);
14248          }
14249
14250          node.querySelectorAll &&
14251            node.querySelectorAll('quick-add-modal').forEach((modal) => {
14252              setTimeout(() => syncContainer(modal), 150);
14253            });
14254        });
14255      });
14256    });
14257
14258    observer.observe(document.documentElement, {
14259      childList: true,
14260      subtree: true
14261    });
14262
14263    document.addEventListener('DOMContentLoaded', () => {
14264      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
14265    });
14266  })();
14267</script>
14267
14268
14269
14270
14271
14272                                              </li>
14273                                            
14274                                          
14275</ul>
14276                                      
14277                                    </div>
14278                                  </details></li></ul>
14279                        </div>
14280                      </div>
14281                    </details></li><li><details id="Details-menu-drawer-menu-item-3">
14282                      <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset menu-drawer__menu-item--active">
14283                        Discover
14284                        <svg
14285  viewBox="0 0 14 10"
14286  fill="none"
14287  aria-hidden="true"
14288  focusable="false"
14289  class="icon icon-arrow"
14290  xmlns="http://www.w3.org/2000/svg"
14291>
14292  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
14293</svg>
14294
14295                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
14296  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
14297</svg>
14298
14299                      </summary>
14300                      <div id="link-discover" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
14301                        <div class="menu-drawer__inner-submenu">
14302                          <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
14303                            <svg
14304  viewBox="0 0 14 10"
14305  fill="none"
14306  aria-hidden="true"
14307  focusable="false"
14308  class="icon icon-arrow"
14309  xmlns="http://www.w3.org/2000/svg"
14310>
14311  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
14312</svg>
14313
14314                            Discover
14315                          </button>
14316                          <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/pages/about-us" class="menu-drawer__menu-item link link--text list-menu__item focus-inset menu-drawer__menu-item--active" aria-current="page">
14317                                    Learn More
14318                                  </a></li><li><a href="/pages/vibeassage-video-tutorials" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
14319                                    Tutorials
14320                                  </a></li><li><a href="/pages/contact-us" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
14321                                    Contact Us
14322                                  </a></li></ul>
14323                        </div>
14324                      </div>
14325                    </details></li><li><a href="/pages/contact-us" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
14326                      Contact Us
14327                    </a></li></ul>
14328          </nav>
14329<!--                 start secondary nav -->
14330          
14331<!--                 end secondary nav -->
14332          <div class="menu-drawer__utility-links"><a href="https://teamdoctors.com/customer_authentication/redirect?locale=en&region_country=US" class="menu-drawer__account link focus-inset h5">
14333                <svg
14334  xmlns="http://www.w3.org/2000/svg"
14335  aria-hidden="true"
14336  focusable="false"
14337  class="icon icon-account"
14338  fill="none"
14339  viewBox="0 0 18 19"
14340>
14341  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor">
14342</svg>
14343
14344Log in</a><ul class="list list-social list-unstyled" role="list"></ul>
14345          </div>
14346        </div>
14347      </div>
14348    </div>
14349  </details>
14350</header-drawer>
14351
14352        <nav class="header__inline-menu">
14353          <ul class="list-menu list-menu--inline" role="list"><li><a href="/" class="header__menu-item header__menu-item--main list-menu__item link link--text focus-inset">
14354                    <span>Home</span>
14355                  </a></li><li>
14356                    <products-mega-menu>
14357  <details id="ProductsMegaMenu-">
14358    <summary class="menu-shop   header__menu-item header__menu-item--main list-menu__item link focus-inset products-mega-menu">
14359      <span
14360      >Shop</span>
14361      <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
14362  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
14363</svg>
14364
14365    </summary>
14366    <div class="products-mega-menu__body color-background-1">
14367      <div class="products-mega-menu__overlay">&nbsp</div>
14368      <div class="page-width">
14369        <div class="products-mega-menu__container">
14370          <ul
14371            id="ProductsMegaMenu-List-"
14372            class="products-mega-menu__list"
14373            role="list"
14374            tabindex="-1"
14375          ><li
14376                id="ProductsMegaMenu-Item-shop-1"
14377                class="products-mega-menu__item products-mega-menu__item--active"
14378              >
14379                <a
14380                  id="ProductsMegaMenu-Link-shop-1"
14381                  href="/collections/doctor-recommended"
14382                  class="header__menu-item list-menu__item link link--text focus-inset caption-large"
14383                  
14384                >
14385                  
14386                  <span>Doctor Recommended</span>
14387                  <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
14388  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
14389</svg>
14390
14391                </a>
14392
14393                <div class="products-mega-menu__content">
14394                  <ul class="products-mega-menu__cards">
14395                    
14396                      
14397                      
14398                      
14399                        <li>
14400                          
14401<div class="card-wrapper product-card-wrapper underline-links-hover">
14402    <div
14403      class="
14404        card
14405        card--card
14406         card--media
14407         color-background-1 gradient
14408        
14409        
14410        
14411         card--badge-sided
14412        
14413        
14414      "
14415      style="--ratio-percent: 100%;"
14416    >
14417      <div
14418        class="card__inner  ratio"
14419        style="--ratio-percent: 100%;"
14420      ><div class="card__media">
14421            <div class="media media--transparent media--hover-effect">
14422              
14423              <img
14424                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523 1254w
14425                "
14426                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533"
14427                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14428                alt="Complete Recovery Solution Bundle - Team Doctors"
14429                class="motion-reduce"
14430                
14431                  loading="lazy"
14432                
14433                width="1254"
14434                height="1254"
14435                id='quick-add-8455539065023-image'
14436              >
14437              
14438<img
14439                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014 w
14440                  "
14441                  src="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014&width=533"
14442                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14443                  alt=""
14444                  class="motion-reduce"
14445                  loading="lazy"
14446                  width=""
14447                  height=""
14448                ></div>
14449          </div><div class="card__content">
14450          <div class="card__information">
14451            <h3
14452              class="card__heading"
14453              
14454            >
14455              <a
14456                href="/products/complete-recovery-solution-bundle"
14457                id="StandardCardNoMediaLink--8455539065023"
14458                class="full-unstyled-link"
14459                aria-labelledby="StandardCardNoMediaLink--8455539065023 NoMediaStandardBadge--8455539065023"
14460              >
14461                Complete Biomimetic Recovery System™
14462              </a>
14463            </h3>
14464          </div>
14465          <div class="card__badge bottom left">
14466              
14467              
14468                <span
14469                  id="NoMediaStandardBadge--8455539065023"
14470                  class="badge badge--bottom-left color-accent-2"
14471                >
14472                  <svg
14473  aria-hidden="true"
14474  focusable="false"
14475  class="icon icon-discount color-foreground-text"
14476  viewBox="0 0 12 12"
14477>
14478  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
14479</svg>
14480<span class='nowrap'>SAVE 10%</span>
14481                </span></div>
14482        </div>
14483      </div>
14484      <div class="card__content">
14485        <div class="card__information">
14486          <h3
14487            class="card__heading h5"
14488            
14489              id="title--8455539065023"
14490            
14491          >
14492            <a
14493              href="/products/complete-recovery-solution-bundle"
14494              id="CardLink--8455539065023"
14495              class="full-unstyled-link"
14496              aria-labelledby="CardLink--8455539065023 Badge--8455539065023"
14497            >
14498              Complete Biomimetic Recovery System™
14499            </a>
14500          </h3>
14501          
14502            <div class="product-subtitle">
14503              The Vibeassage Pro® + The Vibeassage Sport®
14504            </div>
14505          
14506          <div class="card-information"><span class="caption-large light"></span>
14507<div
14508  class="
14509    price  price--on-sale "
14510>
14511  <div class="price__container"><div class="price__regular">
14512      <span class="visually-hidden visually-hidden--inline">Regular price</span>
14513      <span class="price-item price-item--regular">
14514        $1,807.00
14515      </span>
14516    </div>
14517    <div class="price__sale ">
14518      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
14519      <span class="price-item price-item--sale price-item--last">
14520        $1,807.00
14521      </span>
14522        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
14523        <span class="price__compare-price">
14524          <s class="price-item price-item--regular">
14525            $2,008.00
14526          </s>
14527        </span></div>
14528    <small class="unit-price caption hidden">
14529      <span class="visually-hidden">Unit price</span>
14530      <span class="price-item price-item--last">
14531        <span></span>
14532        <span aria-hidden="true">/</span>
14533        <span class="visually-hidden">&nbsp;per&nbsp;</span>
14534        <span>
14535        </span>
14536      </span>
14537    </small>
14538  </div></div>
14539
14540          </div>
14541        </div>
14542        
14543<div class="card__badge bottom left"><span
14544              id="Badge--8455539065023"
14545              class="badge badge--bottom-left color-accent-2"
14546            >
14547              10%
14548            </span></div>
14549      </div>
14550    </div>
14551  </div>
14551<script>
14552  (() => {
14553    if (window.cardProductQuickAddVariantFixLoaded) return;
14554    window.cardProductQuickAddVariantFixLoaded = true;
14555
14556    const ADD_TO_CART_TEXT = "Add to cart";
14557    const SOLD_OUT_TEXT = "Sold out";
14558
14559    function parseVariants(container) {
14560      if (!container) return [];
14561
14562      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
14563
14564      for (const script of scripts) {
14565        try {
14566          const data = JSON.parse(script.textContent.trim());
14567
14568          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
14569            return data;
14570          }
14571
14572          if (data && Array.isArray(data.variants)) {
14573            return data.variants;
14574          }
14575        } catch (error) {}
14576      }
14577
14578      return [];
14579    }
14580
14581    function getSelectedOptionValues(container) {
14582      const values = [];
14583
14584      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
14585        const checkedInput = group.querySelector('input[type="radio"]:checked');
14586        const select = group.querySelector('select');
14587
14588        if (checkedInput) {
14589          values.push(checkedInput.value);
14590        } else if (select) {
14591          values.push(select.value);
14592        }
14593      });
14594
14595      return values;
14596    }
14597
14598    function getCurrentVariant(container, form, variants) {
14599      const idInput = form && form.querySelector('[name="id"]');
14600      const selectedId = idInput && idInput.value;
14601
14602      if (selectedId) {
14603        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
14604        if (byId) return byId;
14605      }
14606
14607      const selectedOptions = getSelectedOptionValues(container);
14608
14609      if (selectedOptions.length) {
14610        return variants.find((variant) => {
14611          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
14612          return selectedOptions.every((value, index) => String(options[index]) === String(value));
14613        });
14614      }
14615
14616      return null;
14617    }
14618
14619    function setButtonState(form, variant) {
14620      if (!form) return;
14621
14622      const idInput = form.querySelector('[name="id"]');
14623      const addButton = form.querySelector('[name="add"]');
14624      const buttonLabel =
14625        addButton &&
14626        (addButton.querySelector('.main-atc__label__text') ||
14627          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
14628      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
14629      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
14630
14631      if (!addButton || !idInput || !variant) return;
14632
14633      idInput.value = variant.id;
14634      idInput.disabled = false;
14635
14636      if (spinner) spinner.classList.add('hidden');
14637
14638      if (variant.available) {
14639        addButton.disabled = false;
14640        addButton.removeAttribute('disabled');
14641        addButton.removeAttribute('aria-disabled');
14642        addButton.classList.remove('loading');
14643
14644        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
14645        if (soldOutMessage) soldOutMessage.classList.add('hidden');
14646      } else {
14647        addButton.disabled = true;
14648        addButton.setAttribute('disabled', 'disabled');
14649        addButton.setAttribute('aria-disabled', 'true');
14650
14651        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
14652        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
14653      }
14654    }
14655
14656    function syncContainer(container) {
14657      if (!container) return;
14658
14659      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
14660      if (!form) return;
14661
14662      const variants = parseVariants(container);
14663      if (!variants.length) return;
14664
14665      const variant = getCurrentVariant(container, form, variants);
14666      if (!variant) return;
14667
14668      setButtonState(form, variant);
14669    }
14670
14671    document.addEventListener('change', (event) => {
14672      const quickAddModal = event.target.closest('quick-add-modal');
14673      const cardVariantSelects = event.target.closest('card-variant-selects');
14674
14675      if (quickAddModal) {
14676        setTimeout(() => syncContainer(quickAddModal), 80);
14677        setTimeout(() => syncContainer(quickAddModal), 250);
14678      }
14679
14680      if (cardVariantSelects) {
14681        const card = cardVariantSelects.closest('.card-wrapper');
14682        if (card) {
14683          setTimeout(() => syncContainer(card), 80);
14684          setTimeout(() => syncContainer(card), 250);
14685        }
14686      }
14687    });
14688
14689    const observer = new MutationObserver((mutations) => {
14690      mutations.forEach((mutation) => {
14691        mutation.addedNodes.forEach((node) => {
14692          if (!(node instanceof HTMLElement)) return;
14693
14694          if (node.matches && node.matches('quick-add-modal')) {
14695            setTimeout(() => syncContainer(node), 150);
14696          }
14697
14698          node.querySelectorAll &&
14699            node.querySelectorAll('quick-add-modal').forEach((modal) => {
14700              setTimeout(() => syncContainer(modal), 150);
14701            });
14702        });
14703      });
14704    });
14705
14706    observer.observe(document.documentElement, {
14707      childList: true,
14708      subtree: true
14709    });
14710
14711    document.addEventListener('DOMContentLoaded', () => {
14712      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
14713    });
14714  })();
14715</script>
14715
14716
14717
14718
14719
14720                        </li>
14721                      
14722                        <li>
14723                          
14724<div class="card-wrapper product-card-wrapper underline-links-hover">
14725    <div
14726      class="
14727        card
14728        card--card
14729         card--media
14730         color-background-1 gradient
14731        
14732        
14733        
14734         card--badge-sided
14735        
14736        
14737      "
14738      style="--ratio-percent: 100%;"
14739    >
14740      <div
14741        class="card__inner  ratio"
14742        style="--ratio-percent: 100%;"
14743      ><div class="card__media">
14744            <div class="media media--transparent media--hover-effect">
14745              
14746              <img
14747                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
14748                "
14749                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
14750                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14751                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
14752                class="motion-reduce"
14753                
14754                  loading="lazy"
14755                
14756                width=""
14757                height=""
14758                id='quick-add-7253705130175-image'
14759              >
14760              
14761<img
14762                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
14763                  "
14764                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
14765                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
14766                  alt=""
14767                  class="motion-reduce"
14768                  loading="lazy"
14769                  width="810"
14770                  height="605"
14771                ></div>
14772          </div><div class="card__content">
14773          <div class="card__information">
14774            <h3
14775              class="card__heading"
14776              
14777            >
14778              <a
14779                href="/products/vibeassage-pro"
14780                id="StandardCardNoMediaLink--7253705130175"
14781                class="full-unstyled-link"
14782                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
14783              >
14784                The Vibeassage Pro® with the full 3-pad Biomimetic System™
14785              </a>
14786            </h3>
14787          </div>
14788          <div class="card__badge bottom left">
14789              
14790              
14791                <span
14792                  id="NoMediaStandardBadge--7253705130175"
14793                  class="badge badge--bottom-left color-accent-2"
14794                >
14795                  <svg
14796  aria-hidden="true"
14797  focusable="false"
14798  class="icon icon-discount color-foreground-text"
14799  viewBox="0 0 12 12"
14800>
14801  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
14802</svg>
14803<span class='nowrap'>SAVE 9%</span>
14804                </span></div>
14805        </div>
14806      </div>
14807      <div class="card__content">
14808        <div class="card__information">
14809          <h3
14810            class="card__heading h5"
14811            
14812              id="title--7253705130175"
14813            
14814          >
14815            <a
14816              href="/products/vibeassage-pro"
14817              id="CardLink--7253705130175"
14818              class="full-unstyled-link"
14819              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
14820            >
14821              The Vibeassage Pro® with the full 3-pad Biomimetic System™
14822            </a>
14823          </h3>
14824          
14825          <div class="card-information"><span class="caption-large light"></span>
14826<div
14827  class="
14828    price  price--on-sale "
14829>
14830  <div class="price__container"><div class="price__regular">
14831      <span class="visually-hidden visually-hidden--inline">Regular price</span>
14832      <span class="price-item price-item--regular">
14833        $1,579.00
14834      </span>
14835    </div>
14836    <div class="price__sale ">
14837      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
14838      <span class="price-item price-item--sale price-item--last">
14839        $1,579.00
14840      </span>
14841        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
14842        <span class="price__compare-price">
14843          <s class="price-item price-item--regular">
14844            $1,749.00
14845          </s>
14846        </span></div>
14847    <small class="unit-price caption hidden">
14848      <span class="visually-hidden">Unit price</span>
14849      <span class="price-item price-item--last">
14850        <span></span>
14851        <span aria-hidden="true">/</span>
14852        <span class="visually-hidden">&nbsp;per&nbsp;</span>
14853        <span>
14854        </span>
14855      </span>
14856    </small>
14857  </div></div>
14858
14859          </div>
14860        </div>
14861        
14862<div class="card__badge bottom left"><span
14863              id="Badge--7253705130175"
14864              class="badge badge--bottom-left color-accent-2"
14865            >
14866              9%
14867            </span></div>
14868      </div>
14869    </div>
14870  </div>
14870<script>
14871  (() => {
14872    if (window.cardProductQuickAddVariantFixLoaded) return;
14873    window.cardProductQuickAddVariantFixLoaded = true;
14874
14875    const ADD_TO_CART_TEXT = "Add to cart";
14876    const SOLD_OUT_TEXT = "Sold out";
14877
14878    function parseVariants(container) {
14879      if (!container) return [];
14880
14881      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
14882
14883      for (const script of scripts) {
14884        try {
14885          const data = JSON.parse(script.textContent.trim());
14886
14887          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
14888            return data;
14889          }
14890
14891          if (data && Array.isArray(data.variants)) {
14892            return data.variants;
14893          }
14894        } catch (error) {}
14895      }
14896
14897      return [];
14898    }
14899
14900    function getSelectedOptionValues(container) {
14901      const values = [];
14902
14903      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
14904        const checkedInput = group.querySelector('input[type="radio"]:checked');
14905        const select = group.querySelector('select');
14906
14907        if (checkedInput) {
14908          values.push(checkedInput.value);
14909        } else if (select) {
14910          values.push(select.value);
14911        }
14912      });
14913
14914      return values;
14915    }
14916
14917    function getCurrentVariant(container, form, variants) {
14918      const idInput = form && form.querySelector('[name="id"]');
14919      const selectedId = idInput && idInput.value;
14920
14921      if (selectedId) {
14922        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
14923        if (byId) return byId;
14924      }
14925
14926      const selectedOptions = getSelectedOptionValues(container);
14927
14928      if (selectedOptions.length) {
14929        return variants.find((variant) => {
14930          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
14931          return selectedOptions.every((value, index) => String(options[index]) === String(value));
14932        });
14933      }
14934
14935      return null;
14936    }
14937
14938    function setButtonState(form, variant) {
14939      if (!form) return;
14940
14941      const idInput = form.querySelector('[name="id"]');
14942      const addButton = form.querySelector('[name="add"]');
14943      const buttonLabel =
14944        addButton &&
14945        (addButton.querySelector('.main-atc__label__text') ||
14946          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
14947      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
14948      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
14949
14950      if (!addButton || !idInput || !variant) return;
14951
14952      idInput.value = variant.id;
14953      idInput.disabled = false;
14954
14955      if (spinner) spinner.classList.add('hidden');
14956
14957      if (variant.available) {
14958        addButton.disabled = false;
14959        addButton.removeAttribute('disabled');
14960        addButton.removeAttribute('aria-disabled');
14961        addButton.classList.remove('loading');
14962
14963        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
14964        if (soldOutMessage) soldOutMessage.classList.add('hidden');
14965      } else {
14966        addButton.disabled = true;
14967        addButton.setAttribute('disabled', 'disabled');
14968        addButton.setAttribute('aria-disabled', 'true');
14969
14970        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
14971        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
14972      }
14973    }
14974
14975    function syncContainer(container) {
14976      if (!container) return;
14977
14978      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
14979      if (!form) return;
14980
14981      const variants = parseVariants(container);
14982      if (!variants.length) return;
14983
14984      const variant = getCurrentVariant(container, form, variants);
14985      if (!variant) return;
14986
14987      setButtonState(form, variant);
14988    }
14989
14990    document.addEventListener('change', (event) => {
14991      const quickAddModal = event.target.closest('quick-add-modal');
14992      const cardVariantSelects = event.target.closest('card-variant-selects');
14993
14994      if (quickAddModal) {
14995        setTimeout(() => syncContainer(quickAddModal), 80);
14996        setTimeout(() => syncContainer(quickAddModal), 250);
14997      }
14998
14999      if (cardVariantSelects) {
15000        const card = cardVariantSelects.closest('.card-wrapper');
15001        if (card) {
15002          setTimeout(() => syncContainer(card), 80);
15003          setTimeout(() => syncContainer(card), 250);
15004        }
15005      }
15006    });
15007
15008    const observer = new MutationObserver((mutations) => {
15009      mutations.forEach((mutation) => {
15010        mutation.addedNodes.forEach((node) => {
15011          if (!(node instanceof HTMLElement)) return;
15012
15013          if (node.matches && node.matches('quick-add-modal')) {
15014            setTimeout(() => syncContainer(node), 150);
15015          }
15016
15017          node.querySelectorAll &&
15018            node.querySelectorAll('quick-add-modal').forEach((modal) => {
15019              setTimeout(() => syncContainer(modal), 150);
15020            });
15021        });
15022      });
15023    });
15024
15025    observer.observe(document.documentElement, {
15026      childList: true,
15027      subtree: true
15028    });
15029
15030    document.addEventListener('DOMContentLoaded', () => {
15031      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
15032    });
15033  })();
15034</script>
15034
15035
15036
15037
15038
15039                        </li>
15040                      
15041                        <li>
15042                          
15043<div class="card-wrapper product-card-wrapper underline-links-hover">
15044    <div
15045      class="
15046        card
15047        card--card
15048         card--media
15049         color-background-1 gradient
15050        
15051        
15052        
15053         card--badge-sided
15054        
15055        
15056      "
15057      style="--ratio-percent: 100%;"
15058    >
15059      <div
15060        class="card__inner  ratio"
15061        style="--ratio-percent: 100%;"
15062      ><div class="card__media">
15063            <div class="media media--transparent media--hover-effect">
15064              
15065              <img
15066                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068 1254w
15067                "
15068                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533"
15069                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15070                alt="White"
15071                class="motion-reduce"
15072                
15073                  loading="lazy"
15074                
15075                width="1254"
15076                height="1254"
15077                id='quick-add-8342973219007-image'
15078              >
15079              
15080<img
15081                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847 1080w
15082                  "
15083                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533"
15084                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15085                  alt=""
15086                  class="motion-reduce"
15087                  loading="lazy"
15088                  width="1080"
15089                  height="1080"
15090                ></div>
15091          </div><div class="card__content">
15092          <div class="card__information">
15093            <h3
15094              class="card__heading"
15095              
15096            >
15097              <a
15098                href="/products/vibeassage-complete-system"
15099                id="StandardCardNoMediaLink--8342973219007"
15100                class="full-unstyled-link"
15101                aria-labelledby="StandardCardNoMediaLink--8342973219007 NoMediaStandardBadge--8342973219007"
15102              >
15103                ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
15104              </a>
15105            </h3>
15106          </div>
15107          <div class="card__badge bottom left">
15108              
15109              </div>
15110        </div>
15111      </div>
15112      <div class="card__content">
15113        <div class="card__information">
15114          <h3
15115            class="card__heading h5"
15116            
15117              id="title--8342973219007"
15118            
15119          >
15120            <a
15121              href="/products/vibeassage-complete-system"
15122              id="CardLink--8342973219007"
15123              class="full-unstyled-link"
15124              aria-labelledby="CardLink--8342973219007 Badge--8342973219007"
15125            >
15126              ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
15127            </a>
15128          </h3>
15129          
15130          <div class="card-information"><span class="caption-large light"></span>
15131<div
15132  class="
15133    price "
15134>
15135  <div class="price__container"><div class="price__regular">
15136      <span class="visually-hidden visually-hidden--inline">Regular price</span>
15137      <span class="price-item price-item--regular">
15138        From $429.00
15139      </span>
15140    </div>
15141    <div class="price__sale ">
15142      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
15143      <span class="price-item price-item--sale price-item--last">
15144        From $429.00
15145      </span>
15146        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
15147        <span class="price__compare-price">
15148          <s class="price-item price-item--regular">
15149            
15150          </s>
15151        </span></div>
15152    <small class="unit-price caption hidden">
15153      <span class="visually-hidden">Unit price</span>
15154      <span class="price-item price-item--last">
15155        <span></span>
15156        <span aria-hidden="true">/</span>
15157        <span class="visually-hidden">&nbsp;per&nbsp;</span>
15158        <span>
15159        </span>
15160      </span>
15161    </small>
15162  </div></div>
15163
15164          </div>
15165        </div>
15166        
15167<div class="card__badge bottom left"></div>
15168      </div>
15169    </div>
15170  </div>
15170<script>
15171  (() => {
15172    if (window.cardProductQuickAddVariantFixLoaded) return;
15173    window.cardProductQuickAddVariantFixLoaded = true;
15174
15175    const ADD_TO_CART_TEXT = "Add to cart";
15176    const SOLD_OUT_TEXT = "Sold out";
15177
15178    function parseVariants(container) {
15179      if (!container) return [];
15180
15181      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
15182
15183      for (const script of scripts) {
15184        try {
15185          const data = JSON.parse(script.textContent.trim());
15186
15187          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
15188            return data;
15189          }
15190
15191          if (data && Array.isArray(data.variants)) {
15192            return data.variants;
15193          }
15194        } catch (error) {}
15195      }
15196
15197      return [];
15198    }
15199
15200    function getSelectedOptionValues(container) {
15201      const values = [];
15202
15203      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
15204        const checkedInput = group.querySelector('input[type="radio"]:checked');
15205        const select = group.querySelector('select');
15206
15207        if (checkedInput) {
15208          values.push(checkedInput.value);
15209        } else if (select) {
15210          values.push(select.value);
15211        }
15212      });
15213
15214      return values;
15215    }
15216
15217    function getCurrentVariant(container, form, variants) {
15218      const idInput = form && form.querySelector('[name="id"]');
15219      const selectedId = idInput && idInput.value;
15220
15221      if (selectedId) {
15222        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
15223        if (byId) return byId;
15224      }
15225
15226      const selectedOptions = getSelectedOptionValues(container);
15227
15228      if (selectedOptions.length) {
15229        return variants.find((variant) => {
15230          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
15231          return selectedOptions.every((value, index) => String(options[index]) === String(value));
15232        });
15233      }
15234
15235      return null;
15236    }
15237
15238    function setButtonState(form, variant) {
15239      if (!form) return;
15240
15241      const idInput = form.querySelector('[name="id"]');
15242      const addButton = form.querySelector('[name="add"]');
15243      const buttonLabel =
15244        addButton &&
15245        (addButton.querySelector('.main-atc__label__text') ||
15246          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
15247      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
15248      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
15249
15250      if (!addButton || !idInput || !variant) return;
15251
15252      idInput.value = variant.id;
15253      idInput.disabled = false;
15254
15255      if (spinner) spinner.classList.add('hidden');
15256
15257      if (variant.available) {
15258        addButton.disabled = false;
15259        addButton.removeAttribute('disabled');
15260        addButton.removeAttribute('aria-disabled');
15261        addButton.classList.remove('loading');
15262
15263        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
15264        if (soldOutMessage) soldOutMessage.classList.add('hidden');
15265      } else {
15266        addButton.disabled = true;
15267        addButton.setAttribute('disabled', 'disabled');
15268        addButton.setAttribute('aria-disabled', 'true');
15269
15270        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
15271        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
15272      }
15273    }
15274
15275    function syncContainer(container) {
15276      if (!container) return;
15277
15278      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
15279      if (!form) return;
15280
15281      const variants = parseVariants(container);
15282      if (!variants.length) return;
15283
15284      const variant = getCurrentVariant(container, form, variants);
15285      if (!variant) return;
15286
15287      setButtonState(form, variant);
15288    }
15289
15290    document.addEventListener('change', (event) => {
15291      const quickAddModal = event.target.closest('quick-add-modal');
15292      const cardVariantSelects = event.target.closest('card-variant-selects');
15293
15294      if (quickAddModal) {
15295        setTimeout(() => syncContainer(quickAddModal), 80);
15296        setTimeout(() => syncContainer(quickAddModal), 250);
15297      }
15298
15299      if (cardVariantSelects) {
15300        const card = cardVariantSelects.closest('.card-wrapper');
15301        if (card) {
15302          setTimeout(() => syncContainer(card), 80);
15303          setTimeout(() => syncContainer(card), 250);
15304        }
15305      }
15306    });
15307
15308    const observer = new MutationObserver((mutations) => {
15309      mutations.forEach((mutation) => {
15310        mutation.addedNodes.forEach((node) => {
15311          if (!(node instanceof HTMLElement)) return;
15312
15313          if (node.matches && node.matches('quick-add-modal')) {
15314            setTimeout(() => syncContainer(node), 150);
15315          }
15316
15317          node.querySelectorAll &&
15318            node.querySelectorAll('quick-add-modal').forEach((modal) => {
15319              setTimeout(() => syncContainer(modal), 150);
15320            });
15321        });
15322      });
15323    });
15324
15325    observer.observe(document.documentElement, {
15326      childList: true,
15327      subtree: true
15328    });
15329
15330    document.addEventListener('DOMContentLoaded', () => {
15331      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
15332    });
15333  })();
15334</script>
15334
15335
15336
15337
15338
15339                        </li>
15340                      
15341                        <li>
15342                          
15343<div class="card-wrapper product-card-wrapper underline-links-hover">
15344    <div
15345      class="
15346        card
15347        card--card
15348         card--media
15349         color-background-1 gradient
15350        
15351        
15352        
15353         card--badge-sided
15354        
15355        
15356      "
15357      style="--ratio-percent: 100%;"
15358    >
15359      <div
15360        class="card__inner  ratio"
15361        style="--ratio-percent: 100%;"
15362      ><div class="card__media">
15363            <div class="media media--transparent media--hover-effect">
15364              
15365              <img
15366                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068 1254w
15367                "
15368                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533"
15369                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15370                alt="White"
15371                class="motion-reduce"
15372                
15373                  loading="lazy"
15374                
15375                width="1254"
15376                height="1254"
15377                id='quick-add-8342972334271-image'
15378              >
15379              
15380<img
15381                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068 1254w
15382                  "
15383                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533"
15384                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15385                  alt=""
15386                  class="motion-reduce"
15387                  loading="lazy"
15388                  width="1254"
15389                  height="1254"
15390                ></div>
15391          </div><div class="card__content">
15392          <div class="card__information">
15393            <h3
15394              class="card__heading"
15395              
15396            >
15397              <a
15398                href="/products/vibeassage-relief-bundle"
15399                id="StandardCardNoMediaLink--8342972334271"
15400                class="full-unstyled-link"
15401                aria-labelledby="StandardCardNoMediaLink--8342972334271 NoMediaStandardBadge--8342972334271"
15402              >
15403                Vibeassage® Relief Bundle
15404              </a>
15405            </h3>
15406          </div>
15407          <div class="card__badge bottom left">
15408              
15409              </div>
15410        </div>
15411      </div>
15412      <div class="card__content">
15413        <div class="card__information">
15414          <h3
15415            class="card__heading h5"
15416            
15417              id="title--8342972334271"
15418            
15419          >
15420            <a
15421              href="/products/vibeassage-relief-bundle"
15422              id="CardLink--8342972334271"
15423              class="full-unstyled-link"
15424              aria-labelledby="CardLink--8342972334271 Badge--8342972334271"
15425            >
15426              Vibeassage® Relief Bundle
15427            </a>
15428          </h3>
15429          
15430          <div class="card-information"><span class="caption-large light"></span>
15431<div
15432  class="
15433    price "
15434>
15435  <div class="price__container"><div class="price__regular">
15436      <span class="visually-hidden visually-hidden--inline">Regular price</span>
15437      <span class="price-item price-item--regular">
15438        From $389.00
15439      </span>
15440    </div>
15441    <div class="price__sale ">
15442      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
15443      <span class="price-item price-item--sale price-item--last">
15444        From $389.00
15445      </span>
15446        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
15447        <span class="price__compare-price">
15448          <s class="price-item price-item--regular">
15449            
15450          </s>
15451        </span></div>
15452    <small class="unit-price caption hidden">
15453      <span class="visually-hidden">Unit price</span>
15454      <span class="price-item price-item--last">
15455        <span></span>
15456        <span aria-hidden="true">/</span>
15457        <span class="visually-hidden">&nbsp;per&nbsp;</span>
15458        <span>
15459        </span>
15460      </span>
15461    </small>
15462  </div></div>
15463
15464          </div>
15465        </div>
15466        
15467<div class="card__badge bottom left"></div>
15468      </div>
15469    </div>
15470  </div>
15470<script>
15471  (() => {
15472    if (window.cardProductQuickAddVariantFixLoaded) return;
15473    window.cardProductQuickAddVariantFixLoaded = true;
15474
15475    const ADD_TO_CART_TEXT = "Add to cart";
15476    const SOLD_OUT_TEXT = "Sold out";
15477
15478    function parseVariants(container) {
15479      if (!container) return [];
15480
15481      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
15482
15483      for (const script of scripts) {
15484        try {
15485          const data = JSON.parse(script.textContent.trim());
15486
15487          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
15488            return data;
15489          }
15490
15491          if (data && Array.isArray(data.variants)) {
15492            return data.variants;
15493          }
15494        } catch (error) {}
15495      }
15496
15497      return [];
15498    }
15499
15500    function getSelectedOptionValues(container) {
15501      const values = [];
15502
15503      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
15504        const checkedInput = group.querySelector('input[type="radio"]:checked');
15505        const select = group.querySelector('select');
15506
15507        if (checkedInput) {
15508          values.push(checkedInput.value);
15509        } else if (select) {
15510          values.push(select.value);
15511        }
15512      });
15513
15514      return values;
15515    }
15516
15517    function getCurrentVariant(container, form, variants) {
15518      const idInput = form && form.querySelector('[name="id"]');
15519      const selectedId = idInput && idInput.value;
15520
15521      if (selectedId) {
15522        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
15523        if (byId) return byId;
15524      }
15525
15526      const selectedOptions = getSelectedOptionValues(container);
15527
15528      if (selectedOptions.length) {
15529        return variants.find((variant) => {
15530          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
15531          return selectedOptions.every((value, index) => String(options[index]) === String(value));
15532        });
15533      }
15534
15535      return null;
15536    }
15537
15538    function setButtonState(form, variant) {
15539      if (!form) return;
15540
15541      const idInput = form.querySelector('[name="id"]');
15542      const addButton = form.querySelector('[name="add"]');
15543      const buttonLabel =
15544        addButton &&
15545        (addButton.querySelector('.main-atc__label__text') ||
15546          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
15547      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
15548      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
15549
15550      if (!addButton || !idInput || !variant) return;
15551
15552      idInput.value = variant.id;
15553      idInput.disabled = false;
15554
15555      if (spinner) spinner.classList.add('hidden');
15556
15557      if (variant.available) {
15558        addButton.disabled = false;
15559        addButton.removeAttribute('disabled');
15560        addButton.removeAttribute('aria-disabled');
15561        addButton.classList.remove('loading');
15562
15563        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
15564        if (soldOutMessage) soldOutMessage.classList.add('hidden');
15565      } else {
15566        addButton.disabled = true;
15567        addButton.setAttribute('disabled', 'disabled');
15568        addButton.setAttribute('aria-disabled', 'true');
15569
15570        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
15571        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
15572      }
15573    }
15574
15575    function syncContainer(container) {
15576      if (!container) return;
15577
15578      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
15579      if (!form) return;
15580
15581      const variants = parseVariants(container);
15582      if (!variants.length) return;
15583
15584      const variant = getCurrentVariant(container, form, variants);
15585      if (!variant) return;
15586
15587      setButtonState(form, variant);
15588    }
15589
15590    document.addEventListener('change', (event) => {
15591      const quickAddModal = event.target.closest('quick-add-modal');
15592      const cardVariantSelects = event.target.closest('card-variant-selects');
15593
15594      if (quickAddModal) {
15595        setTimeout(() => syncContainer(quickAddModal), 80);
15596        setTimeout(() => syncContainer(quickAddModal), 250);
15597      }
15598
15599      if (cardVariantSelects) {
15600        const card = cardVariantSelects.closest('.card-wrapper');
15601        if (card) {
15602          setTimeout(() => syncContainer(card), 80);
15603          setTimeout(() => syncContainer(card), 250);
15604        }
15605      }
15606    });
15607
15608    const observer = new MutationObserver((mutations) => {
15609      mutations.forEach((mutation) => {
15610        mutation.addedNodes.forEach((node) => {
15611          if (!(node instanceof HTMLElement)) return;
15612
15613          if (node.matches && node.matches('quick-add-modal')) {
15614            setTimeout(() => syncContainer(node), 150);
15615          }
15616
15617          node.querySelectorAll &&
15618            node.querySelectorAll('quick-add-modal').forEach((modal) => {
15619              setTimeout(() => syncContainer(modal), 150);
15620            });
15621        });
15622      });
15623    });
15624
15625    observer.observe(document.documentElement, {
15626      childList: true,
15627      subtree: true
15628    });
15629
15630    document.addEventListener('DOMContentLoaded', () => {
15631      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
15632    });
15633  })();
15634</script>
15634
15635
15636
15637
15638
15639                        </li>
15640                      
15641                    
15642</ul>
15643                </div>
15644              </li><li
15645                id="ProductsMegaMenu-Item-shop-2"
15646                class="products-mega-menu__item"
15647              >
15648                <a
15649                  id="ProductsMegaMenu-Link-shop-2"
15650                  href="/collections/all"
15651                  class="header__menu-item list-menu__item link link--text focus-inset caption-large"
15652                  
15653                >
15654                  
15655                  <span>All Products</span>
15656                  <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
15657  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
15658</svg>
15659
15660                </a>
15661
15662                <div class="products-mega-menu__content">
15663                  <ul class="products-mega-menu__cards">
15664                    
15665                      
15666                      
15667                      
15668                        <li>
15669                          
15670<div class="card-wrapper product-card-wrapper underline-links-hover">
15671    <div
15672      class="
15673        card
15674        card--card
15675         card--media
15676         color-background-1 gradient
15677        
15678        
15679        
15680         card--badge-sided
15681        
15682        
15683      "
15684      style="--ratio-percent: 100%;"
15685    >
15686      <div
15687        class="card__inner  ratio"
15688        style="--ratio-percent: 100%;"
15689      ><div class="card__media">
15690            <div class="media media--transparent media--hover-effect">
15691              
15692              <img
15693                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
15694                "
15695                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
15696                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15697                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
15698                class="motion-reduce"
15699                
15700                  loading="lazy"
15701                
15702                width=""
15703                height=""
15704                id='quick-add-7253705130175-image'
15705              >
15706              
15707<img
15708                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
15709                  "
15710                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
15711                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
15712                  alt=""
15713                  class="motion-reduce"
15714                  loading="lazy"
15715                  width="810"
15716                  height="605"
15717                ></div>
15718          </div><div class="card__content">
15719          <div class="card__information">
15720            <h3
15721              class="card__heading"
15722              
15723            >
15724              <a
15725                href="/products/vibeassage-pro"
15726                id="StandardCardNoMediaLink--7253705130175"
15727                class="full-unstyled-link"
15728                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
15729              >
15730                The Vibeassage Pro® with the full 3-pad Biomimetic System™
15731              </a>
15732            </h3>
15733          </div>
15734          <div class="card__badge bottom left">
15735              
15736              
15737                <span
15738                  id="NoMediaStandardBadge--7253705130175"
15739                  class="badge badge--bottom-left color-accent-2"
15740                >
15741                  <svg
15742  aria-hidden="true"
15743  focusable="false"
15744  class="icon icon-discount color-foreground-text"
15745  viewBox="0 0 12 12"
15746>
15747  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
15748</svg>
15749<span class='nowrap'>SAVE 9%</span>
15750                </span></div>
15751        </div>
15752      </div>
15753      <div class="card__content">
15754        <div class="card__information">
15755          <h3
15756            class="card__heading h5"
15757            
15758              id="title--7253705130175"
15759            
15760          >
15761            <a
15762              href="/products/vibeassage-pro"
15763              id="CardLink--7253705130175"
15764              class="full-unstyled-link"
15765              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
15766            >
15767              The Vibeassage Pro® with the full 3-pad Biomimetic System™
15768            </a>
15769          </h3>
15770          
15771          <div class="card-information"><span class="caption-large light"></span>
15772<div
15773  class="
15774    price  price--on-sale "
15775>
15776  <div class="price__container"><div class="price__regular">
15777      <span class="visually-hidden visually-hidden--inline">Regular price</span>
15778      <span class="price-item price-item--regular">
15779        $1,579.00
15780      </span>
15781    </div>
15782    <div class="price__sale ">
15783      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
15784      <span class="price-item price-item--sale price-item--last">
15785        $1,579.00
15786      </span>
15787        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
15788        <span class="price__compare-price">
15789          <s class="price-item price-item--regular">
15790            $1,749.00
15791          </s>
15792        </span></div>
15793    <small class="unit-price caption hidden">
15794      <span class="visually-hidden">Unit price</span>
15795      <span class="price-item price-item--last">
15796        <span></span>
15797        <span aria-hidden="true">/</span>
15798        <span class="visually-hidden">&nbsp;per&nbsp;</span>
15799        <span>
15800        </span>
15801      </span>
15802    </small>
15803  </div></div>
15804
15805          </div>
15806        </div>
15807        
15808<div class="card__badge bottom left"><span
15809              id="Badge--7253705130175"
15810              class="badge badge--bottom-left color-accent-2"
15811            >
15812              9%
15813            </span></div>
15814      </div>
15815    </div>
15816  </div>
15816<script>
15817  (() => {
15818    if (window.cardProductQuickAddVariantFixLoaded) return;
15819    window.cardProductQuickAddVariantFixLoaded = true;
15820
15821    const ADD_TO_CART_TEXT = "Add to cart";
15822    const SOLD_OUT_TEXT = "Sold out";
15823
15824    function parseVariants(container) {
15825      if (!container) return [];
15826
15827      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
15828
15829      for (const script of scripts) {
15830        try {
15831          const data = JSON.parse(script.textContent.trim());
15832
15833          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
15834            return data;
15835          }
15836
15837          if (data && Array.isArray(data.variants)) {
15838            return data.variants;
15839          }
15840        } catch (error) {}
15841      }
15842
15843      return [];
15844    }
15845
15846    function getSelectedOptionValues(container) {
15847      const values = [];
15848
15849      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
15850        const checkedInput = group.querySelector('input[type="radio"]:checked');
15851        const select = group.querySelector('select');
15852
15853        if (checkedInput) {
15854          values.push(checkedInput.value);
15855        } else if (select) {
15856          values.push(select.value);
15857        }
15858      });
15859
15860      return values;
15861    }
15862
15863    function getCurrentVariant(container, form, variants) {
15864      const idInput = form && form.querySelector('[name="id"]');
15865      const selectedId = idInput && idInput.value;
15866
15867      if (selectedId) {
15868        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
15869        if (byId) return byId;
15870      }
15871
15872      const selectedOptions = getSelectedOptionValues(container);
15873
15874      if (selectedOptions.length) {
15875        return variants.find((variant) => {
15876          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
15877          return selectedOptions.every((value, index) => String(options[index]) === String(value));
15878        });
15879      }
15880
15881      return null;
15882    }
15883
15884    function setButtonState(form, variant) {
15885      if (!form) return;
15886
15887      const idInput = form.querySelector('[name="id"]');
15888      const addButton = form.querySelector('[name="add"]');
15889      const buttonLabel =
15890        addButton &&
15891        (addButton.querySelector('.main-atc__label__text') ||
15892          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
15893      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
15894      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
15895
15896      if (!addButton || !idInput || !variant) return;
15897
15898      idInput.value = variant.id;
15899      idInput.disabled = false;
15900
15901      if (spinner) spinner.classList.add('hidden');
15902
15903      if (variant.available) {
15904        addButton.disabled = false;
15905        addButton.removeAttribute('disabled');
15906        addButton.removeAttribute('aria-disabled');
15907        addButton.classList.remove('loading');
15908
15909        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
15910        if (soldOutMessage) soldOutMessage.classList.add('hidden');
15911      } else {
15912        addButton.disabled = true;
15913        addButton.setAttribute('disabled', 'disabled');
15914        addButton.setAttribute('aria-disabled', 'true');
15915
15916        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
15917        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
15918      }
15919    }
15920
15921    function syncContainer(container) {
15922      if (!container) return;
15923
15924      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
15925      if (!form) return;
15926
15927      const variants = parseVariants(container);
15928      if (!variants.length) return;
15929
15930      const variant = getCurrentVariant(container, form, variants);
15931      if (!variant) return;
15932
15933      setButtonState(form, variant);
15934    }
15935
15936    document.addEventListener('change', (event) => {
15937      const quickAddModal = event.target.closest('quick-add-modal');
15938      const cardVariantSelects = event.target.closest('card-variant-selects');
15939
15940      if (quickAddModal) {
15941        setTimeout(() => syncContainer(quickAddModal), 80);
15942        setTimeout(() => syncContainer(quickAddModal), 250);
15943      }
15944
15945      if (cardVariantSelects) {
15946        const card = cardVariantSelects.closest('.card-wrapper');
15947        if (card) {
15948          setTimeout(() => syncContainer(card), 80);
15949          setTimeout(() => syncContainer(card), 250);
15950        }
15951      }
15952    });
15953
15954    const observer = new MutationObserver((mutations) => {
15955      mutations.forEach((mutation) => {
15956        mutation.addedNodes.forEach((node) => {
15957          if (!(node instanceof HTMLElement)) return;
15958
15959          if (node.matches && node.matches('quick-add-modal')) {
15960            setTimeout(() => syncContainer(node), 150);
15961          }
15962
15963          node.querySelectorAll &&
15964            node.querySelectorAll('quick-add-modal').forEach((modal) => {
15965              setTimeout(() => syncContainer(modal), 150);
15966            });
15967        });
15968      });
15969    });
15970
15971    observer.observe(document.documentElement, {
15972      childList: true,
15973      subtree: true
15974    });
15975
15976    document.addEventListener('DOMContentLoaded', () => {
15977      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
15978    });
15979  })();
15980</script>
15980
15981
15982
15983
15984
15985                        </li>
15986                      
15987                        <li>
15988                          
15989<div class="card-wrapper product-card-wrapper underline-links-hover">
15990    <div
15991      class="
15992        card
15993        card--card
15994         card--media
15995         color-background-1 gradient
15996        
15997        
15998        
15999         card--badge-sided
16000        
16001        
16002      "
16003      style="--ratio-percent: 100%;"
16004    >
16005      <div
16006        class="card__inner  ratio"
16007        style="--ratio-percent: 100%;"
16008      ><div class="card__media">
16009            <div class="media media--transparent media--hover-effect">
16010              
16011              <img
16012                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
16013                "
16014                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_GreenPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
16015                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16016                alt="🟢 Peak Performance Pad™ - Team Doctors"
16017                class="motion-reduce"
16018                
16019                  loading="lazy"
16020                
16021                width="1080"
16022                height="1080"
16023                id='quick-add-8358149750975-image'
16024              >
16025              
16026<img
16027                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529 1080w
16028                  "
16029                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Green_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124529&width=533"
16030                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16031                  alt=""
16032                  class="motion-reduce"
16033                  loading="lazy"
16034                  width="1080"
16035                  height="1080"
16036                ></div>
16037          </div><div class="card__content">
16038          <div class="card__information">
16039            <h3
16040              class="card__heading"
16041              
16042            >
16043              <a
16044                href="/products/biomimetic-peak-performance-pad"
16045                id="StandardCardNoMediaLink--8358149750975"
16046                class="full-unstyled-link"
16047                aria-labelledby="StandardCardNoMediaLink--8358149750975 NoMediaStandardBadge--8358149750975"
16048              >
16049                🟢 Peak Performance Pad™
16050              </a>
16051            </h3>
16052          </div>
16053          <div class="card__badge bottom left">
16054              
16055              </div>
16056        </div>
16057      </div>
16058      <div class="card__content">
16059        <div class="card__information">
16060          <h3
16061            class="card__heading h5"
16062            
16063              id="title--8358149750975"
16064            
16065          >
16066            <a
16067              href="/products/biomimetic-peak-performance-pad"
16068              id="CardLink--8358149750975"
16069              class="full-unstyled-link"
16070              aria-labelledby="CardLink--8358149750975 Badge--8358149750975"
16071            >
16072              🟢 Peak Performance Pad™
16073            </a>
16074          </h3>
16075          
16076          <div class="card-information"><span class="caption-large light"></span>
16077<div
16078  class="
16079    price "
16080>
16081  <div class="price__container"><div class="price__regular">
16082      <span class="visually-hidden visually-hidden--inline">Regular price</span>
16083      <span class="price-item price-item--regular">
16084        $54.95
16085      </span>
16086    </div>
16087    <div class="price__sale ">
16088      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
16089      <span class="price-item price-item--sale price-item--last">
16090        $54.95
16091      </span>
16092        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
16093        <span class="price__compare-price">
16094          <s class="price-item price-item--regular">
16095            
16096          </s>
16097        </span></div>
16098    <small class="unit-price caption hidden">
16099      <span class="visually-hidden">Unit price</span>
16100      <span class="price-item price-item--last">
16101        <span></span>
16102        <span aria-hidden="true">/</span>
16103        <span class="visually-hidden">&nbsp;per&nbsp;</span>
16104        <span>
16105        </span>
16106      </span>
16107    </small>
16108  </div></div>
16109
16110          </div>
16111        </div>
16112        
16113<div class="card__badge bottom left"></div>
16114      </div>
16115    </div>
16116  </div>
16116<script>
16117  (() => {
16118    if (window.cardProductQuickAddVariantFixLoaded) return;
16119    window.cardProductQuickAddVariantFixLoaded = true;
16120
16121    const ADD_TO_CART_TEXT = "Add to cart";
16122    const SOLD_OUT_TEXT = "Sold out";
16123
16124    function parseVariants(container) {
16125      if (!container) return [];
16126
16127      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
16128
16129      for (const script of scripts) {
16130        try {
16131          const data = JSON.parse(script.textContent.trim());
16132
16133          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
16134            return data;
16135          }
16136
16137          if (data && Array.isArray(data.variants)) {
16138            return data.variants;
16139          }
16140        } catch (error) {}
16141      }
16142
16143      return [];
16144    }
16145
16146    function getSelectedOptionValues(container) {
16147      const values = [];
16148
16149      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
16150        const checkedInput = group.querySelector('input[type="radio"]:checked');
16151        const select = group.querySelector('select');
16152
16153        if (checkedInput) {
16154          values.push(checkedInput.value);
16155        } else if (select) {
16156          values.push(select.value);
16157        }
16158      });
16159
16160      return values;
16161    }
16162
16163    function getCurrentVariant(container, form, variants) {
16164      const idInput = form && form.querySelector('[name="id"]');
16165      const selectedId = idInput && idInput.value;
16166
16167      if (selectedId) {
16168        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
16169        if (byId) return byId;
16170      }
16171
16172      const selectedOptions = getSelectedOptionValues(container);
16173
16174      if (selectedOptions.length) {
16175        return variants.find((variant) => {
16176          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
16177          return selectedOptions.every((value, index) => String(options[index]) === String(value));
16178        });
16179      }
16180
16181      return null;
16182    }
16183
16184    function setButtonState(form, variant) {
16185      if (!form) return;
16186
16187      const idInput = form.querySelector('[name="id"]');
16188      const addButton = form.querySelector('[name="add"]');
16189      const buttonLabel =
16190        addButton &&
16191        (addButton.querySelector('.main-atc__label__text') ||
16192          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
16193      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
16194      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
16195
16196      if (!addButton || !idInput || !variant) return;
16197
16198      idInput.value = variant.id;
16199      idInput.disabled = false;
16200
16201      if (spinner) spinner.classList.add('hidden');
16202
16203      if (variant.available) {
16204        addButton.disabled = false;
16205        addButton.removeAttribute('disabled');
16206        addButton.removeAttribute('aria-disabled');
16207        addButton.classList.remove('loading');
16208
16209        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
16210        if (soldOutMessage) soldOutMessage.classList.add('hidden');
16211      } else {
16212        addButton.disabled = true;
16213        addButton.setAttribute('disabled', 'disabled');
16214        addButton.setAttribute('aria-disabled', 'true');
16215
16216        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
16217        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
16218      }
16219    }
16220
16221    function syncContainer(container) {
16222      if (!container) return;
16223
16224      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
16225      if (!form) return;
16226
16227      const variants = parseVariants(container);
16228      if (!variants.length) return;
16229
16230      const variant = getCurrentVariant(container, form, variants);
16231      if (!variant) return;
16232
16233      setButtonState(form, variant);
16234    }
16235
16236    document.addEventListener('change', (event) => {
16237      const quickAddModal = event.target.closest('quick-add-modal');
16238      const cardVariantSelects = event.target.closest('card-variant-selects');
16239
16240      if (quickAddModal) {
16241        setTimeout(() => syncContainer(quickAddModal), 80);
16242        setTimeout(() => syncContainer(quickAddModal), 250);
16243      }
16244
16245      if (cardVariantSelects) {
16246        const card = cardVariantSelects.closest('.card-wrapper');
16247        if (card) {
16248          setTimeout(() => syncContainer(card), 80);
16249          setTimeout(() => syncContainer(card), 250);
16250        }
16251      }
16252    });
16253
16254    const observer = new MutationObserver((mutations) => {
16255      mutations.forEach((mutation) => {
16256        mutation.addedNodes.forEach((node) => {
16257          if (!(node instanceof HTMLElement)) return;
16258
16259          if (node.matches && node.matches('quick-add-modal')) {
16260            setTimeout(() => syncContainer(node), 150);
16261          }
16262
16263          node.querySelectorAll &&
16264            node.querySelectorAll('quick-add-modal').forEach((modal) => {
16265              setTimeout(() => syncContainer(modal), 150);
16266            });
16267        });
16268      });
16269    });
16270
16271    observer.observe(document.documentElement, {
16272      childList: true,
16273      subtree: true
16274    });
16275
16276    document.addEventListener('DOMContentLoaded', () => {
16277      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
16278    });
16279  })();
16280</script>
16280
16281
16282
16283
16284
16285                        </li>
16286                      
16287                        <li>
16288                          
16289<div class="card-wrapper product-card-wrapper underline-links-hover">
16290    <div
16291      class="
16292        card
16293        card--card
16294         card--media
16295         color-background-1 gradient
16296        
16297        
16298        
16299         card--badge-sided
16300        
16301        
16302      "
16303      style="--ratio-percent: 100%;"
16304    >
16305      <div
16306        class="card__inner  ratio"
16307        style="--ratio-percent: 100%;"
16308      ><div class="card__media">
16309            <div class="media media--transparent media--hover-effect">
16310              
16311              <img
16312                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451 1080w
16313                "
16314                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_YellowPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459451&width=533"
16315                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16316                alt="White"
16317                class="motion-reduce"
16318                
16319                  loading="lazy"
16320                
16321                width="1080"
16322                height="1080"
16323                id='quick-add-8358145917119-image'
16324              >
16325              
16326<img
16327                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477 1080w
16328                  "
16329                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124477&width=533"
16330                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16331                  alt=""
16332                  class="motion-reduce"
16333                  loading="lazy"
16334                  width="1080"
16335                  height="1080"
16336                ></div>
16337          </div><div class="card__content">
16338          <div class="card__information">
16339            <h3
16340              class="card__heading"
16341              
16342            >
16343              <a
16344                href="/products/biomimetic-core-recovery-pad"
16345                id="StandardCardNoMediaLink--8358145917119"
16346                class="full-unstyled-link"
16347                aria-labelledby="StandardCardNoMediaLink--8358145917119 NoMediaStandardBadge--8358145917119"
16348              >
16349                🟡 Core Recovery Pad™
16350              </a>
16351            </h3>
16352          </div>
16353          <div class="card__badge bottom left">
16354              
16355              </div>
16356        </div>
16357      </div>
16358      <div class="card__content">
16359        <div class="card__information">
16360          <h3
16361            class="card__heading h5"
16362            
16363              id="title--8358145917119"
16364            
16365          >
16366            <a
16367              href="/products/biomimetic-core-recovery-pad"
16368              id="CardLink--8358145917119"
16369              class="full-unstyled-link"
16370              aria-labelledby="CardLink--8358145917119 Badge--8358145917119"
16371            >
16372              🟡 Core Recovery Pad™
16373            </a>
16374          </h3>
16375          
16376          <div class="card-information"><span class="caption-large light"></span>
16377<div
16378  class="
16379    price "
16380>
16381  <div class="price__container"><div class="price__regular">
16382      <span class="visually-hidden visually-hidden--inline">Regular price</span>
16383      <span class="price-item price-item--regular">
16384        $54.95
16385      </span>
16386    </div>
16387    <div class="price__sale ">
16388      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
16389      <span class="price-item price-item--sale price-item--last">
16390        $54.95
16391      </span>
16392        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
16393        <span class="price__compare-price">
16394          <s class="price-item price-item--regular">
16395            
16396          </s>
16397        </span></div>
16398    <small class="unit-price caption hidden">
16399      <span class="visually-hidden">Unit price</span>
16400      <span class="price-item price-item--last">
16401        <span></span>
16402        <span aria-hidden="true">/</span>
16403        <span class="visually-hidden">&nbsp;per&nbsp;</span>
16404        <span>
16405        </span>
16406      </span>
16407    </small>
16408  </div></div>
16409
16410          </div>
16411        </div>
16412        
16413<div class="card__badge bottom left"></div>
16414      </div>
16415    </div>
16416  </div>
16416<script>
16417  (() => {
16418    if (window.cardProductQuickAddVariantFixLoaded) return;
16419    window.cardProductQuickAddVariantFixLoaded = true;
16420
16421    const ADD_TO_CART_TEXT = "Add to cart";
16422    const SOLD_OUT_TEXT = "Sold out";
16423
16424    function parseVariants(container) {
16425      if (!container) return [];
16426
16427      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
16428
16429      for (const script of scripts) {
16430        try {
16431          const data = JSON.parse(script.textContent.trim());
16432
16433          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
16434            return data;
16435          }
16436
16437          if (data && Array.isArray(data.variants)) {
16438            return data.variants;
16439          }
16440        } catch (error) {}
16441      }
16442
16443      return [];
16444    }
16445
16446    function getSelectedOptionValues(container) {
16447      const values = [];
16448
16449      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
16450        const checkedInput = group.querySelector('input[type="radio"]:checked');
16451        const select = group.querySelector('select');
16452
16453        if (checkedInput) {
16454          values.push(checkedInput.value);
16455        } else if (select) {
16456          values.push(select.value);
16457        }
16458      });
16459
16460      return values;
16461    }
16462
16463    function getCurrentVariant(container, form, variants) {
16464      const idInput = form && form.querySelector('[name="id"]');
16465      const selectedId = idInput && idInput.value;
16466
16467      if (selectedId) {
16468        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
16469        if (byId) return byId;
16470      }
16471
16472      const selectedOptions = getSelectedOptionValues(container);
16473
16474      if (selectedOptions.length) {
16475        return variants.find((variant) => {
16476          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
16477          return selectedOptions.every((value, index) => String(options[index]) === String(value));
16478        });
16479      }
16480
16481      return null;
16482    }
16483
16484    function setButtonState(form, variant) {
16485      if (!form) return;
16486
16487      const idInput = form.querySelector('[name="id"]');
16488      const addButton = form.querySelector('[name="add"]');
16489      const buttonLabel =
16490        addButton &&
16491        (addButton.querySelector('.main-atc__label__text') ||
16492          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
16493      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
16494      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
16495
16496      if (!addButton || !idInput || !variant) return;
16497
16498      idInput.value = variant.id;
16499      idInput.disabled = false;
16500
16501      if (spinner) spinner.classList.add('hidden');
16502
16503      if (variant.available) {
16504        addButton.disabled = false;
16505        addButton.removeAttribute('disabled');
16506        addButton.removeAttribute('aria-disabled');
16507        addButton.classList.remove('loading');
16508
16509        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
16510        if (soldOutMessage) soldOutMessage.classList.add('hidden');
16511      } else {
16512        addButton.disabled = true;
16513        addButton.setAttribute('disabled', 'disabled');
16514        addButton.setAttribute('aria-disabled', 'true');
16515
16516        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
16517        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
16518      }
16519    }
16520
16521    function syncContainer(container) {
16522      if (!container) return;
16523
16524      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
16525      if (!form) return;
16526
16527      const variants = parseVariants(container);
16528      if (!variants.length) return;
16529
16530      const variant = getCurrentVariant(container, form, variants);
16531      if (!variant) return;
16532
16533      setButtonState(form, variant);
16534    }
16535
16536    document.addEventListener('change', (event) => {
16537      const quickAddModal = event.target.closest('quick-add-modal');
16538      const cardVariantSelects = event.target.closest('card-variant-selects');
16539
16540      if (quickAddModal) {
16541        setTimeout(() => syncContainer(quickAddModal), 80);
16542        setTimeout(() => syncContainer(quickAddModal), 250);
16543      }
16544
16545      if (cardVariantSelects) {
16546        const card = cardVariantSelects.closest('.card-wrapper');
16547        if (card) {
16548          setTimeout(() => syncContainer(card), 80);
16549          setTimeout(() => syncContainer(card), 250);
16550        }
16551      }
16552    });
16553
16554    const observer = new MutationObserver((mutations) => {
16555      mutations.forEach((mutation) => {
16556        mutation.addedNodes.forEach((node) => {
16557          if (!(node instanceof HTMLElement)) return;
16558
16559          if (node.matches && node.matches('quick-add-modal')) {
16560            setTimeout(() => syncContainer(node), 150);
16561          }
16562
16563          node.querySelectorAll &&
16564            node.querySelectorAll('quick-add-modal').forEach((modal) => {
16565              setTimeout(() => syncContainer(modal), 150);
16566            });
16567        });
16568      });
16569    });
16570
16571    observer.observe(document.documentElement, {
16572      childList: true,
16573      subtree: true
16574    });
16575
16576    document.addEventListener('DOMContentLoaded', () => {
16577      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
16578    });
16579  })();
16580</script>
16580
16581
16582
16583
16584
16585                        </li>
16586                      
16587                        <li>
16588                          
16589<div class="card-wrapper product-card-wrapper underline-links-hover">
16590    <div
16591      class="
16592        card
16593        card--card
16594         card--media
16595         color-background-1 gradient
16596        
16597        
16598        
16599         card--badge-sided
16600        
16601        
16602      "
16603      style="--ratio-percent: 100%;"
16604    >
16605      <div
16606        class="card__inner  ratio"
16607        style="--ratio-percent: 100%;"
16608      ><div class="card__media">
16609            <div class="media media--transparent media--hover-effect">
16610              
16611              <img
16612                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006 1080w
16613                "
16614                src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321.jpg?v=1775459006&width=533"
16615                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16616                alt="🔴 Comfort Relief Pad™ - Team Doctors"
16617                class="motion-reduce"
16618                
16619                  loading="lazy"
16620                
16621                width="1080"
16622                height="1080"
16623                id='quick-add-8358127599807-image'
16624              >
16625              
16626<img
16627                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
16628                  "
16629                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
16630                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16631                  alt=""
16632                  class="motion-reduce"
16633                  loading="lazy"
16634                  width="1080"
16635                  height="1080"
16636                ></div>
16637          </div><div class="card__content">
16638          <div class="card__information">
16639            <h3
16640              class="card__heading"
16641              
16642            >
16643              <a
16644                href="/products/biomimetic-comfort-relief-pad"
16645                id="StandardCardNoMediaLink--8358127599807"
16646                class="full-unstyled-link"
16647                aria-labelledby="StandardCardNoMediaLink--8358127599807 NoMediaStandardBadge--8358127599807"
16648              >
16649                🔴 Comfort Relief Pad™
16650              </a>
16651            </h3>
16652          </div>
16653          <div class="card__badge bottom left">
16654              
16655              </div>
16656        </div>
16657      </div>
16658      <div class="card__content">
16659        <div class="card__information">
16660          <h3
16661            class="card__heading h5"
16662            
16663              id="title--8358127599807"
16664            
16665          >
16666            <a
16667              href="/products/biomimetic-comfort-relief-pad"
16668              id="CardLink--8358127599807"
16669              class="full-unstyled-link"
16670              aria-labelledby="CardLink--8358127599807 Badge--8358127599807"
16671            >
16672              🔴 Comfort Relief Pad™
16673            </a>
16674          </h3>
16675          
16676          <div class="card-information"><span class="caption-large light"></span>
16677<div
16678  class="
16679    price "
16680>
16681  <div class="price__container"><div class="price__regular">
16682      <span class="visually-hidden visually-hidden--inline">Regular price</span>
16683      <span class="price-item price-item--regular">
16684        $54.95
16685      </span>
16686    </div>
16687    <div class="price__sale ">
16688      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
16689      <span class="price-item price-item--sale price-item--last">
16690        $54.95
16691      </span>
16692        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
16693        <span class="price__compare-price">
16694          <s class="price-item price-item--regular">
16695            
16696          </s>
16697        </span></div>
16698    <small class="unit-price caption hidden">
16699      <span class="visually-hidden">Unit price</span>
16700      <span class="price-item price-item--last">
16701        <span></span>
16702        <span aria-hidden="true">/</span>
16703        <span class="visually-hidden">&nbsp;per&nbsp;</span>
16704        <span>
16705        </span>
16706      </span>
16707    </small>
16708  </div></div>
16709
16710          </div>
16711        </div>
16712        
16713<div class="card__badge bottom left"></div>
16714      </div>
16715    </div>
16716  </div>
16716<script>
16717  (() => {
16718    if (window.cardProductQuickAddVariantFixLoaded) return;
16719    window.cardProductQuickAddVariantFixLoaded = true;
16720
16721    const ADD_TO_CART_TEXT = "Add to cart";
16722    const SOLD_OUT_TEXT = "Sold out";
16723
16724    function parseVariants(container) {
16725      if (!container) return [];
16726
16727      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
16728
16729      for (const script of scripts) {
16730        try {
16731          const data = JSON.parse(script.textContent.trim());
16732
16733          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
16734            return data;
16735          }
16736
16737          if (data && Array.isArray(data.variants)) {
16738            return data.variants;
16739          }
16740        } catch (error) {}
16741      }
16742
16743      return [];
16744    }
16745
16746    function getSelectedOptionValues(container) {
16747      const values = [];
16748
16749      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
16750        const checkedInput = group.querySelector('input[type="radio"]:checked');
16751        const select = group.querySelector('select');
16752
16753        if (checkedInput) {
16754          values.push(checkedInput.value);
16755        } else if (select) {
16756          values.push(select.value);
16757        }
16758      });
16759
16760      return values;
16761    }
16762
16763    function getCurrentVariant(container, form, variants) {
16764      const idInput = form && form.querySelector('[name="id"]');
16765      const selectedId = idInput && idInput.value;
16766
16767      if (selectedId) {
16768        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
16769        if (byId) return byId;
16770      }
16771
16772      const selectedOptions = getSelectedOptionValues(container);
16773
16774      if (selectedOptions.length) {
16775        return variants.find((variant) => {
16776          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
16777          return selectedOptions.every((value, index) => String(options[index]) === String(value));
16778        });
16779      }
16780
16781      return null;
16782    }
16783
16784    function setButtonState(form, variant) {
16785      if (!form) return;
16786
16787      const idInput = form.querySelector('[name="id"]');
16788      const addButton = form.querySelector('[name="add"]');
16789      const buttonLabel =
16790        addButton &&
16791        (addButton.querySelector('.main-atc__label__text') ||
16792          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
16793      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
16794      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
16795
16796      if (!addButton || !idInput || !variant) return;
16797
16798      idInput.value = variant.id;
16799      idInput.disabled = false;
16800
16801      if (spinner) spinner.classList.add('hidden');
16802
16803      if (variant.available) {
16804        addButton.disabled = false;
16805        addButton.removeAttribute('disabled');
16806        addButton.removeAttribute('aria-disabled');
16807        addButton.classList.remove('loading');
16808
16809        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
16810        if (soldOutMessage) soldOutMessage.classList.add('hidden');
16811      } else {
16812        addButton.disabled = true;
16813        addButton.setAttribute('disabled', 'disabled');
16814        addButton.setAttribute('aria-disabled', 'true');
16815
16816        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
16817        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
16818      }
16819    }
16820
16821    function syncContainer(container) {
16822      if (!container) return;
16823
16824      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
16825      if (!form) return;
16826
16827      const variants = parseVariants(container);
16828      if (!variants.length) return;
16829
16830      const variant = getCurrentVariant(container, form, variants);
16831      if (!variant) return;
16832
16833      setButtonState(form, variant);
16834    }
16835
16836    document.addEventListener('change', (event) => {
16837      const quickAddModal = event.target.closest('quick-add-modal');
16838      const cardVariantSelects = event.target.closest('card-variant-selects');
16839
16840      if (quickAddModal) {
16841        setTimeout(() => syncContainer(quickAddModal), 80);
16842        setTimeout(() => syncContainer(quickAddModal), 250);
16843      }
16844
16845      if (cardVariantSelects) {
16846        const card = cardVariantSelects.closest('.card-wrapper');
16847        if (card) {
16848          setTimeout(() => syncContainer(card), 80);
16849          setTimeout(() => syncContainer(card), 250);
16850        }
16851      }
16852    });
16853
16854    const observer = new MutationObserver((mutations) => {
16855      mutations.forEach((mutation) => {
16856        mutation.addedNodes.forEach((node) => {
16857          if (!(node instanceof HTMLElement)) return;
16858
16859          if (node.matches && node.matches('quick-add-modal')) {
16860            setTimeout(() => syncContainer(node), 150);
16861          }
16862
16863          node.querySelectorAll &&
16864            node.querySelectorAll('quick-add-modal').forEach((modal) => {
16865              setTimeout(() => syncContainer(modal), 150);
16866            });
16867        });
16868      });
16869    });
16870
16871    observer.observe(document.documentElement, {
16872      childList: true,
16873      subtree: true
16874    });
16875
16876    document.addEventListener('DOMContentLoaded', () => {
16877      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
16878    });
16879  })();
16880</script>
16880
16881
16882
16883
16884
16885                        </li>
16886                      
16887                    
16888</ul>
16889                </div>
16890              </li><li
16891                id="ProductsMegaMenu-Item-shop-3"
16892                class="products-mega-menu__item"
16893              >
16894                <a
16895                  id="ProductsMegaMenu-Link-shop-3"
16896                  href="/collections/vibeassage-bundle"
16897                  class="header__menu-item list-menu__item link link--text focus-inset caption-large"
16898                  
16899                >
16900                  
16901                  <span>Bundles</span>
16902                  <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
16903  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
16904</svg>
16905
16906                </a>
16907
16908                <div class="products-mega-menu__content">
16909                  <ul class="products-mega-menu__cards">
16910                    
16911                      
16912                      
16913                      
16914                        <li>
16915                          
16916<div class="card-wrapper product-card-wrapper underline-links-hover">
16917    <div
16918      class="
16919        card
16920        card--card
16921         card--media
16922         color-background-1 gradient
16923        
16924        
16925        
16926         card--badge-sided
16927        
16928        
16929      "
16930      style="--ratio-percent: 100%;"
16931    >
16932      <div
16933        class="card__inner  ratio"
16934        style="--ratio-percent: 100%;"
16935      ><div class="card__media">
16936            <div class="media media--transparent media--hover-effect">
16937              
16938              <img
16939                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523 1254w
16940                "
16941                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Jun_9_2026_11_25_11_AM.png?v=1780975523&width=533"
16942                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16943                alt="Complete Recovery Solution Bundle - Team Doctors"
16944                class="motion-reduce"
16945                
16946                  loading="lazy"
16947                
16948                width="1254"
16949                height="1254"
16950                id='quick-add-8455539065023-image'
16951              >
16952              
16953<img
16954                  srcset="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014 w
16955                  "
16956                  src="//teamdoctors.com/cdn/shop/files/preview_images/b45585c208f5471097460280d2b7e84e.thumbnail.0000000000.jpg?v=1780910014&width=533"
16957                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
16958                  alt=""
16959                  class="motion-reduce"
16960                  loading="lazy"
16961                  width=""
16962                  height=""
16963                ></div>
16964          </div><div class="card__content">
16965          <div class="card__information">
16966            <h3
16967              class="card__heading"
16968              
16969            >
16970              <a
16971                href="/products/complete-recovery-solution-bundle"
16972                id="StandardCardNoMediaLink--8455539065023"
16973                class="full-unstyled-link"
16974                aria-labelledby="StandardCardNoMediaLink--8455539065023 NoMediaStandardBadge--8455539065023"
16975              >
16976                Complete Biomimetic Recovery System™
16977              </a>
16978            </h3>
16979          </div>
16980          <div class="card__badge bottom left">
16981              
16982              
16983                <span
16984                  id="NoMediaStandardBadge--8455539065023"
16985                  class="badge badge--bottom-left color-accent-2"
16986                >
16987                  <svg
16988  aria-hidden="true"
16989  focusable="false"
16990  class="icon icon-discount color-foreground-text"
16991  viewBox="0 0 12 12"
16992>
16993  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
16994</svg>
16995<span class='nowrap'>SAVE 10%</span>
16996                </span></div>
16997        </div>
16998      </div>
16999      <div class="card__content">
17000        <div class="card__information">
17001          <h3
17002            class="card__heading h5"
17003            
17004              id="title--8455539065023"
17005            
17006          >
17007            <a
17008              href="/products/complete-recovery-solution-bundle"
17009              id="CardLink--8455539065023"
17010              class="full-unstyled-link"
17011              aria-labelledby="CardLink--8455539065023 Badge--8455539065023"
17012            >
17013              Complete Biomimetic Recovery System™
17014            </a>
17015          </h3>
17016          
17017            <div class="product-subtitle">
17018              The Vibeassage Pro® + The Vibeassage Sport®
17019            </div>
17020          
17021          <div class="card-information"><span class="caption-large light"></span>
17022<div
17023  class="
17024    price  price--on-sale "
17025>
17026  <div class="price__container"><div class="price__regular">
17027      <span class="visually-hidden visually-hidden--inline">Regular price</span>
17028      <span class="price-item price-item--regular">
17029        $1,807.00
17030      </span>
17031    </div>
17032    <div class="price__sale ">
17033      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
17034      <span class="price-item price-item--sale price-item--last">
17035        $1,807.00
17036      </span>
17037        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
17038        <span class="price__compare-price">
17039          <s class="price-item price-item--regular">
17040            $2,008.00
17041          </s>
17042        </span></div>
17043    <small class="unit-price caption hidden">
17044      <span class="visually-hidden">Unit price</span>
17045      <span class="price-item price-item--last">
17046        <span></span>
17047        <span aria-hidden="true">/</span>
17048        <span class="visually-hidden">&nbsp;per&nbsp;</span>
17049        <span>
17050        </span>
17051      </span>
17052    </small>
17053  </div></div>
17054
17055          </div>
17056        </div>
17057        
17058<div class="card__badge bottom left"><span
17059              id="Badge--8455539065023"
17060              class="badge badge--bottom-left color-accent-2"
17061            >
17062              10%
17063            </span></div>
17064      </div>
17065    </div>
17066  </div>
17066<script>
17067  (() => {
17068    if (window.cardProductQuickAddVariantFixLoaded) return;
17069    window.cardProductQuickAddVariantFixLoaded = true;
17070
17071    const ADD_TO_CART_TEXT = "Add to cart";
17072    const SOLD_OUT_TEXT = "Sold out";
17073
17074    function parseVariants(container) {
17075      if (!container) return [];
17076
17077      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
17078
17079      for (const script of scripts) {
17080        try {
17081          const data = JSON.parse(script.textContent.trim());
17082
17083          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
17084            return data;
17085          }
17086
17087          if (data && Array.isArray(data.variants)) {
17088            return data.variants;
17089          }
17090        } catch (error) {}
17091      }
17092
17093      return [];
17094    }
17095
17096    function getSelectedOptionValues(container) {
17097      const values = [];
17098
17099      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
17100        const checkedInput = group.querySelector('input[type="radio"]:checked');
17101        const select = group.querySelector('select');
17102
17103        if (checkedInput) {
17104          values.push(checkedInput.value);
17105        } else if (select) {
17106          values.push(select.value);
17107        }
17108      });
17109
17110      return values;
17111    }
17112
17113    function getCurrentVariant(container, form, variants) {
17114      const idInput = form && form.querySelector('[name="id"]');
17115      const selectedId = idInput && idInput.value;
17116
17117      if (selectedId) {
17118        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
17119        if (byId) return byId;
17120      }
17121
17122      const selectedOptions = getSelectedOptionValues(container);
17123
17124      if (selectedOptions.length) {
17125        return variants.find((variant) => {
17126          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
17127          return selectedOptions.every((value, index) => String(options[index]) === String(value));
17128        });
17129      }
17130
17131      return null;
17132    }
17133
17134    function setButtonState(form, variant) {
17135      if (!form) return;
17136
17137      const idInput = form.querySelector('[name="id"]');
17138      const addButton = form.querySelector('[name="add"]');
17139      const buttonLabel =
17140        addButton &&
17141        (addButton.querySelector('.main-atc__label__text') ||
17142          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
17143      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
17144      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
17145
17146      if (!addButton || !idInput || !variant) return;
17147
17148      idInput.value = variant.id;
17149      idInput.disabled = false;
17150
17151      if (spinner) spinner.classList.add('hidden');
17152
17153      if (variant.available) {
17154        addButton.disabled = false;
17155        addButton.removeAttribute('disabled');
17156        addButton.removeAttribute('aria-disabled');
17157        addButton.classList.remove('loading');
17158
17159        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
17160        if (soldOutMessage) soldOutMessage.classList.add('hidden');
17161      } else {
17162        addButton.disabled = true;
17163        addButton.setAttribute('disabled', 'disabled');
17164        addButton.setAttribute('aria-disabled', 'true');
17165
17166        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
17167        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
17168      }
17169    }
17170
17171    function syncContainer(container) {
17172      if (!container) return;
17173
17174      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
17175      if (!form) return;
17176
17177      const variants = parseVariants(container);
17178      if (!variants.length) return;
17179
17180      const variant = getCurrentVariant(container, form, variants);
17181      if (!variant) return;
17182
17183      setButtonState(form, variant);
17184    }
17185
17186    document.addEventListener('change', (event) => {
17187      const quickAddModal = event.target.closest('quick-add-modal');
17188      const cardVariantSelects = event.target.closest('card-variant-selects');
17189
17190      if (quickAddModal) {
17191        setTimeout(() => syncContainer(quickAddModal), 80);
17192        setTimeout(() => syncContainer(quickAddModal), 250);
17193      }
17194
17195      if (cardVariantSelects) {
17196        const card = cardVariantSelects.closest('.card-wrapper');
17197        if (card) {
17198          setTimeout(() => syncContainer(card), 80);
17199          setTimeout(() => syncContainer(card), 250);
17200        }
17201      }
17202    });
17203
17204    const observer = new MutationObserver((mutations) => {
17205      mutations.forEach((mutation) => {
17206        mutation.addedNodes.forEach((node) => {
17207          if (!(node instanceof HTMLElement)) return;
17208
17209          if (node.matches && node.matches('quick-add-modal')) {
17210            setTimeout(() => syncContainer(node), 150);
17211          }
17212
17213          node.querySelectorAll &&
17214            node.querySelectorAll('quick-add-modal').forEach((modal) => {
17215              setTimeout(() => syncContainer(modal), 150);
17216            });
17217        });
17218      });
17219    });
17220
17221    observer.observe(document.documentElement, {
17222      childList: true,
17223      subtree: true
17224    });
17225
17226    document.addEventListener('DOMContentLoaded', () => {
17227      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
17228    });
17229  })();
17230</script>
17230
17231
17232
17233
17234
17235                        </li>
17236                      
17237                        <li>
17238                          
17239<div class="card-wrapper product-card-wrapper underline-links-hover">
17240    <div
17241      class="
17242        card
17243        card--card
17244         card--media
17245         color-background-1 gradient
17246        
17247        
17248        
17249         card--badge-sided
17250        
17251        
17252      "
17253      style="--ratio-percent: 100%;"
17254    >
17255      <div
17256        class="card__inner  ratio"
17257        style="--ratio-percent: 100%;"
17258      ><div class="card__media">
17259            <div class="media media--transparent media--hover-effect">
17260              
17261              <img
17262                srcset="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914 w
17263                "
17264                src="//teamdoctors.com/cdn/shop/files/preview_images/f70ac36becac4c468aa54f1b22548538.thumbnail.0000000000.jpg?v=1775457914&width=533"
17265                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17266                alt="The Vibeassage Pro® with the full 3-pad Biomimetic System™"
17267                class="motion-reduce"
17268                
17269                  loading="lazy"
17270                
17271                width=""
17272                height=""
17273                id='quick-add-7253705130175-image'
17274              >
17275              
17276<img
17277                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339 810w
17278                  "
17279                  src="//teamdoctors.com/cdn/shop/files/Vibassage_ApplicatorPad_RedPad_Image_Shopify_V1_Draft_20260321_8735cf09-28eb-4b55-b617-a42227f0002d.jpg?v=1776132339&width=533"
17280                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17281                  alt=""
17282                  class="motion-reduce"
17283                  loading="lazy"
17284                  width="810"
17285                  height="605"
17286                ></div>
17287          </div><div class="card__content">
17288          <div class="card__information">
17289            <h3
17290              class="card__heading"
17291              
17292            >
17293              <a
17294                href="/products/vibeassage-pro"
17295                id="StandardCardNoMediaLink--7253705130175"
17296                class="full-unstyled-link"
17297                aria-labelledby="StandardCardNoMediaLink--7253705130175 NoMediaStandardBadge--7253705130175"
17298              >
17299                The Vibeassage Pro® with the full 3-pad Biomimetic System™
17300              </a>
17301            </h3>
17302          </div>
17303          <div class="card__badge bottom left">
17304              
17305              
17306                <span
17307                  id="NoMediaStandardBadge--7253705130175"
17308                  class="badge badge--bottom-left color-accent-2"
17309                >
17310                  <svg
17311  aria-hidden="true"
17312  focusable="false"
17313  class="icon icon-discount color-foreground-text"
17314  viewBox="0 0 12 12"
17315>
17316  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
17317</svg>
17318<span class='nowrap'>SAVE 9%</span>
17319                </span></div>
17320        </div>
17321      </div>
17322      <div class="card__content">
17323        <div class="card__information">
17324          <h3
17325            class="card__heading h5"
17326            
17327              id="title--7253705130175"
17328            
17329          >
17330            <a
17331              href="/products/vibeassage-pro"
17332              id="CardLink--7253705130175"
17333              class="full-unstyled-link"
17334              aria-labelledby="CardLink--7253705130175 Badge--7253705130175"
17335            >
17336              The Vibeassage Pro® with the full 3-pad Biomimetic System™
17337            </a>
17338          </h3>
17339          
17340          <div class="card-information"><span class="caption-large light"></span>
17341<div
17342  class="
17343    price  price--on-sale "
17344>
17345  <div class="price__container"><div class="price__regular">
17346      <span class="visually-hidden visually-hidden--inline">Regular price</span>
17347      <span class="price-item price-item--regular">
17348        $1,579.00
17349      </span>
17350    </div>
17351    <div class="price__sale ">
17352      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
17353      <span class="price-item price-item--sale price-item--last">
17354        $1,579.00
17355      </span>
17356        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
17357        <span class="price__compare-price">
17358          <s class="price-item price-item--regular">
17359            $1,749.00
17360          </s>
17361        </span></div>
17362    <small class="unit-price caption hidden">
17363      <span class="visually-hidden">Unit price</span>
17364      <span class="price-item price-item--last">
17365        <span></span>
17366        <span aria-hidden="true">/</span>
17367        <span class="visually-hidden">&nbsp;per&nbsp;</span>
17368        <span>
17369        </span>
17370      </span>
17371    </small>
17372  </div></div>
17373
17374          </div>
17375        </div>
17376        
17377<div class="card__badge bottom left"><span
17378              id="Badge--7253705130175"
17379              class="badge badge--bottom-left color-accent-2"
17380            >
17381              9%
17382            </span></div>
17383      </div>
17384    </div>
17385  </div>
17385<script>
17386  (() => {
17387    if (window.cardProductQuickAddVariantFixLoaded) return;
17388    window.cardProductQuickAddVariantFixLoaded = true;
17389
17390    const ADD_TO_CART_TEXT = "Add to cart";
17391    const SOLD_OUT_TEXT = "Sold out";
17392
17393    function parseVariants(container) {
17394      if (!container) return [];
17395
17396      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
17397
17398      for (const script of scripts) {
17399        try {
17400          const data = JSON.parse(script.textContent.trim());
17401
17402          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
17403            return data;
17404          }
17405
17406          if (data && Array.isArray(data.variants)) {
17407            return data.variants;
17408          }
17409        } catch (error) {}
17410      }
17411
17412      return [];
17413    }
17414
17415    function getSelectedOptionValues(container) {
17416      const values = [];
17417
17418      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
17419        const checkedInput = group.querySelector('input[type="radio"]:checked');
17420        const select = group.querySelector('select');
17421
17422        if (checkedInput) {
17423          values.push(checkedInput.value);
17424        } else if (select) {
17425          values.push(select.value);
17426        }
17427      });
17428
17429      return values;
17430    }
17431
17432    function getCurrentVariant(container, form, variants) {
17433      const idInput = form && form.querySelector('[name="id"]');
17434      const selectedId = idInput && idInput.value;
17435
17436      if (selectedId) {
17437        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
17438        if (byId) return byId;
17439      }
17440
17441      const selectedOptions = getSelectedOptionValues(container);
17442
17443      if (selectedOptions.length) {
17444        return variants.find((variant) => {
17445          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
17446          return selectedOptions.every((value, index) => String(options[index]) === String(value));
17447        });
17448      }
17449
17450      return null;
17451    }
17452
17453    function setButtonState(form, variant) {
17454      if (!form) return;
17455
17456      const idInput = form.querySelector('[name="id"]');
17457      const addButton = form.querySelector('[name="add"]');
17458      const buttonLabel =
17459        addButton &&
17460        (addButton.querySelector('.main-atc__label__text') ||
17461          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
17462      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
17463      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
17464
17465      if (!addButton || !idInput || !variant) return;
17466
17467      idInput.value = variant.id;
17468      idInput.disabled = false;
17469
17470      if (spinner) spinner.classList.add('hidden');
17471
17472      if (variant.available) {
17473        addButton.disabled = false;
17474        addButton.removeAttribute('disabled');
17475        addButton.removeAttribute('aria-disabled');
17476        addButton.classList.remove('loading');
17477
17478        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
17479        if (soldOutMessage) soldOutMessage.classList.add('hidden');
17480      } else {
17481        addButton.disabled = true;
17482        addButton.setAttribute('disabled', 'disabled');
17483        addButton.setAttribute('aria-disabled', 'true');
17484
17485        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
17486        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
17487      }
17488    }
17489
17490    function syncContainer(container) {
17491      if (!container) return;
17492
17493      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
17494      if (!form) return;
17495
17496      const variants = parseVariants(container);
17497      if (!variants.length) return;
17498
17499      const variant = getCurrentVariant(container, form, variants);
17500      if (!variant) return;
17501
17502      setButtonState(form, variant);
17503    }
17504
17505    document.addEventListener('change', (event) => {
17506      const quickAddModal = event.target.closest('quick-add-modal');
17507      const cardVariantSelects = event.target.closest('card-variant-selects');
17508
17509      if (quickAddModal) {
17510        setTimeout(() => syncContainer(quickAddModal), 80);
17511        setTimeout(() => syncContainer(quickAddModal), 250);
17512      }
17513
17514      if (cardVariantSelects) {
17515        const card = cardVariantSelects.closest('.card-wrapper');
17516        if (card) {
17517          setTimeout(() => syncContainer(card), 80);
17518          setTimeout(() => syncContainer(card), 250);
17519        }
17520      }
17521    });
17522
17523    const observer = new MutationObserver((mutations) => {
17524      mutations.forEach((mutation) => {
17525        mutation.addedNodes.forEach((node) => {
17526          if (!(node instanceof HTMLElement)) return;
17527
17528          if (node.matches && node.matches('quick-add-modal')) {
17529            setTimeout(() => syncContainer(node), 150);
17530          }
17531
17532          node.querySelectorAll &&
17533            node.querySelectorAll('quick-add-modal').forEach((modal) => {
17534              setTimeout(() => syncContainer(modal), 150);
17535            });
17536        });
17537      });
17538    });
17539
17540    observer.observe(document.documentElement, {
17541      childList: true,
17542      subtree: true
17543    });
17544
17545    document.addEventListener('DOMContentLoaded', () => {
17546      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
17547    });
17548  })();
17549</script>
17549
17550
17551
17552
17553
17554                        </li>
17555                      
17556                        <li>
17557                          
17558<div class="card-wrapper product-card-wrapper underline-links-hover">
17559    <div
17560      class="
17561        card
17562        card--card
17563         card--media
17564         color-background-1 gradient
17565        
17566        
17567        
17568         card--badge-sided
17569        
17570        
17571      "
17572      style="--ratio-percent: 100%;"
17573    >
17574      <div
17575        class="card__inner  ratio"
17576        style="--ratio-percent: 100%;"
17577      ><div class="card__media">
17578            <div class="media media--transparent media--hover-effect">
17579              
17580              <img
17581                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068 1254w
17582                "
17583                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_18_08_PM.png?v=1777520068&width=533"
17584                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17585                alt="White"
17586                class="motion-reduce"
17587                
17588                  loading="lazy"
17589                
17590                width="1254"
17591                height="1254"
17592                id='quick-add-8342973219007-image'
17593              >
17594              
17595<img
17596                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847 1080w
17597                  "
17598                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Applicator_RedPad_Image_Shopify_V1_Draft_20260321_5a01574d-94a9-4ac8-b20b-9febc559d787.jpg?v=1775888847&width=533"
17599                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17600                  alt=""
17601                  class="motion-reduce"
17602                  loading="lazy"
17603                  width="1080"
17604                  height="1080"
17605                ></div>
17606          </div><div class="card__content">
17607          <div class="card__information">
17608            <h3
17609              class="card__heading"
17610              
17611            >
17612              <a
17613                href="/products/vibeassage-complete-system"
17614                id="StandardCardNoMediaLink--8342973219007"
17615                class="full-unstyled-link"
17616                aria-labelledby="StandardCardNoMediaLink--8342973219007 NoMediaStandardBadge--8342973219007"
17617              >
17618                ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
17619              </a>
17620            </h3>
17621          </div>
17622          <div class="card__badge bottom left">
17623              
17624              </div>
17625        </div>
17626      </div>
17627      <div class="card__content">
17628        <div class="card__information">
17629          <h3
17630            class="card__heading h5"
17631            
17632              id="title--8342973219007"
17633            
17634          >
17635            <a
17636              href="/products/vibeassage-complete-system"
17637              id="CardLink--8342973219007"
17638              class="full-unstyled-link"
17639              aria-labelledby="CardLink--8342973219007 Badge--8342973219007"
17640            >
17641              ⭐ Vibeassage™ Sport with 3 Biomimetic Pads - The Complete System
17642            </a>
17643          </h3>
17644          
17645          <div class="card-information"><span class="caption-large light"></span>
17646<div
17647  class="
17648    price "
17649>
17650  <div class="price__container"><div class="price__regular">
17651      <span class="visually-hidden visually-hidden--inline">Regular price</span>
17652      <span class="price-item price-item--regular">
17653        From $429.00
17654      </span>
17655    </div>
17656    <div class="price__sale ">
17657      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
17658      <span class="price-item price-item--sale price-item--last">
17659        From $429.00
17660      </span>
17661        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
17662        <span class="price__compare-price">
17663          <s class="price-item price-item--regular">
17664            
17665          </s>
17666        </span></div>
17667    <small class="unit-price caption hidden">
17668      <span class="visually-hidden">Unit price</span>
17669      <span class="price-item price-item--last">
17670        <span></span>
17671        <span aria-hidden="true">/</span>
17672        <span class="visually-hidden">&nbsp;per&nbsp;</span>
17673        <span>
17674        </span>
17675      </span>
17676    </small>
17677  </div></div>
17678
17679          </div>
17680        </div>
17681        
17682<div class="card__badge bottom left"></div>
17683      </div>
17684    </div>
17685  </div>
17685<script>
17686  (() => {
17687    if (window.cardProductQuickAddVariantFixLoaded) return;
17688    window.cardProductQuickAddVariantFixLoaded = true;
17689
17690    const ADD_TO_CART_TEXT = "Add to cart";
17691    const SOLD_OUT_TEXT = "Sold out";
17692
17693    function parseVariants(container) {
17694      if (!container) return [];
17695
17696      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
17697
17698      for (const script of scripts) {
17699        try {
17700          const data = JSON.parse(script.textContent.trim());
17701
17702          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
17703            return data;
17704          }
17705
17706          if (data && Array.isArray(data.variants)) {
17707            return data.variants;
17708          }
17709        } catch (error) {}
17710      }
17711
17712      return [];
17713    }
17714
17715    function getSelectedOptionValues(container) {
17716      const values = [];
17717
17718      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
17719        const checkedInput = group.querySelector('input[type="radio"]:checked');
17720        const select = group.querySelector('select');
17721
17722        if (checkedInput) {
17723          values.push(checkedInput.value);
17724        } else if (select) {
17725          values.push(select.value);
17726        }
17727      });
17728
17729      return values;
17730    }
17731
17732    function getCurrentVariant(container, form, variants) {
17733      const idInput = form && form.querySelector('[name="id"]');
17734      const selectedId = idInput && idInput.value;
17735
17736      if (selectedId) {
17737        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
17738        if (byId) return byId;
17739      }
17740
17741      const selectedOptions = getSelectedOptionValues(container);
17742
17743      if (selectedOptions.length) {
17744        return variants.find((variant) => {
17745          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
17746          return selectedOptions.every((value, index) => String(options[index]) === String(value));
17747        });
17748      }
17749
17750      return null;
17751    }
17752
17753    function setButtonState(form, variant) {
17754      if (!form) return;
17755
17756      const idInput = form.querySelector('[name="id"]');
17757      const addButton = form.querySelector('[name="add"]');
17758      const buttonLabel =
17759        addButton &&
17760        (addButton.querySelector('.main-atc__label__text') ||
17761          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
17762      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
17763      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
17764
17765      if (!addButton || !idInput || !variant) return;
17766
17767      idInput.value = variant.id;
17768      idInput.disabled = false;
17769
17770      if (spinner) spinner.classList.add('hidden');
17771
17772      if (variant.available) {
17773        addButton.disabled = false;
17774        addButton.removeAttribute('disabled');
17775        addButton.removeAttribute('aria-disabled');
17776        addButton.classList.remove('loading');
17777
17778        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
17779        if (soldOutMessage) soldOutMessage.classList.add('hidden');
17780      } else {
17781        addButton.disabled = true;
17782        addButton.setAttribute('disabled', 'disabled');
17783        addButton.setAttribute('aria-disabled', 'true');
17784
17785        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
17786        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
17787      }
17788    }
17789
17790    function syncContainer(container) {
17791      if (!container) return;
17792
17793      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
17794      if (!form) return;
17795
17796      const variants = parseVariants(container);
17797      if (!variants.length) return;
17798
17799      const variant = getCurrentVariant(container, form, variants);
17800      if (!variant) return;
17801
17802      setButtonState(form, variant);
17803    }
17804
17805    document.addEventListener('change', (event) => {
17806      const quickAddModal = event.target.closest('quick-add-modal');
17807      const cardVariantSelects = event.target.closest('card-variant-selects');
17808
17809      if (quickAddModal) {
17810        setTimeout(() => syncContainer(quickAddModal), 80);
17811        setTimeout(() => syncContainer(quickAddModal), 250);
17812      }
17813
17814      if (cardVariantSelects) {
17815        const card = cardVariantSelects.closest('.card-wrapper');
17816        if (card) {
17817          setTimeout(() => syncContainer(card), 80);
17818          setTimeout(() => syncContainer(card), 250);
17819        }
17820      }
17821    });
17822
17823    const observer = new MutationObserver((mutations) => {
17824      mutations.forEach((mutation) => {
17825        mutation.addedNodes.forEach((node) => {
17826          if (!(node instanceof HTMLElement)) return;
17827
17828          if (node.matches && node.matches('quick-add-modal')) {
17829            setTimeout(() => syncContainer(node), 150);
17830          }
17831
17832          node.querySelectorAll &&
17833            node.querySelectorAll('quick-add-modal').forEach((modal) => {
17834              setTimeout(() => syncContainer(modal), 150);
17835            });
17836        });
17837      });
17838    });
17839
17840    observer.observe(document.documentElement, {
17841      childList: true,
17842      subtree: true
17843    });
17844
17845    document.addEventListener('DOMContentLoaded', () => {
17846      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
17847    });
17848  })();
17849</script>
17849
17850
17851
17852
17853
17854                        </li>
17855                      
17856                        <li>
17857                          
17858<div class="card-wrapper product-card-wrapper underline-links-hover">
17859    <div
17860      class="
17861        card
17862        card--card
17863         card--media
17864         color-background-1 gradient
17865        
17866        
17867        
17868         card--badge-sided
17869        
17870        
17871      "
17872      style="--ratio-percent: 100%;"
17873    >
17874      <div
17875        class="card__inner  ratio"
17876        style="--ratio-percent: 100%;"
17877      ><div class="card__media">
17878            <div class="media media--transparent media--hover-effect">
17879              
17880              <img
17881                srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068 1254w
17882                "
17883                src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_21_24_PM.png?v=1777520068&width=533"
17884                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17885                alt="White"
17886                class="motion-reduce"
17887                
17888                  loading="lazy"
17889                
17890                width="1254"
17891                height="1254"
17892                id='quick-add-8342972334271-image'
17893              >
17894              
17895<img
17896                  srcset="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=165 165w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=360 360w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533 533w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=720 720w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=940 940w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=1066 1066w,//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068 1254w
17897                  "
17898                  src="//teamdoctors.com/cdn/shop/files/ChatGPT_Image_Apr_23_2026_01_30_07_PM.png?v=1777520068&width=533"
17899                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
17900                  alt=""
17901                  class="motion-reduce"
17902                  loading="lazy"
17903                  width="1254"
17904                  height="1254"
17905                ></div>
17906          </div><div class="card__content">
17907          <div class="card__information">
17908            <h3
17909              class="card__heading"
17910              
17911            >
17912              <a
17913                href="/products/vibeassage-relief-bundle"
17914                id="StandardCardNoMediaLink--8342972334271"
17915                class="full-unstyled-link"
17916                aria-labelledby="StandardCardNoMediaLink--8342972334271 NoMediaStandardBadge--8342972334271"
17917              >
17918                Vibeassage® Relief Bundle
17919              </a>
17920            </h3>
17921          </div>
17922          <div class="card__badge bottom left">
17923              
17924              </div>
17925        </div>
17926      </div>
17927      <div class="card__content">
17928        <div class="card__information">
17929          <h3
17930            class="card__heading h5"
17931            
17932              id="title--8342972334271"
17933            
17934          >
17935            <a
17936              href="/products/vibeassage-relief-bundle"
17937              id="CardLink--8342972334271"
17938              class="full-unstyled-link"
17939              aria-labelledby="CardLink--8342972334271 Badge--8342972334271"
17940            >
17941              Vibeassage® Relief Bundle
17942            </a>
17943          </h3>
17944          
17945          <div class="card-information"><span class="caption-large light"></span>
17946<div
17947  class="
17948    price "
17949>
17950  <div class="price__container"><div class="price__regular">
17951      <span class="visually-hidden visually-hidden--inline">Regular price</span>
17952      <span class="price-item price-item--regular">
17953        From $389.00
17954      </span>
17955    </div>
17956    <div class="price__sale ">
17957      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
17958      <span class="price-item price-item--sale price-item--last">
17959        From $389.00
17960      </span>
17961        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
17962        <span class="price__compare-price">
17963          <s class="price-item price-item--regular">
17964            
17965          </s>
17966        </span></div>
17967    <small class="unit-price caption hidden">
17968      <span class="visually-hidden">Unit price</span>
17969      <span class="price-item price-item--last">
17970        <span></span>
17971        <span aria-hidden="true">/</span>
17972        <span class="visually-hidden">&nbsp;per&nbsp;</span>
17973        <span>
17974        </span>
17975      </span>
17976    </small>
17977  </div></div>
17978
17979          </div>
17980        </div>
17981        
17982<div class="card__badge bottom left"></div>
17983      </div>
17984    </div>
17985  </div>
17985<script>
17986  (() => {
17987    if (window.cardProductQuickAddVariantFixLoaded) return;
17988    window.cardProductQuickAddVariantFixLoaded = true;
17989
17990    const ADD_TO_CART_TEXT = "Add to cart";
17991    const SOLD_OUT_TEXT = "Sold out";
17992
17993    function parseVariants(container) {
17994      if (!container) return [];
17995
17996      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
17997
17998      for (const script of scripts) {
17999        try {
18000          const data = JSON.parse(script.textContent.trim());
18001
18002          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
18003            return data;
18004          }
18005
18006          if (data && Array.isArray(data.variants)) {
18007            return data.variants;
18008          }
18009        } catch (error) {}
18010      }
18011
18012      return [];
18013    }
18014
18015    function getSelectedOptionValues(container) {
18016      const values = [];
18017
18018      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
18019        const checkedInput = group.querySelector('input[type="radio"]:checked');
18020        const select = group.querySelector('select');
18021
18022        if (checkedInput) {
18023          values.push(checkedInput.value);
18024        } else if (select) {
18025          values.push(select.value);
18026        }
18027      });
18028
18029      return values;
18030    }
18031
18032    function getCurrentVariant(container, form, variants) {
18033      const idInput = form && form.querySelector('[name="id"]');
18034      const selectedId = idInput && idInput.value;
18035
18036      if (selectedId) {
18037        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
18038        if (byId) return byId;
18039      }
18040
18041      const selectedOptions = getSelectedOptionValues(container);
18042
18043      if (selectedOptions.length) {
18044        return variants.find((variant) => {
18045          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
18046          return selectedOptions.every((value, index) => String(options[index]) === String(value));
18047        });
18048      }
18049
18050      return null;
18051    }
18052
18053    function setButtonState(form, variant) {
18054      if (!form) return;
18055
18056      const idInput = form.querySelector('[name="id"]');
18057      const addButton = form.querySelector('[name="add"]');
18058      const buttonLabel =
18059        addButton &&
18060        (addButton.querySelector('.main-atc__label__text') ||
18061          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
18062      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
18063      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
18064
18065      if (!addButton || !idInput || !variant) return;
18066
18067      idInput.value = variant.id;
18068      idInput.disabled = false;
18069
18070      if (spinner) spinner.classList.add('hidden');
18071
18072      if (variant.available) {
18073        addButton.disabled = false;
18074        addButton.removeAttribute('disabled');
18075        addButton.removeAttribute('aria-disabled');
18076        addButton.classList.remove('loading');
18077
18078        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
18079        if (soldOutMessage) soldOutMessage.classList.add('hidden');
18080      } else {
18081        addButton.disabled = true;
18082        addButton.setAttribute('disabled', 'disabled');
18083        addButton.setAttribute('aria-disabled', 'true');
18084
18085        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
18086        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
18087      }
18088    }
18089
18090    function syncContainer(container) {
18091      if (!container) return;
18092
18093      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
18094      if (!form) return;
18095
18096      const variants = parseVariants(container);
18097      if (!variants.length) return;
18098
18099      const variant = getCurrentVariant(container, form, variants);
18100      if (!variant) return;
18101
18102      setButtonState(form, variant);
18103    }
18104
18105    document.addEventListener('change', (event) => {
18106      const quickAddModal = event.target.closest('quick-add-modal');
18107      const cardVariantSelects = event.target.closest('card-variant-selects');
18108
18109      if (quickAddModal) {
18110        setTimeout(() => syncContainer(quickAddModal), 80);
18111        setTimeout(() => syncContainer(quickAddModal), 250);
18112      }
18113
18114      if (cardVariantSelects) {
18115        const card = cardVariantSelects.closest('.card-wrapper');
18116        if (card) {
18117          setTimeout(() => syncContainer(card), 80);
18118          setTimeout(() => syncContainer(card), 250);
18119        }
18120      }
18121    });
18122
18123    const observer = new MutationObserver((mutations) => {
18124      mutations.forEach((mutation) => {
18125        mutation.addedNodes.forEach((node) => {
18126          if (!(node instanceof HTMLElement)) return;
18127
18128          if (node.matches && node.matches('quick-add-modal')) {
18129            setTimeout(() => syncContainer(node), 150);
18130          }
18131
18132          node.querySelectorAll &&
18133            node.querySelectorAll('quick-add-modal').forEach((modal) => {
18134              setTimeout(() => syncContainer(modal), 150);
18135            });
18136        });
18137      });
18138    });
18139
18140    observer.observe(document.documentElement, {
18141      childList: true,
18142      subtree: true
18143    });
18144
18145    document.addEventListener('DOMContentLoaded', () => {
18146      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
18147    });
18148  })();
18149</script>
18149
18150
18151
18152
18153
18154                        </li>
18155                      
18156                    
18157</ul>
18158                </div>
18159              </li><li
18160                id="ProductsMegaMenu-Item-shop-4"
18161                class="products-mega-menu__item"
18162              >
18163                <a
18164                  id="ProductsMegaMenu-Link-shop-4"
18165                  href="/collections/pads"
18166                  class="header__menu-item list-menu__item link link--text focus-inset caption-large"
18167                  
18168                >
18169                  
18170                  <span>Pads</span>
18171                  <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
18172  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
18173</svg>
18174
18175                </a>
18176
18177                <div class="products-mega-menu__content">
18178                  <ul class="products-mega-menu__cards">
18179                    
18180                      
18181                      
18182                      
18183                        <li>
18184                          
18185<div class="card-wrapper product-card-wrapper underline-links-hover">
18186    <div
18187      class="
18188        card
18189        card--card
18190         card--media
18191         color-background-1 gradient
18192        
18193        
18194        
18195         card--badge-sided
18196        
18197        
18198      "
18199      style="--ratio-percent: 100%;"
18200    >
18201      <div
18202        class="card__inner  ratio"
18203        style="--ratio-percent: 100%;"
18204      ><div class="card__media">
18205            <div class="media media--transparent media--hover-effect">
18206              
18207              <img
18208                srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443 1080w
18209                "
18210                src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_Yellow_Green_Pad_Image_Shopify_V1_Draft_20260411.jpg?v=1776124443&width=533"
18211                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18212                alt="Biomimetic Applicator Pads (Full Set) - Team Doctors"
18213                class="motion-reduce"
18214                
18215                  loading="lazy"
18216                
18217                width="1080"
18218                height="1080"
18219                id='quick-add-8394187342015-image'
18220              >
18221              
18222<img
18223                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492 1080w
18224                  "
18225                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411.jpg?v=1776124492&width=533"
18226                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18227                  alt=""
18228                  class="motion-reduce"
18229                  loading="lazy"
18230                  width="1080"
18231                  height="1080"
18232                ></div>
18233          </div><div class="card__content">
18234          <div class="card__information">
18235            <h3
18236              class="card__heading"
18237              
18238            >
18239              <a
18240                href="/products/biomemetic-applicator-pads-full-set"
18241                id="StandardCardNoMediaLink--8394187342015"
18242                class="full-unstyled-link"
18243                aria-labelledby="StandardCardNoMediaLink--8394187342015 NoMediaStandardBadge--8394187342015"
18244              >
18245                Biomimetic Applicator Pads
18246              </a>
18247            </h3>
18248          </div>
18249          <div class="card__badge bottom left">
18250              
18251              
18252                <span
18253                  id="NoMediaStandardBadge--8394187342015"
18254                  class="badge badge--bottom-left color-accent-2"
18255                >
18256                  <svg
18257  aria-hidden="true"
18258  focusable="false"
18259  class="icon icon-discount color-foreground-text"
18260  viewBox="0 0 12 12"
18261>
18262  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
18263</svg>
18264<span class='nowrap'>SAVE 21%</span>
18265                </span></div>
18266        </div>
18267      </div>
18268      <div class="card__content">
18269        <div class="card__information">
18270          <h3
18271            class="card__heading h5"
18272            
18273              id="title--8394187342015"
18274            
18275          >
18276            <a
18277              href="/products/biomemetic-applicator-pads-full-set"
18278              id="CardLink--8394187342015"
18279              class="full-unstyled-link"
18280              aria-labelledby="CardLink--8394187342015 Badge--8394187342015"
18281            >
18282              Biomimetic Applicator Pads
18283            </a>
18284          </h3>
18285          
18286            <div class="product-subtitle">
18287              3 Pads - Full Set
18288            </div>
18289          
18290          <div class="card-information"><span class="caption-large light"></span>
18291<div
18292  class="
18293    price  price--on-sale "
18294>
18295  <div class="price__container"><div class="price__regular">
18296      <span class="visually-hidden visually-hidden--inline">Regular price</span>
18297      <span class="price-item price-item--regular">
18298        $129.00
18299      </span>
18300    </div>
18301    <div class="price__sale ">
18302      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
18303      <span class="price-item price-item--sale price-item--last">
18304        $129.00
18305      </span>
18306        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
18307        <span class="price__compare-price">
18308          <s class="price-item price-item--regular">
18309            $164.85
18310          </s>
18311        </span></div>
18312    <small class="unit-price caption hidden">
18313      <span class="visually-hidden">Unit price</span>
18314      <span class="price-item price-item--last">
18315        <span></span>
18316        <span aria-hidden="true">/</span>
18317        <span class="visually-hidden">&nbsp;per&nbsp;</span>
18318        <span>
18319        </span>
18320      </span>
18321    </small>
18322  </div></div>
18323
18324          </div>
18325        </div>
18326        
18327<div class="card__badge bottom left"><span
18328              id="Badge--8394187342015"
18329              class="badge badge--bottom-left color-accent-2"
18330            >
18331              21%
18332            </span></div>
18333      </div>
18334    </div>
18335  </div>
18335<script>
18336  (() => {
18337    if (window.cardProductQuickAddVariantFixLoaded) return;
18338    window.cardProductQuickAddVariantFixLoaded = true;
18339
18340    const ADD_TO_CART_TEXT = "Add to cart";
18341    const SOLD_OUT_TEXT = "Sold out";
18342
18343    function parseVariants(container) {
18344      if (!container) return [];
18345
18346      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
18347
18348      for (const script of scripts) {
18349        try {
18350          const data = JSON.parse(script.textContent.trim());
18351
18352          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
18353            return data;
18354          }
18355
18356          if (data && Array.isArray(data.variants)) {
18357            return data.variants;
18358          }
18359        } catch (error) {}
18360      }
18361
18362      return [];
18363    }
18364
18365    function getSelectedOptionValues(container) {
18366      const values = [];
18367
18368      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
18369        const checkedInput = group.querySelector('input[type="radio"]:checked');
18370        const select = group.querySelector('select');
18371
18372        if (checkedInput) {
18373          values.push(checkedInput.value);
18374        } else if (select) {
18375          values.push(select.value);
18376        }
18377      });
18378
18379      return values;
18380    }
18381
18382    function getCurrentVariant(container, form, variants) {
18383      const idInput = form && form.querySelector('[name="id"]');
18384      const selectedId = idInput && idInput.value;
18385
18386      if (selectedId) {
18387        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
18388        if (byId) return byId;
18389      }
18390
18391      const selectedOptions = getSelectedOptionValues(container);
18392
18393      if (selectedOptions.length) {
18394        return variants.find((variant) => {
18395          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
18396          return selectedOptions.every((value, index) => String(options[index]) === String(value));
18397        });
18398      }
18399
18400      return null;
18401    }
18402
18403    function setButtonState(form, variant) {
18404      if (!form) return;
18405
18406      const idInput = form.querySelector('[name="id"]');
18407      const addButton = form.querySelector('[name="add"]');
18408      const buttonLabel =
18409        addButton &&
18410        (addButton.querySelector('.main-atc__label__text') ||
18411          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
18412      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
18413      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
18414
18415      if (!addButton || !idInput || !variant) return;
18416
18417      idInput.value = variant.id;
18418      idInput.disabled = false;
18419
18420      if (spinner) spinner.classList.add('hidden');
18421
18422      if (variant.available) {
18423        addButton.disabled = false;
18424        addButton.removeAttribute('disabled');
18425        addButton.removeAttribute('aria-disabled');
18426        addButton.classList.remove('loading');
18427
18428        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
18429        if (soldOutMessage) soldOutMessage.classList.add('hidden');
18430      } else {
18431        addButton.disabled = true;
18432        addButton.setAttribute('disabled', 'disabled');
18433        addButton.setAttribute('aria-disabled', 'true');
18434
18435        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
18436        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
18437      }
18438    }
18439
18440    function syncContainer(container) {
18441      if (!container) return;
18442
18443      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
18444      if (!form) return;
18445
18446      const variants = parseVariants(container);
18447      if (!variants.length) return;
18448
18449      const variant = getCurrentVariant(container, form, variants);
18450      if (!variant) return;
18451
18452      setButtonState(form, variant);
18453    }
18454
18455    document.addEventListener('change', (event) => {
18456      const quickAddModal = event.target.closest('quick-add-modal');
18457      const cardVariantSelects = event.target.closest('card-variant-selects');
18458
18459      if (quickAddModal) {
18460        setTimeout(() => syncContainer(quickAddModal), 80);
18461        setTimeout(() => syncContainer(quickAddModal), 250);
18462      }
18463
18464      if (cardVariantSelects) {
18465        const card = cardVariantSelects.closest('.card-wrapper');
18466        if (card) {
18467          setTimeout(() => syncContainer(card), 80);
18468          setTimeout(() => syncContainer(card), 250);
18469        }
18470      }
18471    });
18472
18473    const observer = new MutationObserver((mutations) => {
18474      mutations.forEach((mutation) => {
18475        mutation.addedNodes.forEach((node) => {
18476          if (!(node instanceof HTMLElement)) return;
18477
18478          if (node.matches && node.matches('quick-add-modal')) {
18479            setTimeout(() => syncContainer(node), 150);
18480          }
18481
18482          node.querySelectorAll &&
18483            node.querySelectorAll('quick-add-modal').forEach((modal) => {
18484              setTimeout(() => syncContainer(modal), 150);
18485            });
18486        });
18487      });
18488    });
18489
18490    observer.observe(document.documentElement, {
18491      childList: true,
18492      subtree: true
18493    });
18494
18495    document.addEventListener('DOMContentLoaded', () => {
18496      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
18497    });
18498  })();
18499</script>
18499
18500
18501
18502
18503
18504                        </li>
18505                      
18506                        <li>
18507                          
18508<div class="card-wrapper product-card-wrapper underline-links-hover">
18509    <div
18510      class="
18511        card
18512        card--card
18513         card--media
18514         color-background-1 gradient
18515        
18516        
18517        
18518         card--badge-sided
18519        
18520        
18521      "
18522      style="--ratio-percent: 100%;"
18523    >
18524      <div
18525        class="card__inner  ratio"
18526        style="--ratio-percent: 100%;"
18527      ><div class="card__media">
18528            <div class="media media--transparent media--hover-effect">
18529              
18530              <img
18531                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844 1254w
18532                "
18533                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45.jpg?v=1780447844&width=533"
18534                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18535                alt="Balance bundle - Team Doctors"
18536                class="motion-reduce"
18537                
18538                  loading="lazy"
18539                
18540                width="1254"
18541                height="1254"
18542                id='quick-add-8402094031039-image'
18543              >
18544              
18545<img
18546                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
18547                  "
18548                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
18549                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18550                  alt=""
18551                  class="motion-reduce"
18552                  loading="lazy"
18553                  width="1080"
18554                  height="1080"
18555                ></div>
18556          </div><div class="card__content">
18557          <div class="card__information">
18558            <h3
18559              class="card__heading"
18560              
18561            >
18562              <a
18563                href="/products/vibeassage%C2%AE-relief-bundle"
18564                id="StandardCardNoMediaLink--8402094031039"
18565                class="full-unstyled-link"
18566                aria-labelledby="StandardCardNoMediaLink--8402094031039 NoMediaStandardBadge--8402094031039"
18567              >
18568                Balance bundle
18569              </a>
18570            </h3>
18571          </div>
18572          <div class="card__badge bottom left">
18573              
18574              
18575                <span
18576                  id="NoMediaStandardBadge--8402094031039"
18577                  class="badge badge--bottom-left color-accent-2"
18578                >
18579                  <svg
18580  aria-hidden="true"
18581  focusable="false"
18582  class="icon icon-discount color-foreground-text"
18583  viewBox="0 0 12 12"
18584>
18585  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
18586</svg>
18587<span class='nowrap'>SAVE 9%</span>
18588                </span></div>
18589        </div>
18590      </div>
18591      <div class="card__content">
18592        <div class="card__information">
18593          <h3
18594            class="card__heading h5"
18595            
18596              id="title--8402094031039"
18597            
18598          >
18599            <a
18600              href="/products/vibeassage%C2%AE-relief-bundle"
18601              id="CardLink--8402094031039"
18602              class="full-unstyled-link"
18603              aria-labelledby="CardLink--8402094031039 Badge--8402094031039"
18604            >
18605              Balance bundle
18606            </a>
18607          </h3>
18608          
18609            <div class="product-subtitle">
18610              Comfort Relief Pad + Peak Performance Pad
18611            </div>
18612          
18613          <div class="card-information"><span class="caption-large light"></span>
18614<div
18615  class="
18616    price  price--on-sale "
18617>
18618  <div class="price__container"><div class="price__regular">
18619      <span class="visually-hidden visually-hidden--inline">Regular price</span>
18620      <span class="price-item price-item--regular">
18621        $99.00
18622      </span>
18623    </div>
18624    <div class="price__sale ">
18625      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
18626      <span class="price-item price-item--sale price-item--last">
18627        $99.00
18628      </span>
18629        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
18630        <span class="price__compare-price">
18631          <s class="price-item price-item--regular">
18632            $109.95
18633          </s>
18634        </span></div>
18635    <small class="unit-price caption hidden">
18636      <span class="visually-hidden">Unit price</span>
18637      <span class="price-item price-item--last">
18638        <span></span>
18639        <span aria-hidden="true">/</span>
18640        <span class="visually-hidden">&nbsp;per&nbsp;</span>
18641        <span>
18642        </span>
18643      </span>
18644    </small>
18645  </div></div>
18646
18647          </div>
18648        </div>
18649        
18650<div class="card__badge bottom left"><span
18651              id="Badge--8402094031039"
18652              class="badge badge--bottom-left color-accent-2"
18653            >
18654              9%
18655            </span></div>
18656      </div>
18657    </div>
18658  </div>
18658<script>
18659  (() => {
18660    if (window.cardProductQuickAddVariantFixLoaded) return;
18661    window.cardProductQuickAddVariantFixLoaded = true;
18662
18663    const ADD_TO_CART_TEXT = "Add to cart";
18664    const SOLD_OUT_TEXT = "Sold out";
18665
18666    function parseVariants(container) {
18667      if (!container) return [];
18668
18669      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
18670
18671      for (const script of scripts) {
18672        try {
18673          const data = JSON.parse(script.textContent.trim());
18674
18675          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
18676            return data;
18677          }
18678
18679          if (data && Array.isArray(data.variants)) {
18680            return data.variants;
18681          }
18682        } catch (error) {}
18683      }
18684
18685      return [];
18686    }
18687
18688    function getSelectedOptionValues(container) {
18689      const values = [];
18690
18691      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
18692        const checkedInput = group.querySelector('input[type="radio"]:checked');
18693        const select = group.querySelector('select');
18694
18695        if (checkedInput) {
18696          values.push(checkedInput.value);
18697        } else if (select) {
18698          values.push(select.value);
18699        }
18700      });
18701
18702      return values;
18703    }
18704
18705    function getCurrentVariant(container, form, variants) {
18706      const idInput = form && form.querySelector('[name="id"]');
18707      const selectedId = idInput && idInput.value;
18708
18709      if (selectedId) {
18710        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
18711        if (byId) return byId;
18712      }
18713
18714      const selectedOptions = getSelectedOptionValues(container);
18715
18716      if (selectedOptions.length) {
18717        return variants.find((variant) => {
18718          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
18719          return selectedOptions.every((value, index) => String(options[index]) === String(value));
18720        });
18721      }
18722
18723      return null;
18724    }
18725
18726    function setButtonState(form, variant) {
18727      if (!form) return;
18728
18729      const idInput = form.querySelector('[name="id"]');
18730      const addButton = form.querySelector('[name="add"]');
18731      const buttonLabel =
18732        addButton &&
18733        (addButton.querySelector('.main-atc__label__text') ||
18734          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
18735      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
18736      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
18737
18738      if (!addButton || !idInput || !variant) return;
18739
18740      idInput.value = variant.id;
18741      idInput.disabled = false;
18742
18743      if (spinner) spinner.classList.add('hidden');
18744
18745      if (variant.available) {
18746        addButton.disabled = false;
18747        addButton.removeAttribute('disabled');
18748        addButton.removeAttribute('aria-disabled');
18749        addButton.classList.remove('loading');
18750
18751        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
18752        if (soldOutMessage) soldOutMessage.classList.add('hidden');
18753      } else {
18754        addButton.disabled = true;
18755        addButton.setAttribute('disabled', 'disabled');
18756        addButton.setAttribute('aria-disabled', 'true');
18757
18758        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
18759        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
18760      }
18761    }
18762
18763    function syncContainer(container) {
18764      if (!container) return;
18765
18766      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
18767      if (!form) return;
18768
18769      const variants = parseVariants(container);
18770      if (!variants.length) return;
18771
18772      const variant = getCurrentVariant(container, form, variants);
18773      if (!variant) return;
18774
18775      setButtonState(form, variant);
18776    }
18777
18778    document.addEventListener('change', (event) => {
18779      const quickAddModal = event.target.closest('quick-add-modal');
18780      const cardVariantSelects = event.target.closest('card-variant-selects');
18781
18782      if (quickAddModal) {
18783        setTimeout(() => syncContainer(quickAddModal), 80);
18784        setTimeout(() => syncContainer(quickAddModal), 250);
18785      }
18786
18787      if (cardVariantSelects) {
18788        const card = cardVariantSelects.closest('.card-wrapper');
18789        if (card) {
18790          setTimeout(() => syncContainer(card), 80);
18791          setTimeout(() => syncContainer(card), 250);
18792        }
18793      }
18794    });
18795
18796    const observer = new MutationObserver((mutations) => {
18797      mutations.forEach((mutation) => {
18798        mutation.addedNodes.forEach((node) => {
18799          if (!(node instanceof HTMLElement)) return;
18800
18801          if (node.matches && node.matches('quick-add-modal')) {
18802            setTimeout(() => syncContainer(node), 150);
18803          }
18804
18805          node.querySelectorAll &&
18806            node.querySelectorAll('quick-add-modal').forEach((modal) => {
18807              setTimeout(() => syncContainer(modal), 150);
18808            });
18809        });
18810      });
18811    });
18812
18813    observer.observe(document.documentElement, {
18814      childList: true,
18815      subtree: true
18816    });
18817
18818    document.addEventListener('DOMContentLoaded', () => {
18819      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
18820    });
18821  })();
18822</script>
18822
18823
18824
18825
18826
18827                        </li>
18828                      
18829                        <li>
18830                          
18831<div class="card-wrapper product-card-wrapper underline-links-hover">
18832    <div
18833      class="
18834        card
18835        card--card
18836         card--media
18837         color-background-1 gradient
18838        
18839        
18840        
18841         card--badge-sided
18842        
18843        
18844      "
18845      style="--ratio-percent: 100%;"
18846    >
18847      <div
18848        class="card__inner  ratio"
18849        style="--ratio-percent: 100%;"
18850      ><div class="card__media">
18851            <div class="media media--transparent media--hover-effect">
18852              
18853              <img
18854                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844 1254w
18855                "
18856                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_2.jpg?v=1780447844&width=533"
18857                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18858                alt="Relief Bundle - Team Doctors"
18859                class="motion-reduce"
18860                
18861                  loading="lazy"
18862                
18863                width="1254"
18864                height="1254"
18865                id='quick-add-8433935974591-image'
18866              >
18867              
18868<img
18869                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311 1080w
18870                  "
18871                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Red_CrossPad_Image_Shopify_V2_Draft_20260411_ef19b072-da76-4c40-90c6-c2f8ac372781.jpg?v=1778771311&width=533"
18872                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
18873                  alt=""
18874                  class="motion-reduce"
18875                  loading="lazy"
18876                  width="1080"
18877                  height="1080"
18878                ></div>
18879          </div><div class="card__content">
18880          <div class="card__information">
18881            <h3
18882              class="card__heading"
18883              
18884            >
18885              <a
18886                href="/products/relief-bundle"
18887                id="StandardCardNoMediaLink--8433935974591"
18888                class="full-unstyled-link"
18889                aria-labelledby="StandardCardNoMediaLink--8433935974591 NoMediaStandardBadge--8433935974591"
18890              >
18891                Relief Bundle
18892              </a>
18893            </h3>
18894          </div>
18895          <div class="card__badge bottom left">
18896              
18897              
18898                <span
18899                  id="NoMediaStandardBadge--8433935974591"
18900                  class="badge badge--bottom-left color-accent-2"
18901                >
18902                  <svg
18903  aria-hidden="true"
18904  focusable="false"
18905  class="icon icon-discount color-foreground-text"
18906  viewBox="0 0 12 12"
18907>
18908  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
18909</svg>
18910<span class='nowrap'>SAVE 9%</span>
18911                </span></div>
18912        </div>
18913      </div>
18914      <div class="card__content">
18915        <div class="card__information">
18916          <h3
18917            class="card__heading h5"
18918            
18919              id="title--8433935974591"
18920            
18921          >
18922            <a
18923              href="/products/relief-bundle"
18924              id="CardLink--8433935974591"
18925              class="full-unstyled-link"
18926              aria-labelledby="CardLink--8433935974591 Badge--8433935974591"
18927            >
18928              Relief Bundle
18929            </a>
18930          </h3>
18931          
18932            <div class="product-subtitle">
18933              Comfort Relief Pad + Core Recovery Pad
18934            </div>
18935          
18936          <div class="card-information"><span class="caption-large light"></span>
18937<div
18938  class="
18939    price  price--on-sale "
18940>
18941  <div class="price__container"><div class="price__regular">
18942      <span class="visually-hidden visually-hidden--inline">Regular price</span>
18943      <span class="price-item price-item--regular">
18944        $99.00
18945      </span>
18946    </div>
18947    <div class="price__sale ">
18948      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
18949      <span class="price-item price-item--sale price-item--last">
18950        $99.00
18951      </span>
18952        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
18953        <span class="price__compare-price">
18954          <s class="price-item price-item--regular">
18955            $109.90
18956          </s>
18957        </span></div>
18958    <small class="unit-price caption hidden">
18959      <span class="visually-hidden">Unit price</span>
18960      <span class="price-item price-item--last">
18961        <span></span>
18962        <span aria-hidden="true">/</span>
18963        <span class="visually-hidden">&nbsp;per&nbsp;</span>
18964        <span>
18965        </span>
18966      </span>
18967    </small>
18968  </div></div>
18969
18970          </div>
18971        </div>
18972        
18973<div class="card__badge bottom left"><span
18974              id="Badge--8433935974591"
18975              class="badge badge--bottom-left color-accent-2"
18976            >
18977              9%
18978            </span></div>
18979      </div>
18980    </div>
18981  </div>
18981<script>
18982  (() => {
18983    if (window.cardProductQuickAddVariantFixLoaded) return;
18984    window.cardProductQuickAddVariantFixLoaded = true;
18985
18986    const ADD_TO_CART_TEXT = "Add to cart";
18987    const SOLD_OUT_TEXT = "Sold out";
18988
18989    function parseVariants(container) {
18990      if (!container) return [];
18991
18992      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
18993
18994      for (const script of scripts) {
18995        try {
18996          const data = JSON.parse(script.textContent.trim());
18997
18998          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
18999            return data;
19000          }
19001
19002          if (data && Array.isArray(data.variants)) {
19003            return data.variants;
19004          }
19005        } catch (error) {}
19006      }
19007
19008      return [];
19009    }
19010
19011    function getSelectedOptionValues(container) {
19012      const values = [];
19013
19014      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
19015        const checkedInput = group.querySelector('input[type="radio"]:checked');
19016        const select = group.querySelector('select');
19017
19018        if (checkedInput) {
19019          values.push(checkedInput.value);
19020        } else if (select) {
19021          values.push(select.value);
19022        }
19023      });
19024
19025      return values;
19026    }
19027
19028    function getCurrentVariant(container, form, variants) {
19029      const idInput = form && form.querySelector('[name="id"]');
19030      const selectedId = idInput && idInput.value;
19031
19032      if (selectedId) {
19033        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
19034        if (byId) return byId;
19035      }
19036
19037      const selectedOptions = getSelectedOptionValues(container);
19038
19039      if (selectedOptions.length) {
19040        return variants.find((variant) => {
19041          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
19042          return selectedOptions.every((value, index) => String(options[index]) === String(value));
19043        });
19044      }
19045
19046      return null;
19047    }
19048
19049    function setButtonState(form, variant) {
19050      if (!form) return;
19051
19052      const idInput = form.querySelector('[name="id"]');
19053      const addButton = form.querySelector('[name="add"]');
19054      const buttonLabel =
19055        addButton &&
19056        (addButton.querySelector('.main-atc__label__text') ||
19057          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
19058      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
19059      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
19060
19061      if (!addButton || !idInput || !variant) return;
19062
19063      idInput.value = variant.id;
19064      idInput.disabled = false;
19065
19066      if (spinner) spinner.classList.add('hidden');
19067
19068      if (variant.available) {
19069        addButton.disabled = false;
19070        addButton.removeAttribute('disabled');
19071        addButton.removeAttribute('aria-disabled');
19072        addButton.classList.remove('loading');
19073
19074        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
19075        if (soldOutMessage) soldOutMessage.classList.add('hidden');
19076      } else {
19077        addButton.disabled = true;
19078        addButton.setAttribute('disabled', 'disabled');
19079        addButton.setAttribute('aria-disabled', 'true');
19080
19081        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
19082        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
19083      }
19084    }
19085
19086    function syncContainer(container) {
19087      if (!container) return;
19088
19089      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
19090      if (!form) return;
19091
19092      const variants = parseVariants(container);
19093      if (!variants.length) return;
19094
19095      const variant = getCurrentVariant(container, form, variants);
19096      if (!variant) return;
19097
19098      setButtonState(form, variant);
19099    }
19100
19101    document.addEventListener('change', (event) => {
19102      const quickAddModal = event.target.closest('quick-add-modal');
19103      const cardVariantSelects = event.target.closest('card-variant-selects');
19104
19105      if (quickAddModal) {
19106        setTimeout(() => syncContainer(quickAddModal), 80);
19107        setTimeout(() => syncContainer(quickAddModal), 250);
19108      }
19109
19110      if (cardVariantSelects) {
19111        const card = cardVariantSelects.closest('.card-wrapper');
19112        if (card) {
19113          setTimeout(() => syncContainer(card), 80);
19114          setTimeout(() => syncContainer(card), 250);
19115        }
19116      }
19117    });
19118
19119    const observer = new MutationObserver((mutations) => {
19120      mutations.forEach((mutation) => {
19121        mutation.addedNodes.forEach((node) => {
19122          if (!(node instanceof HTMLElement)) return;
19123
19124          if (node.matches && node.matches('quick-add-modal')) {
19125            setTimeout(() => syncContainer(node), 150);
19126          }
19127
19128          node.querySelectorAll &&
19129            node.querySelectorAll('quick-add-modal').forEach((modal) => {
19130              setTimeout(() => syncContainer(modal), 150);
19131            });
19132        });
19133      });
19134    });
19135
19136    observer.observe(document.documentElement, {
19137      childList: true,
19138      subtree: true
19139    });
19140
19141    document.addEventListener('DOMContentLoaded', () => {
19142      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
19143    });
19144  })();
19145</script>
19145
19146
19147
19148
19149
19150                        </li>
19151                      
19152                        <li>
19153                          
19154<div class="card-wrapper product-card-wrapper underline-links-hover">
19155    <div
19156      class="
19157        card
19158        card--card
19159         card--media
19160         color-background-1 gradient
19161        
19162        
19163        
19164         card--badge-sided
19165        
19166        
19167      "
19168      style="--ratio-percent: 100%;"
19169    >
19170      <div
19171        class="card__inner  ratio"
19172        style="--ratio-percent: 100%;"
19173      ><div class="card__media">
19174            <div class="media media--transparent media--hover-effect">
19175              
19176              <img
19177                srcset="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=165 165w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=360 360w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533 533w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=720 720w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=940 940w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=1066 1066w,//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844 1254w
19178                "
19179                src="//teamdoctors.com/cdn/shop/files/WhatsApp_Image_2026-06-03_at_07.06.45_1.jpg?v=1780447844&width=533"
19180                sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
19181                alt="Performance Bundle - Team Doctors"
19182                class="motion-reduce"
19183                
19184                  loading="lazy"
19185                
19186                width="1254"
19187                height="1254"
19188                id='quick-add-8433936007359-image'
19189              >
19190              
19191<img
19192                  srcset="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=165 165w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=360 360w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533 533w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=720 720w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=940 940w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=1066 1066w,//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322 1080w
19193                  "
19194                  src="//teamdoctors.com/cdn/shop/files/Vibassage_Yellow_CrossPad_Image_Shopify_V2_Draft_20260411_8d4411ea-7ce7-4dcd-b34b-6738fa708be0.jpg?v=1778771322&width=533"
19195                  sizes="(min-width: 1600px) 367px, (min-width: 990px) calc((100vw - 130px) / 4), (min-width: 750px) calc((100vw - 120px) / 3), calc((100vw - 35px) / 2)"
19196                  alt=""
19197                  class="motion-reduce"
19198                  loading="lazy"
19199                  width="1080"
19200                  height="1080"
19201                ></div>
19202          </div><div class="card__content">
19203          <div class="card__information">
19204            <h3
19205              class="card__heading"
19206              
19207            >
19208              <a
19209                href="/products/performance-bundle"
19210                id="StandardCardNoMediaLink--8433936007359"
19211                class="full-unstyled-link"
19212                aria-labelledby="StandardCardNoMediaLink--8433936007359 NoMediaStandardBadge--8433936007359"
19213              >
19214                Performance Bundle
19215              </a>
19216            </h3>
19217          </div>
19218          <div class="card__badge bottom left">
19219              
19220              
19221                <span
19222                  id="NoMediaStandardBadge--8433936007359"
19223                  class="badge badge--bottom-left color-accent-2"
19224                >
19225                  <svg
19226  aria-hidden="true"
19227  focusable="false"
19228  class="icon icon-discount color-foreground-text"
19229  viewBox="0 0 12 12"
19230>
19231  <path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
19232</svg>
19233<span class='nowrap'>SAVE 9%</span>
19234                </span></div>
19235        </div>
19236      </div>
19237      <div class="card__content">
19238        <div class="card__information">
19239          <h3
19240            class="card__heading h5"
19241            
19242              id="title--8433936007359"
19243            
19244          >
19245            <a
19246              href="/products/performance-bundle"
19247              id="CardLink--8433936007359"
19248              class="full-unstyled-link"
19249              aria-labelledby="CardLink--8433936007359 Badge--8433936007359"
19250            >
19251              Performance Bundle
19252            </a>
19253          </h3>
19254          
19255            <div class="product-subtitle">
19256              Core Cecovery Pad + Peak Performance Pad
19257            </div>
19258          
19259          <div class="card-information"><span class="caption-large light"></span>
19260<div
19261  class="
19262    price  price--on-sale "
19263>
19264  <div class="price__container"><div class="price__regular">
19265      <span class="visually-hidden visually-hidden--inline">Regular price</span>
19266      <span class="price-item price-item--regular">
19267        $99.00
19268      </span>
19269    </div>
19270    <div class="price__sale ">
19271      <span class="visually-hidden visually-hidden--inline compare-price-label">Regular price</span>
19272      <span class="price-item price-item--sale price-item--last">
19273        $99.00
19274      </span>
19275        <span class="visually-hidden visually-hidden--inline regular-price-label">Sale price</span>
19276        <span class="price__compare-price">
19277          <s class="price-item price-item--regular">
19278            $109.90
19279          </s>
19280        </span></div>
19281    <small class="unit-price caption hidden">
19282      <span class="visually-hidden">Unit price</span>
19283      <span class="price-item price-item--last">
19284        <span></span>
19285        <span aria-hidden="true">/</span>
19286        <span class="visually-hidden">&nbsp;per&nbsp;</span>
19287        <span>
19288        </span>
19289      </span>
19290    </small>
19291  </div></div>
19292
19293          </div>
19294        </div>
19295        
19296<div class="card__badge bottom left"><span
19297              id="Badge--8433936007359"
19298              class="badge badge--bottom-left color-accent-2"
19299            >
19300              9%
19301            </span></div>
19302      </div>
19303    </div>
19304  </div>
19304<script>
19305  (() => {
19306    if (window.cardProductQuickAddVariantFixLoaded) return;
19307    window.cardProductQuickAddVariantFixLoaded = true;
19308
19309    const ADD_TO_CART_TEXT = "Add to cart";
19310    const SOLD_OUT_TEXT = "Sold out";
19311
19312    function parseVariants(container) {
19313      if (!container) return [];
19314
19315      const scripts = Array.from(container.querySelectorAll('script[type="application/json"]'));
19316
19317      for (const script of scripts) {
19318        try {
19319          const data = JSON.parse(script.textContent.trim());
19320
19321          if (Array.isArray(data) && data.some((item) => item && item.id && Object.prototype.hasOwnProperty.call(item, 'available'))) {
19322            return data;
19323          }
19324
19325          if (data && Array.isArray(data.variants)) {
19326            return data.variants;
19327          }
19328        } catch (error) {}
19329      }
19330
19331      return [];
19332    }
19333
19334    function getSelectedOptionValues(container) {
19335      const values = [];
19336
19337      container.querySelectorAll('fieldset, .product-form__input').forEach((group) => {
19338        const checkedInput = group.querySelector('input[type="radio"]:checked');
19339        const select = group.querySelector('select');
19340
19341        if (checkedInput) {
19342          values.push(checkedInput.value);
19343        } else if (select) {
19344          values.push(select.value);
19345        }
19346      });
19347
19348      return values;
19349    }
19350
19351    function getCurrentVariant(container, form, variants) {
19352      const idInput = form && form.querySelector('[name="id"]');
19353      const selectedId = idInput && idInput.value;
19354
19355      if (selectedId) {
19356        const byId = variants.find((variant) => String(variant.id) === String(selectedId));
19357        if (byId) return byId;
19358      }
19359
19360      const selectedOptions = getSelectedOptionValues(container);
19361
19362      if (selectedOptions.length) {
19363        return variants.find((variant) => {
19364          const options = variant.options || [variant.option1, variant.option2, variant.option3].filter(Boolean);
19365          return selectedOptions.every((value, index) => String(options[index]) === String(value));
19366        });
19367      }
19368
19369      return null;
19370    }
19371
19372    function setButtonState(form, variant) {
19373      if (!form) return;
19374
19375      const idInput = form.querySelector('[name="id"]');
19376      const addButton = form.querySelector('[name="add"]');
19377      const buttonLabel =
19378        addButton &&
19379        (addButton.querySelector('.main-atc__label__text') ||
19380          addButton.querySelector('span:not(.sold-out-message):not(.icon-wrap)'));
19381      const soldOutMessage = addButton && addButton.querySelector('.sold-out-message');
19382      const spinner = addButton && addButton.querySelector('.loading-overlay__spinner');
19383
19384      if (!addButton || !idInput || !variant) return;
19385
19386      idInput.value = variant.id;
19387      idInput.disabled = false;
19388
19389      if (spinner) spinner.classList.add('hidden');
19390
19391      if (variant.available) {
19392        addButton.disabled = false;
19393        addButton.removeAttribute('disabled');
19394        addButton.removeAttribute('aria-disabled');
19395        addButton.classList.remove('loading');
19396
19397        if (buttonLabel) buttonLabel.textContent = ADD_TO_CART_TEXT;
19398        if (soldOutMessage) soldOutMessage.classList.add('hidden');
19399      } else {
19400        addButton.disabled = true;
19401        addButton.setAttribute('disabled', 'disabled');
19402        addButton.setAttribute('aria-disabled', 'true');
19403
19404        if (buttonLabel) buttonLabel.textContent = SOLD_OUT_TEXT;
19405        if (soldOutMessage) soldOutMessage.classList.remove('hidden');
19406      }
19407    }
19408
19409    function syncContainer(container) {
19410      if (!container) return;
19411
19412      const form = container.querySelector('form[action*="/cart/add"], form[data-type="add-to-cart-form"]');
19413      if (!form) return;
19414
19415      const variants = parseVariants(container);
19416      if (!variants.length) return;
19417
19418      const variant = getCurrentVariant(container, form, variants);
19419      if (!variant) return;
19420
19421      setButtonState(form, variant);
19422    }
19423
19424    document.addEventListener('change', (event) => {
19425      const quickAddModal = event.target.closest('quick-add-modal');
19426      const cardVariantSelects = event.target.closest('card-variant-selects');
19427
19428      if (quickAddModal) {
19429        setTimeout(() => syncContainer(quickAddModal), 80);
19430        setTimeout(() => syncContainer(quickAddModal), 250);
19431      }
19432
19433      if (cardVariantSelects) {
19434        const card = cardVariantSelects.closest('.card-wrapper');
19435        if (card) {
19436          setTimeout(() => syncContainer(card), 80);
19437          setTimeout(() => syncContainer(card), 250);
19438        }
19439      }
19440    });
19441
19442    const observer = new MutationObserver((mutations) => {
19443      mutations.forEach((mutation) => {
19444        mutation.addedNodes.forEach((node) => {
19445          if (!(node instanceof HTMLElement)) return;
19446
19447          if (node.matches && node.matches('quick-add-modal')) {
19448            setTimeout(() => syncContainer(node), 150);
19449          }
19450
19451          node.querySelectorAll &&
19452            node.querySelectorAll('quick-add-modal').forEach((modal) => {
19453              setTimeout(() => syncContainer(modal), 150);
19454            });
19455        });
19456      });
19457    });
19458
19459    observer.observe(document.documentElement, {
19460      childList: true,
19461      subtree: true
19462    });
19463
19464    document.addEventListener('DOMContentLoaded', () => {
19465      document.querySelectorAll('quick-add-modal, .card-wrapper').forEach(syncContainer);
19466    });
19467  })();
19468</script>
19468
19469
19470
19471
19472
19473                        </li>
19474                      
19475                    
19476</ul>
19477                </div>
19478              </li></ul>
19479        </div>
19480      </div>
19481    </div>
19482  </details>
19483</products-mega-menu>
19484
19485                  
19486</li><li>
19487                    <header-menu>
19488                      <details id="Details-HeaderMenu-3">
19489                        <summary class="header__menu-item header__menu-item--main list-menu__item link focus-inset">
19490                          <span class="header__active-menu-item">Discover</span>
19491                          <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
19492  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
19493</svg>
19494
19495                        </summary>
19496                        <ul id="HeaderMenu-MenuList-3" class="header__submenu list-menu list-menu--disclosure gradient caption-large motion-reduce global-settings-popup" role="list" tabindex="-1"><li><a href="/pages/about-us" class="menu-discover  header__menu-item list-menu__item link link--text focus-inset caption-large" aria-current="page">
19497                                  Learn More
19498                                </a></li><li><a href="/pages/vibeassage-video-tutorials" class="menu-discover  header__menu-item list-menu__item link link--text focus-inset caption-large">
19499                                  Tutorials
19500                                </a></li><li><a href="/pages/contact-us" class="menu-discover  header__menu-item list-menu__item link link--text focus-inset caption-large">
19501                                  Contact Us
19502                                </a></li></ul>
19503                      </details>
19504                    </header-menu>
19505                  
19506</li><li><a href="/pages/contact-us" class="header__menu-item header__menu-item--main list-menu__item link link--text focus-inset">
19507                    <span>Contact Us</span>
19508                  </a></li></ul>
19509        </nav>
19510      
19511<a href="/"
19512            class="header__heading-link link link--text focus-inset media media--transparent ratio"style="--ratio-percent: 15.888194189040085%"
19513            
19514          ><img src="//teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=500" alt="Team Doctors" srcset="//teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=50 50w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=100 100w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=150 150w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=200 200w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=250 250w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=300 300w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=400 400w, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745&amp;width=500 500w" width="200" height="31.776388378080174" class="header__heading-logo header__heading-logo--main">
19515</a><div class="header__icons">
19516      <details-modal class="header__search">
19517        <details>
19518          <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search">
19519            <span>
19520              <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false">
19521                <use href="#icon-search">
19522              </svg>
19523              <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false">
19524                <use href="#icon-close">
19525              </svg>
19526            </span>
19527          </summary>
19528          <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search">
19529            <div class="modal-overlay"></div>
19530            <div class="search-modal__content search-modal__content--right search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-main='false' data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form search-modal__form--border-light search-modal__form--polyfill search-modal__form--predictive" data-modal="RfaaO6tc35zLKcDRUCltKqx5sXmgAgKrTClqXyYJb4nkV8I/xi1BjoFOTSDWYyy7mYpaz8tdnUIuo33R4J1YMCHzsxfvRzZwl1pYsCp5+ZuhAvfjIMeuWwVa/Z18t/GmA6L4Wm7s3a5VRGakCsshnlvnWEZ6+yhYLS7h7Kg2oDgY9rhPIOdVKLYbOPSC+DKe0ST+z2XaAEg/X/70GpBodknSyBSv780BkNSlsn53aBN6G01kcGetmqrBwLdIKuSbtvUEVz6c6I9vwn2Ni5mGBYObqP9R5Gu85tetSC3V4z2OWL6Xj1w2hcfcITSk615rP4GL8XEH3aej6YsmyAYMs0Ux/t9IFZPbwreRhb4sjhAhW67LoVTOYXnOPbm6/AXr6RmBPpj6l6/DgaBGR4ednszWnbI03fR+Kvp0cqFcsmNpCMxrl1X3oCjFizIw8yDE">
19531                    <div class="field">
19532                      <input class="search__input field__input"
19533                        id="Search-In-Modal"
19534                        type="search"
19535                        name="q"
19536                        value=""
19537                        placeholder="Search"role="combobox"
19538                          aria-expanded="false"
19539                          aria-owns="predictive-search-results"
19540                          aria-controls="predictive-search-results"
19541                          aria-haspopup="listbox"
19542                          aria-autocomplete="list"
19543                          autocorrect="off"
19544                          autocomplete="off"
19545                          autocapitalize="off"
19546                          spellcheck="false">
19547                      <label class="field__label" for="Search-In-Modal">Search</label>
19548                      <input type="hidden" name="options[prefix]" value="last">
19549                      <button type="reset" class="reset__button field__button hidden" aria-label="Clear search term">
19550                        <svg class="icon icon-close" aria-hidden="true" focusable="false">
19551                          <use xlink:href="#icon-reset">
19552                        </svg>
19553                      </button>
19554                      <button class="search__button field__button" aria-label="Search">
19555                        <svg class="icon icon-search" aria-hidden="true" focusable="false">
19556                          <use href="#icon-search">
19557                        </svg>
19558                      </button>
19559                    </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
19560                        <div class="predictive-search__loading-state">
19561                          <svg aria-hidden="true" focusable="false" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
19562                            <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle>
19563                          </svg>
19564                        </div>
19565                      </div>
19566
19567                      <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close">
19568                <svg class="icon icon-close" aria-hidden="true" focusable="false">
19569                  <use href="#icon-close">
19570                </svg>
19571              </button>
19572            </div>
19573          </div>
19574        </details>
19575      </details-modal><a href="https://teamdoctors.com/customer_authentication/redirect?locale=en&region_country=US" class="header__icon header__icon--account link focus-inset small-hide">
19576          <svg
19577  xmlns="http://www.w3.org/2000/svg"
19578  aria-hidden="true"
19579  focusable="false"
19580  class="icon icon-account"
19581  fill="none"
19582  viewBox="0 0 18 19"
19583>
19584  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor">
19585</svg>
19586
19587          <span class="visually-hidden">Log in</span>
19588        </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble">
19589    <svg class="icon icon-cart" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 35.53 44.83" style='transform: scale(0.9);'>
19590      <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M12.36,10.93l29.38-.08q.72,16.41,1.45,32.8H10.66Z" transform="translate(-9.16 -0.32)"/>
19591      <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M19.39,10.85V9.52a7.7,7.7,0,1,1,15.39,0v1.33" transform="translate(-9.16 -0.32)"/>
19592      <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M19.12,15.46a7.7,7.7,0,0,0,15.08,0" transform="translate(-9.16 -0.32)"/>
19593    </svg>
19594<span class="visually-hidden">Cart</span></a>
19595    </div>
19596  </header>
19597</sticky-header>
19598
19599<script type="application/ld+json">
19600  {
19601    "@context": "http://schema.org",
19602    "@type": "Organization",
19603    "name": "Team Doctors",
19604    
19605      "logo": "https:\/\/teamdoctors.com\/cdn\/shop\/files\/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Banner_-_Light_Background_copy.png?v=1776239745\u0026width=500",
19606    
19607    "sameAs": [
19608      "",
19609      "",
19610      "",
19611      "",
19612      "",
19613      "",
19614      "",
19615      "",
19616      ""
19617    ],
19618    "url": "https:\/\/teamdoctors.com\/pages\/about-us"
19619  }
19620</script>
19620
19621</div>
19622<!-- END sections: header-group -->
19623<div id="shopify-section-cart-drawer" class="shopify-section">
19624
19625<style>
19626  .drawer {
19627    visibility: hidden;
19628  }
19629  
19630  
19631  
19632</style>
19633
19634<cart-drawer class="drawer is-empty cart-drawer--desktop-width-normal cart-drawer--mobile-width-full" data-type='modal'>
19635  <div id="CartDrawer" class="cart-drawer">
19636    <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div>
19637    <div
19638      class="drawer__inner"
19639      role="dialog"
19640      aria-modal="true"
19641      aria-label="Your cart"
19642      tabindex="-1"
19643    ><div class="drawer__inner-empty">
19644          <div class="cart-drawer__warnings center">
19645            <div class="cart-drawer__empty-content">
19646              <h2 class="cart__empty-text">Your cart is empty</h2>
19647              <button
19648                class="drawer__close"
19649                type="button"
19650                onclick="this.closest('cart-drawer').close()"
19651                aria-label="Close"
19652              >
19653                <svg
19654  xmlns="http://www.w3.org/2000/svg"
19655  aria-hidden="true"
19656  focusable="false"
19657  class="icon icon-close"
19658  fill="none"
19659  viewBox="0 0 18 17"
19660>
19661  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
19662</svg>
19663
19664              </button>
19665              
19666                <a href="/collections/all" class="button">
19667                  Continue shopping
19668                </a>
19669              
19670<p class="cart__login-title h3">Have an account?</p>
19671                <p class="cart__login-paragraph">
19672                  <a href="https://teamdoctors.com/customer_authentication/redirect?locale=en&region_country=US" class="link underlined-link">Log in</a> to check out faster.
19673                </p></div>
19674          </div></div><div class="drawer__header" style='--alignment:flex-start'>
19675        <h2 class="drawer__heading">
19676          
19677          Cart • 0 items
19678        </h2>
19679        <button
19680          class="drawer__close"
19681          type="button"
19682          onclick="this.closest('cart-drawer').close()"
19683          aria-label="Close"
19684        >
19685          <svg
19686  xmlns="http://www.w3.org/2000/svg"
19687  aria-hidden="true"
19688  focusable="false"
19689  class="icon icon-close"
19690  fill="none"
19691  viewBox="0 0 18 17"
19692>
19693  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
19694</svg>
19695
19696        </button>
19697      </div>
19698      <div class="cart-drawer__body">
19699        
19700        
19701        
19702          
19703              
19704              <div class='cart-timer color-inverse' style="--font-size:1.4rem;--margin-top: 0.0rem;--margin-bottom: 1.5rem;" >
19705                <strong>Cart reserved for 
19706                <countdown-timer data-duration="300"></countdown-timer>
19707              </strong>
19708              </div>
19709            
19710        
19711          
19712              <cart-drawer-items
19713                
19714                  class=" is-empty"
19715                
19716                style="--image-size: 20%;--title-size:1.5rem;--margin-top: 2.1rem;--margin-bottom: 2.1rem;" 
19717                
19718              >
19719                <form
19720                  action="/cart"
19721                  id="CartDrawer-Form"
19722                  class="cart__contents cart-drawer__form"
19723                  method="post"
19724                >
19725                  <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p>
19726                    <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status">
19727                      Loading...
19728                    </p>
19729                  </div>
19730                  <div id="CartDrawer-CartErrors" role="alert"></div>
19731                </form>
19732              </cart-drawer-items>
19733            
19734        
19735          
19736        
19737          
19738        
19739          
19740        
19741      </div>
19742      <div class="drawer__footer">
19743        
19744          
19745        
19746          
19747        
19748          
19749              <div class="cart-drawer__footer" style="--margin-top: 1.5rem;--margin-bottom: 1.5rem;" >
19750                <div class="cart-drawer__totals" role="status" style='--spacing:1.0rem;'>
19751                  
19752                    
19753                    
19754                  
19755                  
19756                    
19757                    <p class='cart-drawer__totals__row cart-drawer__totals__row--spaced text-color-text' style='--text-size:2.0rem;'>
19758                      <span><strong>Subtotal</strong></span><span><strong><span class='cart-drawer__totals__row__money'>$0.00</span></strong></span>
19759                    </p>
19760                  
19761                </div>
19762                  
19763                  <p class='cart-drawer__total-savings spaced text-color-accent-1'>
19764                    
19765                  </p>
19766                
19767              </div>
19768            
19769        
19770          
19771              <style>
19772                
19773                #CartDrawer-Checkout {
19774                  --icon-scale: 1.2em;
19775                  --icon-spacing: 10px;
19776                }
19777                
19778                
19779              </style>
19780              <div class="cart__ctas" style="--margin-top: 1.5rem;--margin-bottom: 1.5rem;" >
19781                <noscript>
19782                  <button type="submit" class="cart__update-button button button--secondary" form="CartDrawer-Form">
19783                    Update
19784                  </button>
19785                </noscript>
19786                <div class='tnc-checkbox-warning tnc-checkbox-warning--above-button hidden' style='margin-bottom: 0.6em;'></div>
19787                <button
19788                  type="submit"
19789                  id="CartDrawer-Checkout"
19790                  class="cart__checkout-button button"
19791                  name="checkout"
19792                  form="CartDrawer-Form"
19793                  
19794                    disabled
19795                  
19796                >
19797                  <span class='button__label'>
19798                    Check out
19799                    
19800                  </span>
19801                </button><div class='tnc-checkbox-warning tnc-checkbox-warning--under-button hidden' style='margin-top: 0.6em;'></div>
19802              </div>
19803        
19804          <div class='payment-badges-block' style="--margin-top: 1.2rem;--margin-bottom: 1.2rem;" >
19805                <ul class="payment-badges" role="list">
19806                  
19807                  
19808
19809                    <li class="list-payment__item">
19810                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg>
19811
19812                    </li>
19813                    <li class="list-payment__item">
19814                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/>
19814<path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
19815
19816                    </li>
19817                    <li class="list-payment__item">
19818                      <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
19818<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
19819
19820                    </li>
19821                    <li class="list-payment__item">
19822                      <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg>
19823                    </li>
19824                    <li class="list-payment__item">
19825                      <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg>
19826                    </li>
19827                    <li class="list-payment__item">
19828                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
1982806zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
19829
19830                    </li>
19831                    <li class="list-payment__item">
19832                      <svg class="icon icon--full-color" width="38" height="24" role="img" aria-labelledby="pi-jcb" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg"><title id="pi-jcb">JCB</title><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/></g><path d="M11.5 5H15v11.5a2.5 2.5 0 0 1-2.5 2.5H9V7.5A2.5 2.5 0 0 1 11.5 5z" fill="#006EBC"/><path d="M18.5 5H22v11.5a2.5 2.5 0 0 1-2.5 2.5H16V7.5A2.5 2.5 0 0 1 18.5 5z" fill="#F00036"/><path d="M25.5 5H29v11.5a2.5 2.5 0 0 1-2.5 2.5H23V7.5A2.5 2.5 0 0 1 25.5 5z" fill="#2AB419"/>
19832<path d="M10.755 14.5c-1.06 0-2.122-.304-2.656-.987l.78-.676c.068 1.133 3.545 1.24 3.545-.19V9.5h1.802v3.147c0 .728-.574 1.322-1.573 1.632-.466.144-1.365.221-1.898.221zm8.116 0c-.674 0-1.388-.107-1.965-.366-.948-.425-1.312-1.206-1.3-2.199.012-1.014.436-1.782 1.468-2.165 1.319-.49 3.343-.261 3.926.27v.972c-.572-.521-1.958-.898-2.919-.46-.494.226-.737.917-.744 1.448-.006.56.245 1.252.744 1.497.953.467 2.39.04 2.919-.441v1.01c-.358.255-1.253.434-2.129.434zm8.679-2.587c.37-.235.582-.567.582-1.005 0-.438-.116-.687-.348-.939-.206-.207-.58-.469-1.238-.469H23v5h3.546c.696 0 1.097-.23 1.315-.415.283-.25.426-.53.426-.96 0-.431-.155-.908-.737-1.212zm-1.906-.281h-1.428v-1.444h1.495c.956 0 .944 1.444-.067 1.444zm.288 2.157h-1.716v-1.513h1.716c.986 0 1.083 1.513 0 1.513z" fill="#FFF" fill-rule="nonzero"/></g></svg>
19833                    </li>
19834                    <li class="list-payment__item">
19835                      <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-maestro"><title id="pi-maestro">Maestro</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg>
19836                    </li>
19837                    <li class="list-payment__item">
19838                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
19839
19840                    </li>
19841                    <li class="list-payment__item">
19842                      <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/>
19842<path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
19843                    </li>
19844                    <li class="list-payment__item">
19845                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
19846
19847                    </li>
19848                    <li class="list-payment__item">
19849                      <svg class="icon icon--full-color" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85
19849h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg>
19850                    </li>
19851                    <li class="list-payment__item">
19852                      <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
1985216.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
19853
19854                    </li></ul>
19855              </div>
19856        
19857        <!-- end footer -->
19858      </div>
19859    </div>
19860  </div>
19861</cart-drawer>
19862
19863<script>
19864  document.addEventListener('DOMContentLoaded', function () {
19865    function isIE() {
19866      const ua = window.navigator.userAgent;
19867      const msie = ua.indexOf('MSIE ');
19868      const trident = ua.indexOf('Trident/');
19869
19870      return msie > 0 || trident > 0;
19871    }
19872
19873    if (!isIE()) return;
19874    const cartSubmitInput = document.createElement('input');
19875    cartSubmitInput.setAttribute('name', 'checkout');
19876    cartSubmitInput.setAttribute('type', 'hidden');
19877    document.querySelector('#cart').appendChild(cartSubmitInput);
19878    document.querySelector('#checkout').addEventListener('click', function (event) {
19879      document.querySelector('#cart').submit();
19880    });
19881  });
19882</script>
19882
19883
19884</div><main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
19885      <section id="shopify-section-template--20359605715135__main" class="shopify-section section"><style data-shopify>.section-template--20359605715135__main-padding {
19886    padding-top: 27px;
19887    padding-bottom: 27px;
19888  }
19889
19890  @media screen and (min-width: 750px) {
19891    .section-template--20359605715135__main-padding {
19892      padding-top: 36px;
19893      padding-bottom: 36px;
19894    }
19895  }</style><div class="page-width page-width--narrow section-template--20359605715135__main-padding">
19896  <h1 class="main-page-title page-title h0">
19897    About Us
19898  </h1>
19899  <div class="rte">
19900    
19901  </div>
19902</div>
19903
19904
19905</section><section id="shopify-section-template--20359605715135__newsletter" class="shopify-section section"><style data-shopify>.section-template--20359605715135__newsletter-padding {
19906    padding-top: 51px;
19907    padding-bottom: 39px;
19908  }
19909
19910  @media screen and (min-width: 750px) {
19911    .section-template--20359605715135__newsletter-padding {
19912      padding-top: 68px;
19913      padding-bottom: 52px;
19914    }
19915  }
19916
19917  .color-scheme-template--20359605715135__newsletter.color-custom {
19918    --color-background: 255, 255, 255;
19919    --gradient-background: #FFFFFF;
19920    
19921    --color-foreground: 46, 42, 57;
19922    --color-button: 221, 29, 29;
19923    --color-button-text: 255, 255, 255;
19924  }
19925  
19926</style><div class="newsletter center  content-for-grouping animate-section animate--hidden always-display">
19927  
19928  <div class="newsletter__wrapper color-scheme-template--20359605715135__newsletter color-background-2 gradient content-container isolate content-container--full-width section-template--20359605715135__newsletter-padding"><h2 class="h1 title-with-highlight animate-item animate-item--child"  style="--hightlight-color:#6D388B;--index:1;">
19929            Subscribe to our emails
19930          </h2><div class="newsletter__subheading rte animate-item animate-item--child"  style="--index:2;"><p>Join our email list for exclusive offers and the latest news. </p></div><div class='animate-item animate-item--child'  style="--index:3;">
19931            <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
19932              <input type="hidden" name="contact[tags]" value="newsletter">
19933              <div class="newsletter-form__field-wrapper">
19934                <div class="field">
19935                  <input
19936                    id="NewsletterForm--template--20359605715135__newsletter"
19937                    type="email"
19938                    name="contact[email]"
19939                    class="field__input"
19940                    value=""
19941                    aria-required="true"
19942                    autocorrect="off"
19943                    autocapitalize="off"
19944                    autocomplete="email"
19945                    
19946                    placeholder="Email"
19947                    required
19948                  >
19949                  <label class="field__label" for="NewsletterForm--template--20359605715135__newsletter">
19950                    Email
19951                  </label>
19952                  
19953                </div>
19954                
19955                  <button
19956                    type="submit"
19957                    class="button newsletter__solid-btn button--full-width"
19958                    name="commit"
19959                    id="Subscribe"
19960                    aria-label="Subscribe"
19961                  >
19962                    Sign up
19963                  </button>
19964                
19965</div></form>
19966          </div></div>
19967</div>
19968
19969
19970</section>
19971    </main>
19972
19973    <div id="shopify-section-promo-popup" class="shopify-section">
19974</div>
19975    <div id="shopify-section-scroll-to-top-btn" class="shopify-section"><style data-shopify>
19976  .scroll-to-top-btn-scroll-to-top-btn {
19977    --offset-x: 2.0rem;
19978    --offset-y: 2.0rem;
19979  }
19980  @media screen and (max-width: 749px) {
19981    .scroll-to-top-btn-scroll-to-top-btn {
19982      --offset-x: 1.5rem;
19983      --offset-y: 1.5rem;
19984    }
19985  }
19986</style>
19987
19988
19989  <button
19990    class="floating-btn scroll-to-top-btn scroll-to-top-btn-bottom-right scroll-to-top-btn-scroll-to-top-btn color-accent-1"
19991    onclick="handleScrollToTop()"
19992    
19993      style="display:none;"
19994    
19995  >
19996    <svg
19997      aria-hidden="true"
19998      focusable="false"
19999      data-prefix="fas"
20000      data-icon="chevron-up"
20001      class="svg-inline--fa fa-chevron-up "
20002      role="img"
20003      xmlns="http://www.w3.org/2000/svg"
20004      viewBox="0 0 512 512"
20005    >
20006      <path fill="currentColor" d="M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"></path>
20007    </svg>
20008  </button>
20009  
20010  
20010<script>
20011    
20012      function checkBtnVisibility() {
20013        const scrollToTopBtn = document.querySelector('.scroll-to-top-btn');
20014        if (scrollToTopBtn) {
20015          if (window.scrollY > 400) {
20016            scrollToTopBtn.style.display = '';
20017          } else {
20018            scrollToTopBtn.style.display = 'none';
20019          }
20020        }
20021      }
20022      checkBtnVisibility()
20023    
20024      window.addEventListener('scroll', checkBtnVisibility)
20025    
20026  
20027    function handleScrollToTop() {
20028      window.scrollTo({
20029        top: 0,
20030        behavior: "smooth"
20031      })
20032    }
20033  </script>
20033
20034
20035
20036
20037
20038</div>
20039    <div id="shopify-section-global-music-player" class="shopify-section"><style data-shopify>
20040  .music-player-global-music-player {
20041    --offset-x: 2.0rem;
20042    --offset-y: 2.0rem;
20043  }
20044  @media screen and (max-width: 749px) {
20045    .music-player-global-music-player {
20046      --offset-x: 1.5rem;
20047      --offset-y: 1.5rem;
20048    }
20049  }
20050</style>
20051
20052
20053
20054
20055</div>
20056    <!-- BEGIN sections: footer-group -->
20057<div id="shopify-section-sections--20359605878975__footer" class="shopify-section shopify-section-group-footer-group">
20058<style data-shopify>.footer {
20059    margin-top: 0px;
20060  }
20061
20062  .section-sections--20359605878975__footer-padding {
20063    padding-top: 24px;
20064    padding-bottom: 15px;
20065  }
20066
20067  @media screen and (min-width: 750px) {
20068    .footer {
20069      margin-top: 0px;
20070    }
20071
20072    .section-sections--20359605878975__footer-padding {
20073      padding-top: 32px;
20074      padding-bottom: 20px;
20075    }
20076  }
20077
20078  .color-scheme-sections--20359605878975__footer.color-custom {
20079    --color-background: 18, 18, 18;
20080    --gradient-background: #121212;
20081    
20082    --color-foreground: 255, 255, 255;
20083    --color-button: 255, 255, 255;
20084    --color-button-text: 18, 18, 18;
20085    --color-base-outline-button-labels: 255, 255, 255;
20086  }
20087  
20088</style><footer class="footer color-scheme-sections--20359605878975__footer color-accent-1 gradient section-sections--20359605878975__footer-padding animate-section animate--hidden" data-animations='' data-type='RfaaO6tc35zLKcDRUCltKqx5sXmgAgKrTClqXyYJb4nkV8I/xi1BjoFOTSDWYyy7mYpaz8tdnUIuo33R4J1YMCHzsxfvRzZwl1pYsCp5+ZuhAvfjIMeuWwVa/Z18t/GmA6L4Wm7s3a5VRGakCsshnlvnWEZ6+yhYLS7h7Kg2oDgY9rhPIOdVKLYbOPSC+DKe0ST+z2XaAEg/X/70GpBodknSyBSv780BkNSlsn53aBN6G01kcGetmqrBwLdIKuSbtvUEVz6c6I9vwn2Ni5mGBYObqP9R5Gu85tetSC3V4z2OWL6Xj1w2hcfcITSk615rP4GL8XEH3aej6YsmyAYMs0Ux/t9IFZPbwreRhb4sjhAhW67LoVTOYXnOPbm6/AXr6RmBPpj6l6/DgaBGR4ednszWnbI03fR+Kvp0cqFcsmNpCMxrl1X3oCjFizIw8yDE'><div class="footer__content-top page-width"><div class="footer__blocks-wrapper grid"><div
20089                class="footer-block grid__item footer-block--desktop-4 footer-block--mobile-2 animate-item animate-item--child"
20090                style="--index: 0;" 
20091              ><div class="footer-block__details-content footer-block-image center"><div
20092                          class="footer-block__image-wrapper global-media-settings"
20093                          style="max-width: min(100%, 100px);"
20094                        >
20095                          
20096                            <img
20097                              srcset="//teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Square_-_For_Dark_Background.png?v=1776239957&width=100, //teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Square_-_For_Dark_Background.png?v=1776239957&width=200 2x"
20098                              src="//teamdoctors.com/cdn/shop/files/Logo_-_Team_Doctors_-_Print_Logo_-_Team_Doctors_Square_-_For_Dark_Background.png?v=1776239957&width=760"
20099                              alt=""
20100                              loading="lazy"
20101                              width="1787"
20102                              height="1520"
20103                            >
20104                          
20105                        </div></div></div><div
20106                class="footer-block grid__item footer-block--menu footer-block--desktop-4 footer-block--mobile-1 animate-item animate-item--child"
20107                style="--index: 1;" 
20108              ><h2 class="footer-block__heading">Quick links</h2><ul class="footer-block__details-content list-unstyled"><li>
20109                            <a
20110                              href="/pages/privacy-policy"
20111                              class="link link--text list-menu__item list-menu__item--link"
20112                            >
20113                              Privacy Policy
20114                            </a>
20115                          </li><li>
20116                            <a
20117                              href="/pages/return-policy-1"
20118                              class="link link--text list-menu__item list-menu__item--link"
20119                            >
20120                              Return & Refund Policy
20121                            </a>
20122                          </li></ul></div><div
20123                class="footer-block grid__item footer-block--desktop-4 footer-block--mobile-2 animate-item animate-item--child"
20124                style="--index: 2;" 
20125              ><h2 class="footer-block__heading">Subscribe to our emails</h2>
20126                    <div>
20127                      <div class="footer-block__details-content footer-block__details-content-mb rte">
20128                        <p>Join our email list for exclusive offers and the latest news.</p>
20129                      </div><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter">
20130                        <div class="newsletter-form__field-wrapper">
20131                          <div class="field">
20132                            <input
20133                              id="NewsletterForm--sections--20359605878975__footer"
20134                              type="email"
20135                              name="contact[email]"
20136                              class="field__input"
20137                              value=""
20138                              aria-required="true"
20139                              autocorrect="off"
20140                              autocapitalize="off"
20141                              autocomplete="email"
20142                              
20143                              placeholder="Email"
20144                              required
20145                            >
20146                            <label class="field__label" for="NewsletterForm--sections--20359605878975__footer">
20147                              Email
20148                            </label>
20149                            
20150                          </div></div>
20151                        
20152                          <button
20153                            type="submit"
20154                            class="button newsletter__solid-btn button--full-width"
20155                            name="commit"
20156                            id="Subscribe"
20157                            aria-label="Subscribe"
20158                          >
20159                            Sign up
20160                          </button>
20161                        
20162</form></div></div></div><div class="footer-block--newsletter"></div>
20163      </div>
20163<div class="footer__content-bottom animate-item animate-item--child" style="--index: 3;">
20164    <div class="footer__content-bottom-wrapper page-width">
20165      <div class="footer__column footer__localization isolate"></div>
20166      <div class="footer__column footer__column--info"><div class="footer__payment">
20167            <span class="visually-hidden">Payment methods</span>
20168            <ul class="list list-payment" role="list">
20169              
20170              
20171<li class="list-payment__item">
20172                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg>
20173
20174                </li><li class="list-payment__item">
20175                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
20176
20177                </li><li class="list-payment__item">
20178                  <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 
201780 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
20179
20180                </li><li class="list-payment__item">
20181                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg>
20182                </li><li class="list-payment__item">
20183                  <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg>
20184                </li><li class="list-payment__item">
20185                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
2018506zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>
20186
20187                </li><li class="list-payment__item">
20188                  <svg class="icon icon--full-color" width="38" height="24" role="img" aria-labelledby="pi-jcb" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg"><title id="pi-jcb">JCB</title><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/></g><path d="M11.5 5H15v11.5a2.5 2.5 0 0 1-2.5 2.5H9V7.5A2.5 2.5 0 0 1 11.5 5z" fill="#006EBC"/><path d="M18.5 5H22v11.5a2.5 2.5 0 0 1-2.5 2.5H16V7.5A2.5 2.5 0 0 1 18.5 5z" fill="#F00036"/><path d="M25.5 5H29v11.5a2.5 2.5 0 0 1-2.5 2.5H23V7.5A2.5 2.5 0 0 1 25.5 5z" fill="#2AB419"/>
20188<path d="M10.755 14.5c-1.06 0-2.122-.304-2.656-.987l.78-.676c.068 1.133 3.545 1.24 3.545-.19V9.5h1.802v3.147c0 .728-.574 1.322-1.573 1.632-.466.144-1.365.221-1.898.221zm8.116 0c-.674 0-1.388-.107-1.965-.366-.948-.425-1.312-1.206-1.3-2.199.012-1.014.436-1.782 1.468-2.165 1.319-.49 3.343-.261 3.926.27v.972c-.572-.521-1.958-.898-2.919-.46-.494.226-.737.917-.744 1.448-.006.56.245 1.252.744 1.497.953.467 2.39.04 2.919-.441v1.01c-.358.255-1.253.434-2.129.434zm8.679-2.587c.37-.235.582-.567.582-1.005 0-.438-.116-.687-.348-.939-.206-.207-.58-.469-1.238-.469H23v5h3.546c.696 0 1.097-.23 1.315-.415.283-.25.426-.53.426-.96 0-.431-.155-.908-.737-1.212zm-1.906-.281h-1.428v-1.444h1.495c.956 0 .944 1.444-.067 1.444zm.288 2.157h-1.716v-1.513h1.716c.986 0 1.083 1.513 0 1.513z" fill="#FFF" fill-rule="nonzero"/></g></svg>
20189                </li><li class="list-payment__item">
20190                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-maestro"><title id="pi-maestro">Maestro</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg>
20191                </li><li class="list-payment__item">
20192                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
20193
20194                </li><li class="list-payment__item">
20195                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 
201950-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
20196                </li><li class="list-payment__item">
20197                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
20198
20199                </li><li class="list-payment__item">
20200                  <svg class="icon icon--full-color" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.
20200635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg>
20201                </li><li class="list-payment__item">
20202                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
2020216.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
20203
20204                </li></ul>
20205          </div></div>
20206    </div>
20207    <div class="footer__content-bottom-wrapper page-width">
20208      <div class="footer__copyright caption">
20209        <small class="copyright__content">
20210          &copy; 2026, <a href="/" title="">Team Doctors</a></small>
20211        
20212          <small class="copyright__content">Powered by <a href="https://shrinesolutions.com/" target="_blank" title="https://shrinesolutions.com/">Shrine</a></small>
20213        
20214</div>
20215    </div>
20216  </div>
20217</footer>
20218
20219
20220
20221
20222</div>
20223<!-- END sections: footer-group -->
20224
20225    <ul hidden>
20226      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
20227      <li id="a11y-new-window-message">Opens in a new window.</li>
20228    </ul>
20229
20230    
20230<script>
20231      window.shopUrl = 'https://teamdoctors.com';
20232      window.routes = {
20233        cart_add_url: '/cart/add',
20234        cart_change_url: '/cart/change',
20235        cart_update_url: '/cart/update',
20236        cart_clear_url: '/cart/clear',
20237        cart_url: '/cart',
20238        predictive_search_url: '/search/suggest'
20239      };
20240
20241      window.cartStrings = {
20242        error: `There was an error while updating your cart. Please try again.`,
20243        quantityError: `You can only add [quantity] of this item to your cart.`
20244      }
20245
20246      window.variantStrings = {
20247        addToCart: `Add to cart`,
20248        soldOut: `Sold out`,
20249        unavailable: `Unavailable`,
20250        unavailable_with_option: `[value] - Unavailable`,
20251      }
20252
20253      window.accessibilityStrings = {
20254        imageAvailable: `Image [index] is now available in gallery view`,
20255        shareSuccess: `Link copied to clipboard`,
20256        pauseSlideshow: `Pause slideshow`,
20257        playSlideshow: `Play slideshow`,
20258      }
20259    </script>
20259
20260
20261    
20261<script>
20262      const productForm = document.querySelector('product-form[data-main="true"]');
20263      if (productForm) {
20264        document.querySelectorAll('[id^="SectionAtcBtn-"]').forEach(btn => {
20265          btn.addEventListener('click', (e) => {
20266            productForm.handleSubmit(e);
20267          })
20268        })
20269      }
20270
20271      
20272        const stickyAtc = document.querySelector('.sticky-atc');
20273        let bottomMargin = 50;
20274        if (stickyAtc) bottomMargin += stickyAtc.clientHeight;
20275        const shrineAnimationsObserver = new IntersectionObserver(elements => {
20276          elements.forEach(element => {
20277            if (element.isIntersecting) {
20278              element.target.classList.add('animate--shown');
20279            } 
20280            
20281          })
20282        },  { rootMargin: `0px 0px -${bottomMargin}px 0px` })
20283
20284        function initAnimations(rootElement = document, isThemeEditorEvent = false) {
20285          const elementsToAnimate = rootElement.querySelectorAll('.animate-section');
20286          if (elementsToAnimate.length == 0) return;
20287
20288          
20289          elementsToAnimate.forEach(element => {
20290            if (isThemeEditorEvent) {
20291              element.classList.add('animate--shown');
20292              return;
20293            } 
20294            shrineAnimationsObserver.observe(element);
20295          })
20296        }
20297
20298        window.addEventListener('DOMContentLoaded', () => initAnimations());
20299        if (Shopify.designMode) {
20300          document.addEventListener('shopify:section:load', (event) => initAnimations(event.target, true));
20301          document.addEventListener('shopify:section:reorder', () => initAnimations(document, true));
20302        }
20303      
20304    </script>
20304
20305
20306    
20306<script>
20307      (function () {
20308        var links = document.links;
20309        for (let i = 0; i < links.length;  i++) {
20310          if (links[i].hostname !== window.location.hostname) {
20311            links[i].target = '_blank';
20312            links[i].rel = 'noreferrer noopener';
20313          }
20314        }
20315      })();
20316    </script>
20316
20317
20318    
20319      
20319<script>
20320        window.addEventListener("contextmenu", (e) => {
20321          e.preventDefault();
20322        });
20323        document.addEventListener("selectstart", (e) => {
20324          e.preventDefault();
20325        });
20326        document.addEventListener('DOMContentLoaded', function() {
20327          document.querySelectorAll('img').forEach(img => {
20328            img.addEventListener('dragstart', function(e) {
20329              e.preventDefault();
20330            })
20331          })
20332        })
20333        function ctrlShiftKey(e, keyCode) {
20334          return e.ctrlKey && e.shiftKey && e.keyCode === keyCode.charCodeAt(0);
20335        }
20336        document.addEventListener('keydown', function(e) {
20337          if (
20338            event.keyCode === 123 ||
20339            ctrlShiftKey(e, 'I') ||
20340            ctrlShiftKey(e, 'J') ||
20341            ctrlShiftKey(e, 'C') ||
20342            (e.ctrlKey && e.keyCode === 'U'.charCodeAt(0))
20343          ) {
20344            e.preventDefault();
20345          }
20346        })
20347      </script>
20347
20348    
20349    
20350  <style>  </style>
20351<div id="shopify-block-AcFN1M1hVN1RCVTB6Y__5057006142565981955" class="shopify-block shopify-app-block">
20351<script type="text/javascript">
20352  const promoConfig = {
20353    fontSize: '16',
20354    logoType: 'logo',
20355    logoColor: 'blue',
20356    pageType: 'cart',
20357    textAlign: 'left'
20358  };
20359  const drawerAppData = '{}';
20360  const drawerPromoAppConfig = (drawerAppData == '{}') ? {} : JSON.parse('') ;
20361  const drawerHasRegionKeys = drawerPromoAppConfig.hasOwnProperty('region_public_keys');
20362  let drawerPublicKey = null;
20363  if (Shopify.country == 'US') 
20364    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.us : null;
20365  if (Shopify.country == 'CA') 
20366    drawerPublicKey = (drawerHasRegionKeys) ? drawerPromoAppConfig.region_public_keys.ca : null;      
20367  const affirmPublicApiKeyCartDrawer = ('') ? '' : drawerPublicKey;
20368  const customDrawerTotalSelector = ('') ? '' : null;
20369  const customAdjacentElementSelector = ('') ? '' : null;
20370  const customAddToCartSelector = ('') ? '' : null;
20371  const customCartDrawerSelector = ('') ? '' : null;
20372  const publicKeyEntered = ('') ? '' : null;
20373</script>
20373
20374
20375</div>
20375<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
20375
20376</body>
20377</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.