{"id":5879,"date":"2026-01-06T21:23:42","date_gmt":"2026-01-07T05:23:42","guid":{"rendered":"https:\/\/ievolutionclub.com\/?page_id=5879"},"modified":"2026-04-11T09:04:07","modified_gmt":"2026-04-11T16:04:07","slug":"products-catalog","status":"publish","type":"page","link":"https:\/\/stage.ievolutionclub.com\/es\/products-catalog\/","title":{"rendered":"Cat\u00e1logo de productos"},"content":{"rendered":"                <style>.addon-lightbox,.fullscreen-viewer,.addon-modal-overlay{display:none}<\/style>\n        <!-- Product Page Style Lightbox HTML -->\n        <div id=\"addon-lightbox\" class=\"addon-lightbox\">\n            <!-- Mobile drag handle hint -->\n            <div class=\"lightbox-drag-handle\" aria-hidden=\"true\">\n                <div class=\"drag-bar\"><\/div>\n            <\/div>\n            <!-- Close hint toast -->\n            <div class=\"lightbox-close-toast\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n                <span>Press ESC or tap \u2715 to close<\/span>\n            <\/div>\n            <div class=\"lightbox-loader\">\n                <div class=\"loader-spinner\"><\/div>\n                <p>Loading product details...<\/p>\n            <\/div>\n            <!-- Top Navigation Bar -->\n            <div class=\"lightbox-topbar\">\n                <button class=\"lightbox-back-btn\" aria-label=\"Close\">\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <path d=\"M19 12H5M12 19l-7-7 7-7\"\/>\n                    <\/svg>\n                    <span>Back to Products<\/span>\n                <\/button>\n                <span class=\"lightbox-product-name\"><\/span>\n                <button class=\"lightbox-close\" aria-label=\"Close\">\n                    <span class=\"close-label\">Close<\/span>\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n                        <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n                    <\/svg>\n                    <span class=\"esc-hint\">ESC<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"lightbox-container\">\n                <div class=\"lightbox-left-column\">\n                    <div class=\"lightbox-gallery-section\">\n                        <div class=\"lightbox-main-image-wrapper\">\n                            <span class=\"lightbox-counter\"><\/span>\n                            <button class=\"lightbox-prev\" aria-label=\"Previous image\">\n                                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                    <polyline points=\"15 18 9 12 15 6\"><\/polyline>\n                                <\/svg>\n                            <\/button>\n                            <div class=\"lightbox-slides\"><\/div>\n                            <button class=\"lightbox-next\" aria-label=\"Next image\">\n                                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                    <polyline points=\"9 18 15 12 9 6\"><\/polyline>\n                                <\/svg>\n                            <\/button>\n                        <\/div>\n                        <div class=\"lightbox-thumbnails-wrapper\">\n                            <div class=\"lightbox-thumbnails\"><\/div>\n                        <\/div>\n                    <\/div>\n                    <!-- Documents will be appended here by JS -->\n                <\/div>\n                <div class=\"lightbox-info-section\">\n                    <div class=\"lightbox-description\"><\/div>\n                <\/div>\n            <\/div>\n            <!-- Full-width HTML description (admin \"Description\" field) under both columns -->\n            <section class=\"lightbox-details\" hidden>\n                <div class=\"lightbox-details-inner\">\n                    <h3 class=\"lightbox-details-heading\"><\/h3>\n                    <div class=\"lightbox-details-body\"><\/div>\n                <\/div>\n            <\/section>\n        <\/div>\n        \n        <!-- Full-screen Image Viewer -->\n        <div id=\"addon-fullscreen-viewer\" class=\"fullscreen-viewer\">\n            <div class=\"fullscreen-viewer-backdrop\"><\/div>\n            <button class=\"fullscreen-viewer-close\" aria-label=\"Close\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n            <\/button>\n            <button class=\"fullscreen-viewer-prev\" aria-label=\"Previous\">\n                <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n            <\/button>\n            <div class=\"fullscreen-viewer-image-wrap\">\n                <img decoding=\"async\" class=\"fullscreen-viewer-img\" src=\"\" alt=\"\" \/>\n            <\/div>\n            <button class=\"fullscreen-viewer-next\" aria-label=\"Next\">\n                <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n            <\/button>\n            <div class=\"fullscreen-viewer-counter\"><\/div>\n        <\/div>\n\n        <!-- iEvolution Branded Modal -->\n        <div id=\"addon-modal-overlay\" class=\"addon-modal-overlay\">\n            <div class=\"addon-modal\">\n                <div class=\"addon-modal-accent\"><\/div>\n                <button class=\"addon-modal-close\" onclick=\"closeAddonModal()\">\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n                <\/button>\n                <div class=\"addon-modal-icon\"><\/div>\n                <h3 class=\"addon-modal-title\"><\/h3>\n                <p class=\"addon-modal-message\"><\/p>\n                <div class=\"addon-modal-detail\"><\/div>\n                <button class=\"addon-modal-btn\" onclick=\"closeAddonModal()\">Got it<\/button>\n            <\/div>\n        <\/div>\n        \n                <!-- Catalog Header -->\n        <header class=\"catalog-header\">\n            <div class=\"catalog-header-inner\">\n                                <div class=\"catalog-header-logo\">\n                    <a href=\"https:\/\/stage.ievolutionclub.com\/es\/\">\n                        <img decoding=\"async\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/02\/Result-2026-02-17T124741.544.webp\" alt=\"iEvolution\">\n                    <\/a>\n                <\/div>\n                                \n                                <div class=\"catalog-header-right\">\n                            <div class=\"ulcs-widget modern-style\"\n        data-position=\"inline\"\n        data-type=\"both\"\n        data-mode=\"hover\">\n        <button class=\"ulcs-trigger notranslate trp-no-translate\" translate=\"no\" data-no-translation=\"1\" aria-haspopup=\"dialog\" aria-label=\"Change language and currency\">\n                                        <span class=\"ulcs-trigger-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n                <span class=\"ulcs-trigger-sep\">|<\/span>\n                <span class=\"ulcs-trigger-curr ulcs-currency-code\">USD<\/span>\n                        <svg class=\"ulcs-trigger-chevron\" width=\"10\" height=\"6\" viewBox=\"0 0 10 6\" fill=\"none\">\n                <path d=\"M1 1L5 5L9 1\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" \/>\n            <\/svg>\n        <\/button>\n\n        <!-- Inline hover dropdown (desktop only) -->\n        <div class=\"ulcs-dropdown notranslate trp-no-translate\" translate=\"no\" data-no-translation=\"1\" aria-hidden=\"true\">\n            <div class=\"ulcs-dropdown-inner\">\n                                    <div class=\"ulcs-dd-section\">\n                        <div class=\"ulcs-dd-label\">Country<\/div>\n                        <div class=\"ulcs-dd-options\">\n                                                            <button class=\"ulcs-dd-option ulcs-country-option\" data-country=\"US\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n                                    <span class=\"ulcs-dd-name\">Estados Unidos (EEUU)<\/span>\n                                    <span class=\"ulcs-dd-code\">US<\/span>\n                                <\/button>\n                                                            <button class=\"ulcs-dd-option ulcs-country-option\" data-country=\"MX\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddf2\ud83c\uddfd<\/span>\n                                    <span class=\"ulcs-dd-name\">M\u00e9xico<\/span>\n                                    <span class=\"ulcs-dd-code\">MX<\/span>\n                                <\/button>\n                                                            <button class=\"ulcs-dd-option ulcs-country-option\" data-country=\"GLOBAL\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\udf0d<\/span>\n                                    <span class=\"ulcs-dd-name\">Rest of the World<\/span>\n                                    <span class=\"ulcs-dd-code\">GLOBAL<\/span>\n                                <\/button>\n                                                    <\/div>\n                    <\/div>\n                \n                                    <div class=\"ulcs-dd-section ulcs-dd-section-border\">\n                        <div class=\"ulcs-dd-label\">Language<\/div>\n                        <div class=\"ulcs-dd-options\">\n                                                            <button class=\"ulcs-dd-option ulcs-dd-lang \" data-lang=\"en\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n                                    <span class=\"ulcs-dd-name\">English<\/span>\n                                    <span class=\"ulcs-dd-code\">EN<\/span>\n                                <\/button>\n                                                            <button class=\"ulcs-dd-option ulcs-dd-lang active\" data-lang=\"es\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddf2\ud83c\uddfd<\/span>\n                                    <span class=\"ulcs-dd-name\">Espa\u00f1ol<\/span>\n                                    <span class=\"ulcs-dd-code\">ES<\/span>\n                                <\/button>\n                                                    <\/div>\n                    <\/div>\n                \n                                    <div class=\"ulcs-dd-section ulcs-dd-section-border ulcs-dd-section-currency\">\n                        <div class=\"ulcs-dd-label\">Currency<\/div>\n                                                <div class=\"ulcs-dd-options ulcs-dd-currency-list\">\n                                                            <button class=\"ulcs-dd-option ulcs-dd-curr\" data-currency=\"USD\"\n                                    data-search=\"usd us dollar united states\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n                                    <span class=\"ulcs-dd-name\">US Dollar<\/span>\n                                    <span class=\"ulcs-dd-code\">USD<\/span>\n                                <\/button>\n                                                            <button class=\"ulcs-dd-option ulcs-dd-curr\" data-currency=\"MXN\"\n                                    data-search=\"mxn mexican peso mexico\">\n                                    <span class=\"ulcs-dd-flag\">\ud83c\uddf2\ud83c\uddfd<\/span>\n                                    <span class=\"ulcs-dd-name\">Mexican Peso<\/span>\n                                    <span class=\"ulcs-dd-code\">MXN<\/span>\n                                <\/button>\n                                                    <\/div>\n                    <\/div>\n                                \n            <\/div>\n        <\/div>\n    <\/div>\n                <\/div>\n                            <\/div>\n        <\/header>\n                \n        <div class=\"wc-secure-addon-display secure-addon-display catalog-mode-active catalog-list-layout hide-price-label\"\n             data-product-id=\"6887\"\n                          data-price-mode=\"retail\"\n                          data-has-address=\"0\"\n             data-min-total=\"0\"\n             data-max-total=\"0\"\n             data-min-bypass-product=\"0\"\n             data-min-total-sub=\"0\"\n             data-max-total-sub=\"0\"\n                                                    data-catalog-mode=\"1\"\n             data-catalog-layout=\"list\"\n             data-show-original-price=\"1\"\n                          data-subscription-first-pct=\"20\"\n             >\n\n            <h2 class=\"addon-section-title\">iEvolution Catalog<\/h2>\n            <p class=\"addon-section-subtitle\"><\/p>\n\n            \n                        \n                        <!-- Search Bar for Quick Filtering -->\n                        <div class=\"addon-search-container\">\n                <!-- Search Popup Backdrop -->\n                <div class=\"search-popup-backdrop\" id=\"searchPopupBackdrop\"><\/div>\n                \n                <!-- Search Popup -->\n                <div class=\"search-popup\" id=\"searchPopup\">\n                    <div class=\"search-popup-inner\">\n                        <div class=\"search-popup-input-row\">\n                            <svg class=\"search-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#2AAFD3\" stroke-width=\"2.5\">\n                                <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                                <path d=\"m21 21-4.35-4.35\"><\/path>\n                            <\/svg>\n                            <input \n                                type=\"text\" \n                                id=\"addon-search-input\" \n                                class=\"addon-search-input\" \n                                placeholder=\"Buscar productos...\"\n                                value=\"\"\n                                data-no-results=\"No se encontraron productos\"\n                                autocomplete=\"off\"\n                            \/>\n                            <button class=\"search-clear-btn\" style=\"display: none;\" onclick=\"clearAddonSearch()\">\n                                <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                                    <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n                                    <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n                                <\/svg>\n                            <\/button>\n                            <button class=\"search-popup-close\" id=\"searchPopupClose\" title=\"Cerrar\">\n                                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n                                    <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n                                    <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n                                <\/svg>\n                            <\/button>\n                        <\/div>\n                        <div class=\"search-results-count\" style=\"display: none;\">\n                            <span class=\"results-text\"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n                        \n                        <!-- Filter Button + Drawer Navigation -->\n                        <div class=\"filter-btn-wrapper\">\n                <button class=\"filter-trigger-btn\" id=\"filterTriggerBtn\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\"><\/line>\n                        <line x1=\"8\" y1=\"12\" x2=\"20\" y2=\"12\"><\/line>\n                        <line x1=\"12\" y1=\"18\" x2=\"20\" y2=\"18\"><\/line>\n                        <circle cx=\"4\" cy=\"12\" r=\"1\" fill=\"currentColor\"><\/circle>\n                        <circle cx=\"8\" cy=\"18\" r=\"1\" fill=\"currentColor\"><\/circle>\n                    <\/svg>\n                    <span class=\"filter-btn-label\">Filter:<\/span>\n                    <span class=\"filter-btn-active\" id=\"filterActiveLabel\">All Products<\/span>\n                    <span class=\"filter-btn-count\" id=\"filterActiveCount\">27<\/span>\n                    <svg class=\"filter-chevron\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n                        <polyline points=\"6 9 12 15 18 9\"><\/polyline>\n                    <\/svg>\n                <\/button>\n                \n                <button class=\"search-trigger-btn\" id=\"searchTriggerBtn\" title=\"Buscar productos...\">\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/button>\n            <\/div>\n            \n            <!-- Filter Drawer Backdrop -->\n            <div class=\"filter-drawer-backdrop\" id=\"filterDrawerBackdrop\"><\/div>\n            \n            <!-- Filter Drawer -->\n            <div class=\"filter-drawer\" id=\"filterDrawer\">\n                <div class=\"filter-drawer-header\">\n                    <h4>FILTER BY<\/h4>\n                    <button class=\"filter-drawer-close\" id=\"filterDrawerClose\">\n                        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\n                            <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\n                            <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\n                        <\/svg>\n                    <\/button>\n                <\/div>\n                <div class=\"filter-drawer-list\">\n                                            <button class=\"filter-drawer-item addon-tab-btn active\" \n                                data-tab=\"all\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">All Products<\/span>\n                            <span class=\"filter-item-count tab-count\">27<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"top\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Top Sellers<\/span>\n                            <span class=\"filter-item-count tab-count\">5<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"detox\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Detox<\/span>\n                            <span class=\"filter-item-count tab-count\">5<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"weight\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Weight Control<\/span>\n                            <span class=\"filter-item-count tab-count\">5<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"muscle\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Muscle mass-Fitness<\/span>\n                            <span class=\"filter-item-count tab-count\">4<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"immty\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Immunity<\/span>\n                            <span class=\"filter-item-count tab-count\">6<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"energy\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Energy<\/span>\n                            <span class=\"filter-item-count tab-count\">10<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"aging\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Anti-aging<\/span>\n                            <span class=\"filter-item-count tab-count\">3<\/span>\n                        <\/button>\n                                            <button class=\"filter-drawer-item addon-tab-btn \" \n                                data-tab=\"kits\">\n                            <span class=\"filter-item-radio\"><\/span>\n                            <span class=\"filter-item-name\">Kits\/Packs<\/span>\n                            <span class=\"filter-item-count tab-count\">3<\/span>\n                        <\/button>\n                                                        <\/div>\n            <\/div>\n                        \n                            <!-- Tab Content Sections -->\n                                <div class=\"addon-tab-content active\" \n                     data-tab-content=\"all\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"2073\"\n              data-price-mxn=\"1199\"             data-product-name=\"liver-d\"\n             data-translated-name=\"liver-d\"\n             data-product-slug=\"liver-d\"\n             data-search-tags=\"\"\n             data-subtitle=\"liver detox formula\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2073\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/p0xfll\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2073\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Liver-D\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2073\">Liver-D<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Liver Detox Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2073\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4932\"\n              data-price-mxn=\"399\"             data-product-name=\"colon-d\"\n             data-translated-name=\"colon-d\"\n             data-product-slug=\"colon-d\"\n             data-search-tags=\"\"\n             data-subtitle=\"colon detox tea\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4932\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/dnr13d\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4932\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Colon-D\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4932\">Colon-D<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Colon Detox Tea<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>19.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4932\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1908\"\n              data-price-mxn=\"999\"             data-product-name=\"proenzi+\"\n             data-translated-name=\"proenzi+\"\n             data-product-slug=\"proenzi\"\n             data-search-tags=\"\"\n             data-subtitle=\"digestive enzymes, probiotics &amp; prebiotics\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1908\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/jf4qlk\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1908\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Proenzi+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1908\">Proenzi+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Digestive Enzymes, Probiotics &amp; Prebiotics<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1908\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1915\"\n              data-price-mxn=\"999\"             data-product-name=\"bps\"\n             data-translated-name=\"bps\"\n             data-product-slug=\"bps-blood-pressure-support\"\n             data-search-tags=\"\"\n             data-subtitle=\"blood pressure support\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1915\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/rqanbz\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1915\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"BPS\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090705.830.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1915\">BPS<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Blood Pressure Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1915\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1916\"\n              data-price-mxn=\"999\"             data-product-name=\"ss+\"\n             data-translated-name=\"ss+\"\n             data-product-slug=\"ss-blood-sugar-support\"\n             data-search-tags=\"\"\n             data-subtitle=\"sugar support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1916\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"SS+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1916\">SS+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Sugar Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1916\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2071\"\n              data-price-mxn=\"999\"             data-product-name=\"can-d caps\"\n             data-translated-name=\"can-d caps\"\n             data-product-slug=\"can-d-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"candida balance formula\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2071\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Can-D Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2071\">Can-D Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Candida Balance Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2071\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2024\"\n              data-price-mxn=\"999\"             data-product-name=\"daily liver plus\"\n             data-translated-name=\"daily liver plus\"\n             data-product-slug=\"daily-liver-plus\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily liver support &amp; protection\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2024\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/ok12hz\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2024\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Daily Liver Plus\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2024\">Daily Liver Plus<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Liver Support &amp; Protection<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2024\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1913\"\n              data-price-mxn=\"999\"             data-product-name=\"j &amp; b support\"\n             data-translated-name=\"j &#038; b support\"\n             data-product-slug=\"joints-bones-support\"\n             data-search-tags=\"\"\n             data-subtitle=\"complete joint &amp; bone health formula\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1913\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/fckl9n\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1913\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"J &amp; B Support\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1913\">J & B Support<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Complete Joint &amp; Bone Health Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1913\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1914\"\n              data-price-mxn=\"999\"             data-product-name=\"omegas 3 6 9\"\n             data-translated-name=\"omegas 3 6 9\"\n             data-product-slug=\"omega-3-6-9-vitamin-e\"\n             data-search-tags=\"\"\n             data-subtitle=\"complete essential fatty acid formula with vitamin e\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1914\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/6agn4g\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1914\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Omegas 3 6 9\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101020.243.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1914\">Omegas 3 6 9<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Complete Essential Fatty Acid Formula with Vitamin E<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1914\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2113\"\n              data-price-mxn=\"999\"             data-product-name=\"thyr+\"\n             data-translated-name=\"thyr+\"\n             data-product-slug=\"thyr\"\n             data-search-tags=\"\"\n             data-subtitle=\"thyroid &amp; hormonal balance support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2113\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"THYR+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095910.142.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2113\">THYR+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Thyroid &amp; Hormonal Balance Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2113\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4730\"\n              data-price-mxn=\"999\"             data-product-name=\"fit caps\"\n             data-translated-name=\"fit caps\"\n             data-product-slug=\"fit-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"metabolic support &amp; energy formula\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4730\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Fit Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4730\">Fit Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Metabolic Support &amp; Energy Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4730\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4733\"\n              data-price-mxn=\"999\"             data-product-name=\"dtx caps\"\n             data-translated-name=\"dtx caps\"\n             data-product-slug=\"dtx-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"natural digestive support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4733\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"DTX Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4733\">DTX Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Natural Digestive Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4733\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1917\"\n              data-price-mxn=\"999\"             data-product-name=\"colloidal silver plus\"\n             data-translated-name=\"colloidal silver plus\"\n             data-product-slug=\"colloidal-silver-plus\"\n             data-search-tags=\"\"\n             data-subtitle=\"immune system support\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1917\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/ylcw59\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1917\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Colloidal Silver Plus\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1917\">Colloidal Silver Plus<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Immune System Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1917\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4736\"\n              data-price-mxn=\"1399\"             data-product-name=\"smr\"\n             data-translated-name=\"smr\"\n             data-product-slug=\"smr-smart-meal-replacement\"\n             data-search-tags=\"\"\n             data-subtitle=\"smart meal replacement\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4736\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/2lcxnl\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4736\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"SMR\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4736\">SMR<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Smart Meal Replacement<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>69.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4736\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1918\"\n              data-price-mxn=\"699\"             data-product-name=\"royal coffee black\"\n             data-translated-name=\"royal coffee black\"\n             data-product-slug=\"royal-coffee\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy, digestion &amp; immune support\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1918\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/d994iw\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1918\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Black\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1918\">Royal Coffee Black<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy, Digestion &amp; Immune Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>34.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1918\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2114\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee latte\"\n             data-translated-name=\"royal coffee latte\"\n             data-product-slug=\"royal-coffee-latte-familiar\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy, adaptogenic support &amp; wellness\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2114\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Latte\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2114\">Royal Coffee Latte<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy, Adaptogenic Support &amp; Wellness<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2114\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4747\"\n              data-price-mxn=\"1199\"             data-product-name=\"365 \u2013 on the go\"\n             data-translated-name=\"365 \u2013 on the go\"\n             data-product-slug=\"365-power-performance-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - on the go\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4747\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4747\">365 \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - On The Go<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4747\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4935\"\n              data-price-mxn=\"999\"             data-product-name=\"365  \u2013 family size\"\n             data-translated-name=\"365  \u2013 family size\"\n             data-product-slug=\"365-power-performance-family-size\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - family size\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4935\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365  \u2013 Family Size\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1536x1536.webp 1536w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-2048x2048.webp 2048w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-600x600.webp 600w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4935\">365  \u2013 Family Size<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Family Size<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4935\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4938\"\n              data-price-mxn=\"999\"             data-product-name=\"365 - capsules\"\n             data-translated-name=\"365 &#8211; capsules\"\n             data-product-slug=\"365-power-performance-capsules\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - capsules\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4938\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 - Capsules\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4938\">365 - Capsules<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Capsules<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4938\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2074\"\n              data-price-mxn=\"1199\"             data-product-name=\"pollen boost \u2013 on the go\"\n             data-translated-name=\"pollen boost \u2013 on the go\"\n             data-product-slug=\"pollen-boost-on-the-go-30-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy \u2022 well-being \u2022 overall health\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2074\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Pollen Boost \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2074\">Pollen Boost \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy \u2022 Well-being \u2022 Overall Health<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2074\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2075\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee black - on the go\"\n             data-translated-name=\"royal coffee black &#8211; on the go\"\n             data-product-slug=\"royal-coffee-gourmet-black-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"premium energy &amp; wellness blend\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2075\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/uirjfl\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2075\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Black - On The Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2075\">Royal Coffee Black - On The Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Premium Energy &amp; Wellness Blend<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2075\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2108\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee latte - satches\"\n             data-translated-name=\"royal coffee latte &#8211; satches\"\n             data-product-slug=\"royal-coffee-gourmet-latte-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"instant latte meets functional wellness\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2108\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Latte - Satches\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2108\">Royal Coffee Latte - Satches<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Instant Latte Meets Functional Wellness<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2108\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2110\"\n              data-price-mxn=\"1199\"             data-product-name=\"nad+\"\n             data-translated-name=\"nad+\"\n             data-product-slug=\"nad\"\n             data-search-tags=\"\"\n             data-subtitle=\"cellular energy \u2022 longevity \u2022 dna repair\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2110\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"NAD+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2110\">NAD+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Cellular Energy \u2022 Longevity \u2022 DNA Repair<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2110\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2112\"\n              data-price-mxn=\"1199\"             data-product-name=\"omg-3\"\n             data-translated-name=\"omg-3\"\n             data-product-slug=\"omg-3\"\n             data-search-tags=\"\"\n             data-subtitle=\"heart \u2022 brain \u2022 vision \u2022 skin\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2112\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"OMG-3\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2112\">OMG-3<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Heart \u2022 Brain \u2022 Vision \u2022 Skin<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2112\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1911\"\n              data-price-mxn=\"3799\"             data-product-name=\"21-day detox\"\n             data-translated-name=\"21-day detox\"\n             data-product-slug=\"reto21d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1911\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"21-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1911\">21-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>189.98<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1911\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1907\"\n              data-price-mxn=\"1599\"             data-product-name=\"7-day detox\"\n             data-translated-name=\"7-day detox\"\n             data-product-slug=\"reto7d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1907\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"7-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1907\">7-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>79.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1907\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4943\"\n              data-price-mxn=\"4399\"             data-product-name=\"nutri slim pack\"\n             data-translated-name=\"nutri slim pack\"\n             data-product-slug=\"nutri-slim-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4943\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Nutri Slim Pack\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4943\">Nutri Slim Pack<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>219.96<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4943\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"top\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"2073\"\n              data-price-mxn=\"1199\"             data-product-name=\"liver-d\"\n             data-translated-name=\"liver-d\"\n             data-product-slug=\"liver-d\"\n             data-search-tags=\"\"\n             data-subtitle=\"liver detox formula\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2073\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/p0xfll\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2073\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Liver-D\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T115715.420.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2073\">Liver-D<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Liver Detox Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2073\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4932\"\n              data-price-mxn=\"399\"             data-product-name=\"colon-d\"\n             data-translated-name=\"colon-d\"\n             data-product-slug=\"colon-d\"\n             data-search-tags=\"\"\n             data-subtitle=\"colon detox tea\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4932\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/dnr13d\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4932\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Colon-D\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4932\">Colon-D<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Colon Detox Tea<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>19.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4932\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1908\"\n              data-price-mxn=\"999\"             data-product-name=\"proenzi+\"\n             data-translated-name=\"proenzi+\"\n             data-product-slug=\"proenzi\"\n             data-search-tags=\"\"\n             data-subtitle=\"digestive enzymes, probiotics &amp; prebiotics\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1908\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/jf4qlk\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1908\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Proenzi+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1908\">Proenzi+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Digestive Enzymes, Probiotics &amp; Prebiotics<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1908\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2112\"\n              data-price-mxn=\"1199\"             data-product-name=\"omg-3\"\n             data-translated-name=\"omg-3\"\n             data-product-slug=\"omg-3\"\n             data-search-tags=\"\"\n             data-subtitle=\"heart \u2022 brain \u2022 vision \u2022 skin\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2112\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"OMG-3\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2112\">OMG-3<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Heart \u2022 Brain \u2022 Vision \u2022 Skin<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2112\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1907\"\n              data-price-mxn=\"1599\"             data-product-name=\"7-day detox\"\n             data-translated-name=\"7-day detox\"\n             data-product-slug=\"reto7d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1907\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"7-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1907\">7-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>79.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1907\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"detox\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"4932\"\n              data-price-mxn=\"399\"             data-product-name=\"colon-d\"\n             data-translated-name=\"colon-d\"\n             data-product-slug=\"colon-d\"\n             data-search-tags=\"\"\n             data-subtitle=\"colon detox tea\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4932\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/dnr13d\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4932\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Colon-D\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-21T181147.028.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4932\">Colon-D<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Colon Detox Tea<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>19.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4932\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2024\"\n              data-price-mxn=\"999\"             data-product-name=\"daily liver plus\"\n             data-translated-name=\"daily liver plus\"\n             data-product-slug=\"daily-liver-plus\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily liver support &amp; protection\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2024\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/ok12hz\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2024\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Daily Liver Plus\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090714.235.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2024\">Daily Liver Plus<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Liver Support &amp; Protection<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2024\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4733\"\n              data-price-mxn=\"999\"             data-product-name=\"dtx caps\"\n             data-translated-name=\"dtx caps\"\n             data-product-slug=\"dtx-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"natural digestive support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4733\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"DTX Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4733\">DTX Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Natural Digestive Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4733\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1911\"\n              data-price-mxn=\"3799\"             data-product-name=\"21-day detox\"\n             data-translated-name=\"21-day detox\"\n             data-product-slug=\"reto21d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1911\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"21-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1911\">21-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>189.98<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1911\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1907\"\n              data-price-mxn=\"1599\"             data-product-name=\"7-day detox\"\n             data-translated-name=\"7-day detox\"\n             data-product-slug=\"reto7d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1907\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"7-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1907\">7-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>79.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1907\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"weight\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"1908\"\n              data-price-mxn=\"999\"             data-product-name=\"proenzi+\"\n             data-translated-name=\"proenzi+\"\n             data-product-slug=\"proenzi\"\n             data-search-tags=\"\"\n             data-subtitle=\"digestive enzymes, probiotics &amp; prebiotics\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1908\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/jf4qlk\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1908\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Proenzi+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1908\">Proenzi+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Digestive Enzymes, Probiotics &amp; Prebiotics<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1908\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1916\"\n              data-price-mxn=\"999\"             data-product-name=\"ss+\"\n             data-translated-name=\"ss+\"\n             data-product-slug=\"ss-blood-sugar-support\"\n             data-search-tags=\"\"\n             data-subtitle=\"sugar support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1916\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"SS+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T092023.260.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1916\">SS+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Sugar Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1916\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4730\"\n              data-price-mxn=\"999\"             data-product-name=\"fit caps\"\n             data-translated-name=\"fit caps\"\n             data-product-slug=\"fit-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"metabolic support &amp; energy formula\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4730\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Fit Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4730\">Fit Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Metabolic Support &amp; Energy Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4730\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4733\"\n              data-price-mxn=\"999\"             data-product-name=\"dtx caps\"\n             data-translated-name=\"dtx caps\"\n             data-product-slug=\"dtx-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"natural digestive support\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4733\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"DTX Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100542.879.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4733\">DTX Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Natural Digestive Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4733\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4736\"\n              data-price-mxn=\"1399\"             data-product-name=\"smr\"\n             data-translated-name=\"smr\"\n             data-product-slug=\"smr-smart-meal-replacement\"\n             data-search-tags=\"\"\n             data-subtitle=\"smart meal replacement\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4736\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/2lcxnl\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4736\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"SMR\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4736\">SMR<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Smart Meal Replacement<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>69.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4736\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"muscle\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"1908\"\n              data-price-mxn=\"999\"             data-product-name=\"proenzi+\"\n             data-translated-name=\"proenzi+\"\n             data-product-slug=\"proenzi\"\n             data-search-tags=\"\"\n             data-subtitle=\"digestive enzymes, probiotics &amp; prebiotics\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1908\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/jf4qlk\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1908\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Proenzi+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101023.333.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1908\">Proenzi+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Digestive Enzymes, Probiotics &amp; Prebiotics<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1908\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1913\"\n              data-price-mxn=\"999\"             data-product-name=\"j &amp; b support\"\n             data-translated-name=\"j &#038; b support\"\n             data-product-slug=\"joints-bones-support\"\n             data-search-tags=\"\"\n             data-subtitle=\"complete joint &amp; bone health formula\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1913\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/fckl9n\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1913\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"J &amp; B Support\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T103323.349.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1913\">J & B Support<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Complete Joint &amp; Bone Health Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1913\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4736\"\n              data-price-mxn=\"1399\"             data-product-name=\"smr\"\n             data-translated-name=\"smr\"\n             data-product-slug=\"smr-smart-meal-replacement\"\n             data-search-tags=\"\"\n             data-subtitle=\"smart meal replacement\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"4736\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/2lcxnl\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4736\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"SMR\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/MINIATURA-03-2.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4736\">SMR<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Smart Meal Replacement<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>69.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4736\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2074\"\n              data-price-mxn=\"1199\"             data-product-name=\"pollen boost \u2013 on the go\"\n             data-translated-name=\"pollen boost \u2013 on the go\"\n             data-product-slug=\"pollen-boost-on-the-go-30-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy \u2022 well-being \u2022 overall health\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2074\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Pollen Boost \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2074\">Pollen Boost \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy \u2022 Well-being \u2022 Overall Health<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2074\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"immty\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"2071\"\n              data-price-mxn=\"999\"             data-product-name=\"can-d caps\"\n             data-translated-name=\"can-d caps\"\n             data-product-slug=\"can-d-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"candida balance formula\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2071\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Can-D Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T095132.074.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2071\">Can-D Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Candida Balance Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2071\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1917\"\n              data-price-mxn=\"999\"             data-product-name=\"colloidal silver plus\"\n             data-translated-name=\"colloidal silver plus\"\n             data-product-slug=\"colloidal-silver-plus\"\n             data-search-tags=\"\"\n             data-subtitle=\"immune system support\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1917\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/ylcw59\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1917\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Colloidal Silver Plus\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T101800.150.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1917\">Colloidal Silver Plus<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Immune System Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1917\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2114\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee latte\"\n             data-translated-name=\"royal coffee latte\"\n             data-product-slug=\"royal-coffee-latte-familiar\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy, adaptogenic support &amp; wellness\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2114\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Latte\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2114\">Royal Coffee Latte<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy, Adaptogenic Support &amp; Wellness<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2114\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4747\"\n              data-price-mxn=\"1199\"             data-product-name=\"365 \u2013 on the go\"\n             data-translated-name=\"365 \u2013 on the go\"\n             data-product-slug=\"365-power-performance-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - on the go\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4747\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4747\">365 \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - On The Go<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4747\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4935\"\n              data-price-mxn=\"999\"             data-product-name=\"365  \u2013 family size\"\n             data-translated-name=\"365  \u2013 family size\"\n             data-product-slug=\"365-power-performance-family-size\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - family size\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4935\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365  \u2013 Family Size\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1536x1536.webp 1536w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-2048x2048.webp 2048w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-600x600.webp 600w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4935\">365  \u2013 Family Size<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Family Size<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4935\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4938\"\n              data-price-mxn=\"999\"             data-product-name=\"365 - capsules\"\n             data-translated-name=\"365 &#8211; capsules\"\n             data-product-slug=\"365-power-performance-capsules\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - capsules\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4938\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 - Capsules\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4938\">365 - Capsules<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Capsules<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4938\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"energy\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"4730\"\n              data-price-mxn=\"999\"             data-product-name=\"fit caps\"\n             data-translated-name=\"fit caps\"\n             data-product-slug=\"fit-caps\"\n             data-search-tags=\"\"\n             data-subtitle=\"metabolic support &amp; energy formula\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4730\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Fit Caps\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T100545.948.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4730\">Fit Caps<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Metabolic Support &amp; Energy Formula<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4730\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1918\"\n              data-price-mxn=\"699\"             data-product-name=\"royal coffee black\"\n             data-translated-name=\"royal coffee black\"\n             data-product-slug=\"royal-coffee\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy, digestion &amp; immune support\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"1918\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/d994iw\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1918\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Black\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-56.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1918\">Royal Coffee Black<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy, Digestion &amp; Immune Support<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>34.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1918\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2114\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee latte\"\n             data-translated-name=\"royal coffee latte\"\n             data-product-slug=\"royal-coffee-latte-familiar\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy, adaptogenic support &amp; wellness\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2114\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Latte\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-03-04T133523.543.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2114\">Royal Coffee Latte<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy, Adaptogenic Support &amp; Wellness<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2114\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4747\"\n              data-price-mxn=\"1199\"             data-product-name=\"365 \u2013 on the go\"\n             data-translated-name=\"365 \u2013 on the go\"\n             data-product-slug=\"365-power-performance-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - on the go\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4747\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T090719.186.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4747\">365 \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - On The Go<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4747\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4935\"\n              data-price-mxn=\"999\"             data-product-name=\"365  \u2013 family size\"\n             data-translated-name=\"365  \u2013 family size\"\n             data-product-slug=\"365-power-performance-family-size\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - family size\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4935\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365  \u2013 Family Size\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-1536x1536.webp 1536w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-2048x2048.webp 2048w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2026\/04\/365-kitchen-shot-v4-4k-1-600x600.webp 600w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4935\">365  \u2013 Family Size<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Family Size<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4935\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4938\"\n              data-price-mxn=\"999\"             data-product-name=\"365 - capsules\"\n             data-translated-name=\"365 &#8211; capsules\"\n             data-product-slug=\"365-power-performance-capsules\"\n             data-search-tags=\"\"\n             data-subtitle=\"daily multivitamin - capsules\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4938\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"365 - Capsules\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-22T101750.671.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4938\">365 - Capsules<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Daily Multivitamin - Capsules<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>49.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4938\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2074\"\n              data-price-mxn=\"1199\"             data-product-name=\"pollen boost \u2013 on the go\"\n             data-translated-name=\"pollen boost \u2013 on the go\"\n             data-product-slug=\"pollen-boost-on-the-go-30-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy \u2022 well-being \u2022 overall health\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2074\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Pollen Boost \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2074\">Pollen Boost \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy \u2022 Well-being \u2022 Overall Health<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2074\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2075\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee black - on the go\"\n             data-translated-name=\"royal coffee black &#8211; on the go\"\n             data-product-slug=\"royal-coffee-gourmet-black-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"premium energy &amp; wellness blend\">\n                        <span class=\"addon-translatable-video-url\" data-product-id=\"2075\" style=\"display:none !important;\">https:\/\/streamable.com\/l\/uirjfl\/mp4-high.mp4<\/span>\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2075\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Black - On The Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-28.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2075\">Royal Coffee Black - On The Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Premium Energy &amp; Wellness Blend<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2075\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2108\"\n              data-price-mxn=\"799\"             data-product-name=\"royal coffee latte - satches\"\n             data-translated-name=\"royal coffee latte &#8211; satches\"\n             data-product-slug=\"royal-coffee-gourmet-latte-on-the-go\"\n             data-search-tags=\"\"\n             data-subtitle=\"instant latte meets functional wellness\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2108\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Royal Coffee Latte - Satches\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-29.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2108\">Royal Coffee Latte - Satches<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Instant Latte Meets Functional Wellness<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>39.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2108\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2110\"\n              data-price-mxn=\"1199\"             data-product-name=\"nad+\"\n             data-translated-name=\"nad+\"\n             data-product-slug=\"nad\"\n             data-search-tags=\"\"\n             data-subtitle=\"cellular energy \u2022 longevity \u2022 dna repair\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2110\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"NAD+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2110\">NAD+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Cellular Energy \u2022 Longevity \u2022 DNA Repair<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2110\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"aging\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"2074\"\n              data-price-mxn=\"1199\"             data-product-name=\"pollen boost \u2013 on the go\"\n             data-translated-name=\"pollen boost \u2013 on the go\"\n             data-product-slug=\"pollen-boost-on-the-go-30-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"energy \u2022 well-being \u2022 overall health\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2074\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Pollen Boost \u2013 On the Go\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-22T090724.010.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2074\">Pollen Boost \u2013 On the Go<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Energy \u2022 Well-being \u2022 Overall Health<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2074\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2110\"\n              data-price-mxn=\"1199\"             data-product-name=\"nad+\"\n             data-translated-name=\"nad+\"\n             data-product-slug=\"nad\"\n             data-search-tags=\"\"\n             data-subtitle=\"cellular energy \u2022 longevity \u2022 dna repair\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2110\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"NAD+\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T132617.977.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2110\">NAD+<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Cellular Energy \u2022 Longevity \u2022 DNA Repair<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2110\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"2112\"\n              data-price-mxn=\"1199\"             data-product-name=\"omg-3\"\n             data-translated-name=\"omg-3\"\n             data-product-slug=\"omg-3\"\n             data-search-tags=\"\"\n             data-subtitle=\"heart \u2022 brain \u2022 vision \u2022 skin\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"2112\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"OMG-3\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-19T133306.294.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"2112\">OMG-3<\/h4>\n                                    <p class=\"catalog-list-subtitle\">Heart \u2022 Brain \u2022 Vision \u2022 Skin<\/p>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>59.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"2112\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                <div class=\"addon-tab-content \" \n                     data-tab-content=\"kits\">\n                                        <!-- Catalog List Layout -->\n                    <div class=\"catalog-list-container\">\n                        <div class=\"catalog-list-header\">\n                            <span class=\"catalog-header-image\">Product<\/span>\n                            <span class=\"catalog-header-info\">Description<\/span>\n                            <span class=\"catalog-header-price\">Price<\/span>\n                            <span class=\"catalog-header-action\"><\/span>\n                        <\/div>\n                                                            <div class=\"catalog-list-item\"\n                          data-addon-id=\"1911\"\n              data-price-mxn=\"3799\"             data-product-name=\"21-day detox\"\n             data-translated-name=\"21-day detox\"\n             data-product-slug=\"reto21d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1911\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"21-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/Result-2026-02-20T070044.576.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1911\">21-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>189.98<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1911\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"1907\"\n              data-price-mxn=\"1599\"             data-product-name=\"7-day detox\"\n             data-translated-name=\"7-day detox\"\n             data-product-slug=\"reto7d\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"1907\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"7-Day Detox\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/07\/2_1ef4b92a-b181-4421-b751-ab46b4eef467_2000x2000.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"1907\">7-Day Detox<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>79.99<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"1907\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                                    <div class=\"catalog-list-item\"\n                          data-addon-id=\"4943\"\n              data-price-mxn=\"4399\"             data-product-name=\"nutri slim pack\"\n             data-translated-name=\"nutri slim pack\"\n             data-product-slug=\"nutri-slim-pack\"\n             data-search-tags=\"\"\n             data-subtitle=\"\">\n                        \n            <!-- Thumbnail -->\n            <div class=\"catalog-list-image\" data-product-id=\"4943\">\n                <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"Nutri Slim Pack\" srcset=\"https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-150x150.webp 150w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-300x300.webp 300w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-1024x1024.webp 1024w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-768x768.webp 768w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-12x12.webp 12w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-990x990.webp 990w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-441x441.webp 441w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514-600x600.webp 600w, https:\/\/stage.ievolutionclub.com\/wp-content\/uploads\/2025\/11\/Result-2026-02-19T202615.514.webp 1080w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/>                <div class=\"catalog-list-zoom\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\n                        <path d=\"m21 21-4.35-4.35\"><\/path>\n                    <\/svg>\n                <\/div>\n            <\/div>\n            \n            <!-- Product Info -->\n            <div class=\"catalog-list-info\">\n                <h4 class=\"catalog-list-title\" data-product-id=\"4943\">Nutri Slim Pack<\/h4>\n                                            <\/div>\n            \n            <!-- Price -->\n            <div class=\"catalog-list-price\">\n                                <div class=\"catalog-price-row wholesale\">\n                    <span class=\"catalog-price-label\">Wholesale (Your Price):<\/span>\n                    <span class=\"catalog-price-value catalog-price-current\"><span class=\"woocommerce-Price-amount amount\"><bdi><span class=\"woocommerce-Price-currencySymbol\" translate=\"no\">&#36;<\/span>219.96<\/bdi><\/span><\/span>\n                <\/div>\n                            <\/div>\n            \n            <!-- View Details Button -->\n            <div class=\"catalog-list-action\">\n                <button type=\"button\" class=\"catalog-view-btn\" data-product-id=\"4943\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"><\/path>\n                        <circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle>\n                    <\/svg>\n                    Learn More                <\/button>\n            <\/div>\n        <\/div>\n                                                    <\/div>\n                                    <\/div>\n                                \n                                \n                        \n                    <\/div>\n        \n        \n        \n        <style>\n        \/* Main Container - Auto-adapts to parent width *\/\n        .secure-addon-display {\n            width: 100%;\n            max-width: 100%;\n            box-sizing: border-box; \/* Include padding in width \u2014 prevents horizontal overflow *\/\n            padding: 60px clamp(20px, 5vw, 80px);\n            margin: 0 auto;\n            position: relative;\n            font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n            -webkit-font-smoothing: antialiased;\n            \/* FOUC reveal \u2014 overrides critical hide in <head> *\/\n            opacity: 1;\n            transition: opacity 0.25s ease;\n        }\n        \n        \/* ========================================\n           CATALOG MODE STYLES\n           Display-only mode without purchasing\n           ======================================== *\/\n\n        \/* ========================================\n           TWO-COLUMN LAYOUT \u2014 Desktop Sticky Sidebar\n           ======================================== *\/\n        .addon-layout-wrapper {\n            display: grid;\n            grid-template-columns: 1fr 340px;\n            gap: 32px;\n            align-items: start;\n            position: relative; \/* Needed for absolute positioning at bottom *\/\n            z-index: 2;\n        }\n        \n        .addon-products-column {\n            min-width: 0; \/* Prevent grid blowout *\/\n        }\n        \n        .addon-summary-column {\n            \/* Positioning handled by JS for WordPress theme compatibility *\/\n            align-self: start;\n        }\n        \n        \/* Desktop: hide mobile-only elements *\/\n        .mobile-sheet-handle { display: none; }\n        .mobile-sheet-backdrop { display: none; }\n        \n        \/* ========================================\n           SIDEBAR COMPACT STYLES (Desktop 900px+)\n           ======================================== *\/\n        \/* v10 \u2014 auto-fit: the card is a fixed-height flex column with a pinned\n           header, a scrolling middle, and a pinned CTA. It never exceeds the\n           viewport no matter how many products are added. *\/\n        .addon-summary-column .addon-summary-card {\n            max-width: 100%;\n            margin: 0;\n            padding: 0;\n            border-radius: 16px;\n            box-shadow: 0 8px 26px -14px rgba(27, 42, 74, 0.2), 0 0 0 1px rgba(232, 237, 242, 0.9);\n            display: flex;\n            flex-direction: column;\n            max-height: calc(100vh - 24px);\n            overflow: hidden;\n        }\n        .addon-summary-column .summary-header {\n            flex-shrink: 0;\n            display: flex;\n            align-items: center;\n            gap: 8px;\n            padding: 14px 18px;\n            border-bottom: 1px solid #F0ECE4;\n        }\n        .addon-summary-column .summary-header .summary-header-ico { color: #1B2A4A; flex-shrink: 0; }\n        .addon-summary-column .summary-header h3 {\n            font-size: 15px;\n            font-weight: 800;\n            margin: 0;\n            padding: 0;\n            border: none;\n        }\n        .addon-summary-scroll {\n            flex: 1 1 auto;\n            min-height: 0;\n            overflow-y: auto;\n            padding: 6px 18px 10px;\n        }\n        .addon-summary-scroll::-webkit-scrollbar { width: 6px; }\n        .addon-summary-scroll::-webkit-scrollbar-thumb { background: #D8D5CE; border-radius: 100px; }\n        .addon-summary-column .summary-checkout-section {\n            flex-shrink: 0;\n            padding: 12px 16px 14px;\n            border-top: 1px solid #F0ECE4;\n        }\n\n        .addon-summary-column .summary-items {\n            margin-bottom: 10px;\n            max-height: none; \/* outer .addon-summary-scroll is the single scroll region *\/\n        }\n\n        \/* \u2500\u2500 Compact GOALS BAR (all tiers on one bar) \u2500\u2500 *\/\n        .addon-goals-bar {\n            background: #F6F3EE;\n            border-radius: 12px;\n            padding: 11px 13px;\n            margin: 8px 0 12px;\n            font-family: 'Plus Jakarta Sans', -apple-system, sans-serif;\n        }\n        .addon-goals-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; }\n        .addon-goals-title { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: #1B2A4A; }\n        .addon-goals-title svg { width: 15px; height: 15px; color: #2AAFD3; flex-shrink: 0; }\n        .addon-goals-current { font-size: 12px; font-weight: 800; color: #2AAFD3; }\n        .addon-goals-track { position: relative; height: 7px; border-radius: 100px; background: #E4DFD6; }\n        .addon-goals-fill { position: absolute; left: 0; top: 0; height: 100%; width: 0; border-radius: 100px; background: #2AAFD3; transition: width .45s ease; }\n        .addon-goals-marker { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 11px; height: 11px; border-radius: 50%; background: #fff; border: 2px solid #C9C3B8; z-index: 1; transition: border-color .3s ease, background .3s ease; }\n        .addon-goals-marker.reached { border-color: #2AAFD3; background: #2AAFD3; }\n        .addon-goals-hint { font-size: 10.5px; color: #8A94A0; margin-top: 8px; line-height: 1.4; }\n        .addon-goals-hint strong { color: #2AAFD3; font-weight: 700; }\n\n        \/* Compact goals bar shown ON TOP of the mobile bottom bar *\/\n        .addon-mobile-goal { padding: 8px 16px 4px; background: transparent; }\n        .addon-mobile-goal .addon-goals-hint { margin: 0 0 6px; font-size: 11px; text-align: center; color: #6B7B8D; }\n        .addon-mobile-goal .addon-goals-hint strong { color: #2AAFD3; }\n        .addon-mobile-goal .addon-goals-track { height: 6px; }\n        \n        .addon-summary-column .summary-item {\n            padding: 7px 0;\n            font-size: 13px;\n        }\n        \n        .addon-summary-column .summary-item-name {\n            font-size: 13px;\n        }\n        \n        .addon-summary-column .summary-item-price {\n            font-size: 13px;\n        }\n        \n        \/* Compact total row *\/\n        .addon-summary-column .total-row {\n            padding: 12px 16px;\n            border-radius: 10px;\n            margin-top: 14px;\n            min-height: auto;\n            gap: 10px;\n        }\n        \n        .addon-summary-column .total-label {\n            font-size: 12px;\n        }\n        \n        .addon-summary-column .addon-total {\n            font-size: 20px;\n        }\n        \n        \/* Compact requirement badges *\/\n        .addon-summary-column .requirement-badge {\n            padding: 8px 12px;\n            margin: 8px 0;\n            font-size: 12px;\n            gap: 8px;\n        }\n        \n        .addon-summary-column .requirement-badge svg {\n            width: 14px;\n            height: 14px;\n            flex-shrink: 0;\n        }\n        \n        \/* Compact validation message *\/\n        .addon-summary-column .validation-message {\n            margin-top: 10px;\n            padding: 10px;\n            font-size: 12px;\n        }\n        \n        \/* Compact level tracker \u2014 box styling handled by .addon-goals-bar *\/\n        .addon-summary-column .addon-level-tracker {\n            margin: 0;\n        }\n        \n        .addon-summary-column .level-tracker-header {\n            margin-bottom: 14px;\n            gap: 8px;\n        }\n        \n        .addon-summary-column .level-tracker-title {\n            font-size: 13px;\n        }\n        \n        .addon-summary-column .level-tracker-icon {\n            width: 18px;\n            height: 18px;\n        }\n        \n        .addon-summary-column .level-step-circle {\n            width: 32px;\n            height: 32px;\n        }\n        \n        .addon-summary-column .level-step-name {\n            font-size: 12px;\n        }\n        \n        .addon-summary-column .level-step-amount {\n            font-size: 12px;\n        }\n        \n        .addon-summary-column .level-next-text {\n            font-size: 12px;\n        }\n        \n        .addon-summary-column .level-current-status {\n            margin-top: 10px;\n            padding-top: 10px;\n        }\n        \n        \/* Compact checkout button *\/\n        .addon-summary-column .summary-checkout-section {\n            margin-top: 16px;\n            padding-top: 16px;\n        }\n        \n        .addon-summary-column .summary-secure-checkout-btn {\n            padding: 14px 20px !important;\n            font-size: 13px !important;\n            gap: 8px;\n            letter-spacing: 0.3px;\n        }\n        \n        .addon-summary-column .summary-checkout-section .checkout-security-badges {\n            gap: 4px;\n            margin-top: 10px;\n            padding: 6px;\n            border-radius: 8px;\n            flex-direction: row;\n            flex-wrap: wrap;\n            justify-content: center;\n            align-items: center;\n        }\n        \n        .addon-summary-column .summary-checkout-section .security-badge {\n            font-size: 9px;\n            padding: 3px 6px;\n            gap: 3px;\n            border-radius: 6px;\n            box-shadow: none;\n            border: none;\n        }\n        \n        \/* Desktop: auto-fill grid within sidebar layout *\/\n        .addon-products-column .addon-items-grid {\n            grid-template-columns: repeat(auto-fill, minmax(180px, 260px));\n            justify-content: start;\n        }\n\n        \/* Wide desktop (1600px+) *\/\n        @media (min-width: 1600px) {\n            .addon-layout-wrapper {\n                grid-template-columns: 1fr 370px;\n                gap: 40px;\n            }\n        }\n\n        \/* Desktop medium (1200px - 1599px) *\/\n        @media (min-width: 1200px) and (max-width: 1599px) {\n            .addon-layout-wrapper {\n                grid-template-columns: 1fr 330px;\n            }\n        }\n\n        \/* Tablet landscape (900px - 1199px) *\/\n        @media (min-width: 900px) and (max-width: 1199px) {\n            .addon-layout-wrapper {\n                grid-template-columns: 1fr 290px;\n                gap: 24px;\n            }\n            \n            .addon-summary-column .addon-summary-card {\n                padding: 16px 14px;\n            }\n            \n            .addon-summary-column .total-row {\n                padding: 10px 14px;\n            }\n            \n            .addon-summary-column .addon-total {\n                font-size: 18px;\n            }\n            \n            .addon-summary-column .summary-secure-checkout-btn {\n                padding: 12px 16px !important;\n                font-size: 12px !important;\n            }\n        }\n        \n        \/* ========================================\n           MOBILE BOTTOM SHEET (<900px)\n           ======================================== *\/\n        @media (max-width: 899px) {\n            .addon-layout-wrapper {\n                display: block; \/* Single column *\/\n            }\n\n            .addon-products-column {\n                \/* Space for the fixed bottom bar + iPhone home-indicator\n                   safe area. Sized for the tallest variant (bar + toggle\n                   row) so the last products never get clipped no matter\n                   which bar layout is active. *\/\n                margin-bottom: calc(150px + env(safe-area-inset-bottom, 0px));\n            }\n\n            \/* v7.4 \u2014 on mobile, the desktop toggle inside the order-summary\n               card becomes redundant since the mobile bar already shows one.\n               Hide the desktop version so customers don't see two. *\/\n            .desktop-addon-mode-toggle { display: none !important; }\n            \n            .addon-summary-column {\n                position: fixed;\n                bottom: 0;\n                left: 0;\n                right: 0;\n                z-index: 10000;\n                max-height: 80vh;\n                --sheet-header-offset: 80px; \/* Default fallback, JS updates this *\/\n                \/* v7.4 \u2014 peek height of the collapsed bar. Defaults to the\n                   single-row bar height; JS bumps this on .has-mobile-toggle\n                   so the toggle row + count\/VER PEDIDO row both stay visible. *\/\n                --sheet-peek: 72px;\n                overflow-y: hidden;\n                background: #FFFFFF !important;\n                border-radius: 20px 20px 0 0;\n                box-shadow: 0 -4px 30px rgba(27, 42, 74, 0.15);\n                \/* The safe-area inset keeps the bar above the iPhone home\n                   indicator so the bottom row isn't clipped. Falls back to 0\n                   on browsers that don't expose env(). *\/\n                transform: translateY(calc(100% - var(--sheet-peek) - env(safe-area-inset-bottom, 0px)));\n                transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), box-shadow 0.35s ease, max-height 0.35s ease;\n                top: auto;\n                overflow-x: hidden;\n                padding-bottom: env(safe-area-inset-bottom, 0px);\n            }\n\n            \/* Bar that includes the mode toggle is taller \u2014 grow the peek so\n               both the toggle row AND the count\/total\/VER PEDIDO row remain\n               above the fold when the sheet is collapsed. PHP adds the\n               .has-mobile-toggle class to the column, so we don't rely on\n               :has() (which is missing from older Safari\/Firefox versions).\n               118px is grabber (~18) + toggle row (~28) + gap (6) + count\/\n               total row (~62) + small breathing room \u2014 guarantees no clip. *\/\n            .addon-summary-column.has-mobile-toggle {\n                --sheet-peek: 118px;\n            }\n\n            \/* v10 \u2014 the compact GOALS bar sits above the count\/total\/VER PEDIDO row\n               in the collapsed peek, so grow the peek to keep BOTH visible (goal bar\n               ~40 + grabber ~18 + count\/total row ~62 + breathing room). Without this\n               the goal bar pushed the total + button below the fold on iPhone. *\/\n            .addon-summary-column.has-mobile-goal {\n                --sheet-peek: 126px;\n            }\n            \n            \/* Hidden state (no items) *\/\n            .addon-summary-column.mobile-hidden {\n                transform: translateY(100%);\n                pointer-events: none;\n            }\n\n            \/* v7.4 \u2014 empty-cart slim state: bar shows only the toggle.\n               The collapsed peek shrinks from 118px (full bar) to ~58px\n               (just the toggle pill + grabber + paddings) and we still\n               keep room for the iPhone home indicator. The sheet stays\n               un-expandable in this state \u2014 the customer only needs the\n               mode pill, the order summary is intentionally hidden. *\/\n            .addon-summary-column.mobile-bar-empty {\n                transform: translateY(calc(100% - 58px - env(safe-area-inset-bottom, 0px)));\n                box-shadow: 0 -2px 14px rgba(27, 42, 74, 0.08);\n            }\n            .addon-summary-column.mobile-bar-empty .mobile-sheet-handle {\n                cursor: default;\n            }\n            \n            \/* Expanded state (sheet open) *\/\n            .addon-summary-column.mobile-expanded {\n                transform: translateY(0);\n                max-height: calc(100dvh - var(--sheet-header-offset, 80px));\n                overflow-y: hidden; \/* Parent doesn't scroll \u2014 content area does *\/\n                box-shadow: 0 -8px 40px rgba(27, 42, 74, 0.25);\n                display: flex;\n                flex-direction: column;\n            }\n            \n            \/* When expanded, handle stays fixed at top, card scrolls *\/\n            .addon-summary-column.mobile-expanded .mobile-sheet-handle {\n                flex-shrink: 0; \/* Never collapse *\/\n            }\n            \n            .addon-summary-column.mobile-expanded .addon-summary-card {\n                flex: 1;\n                overflow-y: auto;\n                -webkit-overflow-scrolling: touch;\n                min-height: 0; \/* Allow flex item to shrink *\/\n            }\n            \n            \/* Mobile: show the handle bar *\/\n            .mobile-sheet-handle {\n                display: block;\n                z-index: 10;\n                background: #FFFFFF !important;\n                padding: 0;\n                cursor: pointer;\n                -webkit-tap-highlight-color: transparent;\n                border-bottom: 1px solid #E4DFD8;\n            }\n            \n            .mobile-sheet-grabber {\n                width: 40px;\n                height: 4px;\n                background: #D1D9E0;\n                border-radius: 4px;\n                margin: 10px auto 8px;\n            }\n\n            \/* \u2550\u2550\u2550 v7.4 \u2014 Mobile mode toggle (Subscription \/ One-time) \u2550\u2550\u2550\n               Compact pill row inside the mobile sheet handle so customers\n               can flip modes without expanding the full Order Summary.\n               Sized small enough that both this row AND the count\/total\/\n               VER PEDIDO row coexist comfortably on a phone screen. *\/\n            .mobile-addon-mode-toggle {\n                display: flex;\n                background: #F0EEE9;\n                border-radius: 100px;\n                padding: 2px;\n                margin: 0 14px 6px;\n                gap: 2px;\n            }\n            .mobile-addon-mode-toggle .addon-mode-btn {\n                flex: 1;\n                padding: 5px 10px;\n                border: none;\n                border-radius: 100px;\n                font-size: 10.5px;\n                font-weight: 700;\n                letter-spacing: 0.3px;\n                cursor: pointer;\n                font-family: 'Plus Jakarta Sans', sans-serif;\n                background: transparent;\n                color: #6B7B8D;\n                line-height: 1.2;\n                transition: background .2s ease, color .2s ease, box-shadow .2s ease;\n                -webkit-tap-highlight-color: transparent;\n            }\n            .mobile-addon-mode-toggle .addon-mode-btn.is-active {\n                background: #fff;\n                color: #1B2A4A;\n                box-shadow: 0 1px 3px rgba(27,42,74,0.1);\n            }\n\n            \/* Tighten the grabber so the toggle hugs the top edge of the bar\n               without wasting vertical space. PHP adds .has-mobile-toggle\n               when the toggle is rendered, so older browsers without :has()\n               support still get the compact layout. *\/\n            .mobile-sheet-handle.has-mobile-toggle .mobile-sheet-grabber {\n                margin: 8px auto 6px;\n            }\n\n            \/* v7.4 \u2014 empty-cart slim mode: show only the mode toggle so the\n               customer can pre-select a tab before adding anything. Hide\n               the count\/total\/expand row entirely so the bar is compact. *\/\n            .mobile-sheet-handle.mobile-bar-empty .mobile-sheet-bar-content {\n                display: none;\n            }\n            .mobile-sheet-handle.mobile-bar-empty .mobile-sheet-grabber {\n                margin: 8px auto 4px;\n            }\n            .mobile-sheet-handle.mobile-bar-empty .mobile-addon-mode-toggle {\n                margin: 4px 14px 12px;\n            }\n\n            \/* v7.4 \u2014 Fluid type when the mode toggle is present. clamp()\n               lets each row auto-shrink between ~320px and ~480px viewport\n               widths, so iPhone SE through iPhone Pro Max all keep both\n               rows visible without manual breakpoints. The total stays the\n               dominant glanceable number at any size. *\/\n            .mobile-sheet-handle.has-mobile-toggle .mobile-addon-mode-toggle {\n                margin-left:  clamp(10px, 3.5vw, 14px);\n                margin-right: clamp(10px, 3.5vw, 14px);\n            }\n            .mobile-sheet-handle.has-mobile-toggle .mobile-addon-mode-toggle .addon-mode-btn {\n                font-size: clamp(9.5px, 2.8vw, 11px);\n                padding: clamp(4px, 1.3vw, 6px) clamp(8px, 2.5vw, 12px);\n            }\n            .mobile-sheet-handle.has-mobile-toggle .mobile-bar-count {\n                font-size: clamp(10px, 2.8vw, 12px);\n                letter-spacing: 0.4px;\n            }\n            .mobile-sheet-handle.has-mobile-toggle .mobile-bar-total {\n                font-size: clamp(16px, 5vw, 20px);\n                line-height: 1.1;\n            }\n            .mobile-sheet-handle.has-mobile-toggle .mobile-bar-expand-btn {\n                padding: clamp(8px, 2.5vw, 11px) clamp(12px, 4vw, 18px);\n                font-size: clamp(11px, 3vw, 13px);\n            }\n            .mobile-sheet-handle.has-mobile-toggle .mobile-sheet-bar-content {\n                padding-left:  clamp(14px, 4vw, 20px);\n                padding-right: clamp(14px, 4vw, 20px);\n                gap: clamp(8px, 2.5vw, 12px);\n            }\n\n            .mobile-sheet-bar-content {\n                display: flex;\n                align-items: center;\n                justify-content: space-between;\n                padding: 4px 20px 14px;\n                gap: 12px;\n            }\n\n            \/* When the mode toggle sits above this row, shave a few pixels\n               off the top padding so the two rows hug tighter and the bar\n               doesn't grow too tall on small phones. *\/\n            .mobile-sheet-handle.has-mobile-toggle .mobile-sheet-bar-content {\n                padding-top: 2px;\n                padding-bottom: 10px;\n            }\n            \n            .mobile-bar-left {\n                display: flex;\n                flex-direction: column;\n                gap: 2px;\n                min-width: 0; \/* allow the totals row to shrink\/wrap on small phones *\/\n            }\n\n            \/* v7.4 \u2014 wrap original + total on one row so the strikethrough\n               original sits inline next to the discounted total. *\/\n            .mobile-bar-totals-row {\n                display: flex;\n                align-items: baseline;\n                gap: 6px;\n                flex-wrap: wrap;\n            }\n            .mobile-bar-original {\n                font-size: clamp(11px, 3vw, 13px);\n                font-weight: 600;\n                color: #94A3B8;\n                text-decoration: line-through;\n                letter-spacing: 0;\n                line-height: 1;\n            }\n\n            .mobile-bar-count {\n                font-size: 12px;\n                font-weight: 600;\n                color: #6B7B8D;\n                text-transform: uppercase;\n                letter-spacing: 0.5px;\n            }\n\n            .mobile-bar-total {\n                font-size: 22px;\n                font-weight: 800;\n                color: #1B2A4A;\n                letter-spacing: -0.5px;\n                line-height: 1.1;\n            }\n            \n            .mobile-bar-expand-btn {\n                display: inline-flex;\n                align-items: center;\n                gap: 6px;\n                padding: 12px 20px;\n                background: #1B2A4A;\n                color: white;\n                border: none;\n                border-radius: 9999px;\n                font-size: 13px;\n                font-weight: 700;\n                cursor: pointer;\n                text-transform: uppercase;\n                letter-spacing: 0.5px;\n                white-space: nowrap;\n                font-family: inherit;\n                transition: background 0.2s ease, transform 0.2s ease;\n                -webkit-tap-highlight-color: transparent;\n            }\n            \n            .mobile-bar-expand-btn:active {\n                transform: scale(0.96);\n            }\n            \n            \/* Toggle button text: show \"View Order\" by default, \"Close\" when expanded *\/\n            .mobile-bar-btn-text-open { display: inline; }\n            .mobile-bar-btn-text-close { display: none; }\n            .addon-summary-column.mobile-expanded .mobile-bar-btn-text-open { display: none; }\n            .addon-summary-column.mobile-expanded .mobile-bar-btn-text-close { display: inline; }\n            \n            .mobile-bar-chevron {\n                transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);\n            }\n            \n            .addon-summary-column.mobile-expanded .mobile-bar-chevron {\n                transform: rotate(180deg);\n            }\n            \n            .addon-summary-column.mobile-expanded .mobile-bar-expand-btn {\n                background: #2AAFD3;\n            }\n            \n            \/* Make grabber more visible when expanded *\/\n            .addon-summary-column.mobile-expanded .mobile-sheet-grabber {\n                width: 48px;\n                background: #94A3B8;\n            }\n            \n            \/* Backdrop overlay *\/\n            .mobile-sheet-backdrop {\n                display: none;\n                position: fixed;\n                inset: 0;\n                background: rgba(27, 42, 74, 0.4);\n                backdrop-filter: blur(2px);\n                -webkit-backdrop-filter: blur(2px);\n                z-index: 9999;\n                opacity: 0;\n                transition: opacity 0.3s ease;\n            }\n            \n            .mobile-sheet-backdrop.active {\n                display: block;\n                opacity: 1;\n            }\n            \n            \/* Summary card adjustments inside mobile sheet *\/\n            .addon-summary-column .addon-summary-card {\n                max-width: 100%;\n                margin: 0;\n                border-radius: 0;\n                border: none;\n                box-shadow: none;\n            }\n            \n            .addon-summary-column .addon-summary-card::before {\n                display: none; \/* Remove top gradient in sheet mode *\/\n            }\n            \n            \/* Summary items scroll area in sheet *\/\n            .addon-summary-column .summary-items {\n                max-height: none; \/* Card itself scrolls now *\/\n            }\n        }\n        \n        \/* Extra small mobile *\/\n        @media (max-width: 480px) {\n            .addon-summary-column {\n                border-radius: 16px 16px 0 0;\n            }\n            \n            .mobile-sheet-bar-content {\n                padding: 4px 16px 12px;\n            }\n            \n            .mobile-bar-total {\n                font-size: 20px;\n            }\n            \n            .mobile-bar-expand-btn {\n                padding: 10px 16px;\n                font-size: 12px;\n            }\n        }\n        \n        \/* Hide floating widget on checkout\/cart *\/\n        body.woocommerce-checkout .addon-summary-column,\n        body.woocommerce-cart .addon-summary-column {\n            position: static;\n        }\n        \n        \/* ========================================\n        .addon-item-card.catalog-mode {\n            cursor: pointer;\n        }\n        \n        .addon-item-card.catalog-mode .addon-content {\n            padding-bottom: 20px;\n        }\n        \n        \/* Hide original price when show_original_price=\"no\" *\/\n        .secure-addon-display.hide-original-price .catalog-price-original,\n        .secure-addon-display.hide-original-price .addon-price-original,\n        .secure-addon-display.hide-original-price .addon-price-off {\n            display: none !important;\n        }\n\n        \/* Hide price labels when show_price_label=\"no\" *\/\n        .secure-addon-display.hide-price-label .catalog-price-label,\n        .secure-addon-display.hide-price-label .catalog-header-price {\n            display: none !important;\n        }\n        \n        \/* ========================================\n           CATALOG HEADER STYLES\n           Logo on left, shortcode on right\n           ======================================== *\/\n        .catalog-header {\n            background: #FFFFFF;\n            border-bottom: 1px solid #E4DFD8;\n            padding: 15px 30px;\n            margin-bottom: 0;\n            position: sticky;\n            top: 0;\n            z-index: 100;\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n            opacity: 1;\n            transition: opacity 0.25s ease;\n        }\n        \n        .catalog-header-inner {\n            max-width: 1400px;\n            margin: 0 auto;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            gap: 20px;\n        }\n        \n        .catalog-header-logo {\n            flex-shrink: 0;\n        }\n        \n        .catalog-header-logo a {\n            display: block;\n            text-decoration: none;\n        }\n        \n        .catalog-header-logo img {\n            height: 45px;\n            width: auto;\n            max-width: 200px;\n            object-fit: contain;\n        }\n        \n        .catalog-header-right {\n            display: flex;\n            align-items: center;\n            gap: 15px;\n        }\n        \n        \/* Style for language switcher or any shortcode in header *\/\n        .catalog-header-right select,\n        .catalog-header-right .trp-language-switcher,\n        .catalog-header-right .wpml-ls {\n            font-size: 14px;\n        }\n        \n        @media (max-width: 600px) {\n            .catalog-header {\n                padding: 12px 16px;\n            }\n            \n            .catalog-header-logo img {\n                height: 35px;\n                max-width: 150px;\n            }\n            \n            .catalog-header-right {\n                gap: 10px;\n            }\n        }\n        \n        \/* ========================================\n           CATALOG LIST LAYOUT STYLES\n           Horizontal row-based product listing\n           ======================================== *\/\n        .catalog-list-container {\n            background: white;\n            border-radius: 12px;\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n            border: 1px solid #E4DFD8;\n            overflow: hidden;\n            margin-bottom: 30px;\n        }\n        \n        \/* Header Row *\/\n        .catalog-list-header {\n            display: grid;\n            grid-template-columns: 80px 1fr auto auto;\n            gap: 20px;\n            padding: 16px 24px;\n            background: #F0EEE9;\n            border-bottom: 2px solid #E4DFD8;\n            font-weight: 700;\n            font-size: 12px;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n            color: #6B7B8D;\n        }\n        \n        .catalog-header-image {\n            text-align: center;\n        }\n        \n        .catalog-header-price {\n            text-align: right;\n        }\n        \n        .catalog-header-action {\n            text-align: center;\n        }\n        \n        \/* List Item Row *\/\n        .catalog-list-item {\n            display: grid;\n            grid-template-columns: 80px 1fr auto auto;\n            gap: 20px;\n            padding: 16px 24px;\n            align-items: center;\n            border-bottom: 1px solid #F0EEE9;\n            transition: background 0.2s ease;\n        }\n        \n        .catalog-list-item:last-child {\n            border-bottom: none;\n        }\n        \n        .catalog-list-item:hover {\n            background: rgba(232, 89, 60, 0.04);\n        }\n        \n        \/* Thumbnail *\/\n        .catalog-list-image {\n            width: 70px;\n            height: 70px;\n            border-radius: 8px;\n            overflow: hidden;\n            background: #F0EEE9;\n            cursor: pointer;\n            position: relative;\n            border: 1px solid #E4DFD8;\n            transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;\n        }\n        \n        .catalog-list-image:hover {\n            border-color: #2AAFD3;\n            box-shadow: 0 4px 6px -1px rgba(232, 89, 60, 0.15);\n            transform: translateY(-2px);\n        }\n        \n        .catalog-list-image img {\n            width: 100%;\n            height: 100%;\n            object-fit: cover;\n        }\n        \n        .catalog-list-zoom {\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            background: rgba(232, 89, 60, 0.9);\n            color: white;\n            width: 28px;\n            height: 28px;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            opacity: 0;\n            transition: opacity 0.2s ease;\n        }\n        \n        .catalog-list-image:hover .catalog-list-zoom {\n            opacity: 1;\n        }\n        \n        \/* Product Info *\/\n        .catalog-list-info {\n            min-width: 0;\n        }\n        \n        .catalog-list-title {\n            font-size: 15px;\n            font-weight: 600;\n            color: #1B2A4A;\n            margin: 0 0 4px 0;\n            line-height: 1.4;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            cursor: pointer;\n            transition: color 0.2s ease;\n        }\n        \n        .catalog-list-title:hover {\n            color: #1B2A4A;\n        }\n        \n        .catalog-list-subtitle {\n            font-size: 13px;\n            color: #6B7B8D;\n            margin: 0;\n            line-height: 1.4;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n        \n        \/* Price *\/\n        .catalog-list-price {\n            text-align: right;\n            display: flex;\n            flex-direction: column;\n            align-items: flex-end;\n            gap: 2px;\n        }\n        \n        .catalog-price-original {\n            color: #94A3B8;\n        }\n        \n        .catalog-price-current {\n            font-weight: 700;\n            color: #1B2A4A;\n        }\n        \n        \/* Price rows with labels *\/\n        .catalog-price-row {\n            display: flex;\n            justify-content: flex-end;\n            align-items: center;\n            gap: 8px;\n            white-space: nowrap;\n        }\n        \n        .catalog-price-row.retail {\n            margin-bottom: 6px;\n        }\n        \n        .catalog-price-row.retail .catalog-price-label {\n            font-size: 13px;\n            color: #6B7B8D;\n            font-weight: 500;\n        }\n        \n        .catalog-price-row.retail .catalog-price-value {\n            font-size: 16px;\n            font-weight: 600;\n            color: #6B7B8D;\n        }\n        \n        .catalog-price-row.wholesale .catalog-price-label {\n            font-size: 13px;\n            color: #1E8FAD;\n            font-weight: 600;\n        }\n        \n        .catalog-price-row.wholesale .catalog-price-value {\n            font-size: 16px;\n            font-weight: 700;\n            color: #1E8FAD;\n        }\n        \n        \/* View Button *\/\n        .catalog-list-action {\n            text-align: center;\n        }\n        \n        .catalog-view-btn {\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n            padding: 8px 20px;\n            white-space: nowrap;\n            background: #1B2A4A;\n            color: white;\n            border: none;\n            border-radius: 9999px;\n            font-size: 13px;\n            font-weight: 700;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.2);\n            letter-spacing: 0.5px;\n        }\n        \n        .catalog-view-btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 8px 16px -4px rgba(27, 42, 74, 0.15);\n        }\n        \n        .catalog-view-btn svg {\n            width: 14px;\n            height: 14px;\n        }\n        \n        \/* ========================================\n           CATALOG LIST - TABLET RESPONSIVE\n           ======================================== *\/\n        @media (max-width: 900px) {\n            .catalog-list-header {\n                grid-template-columns: 70px 1fr auto auto;\n                gap: 15px;\n                padding: 14px 20px;\n                font-size: 11px;\n            }\n            \n            .catalog-list-item {\n                grid-template-columns: 70px 1fr auto auto;\n                gap: 15px;\n                padding: 14px 20px;\n            }\n            \n            .catalog-list-image {\n                width: 60px;\n                height: 60px;\n            }\n            \n            .catalog-list-title {\n                font-size: 14px;\n            }\n            \n            .catalog-list-subtitle {\n                font-size: 12px;\n            }\n            \n            .catalog-price-row.retail .catalog-price-label,\n            .catalog-price-row.wholesale .catalog-price-label {\n                font-size: 11px;\n            }\n            \n            .catalog-price-row.retail .catalog-price-value,\n            .catalog-price-row.wholesale .catalog-price-value {\n                font-size: 14px;\n            }\n            \n            .catalog-view-btn {\n                padding: 7px 12px;\n                font-size: 12px;\n            }\n        }\n        \n        \/* ========================================\n           CATALOG LIST - MOBILE RESPONSIVE\n           ======================================== *\/\n        @media (max-width: 600px) {\n            .catalog-list-header {\n                display: none; \/* Hide header on mobile *\/\n            }\n            \n            .catalog-list-item {\n                grid-template-columns: 60px 1fr;\n                grid-template-rows: auto auto auto;\n                gap: 10px 15px;\n                padding: 16px;\n            }\n            \n            .catalog-list-image {\n                width: 60px;\n                height: 60px;\n                grid-row: span 2;\n            }\n            \n            .catalog-list-info {\n                grid-column: 2;\n            }\n            \n            .catalog-list-title {\n                font-size: 14px;\n                white-space: normal;\n                display: -webkit-box;\n                -webkit-line-clamp: 2;\n                -webkit-box-orient: vertical;\n            }\n            \n            .catalog-list-subtitle {\n                font-size: 11px;\n                white-space: normal;\n                display: -webkit-box;\n                -webkit-line-clamp: 1;\n                -webkit-box-orient: vertical;\n            }\n            \n            .catalog-list-price {\n                grid-column: 2;\n                flex-direction: row;\n                flex-wrap: wrap;\n                justify-content: flex-start;\n                align-items: center;\n                gap: 8px 15px;\n            }\n            \n            .catalog-price-row {\n                justify-content: flex-start;\n            }\n            \n            .catalog-price-row.retail .catalog-price-value,\n            .catalog-price-row.wholesale .catalog-price-value {\n                font-size: 14px;\n            }\n            \n            .catalog-list-action {\n                grid-column: 1 \/ -1;\n                margin-top: 8px;\n            }\n            \n            .catalog-view-btn {\n                width: 100%;\n                justify-content: center;\n                padding: 10px 16px;\n            }\n        }\n        \n        \/* Extra small mobile *\/\n        @media (max-width: 380px) {\n            .catalog-list-item {\n                grid-template-columns: 50px 1fr;\n                gap: 8px 12px;\n                padding: 12px;\n            }\n            \n            .catalog-list-image {\n                width: 50px;\n                height: 50px;\n            }\n            \n            .catalog-list-title {\n                font-size: 13px;\n            }\n            \n            .catalog-price-row.retail .catalog-price-value,\n            .catalog-price-row.wholesale .catalog-price-value {\n                font-size: 13px;\n            }\n        }\n        \n        \/* Hide items during search in catalog list *\/\n        .catalog-list-item.search-hidden {\n            display: none !important;\n        }\n        \n        \/* Mobile container optimization for 2-column layout *\/\n        @media (max-width: 767px) {\n            .secure-addon-display {\n                padding: 40px 16px;\n            }\n        }\n        \n        @media (max-width: 479px) {\n            .secure-addon-display {\n                padding: 30px 12px;\n            }\n        }\n        \n        \/* Clean white background with top accent line *\/\n        .secure-addon-display::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 3px;\n            background: linear-gradient(90deg, #E8593C, #1B2A4A);\n            border-radius: 0;\n            z-index: 0;\n        }\n        \n        .secure-addon-display > * {\n            position: relative;\n            z-index: 2;\n        }\n        \n        \/* Modern section header *\/\n        .addon-section-title {\n            text-align: center;\n            font-size: clamp(28px, 4vw, 42px);\n            color: #1B2A4A;\n            font-weight: 800;\n            margin-bottom: 12px;\n            letter-spacing: -1.5px;\n            line-height: 1.15;\n        }\n        \n        .addon-section-subtitle {\n            text-align: center;\n            color: #6B7B8D;\n            font-size: clamp(16px, 2vw, 20px);\n            margin-bottom: 50px;\n            font-weight: 400;\n            font-style: italic;\n            letter-spacing: -0.01em;\n            max-width: 600px;\n            margin-left: auto;\n            margin-right: auto;\n        }\n        \n        \/* Tab Navigation Styles *\/\n        \/* ---- Filter Button ---- *\/\n        .filter-btn-wrapper {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            gap: 10px;\n            margin-bottom: 28px;\n            padding: 0 20px;\n        }\n        \n        .filter-trigger-btn {\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            padding: 10px 20px;\n            background: #FFFFFF;\n            border: 1.5px solid #E4DFD8;\n            border-radius: 12px;\n            font-size: 14px;\n            font-weight: 500;\n            color: #6B7B8D;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            font-family: inherit;\n        }\n        \n        .filter-trigger-btn:hover {\n            border-color: #2AAFD3;\n            box-shadow: 0 2px 8px rgba(232, 89, 60, 0.12);\n        }\n        \n        .filter-btn-label {\n            color: #94A3B8;\n            font-weight: 500;\n            font-size: 13px;\n        }\n        \n        .filter-btn-active {\n            color: #1B2A4A;\n            font-weight: 700;\n        }\n        \n        .filter-btn-count {\n            background: #E8593C;\n            color: #fff;\n            font-size: 11px;\n            font-weight: 700;\n            padding: 1px 7px;\n            border-radius: 10px;\n            min-width: 20px;\n            text-align: center;\n        }\n        \n        .filter-chevron {\n            color: #94A3B8;\n            transition: transform 0.2s ease;\n            flex-shrink: 0;\n        }\n        \n        .filter-trigger-btn.open .filter-chevron {\n            transform: rotate(180deg);\n        }\n        \n        \/* ---- Filter Drawer ---- *\/\n        .filter-drawer-backdrop {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            background: rgba(27, 42, 74, 0.4);\n            z-index: 99999999 !important;\n            backdrop-filter: blur(2px);\n            -webkit-backdrop-filter: blur(2px);\n            opacity: 0;\n            transition: opacity 0.3s ease;\n        }\n\n        .filter-drawer-backdrop.active {\n            display: block;\n            opacity: 1;\n        }\n\n        .filter-drawer {\n            position: fixed;\n            top: 0;\n            left: -360px;\n            width: 340px;\n            max-width: 85vw;\n            height: 100vh;\n            background: #ffffff;\n            z-index: 100000000 !important;\n            box-shadow: 8px 0 30px rgba(0,0,0,0.15);\n            transition: left 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n            display: flex;\n            flex-direction: column;\n            overflow: hidden;\n        }\n        \n        .filter-drawer.open {\n            left: 0;\n        }\n        \n        .filter-drawer-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: 20px 24px 16px;\n            border-bottom: 1.5px solid #E4DFD8;\n            flex-shrink: 0;\n        }\n        \n        .filter-drawer-header h4 {\n            margin: 0;\n            font-size: 12px;\n            font-weight: 700;\n            color: #94A3B8;\n            letter-spacing: 1.5px;\n            text-transform: uppercase;\n        }\n        \n        .filter-drawer-close {\n            background: none;\n            border: none;\n            color: #94A3B8;\n            cursor: pointer;\n            padding: 4px;\n            border-radius: 8px;\n            transition: all 0.2s;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n        \n        .filter-drawer-close:hover {\n            background: #F1F5F9;\n            color: #1B2A4A;\n        }\n        \n        .filter-drawer-list {\n            padding: 12px 16px;\n            overflow-y: auto;\n            flex: 1;\n        }\n        \n        .filter-drawer-item {\n            display: flex;\n            align-items: center;\n            gap: 14px;\n            width: 100%;\n            padding: 14px 16px;\n            background: transparent;\n            border: none;\n            border-radius: 12px;\n            font-size: 15px;\n            font-weight: 500;\n            color: #6B7B8D;\n            cursor: pointer;\n            transition: all 0.15s ease;\n            text-align: left;\n            font-family: inherit;\n            margin-bottom: 2px;\n        }\n        \n        .filter-drawer-item:hover {\n            background: #F0EEE9;\n        }\n        \n        .filter-drawer-item.active {\n            background: rgba(232, 89, 60, 0.06);\n            color: #2AAFD3;\n            font-weight: 600;\n        }\n        \n        \/* Radio circles *\/\n        .filter-item-radio {\n            width: 22px;\n            height: 22px;\n            border-radius: 50%;\n            border: 2px solid #D1D9E0;\n            flex-shrink: 0;\n            position: relative;\n            transition: all 0.2s ease;\n            background: #fff;\n        }\n        \n        .filter-drawer-item.active .filter-item-radio {\n            border-color: #2AAFD3;\n            background: rgba(232, 89, 60, 0.08);\n        }\n        \n        .filter-drawer-item.active .filter-item-radio::after {\n            content: '';\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            width: 10px;\n            height: 10px;\n            border-radius: 50%;\n            background: #E8593C;\n        }\n        \n        .filter-item-name {\n            flex: 1;\n        }\n        \n        .filter-item-count {\n            font-size: 12px;\n            font-weight: 700;\n            color: #94A3B8;\n            background: #F1F5F9;\n            padding: 2px 10px;\n            border-radius: 10px;\n            min-width: 24px;\n            text-align: center;\n        }\n        \n        .filter-drawer-item.active .filter-item-count {\n            background: rgba(232, 89, 60, 0.12);\n            color: #2AAFD3;\n        }\n        \n        \/* Hide old tab nav styles - keep classes for JS compatibility *\/\n        .addon-tabs-nav {\n            display: none;\n        }\n        \n        body.filter-drawer-open,\n        body.search-popup-open {\n            overflow: hidden;\n        }\n        \n        .addon-tab-btn {\n            \/* Base reset for filter-drawer-item use *\/\n        }\n        \n        .addon-tab-btn:hover {\n        }\n        \n        .addon-tab-btn.active {\n        }\n        \n        .addon-tab-btn .tab-count {\n        }\n        \n        .addon-tab-btn.active .tab-count {\n        }\n        \n        .addon-tab-content {\n            display: none;\n        }\n        \n        .addon-tab-content.active {\n            display: block;\n            animation: fadeIn 0.4s ease-in-out;\n        }\n        \n        @keyframes fadeIn {\n            from {\n                opacity: 0;\n                transform: translateY(10px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        \n        @media (max-width: 767px) {\n            .filter-trigger-btn {\n                padding: 9px 16px;\n                font-size: 13px;\n                width: 100%;\n                justify-content: center;\n            }\n            \n            .filter-drawer {\n                width: 300px;\n            }\n            \n            .filter-drawer-item {\n                padding: 12px 14px;\n                font-size: 14px;\n            }\n        }\n        \n        \/* Modern Grid Layout - Responsive Auto-Fill *\/\n        .addon-items-grid {\n            display: grid;\n            gap: clamp(16px, 2.5vw, 28px);\n            margin-bottom: 50px;\n            grid-template-columns: repeat(auto-fill, minmax(200px, 280px));\n            justify-content: center;\n            \/* Every card in a row STRETCHES to the tallest one so all boxes match\n               height and the \"Agregar\" \/ \"Suscribir\" button rows line up on the same\n               horizontal line. Header text is reserved to a fixed 2-line slot (see\n               .addon-title \/ .addon-subtitle) so the price + buttons always start at\n               the same Y. A one-time-only card just carries empty space below its\n               single button instead of a second stepper. *\/\n            align-items: stretch;\n            max-width: 100%;\n            contain: layout style;\n        }\n\n        \/* Mobile (< 600px) - 2 columns *\/\n        @media (max-width: 599px) {\n            .addon-items-grid {\n                grid-template-columns: repeat(2, 1fr) !important;\n                gap: 12px;\n                padding: 0 8px;\n            }\n        }\n\n        \/* Extra small screens (< 380px) *\/\n        @media (max-width: 379px) {\n            .addon-items-grid {\n                gap: 10px;\n                padding: 0 6px;\n            }\n        }\n\n        \/* Ultra small screens (320px) *\/\n        @media (max-width: 320px) {\n            .addon-items-grid {\n                gap: 8px;\n                padding: 0 4px;\n            }\n        }\n        \n        \/* Product Card \u2014 iEvolution Brand *\/\n        .addon-item-card {\n            background: #FFFFFF;\n            border-radius: 20px;\n            box-shadow: 0 6px 22px -12px rgba(27, 42, 74, 0.16);\n            transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;\n            display: flex;\n            flex-direction: column;\n            border: 1px solid #ECE7DE;\n            position: relative;\n            overflow: hidden; \/* Prevent content overflow *\/\n            width: 100%;\n            box-sizing: border-box; \/* Include padding and border in width *\/\n            contain: layout style;\n        }\n        \n        .addon-item-card .addon-image-wrapper {\n            border-radius: 16px;\n            overflow: hidden;\n        }\n\n        .addon-item-card .addon-content {\n            border-radius: 0 0 20px 20px;\n        }\n\n        .addon-item-card:hover {\n            transform: translateY(-5px);\n            box-shadow: 0 24px 46px -18px rgba(27, 42, 74, 0.22);\n            border-color: #E4DFD8;\n        }\n\n        \/* Modern Image Section \u2014 inset \"well\" so product photos sit framed *\/\n        .addon-image-wrapper {\n            position: relative;\n            margin: 14px 14px 0;\n            aspect-ratio: 1 \/ 1;\n            overflow: hidden;\n            background: #F5F2EC;\n            border-radius: 16px;\n            cursor: pointer;\n            transition: box-shadow 0.3s ease;\n        }\n\n        .addon-image-wrapper:hover {\n            box-shadow: 0 0 0 2px rgba(42, 175, 211, 0.18);\n        }\n        \n        .addon-image-wrapper img {\n            position: absolute;\n            inset: 0;\n            width: 100%;\n            height: 100%;\n            object-fit: cover; \/* fill the whole well edge-to-edge (was 85% contain) *\/\n            transition: transform 0.4s ease;\n        }\n\n        .addon-image-wrapper:hover img {\n            transform: scale(1.05);\n        }\n\n        \/* v11 \u2014 second gallery image crossfades in on hover (replaces the old\n           \"View Gallery & Details\" overlay message; the zoom \"+\" badge already\n           signals the gallery is clickable). Stacks above the primary <img> but\n           below the zoom badge (.image-click-hint z-index:2). Inherits absolute \/\n           cover \/ scale from \".addon-image-wrapper img\" above. *\/\n        .addon-image-wrapper .addon-hover-img {\n            opacity: 0;\n            z-index: 1;\n            transition: opacity 0.35s ease, transform 0.4s ease;\n            pointer-events: none;\n        }\n        .addon-image-wrapper:hover .addon-hover-img {\n            opacity: 1;\n        }\n        \/* Touch devices have no hover \u2192 don't load\/paint the second image at all. *\/\n        @media (max-width: 768px) {\n            .addon-hover-img { display: none !important; }\n        }\n\n        \/* Zoom icon badge \u2014 small circle, always visible. This is the\n           DEFAULT look for EVERY add-on card. PROMO cards upgrade to the\n           pulsing \"View Details\" pill via the .is-promo modifier below. *\/\n        .image-click-hint {\n            position: absolute;\n            top: 10px;\n            right: 10px;\n            width: 34px;\n            height: 34px;\n            background: rgba(255, 255, 255, 0.85);\n            -webkit-backdrop-filter: blur(6px);\n            backdrop-filter: blur(6px);\n            border: 1px solid rgba(27, 42, 74, 0.08);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 2;\n            transition: transform 0.2s ease, background 0.2s ease;\n            box-shadow: 0 2px 8px rgba(27, 42, 74, 0.12);\n        }\n\n        .image-click-hint svg {\n            color: #1B2A4A;\n            width: 16px;\n            height: 16px;\n        }\n\n        .addon-image-wrapper:hover .image-click-hint {\n            background: rgba(255, 255, 255, 0.98);\n            transform: scale(1.06);\n        }\n\n        \/* \u2500\u2500 PROMO variant: \"View Details\" pill with gentle pulse \u2500\u2500\n           ONLY add-ons flagged promo_badge_enabled get `.is-promo` on\n           their hint, so only those cards show the pill + pulse. Every\n           other card keeps the plain circle above. The two-class\n           selector (.image-click-hint.is-promo) outranks the single-\n           class base rules regardless of stylesheet order. *\/\n        .image-click-hint.is-promo {\n            width: auto;\n            height: auto;\n            justify-content: flex-start;\n            gap: 5px;\n            padding: 6px 11px;\n            border-radius: 20px;\n            background: rgba(232, 89, 60, 0.95);\n            color: #fff;\n            font-size: 11px;\n            font-weight: 700;\n            letter-spacing: 0.3px;\n            white-space: nowrap;\n            box-shadow: 0 2px 8px rgba(232, 89, 60, 0.4);\n            animation: addonHintPulse 2.4s ease-in-out infinite;\n        }\n\n        .image-click-hint.is-promo svg {\n            width: 14px;\n            height: 14px;\n            flex-shrink: 0;\n        }\n\n        .image-click-hint.is-promo .hint-label {\n            color: #fff;\n            line-height: 1;\n        }\n\n        \/* On hover, pause the pulse and give a small \"press me\" lift. *\/\n        .addon-image-wrapper:hover .image-click-hint.is-promo {\n            background: rgba(232, 89, 60, 1);\n            animation-play-state: paused;\n            transform: scale(1.06);\n            box-shadow: 0 4px 14px rgba(232, 89, 60, 0.6);\n        }\n\n        \/* Gentle breathing pulse \u2014 subtle scale + glow, loops forever. *\/\n        @keyframes addonHintPulse {\n            0%, 100% { transform: scale(1);    box-shadow: 0 2px 8px rgba(232, 89, 60, 0.4); }\n            50%      { transform: scale(1.05); box-shadow: 0 3px 14px rgba(232, 89, 60, 0.7); }\n        }\n\n        \/* Accessibility: kill the animation for visitors who asked the OS\n           to reduce motion \u2014 the pill stays fully visible, just static. *\/\n        @media (prefers-reduced-motion: reduce) {\n            .image-click-hint.is-promo { animation: none; }\n        }\n        \n        .image-overlay {\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            background: rgba(27, 42, 74, 0.88);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            z-index: 1;\n        }\n        \n        .addon-image-wrapper:hover .image-overlay {\n            opacity: 1;\n        }\n        \n        .overlay-content {\n            text-align: center;\n            padding: 20px;\n        }\n        \n        .view-gallery {\n            color: white;\n            font-weight: 600;\n            font-size: 15px;\n            padding: 12px 24px;\n            background: rgba(255, 255, 255, 0.25);\n            border-radius: 30px;\n            border: 2px solid rgba(255, 255, 255, 0.5);\n            transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;\n            display: inline-block;\n            margin-bottom: 12px;\n        }\n        \n        .view-gallery:hover {\n            background: rgba(255, 255, 255, 0.35);\n            transform: translateY(-2px);\n            border-color: rgba(255, 255, 255, 0.8);\n        }\n        \n        .click-instruction {\n            display: block;\n            color: white;\n            font-size: 13px;\n            opacity: 0.95;\n            font-weight: 500;\n            margin-top: 8px;\n        }\n        \n        \/* Content Section *\/\n        \/* Modern Content Section *\/\n        .addon-content {\n            padding: clamp(16px, 3vw, 24px);\n            flex: 1;\n            display: flex;\n            flex-direction: column;\n            gap: 8px;\n        }\n        \n        .addon-title {\n            font-size: clamp(13px, 2vw, 16px);\n            color: #1B2A4A;\n            margin: 0;\n            font-weight: 700;\n            line-height: 1.35;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            letter-spacing: -0.3px;\n            word-break: break-word;\n            hyphens: auto;\n            \/* Reserve exactly 2 lines so a 1-line title takes the same vertical\n               space as a 2-line one \u2192 the price + button rows line up card-to-card. *\/\n            min-height: calc(1.35em * 2);\n        }\n        \n        \/* Subtitle\/Tagline styling - Professional and mobile-friendly *\/\n        .addon-subtitle {\n            font-size: clamp(10px, 1.4vw, 12px);\n            color: #6B7B8D;\n            margin: 0;\n            font-weight: 500;\n            line-height: 1.35;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            letter-spacing: 0;\n            font-style: normal;\n            word-break: break-word;\n            hyphens: auto;\n            \/* Reserve 2 lines even when empty (the element is always rendered) so\n               cards with no subtitle keep the same header height as cards with one.\n               This is what keeps every price + button row on a shared baseline. *\/\n            min-height: calc(1.35em * 2);\n        }\n        \n        \/* When subtitle is present - keep title at 2 lines but adjust spacing *\/\n        .addon-title + .addon-subtitle {\n            margin-top: 2px;\n        }\n        \n        .addon-price-wrapper {\n            \/* No margin-top:auto \u2014 the header (title + subtitle) is fixed-height, so\n               the price flows at a constant Y and the buttons below it stay aligned.\n               Floating this to the bottom would re-break alignment on stretched cards. *\/\n            margin-top: 4px;\n            margin-bottom: 4px;\n            display: flex;\n            align-items: baseline;\n            flex-wrap: wrap;\n            gap: 9px;\n            min-height: 28px;\n        }\n\n        .addon-price-original {\n            text-decoration: line-through;\n            color: #A6B0BC;\n            font-size: clamp(12px, 1.7vw, 13px);\n            font-weight: 600;\n        }\n\n        \/* Wholesale mode: resale guidance under the price (cards, kits, list, lightbox) *\/\n        .addon-resale-prices { margin: 2px 0 6px; display: flex; flex-direction: column; gap: 3px; }\n        .addon-resale-row { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; line-height: 1.3; }\n        .addon-resale-label { color: #6B7B8D; }\n        .addon-resale-price { color: #1B2A4A; font-weight: 700; white-space: nowrap; }\n        .addon-resale-price .woocommerce-Price-amount { color: inherit; }\n        .product-lightbox-resale { margin: -12px 0 24px; padding-bottom: 20px; border-bottom: 1px solid rgba(226, 232, 240, 0.5); }\n        .product-lightbox-resale .addon-resale-row { font-size: 14px; }\n\n        .addon-price-current {\n            font-size: clamp(19px, 2.6vw, 22px);\n            font-weight: 800;\n            color: #2AAFD3; \/* Cyan sale price *\/\n            letter-spacing: -0.4px;\n        }\n\n        \/* Coral \"-X%\" discount chip *\/\n        \/* Discount pill \u2014 brand: badges\/promo pills = Amber + Navy text\n           (Coral is CTA-only, never a background). *\/\n        .addon-price-off {\n            font-size: 10.5px;\n            font-weight: 800;\n            color: #1B2A4A;\n            background: #F4A623;\n            padding: 3px 8px;\n            border-radius: 100px;\n            letter-spacing: 0.3px;\n            line-height: 1.5;\n            align-self: center;\n        }\n        \n        \/* ========================================\n           QUANTITY CONTROLS - BULLETPROOF VERSION\n           ======================================== *\/\n        \n        \/* Base Container - More Compact *\/\n        \/* Add to Order Button - shown when qty is 0 *\/\n        .addon-add-btn {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 8px;\n            width: 100%;\n            padding: 12px 16px;\n            background: #E8593C; \/* Coral \u2014 brand: ALL CTA buttons are Coral *\/\n            color: #FFFFFF;\n            border: none;\n            border-radius: 12px;\n            font-size: 14px;\n            font-weight: 700;\n            font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            margin-top: auto;\n            box-sizing: border-box;\n            letter-spacing: 0.3px;\n            \/* v7.4 \u2014 kill iOS double-tap zoom on rapid taps. *\/\n            touch-action: manipulation;\n            -webkit-tap-highlight-color: transparent;\n        }\n        .addon-add-btn {\n            border-radius: 13px;\n        }\n        .addon-add-btn:hover:not(:disabled) {\n            background: #D14E30; \/* darker Coral *\/\n            transform: translateY(-1px);\n            box-shadow: 0 6px 16px rgba(232, 89, 60, 0.28);\n        }\n        .addon-add-btn:active:not(:disabled) {\n            transform: translateY(0);\n        }\n        .addon-add-btn:disabled {\n            opacity: 0.4;\n            cursor: not-allowed;\n        }\n        .addon-add-btn svg {\n            flex-shrink: 0;\n        }\n\n        \/* Subscription bucket = secondary CTA \u2192 Coral OUTLINE (brand: CTAs are Coral;\n           solid vs outline distinguishes one-time from subscribe). *\/\n        .addon-qty-group-subscription .addon-add-btn {\n            background: #FFFFFF;\n            color: #E8593C;\n            border: 1.6px solid #E8593C;\n        }\n        .addon-qty-group-subscription .addon-add-btn:hover:not(:disabled) {\n            background: #FBECE7;\n            color: #C9472A;\n            box-shadow: 0 6px 16px rgba(232, 89, 60, 0.2);\n        }\n\n        \/* Stepper group label \u2014 SVG icon + uppercase text (icon replaces the emoji) *\/\n        .addon-qty-group-label {\n            display: flex;\n            align-items: center;\n            gap: 6px;\n            font-size: 11px;\n            font-weight: 800;\n            letter-spacing: 0.5px;\n            text-transform: uppercase;\n            color: #6B7B8D;\n            margin: 12px 0 6px;\n        }\n        .addon-qty-group-label .asa-lbl-ico {\n            width: 15px;\n            height: 15px;\n            flex-shrink: 0;\n        }\n        .addon-qty-group-subscription .addon-qty-group-label {\n            color: #2AAFD3;\n        }\n\n        \/* v11 \u2014 the one-time \"Today's Order\" label only makes sense as a CONTRAST to\n           a subscription bucket. On a one-time-ONLY card (no .has-sub) it's redundant,\n           so hide it:\n           - Grid ALSO has subscribable cards \u2192 keep the label's space reserved\n             (invisible) so the \"Agregar\" buttons stay aligned row-to-row.\n           - Grid is ALL one-time \u2192 collapse it entirely (clean, no empty gap). *\/\n        .addon-qty-groups:not(.has-sub) .addon-qty-group-onetime .addon-qty-group-label {\n            visibility: hidden;\n        }\n        .addon-items-grid:not(:has(.addon-qty-group-subscription)) .addon-qty-groups:not(.has-sub) .addon-qty-group-onetime .addon-qty-group-label {\n            display: none;\n        }\n\n        .addon-quantity-control {\n            display: none;\n            align-items: center !important;\n            justify-content: center !important;\n            background: #F0EEE9;\n            border-radius: 12px;\n            padding: 6px;\n            gap: 6px;\n            border: 1px solid #E4DFD8;\n            min-height: 48px;\n            width: 100%;\n            box-sizing: border-box;\n            overflow: visible;\n            margin-top: auto; \/* Push to bottom of card for row alignment *\/\n            \/* v7.4 \u2014 block iOS double-tap zoom across the whole stepper so a\n               fast +\/- doesn't yank the page. The qty input still respects\n               its own touch behavior for accessibility. *\/\n            touch-action: manipulation;\n        }\n\n        \/* v7.4 \u2014 catch-all: every interactive control inside the addon\n           display gets `manipulation` so iOS Safari never interprets a\n           rapid-tap sequence as a double-tap zoom. Pinch-zoom for\n           accessibility still works because we don't change the viewport\n           meta or use `user-scalable=no`. *\/\n        .secure-addon-display .qty-btn,\n        .secure-addon-display .addon-add-btn,\n        .secure-addon-display .addon-mode-btn,\n        .secure-addon-display .addon-qty,\n        .secure-addon-display .addon-variation-btn,\n        .secure-addon-display .variation-qty-btn,\n        .mobile-sheet-handle .addon-mode-btn,\n        .mobile-bar-expand-btn {\n            touch-action: manipulation;\n        }\n        \n        \/* Base Buttons - Smaller, More Compact *\/\n        .qty-btn {\n            width: 36px;\n            height: 36px;\n            min-width: 36px;\n            min-height: 36px;\n            max-width: 36px;\n            max-height: 36px;\n            border: 1px solid #E4DFD8;\n            background: #FFFFFF;\n            border-radius: 12px;\n            cursor: pointer;\n            display: flex !important;\n            align-items: center !important;\n            justify-content: center !important;\n            transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;\n            color: #1B2A4A;\n            font-size: 18px;\n            font-weight: 800;\n            box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n            flex-shrink: 0 !important;\n            flex-grow: 0 !important;\n            position: relative;\n            overflow: hidden;\n            \/* v7.4 \u2014 iOS Safari treats fast successive taps as a double-tap\n               zoom gesture, which yanks the page mid-add. `manipulation`\n               disables ONLY the double-tap zoom while keeping pinch-zoom\n               and panning intact, so accessibility isn't compromised. *\/\n            touch-action: manipulation;\n            -webkit-tap-highlight-color: transparent;\n            -webkit-touch-callout: none;\n            -webkit-user-select: none;\n            user-select: none;\n        }\n        \n        .qty-btn svg {\n            width: 18px !important;\n            height: 18px !important;\n            min-width: 18px;\n            min-height: 18px;\n            display: block !important;\n            pointer-events: none;\n            flex-shrink: 0;\n        }\n        \n        .qty-btn:hover:not(:disabled) {\n            background: #1B2A4A;\n            color: white;\n            transform: translateY(-1px);\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.2);\n            border-color: transparent;\n        }\n        \n        .qty-btn:active:not(:disabled) {\n            transform: translateY(1px);\n            background: #1E8FAD;\n        }\n        \n        .qty-btn:disabled {\n            opacity: 0.3;\n            cursor: not-allowed;\n            background: #F0EEE9;\n            border-color: #E4DFD8;\n        }\n        \n        \/* Quantity Input - Flexible but controlled *\/\n        .addon-qty {\n            width: 100%;\n            max-width: 60px;\n            min-width: 50px;\n            text-align: center;\n            margin: 0;\n            border: none;\n            background: transparent;\n            font-size: 16px;\n            font-weight: 700;\n            color: #1B2A4A;\n            padding: 0 4px;\n            cursor: text;\n            transition: border-color 0.2s ease, box-shadow 0.2s ease;\n            flex-shrink: 1;\n            flex-grow: 1;\n            box-sizing: border-box;\n            \/* Remove native browser spin arrows *\/\n            -moz-appearance: textfield;\n        }\n        \n        .addon-qty::-webkit-inner-spin-button,\n        .addon-qty::-webkit-outer-spin-button {\n            -webkit-appearance: none;\n            margin: 0;\n        }\n        \n        .addon-qty:focus {\n            outline: 2px solid #2AAFD3;\n            outline-offset: 2px;\n            border-radius: 6px;\n            background: rgba(232, 89, 60, 0.05);\n        }\n        \n        .addon-qty:hover {\n            background: rgba(232, 89, 60, 0.03);\n            border-radius: 6px;\n        }\n        \n        \/* Summary Card \u2014 iEvolution Brand *\/\n        .addon-summary-card {\n            background: #FFFFFF;\n            border-radius: 16px;\n            padding: clamp(20px, 3vw, 28px);\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n            max-width: 100%;\n            margin: 0;\n            border: 1px solid #E4DFD8;\n            position: relative;\n            overflow: hidden;\n        }\n        \n        .addon-summary-card.summary-hidden {\n            display: none !important;\n        }\n        \n        .addon-summary-card::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 3px;\n            background: linear-gradient(90deg, #E8593C, #1B2A4A);\n        }\n        \n        .summary-header h3 {\n            color: #1B2A4A;\n            font-size: clamp(20px, 3vw, 26px);\n            margin: 0 0 20px 0;\n            padding-bottom: 16px;\n            border-bottom: 2px solid #F0EEE9;\n            font-weight: 800;\n            letter-spacing: -0.3px;\n        }\n        \n        .summary-items {\n            margin-bottom: 20px;\n            max-height: 200px;\n            overflow-y: auto;\n        }\n        \n        .summary-item {\n            display: flex;\n            justify-content: space-between;\n            padding: 10px 0;\n            border-bottom: 1px solid #E4DFD8;\n        }\n        \n        .summary-item-name {\n            font-weight: 500;\n            color: #6B7B8D;\n        }\n        \n        .summary-item-price {\n            font-weight: 600;\n            color: #1B2A4A;\n        }\n        \n        \/* v14 \u2014 \"You save $X (Y%)\" row. Sits directly above the navy total so the\n           saving reads as part of the price block. Amber pill for the % per the\n           brand guide (badges = Amber + Navy text; Coral is CTA-only). *\/\n        .addon-estimate-block {\n            margin-top: 10px;\n            padding-top: 10px;\n            border-top: 1px solid #E8E5DF;\n        }\n        .addon-est-row {\n            display: flex;\n            align-items: baseline;\n            justify-content: space-between;\n            gap: 12px;\n            padding: 5px 0;\n            font-size: 13px;\n            color: #4A5568;\n        }\n        .addon-est-label small {\n            display: block;\n            font-size: 10.5px;\n            color: #8A8378;\n            font-weight: 500;\n            margin-top: 1px;\n        }\n        .addon-est-value { font-variant-numeric: tabular-nums; white-space: nowrap; }\n        .addon-est-grand {\n            margin-top: 4px;\n            padding-top: 8px;\n            border-top: 1px solid #E8E5DF;\n            font-size: 15px;\n            font-weight: 800;\n            color: #1B2A4A;\n        }\n        .addon-est-note {\n            margin: 6px 0 0;\n            font-size: 10.5px;\n            line-height: 1.45;\n            color: #8A8378;\n        }\n        .addon-estimate-pending {\n            margin-top: 10px;\n            padding-top: 10px;\n            border-top: 1px solid #E8E5DF;\n            font-size: 11.5px;\n            color: #8A8378;\n            text-align: center;\n        }\n        .addon-savings-total-row {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            gap: 10px;\n            margin-top: 14px;\n            padding: 10px 14px;\n            background: #FFF6E6;\n            border: 1px solid #F6DFAE;\n            border-radius: 10px;\n        }\n        .addon-savings-total-label {\n            display: inline-flex;\n            align-items: center;\n            gap: 7px;\n            font-size: 12.5px;\n            font-weight: 700;\n            color: #1B2A4A;\n            letter-spacing: 0.2px;\n        }\n        .addon-savings-total-label svg {\n            color: #F4A623;\n            flex-shrink: 0;\n        }\n        .addon-savings-total-pct {\n            background: #F4A623;\n            color: #1B2A4A;\n            font-size: 10.5px;\n            font-weight: 800;\n            letter-spacing: 0.3px;\n            padding: 2px 7px;\n            border-radius: 100px;\n            line-height: 1.5;\n        }\n        .addon-savings-total-amount {\n            font-size: 15px;\n            font-weight: 800;\n            color: #1B2A4A;\n            letter-spacing: -0.3px;\n            white-space: nowrap;\n        }\n\n        .total-row {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: clamp(16px, 3vw, 20px) clamp(20px, 4vw, 28px);\n            background: #1B2A4A;\n            border-radius: 12px;\n            margin-top: 20px;\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.2);\n            position: relative;\n            overflow: hidden;\n            min-height: 70px;\n            gap: 16px;\n            flex-wrap: nowrap;\n        }\n        \n        .total-label {\n            font-size: clamp(13px, 2vw, 16px);\n            color: #ffffff;\n            font-weight: 600;\n            letter-spacing: 0.01em;\n            white-space: nowrap;\n            flex-shrink: 0;\n        }\n        \n        .addon-total {\n            font-size: clamp(24px, 5vw, 32px);\n            font-weight: 800;\n            color: #ffffff;\n            letter-spacing: -0.02em;\n            white-space: nowrap;\n            text-align: right;\n        }\n        \n        \/* Qualifying Total \u2014 shows only items that count toward minimum *\/\n        .qualifying-total-row {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            padding: 12px 16px;\n            margin-top: 10px;\n            background: linear-gradient(135deg, #F0EEE9 0%, #F0EEE9 100%);\n            border-radius: 10px;\n            border: 1.5px solid #2AAFD3;\n        }\n        \n        .qualifying-label {\n            font-size: 12px;\n            font-weight: 700;\n            color: #1B2A4A;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n            display: flex;\n            align-items: center;\n            gap: 6px;\n        }\n        \n        .qualifying-label::before {\n            content: '\u2713';\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            width: 18px;\n            height: 18px;\n            background: #E8593C;\n            color: white;\n            border-radius: 50%;\n            font-size: 10px;\n            font-weight: 800;\n            flex-shrink: 0;\n        }\n        \n        .qualifying-amount {\n            font-size: 18px;\n            font-weight: 800;\n            color: #2AAFD3;\n            letter-spacing: -0.5px;\n        }\n        \n        .requirement-badge {\n            padding: 12px 16px;\n            margin: 12px 0;\n            border-radius: 8px;\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            font-weight: 600;\n            font-size: 13px;\n            border-left: 3px solid;\n        }\n        \n        .requirement-badge.min {\n            background: #FDF8F3;\n            color: #5C3D0E;\n            border-left-color: #8B6914;\n        }\n        \n        .requirement-badge.max {\n            background: #fee2e2;\n            color: #991b1b;\n            border-left-color: #ef4444;\n        }\n\n        \/* Minimum WAIVED \u2014 bypass product added. Brand: NO green \u2192 Cyan (positive). *\/\n        .requirement-badge.min.is-waived {\n            background: #E9F6FB;\n            color: #155E76;\n            border-left-color: #2AAFD3;\n        }\n\n        .validation-message {\n            margin-top: 16px;\n            padding: 14px;\n            border-radius: 8px;\n            display: none;\n            font-weight: 500;\n            text-align: center;\n            font-size: 14px;\n        }\n        \n        .validation-message.error {\n            display: block;\n            background: #fee2e2;\n            color: #991b1b;\n            border: 1px solid #fca5a5;\n        }\n        \n        \/* Brand: Cyan for positive\/valid (no green, no coral-as-fill). *\/\n        .validation-message.success {\n            display: block;\n            background: #E9F6FB;\n            color: #155E76;\n            border: 1px solid #A7DDEC;\n        }\n        \n        \/* Search Trigger Button *\/\n        .search-trigger-btn {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            width: 44px;\n            height: 44px;\n            background: #FFFFFF;\n            border: 1.5px solid #E4DFD8;\n            border-radius: 12px;\n            color: #6B7B8D;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            flex-shrink: 0;\n        }\n        \n        .search-trigger-btn:hover {\n            border-color: #2AAFD3;\n            color: #2AAFD3;\n            box-shadow: 0 2px 8px rgba(232, 89, 60, 0.12);\n        }\n        \n        .search-trigger-btn.has-search {\n            background: #E8593C;\n            border-color: #2AAFD3;\n            color: #ffffff;\n        }\n        \n        \/* Search Popup *\/\n        .addon-search-container {\n            position: relative;\n        }\n        \n        .search-popup-backdrop {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            background: rgba(27, 42, 74, 0.4);\n            z-index: 9999999;\n            backdrop-filter: blur(2px);\n            -webkit-backdrop-filter: blur(2px);\n            opacity: 0;\n            transition: opacity 0.25s ease;\n        }\n        \n        .search-popup-backdrop.active {\n            display: block;\n            opacity: 1;\n        }\n        \n        .search-popup {\n            display: none;\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            z-index: 10000000;\n            padding: 20px;\n            justify-content: center;\n            align-items: center;\n        }\n        \n        .search-popup.active {\n            display: flex;\n            animation: searchPopupIn 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n        }\n        \n        @keyframes searchPopupIn {\n            from { opacity: 0; transform: scale(0.95); }\n            to { opacity: 1; transform: scale(1); }\n        }\n        \n        .search-popup-inner {\n            width: 100%;\n            max-width: 560px;\n            background: #ffffff;\n            border-radius: 16px;\n            box-shadow: 0 20px 60px rgba(0,0,0,0.2), 0 0 0 1px rgba(0,0,0,0.05);\n            padding: 6px;\n            overflow: hidden;\n        }\n        \n        .search-popup-input-row {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            padding: 8px 16px;\n        }\n        \n        .search-popup-input-row .search-icon {\n            flex-shrink: 0;\n        }\n        \n        .search-popup-close {\n            flex-shrink: 0;\n            background: none;\n            border: none;\n            color: #94A3B8;\n            cursor: pointer;\n            padding: 6px;\n            border-radius: 8px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: all 0.2s;\n        }\n        \n        .search-popup-close:hover {\n            background: #F1F5F9;\n            color: #1B2A4A;\n        }\n        \n        .addon-search-input {\n            flex: 1;\n            padding: 12px 0;\n            font-size: 17px;\n            border: none;\n            background: transparent;\n            font-family: inherit;\n            box-shadow: none;\n            outline: none;\n            min-width: 0;\n            color: #1B2A4A;\n        }\n        \n        .addon-search-input:focus {\n            outline: none;\n            border: none;\n            box-shadow: none;\n        }\n        \n        .addon-search-input::placeholder {\n            color: #94A3B8;\n        }\n        \n        .search-clear-btn {\n            flex-shrink: 0;\n            background: #ef4444;\n            color: white;\n            border: none;\n            border-radius: 50%;\n            width: 28px;\n            height: 28px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            transition: background 0.2s ease;\n        }\n        \n        .search-clear-btn:hover {\n            background: #dc2626;\n        }\n        \n        .search-popup .search-results-count {\n            padding: 8px 16px 12px;\n            text-align: center;\n            font-size: 13px;\n            color: #6B7B8D;\n            font-weight: 500;\n            border-top: 1px solid #F1F5F9;\n        }\n        \n        \/* Highlight filtered items *\/\n        .addon-item-card.filtered-match {\n            animation: highlightPulse 0.6s ease-in-out;\n            border: 2px solid #1B2A4A !important;\n            box-shadow: 0 0 0 4px rgba(27, 42, 74, 0.1);\n        }\n        \n        @keyframes highlightPulse {\n            0%, 100% { box-shadow: 0 0 0 4px rgba(27, 42, 74, 0.1); }\n            50% { box-shadow: 0 0 0 6px rgba(27, 42, 74, 0.15); }\n        }\n        \n        \/* Hide non-matching items during search *\/\n        .addon-item-card.search-hidden {\n            display: none !important;\n        }\n        \n        \/* ========================================\n           MOBILE OPTIMIZATIONS (320px+)\n           ======================================== *\/\n        \n        \/* Extra small screens (320px - 479px) *\/\n        @media (max-width: 479px) {\n            .secure-addon-display {\n                padding: 30px 12px;\n            }\n            \n            .addon-section-title {\n                font-size: 22px;\n                margin-bottom: 8px;\n            }\n            \n            .addon-section-subtitle {\n                font-size: 14px;\n                margin-bottom: 30px;\n            }\n            \n            .filter-trigger-btn {\n                padding: 8px 12px;\n                font-size: 12px;\n            }\n            \n            .addon-items-grid {\n                grid-template-columns: repeat(2, 1fr);\n                gap: 12px;\n            }\n\n            .addon-item-card {\n                max-width: 100%;\n            }\n            \n            .addon-title {\n                font-size: 14px;\n                min-height: 2.7em; \/* keep the 2-line reserve so rows stay aligned *\/\n            }\n            \n            .addon-price-original {\n                font-size: 12px;\n                margin-bottom: 4px;\n            }\n            \n            .addon-price-current {\n                font-size: 18px;\n            }\n            \n            .addon-quantity-control {\n                min-height: 48px;\n                padding: 6px;\n                gap: 6px;\n                border-radius: 10px;\n            }\n            \n            .qty-btn {\n                width: 38px !important;\n                height: 38px !important;\n                min-width: 38px !important;\n                min-height: 38px !important;\n                max-width: 38px !important;\n                max-height: 38px !important;\n                border-radius: 10px;\n            }\n            \n            .qty-btn svg {\n                width: 18px !important;\n                height: 18px !important;\n                min-width: 18px !important;\n                min-height: 18px !important;\n            }\n            \n            .addon-qty {\n                max-width: 60px !important;\n                min-width: 50px !important;\n                font-size: 16px !important;\n            }\n            \n            .addon-summary-card {\n                padding: 20px 16px;\n                border-radius: 12px;\n            }\n            \n            .summary-header h3 {\n                font-size: 18px;\n                margin-bottom: 16px;\n                padding-bottom: 12px;\n            }\n            \n            .summary-item {\n                padding: 8px 0;\n                font-size: 13px;\n            }\n            \n            .total-row {\n                padding: 14px 16px;\n                min-height: 60px;\n                border-radius: 10px;\n                flex-direction: column;\n                gap: 8px;\n                text-align: center;\n            }\n            \n            .total-label {\n                font-size: 12px;\n            }\n            \n            .addon-total {\n                font-size: 22px;\n            }\n            \n            .requirement-badge {\n                padding: 10px 12px;\n                font-size: 12px;\n                gap: 8px;\n            }\n            \n            .validation-message {\n                padding: 12px;\n                font-size: 13px;\n            }\n            \n            .view-gallery {\n                font-size: 12px;\n                padding: 8px 16px;\n            }\n            \n            .view-gallery svg {\n                width: 18px;\n                height: 18px;\n                margin-right: 6px;\n            }\n            \n            .click-instruction {\n                font-size: 11px;\n            }\n            \n            .image-click-hint {\n                width: 32px;\n                height: 32px;\n                top: 8px;\n                right: 8px;\n            }\n\n            .image-click-hint svg {\n                width: 16px;\n                height: 16px;\n            }\n\n            \/* \u2500\u2500 Mobile: collapse \"View Details\" pill back to the circle \u2500\u2500\n               On mobile the .is-promo pill collides horizontally with the\n               PROMO ribbon on the left of the card (especially in Spanish\n               where \"PROMOCI\u00d3N\" + \"Ver detalles\" easily overrun). On\n               narrow screens we hide the text label entirely and force\n               the same compact circle the non-promo cards use. The PROMO\n               ribbon alone carries the \"this is a deal\" signal \u2014 the pill\n               text is redundant noise here. Desktop keeps the full pill. *\/\n            .image-click-hint.is-promo {\n                width: 32px;\n                height: 32px;\n                padding: 0;\n                gap: 0;\n                justify-content: center;\n                border-radius: 50%;\n                animation: none;       \/* drop the pulse \u2014 circle reads as a button on touch *\/\n                box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n            }\n\n            .image-click-hint.is-promo .hint-label {\n                display: none;\n            }\n\n            .image-click-hint.is-promo svg {\n                width: 16px;\n                height: 16px;\n            }\n        }\n        \n        \/* 320px specific optimizations *\/\n        @media (max-width: 360px) {\n            .secure-addon-display {\n                padding: 25px 10px;\n            }\n            \n            .addon-section-title {\n                font-size: 20px;\n            }\n            \n            .addon-section-subtitle {\n                font-size: 13px;\n            }\n            \n            .filter-trigger-btn {\n                padding: 7px 10px;\n                font-size: 11px;\n            }\n            \n            .addon-items-grid {\n                gap: 12px;\n            }\n            \n            .addon-content {\n                padding: 12px;\n            }\n            \n            .addon-title {\n                font-size: 13px;\n            }\n            \n            .addon-price-current {\n                font-size: 16px;\n            }\n            \n            .qty-btn {\n                width: 36px !important;\n                height: 36px !important;\n                min-width: 36px !important;\n                min-height: 36px !important;\n                max-width: 36px !important;\n                max-height: 36px !important;\n            }\n            \n            .qty-btn svg {\n                width: 16px !important;\n                height: 16px !important;\n                min-width: 16px !important;\n                min-height: 16px !important;\n            }\n            \n            .addon-qty {\n                max-width: 55px !important;\n                min-width: 45px !important;\n                font-size: 15px !important;\n            }\n            \n            .addon-summary-card {\n                padding: 16px 12px;\n            }\n            \n            .summary-header h3 {\n                font-size: 16px;\n            }\n            \n            .total-label {\n                font-size: 11px;\n            }\n            \n            .addon-total {\n                font-size: 20px;\n            }\n        }\n        \n        \n        \/* ========================================\n           VARIATION SELECTORS IN ADDON CARDS\n           ======================================== *\/\n        .addon-variation-selectors {\n            display: flex;\n            flex-direction: column;\n            gap: 6px;\n            margin-top: 8px;\n        }\n        \n        .addon-variation-field {\n            width: 100%;\n        }\n        \n        .addon-variation-select {\n            width: 100%;\n            padding: 8px 28px 8px 10px;\n            border: 1.5px solid #E4DFD8;\n            border-radius: 8px;\n            font-size: 12px;\n            font-weight: 500;\n            color: #1B2A4A;\n            background: #F0EEE9;\n            cursor: pointer;\n            transition: border-color 0.2s ease, box-shadow 0.2s ease;\n            font-family: inherit;\n            appearance: none;\n            -webkit-appearance: none;\n            background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7B8D' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'\/%3E%3C\/svg%3E\");\n            background-repeat: no-repeat;\n            background-position: right 8px center;\n            background-size: 12px;\n        }\n        \n        .addon-variation-select:focus {\n            outline: none;\n            border-color: #2AAFD3;\n            box-shadow: 0 0 0 3px rgba(232, 89, 60, 0.1);\n            background-color: #FFFFFF;\n        }\n        \n        .addon-variation-select.selected {\n            border-color: #2AAFD3;\n            background-color: #FFFFFF;\n            color: #1B2A4A;\n            font-weight: 600;\n        }\n        \n        .addon-variation-status {\n            text-align: center;\n            padding: 2px 0;\n        }\n        \n        .addon-variation-status .variation-prompt {\n            font-size: 10px;\n            color: #94A3B8;\n            font-weight: 500;\n            font-style: italic;\n        }\n        \n        .addon-variation-status .variation-matched {\n            font-size: 10px;\n            color: #1E8FAD;\n            font-weight: 600;\n        }\n        \n        .addon-variation-status .variation-unavailable {\n            font-size: 10px;\n            color: #ef4444;\n            font-weight: 600;\n        }\n\n        \/* \u2500\u2500 Per-location inventory \u2500\u2500\n           Owner's rule: a product the visitor's country can't get stays VISIBLE but\n           greyed with \"Agotado en tu pa\u00eds\" \u2014 never hidden, never addable. *\/\n        .addon-variation-status .variation-inv-out {\n            color: #6B7280;\n        }\n        .addon-item-card.addon-inv-unavailable .addon-image-wrapper img,\n        .catalog-list-item.addon-inv-unavailable .catalog-list-image img {\n            filter: grayscale(1);\n            opacity: 0.55;\n        }\n        .addon-item-card.addon-inv-unavailable .addon-title,\n        .addon-item-card.addon-inv-unavailable .addon-subtitle,\n        .addon-item-card.addon-inv-unavailable .addon-price-wrapper,\n        .addon-item-card.addon-inv-unavailable .addon-card-sub-savings,\n        .catalog-list-item.addon-inv-unavailable .catalog-list-title,\n        .catalog-list-item.addon-inv-unavailable .catalog-list-price {\n            opacity: 0.55;\n        }\n        .addon-inv-oos-note {\n            margin-top: 12px;\n            padding: 9px 12px;\n            border-radius: 10px;\n            background: #F3F4F6;\n            color: #4B5563;\n            font-size: 12px;\n            font-weight: 700;\n            letter-spacing: 0.2px;\n            text-align: center;\n        }\n        .catalog-list-item .addon-inv-oos-note {\n            display: inline-block;\n            margin-top: 6px;\n            padding: 5px 10px;\n            font-size: 11px;\n        }\n        .addon-inv-blocked-banner {\n            margin: 0 0 20px;\n            padding: 14px 18px;\n            border-radius: 12px;\n            border: 1px solid #FECACA;\n            background: #FEF2F2;\n            color: #991B1B;\n            font-size: 14px;\n            font-weight: 600;\n            line-height: 1.45;\n        }\n        .secure-addon-display.addon-inv-blocked .summary-secure-checkout-btn {\n            opacity: 0.5;\n            cursor: not-allowed;\n        }\n        .product-lightbox-inv-oos {\n            margin-top: 12px;\n            padding: 9px 12px;\n            border-radius: 10px;\n            background: #F3F4F6;\n            color: #4B5563;\n            font-size: 13px;\n            font-weight: 700;\n        }\n\n        \/* Variation items summary (shows all added variations) *\/\n        .addon-variation-items-summary {\n            display: flex;\n            flex-direction: column;\n            gap: 4px;\n            margin-top: 6px;\n        }\n        \n        .var-summary-tag {\n            display: flex;\n            align-items: center;\n            gap: 6px;\n            padding: 5px 8px;\n            background: rgba(232, 89, 60, 0.06);\n            border: 1px solid rgba(232, 89, 60, 0.15);\n            border-radius: 6px;\n            font-size: 11px;\n            line-height: 1.2;\n        }\n        \n        .var-tag-label {\n            flex: 1;\n            font-weight: 600;\n            color: #1B2A4A;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n        \n        .var-tag-qty {\n            font-weight: 700;\n            color: #2AAFD3;\n            white-space: nowrap;\n        }\n        \n        .var-tag-price {\n            font-weight: 500;\n            color: #6B7B8D;\n            font-size: 10px;\n            white-space: nowrap;\n        }\n        \n        .var-tag-remove {\n            background: none;\n            border: none;\n            color: #94A3B8;\n            font-size: 14px;\n            font-weight: 700;\n            cursor: pointer;\n            padding: 0 2px;\n            line-height: 1;\n            border-radius: 4px;\n            transition: all 0.15s;\n            flex-shrink: 0;\n        }\n        \n        .var-tag-remove:hover {\n            color: #ef4444;\n            background: rgba(239, 68, 68, 0.08);\n        }\n        \n        @media (max-width: 599px) {\n            .var-summary-tag {\n                padding: 4px 6px;\n                font-size: 10px;\n                gap: 4px;\n            }\n            \n            .var-tag-price {\n                display: none; \/* Hide price on small screens to save space *\/\n            }\n        }\n        \n        \/* Dim quantity controls when no variation selected *\/\n        .addon-quantity-control.variation-locked {\n            opacity: 0.4;\n            pointer-events: none;\n        }\n        \n        .addon-quantity-control.variation-unlocked {\n            opacity: 1;\n            pointer-events: auto;\n            animation: fadeIn 0.3s ease;\n        }\n        \n        \/* Variable product card \u2014 subtle indicator badge *\/\n        .addon-variable-product .addon-image-wrapper::after {\n            content: '';\n            display: none; \/* Hidden by default \u2014 only shown via JS if needed *\/\n        }\n        \n        @media (max-width: 599px) {\n            .addon-variation-select {\n                padding: 7px 26px 7px 8px;\n                font-size: 11px;\n                border-radius: 6px;\n            }\n            \n            .addon-variation-status .variation-prompt,\n            .addon-variation-status .variation-matched,\n            .addon-variation-status .variation-unavailable {\n                font-size: 9px;\n            }\n        }\n        \n        @media (max-width: 379px) {\n            .addon-variation-select {\n                padding: 6px 24px 6px 6px;\n                font-size: 10px;\n            }\n        }\n        \n        \/* ========================================\n           PRODUCT PAGE STYLE LIGHTBOX \u2014 iEvolution\n           ======================================== *\/\n        \n        .addon-lightbox {\n            display: none;\n            position: fixed;\n            z-index: 999999;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: #FFFFFF;\n            overflow-y: auto;\n            overflow-x: hidden;\n            font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;\n            -webkit-font-smoothing: antialiased;\n        }\n        \n        \/* Clean top accent line *\/\n        .addon-lightbox::before {\n            content: '';\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 3px;\n            background: linear-gradient(90deg, #E8593C, #1B2A4A);\n            pointer-events: none;\n            z-index: 1000003;\n        }\n        \n        .addon-lightbox > * {\n            position: relative;\n            z-index: 1;\n        }\n        \n        .addon-lightbox.active {\n            display: block;\n            opacity: 1;\n            animation: lightboxSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .addon-lightbox.closing {\n            opacity: 0;\n            transform: translateY(10px);\n            transition: opacity 0.15s ease, transform 0.15s ease;\n        }\n\n        \/* ========================================\n           FULL-SCREEN IMAGE VIEWER\n           ======================================== *\/\n        .fullscreen-viewer {\n            display: none;\n            position: fixed;\n            top: 0; left: 0; right: 0; bottom: 0;\n            z-index: 999999999;\n            align-items: center;\n            justify-content: center;\n        }\n        .fullscreen-viewer.active {\n            display: flex;\n            animation: fsViewerIn 0.2s ease;\n        }\n        .fullscreen-viewer.closing {\n            opacity: 0;\n            transition: opacity 0.15s ease;\n        }\n        @keyframes fsViewerIn {\n            from { opacity: 0; }\n            to { opacity: 1; }\n        }\n        .fullscreen-viewer-backdrop {\n            position: absolute;\n            top: 0; left: 0; right: 0; bottom: 0;\n            background: rgba(0, 0, 0, 0.92);\n            backdrop-filter: blur(8px);\n            -webkit-backdrop-filter: blur(8px);\n        }\n        .fullscreen-viewer-close {\n            position: absolute;\n            top: 20px; right: 20px;\n            z-index: 10;\n            width: 48px; height: 48px;\n            border-radius: 50%;\n            border: none;\n            background: rgba(255, 255, 255, 0.1);\n            color: #FFFFFF;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: background 0.2s ease;\n        }\n        .fullscreen-viewer-close:hover {\n            background: rgba(255, 255, 255, 0.25);\n        }\n        .fullscreen-viewer-prev,\n        .fullscreen-viewer-next {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            z-index: 10;\n            width: 52px; height: 52px;\n            border-radius: 50%;\n            border: none;\n            background: rgba(255, 255, 255, 0.1);\n            color: #FFFFFF;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: background 0.2s ease, transform 0.2s ease;\n        }\n        .fullscreen-viewer-prev { left: 20px; }\n        .fullscreen-viewer-next { right: 20px; }\n        .fullscreen-viewer-prev:hover,\n        .fullscreen-viewer-next:hover {\n            background: rgba(255, 255, 255, 0.25);\n            transform: translateY(-50%) scale(1.05);\n        }\n        .fullscreen-viewer-image-wrap {\n            position: relative;\n            z-index: 5;\n            max-width: 90vw;\n            max-height: 90vh;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n        .fullscreen-viewer-img {\n            max-width: 90vw;\n            max-height: 90vh;\n            object-fit: contain;\n            border-radius: 4px;\n            user-select: none;\n            -webkit-user-drag: none;\n            will-change: transform;\n            transition: transform 0.2s ease;\n        }\n        .fullscreen-viewer-img.zoomed {\n            transform: scale(2);\n            cursor: zoom-out;\n        }\n        .fullscreen-viewer-img:not(.zoomed) {\n            cursor: zoom-in;\n        }\n        .fullscreen-viewer-counter {\n            position: absolute;\n            bottom: 24px;\n            left: 50%;\n            transform: translateX(-50%);\n            z-index: 10;\n            color: rgba(255, 255, 255, 0.7);\n            font-size: 14px;\n            font-weight: 600;\n            font-family: 'Plus Jakarta Sans', sans-serif;\n            background: rgba(0, 0, 0, 0.4);\n            padding: 6px 16px;\n            border-radius: 20px;\n        }\n        @media (max-width: 767px) {\n            .fullscreen-viewer-prev,\n            .fullscreen-viewer-next { width: 40px; height: 40px; }\n            .fullscreen-viewer-prev { left: 10px; }\n            .fullscreen-viewer-next { right: 10px; }\n            .fullscreen-viewer-close { top: 12px; right: 12px; width: 40px; height: 40px; }\n        }\n\n        @keyframes lightboxSlideUp {\n            from { opacity: 0; transform: translateY(15px); }\n            to   { opacity: 1; transform: translateY(0); }\n        }\n        \n        \/* ---- Top Navigation Bar ---- *\/\n        .lightbox-topbar {\n            position: sticky;\n            top: 0;\n            z-index: 1000002;\n            display: flex;\n            align-items: center;\n            gap: 16px;\n            padding: 12px 24px;\n            background: #FFFFFF;\n            border-bottom: 1px solid #E4DFD8;\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n            will-change: transform;\n        }\n        \n        .lightbox-back-btn {\n            display: inline-flex;\n            align-items: center;\n            gap: 8px;\n            padding: 10px 20px;\n            background: #1B2A4A;\n            color: white;\n            border: none;\n            border-radius: 9999px;\n            font-size: 13px;\n            font-weight: 700;\n            cursor: pointer;\n            transition: transform 0.2s ease, box-shadow 0.2s ease;\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.25);\n            flex-shrink: 0;\n            white-space: nowrap;\n            letter-spacing: 0.5px;\n        }\n        \n        \/* Pulse attention on the back button when lightbox opens *\/\n        .addon-lightbox.active .lightbox-back-btn {\n            animation: backBtnPulse 1.8s ease-out;\n        }\n        \n        @keyframes backBtnPulse {\n            0%   { box-shadow: 0 4px 12px -2px rgba(27,42,74,0.25); }\n            20%  { box-shadow: 0 4px 12px -2px rgba(27,42,74,0.25), 0 0 0 6px rgba(232,89,60,0.15); }\n            50%  { box-shadow: 0 4px 12px -2px rgba(27,42,74,0.25), 0 0 0 10px rgba(232,89,60,0.06); }\n            100% { box-shadow: 0 4px 12px -2px rgba(27,42,74,0.25); }\n        }\n        \n        .lightbox-back-btn:hover {\n            transform: translateY(-1px);\n            box-shadow: 0 8px 16px -4px rgba(27, 42, 74, 0.2);\n        }\n        \n        .lightbox-back-btn:active {\n            transform: translateY(0);\n        }\n        \n        .lightbox-back-btn svg {\n            flex-shrink: 0;\n        }\n        \n        .lightbox-product-name {\n            flex: 1;\n            font-size: 15px;\n            font-weight: 600;\n            color: #6B7B8D;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n            min-width: 0;\n            transition: opacity 0.3s ease;\n        }\n        \n        \/* X close button \u2014 prominent with text label *\/\n        .lightbox-close {\n            display: flex;\n            align-items: center;\n            gap: 8px;\n            padding: 0 16px;\n            height: 42px;\n            background: #fee2e2;\n            border: 1px solid #fca5a5;\n            border-radius: 12px;\n            color: #dc2626;\n            cursor: pointer;\n            transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;\n            flex-shrink: 0;\n            font-size: 13px;\n            font-weight: 600;\n            font-family: inherit;\n        }\n        \n        .lightbox-close .close-label {\n            font-size: 13px;\n            font-weight: 600;\n            letter-spacing: 0.01em;\n        }\n\n        .lightbox-close:hover {\n            background: #ef4444;\n            border-color: #ef4444;\n            color: white;\n            transform: translateY(-2px);\n            box-shadow: 0 4px 12px -2px rgba(239, 68, 68, 0.2);\n        }\n        \n        .lightbox-close:hover .esc-hint {\n            background: rgba(255, 255, 255, 0.25);\n            color: white;\n        }\n        \n        .lightbox-close .esc-hint {\n            font-size: 10px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.08em;\n            color: #dc2626;\n            background: rgba(239, 68, 68, 0.1);\n            padding: 2px 6px;\n            border-radius: 4px;\n            line-height: 1;\n            transition: color 0.2s ease, background 0.2s ease;\n        }\n        \n        \/* Pulse attention on close button when lightbox opens *\/\n        .addon-lightbox.active .lightbox-close {\n            animation: closeBtnAttention 2s ease-out;\n        }\n        \n        @keyframes closeBtnAttention {\n            0%   { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }\n            15%  { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0.15); }\n            40%  { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0.08); }\n            100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }\n        }\n        \n        \/* ---- Mobile Drag Handle (swipe hint) ---- *\/\n        .lightbox-drag-handle {\n            display: none;\n            justify-content: center;\n            padding: 10px 0 0 0;\n            cursor: pointer;\n        }\n        \n        .drag-bar {\n            width: 40px;\n            height: 5px;\n            background: #E4DFD8;\n            border-radius: 9999px;\n            transition: background 0.2s ease;\n        }\n        \n        .lightbox-drag-handle:active .drag-bar {\n            background: #94A3B8;\n        }\n        \n        \/* ---- Close Hint Toast ---- *\/\n        .lightbox-close-toast {\n            position: fixed;\n            bottom: 28px;\n            left: 50%;\n            transform: translateX(-50%) translateY(20px);\n            display: flex;\n            align-items: center;\n            gap: 8px;\n            padding: 10px 20px;\n            background: rgba(27, 42, 74, 0.8);\n            color: white;\n            font-size: 13px;\n            font-weight: 500;\n            border-radius: 9999px;\n            z-index: 1000003;\n            pointer-events: none;\n            opacity: 0;\n            transition: opacity 0.3s ease, transform 0.3s ease;\n            white-space: nowrap;\n        }\n        \n        .addon-lightbox.active .lightbox-close-toast {\n            animation: toastShow 3s ease-out forwards;\n        }\n        \n        @keyframes toastShow {\n            0%   { opacity: 0; transform: translateX(-50%) translateY(20px); }\n            10%  { opacity: 1; transform: translateX(-50%) translateY(0); }\n            75%  { opacity: 1; transform: translateX(-50%) translateY(0); }\n            100% { opacity: 0; transform: translateX(-50%) translateY(-10px); }\n        }\n        \n        \/* ---- Image Counter Pill ---- *\/\n        .lightbox-counter {\n            position: absolute;\n            bottom: 16px;\n            right: 16px;\n            background: rgba(27, 42, 74, 0.6);\n            color: white;\n            font-size: 13px;\n            font-weight: 600;\n            padding: 6px 14px;\n            border-radius: 9999px;\n            z-index: 50;\n            letter-spacing: 0.03em;\n            pointer-events: none;\n        }\n        \n        \/* ---- Discount Badge ---- *\/\n        .lightbox-discount-badge {\n            display: inline-flex;\n            align-items: center;\n            gap: 5px;\n            background: linear-gradient(135deg, #ef4444, #dc2626);\n            color: white;\n            font-size: 13px;\n            font-weight: 700;\n            padding: 5px 12px;\n            border-radius: 9999px;\n            margin-left: 12px;\n            vertical-align: middle;\n            letter-spacing: 0.02em;\n            box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);\n        }\n        \n        \/* ---- Main Container ---- *\/\n        .lightbox-container {\n            max-width: 1400px;\n            margin: 32px auto 0;\n            padding: 0 40px;\n            display: grid;\n            grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);\n            gap: 40px;\n            align-items: start;\n        }\n\n        \/* ---- Full-width details (HTML description) under both columns ---- *\/\n        .lightbox-details {\n            max-width: 1400px;\n            margin: 32px auto 60px;\n            padding: 0 40px;\n        }\n        .lightbox-details[hidden] { display: none; }\n        .lightbox-details-inner {\n            background: #FFFFFF;\n            border: 1px solid #E4DFD8;\n            border-radius: 20px;\n            padding: 36px 40px 40px;\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n        }\n        .lightbox-details-heading {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            margin: 0 0 22px;\n            font-size: 12px;\n            font-weight: 700;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            color: #6B7B8D;\n        }\n        .lightbox-details-heading::before {\n            content: '';\n            width: 28px;\n            height: 3px;\n            border-radius: 2px;\n            background: #2AAFD3;\n            flex: none;\n        }\n        .lightbox-details-body { color: #1B2A4A; font-size: 16px; line-height: 1.8; }\n        .lightbox-details-body h3 { font-size: 22px; font-weight: 700; color: #1B2A4A; margin: 28px 0 14px; line-height: 1.3; }\n        .lightbox-details-body h4 { font-size: 18px; font-weight: 700; color: #1B2A4A; margin: 22px 0 10px; line-height: 1.4; }\n        .lightbox-details-body p { margin: 0 0 16px; font-size: 16px; line-height: 1.8; color: #1B2A4A; }\n        .lightbox-details-body ul, .lightbox-details-body ol { margin: 16px 0; padding-left: 28px; }\n        .lightbox-details-body li { margin-bottom: 8px; font-size: 16px; line-height: 1.7; color: #1B2A4A; }\n        .lightbox-details-body strong { color: #1B2A4A; font-weight: 700; }\n        .lightbox-details-body a { color: #2AAFD3; text-decoration: none; font-weight: 600; }\n        .lightbox-details-body a:hover { color: #1E8FAD; text-decoration: underline; }\n        .lightbox-details-body img, .lightbox-details-body video, .lightbox-details-body iframe { max-width: 100%; border-radius: 12px; }\n        \n        \/* ---- Left Column (gallery + documents) ---- *\/\n        .lightbox-left-column {\n            \/* This is the grid item \u2014 not sticky, allows documents to flow below *\/\n        }\n\n        \/* ---- Gallery Section ---- *\/\n        .lightbox-gallery-section {\n            display: flex;\n            flex-direction: row;\n            gap: 16px;\n        }\n        \n        \/* Thumbnails on the left (vertical strip) *\/\n        .lightbox-thumbnails-wrapper {\n            order: -1;\n            width: 80px;\n            min-width: 80px;\n            max-height: 520px;\n            overflow-y: auto;\n            overflow-x: hidden;\n            padding: 4px;\n            scrollbar-width: thin;\n            scrollbar-color: #E4DFD8 transparent;\n            flex-shrink: 0;\n        }\n        \n        .lightbox-thumbnails-wrapper::-webkit-scrollbar { width: 5px; }\n        .lightbox-thumbnails-wrapper::-webkit-scrollbar-track { background: transparent; }\n        .lightbox-thumbnails-wrapper::-webkit-scrollbar-thumb { background: #E4DFD8; border-radius: 3px; }\n        .lightbox-thumbnails-wrapper::-webkit-scrollbar-thumb:hover { background: #94A3B8; }\n        \n        .lightbox-thumbnails {\n            display: flex;\n            flex-direction: column;\n            gap: 10px;\n            padding: 0;\n        }\n        \n        .lightbox-thumbnail {\n            width: 72px;\n            height: 72px;\n            min-width: 72px;\n            min-height: 72px;\n            object-fit: cover;\n            border-radius: 10px;\n            cursor: pointer;\n            border: 3px solid transparent;\n            transition: border-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;\n            background: rgba(248, 250, 252, 0.8);\n            opacity: 0.55;\n        }\n        \n        .lightbox-thumbnail:hover {\n            border-color: rgba(232, 89, 60, 0.4);\n            transform: translateX(2px);\n            opacity: 1;\n            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n        }\n        \n        .lightbox-thumbnail.active {\n            border-color: #2AAFD3;\n            opacity: 1;\n            box-shadow: 0 0 0 3px rgba(232, 89, 60, 0.2);\n        }\n        \n        \/* Main image takes remaining space *\/\n        .lightbox-main-image-wrapper {\n            position: relative;\n            flex: 1;\n            min-width: 0;\n            background: #FFFFFF;\n            border-radius: 20px;\n            border: 1px solid #E4DFD8;\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n            overflow: visible;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            min-height: 500px;\n            padding: 48px 20px;\n        }\n        \n        \/* ---- Image Slides ---- *\/\n        .lightbox-slides {\n            width: 100%;\n            height: 100%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n        }\n        \n        .lightbox-slides img {\n            max-width: 100%;\n            max-height: 600px;\n            width: auto;\n            height: auto;\n            object-fit: contain;\n            display: none;\n            cursor: pointer;\n            transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n            border-radius: 8px;\n            will-change: transform, opacity;\n            -webkit-backface-visibility: hidden;\n            backface-visibility: hidden;\n        }\n        \n        .lightbox-slides img.active {\n            display: block;\n            animation: lbSlideIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n        \n        .lightbox-slides img.zoomed {\n            cursor: zoom-out;\n            transform: scale(2);\n            transform-origin: center center;\n            position: relative;\n            z-index: 10;\n        }\n        \n        @keyframes lbSlideIn {\n            from { transform: scale(0.95); opacity: 0; }\n            to   { transform: scale(1);    opacity: 1; }\n        }\n\n        \/* ---- Kit freebie badge overlay (active slide) ---- *\/\n        .lightbox-freebie-badge {\n            position: absolute;\n            top: 14px;\n            left: 14px;\n            background: linear-gradient(135deg, #10b981 0%, #059669 100%);\n            color: #fff;\n            padding: 8px 16px;\n            border-radius: 8px;\n            font-weight: 700;\n            font-size: 12px;\n            text-transform: uppercase;\n            letter-spacing: 0.6px;\n            z-index: 12;\n            box-shadow: 0 4px 14px rgba(16, 185, 129, 0.4);\n            pointer-events: none;\n            white-space: nowrap;\n            max-width: calc(100% - 28px);\n            overflow: hidden;\n            text-overflow: ellipsis;\n            font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;\n        }\n\n        \/* Freebie thumbnail \u2014 subtle green border so the strip signals\n           which slides are bonus products without overwhelming the row. *\/\n        .lightbox-thumbnail-freebie {\n            outline: 2px solid #10b981;\n            outline-offset: -2px;\n            position: relative;\n        }\n        .lightbox-thumbnail-freebie.active {\n            outline-color: #059669;\n        }\n\n        \/* ---- Video Slides ---- *\/\n        .lightbox-slides .video-slide {\n            max-width: 100%;\n            max-height: 600px;\n            width: 100%;\n            display: none;\n            border-radius: 12px;\n            overflow: hidden;\n        }\n        \n        .lightbox-slides .video-slide.active {\n            display: block;\n            animation: lbSlideIn 0.3s ease-out;\n        }\n        \n        .lightbox-slides .video-slide video {\n            width: 100%;\n            height: auto;\n            max-height: 600px;\n            display: block;\n            background: #000;\n        }\n        \n        \/* ---- Video Thumbnails ---- *\/\n        .lightbox-thumbnail.video-thumbnail {\n            background: #000;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n        }\n        \n        .lightbox-thumbnail.video-thumbnail::after {\n            content: '';\n            position: absolute;\n            inset: 0;\n            background: rgba(0, 0, 0, 0.3);\n            border-radius: 6px;\n            pointer-events: none;\n        }\n        \n        .lightbox-thumbnail.video-thumbnail.active {\n            border-color: #2AAFD3;\n            box-shadow: 0 0 0 2px #2AAFD3;\n        }\n        \n        \/* ---- Navigation Arrows ---- *\/\n        .lightbox-prev,\n        .lightbox-next {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            background: rgba(255, 255, 255, 0.85);\n            color: #1B2A4A;\n            border: 1px solid rgba(226, 232, 240, 0.5);\n            width: 48px;\n            height: 48px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            border-radius: 12px;\n            transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;\n            z-index: 100;\n            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n        }\n        \n        .lightbox-prev { left: -24px; }\n        .lightbox-next { right: -24px; }\n        \n        .lightbox-prev:hover,\n        .lightbox-next:hover {\n            background: #1B2A4A;\n            color: white;\n            border-color: transparent;\n            transform: translateY(-50%);\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.25);\n        }\n        \n        .lightbox-prev:active,\n        .lightbox-next:active {\n            transform: translateY(-50%);\n        }\n        \n        .lightbox-prev svg,\n        .lightbox-next svg {\n            width: 22px;\n            height: 22px;\n            stroke-width: 2.5;\n        }\n        \n        \n        \/* ---- Info Section (Right) \u2014 Glass Card ---- *\/\n        .lightbox-info-section {\n            padding: 0;\n        }\n        \n        .lightbox-description {\n            background: #FFFFFF;\n            border-radius: 20px;\n            border: 1px solid #E4DFD8;\n            box-shadow: 0 2px 8px -2px rgba(27, 42, 74, 0.06);\n            padding: 32px 32px 28px;\n            color: #1B2A4A;\n            line-height: 1.7;\n            font-size: 16px;\n            position: relative;\n            overflow: hidden;\n        }\n        \n        \/* Solid brand accent line (no gradients) *\/\n        .lightbox-description::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 4px;\n            background: #2AAFD3;\n        }\n\n        \/* Short description (admin field) under the price *\/\n        .product-desc-short {\n            font-size: 15px;\n            line-height: 1.65;\n            color: #1B2A4A;\n            margin: 0 0 22px;\n            position: relative;\n            z-index: 1;\n        }\n        .lightbox-description .product-desc-short p { margin: 0 0 10px; font-size: 15px; line-height: 1.65; color: #1B2A4A; }\n        .lightbox-description .product-desc-short p:last-child { margin-bottom: 0; }\n        \n        .lightbox-description:empty {\n            display: none;\n        }\n        \n        .lightbox-description:empty::before {\n            display: none;\n        }\n        \n        \/* Staggered entrance for info content children *\/\n        .addon-lightbox.loaded .lightbox-description > * {\n            animation: lbInfoFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both;\n            position: relative;\n            z-index: 1;\n        }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(1) { animation-delay: 0.04s; }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(2) { animation-delay: 0.08s; }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(3) { animation-delay: 0.12s; }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(4) { animation-delay: 0.16s; }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(5) { animation-delay: 0.20s; }\n        .addon-lightbox.loaded .lightbox-description > *:nth-child(6) { animation-delay: 0.24s; }\n\n        @keyframes lbInfoFadeIn {\n            from { opacity: 0; transform: translateY(8px); }\n            to   { opacity: 1; transform: translateY(0); }\n        }\n        \n        .product-desc-title {\n            font-size: 32px;\n            font-weight: 800;\n            color: #1B2A4A;\n            margin-bottom: 6px;\n            line-height: 1.15;\n            letter-spacing: -0.025em;\n            position: relative;\n            z-index: 1;\n        }\n        \n        .product-desc-subtitle {\n            font-size: 15px;\n            color: #6B7B8D;\n            margin-top: 2px;\n            margin-bottom: 14px;\n            font-weight: 400;\n            line-height: 1.5;\n            position: relative;\n            z-index: 1;\n        }\n        \n        .product-lightbox-price {\n            font-size: 34px;\n            font-weight: 800;\n            color: #1B2A4A;\n            letter-spacing: -0.8px;\n            margin-bottom: 22px;\n            line-height: 1.2;\n            padding-bottom: 22px;\n            border-bottom: 1px solid #E4DFD8;\n            position: relative;\n            z-index: 1;\n            font-feature-settings: 'tnum' 1, 'lnum' 1;\n        }\n        \n        .product-lightbox-price .woocommerce-Price-amount {\n            color: #1B2A4A;\n        }\n        \n        .product-lightbox-price del {\n            font-size: 20px;\n            color: #6B7B8D;\n            font-weight: 600;\n            margin-right: 12px;\n        }\n        \n        .product-lightbox-price ins {\n            text-decoration: none;\n        }\n        \n        .lightbox-description h3 {\n            font-size: 22px;\n            font-weight: 600;\n            color: #1B2A4A;\n            margin: 28px 0 14px 0;\n            line-height: 1.3;\n        }\n        \n        .lightbox-description h4 {\n            font-size: 19px;\n            font-weight: 600;\n            color: #1B2A4A;\n            margin: 22px 0 10px 0;\n            line-height: 1.4;\n        }\n        \n        .lightbox-description p {\n            margin-bottom: 16px;\n            font-size: 16px;\n            line-height: 1.8;\n            color: #6B7B8D;\n        }\n        \n        .lightbox-description ul,\n        .lightbox-description ol {\n            margin: 16px 0;\n            padding-left: 28px;\n        }\n        \n        .lightbox-description li {\n            margin-bottom: 8px;\n            font-size: 16px;\n            line-height: 1.7;\n            color: #6B7B8D;\n        }\n        \n        .lightbox-description strong {\n            color: #1B2A4A;\n            font-weight: 600;\n        }\n        \n        .lightbox-description a {\n            color: #2AAFD3;\n            text-decoration: none;\n            font-weight: 500;\n            transition: color 0.2s;\n        }\n        \n        .lightbox-description a:hover {\n            color: #1E8FAD;\n            text-decoration: underline;\n        }\n        \n        \/* CSS Isolation for Description Content *\/\n        .addon-description-isolated {\n            all: initial;\n            display: block !important;\n            width: 100% !important;\n            box-sizing: border-box !important;\n        }\n        \n        .addon-description-isolated * {\n            box-sizing: border-box;\n        }\n        \n        .addon-description-isolated > * {\n            all: revert;\n        }\n        \n        \/* ---- Loader ---- *\/\n        .lightbox-loader {\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -50%);\n            text-align: center;\n            z-index: 1000001;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            gap: 15px;\n            transition: opacity 0.3s ease;\n        }\n        \n        .lightbox-loader p {\n            color: #6B7B8D;\n            font-size: 15px;\n            margin: 0;\n            font-weight: 500;\n        }\n        \n        .loader-spinner {\n            border: 3px solid rgba(226, 232, 240, 0.5);\n            border-top: 3px solid #2AAFD3;\n            border-radius: 50%;\n            width: 44px;\n            height: 44px;\n            animation: spin 0.7s linear infinite;\n        }\n        \n        @keyframes spin {\n            0%   { transform: rotate(0deg); }\n            100% { transform: rotate(360deg); }\n        }\n        \n        .addon-lightbox.loaded .lightbox-loader {\n            opacity: 0;\n            pointer-events: none;\n        }\n        \n        .addon-lightbox:not(.loaded) .lightbox-container {\n            opacity: 0;\n        }\n        \n        .addon-lightbox.loaded .lightbox-container {\n            opacity: 1;\n            animation: lbSlideIn 0.4s ease-out;\n        }\n        \n        .addon-lightbox:not(.loaded) .lightbox-topbar .lightbox-product-name {\n            opacity: 0;\n        }\n        \n        \/* ========================================\n           LIGHTBOX \u2014 MODERN PASS (brand: Navy \/ Cyan \/ Cloud, soft shadows, no borders)\n           ======================================== *\/\n        .addon-lightbox .lightbox-main-image-wrapper {\n            border: none;\n            border-radius: 22px;\n            padding: 32px 24px;\n            min-height: 480px;\n            box-shadow: 0 1px 2px rgba(27, 42, 74, 0.04), 0 16px 40px -20px rgba(27, 42, 74, 0.22);\n        }\n        .addon-lightbox .lightbox-slides img { border-radius: 14px; }\n        .addon-lightbox .lightbox-prev,\n        .addon-lightbox .lightbox-next {\n            width: 44px; height: 44px;\n            border-radius: 50%;\n            background: #FFFFFF;\n            border: none;\n            color: #1B2A4A;\n            box-shadow: 0 4px 14px -4px rgba(27, 42, 74, 0.35);\n        }\n        .addon-lightbox .lightbox-prev { left: 16px; }\n        .addon-lightbox .lightbox-next { right: 16px; }\n        .addon-lightbox .lightbox-prev:hover,\n        .addon-lightbox .lightbox-next:hover { background: #1B2A4A; color: #FFFFFF; }\n        .addon-lightbox .lightbox-counter {\n            background: #1B2A4A;\n            color: #FFFFFF;\n            font-size: 12px;\n            font-weight: 700;\n            letter-spacing: 0.5px;\n            padding: 6px 12px;\n            box-shadow: 0 4px 12px -4px rgba(27, 42, 74, 0.4);\n        }\n        .addon-lightbox .lightbox-thumbnails { gap: 10px; }\n        .addon-lightbox .lightbox-thumbnail {\n            width: 72px; height: 72px; min-width: 72px; min-height: 72px;\n            border: 2px solid transparent;\n            border-radius: 14px;\n            background: #FFFFFF;\n            opacity: 0.6;\n            box-shadow: 0 1px 2px rgba(27, 42, 74, 0.06);\n        }\n        .addon-lightbox .lightbox-thumbnail:hover { border-color: rgba(42, 175, 211, 0.35); transform: none; opacity: 1; box-shadow: 0 1px 2px rgba(27, 42, 74, 0.06); }\n        .addon-lightbox .lightbox-thumbnail.active { border-color: #2AAFD3; opacity: 1; box-shadow: 0 6px 16px -8px rgba(42, 175, 211, 0.6); }\n        .addon-lightbox .lightbox-thumbnail.video-thumbnail { background: #1B2A4A; }\n        .addon-lightbox .lightbox-thumbnail.video-thumbnail::after { background: transparent; }\n\n        \/* Info card *\/\n        .addon-lightbox .lightbox-description {\n            border: none;\n            border-radius: 22px;\n            padding: 30px 30px 26px;\n            box-shadow: 0 1px 2px rgba(27, 42, 74, 0.04), 0 16px 40px -20px rgba(27, 42, 74, 0.22);\n        }\n        .addon-lightbox .lightbox-description::before { display: none; }\n        .addon-lightbox .product-desc-title { font-size: 30px; margin-bottom: 4px; }\n        .addon-lightbox .product-desc-subtitle { margin-bottom: 20px; }\n\n        \/* Price panel *\/\n        .addon-lightbox .product-lightbox-pricebox {\n            background: #F0EEE9;\n            border-radius: 16px;\n            padding: 18px 20px 20px;\n            margin-bottom: 22px;\n            position: relative;\n            z-index: 1;\n        }\n        .addon-lightbox .product-lightbox-price-label {\n            font-size: 11px;\n            font-weight: 700;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            color: #6B7B8D;\n            margin-bottom: 6px;\n        }\n        .addon-lightbox .product-lightbox-price {\n            font-size: 38px;\n            margin: 0;\n            padding: 0;\n            border: none;\n            line-height: 1.05;\n        }\n        .addon-lightbox .product-lightbox-price del { font-size: 18px; }\n        .addon-lightbox .product-lightbox-resale {\n            display: grid;\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 10px;\n            margin: 16px 0 0;\n            padding: 0;\n            border: none;\n        }\n        .addon-lightbox .product-lightbox-resale-tile {\n            background: #FFFFFF;\n            border-radius: 12px;\n            padding: 12px 14px;\n            display: flex;\n            flex-direction: column;\n            gap: 4px;\n        }\n        .addon-lightbox .product-lightbox-resale-label {\n            font-size: 10px;\n            font-weight: 700;\n            letter-spacing: 1.2px;\n            text-transform: uppercase;\n            color: #6B7B8D;\n            line-height: 1.3;\n        }\n        .addon-lightbox .product-lightbox-resale-value {\n            font-size: 18px;\n            font-weight: 800;\n            color: #1B2A4A;\n            letter-spacing: -0.3px;\n            font-feature-settings: 'tnum' 1, 'lnum' 1;\n        }\n\n        \/* Documents *\/\n        .addon-lightbox .addon-documents-section { margin-top: 4px; }\n        .addon-lightbox .addon-documents-heading {\n            margin: 0 0 10px;\n            font-size: 11px;\n            font-weight: 700;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            color: #6B7B8D;\n        }\n        .addon-lightbox .documents-list { display: flex; flex-direction: column; gap: 8px; }\n        .addon-lightbox .addon-doc-link {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            padding: 12px 14px;\n            background: #FFFFFF;\n            border: 1px solid #E4DFD8;\n            border-radius: 12px;\n            text-decoration: none;\n            color: #1B2A4A;\n            transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;\n        }\n        .addon-lightbox .addon-doc-link:hover {\n            border-color: rgba(42, 175, 211, 0.5);\n            box-shadow: 0 8px 20px -12px rgba(27, 42, 74, 0.25);\n            transform: translateY(-1px);\n        }\n        .addon-lightbox .addon-doc-badge {\n            flex: none;\n            min-width: 40px;\n            height: 26px;\n            padding: 0 8px;\n            border-radius: 7px;\n            background: #1B2A4A;\n            color: #FFFFFF;\n            font-size: 10px;\n            font-weight: 800;\n            letter-spacing: 1px;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n        }\n        .addon-lightbox .addon-doc-name { flex: 1; font-size: 14px; font-weight: 600; min-width: 0; }\n        .addon-lightbox .addon-doc-arrow { color: #2AAFD3; flex: none; transition: transform 0.2s ease; }\n        .addon-lightbox .addon-doc-link:hover .addon-doc-arrow { transform: translate(2px, -2px); }\n\n        @media (max-width: 480px) {\n            .addon-lightbox .lightbox-main-image-wrapper { padding: 20px 12px; min-height: 320px; border-radius: 16px; }\n            .addon-lightbox .lightbox-description { padding: 22px 18px 20px; border-radius: 16px; }\n            .addon-lightbox .product-lightbox-price { font-size: 32px; }\n            .addon-lightbox .product-lightbox-resale { grid-template-columns: 1fr; }\n        }\n\n        \/* ========================================\n           LIGHTBOX \u2014 RESPONSIVE\n           ======================================== *\/\n        \n        @media (max-width: 1024px) {\n            .lightbox-container {\n                grid-template-columns: 1fr;\n                gap: 32px;\n                margin: 24px auto 0;\n                padding: 0 24px;\n            }\n            .lightbox-details { margin: 24px auto 40px; padding: 0 24px; }\n            .lightbox-details-inner { padding: 24px 20px 28px; border-radius: 14px; }\n            \n            .lightbox-gallery-section {\n                position: relative;\n                top: 0;\n                flex-direction: column;\n            }\n            \n            \/* Thumbnails go back to horizontal below image on tablet\/mobile *\/\n            .lightbox-thumbnails-wrapper {\n                order: 0;\n                width: 100%;\n                min-width: unset;\n                max-height: none;\n                overflow-y: hidden;\n                overflow-x: auto;\n                padding: 8px 0;\n            }\n            \n            .lightbox-thumbnails-wrapper::-webkit-scrollbar { width: auto; height: 6px; }\n            \n            .lightbox-thumbnails {\n                flex-direction: row;\n            }\n            \n            .lightbox-thumbnail:hover {\n                transform: translateY(-2px);\n            }\n            \n            .lightbox-prev { left: 10px; }\n            .lightbox-next { right: 10px; }\n            \n            .product-desc-title { font-size: 28px; }\n        }\n        \n        @media (max-width: 767px) {\n            .lightbox-topbar {\n                padding: 10px 16px;\n                gap: 10px;\n            }\n            \n            .lightbox-back-btn {\n                padding: 8px 14px;\n                font-size: 13px;\n                gap: 6px;\n            }\n            \n            .lightbox-back-btn span {\n                display: none;\n            }\n            \n            .lightbox-back-btn::after {\n                content: 'Back';\n                font-size: 13px;\n            }\n            \n            .lightbox-product-name {\n                font-size: 13px;\n            }\n            \n            .lightbox-close {\n                padding: 0 12px;\n                height: 38px;\n                gap: 6px;\n            }\n            \n            .lightbox-close .close-label {\n                display: none;\n            }\n            \n            .lightbox-close .esc-hint {\n                display: none;\n            }\n            \n            .lightbox-drag-handle {\n                display: flex;\n            }\n            \n            .lightbox-counter {\n                bottom: 12px;\n                right: 12px;\n                font-size: 12px;\n                padding: 4px 10px;\n            }\n            \n            .lightbox-container {\n                margin: 16px auto 30px;\n                padding: 0 16px;\n                gap: 24px;\n            }\n            \n            .lightbox-main-image-wrapper {\n                min-height: 320px;\n                padding: 32px 12px;\n                border-radius: 12px;\n            }\n            \n            .lightbox-slides img { max-height: 380px; }\n            \n            .lightbox-prev,\n            .lightbox-next {\n                width: 38px;\n                height: 38px;\n                border-radius: 10px;\n            }\n            \n            .lightbox-prev { left: 6px; }\n            .lightbox-next { right: 6px; }\n            \n            .lightbox-prev svg,\n            .lightbox-next svg { width: 18px; height: 18px; }\n            \n            .lightbox-thumbnail {\n                width: 64px;\n                height: 64px;\n                min-width: 64px;\n                min-height: 64px;\n                border-radius: 8px;\n            }\n            \n            .lightbox-description {\n                padding: 24px 20px;\n                border-radius: 12px;\n            }\n            \n            .product-desc-title {\n                font-size: 24px;\n                margin-bottom: 6px;\n            }\n            \n            .product-lightbox-price {\n                font-size: 22px;\n                margin-bottom: 18px;\n                padding-bottom: 18px;\n            }\n            \n            .product-lightbox-price del { font-size: 17px; }\n            \n            .lightbox-discount-badge {\n                font-size: 11px;\n                padding: 3px 8px;\n                margin-left: 8px;\n            }\n            \n            .lightbox-description,\n            .lightbox-description p,\n            .lightbox-description li { font-size: 15px; }\n            \n            .lightbox-description h3 { font-size: 19px; margin: 20px 0 10px; }\n            .lightbox-description h4 { font-size: 17px; margin: 16px 0 8px; }\n        }\n        \n        @media (max-width: 480px) {\n            .lightbox-container {\n                padding: 0 12px;\n                margin: 12px auto 20px;\n            }\n            \n            .lightbox-main-image-wrapper {\n                min-height: 280px;\n                padding: 24px 10px;\n            }\n            \n            .lightbox-slides img { max-height: 300px; }\n            \n            .lightbox-description { padding: 20px 16px; }\n            .product-desc-title { font-size: 22px; }\n            .product-lightbox-price { font-size: 20px; }\n        }\n        \n        \/* Mobile Responsive *\/\n        @media (max-width: 767px) {\n            .addon-section-title {\n                font-size: 24px;\n            }\n            \n            .addon-section-subtitle {\n                font-size: 16px;\n            }\n            \n            \/* Force 2 columns on all mobile devices *\/\n            .addon-items-grid {\n                grid-template-columns: repeat(2, 1fr) !important;\n            }\n            \n            \/* Optimize card sizing for 2-column mobile layout *\/\n            .addon-item-card {\n                max-width: 100% !important;\n                width: 100% !important;\n                font-size: 13px;\n            }\n            \n            \/* Compact image wrapper for mobile \u2014 aspect-ratio well (matches desktop) *\/\n            .addon-image-wrapper {\n                aspect-ratio: 1 \/ 1;\n            }\n            \n            \/* Mobile title - always allow 2 lines *\/\n            .addon-title {\n                font-size: 12px;\n                line-height: 1.35;\n                -webkit-line-clamp: 2;\n                word-break: break-word;\n            }\n            \n            \/* Subtitle mobile optimizations *\/\n            .addon-subtitle {\n                font-size: 10px;\n                line-height: 1.3;\n                -webkit-line-clamp: 2; \/* Allow 2 lines on mobile *\/\n                margin-top: 2px;\n                font-weight: 500;\n            }\n            \n            .addon-content {\n                padding: 12px 10px;\n                gap: 6px;\n            }\n            \n            \/* Search bar mobile optimizations *\/\n            .addon-search-container {\n                margin: 20px auto 25px auto;\n                padding: 0 10px;\n            }\n            \n            .addon-search-input {\n                padding: 12px 0;\n                font-size: 15px;\n            }\n            \n            .addon-search-wrapper .search-icon {\n                width: 18px;\n                height: 18px;\n            }\n            \n            .search-clear-btn {\n                width: 26px;\n                height: 26px;\n            }\n            \n            .search-results-count {\n                font-size: 13px;\n                margin-top: 10px;\n            }\n            \n            .lightbox-loader {\n                gap: 10px;\n            }\n            \n            .lightbox-loader p {\n                font-size: 14px;\n            }\n            \n            .loader-spinner {\n                width: 40px;\n                height: 40px;\n                border-width: 3px;\n            }\n            \n            .product-desc-title {\n                font-size: 18px;\n                margin-bottom: 10px;\n                padding-bottom: 8px;\n            }\n            \n            .secure-addon-display {\n                padding: 20px 10px;\n            }\n            \n            .addon-summary-card {\n                padding: 20px;\n            }\n            \n            .lightbox-content {\n                max-width: 95%;\n                max-height: 90vh;\n                padding: 5px;\n            }\n            \n            .lightbox-slides img {\n                max-height: 40vh;\n            }\n            \n            .lightbox-prev,\n            .lightbox-next {\n                font-size: 24px;\n                padding: 8px 12px;\n            }\n            \n            .lightbox-prev {\n                left: 10px;\n            }\n            \n            .lightbox-next {\n                right: 10px;\n            }\n            \n            \/* Larger quantity buttons on mobile *\/\n            \n            .addon-content {\n                padding: 12px !important; \/* More padding to prevent overflow *\/\n            }\n            \n            \/* Mobile Button Controls - Much Smaller and Compact *\/\n            .addon-quantity-control {\n                padding: 5px !important;\n                gap: 4px !important;\n                min-height: 42px !important;\n                width: calc(100% - 0px) !important;\n                max-width: 100% !important;\n                box-sizing: border-box !important;\n                margin: 0 !important;\n            }\n            \n            .qty-btn {\n                width: 30px !important;\n                height: 30px !important;\n                min-width: 30px !important;\n                min-height: 30px !important;\n                max-width: 30px !important;\n                max-height: 30px !important;\n                font-size: 14px !important;\n                border-radius: 8px !important;\n                border-width: 1.5px !important;\n                flex-shrink: 0 !important;\n                flex-grow: 0 !important;\n            }\n            \n            .qty-btn svg {\n                width: 15px !important;\n                height: 15px !important;\n                min-width: 15px !important;\n                min-height: 15px !important;\n                stroke-width: 3 !important;\n            }\n            \n            .addon-qty {\n                width: 100% !important;\n                max-width: 45px !important;\n                min-width: 35px !important;\n                font-size: 15px !important;\n                font-weight: 800 !important;\n                padding: 0 2px !important;\n                flex-shrink: 1 !important;\n                flex-grow: 1 !important;\n            }\n        }\n        \n        \/* Extra Small Mobile (< 380px) - iPhone SE, etc *\/\n        @media (max-width: 379px) {\n            .addon-content {\n                padding: 10px !important; \/* Adequate padding *\/\n                gap: 5px !important;\n            }\n            \n            \/* Title extra small screens - always 2 lines *\/\n            .addon-title {\n                font-size: 11px;\n                line-height: 1.3;\n                -webkit-line-clamp: 2;\n            }\n            \n            \/* Subtitle extra small screens *\/\n            .addon-subtitle {\n                font-size: 9px;\n                -webkit-line-clamp: 2; \/* Keep 2 lines *\/\n                margin-top: 1px;\n                line-height: 1.25;\n            }\n            \n            .addon-quantity-control {\n                padding: 4px !important;\n                gap: 3px !important;\n                max-width: 100% !important;\n            }\n            \n            .qty-btn {\n                width: 28px !important;\n                height: 28px !important;\n                min-width: 28px !important;\n                min-height: 28px !important;\n                max-width: 28px !important;\n                max-height: 28px !important;\n            }\n            \n            .qty-btn svg {\n                width: 14px !important;\n                height: 14px !important;\n            }\n            \n            .addon-qty {\n                max-width: 42px !important;\n                min-width: 32px !important;\n                font-size: 14px !important;\n            }\n        }\n        \n        \/* Ultra Small (< 350px) - Rare but handle it *\/\n        @media (max-width: 349px) {\n            .addon-content {\n                padding: 10px 6px !important;\n            }\n            \n            .addon-quantity-control {\n                padding: 4px !important;\n                gap: 4px !important;\n            }\n            \n            .qty-btn {\n                width: 40px !important;\n                height: 40px !important;\n                min-width: 40px !important;\n                min-height: 40px !important;\n                max-width: 40px !important;\n                max-height: 40px !important;\n                font-size: 18px !important;\n            }\n            \n            .qty-btn svg {\n                width: 20px !important;\n                height: 20px !important;\n            }\n            \n            .addon-qty {\n                max-width: 55px !important;\n                min-width: 45px !important;\n                font-size: 17px !important;\n            }\n        }\n        \n        \/* Tablet Portrait (600px - 899px) *\/\n        @media (min-width: 600px) and (max-width: 899px) {\n            .addon-quantity-control {\n                padding: 10px !important;\n                gap: 10px !important;\n                min-height: 60px !important;\n            }\n            \n            .qty-btn {\n                width: 46px !important;\n                height: 46px !important;\n                min-width: 46px !important;\n                min-height: 46px !important;\n                max-width: 46px !important;\n                max-height: 46px !important;\n            }\n            \n            .qty-btn svg {\n                width: 22px !important;\n                height: 22px !important;\n            }\n            \n            .addon-qty {\n                font-size: 20px !important;\n                max-width: 75px !important;\n            }\n        }\n        \n        \/* Large Desktop (1600px+) *\/\n        @media (min-width: 1600px) {\n            .qty-btn {\n                width: 44px !important;\n                height: 44px !important;\n                min-width: 44px !important;\n                min-height: 44px !important;\n                max-width: 44px !important;\n                max-height: 44px !important;\n            }\n            \n            .addon-qty {\n                max-width: 80px !important;\n            }\n            \n            .addon-quantity-control {\n                gap: 10px !important;\n                padding: 10px !important;\n            }\n        }\n        \n        \/* Ultra small devices (320px) *\/\n        @media (max-width: 360px) {\n            .lightbox-slides img {\n                max-height: 30vh;\n            }\n            \n            .lightbox-description {\n                padding: 10px;\n                font-size: 12px;\n                margin-top: 10px;\n            }\n            \n            .lightbox-thumbnail {\n                width: 40px;\n                height: 40px;\n                min-width: 40px;\n                min-height: 40px;\n            }\n            \n            .lightbox-prev,\n            .lightbox-next {\n                font-size: 18px;\n                padding: 5px 8px;\n            }\n            \n            .lightbox-prev {\n                left: 5px;\n            }\n            \n            .lightbox-next {\n                right: 5px;\n            }\n        }\n        \n        \/* Fix for number cutoff *\/\n        input[type=\"number\"] {\n            min-width: 50px !important;\n            padding: 8px 5px !important;\n            box-sizing: border-box !important;\n        }\n\n        .addon-field input[type=\"number\"] {\n            width: 80px !important;\n        }\n\n        \/* Ensure numbers don't get cut off *\/\n        .addon-qty {\n            min-width: 45px !important;\n            padding: 0 5px !important;\n        }\n        \n        \/* ========================================\n           TOUCH & ACCESSIBILITY OPTIMIZATIONS\n           ======================================== *\/\n        \n        \/* Ensure all clickable elements are at least 44x44px (Apple HIG) *\/\n        @media (max-width: 767px) {\n            .filter-trigger-btn,\n            .filter-drawer-item {\n                min-height: 44px;\n                display: inline-flex;\n                align-items: center;\n            }\n            \n            .qty-btn {\n                min-width: 44px !important;\n                min-height: 44px !important;\n            }\n            \n            .addon-image-wrapper {\n                cursor: pointer;\n                -webkit-tap-highlight-color: transparent;\n            }\n            \n            \/* Prevent text selection on buttons *\/\n            .qty-btn,\n            .filter-trigger-btn,\n            .filter-drawer-item,\n            .view-gallery {\n                -webkit-user-select: none;\n                -moz-user-select: none;\n                -ms-user-select: none;\n                user-select: none;\n                -webkit-tap-highlight-color: transparent;\n            }\n            \n            \/* Smooth scrolling for scroll containers only *\/\n            .addon-items-grid,\n            .lightbox-content {\n                -webkit-overflow-scrolling: touch;\n            }\n        }\n        \n        \/* 320px Critical Optimizations *\/\n        @media (max-width: 320px) {\n            \/* Ensure container has proper padding *\/\n            .secure-addon-display {\n                padding: 20px 8px !important;\n                min-width: 0; \/* Already box-sizing: border-box from base *\/\n            }\n            \n            \/* Make sure cards don't overflow *\/\n            .addon-item-card {\n                max-width: 100%;\n                margin: 0 auto;\n            }\n            \n            \/* Ensure text is readable *\/\n            .addon-title {\n                font-size: 12px !important;\n                line-height: 1.3;\n            }\n            \n            .addon-price-current {\n                font-size: 15px !important;\n            }\n            \n            \/* Compact quantity controls *\/\n            .addon-quantity-control {\n                min-height: 44px !important;\n                padding: 4px !important;\n                gap: 4px !important;\n            }\n            \n            .qty-btn {\n                width: 34px !important;\n                height: 34px !important;\n                min-width: 34px !important;\n                min-height: 34px !important;\n                max-width: 34px !important;\n                max-height: 34px !important;\n            }\n            \n            .qty-btn svg {\n                width: 15px !important;\n                height: 15px !important;\n                min-width: 15px !important;\n                min-height: 15px !important;\n            }\n            \n            .addon-qty {\n                max-width: 50px !important;\n                min-width: 40px !important;\n                font-size: 14px !important;\n            }\n            \n            \/* Compact summary *\/\n            .addon-summary-card {\n                padding: 14px 10px !important;\n            }\n            \n            .summary-header h3 {\n                font-size: 15px !important;\n                margin-bottom: 12px !important;\n                padding-bottom: 10px !important;\n            }\n            \n            .summary-item {\n                padding: 6px 0 !important;\n                font-size: 12px !important;\n            }\n            \n            .total-row {\n                padding: 12px 14px !important;\n                min-height: 55px !important;\n            }\n            \n            .total-label {\n                font-size: 10px !important;\n            }\n            \n            .addon-total {\n                font-size: 18px !important;\n            }\n        }\n        \n        \/* Prevent horizontal scroll on all mobile devices *\/\n        @media (max-width: 767px) {\n            .secure-addon-display,\n            .addon-layout-wrapper,\n            .addon-products-column,\n            .addon-items-grid {\n                max-width: 100%;\n                box-sizing: border-box;\n                \/* NO overflow here \u2014 grid layout constrains children naturally.\n                   overflow-x: hidden forces overflow-y: auto (CSS spec) which\n                   creates a scroll container and causes double-scroll on mobile. *\/\n            }\n            \n            .addon-item-card {\n                max-width: 100%;\n                \/* overflow: hidden already set in base CSS *\/\n            }\n\n            body.addon-lightbox-open {\n                overflow: hidden;\n                position: fixed;\n                width: 100%;\n            }\n        }\n        \n        \/* ========================================\n           LEVEL PROGRESS TRACKER \u2014 Vertical Steps\n           ======================================== *\/\n        \/* v10 \u2014 box styling now lives on .addon-goals-bar \/ .addon-mobile-goal.\n           The stepped markup this styled was replaced by the single-bar goals UI. *\/\n        .addon-level-tracker {\n            margin: 0;\n        }\n        \n        .level-tracker-header {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            margin-bottom: 20px;\n        }\n        \n        .level-tracker-icon {\n            flex-shrink: 0;\n        }\n        \n        .level-tracker-title {\n            font-size: 15px;\n            font-weight: 800;\n            color: #1B2A4A;\n            letter-spacing: -0.3px;\n        }\n        \n        \/* Vertical Step Layout *\/\n        .level-steps {\n            display: flex;\n            flex-direction: column;\n            gap: 0;\n        }\n        \n        .level-step {\n            display: flex;\n            gap: 14px;\n            position: relative;\n        }\n        \n        \/* Left column: circle + connector *\/\n        .level-step-indicator {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            flex-shrink: 0;\n            width: 32px;\n        }\n        \n        .level-step-circle {\n            width: 32px;\n            height: 32px;\n            border-radius: 50%;\n            background: white;\n            border: 2px solid #D1D9E0;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n            z-index: 2;\n            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n            color: #94A3B8;\n        }\n        \n        .level-step-number {\n            font-size: 13px;\n            font-weight: 700;\n            color: #94A3B8;\n            line-height: 1;\n            transition: opacity 0.3s ease;\n        }\n        \n        .level-check-svg {\n            position: absolute;\n            opacity: 0;\n            transform: scale(0.5);\n            transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n        \n        \/* Connector line between steps *\/\n        .level-step-connector {\n            width: 2px;\n            flex: 1;\n            min-height: 14px;\n            background: #D1D9E0;\n            transition: background 0.4s ease;\n        }\n        \n        \/* Right column: name + amount *\/\n        .level-step-content {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            flex: 1;\n            min-height: 32px;\n            padding-bottom: 14px;\n        }\n        \n        \/* Remove bottom padding on last step *\/\n        .level-step:last-child .level-step-content {\n            padding-bottom: 0;\n        }\n        \n        .level-step-name {\n            font-size: 13px;\n            font-weight: 600;\n            color: #6B7B8D;\n            transition: all 0.3s ease;\n        }\n        \n        .level-step-amount {\n            font-size: 13px;\n            font-weight: 600;\n            color: #94A3B8;\n            font-variant-numeric: tabular-nums;\n            transition: all 0.3s ease;\n        }\n        \n        \/* ---- REACHED state (past levels) ---- *\/\n        .level-step.reached .level-step-circle {\n            background: #E8593C;\n            border-color: #2AAFD3;\n            color: white;\n        }\n        \n        .level-step.reached .level-step-number {\n            opacity: 0;\n        }\n        \n        .level-step.reached .level-check-svg {\n            opacity: 1;\n            transform: scale(1);\n        }\n        \n        .level-step.reached .level-step-connector {\n            background: #E8593C;\n        }\n        \n        .level-step.reached .level-step-name {\n            color: #1B2A4A;\n            font-weight: 700;\n        }\n        \n        .level-step.reached .level-step-amount {\n            color: #2AAFD3;\n            font-weight: 700;\n        }\n        \n        \/* ---- CURRENT state (just reached this one) ---- *\/\n        .level-step.current .level-step-circle {\n            background: #1B2A4A;\n            border-color: #1B2A4A;\n            color: white;\n            box-shadow: 0 0 0 4px rgba(27, 42, 74, 0.12);\n            animation: levelPulse 2.5s ease-in-out infinite;\n        }\n        \n        .level-step.current .level-step-number {\n            opacity: 0;\n        }\n        \n        .level-step.current .level-check-svg {\n            opacity: 1;\n            transform: scale(1);\n        }\n        \n        .level-step.current .level-step-name {\n            color: #1B2A4A;\n            font-weight: 800;\n        }\n        \n        .level-step.current .level-step-amount {\n            color: #1B2A4A;\n            font-weight: 800;\n        }\n        \n        \/* ---- NEXT target (the one you're working toward) ---- *\/\n        .level-step.next-target .level-step-circle {\n            border-color: #2AAFD3;\n            border-style: dashed;\n        }\n        \n        .level-step.next-target .level-step-number {\n            color: #2AAFD3;\n        }\n        \n        .level-step.next-target .level-step-name {\n            color: #2AAFD3;\n        }\n        \n        .level-step.next-target .level-step-amount {\n            color: #2AAFD3;\n        }\n        \n        @keyframes levelPulse {\n            0%, 100% { box-shadow: 0 0 0 4px rgba(27, 42, 74, 0.12); }\n            50% { box-shadow: 0 0 0 8px rgba(27, 42, 74, 0.06); }\n        }\n        \n        \/* Bottom status *\/\n        .level-current-status {\n            margin-top: 16px;\n            padding-top: 14px;\n            border-top: 1px solid #E4DFD8;\n        }\n        \n        .level-next-text {\n            font-size: 13px;\n            color: #6B7B8D;\n            font-weight: 500;\n        }\n        \n        .level-next-text strong {\n            color: #2AAFD3;\n            font-weight: 700;\n        }\n        \n        \/* Mobile adjustments *\/\n        @media (max-width: 600px) {\n\n            .level-step-circle {\n                width: 28px;\n                height: 28px;\n            }\n            \n            .level-step-indicator {\n                width: 28px;\n            }\n            \n            .level-check-svg {\n                width: 12px;\n                height: 12px;\n            }\n            \n            .level-step-number {\n                font-size: 12px;\n            }\n            \n            .level-step-name,\n            .level-step-amount {\n                font-size: 12px;\n            }\n            \n            .level-current-status {\n                margin-top: 12px;\n                padding-top: 12px;\n            }\n        }\n        \n        \/* ========================================\n           CHECKOUT BUTTON INSIDE SUMMARY CARD\n           ======================================== *\/\n        .summary-checkout-section {\n            margin-top: 24px;\n            padding-top: 24px;\n            border-top: 2px solid #F0EEE9;\n            text-align: center;\n        }\n        \n        .summary-checkout-section .summary-secure-checkout-btn {\n            width: 100%;\n            max-width: 100%;\n            padding: clamp(16px, 3vw, 22px) clamp(24px, 4vw, 40px);\n            background: #E8593C;\n            color: white;\n            border: none;\n            border-radius: 9999px;\n            font-size: clamp(14px, 2vw, 17px);\n            font-weight: 700;\n            cursor: pointer;\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 12px;\n            transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;\n            position: relative;\n            overflow: hidden;\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.25);\n            letter-spacing: 0.5px;\n            text-transform: uppercase;\n            font-family: inherit;\n        }\n        \n        .summary-checkout-section .summary-secure-checkout-btn:hover {\n            background: #D14832;\n            transform: translateY(-2px);\n            box-shadow: 0 10px 28px -6px rgba(232, 89, 60, 0.35);\n        }\n        \n        .summary-checkout-section .summary-secure-checkout-btn:active {\n            transform: translateY(-1px);\n            box-shadow: 0 6px 16px -4px rgba(232, 89, 60, 0.3);\n        }\n        \n        \/* Loading state \u2014 replace the entire text + arrow with a centered\n           spinner (same pattern allproductsshortcode.php uses for its Add-to-Cart\n           buttons). Keeps the button's dimensions stable while it processes,\n           and reads as \"working\" without any text noise. *\/\n        .summary-checkout-section .summary-secure-checkout-btn.loading {\n            pointer-events: none;\n            color: transparent !important;\n        }\n\n        .summary-checkout-section .summary-secure-checkout-btn.loading .btn-text,\n        .summary-checkout-section .summary-secure-checkout-btn.loading .btn-arrow {\n            \/* visibility (not display) preserves the button's layout width\n               so it doesn't collapse during the loading state. *\/\n            visibility: hidden;\n        }\n\n        .summary-checkout-section .summary-secure-checkout-btn.loading::after {\n            content: '';\n            position: absolute;\n            width: 22px;\n            height: 22px;\n            top: 50%;\n            left: 50%;\n            margin: -11px 0 0 -11px;\n            border: 2.5px solid rgba(255, 255, 255, 0.95);\n            border-top-color: transparent;\n            border-radius: 50%;\n            animation: spin 0.65s linear infinite;\n            pointer-events: none;\n        }\n\n        @keyframes spin {\n            from { transform: rotate(0deg); }\n            to { transform: rotate(360deg); }\n        }\n        \n        .summary-checkout-section .btn-text,\n        .summary-checkout-section .btn-arrow {\n            position: relative;\n        }\n        \n        .summary-checkout-section .checkout-security-badges {\n            display: flex;\n            justify-content: center;\n            gap: clamp(10px, 2vw, 16px);\n            margin-top: 18px;\n            flex-wrap: wrap;\n            padding: clamp(14px, 2vw, 18px);\n            background: #F0EEE9;\n            border-radius: 16px;\n            border: 1px solid #E4DFD8;\n        }\n        \n        .summary-checkout-section .security-badge {\n            display: inline-flex;\n            align-items: center;\n            gap: 6px;\n            padding: clamp(8px, 1.5vw, 10px) clamp(12px, 2vw, 16px);\n            background: white;\n            border-radius: 100px;\n            font-size: clamp(11px, 1.5vw, 13px);\n            color: #6B7B8D;\n            font-weight: 600;\n            border: 1px solid #E4DFD8;\n            box-shadow: 0 2px 6px rgba(27, 42, 74, 0.04);\n            transition: all 0.3s;\n        }\n        \n        .summary-checkout-section .security-badge:hover {\n            transform: translateY(-1px);\n            box-shadow: 0 4px 10px rgba(27, 42, 74, 0.08);\n            border-color: #E4DFD8;\n        }\n        \n        @media (max-width: 767px) {\n            .summary-checkout-section .summary-secure-checkout-btn {\n                font-size: 15px;\n                padding: 16px 24px;\n            }\n            \n            .summary-checkout-section .checkout-security-badges {\n                gap: 8px;\n                padding: 12px;\n            }\n            \n            .summary-checkout-section .security-badge {\n                font-size: 11px;\n                padding: 6px 10px;\n            }\n        }\n        \n        \/* ========================================\n           iEVOLUTION BRANDED MODAL\n           Replaces browser alert() dialogs\n           ======================================== *\/\n        .addon-modal-overlay {\n            position: fixed;\n            inset: 0;\n            background: rgba(27, 42, 74, 0.55);\n            backdrop-filter: blur(4px);\n            -webkit-backdrop-filter: blur(4px);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            z-index: 1000010;\n            opacity: 0;\n            visibility: hidden;\n            transition: opacity 0.3s ease, visibility 0.3s ease;\n            padding: 20px;\n        }\n        \n        .addon-modal-overlay.active {\n            opacity: 1;\n            visibility: visible;\n        }\n        \n        .addon-modal {\n            background: #FFFFFF;\n            border-radius: 20px;\n            width: 100%;\n            max-width: 420px;\n            padding: 0 32px 32px 32px;\n            position: relative;\n            overflow: hidden;\n            box-shadow: 0 24px 64px -16px rgba(27, 42, 74, 0.25);\n            transform: scale(0.92) translateY(16px);\n            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n        \n        .addon-modal-overlay.active .addon-modal {\n            transform: scale(1) translateY(0);\n        }\n        \n        \/* Top accent line \u2014 brand gradient *\/\n        .addon-modal-accent {\n            height: 4px;\n            background: linear-gradient(90deg, #E8593C, #1B2A4A);\n            margin: 0 -32px 28px -32px;\n        }\n        \n        \/* Close button *\/\n        .addon-modal-close {\n            position: absolute;\n            top: 16px;\n            right: 16px;\n            width: 36px;\n            height: 36px;\n            border-radius: 10px;\n            border: 1px solid #E4DFD8;\n            background: #F0EEE9;\n            color: #6B7B8D;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            transition: all 0.2s ease;\n        }\n        \n        .addon-modal-close:hover {\n            background: #fee2e2;\n            border-color: #fca5a5;\n            color: #dc2626;\n        }\n        \n        \/* Icon area *\/\n        .addon-modal-icon {\n            width: 56px;\n            height: 56px;\n            border-radius: 16px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            margin-bottom: 20px;\n            font-size: 26px;\n            line-height: 1;\n        }\n        \n        \/* Icon type variants *\/\n        .addon-modal-overlay[data-type=\"warning\"] .addon-modal-icon {\n            background: #FDF8F3;\n            border: 1px solid #C4956A;\n        }\n        \n        .addon-modal-overlay[data-type=\"error\"] .addon-modal-icon {\n            background: #fee2e2;\n            border: 1px solid #fca5a5;\n        }\n        \n        .addon-modal-overlay[data-type=\"info\"] .addon-modal-icon {\n            background: rgba(232, 89, 60, 0.08);\n            border: 1px solid rgba(232, 89, 60, 0.15);\n        }\n        \n        \/* Title *\/\n        .addon-modal-title {\n            font-size: 20px;\n            font-weight: 800;\n            color: #1B2A4A;\n            letter-spacing: -0.5px;\n            margin: 0 0 8px 0;\n            line-height: 1.3;\n        }\n        \n        \/* Message *\/\n        .addon-modal-message {\n            font-size: 15px;\n            color: #6B7B8D;\n            margin: 0 0 16px 0;\n            line-height: 1.6;\n            font-weight: 400;\n        }\n        \n        \/* Detail badge (shows amount) *\/\n        .addon-modal-detail {\n            display: none;\n            padding: 12px 16px;\n            border-radius: 12px;\n            font-size: 14px;\n            font-weight: 600;\n            margin-bottom: 24px;\n            border-left: 3px solid;\n        }\n        \n        .addon-modal-detail.visible {\n            display: flex;\n            align-items: center;\n            gap: 8px;\n        }\n        \n        .addon-modal-overlay[data-type=\"warning\"] .addon-modal-detail {\n            background: #FDF8F3;\n            color: #5C3D0E;\n            border-left-color: #8B6914;\n        }\n        \n        .addon-modal-overlay[data-type=\"error\"] .addon-modal-detail {\n            background: #fee2e2;\n            color: #991b1b;\n            border-left-color: #ef4444;\n        }\n        \n        .addon-modal-overlay[data-type=\"info\"] .addon-modal-detail {\n            background: rgba(232, 89, 60, 0.08);\n            color: #1E8FAD;\n            border-left-color: #2AAFD3;\n        }\n        \n        \/* CTA Button *\/\n        .addon-modal-btn {\n            width: 100%;\n            padding: 14px 24px;\n            border-radius: 9999px;\n            border: none;\n            font-size: 14px;\n            font-weight: 700;\n            letter-spacing: 0.5px;\n            cursor: pointer;\n            transition: all 0.2s ease;\n            font-family: inherit;\n        }\n        \n        .addon-modal-overlay[data-type=\"warning\"] .addon-modal-btn {\n            background: #1B2A4A;\n            color: white;\n        }\n        \n        .addon-modal-overlay[data-type=\"warning\"] .addon-modal-btn:hover {\n            background: #2D3E5F;\n            transform: translateY(-1px);\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.25);\n        }\n        \n        .addon-modal-overlay[data-type=\"error\"] .addon-modal-btn {\n            background: #1B2A4A;\n            color: white;\n        }\n        \n        .addon-modal-overlay[data-type=\"error\"] .addon-modal-btn:hover {\n            background: #2D3E5F;\n            transform: translateY(-1px);\n            box-shadow: 0 4px 12px -2px rgba(27, 42, 74, 0.25);\n        }\n        \n        .addon-modal-overlay[data-type=\"info\"] .addon-modal-btn {\n            background: #E8593C;\n            color: white;\n        }\n        \n        .addon-modal-overlay[data-type=\"info\"] .addon-modal-btn:hover {\n            background: #D14832;\n            transform: translateY(-1px);\n            box-shadow: 0 4px 12px -2px rgba(232, 89, 60, 0.3);\n        }\n        \n        \/* Mobile adjustments *\/\n        @media (max-width: 480px) {\n            .addon-modal {\n                padding: 0 24px 24px 24px;\n                border-radius: 16px;\n                max-width: 360px;\n            }\n            \n            .addon-modal-accent {\n                margin: 0 -24px 24px -24px;\n            }\n            \n            .addon-modal-icon {\n                width: 48px;\n                height: 48px;\n                font-size: 22px;\n                border-radius: 14px;\n                margin-bottom: 16px;\n            }\n            \n            .addon-modal-title {\n                font-size: 18px;\n            }\n            \n            .addon-modal-message {\n                font-size: 14px;\n            }\n        }\n        <\/style>\n        \n        <script>\n    \/\/ Per-currency decimals rule (shared with the checkout \/ currency engine):\n    \/\/ MXN configured as \"no decimals\" prints 200, not 199.80, and the checkout\n    \/\/ charges the same figure. Falls back to 2 decimals when the engine is absent.\n    function saaFmt(v) {\n        var cur = localStorage.getItem('store_selected_currency') || 'USD';\n        return window.scFormatConverted ? window.scFormatConverted(v, cur, { fixed: true }) : Number(v).toFixed(2);\n    }\n\n\/\/ ============================================\n\/\/ iEVOLUTION BRANDED MODAL SYSTEM\n\/\/ Replaces browser alert() with branded popups\n\/\/ ============================================\n\/\/ Types: 'warning' (min not met), 'error' (max exceeded), 'info' (general)\nwindow.showAddonModal = function(options) {\n    var overlay = document.getElementById('addon-modal-overlay');\n    if (!overlay) return;\n    \n    var type = options.type || 'info';\n    var icons = { warning: '\u26a0\ufe0f', error: '\ud83d\udeab', info: '\ud83d\udca1' };\n    \n    overlay.setAttribute('data-type', type);\n    overlay.querySelector('.addon-modal-icon').textContent = icons[type] || icons.info;\n    overlay.querySelector('.addon-modal-title').textContent = options.title || '';\n    overlay.querySelector('.addon-modal-message').textContent = options.message || '';\n    \n    var detailEl = overlay.querySelector('.addon-modal-detail');\n    if (options.detail) {\n        detailEl.textContent = options.detail;\n        detailEl.classList.add('visible');\n    } else {\n        detailEl.textContent = '';\n        detailEl.classList.remove('visible');\n    }\n    \n    \/\/ Update button text if provided\n    var btnEl = overlay.querySelector('.addon-modal-btn');\n    if (options.buttonText) {\n        btnEl.textContent = options.buttonText;\n    }\n    \n    overlay.classList.add('active');\n    document.body.style.overflow = 'hidden';\n};\n\nwindow.closeAddonModal = function() {\n    var overlay = document.getElementById('addon-modal-overlay');\n    if (!overlay) return;\n    overlay.classList.remove('active');\n    document.body.style.overflow = '';\n};\n\n\/\/ Close on overlay click (outside modal)\ndocument.addEventListener('click', function(e) {\n    if (e.target && e.target.id === 'addon-modal-overlay') {\n        window.closeAddonModal();\n    }\n});\n\n\/\/ Close on Escape key\ndocument.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n        var overlay = document.getElementById('addon-modal-overlay');\n        if (overlay && overlay.classList.contains('active')) {\n            window.closeAddonModal();\n        }\n    }\n});\n\njQuery(document).ready(function($) {\n    \/\/ ============================================\n    \/\/ HARDCODED ADDON CURRENCY RATES (fallback)\n    \/\/ If storeConversionRates is missing\/wrong, use these\n    \/\/ ============================================\n    var addonFallbackRates = { 'MXN': 20, 'COP': 4200 };\n    \n    \/\/ Ensure storeConversionRates exists and has valid MXN\/COP rates\n    if (!window.storeConversionRates) {\n        window.storeConversionRates = { 'USD': 1 };\n    }\n    \/\/ Fix rates that are clearly wrong (< 1 for MXN\/COP means inverted)\n    $.each(addonFallbackRates, function(cur, fallback) {\n        var current = window.storeConversionRates[cur];\n        if (!current || current <= 1) {\n            window.storeConversionRates[cur] = fallback;\n        }\n    });\n    \n    \/\/ ============================================\n    \/\/ SEARCH BAR FUNCTIONALITY\n    \/\/ TranslatePress Compatible - searches translated product names\n    \/\/ ============================================\n\n    \/\/ Move search popup & backdrop to body so they escape any parent overflow\/transform clipping\n    $('#searchPopup, #searchPopupBackdrop').appendTo('body');\n\n    \/\/ Move filter drawer & backdrop to body so they escape parent stacking contexts (same fix as search)\n    $('#filterDrawer, #filterDrawerBackdrop').appendTo('body');\n\n    \/\/ Clear search function (global scope for onclick)\n    window.clearAddonSearch = function() {\n        $('#addon-search-input').val('').trigger('input');\n    };\n    \n    \/\/ Search Popup: Open\n    $('#searchTriggerBtn').on('click', function(e) {\n        e.stopPropagation();\n        $('#searchPopup').addClass('active');\n        $('#searchPopupBackdrop').addClass('active');\n        $('body').addClass('search-popup-open');\n        \/\/ Focus the input after animation\n        setTimeout(function() {\n            $('#addon-search-input').focus();\n        }, 100);\n    });\n    \n    \/\/ Search Popup: Close\n    function closeSearchPopup() {\n        \/\/ Re-trigger search to ensure filters persist after popup hides\n        var currentVal = $('#addon-search-input').val();\n        $('#searchPopup').removeClass('active');\n        $('#searchPopupBackdrop').removeClass('active');\n        $('body').removeClass('search-popup-open');\n        \n        \/\/ Re-apply the search filter after popup is hidden\n        if (currentVal && currentVal.trim().length > 0) {\n            setTimeout(function() {\n                $('#addon-search-input').val(currentVal).trigger('input');\n            }, 50);\n        }\n        \n        updateSearchBtnState();\n    }\n    \n    $('#searchPopupBackdrop').on('click', function(e) {\n        e.stopPropagation();\n        closeSearchPopup();\n    });\n    \n    \/\/ Prevent clicks inside popup from closing it\n    $('.search-popup-inner').on('click', function(e) {\n        e.stopPropagation();\n    });\n    \n    \/\/ Close popup when clicking the outer popup area (outside the inner box)\n    $('#searchPopup').on('click', function(e) {\n        if (e.target === this) {\n            closeSearchPopup();\n        }\n    });\n    \n    \/\/ Close button inside popup\n    $('#searchPopupClose').on('click', function(e) {\n        e.stopPropagation();\n        closeSearchPopup();\n    });\n    \n    \/\/ Enter key closes popup (search is already applied live)\n    $('#addon-search-input').on('keydown', function(e) {\n        if (e.key === 'Enter') {\n            e.preventDefault();\n            closeSearchPopup();\n        }\n    });\n    \n    \/\/ Close search on Escape (but only if search popup is open)\n    $(document).on('keydown', function(e) {\n        if (e.key === 'Escape' && $('#searchPopup').hasClass('active')) {\n            closeSearchPopup();\n            e.stopPropagation(); \/\/ Don't also close filter drawer\n        }\n    });\n    \n    \/\/ Update search trigger button state (show active state when search has text)\n    function updateSearchBtnState() {\n        var hasText = $('#addon-search-input').val().trim().length > 0;\n        $('#searchTriggerBtn').toggleClass('has-search', hasText);\n    }\n    \n    \/\/ Search functionality - TranslatePress compatible\n    \/\/ Searches the VISIBLE translated text from TranslatePress\n    $('#addon-search-input').on('input', function() {\n        var searchTerm = $(this).val().toLowerCase().trim();\n        var $clearBtn = $('.search-clear-btn');\n        var $resultsCount = $('.search-results-count');\n        var matchCount = 0;\n        var totalCount = 0;\n        \n        \/\/ Show\/hide clear button\n        if (searchTerm.length > 0) {\n            $clearBtn.show();\n        } else {\n            $clearBtn.hide();\n        }\n        \n        \/\/ Update search trigger button state\n        updateSearchBtnState();\n        \n        \/\/ Helper function to normalize text for better matching\n        \/\/ Function to normalize text - removes accents and special characters for better matching\n        function normalizeText(text) {\n            if (!text) return '';\n            return text\n                .toString() \/\/ Ensure it's a string\n                .toLowerCase()\n                .trim()\n                \/\/ Remove accents\/diacritics\n                .normalize('NFD')\n                .replace(\/[\\u0300-\\u036f]\/g, '')\n                \/\/ Common Spanish character replacements (fallback if normalize doesn't work)\n                .replace(\/[\u00e1\u00e0\u00e4\u00e2]\/g, 'a')\n                .replace(\/[\u00e9\u00e8\u00eb\u00ea]\/g, 'e')\n                .replace(\/[\u00ed\u00ec\u00ef\u00ee]\/g, 'i')\n                .replace(\/[\u00f3\u00f2\u00f6\u00f4]\/g, 'o')\n                .replace(\/[\u00fa\u00f9\u00fc\u00fb]\/g, 'u')\n                .replace(\/\u00f1\/g, 'n')\n                .replace(\/[()[\\]{}<>]\/g, '') \/\/ Remove brackets and parentheses\n                .replace(\/\\s+\/g, ' '); \/\/ Normalize whitespace\n        }\n        \n        var normalizedSearchTerm = normalizeText(searchTerm);\n        \n        \/\/ Search through all addon cards (grid layout)\n        $('.addon-item-card').each(function() {\n            totalCount++;\n            var $card = $(this);\n            \n            \/\/ Get the VISIBLE title text (this is what TranslatePress translates)\n            var $title = $card.find('.addon-title');\n            var visibleTitleText = $title.text() || '';\n            var normalizedTitle = normalizeText(visibleTitleText);\n            \n            \/\/ Get the visible subtitle text (also translated by TranslatePress)\n            var $subtitle = $card.find('.addon-subtitle');\n            var visibleSubtitleText = $subtitle.length ? $subtitle.text() : '';\n            var normalizedSubtitle = normalizeText(visibleSubtitleText);\n            \n            \/\/ Get data attributes - use attr() for more reliable string retrieval\n            var productName = $card.attr('data-product-name') || '';\n            var translatedName = $card.attr('data-translated-name') || '';\n            var productSlug = $card.attr('data-product-slug') || '';\n            var searchTags = $card.attr('data-search-tags') || '';\n            var subtitleData = $card.attr('data-subtitle') || '';\n            \n            var normalizedProductName = normalizeText(productName);\n            var normalizedTranslatedName = normalizeText(translatedName);\n            var normalizedProductSlug = normalizeText(productSlug);\n            var normalizedSearchTags = normalizeText(searchTags);\n            var normalizedSubtitleData = normalizeText(subtitleData);\n            \n            \/\/ PRIORITY: Check visible translated text FIRST (TranslatePress compatible)\n            \/\/ Then fallback to data attributes (original names + translated names)\n            \/\/ Also check search tags for multi-language support\n            \/\/ Use normalized text for better matching (removes accents and special chars)\n            var matches = (\n                searchTerm === '' || \n                normalizedTitle.includes(normalizedSearchTerm) ||           \/\/ Translated visible title\n                visibleTitleText.toLowerCase().includes(searchTerm) ||      \/\/ Non-normalized title\n                normalizedSubtitle.includes(normalizedSearchTerm) ||        \/\/ Translated visible subtitle\n                visibleSubtitleText.toLowerCase().includes(searchTerm) ||   \/\/ Non-normalized subtitle\n                normalizedSearchTags.includes(normalizedSearchTerm) ||      \/\/ SEARCH TAGS normalized\n                searchTags.toLowerCase().includes(searchTerm) ||            \/\/ Non-normalized tags\n                normalizedProductName.includes(normalizedSearchTerm) ||     \/\/ Original name (English)\n                productName.toLowerCase().includes(searchTerm) ||           \/\/ Non-normalized original\n                normalizedTranslatedName.includes(normalizedSearchTerm) ||  \/\/ Translated name (e.g. Spanish)\n                translatedName.toLowerCase().includes(searchTerm) ||        \/\/ Non-normalized translated\n                normalizedProductSlug.includes(normalizedSearchTerm) ||     \/\/ Product slug\n                productSlug.toLowerCase().includes(searchTerm) ||           \/\/ Non-normalized slug\n                normalizedSubtitleData.includes(normalizedSearchTerm)       \/\/ Subtitle data attribute\n            );\n            \n            if (matches) {\n                $card.removeClass('search-hidden');\n                matchCount++;\n            } else {\n                $card.addClass('search-hidden');\n            }\n        });\n        \n        \/\/ Search through catalog list items (list layout)\n        $('.catalog-list-item').each(function() {\n            totalCount++;\n            var $item = $(this);\n            \n            \/\/ Get visible text from list item\n            var visibleTitleText = $item.find('.catalog-list-title').text() || '';\n            var normalizedTitle = normalizeText(visibleTitleText);\n            \n            var visibleSubtitleText = $item.find('.catalog-list-subtitle').text() || '';\n            var normalizedSubtitle = normalizeText(visibleSubtitleText);\n            \n            \/\/ Get data attributes\n            var productName = $item.attr('data-product-name') || '';\n            var translatedName = $item.attr('data-translated-name') || '';\n            var productSlug = $item.attr('data-product-slug') || '';\n            var searchTags = $item.attr('data-search-tags') || '';\n            var subtitleData = $item.attr('data-subtitle') || '';\n            \n            var normalizedProductName = normalizeText(productName);\n            var normalizedTranslatedName = normalizeText(translatedName);\n            var normalizedProductSlug = normalizeText(productSlug);\n            var normalizedSearchTags = normalizeText(searchTags);\n            var normalizedSubtitleData = normalizeText(subtitleData);\n            \n            var matches = (\n                searchTerm === '' || \n                normalizedTitle.includes(normalizedSearchTerm) ||\n                visibleTitleText.toLowerCase().includes(searchTerm) ||\n                normalizedSubtitle.includes(normalizedSearchTerm) ||\n                visibleSubtitleText.toLowerCase().includes(searchTerm) ||\n                normalizedSearchTags.includes(normalizedSearchTerm) ||\n                searchTags.toLowerCase().includes(searchTerm) ||\n                normalizedProductName.includes(normalizedSearchTerm) ||\n                productName.toLowerCase().includes(searchTerm) ||\n                normalizedTranslatedName.includes(normalizedSearchTerm) ||\n                translatedName.toLowerCase().includes(searchTerm) ||\n                normalizedProductSlug.includes(normalizedSearchTerm) ||\n                productSlug.toLowerCase().includes(searchTerm) ||\n                normalizedSubtitleData.includes(normalizedSearchTerm)\n            );\n            \n            if (matches) {\n                $item.removeClass('search-hidden');\n                matchCount++;\n            } else {\n                $item.addClass('search-hidden');\n            }\n        });\n        \n        \/\/ Update results count\n        if (searchTerm.length > 0) {\n            $resultsCount.show();\n            var i18n = secure_addons_ajax.i18n;\n            if (matchCount === 0) {\n                $resultsCount.html('<span class=\"results-text\" style=\"color: #ef4444;\">' + i18n.no_products_found + ' \"' + searchTerm + '\"<\/span>');\n            } else if (matchCount === totalCount) {\n                $resultsCount.html('<span class=\"results-text\" style=\"color: #2AAFD3;\">' + i18n.showing_all + ' ' + totalCount + ' ' + i18n.products + '<\/span>');\n            } else {\n                $resultsCount.html('<span class=\"results-text\" style=\"color: #1B2A4A;\">' + i18n.showing + ' ' + matchCount + ' ' + i18n.of + ' ' + totalCount + ' ' + i18n.products + '<\/span>');\n            }\n        } else {\n            $resultsCount.hide();\n        }\n        \n        \/\/ Update tab counts when searching (include both grid cards and list items)\n        $('.addon-tab-btn').each(function() {\n            var tabId = $(this).data('tab');\n            var visibleCards = $('.addon-tab-content[data-tab-content=\"' + tabId + '\"] .addon-item-card:not(.search-hidden)').length;\n            var visibleListItems = $('.addon-tab-content[data-tab-content=\"' + tabId + '\"] .catalog-list-item:not(.search-hidden)').length;\n            var visibleCount = visibleCards + visibleListItems;\n            $(this).find('.tab-count').text(visibleCount);\n        });\n        \n        \/\/ Update filter trigger button count for currently active tab\n        var activeDrawerItem = $('.filter-drawer-item.active');\n        if (activeDrawerItem.length) {\n            $('#filterActiveCount').text(activeDrawerItem.find('.filter-item-count').text());\n        }\n    });\n    \n    \/\/ ============================================\n    \/\/ URL-BASED FILTERING AND AUTO-ADD QUANTITIES\n    \/\/ ============================================\n    \n    \/\/ Parse URL parameters on page load\n        \n    \/\/ Tab Switching Functionality\n    $('.addon-tab-btn').on('click', function() {\n        var tabId = $(this).data('tab');\n        \n        \/\/ Update button states\n        $('.addon-tab-btn').removeClass('active');\n        \/\/ Mark all buttons with this tab ID as active (both drawer and hidden)\n        $('.addon-tab-btn[data-tab=\"' + tabId + '\"]').addClass('active');\n        \n        \/\/ Update content visibility\n        $('.addon-tab-content').removeClass('active');\n        $('.addon-tab-content[data-tab-content=\"' + tabId + '\"]').addClass('active');\n        \n        \/\/ Update filter trigger button label and count\n        var activeItem = $('.filter-drawer-item.active');\n        if (activeItem.length) {\n            $('#filterActiveLabel').text(activeItem.find('.filter-item-name').text());\n            $('#filterActiveCount').text(activeItem.find('.filter-item-count').text());\n        }\n        \n        \/\/ Close the drawer\n        closeFilterDrawer();\n    });\n    \n    \/\/ Filter Drawer: Open\n    $('#filterTriggerBtn').on('click', function(e) {\n        e.stopPropagation();\n        $(this).toggleClass('open');\n        $('#filterDrawer').toggleClass('open');\n        $('#filterDrawerBackdrop').toggleClass('active');\n        $('body').toggleClass('filter-drawer-open');\n    });\n    \n    \/\/ Filter Drawer: Close\n    function closeFilterDrawer() {\n        $('#filterTriggerBtn').removeClass('open');\n        $('#filterDrawer').removeClass('open');\n        $('#filterDrawerBackdrop').removeClass('active');\n        $('body').removeClass('filter-drawer-open');\n    }\n    \n    $('#filterDrawerClose').on('click', closeFilterDrawer);\n    $('#filterDrawerBackdrop').on('click', closeFilterDrawer);\n    \n    \/\/ Close drawer on Escape\n    $(document).on('keydown', function(e) {\n        if (e.key === 'Escape') closeFilterDrawer();\n    });\n    \n    \/\/ Currency symbols - declare globally at the top\n    var currencySymbols = {\n        'AED':'\u062f.\u0625','ALL':'L','AMD':'\u058f','ARS':'AR$','AUD':'A$','AZN':'\u20bc',\n        'BAM':'KM','BDT':'\u09f3','BGN':'\u043b\u0432','BHD':'\u062f.\u0628','BMD':'BD$','BND':'B$',\n        'BRL':'R$','BYN':'Br','CAD':'CA$','CHF':'CHF','CLP':'CLP$','CNY':'CN\u00a5',\n        'COP':'COL$','CRC':'\u20a1','CZK':'K\u010d','DKK':'kr','DOP':'RD$','DZD':'DA',\n        'EGP':'E\u00a3','EUR':'\u20ac','GBP':'\u00a3','GEL':'\u20be','GHS':'GH\u20b5','GTQ':'Q',\n        'HKD':'HK$','HUF':'Ft','IDR':'Rp','INR':'\u20b9','IQD':'\u0639.\u062f','ISK':'kr',\n        'JOD':'JD','JPY':'\u00a5','KES':'KSh','KGS':'\u043b\u0432','KRW':'\u20a9','KWD':'\u062f.\u0643',\n        'KYD':'KY$','KZT':'\u20b8','LBP':'\u0644.\u0644','LKR':'Rs','MAD':'MAD','MDL':'L',\n        'MKD':'\u0434\u0435\u043d','MMK':'K','MNT':'\u20ae','MUR':'Rs','MWK':'MK','MXN':'MX$',\n        'MYR':'RM','MZN':'MT','NAD':'N$','NGN':'\u20a6','NOK':'kr','NZD':'NZ$',\n        'OMR':'\u0631.\u0639.','PEN':'S\/.','PHP':'\u20b1','PKR':'Rs','PLN':'z\u0142','PYG':'\u20b2',\n        'QAR':'\u0631.\u0642','RON':'lei','RSD':'\u062f\u0438\u043d','RUB':'\u20bd','SAR':'\ufdfc','SEK':'kr',\n        'SGD':'S$','SOS':'S','THB':'\u0e3f','TND':'\u062f.\u062a','TOP':'T$','TRY':'\u20ba',\n        'TTD':'TT$','TWD':'NT$','UAH':'\u20b4','UGX':'USh','USD':'$','UYU':'UY$',\n        'UZS':'UZS','VND':'\u20ab','XAF':'FCFA','XOF':'CFA','YER':'\ufdfc','ZAR':'R'\n    };\n    \n    \/\/ Initialize lightbox\n    var currentSlide = 0;\n    var slides = [];\n    \n    \/\/ Prefetch images on hover (desktop only) - Load data before click\n    var prefetchTimeout;\n    $('.addon-image-wrapper').on('mouseenter', function() {\n        var $wrapper = $(this);\n        var productId = $wrapper.data('product-id');\n        \/\/ Read host product id from the surrounding container so the\n        \/\/ server can look up the per-host-product addon config for this\n        \/\/ addon (description, video, documents). Required for kits \u2014\n        \/\/ without it the kit lightbox helper has no source for those\n        \/\/ fields and the prefetch caches an incomplete response.\n        var prefetchParentId = $wrapper.closest('.secure-addon-display').data('product-id');\n\n        \/\/ Only prefetch on desktop (screen width > 768px) and if not already cached\n        if ($(window).width() > 768 && !imageDataCache[productId]) {\n            prefetchTimeout = setTimeout(function() {\n                \/\/ User has been hovering for 300ms, prefetch the data\n                $.ajax({\n                    url: secure_addons_ajax.ajax_url,\n                    type: 'POST',\n                    data: {\n                        action: 'get_product_images',\n                tp_lang: (document.documentElement.getAttribute('lang') || ''),\n                        product_id: productId,\n                        parent_product_id: prefetchParentId,\n                        nonce: secure_addons_ajax.nonce\n                    },\n                    success: function(response) {\n                        if (response.success && response.data.images && response.data.images.length > 0) {\n                            \/\/ Cache the data silently (but NOT description or video URL - those come from page for TranslatePress)\n                            imageDataCache[productId] = {\n                                images: response.data.images,\n                                description: response.data.description,\n                                product_name: response.data.product_name,\n                                documents: response.data.documents || []\n                            };\n                            \n                            \/\/ Save to sessionStorage\n                            try {\n                                sessionStorage.setItem('addon_image_cache', JSON.stringify(imageDataCache));\n                            } catch(e) {\n                                \/\/ Storage full or unavailable\n                            }\n                            \n                            \/\/ Preload first image silently\n                            if (response.data.images[0]) {\n                                var preloadImg = new Image();\n                                preloadImg.src = response.data.images[0].url || response.data.images[0];\n                            }\n                        }\n                    }\n                });\n            }, 300); \/\/ Wait 300ms before prefetching\n        }\n    }).on('mouseleave', function() {\n        \/\/ Cancel prefetch if user moves away quickly\n        clearTimeout(prefetchTimeout);\n    });\n    \n    \/\/ Open lightbox when clicking on image\n    \/\/ Cache for storing loaded image data\n    var imageDataCache = {};\n    \n    \/\/ Try to restore cache from sessionStorage\n    try {\n        var cachedData = sessionStorage.getItem('addon_image_cache');\n        if (cachedData) {\n            imageDataCache = JSON.parse(cachedData);\n        }\n    } catch(e) {\n        \/\/ SessionStorage not available or error\n    }\n\n    \/\/ v11 \u2014 the old mouse-X \"scrub through the gallery\" hover behavior was\n    \/\/ removed. It was hidden behind the \"View Gallery\" overlay message and\n    \/\/ depended on the AJAX prefetch completing first. Replaced by a simpler,\n    \/\/ deterministic CSS crossfade: each card renders a second gallery image\n    \/\/ (.addon-hover-img) that fades in on hover \u2014 see render_addon_card + the\n    \/\/ .addon-hover-img CSS. The mouseenter prefetch above still runs to warm\n    \/\/ the lightbox's full-gallery cache.\n\n    \/\/ Click handler for catalog list images and view buttons\n    $(document).on('click', '.catalog-list-image, .catalog-view-btn, .catalog-list-title', function(e) {\n        e.preventDefault();\n        var productId = $(this).data('product-id');\n        if (!productId) {\n            productId = $(this).closest('.catalog-list-item').find('.catalog-list-image').data('product-id');\n        }\n        \n        \/\/ Get parent product ID from the main container\n        var parentProductId = $(this).closest('.secure-addon-display').data('product-id');\n        \n        \/\/ Trigger the same lightbox logic as the grid cards\n        openProductLightbox(productId, parentProductId);\n    });\n    \n    \/\/ Function to open lightbox (shared between grid and list)\n    function openProductLightbox(productId, parentProductId) {\n        var lightbox = $('#addon-lightbox');\n        \n        \/\/ Get translated video URL from hidden element on the page\n        \/\/ TranslatePress translates the text content of these hidden spans per language\n        var translatedVideoUrl = '';\n        var $videoUrlEl = $('.addon-translatable-video-url[data-product-id=\"' + productId + '\"]').first();\n        if ($videoUrlEl.length) {\n            translatedVideoUrl = $.trim($videoUrlEl.text());\n        }\n        \n        \/\/ Read card's data-price-* attributes (may have config overrides from PHP)\n        var $card = $('.addon-item-card[data-addon-id=\"' + productId + '\"], .catalog-list-item[data-addon-id=\"' + productId + '\"]').first();\n        var cardCurrencyPrices = {};\n        var cardRegularCurrencyPrices = {};\n        if ($card.length) {\n            var ccCodes = window.customCurrencyCodes || [];\n            for (var ci = 0; ci < ccCodes.length; ci++) {\n                var ck = ccCodes[ci].toLowerCase();\n                var cv = parseFloat($card.data('price-' + ck));\n                if (cv && cv > 0) {\n                    cardCurrencyPrices[ck] = cv;\n                }\n                \/\/ Also read the product's regular\/compare price in this currency\n                var rv = parseFloat($card.data('regular-price-' + ck));\n                if (rv && rv > 0) {\n                    cardRegularCurrencyPrices[ck] = rv;\n                }\n            }\n        }\n        \/\/ Wholesale-mode resale guidance for the lightbox (USD)\n        window.saaLightboxResale = {\n            min: $card.length ? (parseFloat($card.attr('data-min-resale-usd')) || 0) : 0,\n            rec: $card.length ? (parseFloat($card.attr('data-rec-resale-usd')) || 0) : 0\n        };\n        \/\/ Per-location stock: the lightbox repeats the card's \"Agotado en tu pa\u00eds\"\n        \/\/ (whole product, or the variation currently picked on the card).\n        window.saaLightboxInvOut = ($card.length && ($card.attr('data-inv-unavailable') === '1' || $card.attr('data-inv-var-out') === '1'))\n            ? ($card.attr('data-inv-oos-msg') || '') : '';\n        \n        \/\/ Show lightbox with loader immediately\n        lightbox.removeClass('loaded').addClass('active');\n        \n        \/\/ Lock body scroll (iOS Safari compatible)\n        window._lightboxScrollY = window.scrollY;\n        $('body').css({\n            'overflow': 'hidden',\n            'position': 'fixed',\n            'top': -window._lightboxScrollY + 'px',\n            'left': '0',\n            'right': '0'\n        });\n        \n        \/\/ Get current language for cache key (TranslatePress\/WPML\/Polylang compatible)\n        var currentLanguage = 'default';\n        \n        \/\/ Try TranslatePress cookie\n        var trpCookie = document.cookie.match(\/trp_language=([^;]+)\/);\n        if (trpCookie) {\n            currentLanguage = trpCookie[1];\n        }\n        \/\/ Try WPML\/Polylang from HTML lang attribute\n        else if (document.documentElement.lang) {\n            currentLanguage = document.documentElement.lang;\n        }\n        \n        \/\/ Create unique cache key: productId_parentId_language\n        var baseCacheKey = productId + '_' + parentProductId + '_' + currentLanguage;\n        \n        \/\/ Check cache first\n        if (imageDataCache[baseCacheKey]) {\n            var cached = imageDataCache[baseCacheKey];\n            slides = cached.images;\n            currentSlide = 0;\n            showLightbox(\n                cached.description || '',\n                cached.subtitle || '',\n                cached.product_name,\n                cached.formatted_price,\n                cached.has_discount || false,\n                cached.formatted_regular_price || '',\n                cached.formatted_sale_price || '',\n                translatedVideoUrl || cached.video_url || '',\n                cached.documents || [],\n                $.extend({}, cached.custom_currency_prices || {}, cardCurrencyPrices),\n                cardRegularCurrencyPrices,\n                cached.short_description || ''\n            );\n            validateCache(productId, parentProductId, baseCacheKey, cached.timestamp);\n            return;\n        }\n        \n        \/\/ No cache - Load via AJAX\n        $.ajax({\n            url: secure_addons_ajax.ajax_url,\n            type: 'POST',\n            data: {\n                action: 'get_product_images',\n                tp_lang: (document.documentElement.getAttribute('lang') || ''),\n                product_id: productId,\n                parent_product_id: parentProductId,\n                nonce: secure_addons_ajax.nonce\n            },\n            success: function(response) {\n                if (response.success && response.data.images && response.data.images.length > 0) {\n                    slides = response.data.images;\n                    currentSlide = 0;\n                    \n                    \/\/ Cache everything (use translated video URL if available)\n                    var effectiveVideoUrl = translatedVideoUrl || response.data.video_url || '';\n                    imageDataCache[baseCacheKey] = {\n                        images: response.data.images,\n                        product_name: response.data.product_name,\n                        formatted_price: response.data.formatted_price,\n                        has_discount: response.data.has_discount || false,\n                        formatted_regular_price: response.data.formatted_regular_price || '',\n                        formatted_sale_price: response.data.formatted_sale_price || '',\n                        description: response.data.description || '',\n                        subtitle: response.data.subtitle || '',\n                        short_description: response.data.short_description || '',\n                        video_url: effectiveVideoUrl,\n                        documents: response.data.documents || [],\n                        custom_currency_prices: response.data.custom_currency_prices || {},\n                        timestamp: response.data.cache_key,\n                        language: response.data.current_language\n                    };\n                    \n                    try {\n                        sessionStorage.setItem('addon_image_cache', JSON.stringify(imageDataCache));\n                    } catch(e) {}\n                    \n                    showLightbox(\n                        response.data.description || '',\n                        response.data.subtitle || '',\n                        response.data.product_name,\n                        response.data.formatted_price,\n                        response.data.has_discount,\n                        response.data.formatted_regular_price,\n                        response.data.formatted_sale_price,\n                        effectiveVideoUrl,\n                        response.data.documents || [],\n                        $.extend({}, response.data.custom_currency_prices || {}, cardCurrencyPrices),\n                        cardRegularCurrencyPrices,\n                        response.data.short_description || ''\n                    );\n                }\n            },\n            error: function() {\n                lightbox.removeClass('active loaded');\n                $('body').css('overflow', '');\n                showAddonModal({ type: 'error', title: secure_addons_ajax.i18n.loading_error_title, message: secure_addons_ajax.i18n.loading_error_msg });\n            }\n        });\n    }\n    \n    $('.addon-image-wrapper').click(function() {\n        var productId = $(this).data('product-id');\n        \n        \/\/ Get parent product ID from the main container\n        var parentProductId = $(this).closest('.secure-addon-display').data('product-id');\n        \n        \/\/ Use the shared lightbox function\n        openProductLightbox(productId, parentProductId);\n    });\n    \n    \/\/ Background cache validation function\n    \/\/ Silently checks if cached content is still current\n    function validateCache(productId, parentProductId, cacheKey, cachedTimestamp) {\n        $.ajax({\n            url: secure_addons_ajax.ajax_url,\n            type: 'POST',\n            data: {\n                action: 'get_product_images',\n                tp_lang: (document.documentElement.getAttribute('lang') || ''),\n                product_id: productId,\n                parent_product_id: parentProductId,\n                nonce: secure_addons_ajax.nonce\n            },\n            success: function(response) {\n                if (response.success) {\n                    var serverTimestamp = response.data.cache_key;\n                    \n                    \/\/ If timestamp changed, update cache silently\n                    if (serverTimestamp != cachedTimestamp) {\n                        imageDataCache[cacheKey] = {\n                            images: response.data.images,\n                            product_name: response.data.product_name,\n                            formatted_price: response.data.formatted_price,\n                            has_discount: response.data.has_discount || false,\n                            formatted_regular_price: response.data.formatted_regular_price || '',\n                            formatted_sale_price: response.data.formatted_sale_price || '',\n                            description: response.data.description || '',\n                            subtitle: response.data.subtitle || '',\n                            short_description: response.data.short_description || '',\n                            video_url: response.data.video_url || '',\n                            documents: response.data.documents || [],\n                            custom_currency_prices: response.data.custom_currency_prices || {},\n                            timestamp: serverTimestamp,\n                            language: response.data.current_language\n                        };\n                        \n                        \/\/ Update sessionStorage\n                        try {\n                            sessionStorage.setItem('addon_image_cache', JSON.stringify(imageDataCache));\n                        } catch(e) {\n                            \/\/ Not critical\n                        }\n                        \n                        \/\/ Note: We don't refresh the lightbox here to avoid jarring the user\n                        \/\/ Next time they open this product, they'll get the updated content\n                    }\n                }\n            }\n        });\n    }\n    \n    function showLightbox(description, subtitle, productName, formattedPrice, hasDiscount, formattedRegularPrice, formattedSalePrice, videoUrl, documents, customCurrencyPrices, regularCurrencyPrices, shortDescription) {\n        var lightbox = $('#addon-lightbox');\n        \n        \/\/ Pause media from previous product\n        lightbox.find('video').each(function() { this.pause(); });\n        lightbox.find('iframe').each(function() { this.src = this.src; });\n        \n        var slidesContainer = lightbox.find('.lightbox-slides');\n        var thumbnailsContainer = lightbox.find('.lightbox-thumbnails');\n        var descriptionContainer = lightbox.find('.lightbox-description');\n        \n        slidesContainer.empty();\n        thumbnailsContainer.empty();\n        \n        \/\/ Populate topbar product name\n        lightbox.find('.lightbox-product-name').text(productName);\n        \n        \/\/ Build the info section with product name and price\n        var infoHTML = '<div class=\"product-desc-title\">' + productName + '<\/div>';\n        \n        \/\/ Add subtitle\/tagline if available\n        if (subtitle && subtitle.trim() !== '') {\n            infoHTML += '<div class=\"product-desc-subtitle\">' + subtitle + '<\/div>';\n        }\n        \n        \/\/ Add price with discount display if applicable\n        \/\/ Convert to current currency if custom prices available\n        if (formattedPrice) {\n            var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n            var ccCodes = window.customCurrencyCodes || [];\n            var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n            var curKey = selectedCurrency.toLowerCase();\n            var ccPrices = customCurrencyPrices || {};\n            var regPrices = regularCurrencyPrices || {};\n            \/\/ Wholesale mode: never show the crossed-out retail price\n            var wholesaleMode = $('.secure-addon-display[data-price-mode=\"wholesale\"]').length > 0;\n            if (wholesaleMode) { hasDiscount = false; regPrices = {}; }\n            var pEs = (typeof secure_addons_ajax !== 'undefined' && secure_addons_ajax.lang === 'es');\n            \/\/ Price panel: eyebrow + big price (+ resale tiles in wholesale mode)\n            infoHTML += '<div class=\"product-lightbox-pricebox\">' +\n                '<div class=\"product-lightbox-price-label\">' + (wholesaleMode ? (pEs ? 'Tu precio de mayoreo' : 'Your wholesale price') : (pEs ? 'Precio' : 'Price')) + '<\/div>';\n            \n            \/\/ Discount badge removed \u2014 not useful for custom addon pricing\n            function discountBadge() {\n                return '';\n            }\n            \n            if (selectedCurrency !== 'USD' && isCustomCurrency && ccPrices[curKey] && ccPrices[curKey] > 0) {\n                \/\/ Show custom currency price with compare\/strikethrough if available\n                var sym = currencySymbols[selectedCurrency] || selectedCurrency + ' ';\n                var saleAmount = Number(ccPrices[curKey]);\n                var cpFormatted = sym + (typeof saaFmt === 'function' ? saaFmt(saleAmount) : saleAmount.toFixed(2));\n                \n                \/\/ Check for regular\/compare price in this currency (from product's _price_mxn meta)\n                var regAmount = regPrices[curKey] ? Number(regPrices[curKey]) : 0;\n                \n                if (regAmount > 0 && regAmount > saleAmount) {\n                    var regFormatted = sym + (typeof saaFmt === 'function' ? saaFmt(regAmount) : regAmount.toFixed(2));\n                    infoHTML += '<div class=\"product-lightbox-price\"><del>' + regFormatted + '<\/del> <ins>' + cpFormatted + '<\/ins>' + discountBadge(regAmount, saleAmount) + '<\/div>';\n                } else {\n                    infoHTML += '<div class=\"product-lightbox-price\">' + cpFormatted + '<\/div>';\n                }\n            } else if (selectedCurrency !== 'USD') {\n                \/\/ Convert at exchange rate\n                var rate = window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1;\n                var sym = currencySymbols[selectedCurrency] || selectedCurrency + ' ';\n                \/\/ Extract numeric value from formatted price HTML\n                var priceText = formattedPrice.replace(\/<[^>]*>\/g, '').replace(\/[^\\d.]\/g, '');\n                var numericPrice = parseFloat(priceText) || 0;\n                var convertedFormatted = sym + (typeof saaFmt === 'function' ? saaFmt(numericPrice * rate) : Number(numericPrice * rate).toFixed(2));\n                \n                if (hasDiscount && formattedRegularPrice) {\n                    var regText = formattedRegularPrice.replace(\/<[^>]*>\/g, '').replace(\/[^\\d.]\/g, '');\n                    var numericReg = parseFloat(regText) || 0;\n                    var convertedReg = sym + (typeof saaFmt === 'function' ? saaFmt(numericReg * rate) : Number(numericReg * rate).toFixed(2));\n                    infoHTML += '<div class=\"product-lightbox-price\"><del>' + convertedReg + '<\/del> <ins>' + convertedFormatted + '<\/ins>' + discountBadge(numericReg, numericPrice) + '<\/div>';\n                } else {\n                    infoHTML += '<div class=\"product-lightbox-price\">' + convertedFormatted + '<\/div>';\n                }\n            } else {\n                \/\/ USD - use original formatted prices\n                if (hasDiscount && formattedRegularPrice && formattedSalePrice) {\n                    infoHTML += '<div class=\"product-lightbox-price\">' +\n                               '<del>' + formattedRegularPrice + '<\/del> ' +\n                               '<ins>' + formattedSalePrice + '<\/ins>' +\n                               discountBadge(formattedRegularPrice, formattedSalePrice) +\n                               '<\/div>';\n                } else {\n                    infoHTML += '<div class=\"product-lightbox-price\">' + formattedPrice + '<\/div>';\n                }\n            }\n            \/\/ Wholesale mode: min \/ recommended resale under the price (values\n            \/\/ stashed by openProductLightbox from the card's data attributes)\n            var rs = window.saaLightboxResale || {};\n            if (wholesaleMode && ((rs.min > 0) || (rs.rec > 0))) {\n                var rSym = (selectedCurrency === 'USD') ? '$' : (currencySymbols[selectedCurrency] || selectedCurrency + ' ');\n                var rRate = (selectedCurrency === 'USD') ? 1 : (window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1);\n                var rEs = (typeof secure_addons_ajax !== 'undefined' && secure_addons_ajax.lang === 'es');\n                var rFmt = function(v) { return rSym + (typeof saaFmt === 'function' ? saaFmt(v * rRate) : (v * rRate).toFixed(2)); };\n                infoHTML += '<div class=\"product-lightbox-resale\">' +\n                    (rs.min > 0 ? '<div class=\"product-lightbox-resale-tile\"><span class=\"product-lightbox-resale-label\">' + (rEs ? 'Precio m\u00ednimo de venta' : 'Min. resale price') + '<\/span><span class=\"product-lightbox-resale-value\">' + rFmt(rs.min) + '<\/span><\/div>' : '') +\n                    (rs.rec > 0 ? '<div class=\"product-lightbox-resale-tile\"><span class=\"product-lightbox-resale-label\">' + (rEs ? 'Precio recomendado' : 'Recommended price') + '<\/span><span class=\"product-lightbox-resale-value\">' + rFmt(rs.rec) + '<\/span><\/div>' : '') +\n                    '<\/div>';\n            }\n            infoHTML += '<\/div>'; \/\/ .product-lightbox-pricebox\n        }\n\n        if (window.saaLightboxInvOut) {\n            infoHTML += '<div class=\"product-lightbox-inv-oos\" role=\"status\">' + $('<div>').text(window.saaLightboxInvOut).html() + '<\/div>';\n        }\n\n        \/\/ Short description (admin field) \u2014 stays in the right column under the price\n        if (shortDescription && String(shortDescription).trim() !== '') {\n            infoHTML += '<div class=\"product-desc-short\">' + shortDescription + '<\/div>';\n        }\n\n        descriptionContainer.html(infoHTML);\n\n        \/\/ Full HTML description \u2014 full-width section under both columns,\n        \/\/ WRAPPED IN ISOLATION CONTAINER so external styles can't interfere.\n        var $details = lightbox.find('.lightbox-details');\n        var $detailsBody = lightbox.find('.lightbox-details-body');\n        if (description && description.trim() !== '') {\n            var isEsLb = (typeof secure_addons_ajax !== 'undefined' && secure_addons_ajax.lang === 'es');\n            lightbox.find('.lightbox-details-heading').text(isEsLb ? 'Detalles del producto' : 'Product details');\n            $detailsBody.html('<div class=\"addon-description-isolated\" style=\"all: initial; display: block; font-family: inherit; color: inherit; line-height: 1.6;\">' + description + '<\/div>');\n            $details.prop('hidden', false);\n        } else {\n            $detailsBody.empty();\n            $details.prop('hidden', true);\n        }\n        \n        \/\/ AUTO-FIX: Find and fix any <video> tags in the description HTML for iOS compatibility\n        \/\/ This ensures videos embedded in descriptions work properly on iPhone\/iPad\n        lightbox.find('.lightbox-description, .lightbox-details-body').find('video').each(function() {\n            var $video = $(this);\n            \n            \/\/ Add iOS-friendly attributes if not already present\n            if (!$video.attr('preload')) {\n                $video.attr('preload', 'metadata');\n            }\n            if (!$video.attr('playsinline')) {\n                $video.attr('playsinline', '');\n                $video.attr('webkit-playsinline', ''); \/\/ Older iOS support\n            }\n            \n            \/\/ Fix source tags to include time fragment for thumbnail generation\n            $video.find('source').each(function() {\n                var $source = $(this);\n                var src = $source.attr('src');\n                \n                \/\/ Only add #t=0.1 if not already present and it's a video format\n                if (src && !src.includes('#t=') && (src.includes('.mp4') || src.includes('.webm') || src.includes('.ogg'))) {\n                    $source.attr('src', src + '#t=0.1');\n                    \n                    \/\/ Reload the video to apply changes\n                    \/\/ We need to do this after all sources are updated\n                    setTimeout(function() {\n                        if ($video[0]) {\n                            $video[0].load();\n                        }\n                    }, 100);\n                }\n            });\n            \n            \/\/ If video has direct src attribute (no source tags)\n            if ($video.attr('src')) {\n                var directSrc = $video.attr('src');\n                if (!directSrc.includes('#t=') && (directSrc.includes('.mp4') || directSrc.includes('.webm') || directSrc.includes('.ogg'))) {\n                    $video.attr('src', directSrc + '#t=0.1');\n                    setTimeout(function() {\n                        if ($video[0]) {\n                            $video[0].load();\n                        }\n                    }, 100);\n                }\n            }\n        });\n        \n        var imagesLoaded = 0;\n        var totalSlides = slides.length;\n        var firstImageLoaded = false;\n        \n        \/\/ Add image slides FIRST with progressive loading\n        slides.forEach(function(imageData, index) {\n            \/\/ Use 'large' size for main display (faster), 'thumb' for thumbnails\n            var imageUrl = imageData.url || imageData; \/\/ Support both old and new format\n            var thumbUrl = imageData.thumb || imageUrl;\n            var fullUrl = imageData.full || imageUrl;\n            \/\/ Freebie metadata \u2014 kit gallery includes bonus product images\n            \/\/ marked with is_freebie=true so we overlay a FREE badge on\n            \/\/ the main slide and outline the thumbnail in green.\n            var isFreebie = imageData && imageData.is_freebie === true;\n            var freebieLabel = imageData && imageData.freebie_label ? imageData.freebie_label : '';\n\n            \/\/ Create main slide image\n            var img = $('<img>')\n                .attr('data-src', imageUrl) \/\/ Use data-src for lazy loading\n                .attr('data-full', fullUrl)  \/\/ Store full res URL for later\n                .addClass('lightbox-slide');\n\n            if (isFreebie) {\n                img.attr('data-is-freebie', '1');\n                img.attr('data-freebie-label', freebieLabel);\n            }\n\n            \/\/ First image is always active (video will be at the end)\n            if (index === 0) {\n                img.addClass('active');\n                \/\/ Load first image immediately\n                img.attr('src', imageUrl);\n            }\n\n            \/\/ Track image loading\n            img.on('load', function() {\n                imagesLoaded++;\n\n                if (!firstImageLoaded && index === 0) {\n                    \/\/ First image loaded - hide spinner immediately\n                    firstImageLoaded = true;\n                    lightbox.addClass('loaded');\n                }\n\n                if (imagesLoaded === slides.length) {\n                    \/\/ All images loaded\n                    lightbox.addClass('all-loaded');\n                }\n            });\n\n            \/\/ Lazy load other images after a short delay\n            if (index > 0) {\n                setTimeout(function() {\n                    img.attr('src', img.attr('data-src'));\n                }, index * 100); \/\/ Stagger loading by 100ms each\n            }\n\n            slidesContainer.append(img);\n\n            \/\/ Add thumbnail (use smaller thumb size)\n            var thumb = $('<img>')\n                .attr('src', thumbUrl)\n                .addClass('lightbox-thumbnail')\n                .attr('loading', 'lazy'); \/\/ Native lazy loading\n\n            if (isFreebie) {\n                thumb.addClass('lightbox-thumbnail-freebie');\n                thumb.attr('title', freebieLabel ? (secure_addons_ajax.i18n.free + ' \u2014 ' + freebieLabel) : secure_addons_ajax.i18n.free);\n            }\n\n            if (index === 0) thumb.addClass('active');\n\n            thumb.on('click', function() {\n                showSlide(index);\n            });\n\n            thumbnailsContainer.append(thumb);\n        });\n\n        \/\/ Ensure a freebie badge overlay exists inside the slides container.\n        \/\/ It's hidden by default and updated on every showSlide() call based\n        \/\/ on the active slide's data-is-freebie flag.\n        if (!slidesContainer.find('.lightbox-freebie-badge').length) {\n            slidesContainer.append('<div class=\"lightbox-freebie-badge\" style=\"display:none;\"><\/div>');\n        }\n        \n        \/\/ Add video as LAST slide if available (at the end of gallery)\n        if (videoUrl && videoUrl.trim() !== '') {\n            var videoSlide = $('<div>')\n                .addClass('lightbox-slide video-slide')\n                .html(\n                    '<video controls preload=\"metadata\" playsinline webkit-playsinline ' +\n                    'style=\"width: 100%; height: 100%; object-fit: contain; background: #000;\">' +\n                    '<source src=\"' + videoUrl + '#t=0.1\" type=\"video\/mp4\">' +\n                    secure_addons_ajax.i18n.video_unsupported +\n                    '<\/video>'\n                );\n            \n            slidesContainer.append(videoSlide);\n            \n            \/\/ Add video thumbnail at the END\n            var videoIndex = slides.length; \/\/ Video is after all images\n            var videoThumb = $('<div>')\n                .addClass('lightbox-thumbnail video-thumbnail')\n                .html('<div style=\"position: relative; width: 100%; height: 100%; background: #000; display: flex; align-items: center; justify-content: center; border-radius: 4px;\">' +\n                      '<span style=\"font-size: 32px; color: white;\">\u25b6<\/span>' +\n                      '<\/div>');\n            \n            videoThumb.on('click', function() {\n                showSlide(videoIndex);\n            });\n            \n            thumbnailsContainer.append(videoThumb);\n            totalSlides++;\n        }\n        \n        \/\/ Add Documents section AFTER thumbnails if documents exist\n        \/\/ First, remove any existing documents section to prevent duplicates\n        $('.addon-documents-section').remove();\n        \n        if (documents && documents.length > 0) {\n            var documentsHTML = '<div class=\"addon-documents-section\">' +\n                               '<h4 class=\"addon-documents-heading\">' + secure_addons_ajax.i18n.documents_heading + '<\/h4>' +\n                               '<div class=\"documents-list\">';\n            \n            documents.forEach(function(doc) {\n                var typeLabel = String(doc.type || 'file').toUpperCase().slice(0, 4);\n                \n                documentsHTML += '<a href=\"' + doc.url + '\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"addon-doc-link\">' +\n                               '<span class=\"addon-doc-badge\">' + typeLabel + '<\/span>' +\n                               '<span class=\"addon-doc-name\">' + doc.name + '<\/span>' +\n                               '<svg class=\"addon-doc-arrow\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 17L17 7M17 7H7M17 7v10\"\/><\/svg>' +\n                               '<\/a>';\n            });\n            \n            documentsHTML += '<\/div><\/div>';\n            \n            \/\/ Right column, under name \/ price \/ short description\n            descriptionContainer.append(documentsHTML);\n        }\n        \n        \/\/ Always show navigation controls if there are multiple items (images and\/or video)\n        if (totalSlides > 1) {\n            thumbnailsContainer.show();\n            lightbox.find('.lightbox-prev, .lightbox-next').show();\n            lightbox.find('.lightbox-counter').text('1 \/ ' + totalSlides).show();\n        } else {\n            thumbnailsContainer.hide();\n            lightbox.find('.lightbox-prev, .lightbox-next').hide();\n            lightbox.find('.lightbox-counter').hide();\n        }\n    }\n    \n    function showSlide(n) {\n        var lightbox = $('#addon-lightbox');\n        var totalSlides = lightbox.find('.lightbox-slide').length;\n\n        currentSlide = n;\n        if (currentSlide >= totalSlides) currentSlide = 0;\n        if (currentSlide < 0) currentSlide = totalSlides - 1;\n\n        \/\/ Remove active class from all slides (both images and videos)\n        $('.lightbox-slide').removeClass('active zoomed');\n        $('.lightbox-thumbnail').removeClass('active');\n\n        \/\/ Add active class to current slide\n        var $activeSlide = $('.lightbox-slide').eq(currentSlide);\n        $activeSlide.addClass('active');\n        $('.lightbox-thumbnail').eq(currentSlide).addClass('active');\n\n        \/\/ Toggle the FREE-product badge based on whether the active slide\n        \/\/ is a kit's free-bonus product image (tagged in the AJAX response\n        \/\/ by wpk_get_kit_lightbox_data with is_freebie=true).\n        var $freebieBadge = lightbox.find('.lightbox-freebie-badge');\n        if ($freebieBadge.length) {\n            if ($activeSlide.attr('data-is-freebie') === '1') {\n                var fLabel = $activeSlide.attr('data-freebie-label') || '';\n                var trans  = (typeof secure_addons_ajax !== 'undefined' && secure_addons_ajax.lang === 'es') ? 'GRATIS' : 'FREE';\n                $freebieBadge.text(fLabel ? (trans + ' \u2014 ' + fLabel) : trans).show();\n            } else {\n                $freebieBadge.hide();\n            }\n        }\n        \n        \/\/ Scroll active thumbnail into view (works for both vertical and horizontal)\n        var activeThumbnail = $('.lightbox-thumbnail').eq(currentSlide);\n        if (activeThumbnail.length) {\n            activeThumbnail[0].scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\n        }\n        \n        \/\/ Pause all videos when switching slides\n        $('.lightbox-slide video').each(function() {\n            this.pause();\n        });\n        \n        \/\/ Preload adjacent images if not already loaded (skip video slides)\n        var slideImages = $('.lightbox-slides img');\n        var nextSlide = (currentSlide + 1) % totalSlides;\n        var prevSlide = (currentSlide - 1 + totalSlides) % totalSlides;\n        \n        [nextSlide, prevSlide].forEach(function(slideIndex) {\n            var adjacentSlide = $('.lightbox-slide').eq(slideIndex);\n            if (adjacentSlide.is('img')) {\n                if (!adjacentSlide.attr('src') && adjacentSlide.attr('data-src')) {\n                    adjacentSlide.attr('src', adjacentSlide.attr('data-src'));\n                }\n            }\n        });\n    }\n    \n    \/\/ ============================================\n    \/\/ FULL-SCREEN IMAGE VIEWER\n    \/\/ Opens when user clicks an image in the lightbox gallery\n    \/\/ ============================================\n    var $fsViewer = $('#addon-fullscreen-viewer');\n    var fsImages = []; \/\/ Array of full-res image URLs\n    var fsCurrentIndex = 0;\n\n    function openFullscreenViewer(index) {\n        \/\/ Collect all image URLs (use full-res data-full or src)\n        fsImages = [];\n        $('.lightbox-slides img').each(function() {\n            var full = $(this).attr('data-full') || $(this).attr('src');\n            if (full) fsImages.push(full);\n        });\n        if (fsImages.length === 0) return;\n\n        fsCurrentIndex = Math.min(index, fsImages.length - 1);\n        showFsSlide(fsCurrentIndex);\n        $fsViewer.addClass('active');\n    }\n\n    function showFsSlide(index) {\n        if (index < 0) index = fsImages.length - 1;\n        if (index >= fsImages.length) index = 0;\n        fsCurrentIndex = index;\n        var $img = $fsViewer.find('.fullscreen-viewer-img');\n        $img.removeClass('zoomed').attr('src', fsImages[fsCurrentIndex]);\n        $fsViewer.find('.fullscreen-viewer-counter').text((fsCurrentIndex + 1) + ' \/ ' + fsImages.length);\n        \/\/ Hide arrows if only 1 image\n        $fsViewer.find('.fullscreen-viewer-prev, .fullscreen-viewer-next').toggle(fsImages.length > 1);\n    }\n\n    function closeFullscreenViewer() {\n        $fsViewer.addClass('closing');\n        setTimeout(function() {\n            $fsViewer.removeClass('active closing');\n            $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed');\n        }, 150);\n    }\n\n    \/\/ Click image in lightbox \u2192 open full-screen viewer\n    $(document).on('click', '.lightbox-slides img', function(e) {\n        e.stopPropagation();\n        var index = $(this).index('.lightbox-slides img');\n        openFullscreenViewer(index);\n    });\n\n    \/\/ Full-screen viewer navigation\n    $fsViewer.find('.fullscreen-viewer-prev').click(function() {\n        $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed');\n        showFsSlide(fsCurrentIndex - 1);\n    });\n    $fsViewer.find('.fullscreen-viewer-next').click(function() {\n        $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed');\n        showFsSlide(fsCurrentIndex + 1);\n    });\n\n    \/\/ Zoom on click in full-screen viewer\n    $fsViewer.find('.fullscreen-viewer-img').click(function(e) {\n        e.stopPropagation();\n        var $img = $(this);\n        if ($img.hasClass('zoomed')) {\n            $img.removeClass('zoomed').css('transform-origin', '');\n        } else {\n            var rect = this.getBoundingClientRect();\n            var xPct = ((e.clientX - rect.left) \/ rect.width * 100);\n            var yPct = ((e.clientY - rect.top) \/ rect.height * 100);\n            $img.css('transform-origin', xPct + '% ' + yPct + '%').addClass('zoomed');\n        }\n    });\n\n    \/\/ Close full-screen viewer\n    $fsViewer.find('.fullscreen-viewer-close, .fullscreen-viewer-backdrop').click(closeFullscreenViewer);\n\n    \/\/ Keyboard: arrows + ESC in full-screen viewer\n    $(document).on('keydown', function(e) {\n        if (!$fsViewer.hasClass('active')) return;\n        if (e.key === 'Escape') { closeFullscreenViewer(); e.stopImmediatePropagation(); }\n        else if (e.key === 'ArrowLeft') { $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed'); showFsSlide(fsCurrentIndex - 1); }\n        else if (e.key === 'ArrowRight') { $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed'); showFsSlide(fsCurrentIndex + 1); }\n    });\n\n    \/\/ Touch\/swipe in full-screen viewer\n    (function() {\n        var startX = 0, startY = 0;\n        var imgWrap = $fsViewer.find('.fullscreen-viewer-image-wrap')[0];\n        if (!imgWrap) return;\n        imgWrap.addEventListener('touchstart', function(e) { startX = e.changedTouches[0].screenX; startY = e.changedTouches[0].screenY; }, { passive: true });\n        imgWrap.addEventListener('touchend', function(e) {\n            var diffX = startX - e.changedTouches[0].screenX;\n            var diffY = Math.abs(startY - e.changedTouches[0].screenY);\n            if (Math.abs(diffX) > 50 && Math.abs(diffX) > diffY) {\n                $fsViewer.find('.fullscreen-viewer-img').removeClass('zoomed');\n                showFsSlide(diffX > 0 ? fsCurrentIndex + 1 : fsCurrentIndex - 1);\n            }\n        }, { passive: true });\n    })();\n    \n    \/\/ Navigation\n    $('.lightbox-prev').click(function() {\n        \/\/ Remove zoom when changing slides\n        showSlide(currentSlide - 1);\n    });\n    \n    $('.lightbox-next').click(function() {\n        \/\/ Remove zoom when changing slides\n        showSlide(currentSlide + 1);\n    });\n    \n    \/\/ ============================================\n    \/\/ TOUCH\/SWIPE SUPPORT FOR GALLERY\n    \/\/ ============================================\n    (function() {\n        var touchStartX = 0;\n        var touchStartY = 0;\n        var touchEndX = 0;\n        var swiping = false;\n        var slidesEl = document.querySelector('.lightbox-slides');\n        if (!slidesEl) return;\n\n        slidesEl.addEventListener('touchstart', function(e) {\n            touchStartX = e.changedTouches[0].screenX;\n            touchStartY = e.changedTouches[0].screenY;\n            swiping = true;\n        }, { passive: true });\n\n        slidesEl.addEventListener('touchend', function(e) {\n            if (!swiping) return;\n            swiping = false;\n            touchEndX = e.changedTouches[0].screenX;\n            var diffX = touchStartX - touchEndX;\n            var diffY = Math.abs(touchStartY - e.changedTouches[0].screenY);\n\n            \/\/ Only swipe if horizontal movement > 50px and > vertical movement\n            if (Math.abs(diffX) > 50 && Math.abs(diffX) > diffY) {\n                if (diffX > 0) {\n                    showSlide(currentSlide + 1); \/\/ Swipe left \u2192 next\n                } else {\n                    showSlide(currentSlide - 1); \/\/ Swipe right \u2192 prev\n                }\n            }\n        }, { passive: true });\n    })();\n\n    \/\/ ============================================\n    \/\/ KEYBOARD ARROW NAVIGATION\n    \/\/ ============================================\n    $(document).keydown(function(e) {\n        if (!$('#addon-lightbox').hasClass('active')) return;\n        if ($fsViewer.hasClass('active')) return; \/\/ Let full-screen viewer handle its own keys\n        if (e.key === 'ArrowLeft') {\n            showSlide(currentSlide - 1);\n        } else if (e.key === 'ArrowRight') {\n            showSlide(currentSlide + 1);\n        }\n    });\n\n    \/\/ ============================================\n    \/\/ LIGHTBOX CLOSE \u2014 shared helper\n    \/\/ ============================================\n    var $lightboxEl = $('#addon-lightbox');\n    \n    function closeLightbox() {\n        \/\/ Pause all media\n        $lightboxEl.find('video').each(function() { this.pause(); });\n        $lightboxEl.find('iframe').each(function() { this.src = this.src; });\n        \/\/ Animate out, then hide\n        $lightboxEl.addClass('closing');\n        setTimeout(function() {\n            $lightboxEl.removeClass('active loaded closing');\n            $lightboxEl.find('.lightbox-slides img').removeClass('zoomed');\n            \/\/ Restore body scroll (iOS Safari compatible)\n            $('body').css({\n                'overflow': '',\n                'position': '',\n                'top': '',\n                'left': '',\n                'right': ''\n            });\n            window.scrollTo(0, window._lightboxScrollY || 0);\n        }, 150);\n    }\n\n    \/\/ Close lightbox \u2014 X button, back button, drag handle, or Escape key\n    $('.lightbox-close, .lightbox-back-btn, .lightbox-drag-handle').click(closeLightbox);\n    \n    \/\/ Close on escape\n    $(document).keydown(function(e) {\n        if (e.key === \"Escape\") closeLightbox();\n    });\n    \n    \/\/ \u2500\u2500 v11 \u2014 VARIATION MAP HELPERS (must be defined BEFORE updateTotal) \u2500\u2500\u2500\u2500\u2500\u2500\n    \/\/ These were previously assigned ~1400 lines further down, AFTER the\n    \/\/ top-level `updateAddonPricesForCurrency()` bootstrap call. On a page that\n    \/\/ contains a VARIABLE add-on, that bootstrap ran updateTotal() \u2192 the\n    \/\/ `if (isVariable)` branch \u2192 `window._getVarMaps(...)` while it was still\n    \/\/ undefined, throwing \"window._getVarMaps is not a function\". Because the\n    \/\/ bootstrap runs inside a jQuery ready callback, the throw ABORTED the rest\n    \/\/ of the script \u2014 so the `.addon-variation-select` change handler (declared\n    \/\/ further down) never bound and variable add-ons could never be selected or\n    \/\/ added to the bag. Defining them up here removes the ordering hazard.\n\n    \/\/ Helper: get or initialize variation tracking maps on a card\n    window._getVarMaps = function($card) {\n        if (!$card.data('_varQtyMap')) {\n            $card.data('_varQtyMap', {});     \/\/ { variation_id: qty }\n            $card.data('_varLabelMap', {});   \/\/ { variation_id: \"50 PCS\" }\n            $card.data('_varPriceMap', {});   \/\/ { variation_id: { usd: N, price_mxn: N, ... } }\n        }\n        return {\n            qtyMap: $card.data('_varQtyMap'),\n            labelMap: $card.data('_varLabelMap'),\n            priceMap: $card.data('_varPriceMap')\n        };\n    };\n\n    \/\/ Helper: update the variation items summary tags below the selector\n    window._updateVarSummary = function($card) {\n        var maps = window._getVarMaps($card);\n        var $summary = $card.find('.addon-variation-items-summary');\n        if (!$summary.length) return;\n\n        var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n        var rate = window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1;\n        var ccCodes = window.customCurrencyCodes || [];\n        var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n        var curKey = selectedCurrency.toLowerCase();\n        var symbol = currencySymbols[selectedCurrency] || '$';\n\n        var html = '';\n        var totalQty = 0;\n        for (var vId in maps.qtyMap) {\n            var q = maps.qtyMap[vId];\n            if (q > 0) {\n                totalQty += q;\n                var label = maps.labelMap[vId] || ('Var #' + vId);\n                var pm = maps.priceMap[vId] || {};\n                var unitPrice = (isCustomCurrency && pm['price_' + curKey]) ? pm['price_' + curKey] : ((pm.usd || 0) * rate);\n                var lineTotal = symbol + Number(q * unitPrice).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});\n\n                html += '<div class=\"var-summary-tag\">' +\n                    '<span class=\"var-tag-label\">' + label + '<\/span>' +\n                    '<span class=\"var-tag-qty\">\u00d7' + q + '<\/span>' +\n                    '<span class=\"var-tag-price\">' + lineTotal + '<\/span>' +\n                    '<button type=\"button\" class=\"var-tag-remove\" data-var-id=\"' + vId + '\" title=\"Remove\">\u00d7<\/button>' +\n                    '<\/div>';\n            }\n        }\n\n        $summary.html(html);\n        $summary.toggle(totalQty > 0);\n    };\n\n    \/\/ Global updateTotal function - accessible everywhere\n    function updateTotal() {\n        $('.secure-addon-display').each(function() {\n            var container = $(this);\n            var total = 0;\n            var usdTotal = 0;\n            \/\/ The min-bypass product does NOT count toward Level Thresholds. We track\n            \/\/ its contribution to total\/usdTotal here and subtract it in the level calc.\n            var bypassCostDisplay = 0;\n            var bypassCostUSD = 0;\n            var usdTotalForMinimum = 0; \/\/ Separate total that excludes \"bonus\" items\n            var displayTotalForMinimum = 0; \/\/ Display currency total excluding bonus items\n            \/\/ v9 dual-qty: separate minimum buckets \u2014 one-time spend vs subscription\n            \/\/ spend \u2014 so the one-time min and subscription min are each enforced only\n            \/\/ against their own bucket. usdTotalForMinimum stays the COMBINED total\n            \/\/ (used by the required-product free-threshold + qualifying-total display).\n            var oneUsdMin = 0, oneDisplayMin = 0;   \/\/ one-time bucket (excl. excluded items)\n            var subUsdMin = 0, subDisplayMin = 0;   \/\/ subscription bucket (excl. excluded)\n            var hasItems = false;\n            var summaryHtml = '';\n            var oneTimeHtml = '';   \/\/ v9 \u2014 \"Today's order\" group (one-time items)\n            var subHtml = '';       \/\/ v9 \u2014 \"Subscription order\" group (subscription items)\n\n            \/\/ v7.4 subscription-mode tracking \u2014 subscribable cards contribute\n            \/\/ a \"Then\" line at their full autoship (recurring) price AND a\n            \/\/ \"Today\" line at the first-payment price (which equals recurring\n            \/\/ when no first-time discount % is set). Non-subscribable items\n            \/\/ track both regular AND discounted prices \u2014 when in Subscription\n            \/\/ mode with first_pct > 0, the discount extends to one-time items\n            \/\/ too (encourages \"subscribe and save on your whole order\").\n            var subRenewUsdTotal       = 0;   \/\/ recurring (Then)\n            var subRenewDisplayTotal   = 0;\n            var subFirstUsdTotal       = 0;   \/\/ first payment for sub items (Today)\n            var subFirstDisplayTotal   = 0;\n            \/\/ v14 \u2014 \"You save\" accumulators. compareAt = the sum of REGULAR\n            \/\/ (compare-at) prices; paid = what the customer actually pays. These are\n            \/\/ deliberately SEPARATE from oneRegular*\/oneDiscounted* above, which track\n            \/\/ the subscribe-&-save discount rather than the sale-vs-regular markdown.\n            var compareAtUsdTotal      = 0;\n            var paidUsdTotal           = 0;\n            var oneRegularUsdTotal     = 0;   \/\/ one-time items at regular price\n            var oneRegularDisplayTotal = 0;\n            var oneDiscountedUsdTotal  = 0;   \/\/ one-time items at discounted price (sub mode + pct > 0)\n            var oneDiscountedDisplayTotal = 0;\n            var oneTimeUnitCount = 0;   \/\/ v9 \u2014 # one-time UNITS (price-independent), for the \"must buy today\" rule\n            \/\/ v7.4 \u2014 multiple toggles may exist (desktop card + mobile bar).\n            \/\/ Read state from the first toggle, write state to all of them so\n            \/\/ the visual stays in lockstep.\n            var $modeToggles           = container.find('.addon-mode-toggle');\n            var $modeToggle            = $modeToggles.first();\n            var currentMode            = $modeToggle.length ? ($modeToggle.attr('data-current-mode') || 'subscription') : 'onetime';\n            \/\/ Master first-time discount % (0..100) from container data attr.\n            \/\/ Drives both subscription first-payment pricing AND the one-time\n            \/\/ discount-in-sub-mode bonus.\n            var subFirstPct            = parseFloat(container.data('subscription-first-pct')) || 0;\n            var subFirstFactor         = subFirstPct > 0 ? (100 - subFirstPct) \/ 100 : 1;\n\n            \/\/ \u2500\u2500 v7.4 Auto-pick tab based on cart contents \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ Pre-pass: quickly scan cards to know if any item is in the cart\n            \/\/ AND whether any of those are subscribable. We use the result to\n            \/\/ flip the mode toggle BEFORE the main loop renders line tags,\n            \/\/ so SUB \/ ONE-TIME pills always reflect the resolved mode.\n            \/\/\n            \/\/ Rules:\n            \/\/   \u2022 Empty cart + NO manual override \u2192 default Subscription.\n            \/\/   \u2022 Empty cart + manual override   \u2192 respect the customer's\n            \/\/     choice (they may want to switch tabs before adding items).\n            \/\/   \u2022 User hasn't manually clicked the toggle \u2192 auto-pick:\n            \/\/       has any subscribable item \u2192 Subscription\n            \/\/       only one-time items        \u2192 One-time\n            \/\/   \u2022 User HAS manually clicked \u2192 respect their choice UNLESS it's\n            \/\/     invalid (mode=subscription but cart has zero sub items).\n            if ($modeToggle.length) {\n                var prePassHasItems    = false;\n                var prePassHasSubItems = false;\n                container.find('.addon-item-card').each(function() {\n                    var $c    = $(this);\n                    var qPick = parseInt($c.find('.addon-qty').val()) || 0;\n                    var subFlag = String($c.data('subscribable')) === '1';\n                    if (qPick > 0) {\n                        prePassHasItems = true;\n                        if (subFlag) prePassHasSubItems = true;\n                    }\n                    \/\/ Variable products carry their qty inside _getVarMaps \u2014\n                    \/\/ walk the qty map to detect presence per variation.\n                    if ($c.data('is-variable') == true && typeof window._getVarMaps === 'function') {\n                        var vmaps = window._getVarMaps($c);\n                        for (var vId in vmaps.qtyMap) {\n                            if (vmaps.qtyMap[vId] > 0) {\n                                prePassHasItems = true;\n                                if (subFlag) prePassHasSubItems = true;\n                                break;\n                            }\n                        }\n                    }\n                });\n                var userOverridden = $modeToggle.attr('data-user-overridden') === '1';\n                \/\/ Admin-chosen default tab (v7.6). Falls back to 'subscription'\n                \/\/ (the legacy default) when the attribute is absent.\n                var defaultMode    = $modeToggle.attr('data-default-mode') || 'subscription';\n                var desiredMode    = currentMode;\n                if (!prePassHasItems) {\n                    \/\/ Empty cart \u2014 DO NOT clobber a manual override.\n                    \/\/ Letting the customer pre-select a tab (and have it\n                    \/\/ stick) is the whole point of allowing empty-cart\n                    \/\/ switching. Only fall back to the admin default if no\n                    \/\/ explicit choice was made.\n                    if (!userOverridden) {\n                        desiredMode = defaultMode;\n                    }\n                } else if (!userOverridden) {\n                    \/\/ Items present, no manual choice: honor the admin default,\n                    \/\/ but never sit in Subscription mode with nothing\n                    \/\/ subscribable in the cart (falls back to one-time).\n                    desiredMode = (defaultMode === 'subscription' && prePassHasSubItems) ? 'subscription' : 'onetime';\n                } else if (currentMode === 'subscription' && !prePassHasSubItems) {\n                    \/\/ User picked Subscription but their cart has nothing\n                    \/\/ subscribable left \u2014 flip to one-time and clear the\n                    \/\/ override so future adds re-trigger the auto-pick.\n                    desiredMode = 'onetime';\n                    $modeToggles.attr('data-user-overridden', '0');\n                }\n                if (desiredMode !== currentMode) {\n                    $modeToggles.attr('data-current-mode', desiredMode);\n                    $modeToggles.each(function() {\n                        var $t = $(this);\n                        var isMobile = $t.hasClass('mobile-addon-mode-toggle');\n                        $t.find('.addon-mode-btn').each(function() {\n                            var $b = $(this);\n                            var active = $b.attr('data-mode') === desiredMode;\n                            $b.toggleClass('is-active', active);\n                            \/\/ Mobile toggle relies on CSS-driven styling.\n                            if (isMobile) return;\n                            $b.css({\n                                'background':   active ? '#fff' : 'transparent',\n                                'color':        active ? '#1B2A4A' : '#6B7B8D',\n                                'font-weight':  active ? '700' : '600',\n                                'box-shadow':   active ? '0 1px 3px rgba(27,42,74,0.1)' : 'none'\n                            });\n                        });\n                    });\n                    currentMode = desiredMode;\n                }\n            }\n\n            \/\/ \u2500\u2500 v8 mixed orders: no subscription-purity hiding \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ Every card stays visible and selectable regardless of mode. The\n            \/\/ per-card One-time \/ Subscribe toggle (on eligible cards) decides how\n            \/\/ each line is committed, so one-time and subscription items coexist in\n            \/\/ the same order. (The old hide\/zero-in-subscription-mode behavior is\n            \/\/ intentionally removed.)\n            container.find('.addon-item-card').show();\n\n            \/\/ Get current currency info\n            var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n            var rate = window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1;\n            var symbol = currencySymbols[selectedCurrency] || '$';\n            var ccCodes = window.customCurrencyCodes || [];\n            var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n            var curKey = 'price-' + selectedCurrency.toLowerCase();\n            var autoshipCurKey = 'autoship-price-' + selectedCurrency.toLowerCase();\n\n            \/\/ The min-bypass product is EXCLUDED from the \"subscribe & save\" discount\n            \/\/ (it stays full price). Resolve its id once for the per-card check below.\n            var _bypassPid = parseInt(container.data('min-bypass-product')) || 0;\n            container.find('.addon-item-card').each(function() {\n                var $card = $(this);\n                var qty = parseInt($card.find('.addon-qty').val()) || 0;\n                var usdPrice = parseFloat($card.data('usd-price')) || 0;\n                var excludeFromMinimum = $card.data('exclude-from-minimum') == '1';\n                var title = $card.find('.addon-title').text();\n                var isVariable = $card.data('is-variable') == true;\n                var addonId = parseInt($card.data('addon-id')) || 0;\n                var isBypassCard = (_bypassPid > 0 && addonId === _bypassPid);\n                var isSubscribable = String($card.data('subscribable')) === '1';\n                \/\/ Resolve this card's autoship (renewing) price for the\n                \/\/ currently selected currency. Falls back to USD \u00d7 rate when\n                \/\/ no per-currency override exists on the addon.\n                var autoshipUsd = parseFloat($card.data('autoship-usd-price')) || parseFloat($card.data('autoship-price')) || 0;\n                var autoshipDisplay = autoshipUsd * rate;\n                \/\/ v9 dual-qty: read the ONE-TIME and SUBSCRIPTION quantities\n                \/\/ independently from the two steppers. Variable products only have\n                \/\/ the one-time group (their qty comes from the variation map, summed\n                \/\/ in the isVariable block below), so subQty stays 0 for them.\n                var oneTimeQty = parseInt($card.find('.addon-qty-group-onetime .addon-qty').val()) || 0;\n                var subQty = (isSubscribable && !isVariable) ? (parseInt($card.find('.addon-qty-group-subscription .addon-qty').val()) || 0) : 0;\n                var cardWantsSub = false; \/\/ variable products bucket to one-time (block below)\n                if (isCustomCurrency) {\n                    var aCur = parseFloat($card.data(autoshipCurKey));\n                    if (aCur && aCur > 0) autoshipDisplay = aCur;\n                }\n                \/\/ First-payment price \u2014 equals autoship when no first-time\n                \/\/ discount % is configured. Drives the \"Today\" total.\n                var firstUsd = parseFloat($card.data('autoship-first-usd-price')) || parseFloat($card.data('autoship-first-price'));\n                if (!firstUsd || firstUsd <= 0) firstUsd = autoshipUsd;\n                var firstDisplay = firstUsd * rate;\n                if (isCustomCurrency) {\n                    var fCur = parseFloat($card.data('autoship-first-price-' + selectedCurrency.toLowerCase()));\n                    if (fCur && fCur > 0) firstDisplay = fCur;\n                }\n                \n                \/\/ Determine the display price for the selected currency\n                var displayPrice;\n                if (isCustomCurrency) {\n                    var cp = parseFloat($(this).data(curKey));\n                    if (cp && cp > 0) {\n                        displayPrice = cp;\n                    } else {\n                        displayPrice = usdPrice * rate;\n                    }\n                } else {\n                    displayPrice = usdPrice * rate;\n                }\n\n                \/\/ \u2500\u2500 Per-card \"Subscribe & save $X\" badge refresh \u2500\u2500\n                \/\/ Updates the text on every recalc (currency switches). v10 \u2014 saving is\n                \/\/ one-time price MINUS the RECURRING subscription price (matches the\n                \/\/ server gate), so it's hidden unless the subscription is truly cheaper.\n                var $savingsEl = $card.find('.addon-card-sub-savings');\n                if ($savingsEl.length && isSubscribable) {\n                    var unitSavingDisplay = displayPrice - autoshipDisplay;\n                    if (unitSavingDisplay > 0.005) {\n                        $savingsEl.css('display', 'inline-flex');\n                        var savingsTpl = (secure_addons_ajax.lang === 'es')\n                            ? 'Suscr\u00edbete y ahorra %s'\n                            : 'Subscribe & save %s';\n                        $savingsEl.find('.addon-card-sub-savings-text')\n                            .text(savingsTpl.replace('%s', symbol + (typeof saaFmt === 'function' ? saaFmt(unitSavingDisplay) : unitSavingDisplay.toFixed(2))));\n                    } else {\n                        $savingsEl.hide();\n                    }\n                }\n\n                \/\/ Variable products: sum ALL variation quantities and prices.\n                \/\/ v11 \u2014 belt-and-braces `typeof` guard (matches the other call\n                \/\/ sites). The helper is now hoisted above updateTotal, but a\n                \/\/ throw here runs inside a jQuery ready callback and would abort\n                \/\/ the rest of the script, unbinding the variation change handler.\n                if (isVariable && typeof window._getVarMaps === 'function') {\n                    var maps = window._getVarMaps($(this));\n                    var varHasItems = false;\n                    \n                    for (var vId in maps.qtyMap) {\n                        var vQty = maps.qtyMap[vId];\n                        if (vQty > 0 && maps.priceMap[vId]) {\n                            varHasItems = true;\n                            hasItems = true;\n                            var vUsdPrice = maps.priceMap[vId].usd || 0;\n                            var vDisplayPrice;\n                            if (isCustomCurrency && maps.priceMap[vId]['price_' + selectedCurrency.toLowerCase()]) {\n                                vDisplayPrice = maps.priceMap[vId]['price_' + selectedCurrency.toLowerCase()];\n                            } else {\n                                vDisplayPrice = vUsdPrice * rate;\n                            }\n                            \n                            var vItemTotalUSD = vQty * vUsdPrice;\n                            var vItemTotalDisplay = vQty * vDisplayPrice;\n\n                            usdTotal += vItemTotalUSD;\n                            total += vItemTotalDisplay;\n                            \/\/ Min-bypass product is excluded from Level Thresholds.\n                            if (isBypassCard) {\n                                bypassCostUSD += vItemTotalUSD;\n                                bypassCostDisplay += vItemTotalDisplay;\n                            }\n\n                            \/\/ v7.4: variable products inherit the parent card's\n                            \/\/ subscribable flag + autoship price + first-payment\n                            \/\/ price. Variations share the same renewal price\n                            \/\/ for now; per-variation autoship pricing is a\n                            \/\/ future scope.\n                            if (cardWantsSub) {\n                                subRenewUsdTotal     += vQty * autoshipUsd;\n                                subRenewDisplayTotal += vQty * autoshipDisplay;\n                                subFirstUsdTotal     += vQty * firstUsd;\n                                subFirstDisplayTotal += vQty * firstDisplay;\n                            } else {\n                                oneRegularUsdTotal        += vItemTotalUSD;\n                                oneRegularDisplayTotal    += vItemTotalDisplay;\n                                \/\/ Bypass product is never discounted \u2192 full price in the discounted bucket too.\n                                oneDiscountedUsdTotal     += isBypassCard ? vItemTotalUSD     : vItemTotalUSD     * subFirstFactor;\n                                oneDiscountedDisplayTotal += isBypassCard ? vItemTotalDisplay : vItemTotalDisplay * subFirstFactor;\n                                oneTimeUnitCount          += vQty;   \/\/ price-independent (a $0 one-time item still counts)\n                            }\n\n                            if (!excludeFromMinimum) {\n                                usdTotalForMinimum += vItemTotalUSD;\n                                displayTotalForMinimum += vItemTotalDisplay;\n                                oneUsdMin += vItemTotalUSD;             \/\/ variable = one-time bucket\n                                oneDisplayMin += vItemTotalDisplay;\n                            }\n\n                            var vLabel = maps.labelMap[vId] || '';\n                            var summaryName = title + (vLabel ? ' \u2014 ' + vLabel : '');\n                            var vLineTag = '';\n                            if (isSubscribable) {\n                                vLineTag = cardWantsSub\n                                    ? ' <span class=\"summary-item-tag is-sub\" style=\"display:inline-block;margin-left:6px;padding:2px 7px;border-radius:100px;background:rgba(42,175,211,0.12);color:#2AAFD3;font-size:9px;font-weight:700;letter-spacing:0.6px;text-transform:uppercase;vertical-align:middle;\">SUB<\/span>'\n                                    : ' <span class=\"summary-item-tag is-onetime\" style=\"display:inline-block;margin-left:6px;padding:2px 7px;border-radius:100px;background:rgba(107,123,141,0.12);color:#6B7B8D;font-size:9px;font-weight:700;letter-spacing:0.6px;text-transform:uppercase;vertical-align:middle;\">' + ((secure_addons_ajax.lang === 'es') ? '\u00daNICA' : 'ONE-TIME') + '<\/span>';\n                            }\n                            \/\/ Per-line discount display \u2014 same logic as simple products.\n                            var vLineDisplay = vItemTotalDisplay;\n                            var vLineOriginal = vItemTotalDisplay;\n                            if (cardWantsSub && subFirstPct > 0) {\n                                vLineDisplay  = vQty * firstDisplay;\n                                vLineOriginal = vQty * autoshipDisplay;\n                            }\n                            var vLinePriceHtml = '';\n                            if (Math.abs(vLineDisplay - vLineOriginal) > 0.005) {\n                                vLinePriceHtml = '<span class=\"summary-item-price-orig\" style=\"text-decoration:line-through;color:#94A3B8;font-size:11px;margin-right:6px;font-weight:500;\">' + symbol + (typeof saaFmt === 'function' ? saaFmt(vLineOriginal) : vLineOriginal.toFixed(2)) + '<\/span>'\n                                              + '<span class=\"summary-item-price\">' + symbol + (typeof saaFmt === 'function' ? saaFmt(vLineDisplay) : vLineDisplay.toFixed(2)) + '<\/span>';\n                            } else {\n                                vLinePriceHtml = '<span class=\"summary-item-price\">' + symbol + (typeof saaFmt === 'function' ? saaFmt(vLineDisplay) : vLineDisplay.toFixed(2)) + '<\/span>';\n                            }\n                            oneTimeHtml += '<div class=\"summary-item\"><span class=\"summary-item-name\">' + summaryName + ' x' + vQty + '<\/span>' + vLinePriceHtml + '<\/div>';\n                        }\n                    }\n                    \/\/ Skip the normal qty-based calculation for variable cards\n                    return; \/\/ continue to next .each() item\n                }\n                \n                \/\/ \u2500\u2500 v9 dual-qty: ONE-TIME contribution \u2500\u2500\n                if (oneTimeQty > 0) {\n                    hasItems = true;\n                    oneTimeUnitCount += oneTimeQty;   \/\/ price-independent (a $0 one-time item still counts)\n                    var otTotalUSD = oneTimeQty * usdPrice;\n                    var otTotalDisplay = oneTimeQty * displayPrice;\n                    usdTotal += otTotalUSD;\n                    total += otTotalDisplay;\n                    \/\/ v14 \u2014 accumulate the REGULAR (compare-at) value of this line so\n                    \/\/ the summary can show \"You save $X (Y%)\". data-usd-regular falls\n                    \/\/ back to the sale price on non-discounted products, so those\n                    \/\/ contribute exactly 0 saving.\n                    var otRegularUnit = parseFloat($card.data('usd-regular'));\n                    if (!isFinite(otRegularUnit) || otRegularUnit < usdPrice) otRegularUnit = usdPrice;\n                    compareAtUsdTotal += oneTimeQty * otRegularUnit;\n                    paidUsdTotal      += otTotalUSD;\n                    \/\/ Min-bypass product is excluded from Level Thresholds.\n                    if (isBypassCard) {\n                        bypassCostUSD += otTotalUSD;\n                        bypassCostDisplay += otTotalDisplay;\n                    }\n                    oneRegularUsdTotal        += otTotalUSD;\n                    oneRegularDisplayTotal    += otTotalDisplay;\n                    \/\/ Bypass product is never discounted \u2192 count it at full price in the discounted bucket too.\n                    oneDiscountedUsdTotal     += isBypassCard ? otTotalUSD     : otTotalUSD     * subFirstFactor;\n                    oneDiscountedDisplayTotal += isBypassCard ? otTotalDisplay : otTotalDisplay * subFirstFactor;\n                    if (!excludeFromMinimum) {\n                        usdTotalForMinimum += otTotalUSD;\n                        displayTotalForMinimum += otTotalDisplay;\n                        oneUsdMin += otTotalUSD;                 \/\/ one-time min bucket\n                        oneDisplayMin += otTotalDisplay;\n                    }\n                    oneTimeHtml += '<div class=\"summary-item\"><span class=\"summary-item-name\">' + title + ' x' + oneTimeQty + '<\/span><span class=\"summary-item-price\">' + symbol + (typeof saaFmt === 'function' ? saaFmt(otTotalDisplay) : otTotalDisplay.toFixed(2)) + '<\/span><\/div>';\n                }\n                \/\/ \u2500\u2500 v9 dual-qty: SUBSCRIPTION contribution (DEFERRED START) \u2500\u2500\n                if (subQty > 0 && autoshipUsd > 0) {\n                    hasItems = true;\n                    \/\/ Subscriptions charge NOTHING today \u2014 the first charge is on the\n                    \/\/ customer's chosen start date, then monthly. So they contribute\n                    \/\/ ONLY to the recurring \"Then\" total, never to today's charge.\n                    subRenewUsdTotal     += subQty * autoshipUsd;\n                    subRenewDisplayTotal += subQty * autoshipDisplay;\n                    \/\/ subFirst stays 0 (nothing charged today for subscriptions).\n                    if (!excludeFromMinimum) {\n                        subUsdMin += subQty * autoshipUsd;        \/\/ subscription min bucket (recurring value)\n                        subDisplayMin += subQty * autoshipDisplay;\n                        usdTotalForMinimum += subQty * autoshipUsd;   \/\/ combined (required-product threshold)\n                        displayTotalForMinimum += subQty * autoshipDisplay;\n                    }\n                    \/\/ Summary line shows the recurring price (billed monthly from the start date).\n                    var subLineDisplay = subQty * autoshipDisplay;\n                    subHtml += '<div class=\"summary-item\"><span class=\"summary-item-name\">' + title + ' x' + subQty + '<\/span><span class=\"summary-item-price\">' + symbol + (typeof saaFmt === 'function' ? saaFmt(subLineDisplay) : subLineDisplay.toFixed(2)) + '<\/span><\/div>';\n                }\n            });\n\n            \/\/ v9 \u2014 group the item list into \"Today's order\" (one-time) + \"Subscription\n            \/\/ order\" (recurring) sections with icons, instead of per-item \u00daNICA\/SUB tags.\n            var _es9 = (secure_addons_ajax.lang === 'es');\n            var _grpHdr = 'margin:14px 0 6px;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#1B2A4A;display:flex;align-items:center;gap:6px;';\n            summaryHtml = '';\n            \/\/ SVG icons (not emoji \u2014 TP strips emoji even from notranslate nodes).\n            var _icoOnce = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><path d=\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z\"\/><path d=\"M3 6h18\"\/><path d=\"M16 10a4 4 0 0 1-8 0\"\/><\/svg>';\n            var _icoSub  = '<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><path d=\"M3 12a9 9 0 0 1 15-6.7L21 8\"\/><path d=\"M21 3v5h-5\"\/><path d=\"M21 12a9 9 0 0 1-15 6.7L3 16\"\/><path d=\"M3 21v-5h5\"\/><\/svg>';\n            if (oneTimeHtml) summaryHtml += '<div class=\"summary-group-header\" style=\"' + _grpHdr + '\">' + _icoOnce + ' ' + (_es9 ? 'Pedido de hoy' : \"Today's order\") + '<\/div>' + oneTimeHtml;\n            if (subHtml)     summaryHtml += '<div class=\"summary-group-header\" style=\"' + _grpHdr + '\">' + _icoSub + ' ' + (_es9 ? 'Suscripci\u00f3n \u00b7 Pr\u00f3ximo mes' : 'Subscription \u00b7 next month') + '<\/div>' + subHtml;\n\n            \/\/ \u2500\u2500 v9 conditional discount \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ X% OFF TODAY's order (one-time items) when the customer adds a\n            \/\/ subscription that MEETS the subscription minimum. subFirstPct is the\n            \/\/ admin \"First-time discount %\"; subFirstFactor = (100 - pct)\/100.\n            \/\/ Gate the discount in USD ONLY, so it matches the backend exactly\n            \/\/ ($onetime_discount_active uses $sub_bucket_usd >= $sub_min_for_disc).\n            \/\/ The checkout-eligibility badge can speak the customer's currency, but the\n            \/\/ discount pill must never promise a reward the server won't actually apply.\n            var _subMinUSDd = parseFloat(container.data('min-total-sub')) || 0;\n            var subMinMetForDisc = (_subMinUSDd <= 0) || (subUsdMin >= _subMinUSDd);\n            var subQualifies = (subFirstPct > 0) && (subUsdMin > 0) && subMinMetForDisc;\n            var oneTodayDisplay = subQualifies ? oneDiscountedDisplayTotal : oneRegularDisplayTotal;\n            var oneTodayUsd     = subQualifies ? oneDiscountedUsdTotal     : oneRegularUsdTotal;\n            \/\/ Show\/hide the \"% OFF\" pill on the breakdown card. v11 \u2014 require an\n            \/\/ ACTUAL saving, not just a qualifying subscription. The min-bypass\n            \/\/ product is never discounted, so a TODAY'S order containing ONLY the\n            \/\/ bypass product has zero real savings (oneRegular == oneDiscounted) \u2192\n            \/\/ don't show a \"% OFF\" pill that promises a discount not applied. Gated\n            \/\/ in USD to match the backend. (The savings line below is already gated.)\n            var oneRealDiscountUsd = oneRegularUsdTotal - oneDiscountedUsdTotal;\n            var showDiscountPill = subQualifies && (oneRealDiscountUsd > 0.005);\n            container.find('.addon-first-pct-pill').css('display', showDiscountPill ? 'inline-block' : 'none');\n\n            \/\/ Update display\n            container.find('.summary-items').html(summaryHtml);\n            container.find('.addon-total').data('usd-total-for-minimum', usdTotalForMinimum);\n            \n            \/\/ ============================================\n            \/\/ REQUIRED PRODUCT LOGIC\n            \/\/ ============================================\n            var reqEnabled = container.data('required-product-enabled') == '1';\n            var $reqSummary = container.find('#required-product-summary');\n            var requiredProductCostUSD = 0;\n            var requiredProductCostDisplay = 0;\n            var requiredProductIsFree = false;\n            \n            if (reqEnabled && $reqSummary.length) {\n                var reqPriceUSD = parseFloat(container.data('required-product-price')) || 0;\n                var reqFreeThresholdUSD = parseFloat(container.data('required-free-threshold')) || 0;\n                var reqFreeCurrencies = container.data('required-free-threshold-currencies') || {};\n                var reqCurrencyPrices = container.data('required-product-currency-prices') || {};\n                if (typeof reqFreeCurrencies === 'string') { try { reqFreeCurrencies = JSON.parse(reqFreeCurrencies); } catch(e) { reqFreeCurrencies = {}; } }\n                if (typeof reqCurrencyPrices === 'string') { try { reqCurrencyPrices = JSON.parse(reqCurrencyPrices); } catch(e) { reqCurrencyPrices = {}; } }\n                \n                \/\/ Determine display price for required product in current currency\n                var reqDisplayPrice;\n                if (isCustomCurrency && reqCurrencyPrices[curKey.replace('price-', '')] > 0) {\n                    reqDisplayPrice = reqCurrencyPrices[curKey.replace('price-', '')];\n                } else if (isCustomCurrency) {\n                    reqDisplayPrice = reqPriceUSD * rate;\n                } else {\n                    reqDisplayPrice = reqPriceUSD * rate;\n                }\n                \n                \/\/ Check if free threshold is met (use USD total as reliable baseline)\n                if (reqFreeThresholdUSD > 0 && hasItems) {\n                    \/\/ Check currency-specific threshold first\n                    var curLowerReq = selectedCurrency.toLowerCase();\n                    var currencyFreeThreshold = reqFreeCurrencies[curLowerReq];\n                    if (currencyFreeThreshold && currencyFreeThreshold > 0) {\n                        requiredProductIsFree = displayTotalForMinimum >= currencyFreeThreshold;\n                    } else {\n                        requiredProductIsFree = usdTotalForMinimum >= reqFreeThresholdUSD;\n                    }\n                }\n                \n                if (hasItems) {\n                    $reqSummary.show();\n                    var $origPrice = $reqSummary.find('.required-price-original');\n                    var $curPrice = $reqSummary.find('.required-price-current');\n                    var $status = $reqSummary.find('.required-product-status');\n                    \n                    if (requiredProductIsFree) {\n                        \/\/ Show strikethrough original price + FREE\n                        $origPrice.text(symbol + (typeof saaFmt === 'function' ? saaFmt(reqDisplayPrice) : reqDisplayPrice.toFixed(2))).show();\n                        $curPrice.text(secure_addons_ajax.i18n.free).css('color', '#10b981');\n                        $status.text(secure_addons_ajax.lang === 'es' ? 'Gratis - meta alcanzada' : 'Free - threshold reached').css('color', '#10b981');\n                        requiredProductCostUSD = 0;\n                        requiredProductCostDisplay = 0;\n                    } else {\n                        \/\/ Show normal price\n                        $origPrice.hide();\n                        $curPrice.text(symbol + (typeof saaFmt === 'function' ? saaFmt(reqDisplayPrice) : reqDisplayPrice.toFixed(2))).css('color', '#1B2A4A');\n                        \/\/ Show free threshold hint if configured\n                        if (reqFreeThresholdUSD > 0) {\n                            var curLowerFree = selectedCurrency.toLowerCase();\n                            var displayFreeAt;\n                            if (reqFreeCurrencies[curLowerFree] && reqFreeCurrencies[curLowerFree] > 0) {\n                                displayFreeAt = reqFreeCurrencies[curLowerFree];\n                            } else {\n                                displayFreeAt = reqFreeThresholdUSD * rate;\n                            }\n                            var remainForFree = displayFreeAt - displayTotalForMinimum;\n                            if (remainForFree > 0) {\n                                var freeLabel = secure_addons_ajax.lang === 'es' ? 'Gratis con ' : 'Free at ';\n                                var toGoLabel = secure_addons_ajax.lang === 'es' ? ' restante' : ' to go';\n                                $status.html(freeLabel + '<strong>' + symbol + (typeof saaFmt === 'function' ? saaFmt(displayFreeAt) : displayFreeAt.toFixed(2)) + '<\/strong> <span style=\"color:#2AAFD3;\">(' + symbol + (typeof saaFmt === 'function' ? saaFmt(remainForFree) : remainForFree.toFixed(2)) + toGoLabel + ')<\/span>').css('color', '#8B6914');\n                            } else {\n                                $status.text(secure_addons_ajax.lang === 'es' ? 'Requerido' : 'Required').css('color', '#6B7B8D');\n                            }\n                        } else {\n                            $status.text(secure_addons_ajax.lang === 'es' ? 'Requerido' : 'Required').css('color', '#6B7B8D');\n                        }\n                        requiredProductCostUSD = reqPriceUSD;\n                        requiredProductCostDisplay = reqDisplayPrice;\n                    }\n                } else {\n                    $reqSummary.hide();\n                }\n                \n                \/\/ Add required product cost to total for display\n                total += requiredProductCostDisplay;\n                usdTotal += requiredProductCostUSD;\n            }\n            \n            \/\/ Store required product state for checkout\n            container.data('required-product-is-free', requiredProductIsFree ? '1' : '0');\n            \n            \/\/ Update total display (now includes required product)\n            container.find('.addon-total').text(symbol + (typeof saaFmt === 'function' ? saaFmt(total) : total.toFixed(2)));\n            container.find('.addon-total').data('usd-total', usdTotal);\n\n            \/\/ \u2500\u2500 v14 \u2014 TOTAL SAVINGS vs regular price (amount + %) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ savings = sum(regular) - sum(paid), in USD, converted for display.\n            \/\/ Hidden entirely when there's nothing to brag about, so a\n            \/\/ non-discounted cart doesn't show \"You save $0.00 (0%)\".\n            var $savingsRow = container.find('.addon-savings-total-row');\n            if ($savingsRow.length) {\n                var savingsUsd = compareAtUsdTotal - paidUsdTotal;\n                var savingsPct = (compareAtUsdTotal > 0)\n                    ? Math.round((savingsUsd \/ compareAtUsdTotal) * 100)\n                    : 0;\n                if (savingsUsd > 0.005 && savingsPct > 0) {\n                    \/\/ Convert to the shopper's currency the same way the total is.\n                    var savingsDisplay = savingsUsd * rate;\n                    if (isCustomCurrency && usdTotal > 0) {\n                        \/\/ Custom-currency carts price per-item, so scale the saving\n                        \/\/ by the SAME ratio the displayed total has to its USD value.\n                        savingsDisplay = savingsUsd * (total \/ usdTotal);\n                    }\n                    $savingsRow.find('.addon-savings-total-amount')\n                        .text(symbol + (typeof saaFmt === 'function' ? saaFmt(savingsDisplay) : savingsDisplay.toFixed(2)))\n                        .attr('data-usd-amount', savingsUsd.toFixed(2));\n                    $savingsRow.find('.addon-savings-total-pct').text(savingsPct + '%');\n                    $savingsRow.css('display', 'flex');\n                } else {\n                    $savingsRow.hide();\n                }\n            }\n\n            \/\/ \u2500\u2500 v7.4 Subscription \/ One-time mode rendering \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ Show the Now\/Then breakdown when in Subscription mode AND\n            \/\/ there's at least one subscribable item in the cart. In\n            \/\/ One-time mode the regular .addon-total is the only thing\n            \/\/ shown. The required-product cost is folded into Today since\n            \/\/ it's charged at checkout (renewal handling is owned by the\n            \/\/ autoship system if the required product is itself a sub).\n            var $breakdown      = container.find('.addon-subscription-breakdown');\n            var $legacyTotalRow = container.find('.summary-totals > .total-row');\n            if ($breakdown.length) {\n                if (subRenewDisplayTotal > 0) {\n                    \/\/ v8 per-item \u2014 the breakdown shows whenever ANY card is set\n                    \/\/ to Subscribe (regardless of the page pill), so mixed carts\n                    \/\/ render correctly.\n                    \/\/ v9 deferred: Today = one-time items (discounted when a qualifying\n                    \/\/ subscription is present) + required product ONLY (subFirst* = 0).\n                    \/\/ Then = subscribed items at the recurring price from the chosen date.\n                    \/\/ oneTodayDisplay\/Usd are computed above (honoring the discount).\n                    var todayDisplay    = subFirstDisplayTotal + oneTodayDisplay + requiredProductCostDisplay;\n                    var todayUsd        = subFirstUsdTotal     + oneTodayUsd     + requiredProductCostUSD;\n                    $breakdown.find('.addon-now-total')\n                        .text(symbol + (typeof saaFmt === 'function' ? saaFmt(todayDisplay) : todayDisplay.toFixed(2)))\n                        .attr('data-usd-total', todayUsd);\n                    $breakdown.find('.addon-then-total')\n                        .text(symbol + (typeof saaFmt === 'function' ? saaFmt(subRenewDisplayTotal) : subRenewDisplayTotal.toFixed(2)))\n                        .attr('data-usd-total', subRenewUsdTotal);\n\n                    \/\/ \u2500\u2500 Savings line \u2500\u2500\n                    \/\/ v9 deferred: subscriptions are NOT discounted today (nothing is\n                    \/\/ charged today \u2014 the first charge is on the start date), so there's\n                    \/\/ no \"you save today\" from subscriptions.\n                    var $savingsRow = $breakdown.find('.addon-savings-row');\n                    var subSavingsDisplay = 0;\n                    var subSavingsUsd     = 0;\n                    var oneSavingsDisplay = oneRegularDisplayTotal - oneTodayDisplay;\n                    var oneSavingsUsd     = oneRegularUsdTotal     - oneTodayUsd;\n                    var savingsDisplay    = subSavingsDisplay + oneSavingsDisplay;\n                    var savingsUsd        = subSavingsUsd     + oneSavingsUsd;\n                    if ($savingsRow.length) {\n                        if (savingsDisplay > 0.005) {\n                            $savingsRow.css('display', 'flex')\n                                       .find('.addon-savings-amount')\n                                       .text('\u2212 ' + symbol + (typeof saaFmt === 'function' ? saaFmt(savingsDisplay) : savingsDisplay.toFixed(2)))\n                                       .attr('data-usd-amount', savingsUsd);\n                        } else {\n                            $savingsRow.hide();\n                        }\n                    }\n\n                    \/\/ \u2500\u2500 Mixed-cart clarifier \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n                    \/\/ Show the \"recurring price covers subscription items\n                    \/\/ only\" note when the cart has BOTH a subscription item\n                    \/\/ and at least one one-time line (including required\n                    \/\/ product). Without this the customer sees Today $83.70\n                    \/\/ \u2192 Then $68\/mo and wonders where the difference went.\n                    var $mixedNote = $breakdown.find('.addon-mixed-note');\n                    if ($mixedNote.length) {\n                        var hasOneTimePresence = (oneRegularDisplayTotal > 0) || (requiredProductCostDisplay > 0);\n                        $mixedNote.css('display', hasOneTimePresence ? 'block' : 'none');\n                    }\n\n                    \/\/ \u2500\u2500 Collapse Today\/Then split when they're identical \u2500\u2500\n                    \/\/ Happens when there's no first-time discount AND no\n                    \/\/ one-time \/ required items mixed in: $X today, $X\/mo\n                    \/\/ forever. Showing the same number twice is noise \u2014 flip\n                    \/\/ to a single-row \"Subscription \u00b7 $X\/mo starting [date]\"\n                    \/\/ presentation by toggling a class JS reads from CSS-less.\n                    var pricesMatch = Math.abs(todayDisplay - subRenewDisplayTotal) < 0.005;\n                    $breakdown.toggleClass('is-collapsed', pricesMatch);\n                    \/\/ v11 \u2014 hide the whole \"Today\" card in collapsed mode (pure\n                    \/\/ subscription, no separate today charge). The two charges now\n                    \/\/ live in separate cards (.addon-bd-today \/ .addon-bd-then).\n                    var $todayCard = $breakdown.find('.addon-bd-today');\n                    var $thenEyeb  = $breakdown.find('.addon-then-date').closest('span');\n                    if (pricesMatch) {\n                        $todayCard.hide();\n                        if ($savingsRow.length) $savingsRow.hide();\n                        \/\/ Collapsed = pure subscription \u2192 eyebrow \"Next month \u00b7 Starts [date]\".\n                        var subLabel = (secure_addons_ajax.lang === 'es') ? 'Pr\u00f3ximo mes' : 'Next month';\n                        var startLabel = (secure_addons_ajax.lang === 'es') ? 'Comienza' : 'Starts';\n                        $thenEyeb.html(subLabel + '<br><span class=\"addon-then-date\" style=\"font-weight:500;letter-spacing:1px;color:#1B2A4A;\">' + startLabel + ' ' + $breakdown.find('.addon-then-date').text() + '<\/span>');\n                    } else {\n                        $todayCard.css('display', '');\n                        \/\/ Restore the \"Next month [date]\" eyebrow. The \/mo suffix on\n                        \/\/ the price already carries the cadence \u2014 don't repeat it here.\n                        var origLabel = (secure_addons_ajax.lang === 'es') ? 'Pr\u00f3ximo mes' : 'Next month';\n                        $thenEyeb.html(origLabel + '<br><span class=\"addon-then-date\" style=\"font-weight:500;letter-spacing:1px;color:#1B2A4A;\">' + $breakdown.find('.addon-then-date').text() + '<\/span>');\n                    }\n                    \/\/ v11 \u2014 first recurring date is FIXED at today + 30 days (the\n                    \/\/ customer picker was removed; server anchors autoship to +30 too).\n                    var thenDate = new Date();\n                    thenDate.setDate(thenDate.getDate() + 30);\n                    var months = (secure_addons_ajax.lang === 'es')\n                        ? ['ene','feb','mar','abr','may','jun','jul','ago','sep','oct','nov','dic']\n                        : ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n                    $breakdown.find('.addon-then-date').text(months[thenDate.getMonth()] + ' ' + thenDate.getDate() + ', ' + thenDate.getFullYear());\n                    $breakdown.show();\n                    \/\/ The legacy \"Add-ons Total\" row shows the regular-price\n                    \/\/ sum which doesn't reflect the actual checkout amount in\n                    \/\/ Subscription mode (Today already accounts for the\n                    \/\/ discount + subscription pricing). Hide it to avoid\n                    \/\/ showing two different totals on the same card.\n                    if ($legacyTotalRow.length) $legacyTotalRow.hide();\n                } else {\n                    $breakdown.hide();\n                    if ($legacyTotalRow.length) $legacyTotalRow.css('display', '');\n                }\n            }\n            \/\/ Reveal\/hide One-time-only badges based on the current mode \u2014\n            \/\/ in One-time mode the badge is irrelevant noise.\n            container.find('[data-onetime-badge=\"1\"]').toggle(subRenewDisplayTotal > 0);\n\n            \/\/ \u2500\u2500 v7.4 Adaptive checkout-button copy + reassurance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ Button text reflects the active mode + current charge amount:\n            \/\/   Subscription mode with items \u2192 \"Start Subscription \u00b7 $X\"\n            \/\/   One-time mode with items     \u2192 \"Checkout \u00b7 $X\"\n            \/\/   Empty cart                   \u2192 fallback templates without amount\n            \/\/ The cancel-anytime reassurance line below the button only\n            \/\/ renders in Subscription mode \u2014 it'd be misleading on one-time.\n            var $checkoutBtn = container.find('.summary-secure-checkout-btn');\n            var $reassurance = container.find('.addon-cancel-reassurance');\n            if ($checkoutBtn.length) {\n                var $btnText = $checkoutBtn.find('.btn-text');\n                \/\/ Today amount in display currency \u2014 drives the button copy.\n                \/\/ Falls back to the legacy `total` (One-time mode) so the\n                \/\/ amount on the button always matches what's charged today.\n                var btnAmount = 0;\n                if ($breakdown.length && subRenewDisplayTotal > 0) {\n                    \/\/ Mixed \"today\" total = subscribed first-payments + one-time\n                    \/\/ regulars + required product.\n                    btnAmount = subFirstDisplayTotal + oneTodayDisplay + requiredProductCostDisplay;\n                } else {\n                    btnAmount = total;\n                }\n                var hasAnyForBtn = btnAmount > 0.005;\n                var attrKey;\n                var _anySub = ($breakdown.length && subRenewDisplayTotal > 0);\n                if (hasAnyForBtn) {\n                    attrKey = _anySub ? 'text-sub' : 'text-onetime';\n                } else {\n                    attrKey = _anySub ? 'text-empty-sub' : 'text-empty-onetime';\n                }\n                var tpl = $checkoutBtn.attr('data-' + attrKey) || '';\n                var btnLabel = hasAnyForBtn\n                    ? tpl.replace('%s', symbol + (typeof saaFmt === 'function' ? saaFmt(btnAmount) : btnAmount.toFixed(2)))\n                    : tpl;\n                $btnText.text(btnLabel);\n                \/\/ Remember what the button says WITHOUT the estimate, so the estimate\n                \/\/ callback can re-render it with the grand total.\n                $checkoutBtn.data('saa-tpl', tpl).data('saa-hasany', hasAnyForBtn);\n            }\n            if (window.__saaScheduleEstimate) {\n                window.__saaScheduleEstimate(container, symbol, rate);\n            }\n            if ($reassurance.length) {\n                \/\/ Only show when subscription mode is committed AND there's\n                \/\/ at least one subscription item \u2014 empty cart in sub mode\n                \/\/ shouldn't promise \"cancel anytime\" yet.\n                var shouldReassure = subRenewDisplayTotal > 0;\n                $reassurance.css('display', shouldReassure ? 'block' : 'none');\n            }\n\n            \/\/ Update Qualifying Total row (only shows when excluded items exist\n            \/\/ and items are added, AND we're in One-time mode \u2014 the row is\n            \/\/ meaningless in Subscription mode where the breakdown drives the\n            \/\/ displayed totals).\n            var $qualifyingRow = container.find('.qualifying-total-row');\n            if ($qualifyingRow.length) {\n                var qualVisible = !$breakdown.length\n                    || subRenewDisplayTotal <= 0;\n                if (qualVisible && hasItems && displayTotalForMinimum !== total) {\n                    $qualifyingRow.show();\n                    $qualifyingRow.find('.qualifying-amount').text(symbol + (typeof saaFmt === 'function' ? saaFmt(displayTotalForMinimum) : displayTotalForMinimum.toFixed(2)));\n                } else {\n                    $qualifyingRow.hide();\n                }\n            }\n            \n            \/\/ v7.6 \u2014 Get USD min\/max, MODE-AWARE. On the Subscription tab the\n            \/\/ data-*-sub attributes win; a blank\/0 sub value falls back to the\n            \/\/ one-time attribute, so pages without a subscription override keep\n            \/\/ their limit in both modes.\n            var _isSubMode = container.find('.addon-mode-toggle').attr('data-current-mode') === 'subscription';\n            var minTotalUSD = (_isSubMode ? parseFloat(container.data('min-total-sub')) : 0) || parseFloat(container.data('min-total')) || 0;\n            var maxTotalUSD = (_isSubMode ? parseFloat(container.data('max-total-sub')) : 0) || parseFloat(container.data('max-total')) || 0;\n\n            \/\/ Currency-specific overrides \u2014 sub-currency wins, else one-time currency.\n            var curLower = selectedCurrency.toLowerCase();\n            var curMinVal = ((_isSubMode ? parseFloat(container.data('min-total-sub-' + curLower)) : 0) || parseFloat(container.data('min-total-' + curLower))) || 0;\n            var curMaxVal = ((_isSubMode ? parseFloat(container.data('max-total-sub-' + curLower)) : 0) || parseFloat(container.data('max-total-' + curLower))) || 0;\n            var hasCurrencyMin = selectedCurrency !== 'USD' && curMinVal > 0;\n            var hasCurrencyMax = selectedCurrency !== 'USD' && curMaxVal > 0;\n\n            \/\/ Resolve effective min\/max in display currency\n            var effectiveMin, effectiveMax;\n            var meetsMinimum, exceedsMax;\n            var displayMin, displayMax;\n\n            \/\/ Minimum-bypass product (OR): if this product is in the cart\n            \/\/ selection, the minimum-total requirement is waived.\n            var minBypassPid = parseInt(container.data('min-bypass-product')) || 0;\n            var minBypassed = false;\n            if (minBypassPid > 0) {\n                if (minBypassPid === (parseInt(container.data('product-id')) || 0)) {\n                    minBypassed = true; \/\/ bypass product IS the main product (always in cart)\n                } else {\n                    var $bpC = container.find('.addon-item-card[data-addon-id=\"' + minBypassPid + '\"]');\n                    if ($bpC.length) {\n                        if ((parseInt($bpC.find('.addon-qty').val()) || 0) > 0) {\n                            minBypassed = true;\n                        } else if ($bpC.data('is-variable') == true && typeof window._getVarMaps === 'function') {\n                            var bpM = window._getVarMaps($bpC);\n                            for (var _bpv in bpM.qtyMap) { if (bpM.qtyMap[_bpv] > 0) { minBypassed = true; break; } }\n                        }\n                    }\n                }\n            }\n\n            \/\/ \u2500\u2500 v9 dual-qty minimums (live) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ The one-time minimum applies to the one-time bucket and the\n            \/\/ subscription minimum to the subscription bucket, each only when that\n            \/\/ bucket has items. Both must be met to check out \u2014 so this matches the\n            \/\/ button + server gates and the live \"valid\" state can't disagree.\n            var _esMin = (secure_addons_ajax.lang === 'es');\n            var _oneMinUSD = parseFloat(container.data('min-total')) || 0;\n            var _subMinUSD = parseFloat(container.data('min-total-sub')) || 0;\n            var _oneMinCur = (selectedCurrency !== 'USD') ? (parseFloat(container.data('min-total-' + curLower)) || 0) : 0;\n            var _subMinCur = (selectedCurrency !== 'USD') ? (parseFloat(container.data('min-total-sub-' + curLower)) || 0) : 0;\n            var oneMinDisplay = _oneMinCur > 0 ? _oneMinCur : (_oneMinUSD * rate);\n            var subMinDisplay = _subMinCur > 0 ? _subMinCur : (_subMinUSD * rate);\n            var oneMinCfg = (_oneMinCur > 0 ? _oneMinCur : _oneMinUSD) > 0;\n            var subMinCfg = (_subMinCur > 0 ? _subMinCur : _subMinUSD) > 0;\n            \/\/ Bypass product waives the ONE-TIME minimum ONLY. The subscription\n            \/\/ minimum ALWAYS applies (it only skips the one-time purchase minimum).\n            var oneMinMet = minBypassed || !(oneMinCfg && oneUsdMin > 0) || (_oneMinCur > 0 ? (oneDisplayMin >= _oneMinCur) : (oneUsdMin >= _oneMinUSD));\n            var subMinMet = !(subMinCfg && subUsdMin > 0) || (_subMinCur > 0 ? (subDisplayMin >= _subMinCur) : (subUsdMin >= _subMinUSD));\n            \/\/ \u2500\u2500 v9 \u2014 a subscription bills $0 TODAY (deferred to the chosen start date),\n            \/\/ so a subscription-only cart would charge nothing now. Require at least one\n            \/\/ ONE-TIME item alongside any subscription before checkout is allowed.\n            \/\/ (oneRegularUsdTotal \/ subRenewUsdTotal include bypass items \u2014 any line counts.)\n            \/\/ PRESENCE-based (not price-based): a free $0 one-time item still counts,\n            \/\/ matching the button validators (Object.keys) and the server (line count).\n            var hasSubLine  = subRenewUsdTotal > 0;\n            var hasOneLine  = oneTimeUnitCount > 0;\n            var needsOneTime = hasSubLine && !hasOneLine;\n            meetsMinimum = oneMinMet && subMinMet && !needsOneTime;\n            var oneRemaining = oneMinMet ? 0 : (_oneMinCur > 0 ? (_oneMinCur - oneDisplayMin) : ((_oneMinUSD - oneUsdMin) * rate));\n            var subRemaining = subMinMet ? 0 : (_subMinCur > 0 ? (_subMinCur - subDisplayMin) : ((_subMinUSD - subUsdMin) * rate));\n            displayMin = subMinDisplay > 0 ? subMinDisplay : oneMinDisplay; \/\/ legacy fallback\n\n            \/\/ \u2500\u2500 v9 \u2014 flip the \"Subscribe & save\" reward banner locked\u2192unlocked live.\n            \/\/ subQualifies (computed above) is TRUE when the discount actually applies.\n            var $rewardBanner = container.find('.addon-sub-reward-banner');\n            if ($rewardBanner.length) {\n                if (subQualifies) {\n                    $rewardBanner.addClass('is-unlocked');\n                    $rewardBanner.find('.asrb-locked').hide();\n                    $rewardBanner.find('.asrb-unlocked').css('display', '');\n                    \/\/ Icon is a static SVG gift (no emoji swap \u2014 the green \"unlocked\"\n                    \/\/ gradient + text already signal it, and .text() would nuke the SVG).\n                } else {\n                    $rewardBanner.removeClass('is-unlocked');\n                    $rewardBanner.find('.asrb-unlocked').hide();\n                    $rewardBanner.find('.asrb-locked').css('display', '');\n                    \/\/ Localize the \"add $X+ subscription\" threshold to the display currency.\n                    if (subMinDisplay > 0) {\n                        $rewardBanner.find('.asrb-min').text(symbol + subMinDisplay.toFixed(0));\n                    }\n                }\n            }\n\n            if (hasCurrencyMax) {\n                effectiveMax = curMaxVal;\n                displayMax = effectiveMax;\n                exceedsMax = effectiveMax > 0 && total > effectiveMax;\n            } else {\n                effectiveMax = maxTotalUSD;\n                displayMax = maxTotalUSD * rate;\n                exceedsMax = maxTotalUSD > 0 && usdTotal > maxTotalUSD;\n            }\n            \n            \/\/ Update badge displays \u2014 show BOTH configured minimums when present.\n            if (container.find('.requirement-badge.min').length) {\n                var badgeTxt;\n                if (oneMinCfg && subMinCfg) {\n                    badgeTxt = symbol + (typeof saaFmt === 'function' ? saaFmt(oneMinDisplay) : oneMinDisplay.toFixed(2)) + (_esMin ? ' (\u00fanica)' : ' (one-time)') + ' \u00b7 ' + symbol + (typeof saaFmt === 'function' ? saaFmt(subMinDisplay) : subMinDisplay.toFixed(2)) + (_esMin ? ' (susc.)' : ' (subscription)');\n                } else if (subMinCfg) {\n                    badgeTxt = symbol + (typeof saaFmt === 'function' ? saaFmt(subMinDisplay) : subMinDisplay.toFixed(2)) + (_esMin ? ' (suscripci\u00f3n)' : ' (subscription)');\n                } else {\n                    badgeTxt = symbol + (typeof saaFmt === 'function' ? saaFmt(oneMinDisplay) : oneMinDisplay.toFixed(2));\n                }\n                container.find('.requirement-badge.min .requirement-amount').text(badgeTxt);\n            }\n            if (container.find('.requirement-badge.max').length) {\n                container.find('.requirement-badge.max .requirement-amount').text(symbol + (typeof saaFmt === 'function' ? saaFmt(displayMax) : displayMax.toFixed(2)));\n            }\n\n            \/\/ \u2500\u2500 Minimum-bypass display \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n            \/\/ When the customer added the product that WAIVES the minimum, the raw\n            \/\/ \"Qualifying Total: $0.00\" + \"Minimum required: $99\" reads as a scary\n            \/\/ contradiction. Swap the min badge to a clear \"requirement waived\" state\n            \/\/ (green + checkmark) and hide the qualifying-total row.\n            var $minBadge = container.find('.requirement-badge.min');\n            if (minBypassed && hasItems) {\n                container.find('.qualifying-total-row').hide();\n                if ($minBadge.length) {\n                    $minBadge.addClass('is-waived');\n                    $minBadge.find('.req-icon-info').hide();\n                    $minBadge.find('.req-icon-check').css('display', '');\n                    $minBadge.find('.requirement-text').hide();\n                    \/\/ Bypass waives the ONE-TIME minimum only; if a subscription minimum\n                    \/\/ is configured, note it still applies so the customer isn't surprised.\n                    var _waivedTxt = _esMin ? 'M\u00ednimo de compra \u00fanica exonerado por este producto' : 'One-time minimum waived by this product';\n                    if (subMinCfg && subMinDisplay > 0) {\n                        _waivedTxt += _esMin\n                            ? ' \u00b7 la suscripci\u00f3n a\u00fan requiere ' + symbol + (typeof saaFmt === 'function' ? saaFmt(subMinDisplay) : subMinDisplay.toFixed(2))\n                            : ' \u00b7 subscription still requires ' + symbol + (typeof saaFmt === 'function' ? saaFmt(subMinDisplay) : subMinDisplay.toFixed(2));\n                    }\n                    $minBadge.find('.requirement-waived').text(_waivedTxt).css('display', '');\n                }\n            } else if ($minBadge.length) {\n                $minBadge.removeClass('is-waived');\n                $minBadge.find('.req-icon-info').css('display', '');\n                $minBadge.find('.req-icon-check').hide();\n                $minBadge.find('.requirement-text').css('display', '');\n                $minBadge.find('.requirement-waived').hide();\n            }\n\n            \/\/ Validation\n            var msg = container.find('.validation-message');\n            msg.removeClass('error success').hide();\n            \n            \/\/ Update mobile bottom bar\n            var $summaryCol = container.find('.addon-summary-column');\n            var $mobileCount = $summaryCol.find('.mobile-bar-count');\n            var $mobileTotal = $summaryCol.find('.mobile-bar-total');\n            var $mobileOriginal = $summaryCol.find('.mobile-bar-original');\n\n            \/\/ v7.4 \u2014 when the page exposes the mobile mode toggle, we keep\n            \/\/ the bar visible (in a compact \"toggle-only\" mode) even on an\n            \/\/ empty cart so customers can pre-select Subscription \/ One-time\n            \/\/ before adding the first item. Without a toggle on the page,\n            \/\/ empty-cart still fully hides the bar (original behavior).\n            var $mobileBarHandle = $summaryCol.find('#mobile-sheet-handle');\n            var hasMobileToggle  = $mobileBarHandle.find('.mobile-addon-mode-toggle').length > 0;\n            if (hasItems && total > 0) {\n                \/\/ Count total items\n                var itemCount = 0;\n                container.find('.addon-item-card').each(function() {\n                    itemCount += parseInt($(this).find('.addon-qty').val()) || 0;\n                });\n\n                var itemWord = (secure_addons_ajax.lang === 'es') ? (itemCount === 1 ? 'producto' : 'productos') : (itemCount === 1 ? 'item' : 'items');\n                $mobileCount.text(itemCount + ' ' + itemWord);\n\n                \/\/ v7.4 \u2014 in Subscription mode with a first-payment discount,\n                \/\/ the mobile bar shows the discounted TODAY price ($160.80)\n                \/\/ as the dominant number with the regular price ($201) struck\n                \/\/ through next to it. Mirrors the \"HOY\" line inside the\n                \/\/ breakdown card so the bar matches what the customer will\n                \/\/ actually be charged today.\n                var mobileBarDisplay  = total;\n                var mobileBarOriginal = null;\n                if (subRenewDisplayTotal > 0) {\n                    \/\/ v8 per-item: mobile bar TODAY = subscribed first-payments +\n                    \/\/ one-time regulars + required product. Shown whenever ANY card\n                    \/\/ is set to Subscribe; strike through the all-regular total when\n                    \/\/ the subscription discount makes today's charge lower.\n                    mobileBarDisplay = subFirstDisplayTotal + oneTodayDisplay + requiredProductCostDisplay;\n                    if (mobileBarDisplay < total - 0.005) {\n                        mobileBarOriginal = total;\n                    }\n                }\n                $mobileTotal.text(symbol + (typeof saaFmt === 'function' ? saaFmt(mobileBarDisplay) : mobileBarDisplay.toFixed(2)));\n                if (mobileBarOriginal !== null) {\n                    $mobileOriginal.text(symbol + (typeof saaFmt === 'function' ? saaFmt(mobileBarOriginal) : mobileBarOriginal.toFixed(2))).show();\n                } else {\n                    $mobileOriginal.hide().text('');\n                }\n\n                \/\/ Show the mobile bar (remove hidden + empty classes)\n                $summaryCol.removeClass('mobile-hidden');\n                $summaryCol.removeClass('mobile-bar-empty');\n                $mobileBarHandle.removeClass('mobile-bar-empty');\n            } else if (hasMobileToggle) {\n                \/\/ Cart empty but the toggle is on the page \u2014 keep the bar\n                \/\/ visible in slim form so the customer can switch tabs.\n                $mobileOriginal.hide().text(''); \/\/ clear any stale strikethrough\n                $summaryCol.removeClass('mobile-hidden');\n                $summaryCol.removeClass('mobile-expanded');\n                $summaryCol.addClass('mobile-bar-empty');\n                $mobileBarHandle.addClass('mobile-bar-empty');\n                $('#mobile-sheet-backdrop').removeClass('active');\n                if ($('body').hasClass('mobile-sheet-open')) {\n                    var savedScrollY = parseInt(document.body.dataset.sheetScrollY || '0');\n                    document.body.style.position = '';\n                    document.body.style.top = '';\n                    document.body.style.left = '';\n                    document.body.style.right = '';\n                    window.scrollTo(0, savedScrollY);\n                }\n                $('body').removeClass('mobile-sheet-open');\n            } else {\n                \/\/ Hide mobile bar when no items AND no toggle to expose\n                $mobileOriginal.hide().text(''); \/\/ clear any stale strikethrough\n                $summaryCol.addClass('mobile-hidden');\n                $summaryCol.removeClass('mobile-bar-empty');\n                $mobileBarHandle.removeClass('mobile-bar-empty');\n                \/\/ Also collapse if expanded\n                $summaryCol.removeClass('mobile-expanded');\n                $('#mobile-sheet-backdrop').removeClass('active');\n                \/\/ Restore body scroll if locked\n                if ($('body').hasClass('mobile-sheet-open')) {\n                    var savedScrollY = parseInt(document.body.dataset.sheetScrollY || '0');\n                    document.body.style.position = '';\n                    document.body.style.top = '';\n                    document.body.style.left = '';\n                    document.body.style.right = '';\n                    window.scrollTo(0, savedScrollY);\n                }\n                $('body').removeClass('mobile-sheet-open');\n            }\n            \n            if (hasItems) {\n                \/\/ v9 dual-qty \u2014 explain EACH unmet minimum (one-time and subscription)\n                \/\/ separately, so the customer knows exactly what to add.\n                if (!meetsMinimum) {\n                    var _mp = [];\n                    \/\/ v9 \u2014 subscription present but no one-time item: must add one for today.\n                    if (needsOneTime) {\n                        _mp.push(_esMin ? 'Agrega al menos un producto a tu <strong>Pedido de hoy<\/strong> \u2014 tu suscripci\u00f3n se cobra en 30 d\u00edas, no hoy.' : 'Add at least one item to your <strong>Today\\'s order<\/strong> \u2014 your subscription is billed in 30 days, not today.');\n                    }\n                    if (!oneMinMet && oneRemaining > 0.005) {\n                        _mp.push((_esMin ? 'Agrega ' : 'Add ') + symbol + (typeof saaFmt === 'function' ? saaFmt(oneRemaining) : oneRemaining.toFixed(2)) + (_esMin ? ' m\u00e1s a tu Pedido de hoy (m\u00edn. ' : ' more to your Today\\'s order (min ') + symbol + (typeof saaFmt === 'function' ? saaFmt(oneMinDisplay) : oneMinDisplay.toFixed(2)) + ')');\n                    }\n                    if (!subMinMet && subRemaining > 0.005) {\n                        _mp.push((_esMin ? 'Agrega ' : 'Add ') + symbol + (typeof saaFmt === 'function' ? saaFmt(subRemaining) : subRemaining.toFixed(2)) + (_esMin ? ' m\u00e1s a tu Suscripci\u00f3n (m\u00edn. ' : ' more to your Subscription (min ') + symbol + (typeof saaFmt === 'function' ? saaFmt(subMinDisplay) : subMinDisplay.toFixed(2)) + ')');\n                    }\n                    if (_mp.length) {\n                        msg.addClass('error').html('\u26a0\ufe0f ' + _mp.join('<br>')).show();\n                    }\n                } else if (exceedsMax && displayMax > 0) {\n                    msg.addClass('error').html('\u26a0\ufe0f ' + secure_addons_ajax.i18n.total_exceeds + ' ' + symbol + (typeof saaFmt === 'function' ? saaFmt(displayMax) : displayMax.toFixed(2))).show();\n                } else {\n                    msg.addClass('success').html('\u2705 ' + secure_addons_ajax.i18n.selection_valid).show();\n                }\n            }\n            \n            \/\/ ============================================\n            \/\/ LEVEL PROGRESS TRACKER UPDATE\n            \/\/ ============================================\n            \/\/ Use total EXCLUDING required product AND min-bypass product for level calculations\n            var totalForLevels = total - requiredProductCostDisplay - bypassCostDisplay;\n            var usdTotalForLevels = usdTotal - requiredProductCostUSD - bypassCostUSD;\n            \n            var levelsData = container.data('levels');\n            var $tracker = container.find('.addon-level-tracker');\n            \n            if (levelsData && levelsData.length > 0 && $tracker.length) {\n                \/\/ Parse levels (may already be object from jQuery data)\n                var levels = (typeof levelsData === 'string') ? JSON.parse(levelsData) : levelsData;\n                \n                \/\/ Determine effective amount for each level in current currency\n                var curLowerLevel = selectedCurrency.toLowerCase();\n                var levelAmounts = [];\n                for (var li = 0; li < levels.length; li++) {\n                    var lvl = levels[li];\n                    var curAmountKey = 'amount_' + curLowerLevel;\n                    var levelAmount;\n                    \n                    \/\/ Use currency-specific amount if set, otherwise USD \u00d7 rate\n                    if (selectedCurrency !== 'USD' && lvl[curAmountKey] && parseFloat(lvl[curAmountKey]) > 0) {\n                        levelAmount = parseFloat(lvl[curAmountKey]);\n                    } else {\n                        levelAmount = parseFloat(lvl.amount_usd) * rate;\n                    }\n                    \n                    levelAmounts.push({\n                        name: lvl.name,\n                        amount: levelAmount,\n                        amountUSD: parseFloat(lvl.amount_usd)\n                    });\n                }\n                \n                \/\/ Sort by amount ascending (should already be sorted from PHP)\n                levelAmounts.sort(function(a, b) { return a.amount - b.amount; });\n                \n                \/\/ Determine which level is reached\n                var currentLevel = null;\n                var nextLevel = null;\n                var highestReachedIndex = -1;\n                var nextLevelIndex = -1;\n                \n                for (var li = 0; li < levelAmounts.length; li++) {\n                    if (totalForLevels >= levelAmounts[li].amount) {\n                        currentLevel = levelAmounts[li];\n                        highestReachedIndex = li;\n                    } else {\n                        if (nextLevel === null) {\n                            nextLevel = levelAmounts[li];\n                            nextLevelIndex = li;\n                        }\n                    }\n                }\n                \n                \/\/ \u2500\u2500 Update the compact GOALS BAR \u2014 all tiers on ONE bar \u2500\u2500\n                \/\/ Fill tracks qualifying spend toward the TOP tier; each marker\n                \/\/ turns \"reached\" as its threshold is crossed. Runs across every\n                \/\/ .addon-level-tracker (desktop summary + mobile bar).\n                var maxAmt = levelAmounts.length ? levelAmounts[levelAmounts.length - 1].amount : 0;\n                var fillPct = (maxAmt > 0) ? Math.min(100, (totalForLevels \/ maxAmt) * 100) : 0;\n                var _addTxt  = (secure_addons_ajax.i18n.add || 'Add');\n                var _toReach = (secure_addons_ajax.i18n.to_reach || 'to reach');\n                $tracker.each(function() {\n                    var $t = $(this);\n                    $t.find('.addon-goals-fill').css('width', fillPct.toFixed(2) + '%');\n                    $t.find('.addon-goals-marker').each(function(mi) {\n                        $(this).toggleClass('reached', !!(levelAmounts[mi] && totalForLevels >= levelAmounts[mi].amount));\n                    });\n                    $t.find('.addon-goals-current').text(currentLevel ? currentLevel.name : '');\n                    var $hint = $t.find('.addon-goals-hint');\n                    if (nextLevel) {\n                        var remaining = Math.max(0, nextLevel.amount - totalForLevels);\n                        $hint.html(_addTxt + ' <strong>' + symbol + (typeof saaFmt === 'function' ? saaFmt(remaining) : remaining.toFixed(2)) + '<\/strong> ' + _toReach + ' ' + nextLevel.name);\n                    } else if (currentLevel) {\n                        $hint.html('<strong>' + (secure_addons_ajax.i18n.max_level_reached || 'Top level reached!') + '<\/strong>');\n                    } else {\n                        $hint.html(secure_addons_ajax.i18n.add_items_to_level || 'Add items to start leveling up');\n                    }\n                });\n\n                \/\/ Show\/hide tracker \u2014 v11: only reveal it when there's real\n                \/\/ qualifying TODAY'S-ORDER spend toward the levels. The min-bypass\n                \/\/ product (and deferred subscriptions) contribute $0 to\n                \/\/ usdTotalForLevels, so a cart holding ONLY the bypass product keeps\n                \/\/ the \"Your Level\" tracker HIDDEN until a real today's-order item is\n                \/\/ added \u2014 otherwise it'd show a confusing empty $0 progress bar.\n                var showLevelTracker = (usdTotalForLevels > 0.005);\n                if (showLevelTracker) {\n                    $tracker.slideDown(300);\n                } else {\n                    $tracker.slideUp(200);\n                }\n                \/\/ Keep the mobile collapsed-peek height in sync \u2014 only reserve the\n                \/\/ goal-bar row when the mobile goal is actually visible, else the\n                \/\/ hidden tracker would leave an empty gap in the peek.\n                container.find('.addon-summary-column').toggleClass('has-mobile-goal', showLevelTracker);\n            }\n        });\n    }\n    \n    \/\/ Function to update all addon prices when currency changes\n    function updateAddonPricesForCurrency() {\n        var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n        var rate = 1;\n        if (window.storeConversionRates && window.storeConversionRates[selectedCurrency]) {\n            rate = window.storeConversionRates[selectedCurrency];\n        }\n        \n        var symbol = currencySymbols[selectedCurrency] || '$';\n        var ccCodes = window.customCurrencyCodes || [];\n        var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n        var curKey = 'price-' + selectedCurrency.toLowerCase();\n        \n        console.log('Updating addon prices to ' + selectedCurrency + ' with rate: ' + rate + (isCustomCurrency ? ' (custom price currency)' : ''));\n        \n        \/\/ Update each addon card's displayed prices\n        $('.addon-item-card').each(function() {\n            var $card = $(this);\n            var usdPrice = parseFloat($card.data('usd-price')) || parseFloat($card.data('price')) || 0;\n            \n            if (!$card.data('usd-price')) {\n                $card.data('usd-price', usdPrice);\n            }\n            \n            var convertedPrice;\n            if (isCustomCurrency) {\n                var cp = parseFloat($card.data(curKey));\n                if (cp && cp > 0) {\n                    convertedPrice = cp;\n                } else {\n                    convertedPrice = usdPrice * rate;\n                }\n            } else {\n                convertedPrice = usdPrice * rate;\n            }\n            \n            $card.data('price', convertedPrice);\n            $card.find('.addon-price-current').text(symbol + (typeof saaFmt === 'function' ? saaFmt(convertedPrice) : convertedPrice.toFixed(2)));\n            \/\/ Wholesale mode: resale guidance is USD \u00d7 rate (no per-currency override)\n            $card.find('.addon-resale-price').each(function() {\n                var rUsd = parseFloat($(this).attr('data-usd-price')) || 0;\n                if (rUsd > 0) $(this).text(symbol + (typeof saaFmt === 'function' ? saaFmt(rUsd * rate) : (rUsd * rate).toFixed(2)));\n            });\n            \n            var $origPrice = $card.find('.addon-price-original');\n            if ($origPrice.length) {\n                var origUsdPrice = parseFloat($origPrice.data('usd-price')) || 0;\n                if (!origUsdPrice) {\n                    var textPrice = $origPrice.text().replace(\/[^\\d.]\/g, '');\n                    origUsdPrice = parseFloat(textPrice) || 0;\n                    $origPrice.data('usd-price', origUsdPrice);\n                }\n                \n                \/\/ Use currency-specific regular price if available (e.g. product's MXN price)\n                var regularKey = 'regular-price-' + selectedCurrency.toLowerCase();\n                var currencyRegularPrice = parseFloat($card.data(regularKey));\n                var convertedOrigPrice;\n                \n                if (isCustomCurrency && currencyRegularPrice && currencyRegularPrice > 0) {\n                    convertedOrigPrice = currencyRegularPrice;\n                } else {\n                    convertedOrigPrice = origUsdPrice * rate;\n                }\n                \n                \/\/ Only show strikethrough if original > current (actual discount)\n                if (convertedOrigPrice > convertedPrice) {\n                    $origPrice.text(symbol + (typeof saaFmt === 'function' ? saaFmt(convertedOrigPrice) : convertedOrigPrice.toFixed(2))).show();\n                } else {\n                    $origPrice.hide();\n                }\n            }\n        });\n        \n        \/\/ Update catalog list prices too\n        $('.catalog-list-item').each(function() {\n            var $item = $(this);\n            var $current = $item.find('.catalog-price-current');\n            var $original = $item.find('.catalog-price-original');\n            \n            if ($current.length) {\n                var curText = $current.find('.woocommerce-Price-amount').length \n                    ? $current.find('.woocommerce-Price-amount').text() \n                    : $current.text();\n                var usdPrice = parseFloat($current.data('usd-price')) || parseFloat(curText.replace(\/[^\\d.]\/g, '')) || 0;\n                if (!$current.data('usd-price')) $current.data('usd-price', usdPrice);\n                \n                var converted;\n                if (isCustomCurrency) {\n                    var cp = parseFloat($item.data(curKey));\n                    if (cp && cp > 0) {\n                        converted = cp;\n                    } else {\n                        converted = usdPrice * rate;\n                    }\n                } else {\n                    converted = usdPrice * rate;\n                }\n                $current.text(symbol + (typeof saaFmt === 'function' ? saaFmt(converted) : converted.toFixed(2)));\n            }\n            \n            if ($original.length) {\n                var origText = $original.find('.woocommerce-Price-amount').length \n                    ? $original.find('.woocommerce-Price-amount').text() \n                    : $original.text();\n                var origUsd = parseFloat($original.data('usd-price')) || parseFloat(origText.replace(\/[^\\d.]\/g, '')) || 0;\n                if (!$original.data('usd-price')) $original.data('usd-price', origUsd);\n                \n                \/\/ Use currency-specific regular price from product meta\n                var regularKey = 'regular-price-' + selectedCurrency.toLowerCase();\n                var currencyRegular = parseFloat($item.data(regularKey));\n                var convertedOrig;\n                if (isCustomCurrency && currencyRegular && currencyRegular > 0) {\n                    convertedOrig = currencyRegular;\n                } else {\n                    convertedOrig = origUsd * rate;\n                }\n                \n                if (convertedOrig > converted) {\n                    $original.text(symbol + (typeof saaFmt === 'function' ? saaFmt(convertedOrig) : convertedOrig.toFixed(2))).show();\n                } else {\n                    $original.hide();\n                }\n            }\n        });\n        \n        \/\/ Update requirement badges\n        $('.requirement-badge').each(function() {\n            var $badge = $(this);\n            var usdAmount = parseFloat($badge.data('usd-amount')) || 0;\n            if (usdAmount > 0) {\n                var convertedAmount = usdAmount * rate;\n                $badge.find('.requirement-amount').text(symbol + (typeof saaFmt === 'function' ? saaFmt(convertedAmount) : convertedAmount.toFixed(2)));\n            }\n        });\n        \n        \/\/ Recalculate totals\n        updateTotal();\n    }\n    \n    \/\/ \u2500\u2500 v7.4 Subscription \/ One-time mode toggle handler \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    \/\/ Stores the active mode on the .addon-mode-toggle root via data-current-mode\n    \/\/ so updateTotal() (above) and the checkout POST below can both read it.\n    \/\/ Sets data-user-overridden=\"1\" so the auto-pick in updateTotal stops\n    \/\/ trying to flip the mode based on cart contents \u2014 the customer made an\n    \/\/ explicit choice. The flag resets when the cart is emptied.\n    $(document).on('click', '.addon-mode-btn', function() {\n        var $btn       = $(this);\n        var mode       = $btn.attr('data-mode'); \/\/ \"subscription\" | \"onetime\"\n        if (!mode) return;\n        var $clickedToggle = $btn.closest('.addon-mode-toggle');\n        if ($clickedToggle.attr('data-current-mode') === mode) return;\n        \/\/ v7.4 \u2014 there may be MORE than one toggle on the page (a desktop\n        \/\/ version inside the order-summary card AND a mirrored mobile\n        \/\/ version inside the bottom sheet handle). Walk every toggle inside\n        \/\/ the parent .secure-addon-display so both stay in lockstep.\n        var $container = $clickedToggle.closest('.secure-addon-display');\n        if (!$container.length) $container = $('.secure-addon-display').first();\n        var $allToggles = $container.find('.addon-mode-toggle');\n        $allToggles.attr('data-current-mode', mode);\n        $allToggles.attr('data-user-overridden', '1');\n        $allToggles.each(function() {\n            var $t = $(this);\n            var isMobile = $t.hasClass('mobile-addon-mode-toggle');\n            $t.find('.addon-mode-btn').each(function() {\n                var $b = $(this);\n                var active = $b.attr('data-mode') === mode;\n                $b.toggleClass('is-active', active);\n                \/\/ Mobile pill uses CSS-driven styling \u2014 skip the inline\n                \/\/ overrides so it inherits from .mobile-addon-mode-toggle\n                \/\/ .addon-mode-btn.is-active.\n                if (isMobile) return;\n                $b.css({\n                    'background':   active ? '#fff' : 'transparent',\n                    'color':        active ? '#1B2A4A' : '#6B7B8D',\n                    'font-weight':  active ? '700' : '600',\n                    'box-shadow':   active ? '0 1px 3px rgba(27,42,74,0.1)' : 'none'\n                });\n            });\n        });\n        \/\/ v8 \u2014 the page pill is now a BULK control: set every eligible card's\n        \/\/ per-item toggle to match. Per-card toggles can then override individually.\n        $container.find('.addon-item-card[data-subscribable=\"1\"] .addon-item-mode').each(function() {\n            var $w = $(this);\n            $w.attr('data-item-mode', mode);\n            $w.find('.addon-item-mode-btn').each(function() {\n                var $b = $(this);\n                var on = $b.attr('data-item-mode') === mode;\n                $b.toggleClass('is-active', on);\n                $b.css({ 'background': on ? '#fff' : 'transparent', 'color': on ? '#1B2A4A' : '#6B7B8D', 'box-shadow': on ? '0 1px 3px rgba(27,42,74,0.1)' : 'none' });\n            });\n        });\n        updateTotal();\n    });\n\n    \/\/ v8 \u2014 per-card One-time \/ Subscribe toggle. Sets THIS card's committed mode\n    \/\/ independently of the page pill, enabling mixed one-time + subscription orders.\n    $(document).on('click', '.addon-item-mode-btn', function() {\n        var $btn = $(this);\n        var m = $btn.attr('data-item-mode');\n        if (!m) return;\n        var $wrap = $btn.closest('.addon-item-mode');\n        if ($wrap.attr('data-item-mode') === m) return;\n        $wrap.attr('data-item-mode', m);\n        $wrap.find('.addon-item-mode-btn').each(function() {\n            var $b = $(this);\n            var on = $b.attr('data-item-mode') === m;\n            $b.toggleClass('is-active', on);\n            $b.css({ 'background': on ? '#fff' : 'transparent', 'color': on ? '#1B2A4A' : '#6B7B8D', 'box-shadow': on ? '0 1px 3px rgba(27,42,74,0.1)' : 'none' });\n        });\n        updateTotal();\n    });\n\n    \/\/ v11 \u2014 the subscription start-date picker was removed (fixed at +30 days),\n    \/\/ so there's no longer a change handler for it.\n\n    \/\/ Main addon functionality - quantity controls\n    $('.secure-addon-display').each(function() {\n        var container = $(this);\n\n        \/\/ \"Add\" button click \u2014 sets qty to 1 and reveals qty controls\n        container.find('.addon-add-btn').click(function() {\n            var card = $(this).closest('.addon-item-card');\n            var group = $(this).closest('.addon-qty-group');   \/\/ v9 \u2014 scope to THIS stepper\n            var input = group.find('.addon-qty');\n            var addBtn = $(this);\n            var qtyControl = group.find('.addon-quantity-control');\n\n            \/\/ v7.4 multiplier: when min_qty > 1, the FIRST \"Add\" jumps to the\n            \/\/ minimum quantity (e.g., min=3 \u2192 qty=3). Subsequent \"+\" clicks add\n            \/\/ 1 normally. Defaults to qty=1 when there's no minimum.\n            \/\/ v11 \u2014 dropped the `multiplier-enabled` gate: data-min is the\n            \/\/ EFFECTIVE minimum already resolved server-side (page default \/\n            \/\/ per-role \/ per-addon override), and it's the same number the\n            \/\/ server enforces. Gating on the page toggle meant an addon with\n            \/\/ its own Min Qty on a page with the multiplier OFF added qty 1 and\n            \/\/ then got rejected server-side with \"Invalid quantity\".\n            var minQty  = parseInt(card.data('min')) || 0;\n            var firstAdd = (minQty > 1) ? minQty : 1;\n\n            input.val(firstAdd);\n            addBtn.hide();\n            qtyControl.css('display', 'flex');\n            group.find('.qty-btn.minus').prop('disabled', false);\n\n            \/\/ Trigger input change to update totals\n            input.trigger('input');\n        });\n\n        container.find('.qty-btn').click(function() {\n            var card = $(this).closest('.addon-item-card');\n            var group = $(this).closest('.addon-qty-group');   \/\/ v9 \u2014 scope to THIS stepper\n            var input = group.find('.addon-qty');\n            var val = parseInt(input.val()) || 0;\n            var min = parseInt(card.data('min')) || 0;\n            var max = parseInt(card.data('max')) || 999;\n            \/\/ Effective \"below this = remove\" threshold. With no minimum the\n            \/\/ boundary is 1 (qty=1 \u2192 \"\u2212\" \u2192 qty=0 removes). With min>1, dropping\n            \/\/ below min removes the addon outright (qty \u2192 0) since values\n            \/\/ 1..min-1 are not allowed. v11 \u2014 matches the Add handler above:\n            \/\/ keyed on the RESOLVED data-min, not the page multiplier toggle.\n            var removeBelow = (min > 1) ? min : 1;\n\n            if ($(this).hasClass('plus') && val < max) {\n                input.val(val + 1);\n                if (val === 0) {\n                    group.find('.qty-btn.minus').prop('disabled', false);\n                }\n                if (val + 1 >= max) {\n                    $(this).prop('disabled', true);\n                }\n            } else if ($(this).hasClass('minus') && val > 0) {\n                \/\/ If decrementing would land below the allowed floor, jump\n                \/\/ straight to 0 (remove the addon and restore the Add button).\n                var nextVal = (val - 1 < removeBelow) ? 0 : (val - 1);\n                input.val(nextVal);\n                if (nextVal === 0) {\n                    group.find('.addon-quantity-control').hide();\n                    group.find('.addon-add-btn').show();\n                }\n                group.find('.qty-btn.plus').prop('disabled', false);\n            }\n\n            \/\/ Sync variation qty map for variable product cards (one group only)\n            if (card.data('is-variable')) {\n                var curVar = card.attr('data-selected-variation');\n                if (curVar) {\n                    var maps = window._getVarMaps(card);\n                    var newQty = parseInt(input.val()) || 0;\n                    if (newQty > 0) {\n                        maps.qtyMap[curVar] = newQty;\n                    } else {\n                        delete maps.qtyMap[curVar];\n                        delete maps.labelMap[curVar];\n                    }\n                    window._updateVarSummary(card);\n                }\n            }\n\n            updateTotal();\n        });\n\n        \/\/ Handle direct input - allow users to type quantity\n        container.find('.addon-qty').on('input change', function() {\n            var input = $(this);\n            var card = input.closest('.addon-item-card');\n            var group = input.closest('.addon-qty-group');   \/\/ v9 \u2014 scope to THIS stepper\n            var val = parseInt(input.val());\n            var min = parseInt(card.data('min')) || 0;\n            var max = parseInt(card.data('max')) || 999;\n\n            \/\/ Remove non-numeric characters\n            var cleanVal = input.val().replace(\/[^0-9]\/g, '');\n\n            \/\/ Parse to integer\n            val = parseInt(cleanVal) || 0;\n\n            \/\/ Enforce limits\n            if (val < 0) val = 0;\n            if (val > max) val = max;\n\n            \/\/ Update input value\n            input.val(val);\n\n            \/\/ Update button states\n            var minusBtn = group.find('.qty-btn.minus');\n            var plusBtn = group.find('.qty-btn.plus');\n\n            if (val === 0) {\n                \/\/ Switch back to Add button\n                group.find('.addon-quantity-control').hide();\n                group.find('.addon-add-btn').show();\n            } else {\n                minusBtn.prop('disabled', false);\n            }\n\n            if (val >= max) {\n                plusBtn.prop('disabled', true);\n            } else {\n                plusBtn.prop('disabled', false);\n            }\n\n            \/\/ Sync variation qty map for variable product cards (one group only)\n            if (card.data('is-variable')) {\n                var curVar = card.attr('data-selected-variation');\n                if (curVar) {\n                    var maps = window._getVarMaps(card);\n                    if (val > 0) {\n                        maps.qtyMap[curVar] = val;\n                    } else {\n                        delete maps.qtyMap[curVar];\n                        delete maps.labelMap[curVar];\n                    }\n                    window._updateVarSummary(card);\n                }\n            }\n\n            \/\/ Update totals\n            updateTotal();\n        });\n    });\n    \n    \/\/ Watch for currency changes from the main currency switcher\n    $(document).on('store_currency_changed', function(event, currency) {\n        console.log('Currency changed to: ' + currency);\n        updateAddonPricesForCurrency();\n    });\n    \n    \/\/ Check every 500ms if currency has changed (backup method)\n    var lastCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n    setInterval(function() {\n        var currentCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n        if (currentCurrency !== lastCurrency) {\n            console.log('Currency change detected: ' + lastCurrency + ' -> ' + currentCurrency);\n            lastCurrency = currentCurrency;\n            updateAddonPricesForCurrency();\n        }\n    }, 500);\n    \n    \/\/ Initial setup \u2014 run IMMEDIATELY at ready so non-USD visitors never see the\n    \/\/ USD\u2192local-currency price flash. Safe: the storeConversionRates fallback is\n    \/\/ seeded at the top of this ready block, and updateAddonPricesForCurrency is\n    \/\/ a no-op rewrite for USD. The 500ms + window-load re-runs stay as safety\n    \/\/ nets for late-loading currency data from the switcher plugin.\n    updateAddonPricesForCurrency();\n    updateTotal();\n    setTimeout(function() {\n        updateAddonPricesForCurrency();\n        updateTotal();\n    }, 500);\n\n    \/\/ Update when window fully loads\n    $(window).on('load', function() {\n        setTimeout(function() {\n            updateAddonPricesForCurrency();\n            updateTotal();\n        }, 100);\n    });\n    \n    \/\/ ============================================\n    \/\/ VARIATION SELECTOR HANDLER (Multi-Variation Per Card)\n    \/\/ Allows adding multiple variations from the same product:\n    \/\/ e.g., \"50 PCS \u00d77\" + \"25 PCS \u00d73\" in one addon card\n    \/\/ ============================================\n    \n    \/\/ v11 \u2014 _getVarMaps() \/ _updateVarSummary() were HOISTED to just above\n    \/\/ updateTotal() (search \"VARIATION MAP HELPERS\"). Defining them here meant\n    \/\/ they landed AFTER the bootstrap updateAddonPricesForCurrency() call, which\n    \/\/ threw \"window._getVarMaps is not a function\" on any page with a variable\n    \/\/ add-on and aborted the rest of this script \u2014 leaving the change handler\n    \/\/ below unbound. Do NOT move them back down.\n\n    \/\/ Variation dropdown change\n    $(document).on('change', '.addon-variation-select', function() {\n        var $select = $(this);\n        var $card = $select.closest('.addon-item-card');\n        if (!$card.data('is-variable')) return;\n        \n        var maps = window._getVarMaps($card);\n        \n        \/\/ Save current qty to the PREVIOUS variation before switching\n        var prevVarId = $card.attr('data-selected-variation');\n        if (prevVarId) {\n            var currentQty = parseInt($card.find('.addon-qty').val()) || 0;\n            if (currentQty > 0) {\n                maps.qtyMap[prevVarId] = currentQty;\n            } else {\n                delete maps.qtyMap[prevVarId];\n                delete maps.labelMap[prevVarId];\n            }\n        }\n        \n        \/\/ Mark select visual state\n        $select.toggleClass('selected', !!$select.val());\n        \n        \/\/ Collect all selected attributes\n        var selectedAttributes = {};\n        var allSelected = true;\n        $card.find('.addon-variation-select').each(function() {\n            var attrName = $(this).data('attribute');\n            var attrValue = $(this).val();\n            if (!attrValue) allSelected = false;\n            selectedAttributes[attrName] = attrValue;\n        });\n        \n        var $status = $card.find('.addon-variation-status');\n        var $qtyControl = $card.find('.addon-quantity-control');\n        \n        if (!allSelected) {\n            $card.attr('data-selected-variation', '');\n            $card.removeAttr('data-inv-var-out');\n            $status.html('<span class=\"variation-prompt\">' + (secure_addons_ajax.i18n.select_options || 'Select options') + '<\/span>');\n            $qtyControl.removeClass('variation-unlocked').addClass('variation-locked');\n            $qtyControl.find('.addon-qty').prop('disabled', true).val(0);\n            $qtyControl.find('.qty-btn').prop('disabled', true);\n            window._updateVarSummary($card);\n            updateTotal();\n            return;\n        }\n        \n        \/\/ Find matching variation from JSON data\n        var variations = $card.data('variations') || [];\n        var matched = null;\n        for (var i = 0; i < variations.length; i++) {\n            var v = variations[i];\n            var isMatch = true;\n            for (var attrKey in selectedAttributes) {\n                var selVal = selectedAttributes[attrKey];\n                var varVal = v.attributes[attrKey] || '';\n                if (varVal !== '' && varVal !== selVal) { isMatch = false; break; }\n            }\n            \/\/ inv_out = location stock for the visitor's country can't cover the card\n            \/\/ minimum (only present on location-managed variations).\n            if (isMatch && v.is_in_stock && !v.inv_out) { matched = v; break; }\n        }\n\n        if (matched) {\n            var varId = String(matched.variation_id);\n            $card.attr('data-selected-variation', varId);\n            $card.removeAttr('data-inv-var-out');\n\n            \/\/ Per-location stock: the stepper ceiling follows THIS variation's stock\n            \/\/ for the visitor's country. data-max-config only exists when some\n            \/\/ variation is location-managed; .data() is cached by jQuery, so set both.\n            var cfgMaxRaw = $card.attr('data-max-config');\n            if (cfgMaxRaw !== undefined) {\n                var cfgMax = parseInt(cfgMaxRaw, 10) || 0;\n                var effMax = (typeof matched.inv_max === 'number')\n                    ? (cfgMax > 0 ? Math.min(cfgMax, matched.inv_max) : matched.inv_max)\n                    : cfgMaxRaw;\n                $card.attr('data-max', effMax).data('max', effMax);\n                $card.find('.addon-qty').attr('max', effMax);\n            }\n            \n            \/\/ Build readable label from selected option texts\n            var labelParts = [];\n            $card.find('.addon-variation-select').each(function() {\n                if ($(this).val()) labelParts.push($(this).find('option:selected').text());\n            });\n            maps.labelMap[varId] = labelParts.join(', ');\n            \n            \/\/ Store price data for this variation\n            maps.priceMap[varId] = { usd: matched.display_price };\n            for (var key in matched) {\n                if (key.indexOf('price_') === 0) maps.priceMap[varId][key] = matched[key];\n            }\n            \n            \/\/ Load this variation's stored qty (0 if first time selecting it)\n            var storedQty = maps.qtyMap[varId] || 0;\n            $card.find('.addon-qty').val(storedQty).prop('disabled', false);\n\n            \/\/ Toggle Add button vs qty controls based on stored qty\n            if (storedQty > 0) {\n                $card.find('.addon-add-btn').hide();\n                $card.find('.addon-quantity-control').css('display', 'flex');\n            } else {\n                $card.find('.addon-quantity-control').hide();\n                $card.find('.addon-add-btn').show().prop('disabled', false);\n            }\n            \n            \/\/ Update price display for current variation\n            var varPrice = matched.display_price;\n            $card.attr('data-usd-price', varPrice);\n            $card.attr('data-price', varPrice);\n            \n            var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n            var curKey = selectedCurrency.toLowerCase();\n            var ccCodes = window.customCurrencyCodes || [];\n            var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n            if (matched['price_' + curKey]) $card.attr('data-price-' + curKey, matched['price_' + curKey]);\n            \n            var displayPrice = varPrice;\n            if (isCustomCurrency && matched['price_' + curKey]) {\n                displayPrice = matched['price_' + curKey];\n            } else if (selectedCurrency !== 'USD') {\n                var rate = window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1;\n                displayPrice = varPrice * rate;\n            }\n            var symbol = currencySymbols[selectedCurrency] || '$';\n            $card.find('.addon-price-current').html('<span class=\"woocommerce-Price-amount amount\">' + symbol + Number(displayPrice).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}) + '<\/span>');\n            \n            \/\/ Update image if variation has one\n            if (matched.image_url) $card.find('.addon-image-wrapper img').attr('src', matched.image_url);\n            \n            \/\/ Update status and unlock qty\n            $status.html('<span class=\"variation-matched\">\u2713 ' + (secure_addons_ajax.i18n.variation_selected || 'Selected') + '<\/span>');\n            $qtyControl.removeClass('variation-locked').addClass('variation-unlocked');\n            $qtyControl.find('.qty-btn.plus').prop('disabled', false);\n            \/\/ Unlock the Add button for variable products\n            $card.find('.addon-add-btn').removeClass('variation-locked').prop('disabled', false);\n        } else {\n            $card.attr('data-selected-variation', '');\n            \/\/ The combination exists but the visitor's country can't get it \u2192 say so\n            \/\/ (\"Agotado en tu pa\u00eds\") instead of the generic \"Combination unavailable\".\n            var invOut = false;\n            for (var j = 0; j < variations.length; j++) {\n                var w = variations[j];\n                if (!w.inv_out) continue;\n                var wMatch = true;\n                for (var wKey in selectedAttributes) {\n                    var wVal = w.attributes[wKey] || '';\n                    if (wVal !== '' && wVal !== selectedAttributes[wKey]) { wMatch = false; break; }\n                }\n                if (wMatch) { invOut = true; break; }\n            }\n            if (invOut) {\n                $card.attr('data-inv-var-out', '1');\n                $status.html($('<span class=\"variation-unavailable variation-inv-out\"><\/span>').text($card.attr('data-inv-oos-msg') || 'Out of stock in your country'));\n            } else {\n                $card.removeAttr('data-inv-var-out');\n                $status.html('<span class=\"variation-unavailable\">' + (secure_addons_ajax.i18n.variation_unavailable || 'Combination unavailable') + '<\/span>');\n            }\n            $qtyControl.removeClass('variation-unlocked').addClass('variation-locked');\n            $qtyControl.find('.addon-qty').prop('disabled', true).val(0);\n            $qtyControl.find('.qty-btn').prop('disabled', true);\n        }\n        \n        window._updateVarSummary($card);\n        updateTotal();\n    });\n\n    \/\/ \u2500\u2500 v11 \u2014 SYNC variation selects on load \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n    \/\/ The `change` handler above is the ONLY thing that unlocks a variable\n    \/\/ add-on's \"Add\" button, and nothing fired it at init. So a <select> that\n    \/\/ already holds a value when the page renders left the button stuck on\n    \/\/ \"Select options above\" forever \u2014 exactly what happens when the browser\n    \/\/ RESTORES form state on reload \/ back-navigation (Chrome, Firefox, Safari\n    \/\/ all do this). We also auto-pick an attribute that offers exactly ONE real\n    \/\/ choice, so single-variation products (e.g. \"10 Bags\") are addable without\n    \/\/ making the customer \"select\" the only option there is.\n    window._syncAddonVariations = function($scope) {\n        var $root = ($scope && $scope.length) ? $scope : $(document);\n        $root.find('.addon-item-card[data-is-variable=\"1\"]').each(function() {\n            var $card = $(this);\n            var $selects = $card.find('.addon-variation-select');\n            if (!$selects.length) return;\n            var needsSync = false;\n            $selects.each(function() {\n                var $sel = $(this);\n                if ($sel.val()) {\n                    needsSync = true;   \/\/ browser restored a value \u2192 re-sync state\n                    return;\n                }\n                \/\/ option[value=\"\"] is the placeholder \u2014 count only REAL choices.\n                var $real = $sel.find('option').filter(function() { return this.value !== ''; });\n                if ($real.length === 1) {\n                    $sel.val($real.first().val());\n                    needsSync = true;\n                }\n            });\n            \/\/ One trigger is enough \u2014 the handler re-reads every select on the card.\n            if (needsSync) $selects.first().trigger('change');\n        });\n    };\n    $(function() { window._syncAddonVariations(); });\n\n    \/\/ Remove a variation from the summary tags\n    $(document).on('click', '.var-tag-remove', function(e) {\n        e.stopPropagation();\n        var $card = $(this).closest('.addon-item-card');\n        var varId = String($(this).data('var-id'));\n        var maps = window._getVarMaps($card);\n        \n        delete maps.qtyMap[varId];\n        delete maps.labelMap[varId];\n        \n        \/\/ If removing the currently displayed variation, reset qty\n        if ($card.attr('data-selected-variation') === varId) {\n            $card.find('.addon-qty').val(0);\n            $card.find('.qty-btn.minus').prop('disabled', true);\n        }\n        \n        window._updateVarSummary($card);\n        updateTotal();\n    });\n    \n    \/\/ ============================================\n    \/\/ CHECKOUT BUTTON CLICK HANDLER (inside summary card)\n    \/\/ ============================================\n    \/* \u2500\u2500 SHIPPING + TAX ESTIMATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n       Asks the server for a shipping cost and tax based on the address already on\n       the customer's account, so the summary shows a real total before checkout.\n\n       Debounced, and every in-flight request carries a sequence number so a slow\n       early reply cannot overwrite a newer one \u2014 the quantity steppers fire fast and\n       an out-of-order response would otherwise paint a total for a cart the customer\n       has already changed. *\/\n    (function(){\n        var timer = null, seq = 0, lastKey = '', firstRun = true;\n\n        function readSelection(container) {\n            var addons = {}, variations = {};\n            container.find('.addon-item-card').each(function(){\n                var $c = $(this), id = parseInt($c.data('addon-id'), 10);\n                if (!id) return;\n                if ($c.data('is-variable') == true && typeof window._getVarMaps === 'function') {\n                    var m = window._getVarMaps($c);\n                    for (var v in m.qtyMap) {\n                        if (m.qtyMap[v] > 0) {\n                            if (!variations[id]) variations[id] = {};\n                            variations[id][v] = m.qtyMap[v];\n                        }\n                    }\n                } else {\n                    var q = 0;\n                    $c.find('.addon-qty').each(function(){ q += parseInt($(this).val(), 10) || 0; });\n                    if (q > 0) addons[id] = (addons[id] || 0) + q;\n                }\n            });\n            return { addons: addons, variations: variations };\n        }\n\n        function paint(container, data, symbol, rate) {\n            var $block = container.find('.addon-estimate-block');\n            var $pend  = container.find('.addon-estimate-pending');\n            var $btn   = container.find('.summary-secure-checkout-btn');\n\n            if (!data || !data.has_address || !(data.subtotal > 0.005)) {\n                $block.hide();\n                $pend.toggle(!!(data && !data.has_address && data.subtotal > 0.005));\n                return;\n            }\n\n            var ship  = (parseFloat(data.shipping) || 0) * rate;\n            var tax   = (parseFloat(data.tax) || 0) * rate;\n            var grand = (parseFloat(data.grand_total) || 0) * rate;\n\n            container.find('.addon-est-shipping-value')\n                .text(ship > 0.005 ? symbol + (typeof saaFmt === 'function' ? saaFmt(ship) : ship.toFixed(2))\n                                   : (secure_addons_ajax.lang === 'es' ? 'Gratis' : 'Free'));\n            container.find('.addon-est-method').text(data.shipping_label || '');\n            if (tax > 0.005) {\n                container.find('.addon-est-tax-value').text(symbol + (typeof saaFmt === 'function' ? saaFmt(tax) : tax.toFixed(2)));\n                container.find('.addon-est-tax').show();\n            } else {\n                container.find('.addon-est-tax').hide();\n            }\n            container.find('.addon-est-grand-value').text(symbol + (typeof saaFmt === 'function' ? saaFmt(grand) : grand.toFixed(2)));\n            $pend.hide();\n            $block.show();\n\n            \/\/ Button shows what they will actually pay.\n            if ($btn.length && $btn.data('saa-hasany')) {\n                var tpl = $btn.data('saa-tpl') || '';\n                if (tpl) $btn.find('.btn-text').text(tpl.replace('%s', symbol + (typeof saaFmt === 'function' ? saaFmt(grand) : grand.toFixed(2))));\n            }\n        }\n\n        window.__saaScheduleEstimate = function(container, symbol, rate) {\n            if (!container || !container.length) return;\n            var usd = parseFloat(container.find('.addon-total').data('usd-total')) || 0;\n            var sel = readSelection(container);\n\n            \/\/ Skip identical repeats \u2014 updateTotal() runs on a lot of events.\n            var key = usd.toFixed(2) + '|' + JSON.stringify(sel);\n            if (key === lastKey) return;\n            lastKey = key;\n\n            if (usd <= 0.005) {\n                paint(container, { has_address: true, subtotal: 0 }, symbol, rate);\n                return;\n            }\n\n            \/\/ The account has an address, so shipping and tax WILL be added. Say so\n            \/\/ straight away instead of letting the button state the bare subtotal and\n            \/\/ then jump once the estimate lands.\n            if (container.attr('data-has-address') === '1' &&\n                !container.find('.addon-estimate-block').is(':visible')) {\n                var dots = (secure_addons_ajax.lang === 'es') ? 'Calculando\u2026' : 'Calculating\u2026';\n                container.find('.addon-est-shipping-value, .addon-est-grand-value').text(dots);\n                container.find('.addon-est-tax').hide();\n                container.find('.addon-estimate-pending').hide();\n                container.find('.addon-estimate-block').show();\n            }\n\n            clearTimeout(timer);\n            \/\/ First paint fires immediately; only later edits are debounced.\n            var wait = firstRun ? 0 : 500;\n            firstRun = false;\n            timer = setTimeout(function(){\n                var mine = ++seq;\n                $.ajax({\n                    url: secure_addons_ajax.ajax_url,\n                    type: 'POST',\n                    data: {\n                        action: 'secure_addon_estimate_totals',\n                        nonce: secure_addons_ajax.nonce,\n                        main_product_id: container.data('product-id'),\n                        subtotal_usd: usd,\n                        addons: JSON.stringify(sel.addons),\n                        addon_variations: JSON.stringify(sel.variations)\n                    },\n                    success: function(r){\n                        if (mine !== seq) return;            \/\/ a newer request won\n                        if (r && r.success) paint(container, r.data, symbol, rate);\n                    }\n                    \/\/ On failure the previous numbers are left alone rather than\n                    \/\/ flashing an error into a checkout summary.\n                });\n            }, wait);\n        };\n    })();\n\n    $(document).on('click', '.summary-checkout-section .summary-secure-checkout-btn', function() {\n        var btn = $(this);\n        var productId = btn.data('product-id');\n        var container = $('.secure-addon-display[data-product-id=\"' + productId + '\"]');\n\n        \/\/ Prevent double clicks\n        if (btn.hasClass('loading')) return;\n\n        \/\/ Per-location stock: the host or required product can't be supplied in the\n        \/\/ visitor's country, so no selection can reach checkout \u2014 the server refuses\n        \/\/ the commit too; say why up-front instead of spinning for nothing.\n        var invBlockedMsg = container.attr('data-inv-blocked-msg');\n        if (invBlockedMsg) {\n            showAddonModal({ type: 'error', title: (secure_addons_ajax.lang === 'es' ? 'No disponible' : 'Unavailable'), message: invBlockedMsg });\n            return;\n        }\n\n        \/\/ Show loading state\n        btn.addClass('loading');\n        var originalText = btn.find('.btn-text').text();\n        btn.find('.btn-text').text(secure_addons_ajax.i18n.processing || 'Processing...');\n        \n        \/\/ Get validation limits (USD baseline) \u2014 v7.6 mode-aware.\n        var _isSubMode = container.find('.addon-mode-toggle').attr('data-current-mode') === 'subscription';\n        var minTotalUSD = (_isSubMode ? parseFloat(container.data('min-total-sub')) : 0) || parseFloat(container.data('min-total')) || 0;\n        var maxTotalUSD = (_isSubMode ? parseFloat(container.data('max-total-sub')) : 0) || parseFloat(container.data('max-total')) || 0;\n\n        \/\/ Calculate totals\n        var usdTotal = 0;\n        var usdTotalForMinimum = 0;\n        var displayTotal = 0;\n        var displayTotalForMinimum = 0;\n        var addons = {};\n        var addonSubscribeQtys = {};   \/\/ v9 \u2014 subscription bucket qtys { pid: qty }\n        var oneUsdMin = 0, oneDisplayMin = 0, subUsdMin = 0, subDisplayMin = 0;  \/\/ v9 dual-min buckets\n        var hasAddons = false;\n\n        \/\/ Get current currency info\n        var selectedCurrency = localStorage.getItem('store_selected_currency') || 'USD';\n        var rate = window.storeConversionRates ? (window.storeConversionRates[selectedCurrency] || 1) : 1;\n        var ccCodes = window.customCurrencyCodes || [];\n        var isCustomCurrency = ccCodes.indexOf(selectedCurrency) !== -1;\n        var curPriceKey = 'price-' + selectedCurrency.toLowerCase();\n        var symbol = currencySymbols[selectedCurrency] || selectedCurrency + ' ';\n\n        \/\/ Collect addon quantities and calculate totals\n        var addonVariations = {}; \/\/ Maps addon product_id \u2192 { variation_id: qty, ... }\n        var hasUnselectedVariation = false;\n\n        container.find('.addon-item-card').each(function() {\n            var $c = $(this);\n            var addonId = $c.data('addon-id');\n            var oneQty = parseInt($c.find('.addon-qty-group-onetime .addon-qty').val()) || 0;   \/\/ v9 one-time bucket\n            var isSubscribableCard = String($c.data('subscribable')) === '1';\n            var subQtyC = isSubscribableCard ? (parseInt($c.find('.addon-qty-group-subscription .addon-qty').val()) || 0) : 0;   \/\/ v9 subscription bucket\n            var excludeFromMinimum = $c.data('exclude-from-minimum') == '1';\n            var usdPrice = parseFloat($c.data('usd-price')) || 0;\n            var autoshipUsdC = parseFloat($c.data('autoship-usd-price')) || parseFloat($c.data('autoship-price')) || 0;\n            var isVariable = $c.data('is-variable') == true;\n\n            var displayPrice;\n            if (isCustomCurrency) {\n                var cp = parseFloat($c.data(curPriceKey));\n                displayPrice = (cp && cp > 0) ? cp : usdPrice * rate;\n            } else {\n                displayPrice = usdPrice * rate;\n            }\n\n            if (isVariable) {\n                \/\/ Variable products are ONE-TIME only (single group). Collect variations.\n                var maps = window._getVarMaps($c);\n                var varHasItems = false;\n                for (var vId in maps.qtyMap) {\n                    var vQty = maps.qtyMap[vId];\n                    if (vQty > 0 && maps.priceMap[vId]) {\n                        varHasItems = true;\n                        if (!addonVariations[addonId]) addonVariations[addonId] = {};\n                        addonVariations[addonId][vId] = vQty;\n                        var vUsdPrice = maps.priceMap[vId].usd || 0;\n                        var vDisplayPrice = (isCustomCurrency && maps.priceMap[vId]['price_' + selectedCurrency.toLowerCase()]) ? maps.priceMap[vId]['price_' + selectedCurrency.toLowerCase()] : (vUsdPrice * rate);\n                        usdTotal += vQty * vUsdPrice;\n                        displayTotal += vQty * vDisplayPrice;\n                        if (!excludeFromMinimum) {\n                            usdTotalForMinimum += vQty * vUsdPrice;\n                            displayTotalForMinimum += vQty * vDisplayPrice;\n                            oneUsdMin += vQty * vUsdPrice; oneDisplayMin += vQty * vDisplayPrice;\n                        }\n                    }\n                }\n                if (varHasItems) hasAddons = true;\n            } else {\n                \/\/ Simple product \u2014 ONE-TIME bucket.\n                if (oneQty > 0) {\n                    hasAddons = true;\n                    addons[addonId] = oneQty;\n                    usdTotal += oneQty * usdPrice;\n                    displayTotal += oneQty * displayPrice;\n                    if (!excludeFromMinimum) {\n                        usdTotalForMinimum += oneQty * usdPrice;\n                        displayTotalForMinimum += oneQty * displayPrice;\n                        oneUsdMin += oneQty * usdPrice; oneDisplayMin += oneQty * displayPrice;\n                    }\n                }\n                \/\/ Simple product \u2014 SUBSCRIPTION bucket (sized by the recurring\/autoship value).\n                if (subQtyC > 0 && autoshipUsdC > 0) {\n                    hasAddons = true;\n                    addonSubscribeQtys[addonId] = subQtyC;\n                    var subDisplayC = autoshipUsdC * rate;\n                    usdTotal += subQtyC * autoshipUsdC;\n                    displayTotal += subQtyC * subDisplayC;\n                    if (!excludeFromMinimum) {\n                        usdTotalForMinimum += subQtyC * autoshipUsdC;\n                        displayTotalForMinimum += subQtyC * subDisplayC;\n                        subUsdMin += subQtyC * autoshipUsdC; subDisplayMin += subQtyC * subDisplayC;\n                    }\n                }\n            }\n        });\n        \n        \/\/ Validation\n        if (!hasAddons) {\n            showAddonModal({ type: 'info', title: secure_addons_ajax.i18n.select_addon || 'No items selected', message: secure_addons_ajax.i18n.add_more_items || 'Please select at least one add-on item to continue.' });\n            btn.removeClass('loading');\n            btn.find('.btn-text').text(originalText);\n            return;\n        }\n\n        \/\/ v9 \u2014 a subscription bills $0 TODAY (deferred to the chosen start date).\n        \/\/ Require at least one ONE-TIME item alongside any subscription, so the\n        \/\/ customer can't check out with a subscription-only ($0-today) order.\n        var _hasOneTimeSel = Object.keys(addons).length > 0 || Object.keys(addonVariations).length > 0;\n        var _hasSubSel     = Object.keys(addonSubscribeQtys).length > 0;\n        if (_hasSubSel && !_hasOneTimeSel) {\n            var _esOne = (secure_addons_ajax.lang === 'es');\n            showAddonModal({\n                type: 'warning',\n                title: (_esOne ? 'Agrega un producto para hoy' : 'Add an item for today'),\n                message: (_esOne\n                    ? 'Tu suscripci\u00f3n se cobra en 30 d\u00edas, no hoy. Agrega al menos un producto a tu Pedido de hoy para continuar.'\n                    : 'Your subscription is billed in 30 days, not today. Add at least one item to your Today\\'s order to continue.')\n            });\n            btn.removeClass('loading');\n            btn.find('.btn-text').text(originalText);\n            return;\n        }\n\n        \/\/ Check for currency-specific min\/max overrides \u2014 v7.6 mode-aware\n        \/\/ (sub-currency wins, else one-time currency).\n        var curLower = selectedCurrency.toLowerCase();\n        var curMinVal = ((_isSubMode ? parseFloat(container.data('min-total-sub-' + curLower)) : 0) || parseFloat(container.data('min-total-' + curLower))) || 0;\n        var curMaxVal = ((_isSubMode ? parseFloat(container.data('max-total-sub-' + curLower)) : 0) || parseFloat(container.data('max-total-' + curLower))) || 0;\n        var hasCurrencyMin = selectedCurrency !== 'USD' && curMinVal > 0;\n        var hasCurrencyMax = selectedCurrency !== 'USD' && curMaxVal > 0;\n\n        \/\/ Minimum-bypass product (OR): waive the minimum when it's in the cart.\n        var mbPid = parseInt(container.data('min-bypass-product')) || 0;\n        var mbBypassed = false;\n        if (mbPid > 0) {\n            if (mbPid === (parseInt(container.data('product-id')) || 0)) {\n                mbBypassed = true;\n            } else {\n                var $mbC = container.find('.addon-item-card[data-addon-id=\"' + mbPid + '\"]');\n                if ($mbC.length) {\n                    if ((parseInt($mbC.find('.addon-qty').val()) || 0) > 0) {\n                        mbBypassed = true;\n                    } else if ($mbC.data('is-variable') == true && typeof window._getVarMaps === 'function') {\n                        var mbM = window._getVarMaps($mbC);\n                        for (var _mbv in mbM.qtyMap) { if (mbM.qtyMap[_mbv] > 0) { mbBypassed = true; break; } }\n                    }\n                }\n            }\n        }\n\n        \/\/ v9 dual-qty minimum validation \u2014 the ONE-TIME min applies to the one-time\n        \/\/ bucket and the SUBSCRIPTION min to the subscription bucket, each only when\n        \/\/ that bucket has items. The bypass product waives the ONE-TIME min ONLY.\n        var curLowerV = selectedCurrency.toLowerCase();\n        var oneMinUSD = parseFloat(container.data('min-total')) || 0;\n        var subMinUSD = parseFloat(container.data('min-total-sub')) || 0;\n        var oneMinCur = (selectedCurrency !== 'USD') ? (parseFloat(container.data('min-total-' + curLowerV)) || 0) : 0;\n        var subMinCur = (selectedCurrency !== 'USD') ? (parseFloat(container.data('min-total-sub-' + curLowerV)) || 0) : 0;\n        var _esL = (secure_addons_ajax.lang === 'es');\n\n        var failsMinimum = false;\n        var _minDetails = [];\n        \/\/ Bypass product waives the ONE-TIME minimum ONLY (not the subscription minimum).\n        if (!mbBypassed) {\n            if (oneUsdMin > 0) {\n                if (oneMinCur > 0 && oneDisplayMin < oneMinCur) {\n                    failsMinimum = true; _minDetails.push((_esL ? 'M\u00ednimo de compra \u00fanica: ' : 'One-time minimum: ') + symbol + (typeof saaFmt === 'function' ? saaFmt(oneMinCur) : oneMinCur.toFixed(2)));\n                } else if (oneMinCur <= 0 && oneMinUSD > 0 && oneUsdMin < oneMinUSD) {\n                    failsMinimum = true; _minDetails.push((_esL ? 'M\u00ednimo de compra \u00fanica: ' : 'One-time minimum: ') + symbol + (typeof saaFmt === 'function' ? saaFmt((oneMinUSD * rate)) : (oneMinUSD * rate).toFixed(2)));\n                }\n            }\n        }\n        \/\/ Subscription minimum ALWAYS applies \u2014 the bypass product does not waive it.\n        if (subUsdMin > 0) {\n            if (subMinCur > 0 && subDisplayMin < subMinCur) {\n                failsMinimum = true; _minDetails.push((_esL ? 'M\u00ednimo de suscripci\u00f3n: ' : 'Subscription minimum: ') + symbol + (typeof saaFmt === 'function' ? saaFmt(subMinCur) : subMinCur.toFixed(2)));\n            } else if (subMinCur <= 0 && subMinUSD > 0 && subUsdMin < subMinUSD) {\n                failsMinimum = true; _minDetails.push((_esL ? 'M\u00ednimo de suscripci\u00f3n: ' : 'Subscription minimum: ') + symbol + (typeof saaFmt === 'function' ? saaFmt((subMinUSD * rate)) : (subMinUSD * rate).toFixed(2)));\n            }\n        }\n        var minMsgDetail = _minDetails.join('  \u00b7  ');\n\n        if (failsMinimum) {\n            showAddonModal({ type: 'warning', title: secure_addons_ajax.i18n.min_required || 'Minimum total required', message: secure_addons_ajax.i18n.add_more_items || 'Please add more items to your selection.', detail: minMsgDetail + ' (' + selectedCurrency + ')' });\n            btn.removeClass('loading');\n            btn.find('.btn-text').text(originalText);\n            return;\n        }\n        \n        \/\/ Maximum validation\n        var failsMaximum = false;\n        var displayMaxAmount;\n        if (hasCurrencyMax) {\n            var currencyMax = curMaxVal;\n            displayMaxAmount = currencyMax;\n            failsMaximum = displayTotal > currencyMax;\n        } else if (maxTotalUSD > 0) {\n            displayMaxAmount = maxTotalUSD * rate;\n            failsMaximum = usdTotal > maxTotalUSD;\n        }\n\n        if (failsMaximum) {\n            showAddonModal({ type: 'error', title: secure_addons_ajax.i18n.max_exceeded || 'Maximum total exceeded', message: secure_addons_ajax.i18n.adjust_selection || 'Please adjust your selection.', detail: (secure_addons_ajax.i18n.maximum_allowed || 'Max:') + ' ' + symbol + (typeof saaFmt === 'function' ? saaFmt(displayMaxAmount) : displayMaxAmount.toFixed(2)) + ' (' + selectedCurrency + ')' });\n            btn.removeClass('loading');\n            btn.find('.btn-text').text(originalText);\n            return;\n        }\n\n        \/\/ Store the current currency selection\n        localStorage.setItem('addon_checkout_currency', selectedCurrency);\n        document.cookie = 'store_selected_currency=' + selectedCurrency + ';path=\/;max-age=3600';\n        \n        \/\/ v8 \u2014 per-item subscription modes: { \"<addon_id>\": \"subscription\"|\"onetime\" }\n        \/\/ Built from each eligible card's One-time \/ Subscribe toggle so the server\n        \/\/ commits each add-on in the mode the customer picked (mixed orders). Falls\n        \/\/ back to the page pill mode for any card missing an explicit toggle.\n        var addonModes = {};\n        container.find('.addon-item-card[data-subscribable=\"1\"]').each(function() {\n            var $c = $(this);\n            var aid = $c.data('addon-id');\n            if (aid === undefined || aid === null || aid === '') return;\n            var m = ($c.find('.addon-item-mode').attr('data-item-mode'))\n                    || (container.find('.addon-mode-toggle').attr('data-current-mode'))\n                    || 'onetime';\n            addonModes[aid] = (m === 'subscription') ? 'subscription' : 'onetime';\n        });\n\n        \/\/ AJAX POST to add items to cart (much more reliable than GET URL params)\n        $.ajax({\n            url: secure_addons_ajax.ajax_url,\n            type: 'POST',\n            data: {\n                action: 'secure_addon_add_to_cart',\n                nonce: secure_addons_ajax.nonce,\n                main_product_id: productId,\n                main_qty: 1,\n                addons: JSON.stringify(addons),\n                addon_variations: JSON.stringify(addonVariations),\n                currency: selectedCurrency,\n                rate: rate,\n                required_product_free: container.data('required-product-is-free') === '1' ? '1' : '0',\n                \/\/ v7.4: read the active mode from the toggle. Defaults to\n                \/\/ \"onetime\" when no toggle exists on this page (no addon was\n                \/\/ configured as subscribable, so the toggle isn't rendered).\n                subscription_mode: (container.find('.addon-mode-toggle').attr('data-current-mode') === 'subscription') ? '1' : '0',\n                \/\/ v8 \u2014 per-item modes (the server prefers this map over subscription_mode).\n                addon_modes: JSON.stringify(addonModes),\n                addon_subscribe_qtys: JSON.stringify(addonSubscribeQtys),   \/\/ v9 \u2014 subscription bucket\n                \/\/ Customer-chosen subscription start date (renewal anchor). The\n                \/\/ server validates + clamps it to [tomorrow, +1 month].\n                autoship_start_date: '' \/* v11 \u2014 fixed at +30 days server-side; no picker *\/\n            },\n            success: function(response) {\n                if (response.success && response.data.checkout_url) {\n                    \/\/ Redirect to checkout\n                    window.location.href = response.data.checkout_url;\n                } else {\n                    showAddonModal({ type: 'error', title: secure_addons_ajax.i18n.add_failed_title || 'Error', message: response.data?.message || secure_addons_ajax.i18n.add_failed_msg || 'Failed to add items to cart. Please try again.' });\n                    btn.removeClass('loading');\n                    btn.find('.btn-text').text(originalText);\n                }\n            },\n            error: function(xhr, status, error) {\n                console.error('Checkout AJAX error:', status, error);\n                showAddonModal({ type: 'error', title: secure_addons_ajax.i18n.conn_error_title, message: secure_addons_ajax.i18n.conn_error_msg });\n                btn.removeClass('loading');\n                btn.find('.btn-text').text(originalText);\n            }\n        });\n    });\n    \n    \/\/ Fallback for AJAX configuration if not set by WordPress\nif (typeof secure_addons_ajax === 'undefined') {\n    window.secure_addons_ajax = {\n        ajax_url: 'https:\/\/stage.ievolutionclub.com\/wp-admin\/admin-ajax.php',\n        nonce: '1909c8b490'\n    };\n}\n});\n\n\/\/ Mobile Bottom Sheet Toggle (GLOBAL scope)\nwindow.toggleMobileSheet = function(forceState) {\n    if (typeof jQuery === 'undefined') return;\n    var $ = jQuery;\n    \n    var $col = $('#addon-summary-column');\n    var $backdrop = $('#mobile-sheet-backdrop');\n    \n    var shouldExpand = (typeof forceState === 'boolean') ? forceState : !$col.hasClass('mobile-expanded');\n    \n    if (shouldExpand) {\n        \/\/ Detect sticky header height so sheet doesn't go behind it\n        var headerOffset = 16; \/\/ minimum gap below header\n        var stickyHeader = document.getElementById('customStickyHeader');\n        if (stickyHeader) {\n            var headerRect = stickyHeader.getBoundingClientRect();\n            \/\/ Header is fixed at top, so its bottom edge tells us how much space it takes\n            if (headerRect.bottom > 0) {\n                headerOffset = headerRect.bottom + 8; \/\/ 8px breathing room below header\n            }\n        }\n        \/\/ Also check body padding-top as fallback (common for fixed headers)\n        if (headerOffset < 20) {\n            var bodyPT = parseInt(window.getComputedStyle(document.body).paddingTop) || 0;\n            if (bodyPT > headerOffset) {\n                headerOffset = bodyPT + 8;\n            }\n        }\n        \n        \/\/ Set the CSS variable so expanded max-height = viewport - header\n        $col[0].style.setProperty('--sheet-header-offset', headerOffset + 'px');\n        \n        $col.addClass('mobile-expanded');\n        $backdrop.addClass('active');\n        \/\/ Robust body scroll lock (works on iOS Safari)\n        var scrollY = window.pageYOffset || document.documentElement.scrollTop;\n        document.body.style.position = 'fixed';\n        document.body.style.top = '-' + scrollY + 'px';\n        document.body.style.left = '0';\n        document.body.style.right = '0';\n        document.body.dataset.sheetScrollY = scrollY;\n        $('body').addClass('mobile-sheet-open');\n        \/\/ Scroll the card content to top when opening\n        $col.find('.addon-summary-card').scrollTop(0);\n    } else {\n        $col.removeClass('mobile-expanded');\n        $backdrop.removeClass('active');\n        \/\/ Restore body scroll position\n        var savedY = parseInt(document.body.dataset.sheetScrollY || '0');\n        document.body.style.position = '';\n        document.body.style.top = '';\n        document.body.style.left = '';\n        document.body.style.right = '';\n        window.scrollTo(0, savedY);\n        $('body').removeClass('mobile-sheet-open');\n    }\n};\n\n\/\/ Trigger scroll to Order Summary (desktop) or open sheet (mobile)\nwindow.triggerSecureCheckout = function() {\n    if (typeof jQuery === 'undefined') return;\n    var $ = jQuery;\n    \n    \/\/ On mobile, open the bottom sheet\n    if ($(window).width() <= 899) {\n        window.toggleMobileSheet(true);\n        return;\n    }\n    \n    \/\/ On desktop, scroll to the summary card\n    var $target = $('.addon-summary-card').not('.summary-hidden').first();\n    if ($target.length === 0) return;\n    \n    var targetOffset = $target.offset().top;\n    var scrollTarget = targetOffset - 20;\n    \n    $('html, body').animate({ scrollTop: scrollTarget }, 600, 'swing', function() {\n        $target.css('animation', 'pulse 0.6s ease-in-out 2');\n        setTimeout(function() { $target.css('animation', ''); }, 1200);\n    });\n};\n\n\/\/ Mobile sheet event handlers\nif (typeof jQuery !== 'undefined') {\n    jQuery(document).ready(function($) {\n        \/\/ Initially hide mobile bar (no items yet)\n        $('#addon-summary-column').addClass('mobile-hidden');\n        \n        \/\/ ============================================\n        \/\/ DESKTOP STICKY SIDEBAR \u2014 JS-based scroll tracking\n        \/\/ Works regardless of ancestor overflow settings\n        \/\/ ============================================\n        (function() {\n            if ($(window).width() <= 899) return;\n            \n            var $col = $('#addon-summary-column');\n            var $wrapper = $col.closest('.addon-layout-wrapper');\n            if (!$col.length || !$wrapper.length) return;\n            \n            var sidebarGap = 16; \/\/ Gap below the header\n            var ticking = false;\n            \n            \/\/ Detect sticky header height dynamically\n            function getHeaderHeight() {\n                var header = document.getElementById('customStickyHeader');\n                if (header) {\n                    var rect = header.getBoundingClientRect();\n                    \/\/ Only count if header is fixed\/sticky at top\n                    if (rect.top <= 0 && rect.bottom > 0) {\n                        return rect.bottom;\n                    }\n                }\n                \/\/ Fallback: check body padding-top (common for fixed headers)\n                var bodyPT = parseInt(window.getComputedStyle(document.body).paddingTop) || 0;\n                return bodyPT > 0 ? bodyPT : 0;\n            }\n            \n            \/\/ Create a placeholder to keep grid layout when column goes fixed\n            var $placeholder = $('<div class=\"addon-summary-placeholder\"><\/div>').css({\n                display: 'none',\n                width: $col.outerWidth() + 'px'\n            });\n            $col.after($placeholder);\n            \n            function updateSidebar() {\n                if ($(window).width() <= 899) {\n                    \/\/ Reset everything on mobile (the CSS max-height + bottom-sheet\n                    \/\/ layout take over there).\n                    $col.css({ position: '', top: '', left: '', right: '', width: '' });\n                    $col.find('.addon-summary-card').css('max-height', '');\n                    $placeholder.hide();\n                    return;\n                }\n\n                var headerH = getHeaderHeight();\n                var topOffset = headerH + sidebarGap;\n\n                \/\/ v10 auto-fit: cap the card to the space BELOW the sticky header so\n                \/\/ the pinned CTA is always on-screen (the CSS calc(100vh - 24px) can't\n                \/\/ know the JS-measured header offset). The inner .addon-summary-scroll\n                \/\/ then scrolls the items no matter how full the cart is.\n                $col.find('.addon-summary-card').css('max-height', Math.max(340, window.innerHeight - topOffset - 16) + 'px');\n                var scrollY = window.pageYOffset || document.documentElement.scrollTop;\n                \n                \/\/ Get wrapper position (accounts for current scroll)\n                var wrapperRect = $wrapper[0].getBoundingClientRect();\n                var wrapperTop = wrapperRect.top + scrollY;\n                var wrapperBottom = wrapperTop + $wrapper.outerHeight();\n                var wrapperRight = wrapperRect.right; \/\/ distance from left edge of viewport\n                var wrapperWidth = $wrapper.outerWidth();\n                \n                var colHeight = $col.outerHeight();\n                var colWidth = $placeholder.is(':visible') ? parseInt($placeholder.css('width')) : $col.outerWidth();\n                \n                \/\/ Calculate the RIGHT edge position of the sidebar in the grid\n                var viewportWidth = window.innerWidth;\n                var rightEdgeFromViewport = viewportWidth - wrapperRect.right;\n                \n                \/\/ Calculate the LEFT position of the sidebar column in the grid\n                \/\/ It's: wrapper left + wrapper width - column width - (wrapper has gap built into grid)\n                var colLeftInGrid = wrapperRect.left + wrapperWidth - colWidth;\n                \n                \/\/ The point where sidebar should start sticking\n                var stickyStart = wrapperTop;\n                \/\/ The point where sidebar should stop (bottom of wrapper minus sidebar height)\n                var stickyEnd = wrapperBottom - colHeight - topOffset;\n                \n                if (scrollY + topOffset < stickyStart) {\n                    \/\/ Above the wrapper \u2014 sidebar in natural position\n                    $col.css({ position: '', top: '', left: '', right: '', width: '' });\n                    $placeholder.hide();\n                } else if (scrollY + topOffset >= stickyStart && scrollY + topOffset <= stickyEnd) {\n                    \/\/ In the sticky zone \u2014 fixed to viewport\n                    $col.css({\n                        position: 'fixed',\n                        top: topOffset + 'px',\n                        left: colLeftInGrid + 'px',\n                        right: 'auto',\n                        width: colWidth + 'px',\n                        zIndex: 999\n                    });\n                    $placeholder.css({ display: 'block', width: colWidth + 'px', height: colHeight + 'px' });\n                } else if (scrollY + topOffset > stickyEnd) {\n                    \/\/ Past the bottom \u2014 anchor to bottom of wrapper (absolute within wrapper)\n                    $col.css({\n                        position: 'absolute',\n                        top: (wrapperBottom - wrapperTop - colHeight) + 'px',\n                        left: 'auto',\n                        right: '0px',\n                        width: colWidth + 'px',\n                        zIndex: 999\n                    });\n                    $placeholder.css({ display: 'block', width: colWidth + 'px', height: colHeight + 'px' });\n                }\n            }\n            \n            \/\/ Need wrapper to be relative for absolute positioning at bottom\n            $wrapper.css('position', 'relative');\n            \n            \/\/ Scroll listener with rAF throttle\n            window.addEventListener('scroll', function() {\n                if (!ticking) {\n                    requestAnimationFrame(function() {\n                        updateSidebar();\n                        ticking = false;\n                    });\n                    ticking = true;\n                }\n            }, { passive: true });\n            \n            \/\/ Resize listener\n            var resizeTimer;\n            $(window).on('resize', function() {\n                clearTimeout(resizeTimer);\n                resizeTimer = setTimeout(function() {\n                    \/\/ Reset and recalculate\n                    $col.css({ position: '', top: '', left: '', right: '', width: '' });\n                    $placeholder.hide();\n                    updateSidebar();\n                }, 150);\n            });\n            \n            \/\/ Recalculate when items change (quantity updates change sidebar height)\n            var observer = new MutationObserver(function() {\n                setTimeout(updateSidebar, 100);\n            });\n            observer.observe($col[0], { childList: true, subtree: true, characterData: true });\n            \n            \/\/ Initial calculation\n            setTimeout(updateSidebar, 200);\n            $(window).on('load', function() { setTimeout(updateSidebar, 300); });\n        })();\n        \n        \/\/ Tap handle bar or expand button to toggle sheet\n        $(document).on('click', '#mobile-sheet-handle', function(e) {\n            \/\/ v7.4 \u2014 the mobile mode toggle pill lives inside this handle,\n            \/\/ so a tap on a mode button must NOT also expand\/collapse the\n            \/\/ sheet. Skip the toggle when the click originated inside an\n            \/\/ .addon-mode-toggle (or any interactive child of one).\n            if ($(e.target).closest('.addon-mode-toggle').length) return;\n            \/\/ v7.4 \u2014 slim (empty-cart) mode shows only the toggle; the rest\n            \/\/ of the bar is gone, so there's nothing meaningful to expand.\n            if ($(this).hasClass('mobile-bar-empty')) return;\n            e.stopPropagation();\n            window.toggleMobileSheet();\n        });\n        \n        \/\/ Tap backdrop to close\n        $(document).on('click', '#mobile-sheet-backdrop', function() {\n            window.toggleMobileSheet(false);\n        });\n        \n        \/\/ ESC key to close\n        $(document).on('keydown', function(e) {\n            if (e.key === 'Escape' && $('#addon-summary-column').hasClass('mobile-expanded')) {\n                window.toggleMobileSheet(false);\n            }\n        });\n        \n        \/\/ Prevent body scroll when sheet is open (native handler for passive:false support)\n        document.body.addEventListener('touchmove', function(e) {\n            if (document.body.classList.contains('mobile-sheet-open')) {\n                var sheet = document.getElementById('addon-summary-column');\n                if (sheet && !sheet.contains(e.target)) {\n                    e.preventDefault();\n                }\n            }\n        }, { passive: false });\n        \n        \/\/ Add body class style for preventing scroll\n        if (!$('style#mobile-sheet-styles').length) {\n            $('head').append('<style id=\"mobile-sheet-styles\">' +\n                'body.mobile-sheet-open { overflow: hidden; }' +\n                '@keyframes pulse { ' +\n                    '0%, 100% { box-shadow: 0 4px 16px rgba(232, 89, 60, 0.15); } ' +\n                    '50% { box-shadow: 0 8px 20px rgba(232, 89, 60, 0.2); }' +\n                '}' +\n            '<\/style>');\n        }\n    });\n}\n<\/script>\n        \n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>WhatsApp Chat Bubble<\/title>\n    <style>\n        .whatsapp-container {\n            position: fixed;\n            bottom: 24px;\n            right: 24px;\n            z-index: 9999;\n            display: flex;\n            flex-direction: column;\n            align-items: flex-end;\n            gap: 12px;\n        }\n        .whatsapp-message {\n            background: white;\n            padding: 12px 16px;\n            border-radius: 12px;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            font-size: 14px;\n            color: #333;\n            max-width: 220px;\n            position: relative;\n            animation: fadeInUp 0.4s ease;\n        }\n        .whatsapp-message::after {\n            content: \"\";\n            position: absolute;\n            bottom: -8px;\n            right: 24px;\n            width: 0;\n            height: 0;\n            border-left: 8px solid transparent;\n            border-right: 8px solid transparent;\n            border-top: 8px solid white;\n        }\n        .whatsapp-message .close-btn {\n            position: absolute;\n            top: -8px;\n            right: -8px;\n            width: 20px;\n            height: 20px;\n            background: #ccc;\n            border: none;\n            border-radius: 50%;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 12px;\n            color: white;\n            transition: background 0.2s;\n        }\n        .whatsapp-message .close-btn:hover {\n            background: #999;\n        }\n        .whatsapp-bubble {\n            width: 60px;\n            height: 60px;\n            background-color: #25D366;\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);\n            transition: transform 0.2s ease, box-shadow 0.2s ease;\n            text-decoration: none;\n        }\n        .whatsapp-bubble:hover {\n            transform: scale(1.1);\n            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n        }\n        .whatsapp-bubble:active {\n            transform: scale(0.95);\n        }\n        .whatsapp-bubble svg {\n            width: 32px;\n            height: 32px;\n            fill: white;\n        }\n        @keyframes fadeInUp {\n            from {\n                opacity: 0;\n                transform: translateY(10px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        .whatsapp-message.hidden {\n            display: none;\n        }\n    <\/style>\n<\/head>\n<body>\n    <!-- WhatsApp Floating Container -->\n        <!-- Message Popup (hidden by default, shows after 10 seconds) -->\n            <button onclick=\"closeMessage()\" aria-label=\"Close\">\u00d7<\/button>\n        <!-- WhatsApp Bubble -->\n        <a id=\"whatsapp-link\" \n           target=\"_blank\" \n           rel=\"noopener noreferrer\"\n           aria-label=\"Chat on WhatsApp\">\n            <svg viewBox=\"0 0 24 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/>\n            <\/svg>\n        <\/a>\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>WhatsApp Chat Bubble \u00d7<\/p>","protected":false},"author":11,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"spb-full-width.php","meta":{"footnotes":""},"wf_page_folders":[],"class_list":["post-5879","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/pages\/5879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/comments?post=5879"}],"version-history":[{"count":49,"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/pages\/5879\/revisions"}],"predecessor-version":[{"id":9344,"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/pages\/5879\/revisions\/9344"}],"wp:attachment":[{"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/media?parent=5879"}],"wp:term":[{"taxonomy":"wf_page_folders","embeddable":true,"href":"https:\/\/stage.ievolutionclub.com\/es\/wp-json\/wp\/v2\/wf_page_folders?post=5879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}