{"product_id":"rabbit-hair-fluorite-pearl-zen-bracelet-clarity-peace","title":"荔挺出芽 Lychee Shoots Sprout | Major Snow Solar Term Zen Bracelet","description":"\u003cp\u003e\u003cmeta charset=\"UTF-8\"\u003e \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n        \/* ========== Icon Info List Styles ========== *\/\n        .icon-info-list {\n            display: grid;\n            grid-template-columns: repeat(2, 1fr);\n            gap: 12px 20px;\n            margin: 32px 0 8px 0; \/* 关键修改：底部margin从16px→8px，缩短一倍 *\/\n        }\n        .icon-info-item {\n            display: flex;\n            align-items: center;\n            font-size: 18px; \n            color: #222;\n            font-weight: 400;\n        }\n        .icon-info-item .icon {\n            display: flex;\n            align-items: center;\n            margin-right: 8px; \n        }\n        .icon-info-item .icon svg {\n            width: 24px; \n            height: 24px; \n            display: block;\n            stroke-width: 1.5;\n        }\n        \n        .icon-info-item:nth-child(2),\n        .icon-info-item:nth-child(4) {\n            text-align: left;\n            padding-left: 0;\n        }\n\n        \/* Icon Info List Responsive *\/\n        @media (max-width: 768px) {\n            .icon-info-list {\n                grid-template-columns: repeat(2, 1fr);\n                gap: 8px 12px;\n                margin: 24px 0 6px 0; \/* 响应式同步减半：12px→6px *\/\n            }\n            .icon-info-item {\n                font-size: 16px;\n                white-space: nowrap;\n            }\n            .icon-info-item .icon svg {\n                width: 22px;\n                height: 22px;\n            }\n            .icon-info-item:nth-child(2),\n            .icon-info-item:nth-child(4) {\n                text-align: left;\n                padding-left: 0;\n            }\n        }\n\n        @media (max-width: 599px) {\n            .icon-info-list {\n                gap: 6px 8px;\n                margin: 20px 0 5px 0; \/* 响应式同步减半：10px→5px *\/\n            }\n            .icon-info-item {\n                font-size: 14px;\n                white-space: nowrap;\n            }\n            .icon-info-item .icon {\n                margin-right: 4px;\n            }\n            .icon-info-item .icon svg {\n                width: 20px;\n                height: 20px;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .icon-info-list {\n                gap: 6px 8px;\n                margin: 16px 0 4px 0; \/* 响应式同步减半：8px→4px *\/\n            }\n            .icon-info-item {\n                font-size: 13px;\n                white-space: nowrap;\n            }\n            .icon-info-item .icon {\n                margin-right: 3px;\n            }\n            .icon-info-item .icon svg {\n                width: 18px;\n                height: 18px;\n            }\n        }\n        \/* ========== End Icon Info List Styles ========== *\/\n\n        \/* ========== Slider Styles ========== *\/\n        .simple-slider {\n            width: 100%;\n            max-width: 600px;\n            margin: 0 auto 8px; \/* 关键修改：底部margin从16px→8px，缩短一倍 *\/\n            position: relative;\n        }\n        .slider-container {\n            position: relative;\n            height: 280px;\n            overflow: hidden;\n            cursor: grab;\n        }\n        .slider-container:active {\n            cursor: grabbing;\n        }\n        .slides-wrapper {\n            display: flex;\n            transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n            height: 100%;\n        }\n        .slide {\n            min-width: 100%;\n            height: 100%;\n            background-color: #eaeaea;\n            border-radius: 8px;\n            padding: 0 16px; \n            box-sizing: border-box;\n            user-select: none;\n            transition: opacity 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n        }\n        .slide .content {\n            height: 100%;\n            display: flex;\n            flex-direction: column;\n            justify-content: center;\n            gap: 20px;\n        }\n        .slide .icon-text {\n            display: flex;\n            align-items: center;\n            gap: 16px;\n        }\n        .slide .icon-text .icon {\n            width: 65px; \n            height: 65px; \n            flex-shrink: 0;\n        }\n        .slide .icon-text .icon img {\n            width: 100%;\n            height: 100%;\n            object-fit: contain;\n        }\n        .slide .text {\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            font-size: 18px; \n            font-weight: 500;\n            color: #333;\n        }\n        .slide .text p {\n            margin: 0;\n        }\n        .slide .benefits {\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            color: #333;\n        }\n        .slide .benefits p {\n            margin: 0 0 12px 0;\n            font-size: 18px; \n        }\n        .slide .benefits p strong {\n            font-weight: 600;\n            font-size: 20px; \n        }\n        .slide .benefits ul {\n            list-style: none;\n            padding: 0;\n            margin: 0;\n        }\n        .slide .benefits li {\n            position: relative;\n            padding-left: 24px; \n            margin-bottom: 8px;\n            font-size: 18px; \n        }\n        .slide .benefits li:before {\n            content: \"•\";\n            position: absolute;\n            left: 0;\n            top: 0;\n            color: #333;\n            font-size: 20px; \n        }\n        .slide .benefits li:last-child {\n            margin-bottom: 0;\n        }\n        \n        .dots {\n            display: flex;\n            justify-content: center;\n            gap: 8px;\n            margin-top: 16px;\n        }\n        .slide {\n            position: relative;\n        }\n        .slide-dots {\n            position: absolute;\n            bottom: 12px;\n            right: 12px;\n            display: flex;\n            gap: 8px;\n            z-index: 10;\n        }\n        .slide-dots .dot {\n            width: 24px;\n            height: 4px;\n            border: none;\n            background-color: #ccc;\n            border-radius: 2px;\n            cursor: pointer;\n            transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n            font-size: 0;\n        }\n        .slide-dots .dot.active {\n            background-color: #333;\n            transform: scale(1.2);\n            box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n        }\n        .slide-dots .dot:hover {\n            background-color: #999;\n            transform: scale(1.1);\n        }\n        .slide-dots .dot {\n            transform: scale(1);\n            transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n        }\n        .fixed-dots-container {\n            position: absolute;\n            bottom: 12px;\n            right: 12px;\n            display: flex;\n            gap: 8px;\n            z-index: 10;\n        }\n        .slide .slide-dots {\n            display: none !important;\n        }\n        .dot {\n            width: 24px;\n            height: 4px;\n            border: none;\n            background-color: #ccc;\n            border-radius: 2px;\n            cursor: pointer;\n            transition: background-color 0.3s ease;\n            font-size: 0;\n        }\n        .dot.active {\n            background-color: #333;\n        }\n        .dot:hover {\n            background-color: #999;\n        }\n        \/* ========== End Slider Styles ========== *\/\n        \n        \/* ========== Product Tabs Styles ========== *\/\n        .product__block--tabs {\n            margin: 4px 0 20px; \/* 关键修改：顶部margin从8px→4px，缩短一倍 *\/\n        }\n        .tabs-wrapper {\n            width: 100%;\n        }\n        .tabs__head {\n            position: relative;\n            border-bottom: 1px solid #e5e5e5;\n            margin-bottom: 20px;\n        }\n        .product-tabs-title {\n            display: flex;\n            list-style: none;\n            margin: 0;\n            padding: 0;\n            gap: 30px;\n        }\n        .tab-link {\n            position: relative;\n            padding: 12px 0;\n            cursor: pointer;\n            font-size: 16px;\n            font-weight: 500;\n            color: #999;\n            transition: color 0.3s ease;\n            border: none;\n            background: none;\n            outline: none;\n        }\n        .tab-link:hover {\n            color: #333;\n        }\n        .tab-link.current {\n            color: #000;\n        }\n        .tab-link.current::after {\n            content: '';\n            position: absolute;\n            bottom: -1px;\n            left: 0;\n            width: 100%;\n            height: 2px;\n            background-color: #000;\n        }\n        .tab-content {\n            display: none;\n            color: #666;\n            line-height: 1.6;\n            font-size: 18px;\n        }\n        .tab-content.current {\n            display: block;\n        }\n        .tab-content p {\n            margin: 0 0 16px 0;\n        }\n        .tab-content ul {\n            margin: 0 0 16px 0;\n            padding-left: 20px;\n        }\n        .tab-content li {\n            margin-bottom: 8px;\n        }\n        .tab-content strong {\n            color: #333;\n            font-weight: 600;\n        }\n        .tab-content img {\n            max-width: 100%;\n            height: auto;\n            display: block;\n            margin: 16px 0;\n        }\n        .tabs__arrow {\n            position: absolute;\n            top: 50%;\n            transform: translateY(-50%);\n            background: white;\n            border: 1px solid #e5e5e5;\n            border-radius: 50%;\n            width: 32px;\n            height: 32px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        .tabs__arrow:hover {\n            background: #f5f5f5;\n        }\n        .tabs__arrow--prev {\n            left: -16px;\n        }\n        .tabs__arrow--next {\n            right: -16px;\n        }\n        .tabs__arrow.is-hidden {\n            display: none;\n        }\n        .tabs__arrow svg {\n            width: 16px;\n            height: 16px;\n        }\n\n        \/* Product Tabs Responsive *\/\n        @media (max-width: 768px) {\n            .product-tabs-title {\n                gap: 20px;\n            }\n            .tab-link {\n                font-size: 14px;\n                padding: 10px 0;\n            }\n            .tab-content {\n                font-size: 16px;\n            }\n            .tabs__arrow {\n                width: 28px;\n                height: 28px;\n            }\n            .tabs__arrow svg {\n                width: 14px;\n                height: 14px;\n            }\n            .product__block--tabs {\n                margin: 3px 0 16px; \/* 响应式同步减半：6px→3px *\/\n            }\n        }\n        \/* ========== End Product Tabs Styles ========== *\/\n\n        \/* ========== Toggle Ellipsis Styles ========== *\/\n        .toggle-ellipsis {\n            position: relative;\n            overflow: hidden;\n        }\n        .toggle-ellipsis__content {\n            position: relative;\n            overflow: hidden;\n            transition: max-height 0.3s ease;\n            max-height: 175px;\n        }\n        .toggle-ellipsis__content::after {\n            content: '';\n            position: absolute;\n            bottom: 0;\n            left: 0;\n            width: 100%;\n            height: 40px;\n            background: linear-gradient(transparent, white);\n            pointer-events: none;\n            transition: opacity 0.3s ease;\n        }\n        .toggle-ellipsis__actions {\n            text-align: center;\n            margin-top: 10px;\n        }\n        .caps--link {\n            background: none;\n            border: none;\n            color: #999;\n            font-size: 14px;\n            cursor: pointer;\n            text-decoration: underline;\n            padding: 0;\n            transition: color 0.3s ease;\n        }\n        .caps--link:hover {\n            color: #333;\n        }\n        .toggle-ellipsis.expanded .toggle-ellipsis__content {\n            max-height: none;\n        }\n        .toggle-ellipsis.expanded .toggle-ellipsis__content::after {\n            opacity: 0;\n        }\n        .toggle-ellipsis.expanded .caps--link span {\n            display: none;\n        }\n        .toggle-ellipsis.expanded .caps--link::after {\n            content: 'Show Less';\n        }\n        \/* ========== End Toggle Ellipsis Styles ========== *\/\n\n        \/* ========== Utility Styles ========== *\/\n        .native-scrollbar {\n            scrollbar-width: none;\n            -ms-overflow-style: none;\n        }\n        .native-scrollbar::-webkit-scrollbar {\n            display: none;\n        }\n        .rte {\n            margin-bottom: 20px;\n        }\n        \/* ========== End Utility Styles ========== *\/\n    \u003c\/style\u003e\n\u003c!-- ========== Icon Info List Section ========== --\u003e\n\u003cdiv class=\"icon-info-list\"\u003e\n\u003cdiv class=\"icon-info-item\"\u003e\n\u003cspan class=\"icon\"\u003e \u003csvg aria-hidden=\"true\" role=\"presentation\" viewbox=\"0 0 24 24\"\u003e\n                    \u003cpath d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm7-10-3-3m3 3-3 3m3-3H5m0 0 3-3m-3 3 3 3\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\u003e\u003c\/path\u003e\n                \u003c\/svg\u003e \u003c\/span\u003e \u003cspan class=\"text\"\u003eFree 30 Days Returns\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"icon-info-item\"\u003e\n\u003cspan class=\"icon\"\u003e \u003csvg aria-hidden=\"true\" role=\"presentation\" viewbox=\"0 0 24 24\"\u003e\n                    \u003cpath d=\"m7 9 5 3.5L17 9\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\u003e\u003c\/path\u003e\n                    \u003cpath d=\"M2 17V7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2z\" stroke=\"#000\" fill=\"none\"\u003e\u003c\/path\u003e\n                \u003c\/svg\u003e \u003c\/span\u003e \u003cspan class=\"text\"\u003eLifetime Free Servicing\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"icon-info-item\"\u003e\n\u003cspan class=\"icon\"\u003e \u003csvg aria-hidden=\"true\" role=\"presentation\" viewbox=\"0 0 24 24\"\u003e\n                    \u003cpath d=\"M15 11.063C12.53 13.65 10.059 20 10.059 20S6.529 11.062 3 9\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\u003e\u003c\/path\u003e\n                    \u003cpath d=\"m20.496 5.577.426 4.424c.276 2.87-1.875 5.425-4.745 5.702-2.816.27-5.367-1.788-5.638-4.604a5.122 5.122 0 0 1 4.608-5.59l4.716-.454a.58.58 0 0 1 .633.522z\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\u003e\u003c\/path\u003e\n                \u003c\/svg\u003e \u003c\/span\u003e \u003cspan class=\"text\"\u003e100% natural\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"icon-info-item\"\u003e\n\u003cspan class=\"icon\"\u003e \u003csvg aria-hidden=\"true\" role=\"presentation\" viewbox=\"0 0 24 24\"\u003e\n                    \u003cpath d=\"m8.587 8.236 2.598-5.232a.911.911 0 0 1 1.63 0l2.598 5.232 5.808.844a.902.902 0 0 1 .503 1.542l-4.202 4.07.992 5.75c.127.738-.653 1.3-1.32.952L12 18.678l-5.195 2.716c-.666.349-1.446-.214-1.319-.953l.992-5.75-4.202-4.07a.902.902 0 0 1 .503-1.54l5.808-.845z\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"\u003e\u003c\/path\u003e\n                \u003c\/svg\u003e \u003c\/span\u003e \u003cspan class=\"text\"\u003e5000 Years of Chinese Culture\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ========== End Icon Info List Section ========== --\u003e\n\u003cp style=\"margin: 0;\"\u003e \u003c\/p\u003e\n\u003c!-- ========== Slider Section ========== --\u003e\n\u003cdiv class=\"simple-slider\"\u003e\n\u003cdiv class=\"slider-container\" id=\"sliderContainer\"\u003e\n\u003cdiv class=\"fixed-dots-container\"\u003e\n\u003cbutton class=\"dot active\" data-slide=\"0\"\u003e1\u003c\/button\u003e \u003cbutton class=\"dot\" data-slide=\"1\"\u003e2\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slides-wrapper\" id=\"slidesWrapper\"\u003e\n\u003cdiv class=\"slide\"\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cdiv class=\"icon-text\"\u003e\n\u003cdiv class=\"icon\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/8c0b154ae43efa19bd906bb40bc12e9c.png?v=1768978890\" width=\"55\" height=\"55\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text\"\u003e\n\u003cp\u003eKey Elements: 【Winter】\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"benefits\"\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWhite \u0026amp; Fluttering\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"slide\"\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cdiv class=\"icon-text\"\u003e\n\u003cdiv class=\"icon\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/e8cd18ecf3d32b8e9f3a93c9216ff981.png?v=1765472610\" width=\"65\" height=\"65\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text\"\u003e\n\u003cp\u003eRabbit Hair Fluorite\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"benefits\"\u003e\n\u003cp\u003e\u003cstrong\u003eKey Benefits\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eVitalize \u0026amp; Illuminate\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- ========== End Slider Section ========== --\u003e\n\u003cp style=\"margin: 0;\"\u003e \u003c\/p\u003e\n\u003c!-- ========== Tabs Section ========== --\u003e\n\u003cdiv style=\"--block-padding-bottom: 0px;\" class=\"product__block product__block--tabs tabs-wrapper block-padding\"\u003e\n\u003cul data-scrollbar-slider=\"\" data-scrollbar=\"\" class=\"tabs product-tabs-title\"\u003e\n\u003cli data-attributes-placeholder=\"\" data-tab=\"0\" class=\"tab-link tab-link-0 current\" tabindex=\"0\"\u003e\u003cspan\u003eDescription\u003c\/span\u003e\u003c\/li\u003e\n\u003cli data-tab=\"1\" class=\"tab-link tab-link-1\" tabindex=\"0\"\u003e\u003cspan\u003eTips\u003c\/span\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cbutton data-scrollbar-arrow-prev=\"\" class=\"tabs__arrow tabs__arrow--prev product-tabs__arrow product-tabs__arrow--prev is-hidden\" type=\"button\"\u003e \u003csvg viewbox=\"0 0 24 24\" class=\"icon icon-nav-arrow-left\" role=\"presentation\" aria-hidden=\"true\"\u003e\n                \u003cpath stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke=\"#000\" d=\"m15 6-6 6 6 6\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e \u003cspan class=\"visually-hidden\"\u003eSee All\u003c\/span\u003e \u003c\/button\u003e \u003cbutton data-scrollbar-arrow-next=\"\" class=\"tabs__arrow tabs__arrow--next product-tabs__arrow product-tabs__arrow--next is-hidden\" type=\"button\"\u003e \u003csvg viewbox=\"0 0 24 24\" class=\"icon icon-nav-arrow-right\" role=\"presentation\" aria-hidden=\"true\"\u003e\n                \u003cpath stroke-linejoin=\"round\" stroke-linecap=\"round\" stroke-width=\"1\" stroke=\"#000\" d=\"m9 6 6 6-6 6\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e \u003cspan class=\"visually-hidden\"\u003eSee All\u003c\/span\u003e \u003c\/button\u003e\n\u003cdiv class=\"tab-content tab-content-0 current rte\"\u003e\n\u003cdiv class=\"toggle-ellipsis\"\u003e\n\u003cdiv class=\"toggle-ellipsis__content\"\u003e\n\u003cp class=\"p\"\u003e\u003cstrong\u003eDaxue, the third solar term of winter, sees snowfall growing heavy—rivers frozen over, landscapes blanketed in white. Jackdaws tuck their wings, rivers turn to frost, and the world is wrapped in vast, silent stillness. The ancients noted phenology with \"horned owls ceasing to hoot\" and \"tigers beginning to mate\". Embracing winter's bitter cold, they found warmth through customs like admiring snow and curing meat, aligning with nature's rhythm amid the freeze.\u003c\/strong\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"toggle-ellipsis__actions\"\u003e\u003cbutton class=\"caps--link\" type=\"button\"\u003e \u003cspan\u003eRead More\u003c\/span\u003e \u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"tab-content tab-content-1 rte\"\u003e\n\u003cdiv class=\"toggle-ellipsis\"\u003e\n\u003cdiv class=\"toggle-ellipsis__content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eManual measurements may have slight deviations – thanks for your understanding!\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eThese handmade, natural products may have minor irregularities. Lighting may also cause slight color differences from photos.\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFor returns of free-shipping items not due to quality issues, buyers cover return shipping.\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"toggle-ellipsis__actions\"\u003e\u003cbutton class=\"caps--link\" type=\"button\"\u003e \u003cspan\u003eRead More\u003c\/span\u003e \u003c\/button\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e\u003cstrong\u003e \u003c\/strong\u003e\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cstrong\u003e\u003cstrong\u003e \u003c\/strong\u003e\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cstrong\u003e \u003c!-- ========== End Tabs Section ========== --\u003e \u003cscript\u003e\n        \/\/ ========== Slider Functionality ==========\n        document.addEventListener('DOMContentLoaded', function() {\n            const sliderContainer = document.getElementById('sliderContainer');\n            const slidesWrapper = document.getElementById('slidesWrapper');\n            const slides = document.querySelectorAll('.slide');\n            const dots = document.querySelectorAll('.dot');\n            let currentSlide = 0;\n            const totalSlides = slides.length;\n            \n            let isDragging = false;\n            let startX = 0;\n            let currentX = 0;\n            let initialTransform = 0;\n            let animationId = 0;\n\n            function updateSlider() {\n                const translateX = -currentSlide * 100;\n                slidesWrapper.style.transform = `translateX(${translateX}%)`;\n                \n                dots.forEach((dot, index) =\u003e {\n                    const wasActive = dot.classList.contains('active');\n                    const isActive = index === currentSlide;\n                    \n                    if (wasActive !== isActive) {\n                        setTimeout(() =\u003e {\n                            dot.classList.toggle('active', isActive);\n                        }, index * 50); \n                    } else {\n                        dot.classList.toggle('active', isActive);\n                    }\n                });\n                \n                slides.forEach((slide, index) =\u003e {\n                    if (index === currentSlide) {\n                        slide.style.opacity = '1';\n                        slide.style.transform = 'scale(1)';\n                    } else {\n                        slide.style.opacity = '0.8';\n                        slide.style.transform = 'scale(0.98)';\n                    }\n                });\n            }\n\n            function showSlide(index) {\n                currentSlide = index;\n                if (currentSlide \u003c 0) currentSlide = totalSlides - 1;\n                if (currentSlide \u003e= totalSlides) currentSlide = 0;\n                updateSlider();\n            }\n\n            dots.forEach((dot, index) =\u003e {\n                dot.addEventListener('click', () =\u003e {\n                    showSlide(index);\n                });\n            });\n            \n            sliderContainer.addEventListener('mousedown', startDrag);\n            sliderContainer.addEventListener('mousemove', drag);\n            sliderContainer.addEventListener('mouseup', endDrag);\n            sliderContainer.addEventListener('mouseleave', endDrag);\n\n            sliderContainer.addEventListener('touchstart', startDrag, { passive: false });\n            sliderContainer.addEventListener('touchmove', drag, { passive: false });\n            sliderContainer.addEventListener('touchend', endDrag);\n\n            function startDrag(e) {\n                isDragging = true;\n                startX = e.type.includes('mouse') ? e.clientX : e.touches[0].clientX;\n                initialTransform = -currentSlide * 100;\n                slidesWrapper.style.transition = 'none';\n                \n                if (animationId) {\n                    cancelAnimationFrame(animationId);\n                }\n            }\n\n            function drag(e) {\n                if (!isDragging) return;\n                \n                e.preventDefault();\n                currentX = e.type.includes('mouse') ? e.clientX : e.touches[0].clientX;\n                const deltaX = currentX - startX;\n                const dragPercentage = (deltaX \/ sliderContainer.offsetWidth) * 100;\n                const newTransform = initialTransform + dragPercentage;\n                \n                slidesWrapper.style.transform = `translateX(${newTransform}%)`;\n            }\n\n            function endDrag(e) {\n                if (!isDragging) return;\n                \n                isDragging = false;\n                slidesWrapper.style.transition = 'transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)';\n                \n                const deltaX = currentX - startX;\n                const threshold = sliderContainer.offsetWidth * 0.15; \n                \n                if (Math.abs(deltaX) \u003e threshold) {\n                    if (deltaX \u003e 0) {\n                        showSlide(currentSlide - 1);\n                    } else {\n                        showSlide(currentSlide + 1);\n                    }\n                } else {\n                    updateSlider();\n                }\n            }\n\n            sliderContainer.addEventListener('dragstart', (e) =\u003e {\n                e.preventDefault();\n            });\n\n            setInterval(() =\u003e {\n                if (!isDragging) {\n                    showSlide(currentSlide + 1);\n                }\n            }, 5000);\n        });\n\n        \/\/ ========== Tab Functionality ==========\n        document.addEventListener('DOMContentLoaded', function() {\n            const tabLinks = document.querySelectorAll('.tab-link');\n            const tabContents = document.querySelectorAll('.tab-content');\n\n            function showTab(index) {\n                tabContents.forEach(content =\u003e content.classList.remove('current'));\n                tabLinks.forEach(link =\u003e link.classList.remove('current'));\n                \n                tabContents[index].classList.add('current');\n                tabLinks[index].classList.add('current');\n            }\n\n            tabLinks.forEach((link, index) =\u003e {\n                link.addEventListener('click', () =\u003e {\n                    showTab(index);\n                });\n            });\n        });\n\n        \/\/ ========== Expand\/Collapse Functionality ==========\n        document.addEventListener('DOMContentLoaded', function() {\n            const toggleButtons = document.querySelectorAll('.caps--link');\n            \n            toggleButtons.forEach(button =\u003e {\n                button.addEventListener('click', function() {\n                    const toggleContainer = this.closest('.toggle-ellipsis');\n                    const content = toggleContainer.querySelector('.toggle-ellipsis__content');\n                    const buttonText = this.querySelector('span');\n                    \n                    if (toggleContainer.classList.contains('expanded')) {\n                        toggleContainer.classList.remove('expanded');\n                        content.style.maxHeight = '175px';\n                        buttonText.textContent = 'Read More';\n                    } else {\n                        toggleContainer.classList.add('expanded');\n                        content.style.maxHeight = content.scrollHeight + 'px';\n                        buttonText.textContent = 'Show Less';\n                    }\n                });\n            });\n        });\n\u003c\/script\u003e \u003c\/strong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003c!-- Products Introduction 四列展示区块 开始 --\u003e\n\u003cstyle\u003e\n  .products-intro-section {\n    width: 100%;\n    margin: 0;\n    background: #fff;\n  }\n  .products-intro-title {\n    font-size: 2.8rem;\n    font-family: 'Times New Roman', Times, serif;\n    font-weight: 700;\n    margin-bottom: 36px;\n    text-align: left;\n    margin-left: 8vw;\n    letter-spacing: 0.01em;\n  }\n  .products-intro-list {\n    display: flex;\n    justify-content: center;\n    gap: 0 36px;\n    max-width: 1200px;\n    margin: 0 auto;\n  }\n  .products-intro-item {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 280px;\n  }\n  .products-intro-img {\n    width: 100px;\n    height: 100px;\n    object-fit: contain;\n    margin-bottom: 20px;\n    margin-top: 12px;\n  }\n  .products-intro-name {\n    font-size: 1.8rem;\n    font-family: 'Times New Roman', Times, serif;\n    font-weight: 600;\n    margin-bottom: 18px;\n    text-align: center;\n    letter-spacing: 0.01em;\n  }\n  .products-intro-desc {\n    list-style: disc inside;\n    text-align: center;\n    font-size: 1.6rem;\n    color: #222;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n    display: inline-block;\n  }\n  .products-intro-desc li {\n    margin-bottom: 12px;\n    line-height: 1.5;\n    word-break: break-word;\n    padding-left: 0;\n    text-indent: 0;\n    display: list-item;\n  }\n  \n  @media (max-width: 900px) and (min-width: 600px) {\n    .products-intro-title {\n      margin-left: 0;\n      text-align: center;\n    }\n    .products-intro-list {\n      flex-wrap: wrap;\n      gap: 24px;\n      justify-content: center;\n    }\n    .products-intro-item {\n      width: calc(50% - 12px);\n      max-width: 320px;\n    }\n  }\n  \n  @media (max-width: 599px) {\n    .products-intro-title {\n      margin-left: 0;\n      text-align: center;\n      font-size: 2.0rem;\n      margin-bottom: 20px;\n    }\n    .products-intro-list {\n      gap: 16px;\n      justify-content: center;\n      padding: 0 12px;\n    }\n    .products-intro-item {\n      width: calc(50% - 8px);\n      max-width: 180px;\n    }\n    .products-intro-img {\n      width: 60px;\n      height: 60px;\n      margin-bottom: 10px;\n      margin-top: 6px;\n    }\n    .products-intro-name {\n      font-size: 1.4rem;\n      margin-bottom: 8px;\n    }\n    .products-intro-desc {\n      font-size: 1.6rem;\n    }\n    .products-intro-desc li {\n      margin-bottom: 8px;\n      line-height: 1.4;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \n  @media (max-width: 480px) {\n    .products-intro-title {\n      font-size: 1.8rem;\n      margin-bottom: 16px;\n    }\n    .products-intro-list {\n      gap: 12px;\n      padding: 0 8px;\n    }\n    .products-intro-item {\n      width: calc(50% - 6px);\n      max-width: 150px;\n    }\n    .products-intro-img {\n      width: 80px;\n      height: 50px;\n      margin-bottom: 8px;\n      margin-top: 4px;\n    }\n    .products-intro-name {\n      font-size: 2.5rem;\n      margin-bottom: 6px;\n    }\n    .products-intro-desc {\n      font-size: 1.4rem;\n    }\n    .products-intro-desc li {\n      margin-bottom: 6px;\n      line-height: 1.3;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \n  @media (max-width: 360px) {\n    .products-intro-title {\n      font-size: 1.6rem;\n      margin-bottom: 12px;\n    }\n    .products-intro-list {\n      gap: 8px;\n      padding: 0 6px;\n    }\n    .products-intro-item {\n      width: calc(50% - 4px);\n      max-width: 130px;\n    }\n    .products-intro-img {\n      width: 40px;\n      height: 40px;\n      margin-bottom: 6px;\n      margin-top: 2px;\n    }\n    .products-intro-name {\n      font-size: 1.1rem;\n      margin-bottom: 4px;\n    }\n    .products-intro-desc {\n      font-size: 1.2rem;\n    }\n    .products-intro-desc li {\n      margin-bottom: 4px;\n      line-height: 1.2;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \u003c\/style\u003e\n\u003cdiv class=\"products-intro-section\"\u003e\n\u003cdiv class=\"products-intro-title\"\u003eProducts Introduction\u003c\/div\u003e\n\u003cdiv class=\"products-intro-list\"\u003e\n\u003cdiv class=\"products-intro-item\"\u003e\n\u003cimg class=\"products-intro-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/2_0de5d2c0-0ef0-4aca-89a1-f4848a85140a.jpg?v=1753257593\" alt=\"Size\"\u003e\n\u003cdiv class=\"products-intro-name\"\u003e\u003cstrong\u003eSize\u003c\/strong\u003e\u003c\/div\u003e\n\u003cul class=\"products-intro-desc\"\u003e\n\u003cli\u003e\u003cstrong\u003eBead diameter 10.5mm\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"products-intro-item\"\u003e\n\u003cimg class=\"products-intro-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/3_c7d6aa2e-bb7b-4874-abe7-d7cf5031d27b.jpg?v=1753257593\" alt=\"Chakra\"\u003e\n\u003cdiv class=\"products-intro-name\"\u003e\u003cstrong\u003eCleansing\u003c\/strong\u003e\u003c\/div\u003e\n\u003cul class=\"products-intro-desc\"\u003e\n\u003cli\u003e\u003cstrong\u003eRinse No-chemicals\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Products Introduction 四列展示区块 结束 --\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c!-- 分割线 --\u003e\u003chr style=\"\/* width: 80%; *\/height: 2px; background-color: #cccccc; border: none; \/* margin: 60px auto; *\/border-radius: 2px; margin-bottom: 10px; margin-top: 10px;\"\u003e\u003c!-- Key Energy 三列展示区块 开始 --\u003e\n\u003cstyle\u003e\n  .key-energy-section {\n    width: 100%;\n    margin: 0;\n    background: #fff;\n  }\n  .key-energy-title {\n    font-size: 3.2rem;\n    font-family: 'Times New Roman', Times, serif;\n    font-weight: 700;\n    margin-bottom: 40px;\n    text-align: left;\n    margin-left: 8vw;\n    letter-spacing: 0.01em;\n  }\n       .key-energy-list {\n     display: flex;\n     justify-content: center;\n     gap: 0 80px;\n     max-width: 800px;\n     margin: 0 auto;\n   }\n   .key-energy-item {\n     display: flex;\n     flex-direction: column;\n     align-items: center;\n     width: 320px;\n   }\n       .key-energy-img {\n     width: 140px;\n     height: 140px;\n     object-fit: contain;\n     margin-bottom: 20px;\n     margin-top: 16px;\n   }\n       .key-energy-name {\n     font-size: 1.8rem;\n     font-family: 'Times New Roman', Times, serif;\n     font-weight: 600;\n     margin-bottom: 18px;\n     text-align: center;\n     letter-spacing: 0.01em;\n   }\n       .key-energy-desc {\n     list-style: disc inside;\n     text-align: center;\n     font-size: 1.5rem;\n     color: #222;\n     margin: 0;\n     padding: 0;\n     width: 100%;\n     display: inline-block;\n   }\n  .key-energy-desc li {\n    margin-bottom: 10px;\n    line-height: 1.6;\n    word-break: break-word;\n    padding-left: 0;\n    text-indent: 0;\n    display: list-item;\n  }\n  \n  \/* Tablet styles *\/\n  @media (max-width: 900px) and (min-width: 600px) {\n    .key-energy-title {\n      margin-left: 0;\n      text-align: center;\n      font-size: 2.4rem;\n      font-weight: 700;\n    }\n    .key-energy-list {\n      flex-wrap: wrap;\n      gap: 24px;\n      justify-content: center;\n    }\n           .key-energy-item {\n       width: calc(50% - 12px);\n       max-width: 350px;\n     }\n  }\n  \n  \/* Mobile styles - 2 items per row, more compact *\/\n  @media (max-width: 599px) {\n    .key-energy-title {\n      margin-left: 0;\n      text-align: center;\n      font-size: 2.0rem;\n      font-weight: 700;\n      margin-bottom: 16px;\n    }\n    .key-energy-list {\n      gap: 14px;\n      justify-content: center;\n      padding: 0 8px;\n    }\n           .key-energy-item {\n       width: calc(50% - 7px);\n       max-width: 180px;\n     }\n     .key-energy-img {\n       width: 90px;\n       height: 90px;\n       margin-bottom: 12px;\n       margin-top: 8px;\n     }\n           .key-energy-name {\n       font-size: 1.5rem;\n       font-weight: 600;\n       margin-bottom: 10px;\n     }\n             .key-energy-desc {\n        font-size: 1.6rem;\n        font-weight: 500;\n        list-style: none;\n      }\n     .key-energy-desc li {\n      margin-bottom: 8px;\n      line-height: 1.4;\n      padding-left: 0;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \n  \/* Extra small mobile styles - even more compact *\/\n  @media (max-width: 480px) {\n    .key-energy-title {\n      font-size: 1.8rem;\n      font-weight: 700;\n      margin-bottom: 12px;\n    }\n    .key-energy-list {\n      gap: 12px;\n      padding: 0 6px;\n      justify-content: center;\n    }\n           .key-energy-item {\n       width: calc(50% - 6px);\n       max-width: 160px;\n     }\n     .key-energy-img {\n       width: 80px;\n       height: 80px;\n       margin-bottom: 10px;\n       margin-top: 6px;\n     }\n           .key-energy-name {\n       font-size: 2.5rem;\n       font-weight: 600;\n       margin-bottom: 8px;\n     }\n             .key-energy-desc {\n        font-size: 1.4rem;\n        font-weight: 500;\n        list-style: none;\n      }\n     .key-energy-desc li {\n      margin-bottom: 6px;\n      line-height: 1.3;\n      padding-left: 0;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \n  \/* Super small mobile styles *\/\n  @media (max-width: 360px) {\n    .key-energy-title {\n      font-size: 1.6rem;\n      font-weight: 700;\n      margin-bottom: 10px;\n    }\n    .key-energy-list {\n      gap: 8px;\n      padding: 0 6px;\n      justify-content: center;\n    }\n           .key-energy-item {\n       width: calc(50% - 4px);\n       max-width: 120px;\n     }\n     .key-energy-img {\n       width: 70px;\n       height: 70px;\n       margin-bottom: 8px;\n       margin-top: 4px;\n     }\n           .key-energy-name {\n       font-size: 1.2rem;\n       font-weight: 600;\n       margin-bottom: 6px;\n     }\n             .key-energy-desc {\n        font-size: 1.2rem;\n        font-weight: 500;\n        list-style: none;\n      }\n     .key-energy-desc li {\n      margin-bottom: 4px;\n      line-height: 1.2;\n      padding-left: 0;\n      white-space: normal;\n      word-break: normal;\n      text-align: center;\n    }\n  }\n  \u003c\/style\u003e\n\u003cdiv class=\"key-energy-section\"\u003e\n\u003cdiv class=\"key-energy-title\"\u003eKey Energy\u003c\/div\u003e\n\u003cdiv class=\"key-energy-list\"\u003e\n\u003cdiv class=\"key-energy-item\"\u003e\n\u003cimg alt=\"Citrine\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/e8cd18ecf3d32b8e9f3a93c9216ff981.png?v=1765472610\" class=\"key-energy-img\"\u003e\n\u003cdiv class=\"key-energy-name\"\u003e\u003cstrong\u003eRabbit Hair Fluorite\u003c\/strong\u003e\u003c\/div\u003e\n\u003cul class=\"key-energy-desc\"\u003e\n\u003cli\u003e\u003cstrong\u003eVitalize \u0026amp; Illuminate\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"key-energy-item\"\u003e\n\u003cimg alt=\"Citrine\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/f926ea2340e1be430c2afe342d78cc5c.png?v=1765441808\" class=\"key-energy-img\"\u003e\n\u003cdiv class=\"key-energy-name\"\u003e\u003cstrong\u003ePearl\u003c\/strong\u003e\u003c\/div\u003e\n\u003cul class=\"key-energy-desc\"\u003e\n\u003cli\u003e\u003cstrong\u003eRadiate \u0026amp; Moisturize\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Key Energy 三列展示区块 结束 --\u003e","brand":"FateGemz","offers":[{"title":"S","offer_id":52562643648826,"sku":"24Winter-Daxue-S","price":26.66,"currency_code":"USD","in_stock":true},{"title":"M","offer_id":52132552966458,"sku":"24Winter-Daxue-M","price":26.66,"currency_code":"USD","in_stock":true},{"title":"L","offer_id":52562643681594,"sku":"24Winter-Daxue-L","price":26.66,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0937\/5511\/3786\/files\/lychee-shoots-sprout-2362610.png?v=1763323652","url":"https:\/\/fategemz.com\/products\/rabbit-hair-fluorite-pearl-zen-bracelet-clarity-peace","provider":"FateGemz","version":"1.0","type":"link"}