{"product_id":"usb-electric-mug-warmer-pad","title":"USB Electric Mug Warmer Pad: Adjustable Temperature \u0026 Compact Beverage Heating Plate","description":"\u003csection id=\"shopify-section-template--23406897889365__custom_liquid_LnRcTG\" class=\"shopify-section section\"\u003e\u003cstyle data-shopify=\"\"\u003e.section-template--23406897889365__custom_liquid_LnRcTG-padding {\n    padding-top: calc(0px * 0.75);\n    padding-bottom: calc(0px  * 0.75);\n  }\n\n  @media screen and (min-width: 750px) {\n    .section-template--23406897889365__custom_liquid_LnRcTG-padding {\n      padding-top: 0px;\n      padding-bottom: 0px;\n    }\n  }\u003c\/style\u003e\n\u003cdiv class=\"color-background-1 gradient content-for-grouping always-display\"\u003e\n  \n  \u003cdiv class=\"section-template--23406897889365__custom_liquid_LnRcTG-padding\"\u003e\n    \n\n\u003cstyle\u003e\n\/* ==========================================\n   COZY PRODUCT SHOWCASE\n   Shopify Custom Liquid\n========================================== *\/\n\n.cozy-showcase {\n  --cz-background: #ffffff;\n  --cz-soft: #faf7f3;\n  --cz-text: #28231f;\n  --cz-muted: #6d655e;\n  --cz-accent: #754b38;\n  --cz-border: #e8e0d9;\n  --cz-radius: 18px;\n  --cz-ticker-gap: 100px;\n\n  width: 100%;\n  min-width: 0;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  background: var(--cz-background);\n  color: var(--cz-text);\n  font-family: inherit;\n}\n\n.cozy-showcase,\n.cozy-showcase *,\n.cozy-showcase *::before,\n.cozy-showcase *::after {\n  box-sizing: border-box;\n}\n\n.cozy-showcase :where(h2, h3, p, figure, blockquote, ul) {\n  margin: 0;\n}\n\n.cozy-showcase :where(h2, h3) {\n  color: var(--cz-text);\n  font-family: inherit;\n  text-transform: none;\n}\n\n.cozy-showcase img,\n.cozy-showcase video {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  height: auto;\n  margin: 0;\n}\n\n.cozy-showcase .cz-wrap {\n  width: min(1160px, calc(100% - 48px));\n  margin-inline: auto;\n}\n\n.cozy-showcase .cz-section {\n  padding-block: 64px;\n}\n\n.cozy-showcase .cz-heading {\n  font-size: clamp(28px, 3.4vw, 42px);\n  font-weight: 750;\n  line-height: 1.2;\n  letter-spacing: -.03em;\n}\n\n.cozy-showcase .cz-description {\n  margin-top: 16px;\n  color: var(--cz-muted);\n  font-size: 16px;\n  line-height: 1.8;\n}\n\n.cozy-showcase .cz-header {\n  max-width: 760px;\n  margin: 0 auto 30px;\n  text-align: center;\n}\n\n\/* ==========================================\n   无缝滚动公告\n========================================== *\/\n\n.cozy-showcase .cz-ticker {\n  padding-block: 16px;\n  overflow: hidden;\n  background: var(--cz-accent);\n  color: #ffffff;\n}\n\n.cozy-showcase .cz-track {\n  display: flex;\n  width: max-content;\n  direction: ltr;\n  animation: cozy-ticker-scroll 50s linear infinite;\n}\n\n.cozy-showcase .cz-group {\n  display: flex;\n  align-items: center;\n  justify-content: space-around;\n  flex: 0 0 auto;\n  gap: var(--cz-ticker-gap);\n  min-width: 100vw;\n  padding-right: var(--cz-ticker-gap);\n}\n\n.cozy-showcase .cz-ticker-item {\n  flex: 0 0 auto;\n  margin: 0;\n  color: inherit;\n  font-size: 18px;\n  font-weight: 650;\n  line-height: 1.5;\n  white-space: nowrap;\n}\n\n@keyframes cozy-ticker-scroll {\n  from {\n    transform: translateX(0);\n  }\n\n  to {\n    transform: translateX(-50%);\n  }\n}\n\n@media (hover: hover) {\n  .cozy-showcase .cz-ticker:hover .cz-track {\n    animation-play-state: paused;\n  }\n}\n\n\/* ==========================================\n   图片与视频\n========================================== *\/\n\n.cozy-showcase .cz-media {\n  min-width: 0;\n  overflow: hidden;\n  border: 1px solid var(--cz-border);\n  border-radius: var(--cz-radius);\n  background: var(--cz-soft);\n}\n\n.cozy-showcase .cz-media img {\n  aspect-ratio: 1;\n  object-fit: contain;\n}\n\n.cozy-showcase .cz-video {\n  width: min(850px, 100%);\n  margin-inline: auto;\n}\n\n.cozy-showcase .cz-video video {\n  background: #15120f;\n}\n\n\/* ==========================================\n   交错图文\n========================================== *\/\n\n.cozy-showcase .cz-story {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  align-items: center;\n  gap: clamp(28px, 5vw, 72px);\n  padding-top: 64px;\n}\n\n.cozy-showcase .cz-story \u003e * {\n  min-width: 0;\n}\n\n.cozy-showcase .cz-story-copy {\n  max-width: 480px;\n}\n\n.cozy-showcase .cz-story--reverse .cz-story-copy {\n  order: 2;\n}\n\n.cozy-showcase .cz-story--reverse .cz-media {\n  order: 1;\n}\n\n\/* ==========================================\n   规格选择与加购\n========================================== *\/\n\n.cozy-showcase .cz-purchase {\n  max-width: 420px;\n  margin: 36px auto 0;\n}\n\n.cozy-showcase .cz-form {\n  display: grid;\n  gap: 12px;\n}\n\n.cozy-showcase .cz-label {\n  color: var(--cz-text);\n  font-size: 14px;\n  font-weight: 650;\n}\n\n.cozy-showcase .cz-select {\n  width: 100%;\n  min-height: 48px;\n  padding: 12px;\n  border: 1px solid var(--cz-border);\n  border-radius: 9px;\n  background: #ffffff;\n  color: var(--cz-text);\n  font: inherit;\n  font-size: 14px;\n}\n\n.cozy-showcase .cz-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  min-height: 54px;\n  margin: 0;\n  padding: 15px 24px;\n  border: 1px solid var(--cz-accent);\n  border-radius: 10px;\n  background: var(--cz-accent);\n  color: #ffffff;\n  font-family: inherit;\n  font-size: 16px;\n  font-weight: 700;\n  line-height: 1.4;\n  text-align: center;\n  text-decoration: none;\n  cursor: pointer;\n  appearance: none;\n  transition: background .2s ease, transform .2s ease;\n}\n\n.cozy-showcase .cz-button:disabled {\n  opacity: .5;\n  cursor: not-allowed;\n}\n\n.cozy-showcase :where(button, select, a, video):focus-visible {\n  outline: 3px solid var(--cz-accent);\n  outline-offset: 4px;\n}\n\n@media (hover: hover) {\n  .cozy-showcase .cz-button:not(:disabled):hover {\n    background: #5e3929;\n    transform: translateY(-2px);\n  }\n}\n\n\/* ==========================================\n   用户评价\n========================================== *\/\n\n.cozy-showcase .cz-reviews {\n  background: var(--cz-soft);\n}\n\n.cozy-showcase .cz-review-list {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 24px;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.cozy-showcase .cz-review-item {\n  display: flex;\n  min-width: 0;\n}\n\n.cozy-showcase .cz-review-card {\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  overflow: hidden;\n  border: 1px solid var(--cz-border);\n  border-radius: var(--cz-radius);\n  background: #ffffff;\n}\n\n.cozy-showcase .cz-review-image {\n  aspect-ratio: 1;\n  overflow: hidden;\n  background: #f1ece6;\n}\n\n.cozy-showcase .cz-review-image img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n\n.cozy-showcase .cz-review-body {\n  display: flex;\n  flex: 1;\n  flex-direction: column;\n  align-items: center;\n  padding: 24px 20px;\n  text-align: center;\n}\n\n.cozy-showcase .cz-stars {\n  margin-bottom: 12px;\n  color: #b87b12;\n  font-size: 19px;\n  line-height: 1;\n  letter-spacing: 3px;\n}\n\n.cozy-showcase .cz-review-title {\n  font-size: 18px;\n  font-weight: 700;\n  line-height: 1.4;\n}\n\n.cozy-showcase .cz-quote {\n  margin: 12px 0 20px;\n  color: var(--cz-muted);\n  font-size: 14px;\n  line-height: 1.8;\n}\n\n.cozy-showcase .cz-author {\n  margin-top: auto;\n  color: var(--cz-muted);\n  font-size: 12px;\n  line-height: 1.6;\n}\n\n.cozy-showcase .cz-review-controls {\n  display: none;\n}\n\n\/* ==========================================\n   平板\n========================================== *\/\n\n@media screen and (max-width: 989px) {\n  .cozy-showcase {\n    --cz-ticker-gap: 72px;\n  }\n\n  .cozy-showcase .cz-section {\n    padding-block: 48px;\n  }\n\n  .cozy-showcase .cz-story {\n    gap: 28px;\n    padding-top: 48px;\n  }\n\n  .cozy-showcase .cz-description {\n    font-size: 15px;\n  }\n\n  .cozy-showcase .cz-review-list {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 20px;\n  }\n}\n\n\/* ==========================================\n   手机\n========================================== *\/\n\n@media screen and (max-width: 749px) {\n  .cozy-showcase {\n    --cz-ticker-gap: 60px;\n    --cz-radius: 14px;\n  }\n\n  .cozy-showcase .cz-wrap {\n    width: calc(100% - 32px);\n  }\n\n  .cozy-showcase .cz-ticker {\n    padding-block: 12px;\n  }\n\n  .cozy-showcase .cz-ticker-item {\n    font-size: 16px;\n  }\n\n  .cozy-showcase .cz-section {\n    padding-block: 38px;\n  }\n\n  .cozy-showcase .cz-heading {\n    font-size: clamp(26px, 7vw, 33px);\n  }\n\n  .cozy-showcase .cz-header {\n    margin-bottom: 24px;\n  }\n\n  .cozy-showcase .cz-description {\n    margin-top: 13px;\n    font-size: 14px;\n    line-height: 1.75;\n  }\n\n  .cozy-showcase .cz-story {\n    grid-template-columns: minmax(0, 1fr);\n    gap: 22px;\n    padding-top: 40px;\n  }\n\n  .cozy-showcase .cz-story-copy {\n    max-width: none;\n    text-align: center;\n  }\n\n  .cozy-showcase .cz-story--reverse .cz-story-copy,\n  .cozy-showcase .cz-story--reverse .cz-media {\n    order: initial;\n  }\n\n  .cozy-showcase .cz-purchase {\n    margin-top: 28px;\n  }\n\n  .cozy-showcase .cz-review-list {\n    display: flex;\n    gap: 16px;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scrollbar-width: none;\n  }\n\n  .cozy-showcase .cz-review-list::-webkit-scrollbar {\n    display: none;\n  }\n\n  .cozy-showcase .cz-review-item {\n    flex: 0 0 100%;\n    scroll-snap-align: start;\n  }\n\n  .cozy-showcase .cz-review-body {\n    padding: 22px 20px;\n  }\n\n  .cozy-showcase .cz-review-controls {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 18px;\n    margin-top: 20px;\n  }\n\n  .cozy-showcase .cz-review-arrow {\n    display: grid;\n    place-items: center;\n    width: 44px;\n    height: 44px;\n    margin: 0;\n    padding: 0;\n    border: 1px solid var(--cz-border);\n    border-radius: 50%;\n    background: #ffffff;\n    color: var(--cz-text);\n    font-size: 24px;\n    line-height: 1;\n    cursor: pointer;\n    appearance: none;\n  }\n\n  .cozy-showcase .cz-review-arrow:disabled {\n    opacity: .35;\n    cursor: default;\n  }\n\n  .cozy-showcase .cz-review-count {\n    min-width: 42px;\n    color: var(--cz-muted);\n    font-size: 14px;\n    text-align: center;\n  }\n}\n\n\/* ==========================================\n   减少动态效果\n========================================== *\/\n\n@media (prefers-reduced-motion: reduce) {\n  .cozy-showcase .cz-track {\n    animation: none;\n  }\n\n  .cozy-showcase .cz-ticker {\n    overflow-x: auto;\n  }\n\n  .cozy-showcase .cz-group[aria-hidden=\"true\"],\n  .cozy-showcase .cz-repeat {\n    display: none;\n  }\n\n  .cozy-showcase .cz-group {\n    min-width: 0;\n    gap: 24px;\n    padding-inline: 16px;\n  }\n\n  .cozy-showcase .cz-button {\n    transition: none;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"cozy-showcase\" data-cozy-showcase=\"\" data-cozy-ready=\"true\"\u003e\n\n  \u003c!-- 01. 滚动公告 --\u003e\n  \u003cdiv class=\"cz-ticker\"\u003e\n    \u003cdiv class=\"cz-track\"\u003e\n      \n        \u003cdiv class=\"cz-group\"\u003e\n          \n            \u003cp class=\"cz-ticker-item\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n        \u003c\/div\u003e\n      \n        \u003cdiv class=\"cz-group\" aria-hidden=\"true\"\u003e\n          \n            \u003cp class=\"cz-ticker-item\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              Limited Stock Available\n            \u003c\/p\u003e\n\n            \u003cp class=\"cz-ticker-item cz-repeat\" aria-hidden=\"true\"\u003e\n              81 of 100 units sold · Only 19 remaining\n            \u003c\/p\u003e\n          \n        \u003c\/div\u003e\n      \n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 02. 产品展示 --\u003e\n  \u003csection class=\"cz-section\"\u003e\n    \u003cdiv class=\"cz-wrap\"\u003e\n\n      \u003cheader class=\"cz-header\"\u003e\n        \u003ch2 class=\"cz-heading\"\u003e\n          🍫 Makes Every Treat More Special\n        \u003c\/h2\u003e\n\n        \u003cp class=\"cz-description\"\u003e\n          Turn chocolate balls into smooth, melted chocolate for\n          dipping strawberries, marshmallows, and your favorite\n          sweet treats.\n        \u003c\/p\u003e\n      \u003c\/header\u003e\n\n      \u003cfigure class=\"cz-media cz-video\"\u003e\n        \u003cvideo controls=\"\" loop=\"\" muted=\"\" playsinline=\"\" preload=\"none\" poster=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/preview_images\/ba2657356f12411d8b7876bd2f21e227.thumbnail.0000000000.jpg?v=1792527497\" aria-label=\"Chocolate dipping demonstration\" data-cozy-video=\"\"\u003e\n          \u003csource src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/videos\/c\/vp\/ba2657356f12411d8b7876bd2f21e227\/ba2657356f12411d8b7876bd2f21e227.HD-720p-1.6Mbps-98286869.mp4?v=0\" type=\"video\/mp4\"\u003e\n          Your browser does not support HTML video.\n        \u003c\/source\u003e\u003c\/video\u003e\n      \u003c\/figure\u003e\n\n      \u003cdiv class=\"cz-story\"\u003e\n        \u003cdiv class=\"cz-story-copy\"\u003e\n          \u003ch2 class=\"cz-heading\"\u003e\n            ☕ Your Cozy Little Ritual\n          \u003c\/h2\u003e\n\n          \u003cp class=\"cz-description\"\u003e\n            Enjoy a warm chocolate, coffee or tea moment at home,\n            whether you're reading, working, or winding down\n            after a long day.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cfigure class=\"cz-media\"\u003e\n          \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/4e26b0c3-f65d-403a-a227-328278e62a8d.png?v=1792689212\u0026amp;width=900\" srcset=\"\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/4e26b0c3-f65d-403a-a227-328278e62a8d.png?v=1792689212\u0026amp;width=360 360w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/4e26b0c3-f65d-403a-a227-328278e62a8d.png?v=1792689212\u0026amp;width=600 600w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/4e26b0c3-f65d-403a-a227-328278e62a8d.png?v=1792689212\u0026amp;width=900 900w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/4e26b0c3-f65d-403a-a227-328278e62a8d.png?v=1792689212\u0026amp;width=1200 1200w\n            \" sizes=\"(min-width: 1208px) 550px, (min-width: 750px) 48vw, calc(100vw - 32px)\" width=\"1500\" height=\"1500\" alt=\"Cup warmer displayed in a cozy home setting\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003c\/figure\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cz-story cz-story--reverse\"\u003e\n        \u003cdiv class=\"cz-story-copy\"\u003e\n          \u003ch2 class=\"cz-heading\"\u003e\n            ✨ Simple Warmth, One Touch\n          \u003c\/h2\u003e\n\n          \u003cp class=\"cz-description\"\u003e\n            Easy button controls and adjustable warmth make it\n            simple to enjoy your favorite cozy treats.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cfigure class=\"cz-media\"\u003e\n          \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/d4c1f65e-f79f-44e1-b43a-14fdb3748da5.png?v=1792586469\u0026amp;width=900\" srcset=\"\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/d4c1f65e-f79f-44e1-b43a-14fdb3748da5.png?v=1792586469\u0026amp;width=360 360w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/d4c1f65e-f79f-44e1-b43a-14fdb3748da5.png?v=1792586469\u0026amp;width=600 600w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/d4c1f65e-f79f-44e1-b43a-14fdb3748da5.png?v=1792586469\u0026amp;width=900 900w,\n              https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/d4c1f65e-f79f-44e1-b43a-14fdb3748da5.png?v=1792586469\u0026amp;width=1200 1200w\n            \" sizes=\"(min-width: 1208px) 550px, (min-width: 750px) 48vw, calc(100vw - 32px)\" width=\"1500\" height=\"1500\" alt=\"Cup warmer button controls and warming settings\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003c\/figure\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- 03. Shopify 原生加购 --\u003e\n      \u003cdiv class=\"cz-purchase\"\u003e\n        \n          \u003cform method=\"post\" action=\"\/cart\/add\" id=\"cozy-template--23406897889365__custom_liquid_LnRcTG-form\" accept-charset=\"UTF-8\" class=\"cz-form\" enctype=\"multipart\/form-data\"\u003e\n\u003cinput type=\"hidden\" name=\"form_type\" value=\"product\"\u003e\u003cinput type=\"hidden\" name=\"utf8\" value=\"✓\"\u003e\n            \n              \u003clabel class=\"cz-label\" for=\"cozy-template--23406897889365__custom_liquid_LnRcTG-variant\"\u003e\n                Choose an option\n              \u003c\/label\u003e\n\n              \u003cselect class=\"cz-select\" id=\"cozy-template--23406897889365__custom_liquid_LnRcTG-variant\" name=\"id\" data-cozy-variant=\"\"\u003e\n                \n                  \u003coption value=\"46529546616917\" data-available=\"true\" selected\u003e\n                    Pink\n                    — $30.99\n                    \n                  \u003c\/option\u003e\n                \n                  \u003coption value=\"46529546649685\" data-available=\"true\"\u003e\n                    White\n                    — $30.99\n                    \n                  \u003c\/option\u003e\n                \n                  \u003coption value=\"46529546682453\" data-available=\"true\"\u003e\n                    Green\n                    — $30.99\n                    \n                  \u003c\/option\u003e\n                \n              \u003c\/select\u003e\n            \n\n            \u003cinput type=\"hidden\" name=\"quantity\" value=\"1\"\u003e\n\n            \u003cbutton class=\"cz-button\" type=\"submit\" name=\"add\" data-cozy-add=\"\"\u003eAdd to Cart\u003c\/button\u003e\n          \u003cinput type=\"hidden\" name=\"product-id\" value=\"8553669853269\"\u003e\u003cinput type=\"hidden\" name=\"section-id\" value=\"template--23406897889365__custom_liquid_LnRcTG\"\u003e\n\u003c\/form\u003e\n        \n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- 04. 用户评价 --\u003e\n  \u003csection class=\"cz-section cz-reviews\"\u003e\n    \u003cdiv class=\"cz-wrap\"\u003e\n      \u003cheader class=\"cz-header\"\u003e\n        \u003ch2 class=\"cz-heading\"\u003eTestimonials\u003c\/h2\u003e\n      \u003c\/header\u003e\n\n      \u003cul class=\"cz-review-list\" data-cozy-reviews=\"\"\u003e\n        \n          \n\n          \u003cli class=\"cz-review-item\"\u003e\n            \u003carticle class=\"cz-review-card\"\u003e\n              \u003cfigure class=\"cz-review-image\"\u003e\n                \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_8.jpg?width=710\" srcset=\"\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_8.jpg?width=360 360w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_8.jpg?width=550 550w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_8.jpg?width=710 710w\n                  \" sizes=\"(min-width: 990px) 360px, (min-width: 750px) 45vw, calc(100vw - 32px)\" alt=\"Product photo accompanying the review from Lauren M.\" loading=\"lazy\" decoding=\"async\"\u003e\n              \u003c\/figure\u003e\n\n              \u003cdiv class=\"cz-review-body\"\u003e\n                \u003cp class=\"cz-stars\" aria-label=\"5 out of 5 stars\"\u003e\n                  \u003cspan aria-hidden=\"true\"\u003e★★★★★\u003c\/span\u003e\n                \u003c\/p\u003e\n\n                \u003ch3 class=\"cz-review-title\"\u003e\n                  Such a Lovely Gift 🎁\n                \u003c\/h3\u003e\n\n                \u003cblockquote class=\"cz-quote\"\u003e\n                  \u003cp\u003e\n                    “A cute and thoughtful gift for anyone who loves chocolate, cozy evenings, and little comforts.”\n                  \u003c\/p\u003e\n                \u003c\/blockquote\u003e\n\n                \u003cp class=\"cz-author\"\u003e\n                  — Lauren M.,\n                  verified buyer\n                \u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/article\u003e\n          \u003c\/li\u003e\n        \n          \n\n          \u003cli class=\"cz-review-item\"\u003e\n            \u003carticle class=\"cz-review-card\"\u003e\n              \u003cfigure class=\"cz-review-image\"\u003e\n                \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_10.jpg?width=710\" srcset=\"\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_10.jpg?width=360 360w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_10.jpg?width=550 550w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_10.jpg?width=710 710w\n                  \" sizes=\"(min-width: 990px) 360px, (min-width: 750px) 45vw, calc(100vw - 32px)\" alt=\"Product photo accompanying the review from Rachel T.\" loading=\"lazy\" decoding=\"async\"\u003e\n              \u003c\/figure\u003e\n\n              \u003cdiv class=\"cz-review-body\"\u003e\n                \u003cp class=\"cz-stars\" aria-label=\"5 out of 5 stars\"\u003e\n                  \u003cspan aria-hidden=\"true\"\u003e★★★★★\u003c\/span\u003e\n                \u003c\/p\u003e\n\n                \u003ch3 class=\"cz-review-title\"\u003e\n                  Simple and Easy to Use\n                \u003c\/h3\u003e\n\n                \u003cblockquote class=\"cz-quote\"\u003e\n                  \u003cp\u003e\n                    “It’s compact, easy to operate, and makes my cozy coffee moments even more enjoyable.”\n                  \u003c\/p\u003e\n                \u003c\/blockquote\u003e\n\n                \u003cp class=\"cz-author\"\u003e\n                  — Rachel T.,\n                  verified buyer\n                \u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/article\u003e\n          \u003c\/li\u003e\n        \n          \n\n          \u003cli class=\"cz-review-item\"\u003e\n            \u003carticle class=\"cz-review-card\"\u003e\n              \u003cfigure class=\"cz-review-image\"\u003e\n                \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_7.jpg?width=710\" srcset=\"\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_7.jpg?width=360 360w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_7.jpg?width=550 550w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_7.jpg?width=710 710w\n                  \" sizes=\"(min-width: 990px) 360px, (min-width: 750px) 45vw, calc(100vw - 32px)\" alt=\"Product photo accompanying the review from Olivia K.\" loading=\"lazy\" decoding=\"async\"\u003e\n              \u003c\/figure\u003e\n\n              \u003cdiv class=\"cz-review-body\"\u003e\n                \u003cp class=\"cz-stars\" aria-label=\"5 out of 5 stars\"\u003e\n                  \u003cspan aria-hidden=\"true\"\u003e★★★★★\u003c\/span\u003e\n                \u003c\/p\u003e\n\n                \u003ch3 class=\"cz-review-title\"\u003e\n                  Satisfied with the product!\n                \u003c\/h3\u003e\n\n                \u003cblockquote class=\"cz-quote\"\u003e\n                  \u003cp\u003e\n                    “I love the adorable design, and the green color looks beautiful on my desk.”\n                  \u003c\/p\u003e\n                \u003c\/blockquote\u003e\n\n                \u003cp class=\"cz-author\"\u003e\n                  — Olivia K.,\n                  verified buyer\n                \u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/article\u003e\n          \u003c\/li\u003e\n        \n          \n\n          \u003cli class=\"cz-review-item\"\u003e\n            \u003carticle class=\"cz-review-card\"\u003e\n              \u003cfigure class=\"cz-review-image\"\u003e\n                \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_11.jpg?width=710\" srcset=\"\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_11.jpg?width=360 360w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_11.jpg?width=550 550w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_11.jpg?width=710 710w\n                  \" sizes=\"(min-width: 990px) 360px, (min-width: 750px) 45vw, calc(100vw - 32px)\" alt=\"Product photo accompanying the review from Manny J.\" loading=\"lazy\" decoding=\"async\"\u003e\n              \u003c\/figure\u003e\n\n              \u003cdiv class=\"cz-review-body\"\u003e\n                \u003cp class=\"cz-stars\" aria-label=\"5 out of 5 stars\"\u003e\n                  \u003cspan aria-hidden=\"true\"\u003e★★★★★\u003c\/span\u003e\n                \u003c\/p\u003e\n\n                \u003ch3 class=\"cz-review-title\"\u003e\n                  I love it!\n                \u003c\/h3\u003e\n\n                \u003cblockquote class=\"cz-quote\"\u003e\n                  \u003cp\u003e\n                    “It is a really cute product and I recommend it!”\n                  \u003c\/p\u003e\n                \u003c\/blockquote\u003e\n\n                \u003cp class=\"cz-author\"\u003e\n                  — Manny J.,\n                  verified buyer\n                \u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/article\u003e\n          \u003c\/li\u003e\n        \n          \n\n          \u003cli class=\"cz-review-item\"\u003e\n            \u003carticle class=\"cz-review-card\"\u003e\n              \u003cfigure class=\"cz-review-image\"\u003e\n                \u003cimg src=\"https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_9.jpg?width=710\" srcset=\"\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_9.jpg?width=360 360w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_9.jpg?width=550 550w,\n                    https:\/\/cozellefireplaces.myshopify.com\/cdn\/shop\/files\/download_9.jpg?width=710 710w\n                  \" sizes=\"(min-width: 990px) 360px, (min-width: 750px) 45vw, calc(100vw - 32px)\" alt=\"Product photo accompanying the review from Amy H.\" loading=\"lazy\" decoding=\"async\"\u003e\n              \u003c\/figure\u003e\n\n              \u003cdiv class=\"cz-review-body\"\u003e\n                \u003cp class=\"cz-stars\" aria-label=\"5 out of 5 stars\"\u003e\n                  \u003cspan aria-hidden=\"true\"\u003e★★★★★\u003c\/span\u003e\n                \u003c\/p\u003e\n\n                \u003ch3 class=\"cz-review-title\"\u003e\n                  My New Cozy Essential\n                \u003c\/h3\u003e\n\n                \u003cblockquote class=\"cz-quote\"\u003e\n                  \u003cp\u003e\n                    “Perfect for my evening chocolate treats! It makes relaxing at home feel extra special.”\n                  \u003c\/p\u003e\n                \u003c\/blockquote\u003e\n\n                \u003cp class=\"cz-author\"\u003e\n                  — Amy H.,\n                  verified buyer\n                \u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/article\u003e\n          \u003c\/li\u003e\n        \n      \u003c\/ul\u003e\n\n      \u003cdiv class=\"cz-review-controls\"\u003e\n        \u003cbutton class=\"cz-review-arrow\" type=\"button\" aria-label=\"Previous review\" data-cozy-prev=\"\" disabled\u003e\n          \u003cspan aria-hidden=\"true\"\u003e‹\u003c\/span\u003e\n        \u003c\/button\u003e\n\n        \u003cspan class=\"cz-review-count\" data-cozy-count=\"\"\u003e1 \/ 5\u003c\/span\u003e\n\n        \u003cbutton class=\"cz-review-arrow\" type=\"button\" aria-label=\"Next review\" data-cozy-next=\"\"\u003e\n          \u003cspan aria-hidden=\"true\"\u003e›\u003c\/span\u003e\n        \u003c\/button\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  'use strict';\n\n  var runtimeKey = '__cozyShowcaseCompleteV2';\n\n  function init(root) {\n    if (root.dataset.cozyReady === 'true') return;\n    root.dataset.cozyReady = 'true';\n\n    var controller = new AbortController();\n    var signal = controller.signal;\n\n    var reducedMotion = window.matchMedia(\n      '(prefers-reduced-motion: reduce)'\n    );\n\n    var mobile = window.matchMedia('(max-width: 749px)');\n\n    \/* 规格与库存按钮 *\/\n    var variantSelect = root.querySelector('[data-cozy-variant]');\n    var addButton = root.querySelector('[data-cozy-add]');\n\n    function updateVariant() {\n      if (!variantSelect || !addButton) return;\n\n      var selected = variantSelect.options[variantSelect.selectedIndex];\n      var available = selected.dataset.available === 'true';\n\n      addButton.disabled = !available;\n      addButton.textContent = available ? 'Add to Cart' : 'Sold Out';\n    }\n\n    if (variantSelect) {\n      variantSelect.addEventListener('change', updateVariant, {\n        signal: signal\n      });\n\n      updateVariant();\n    }\n\n    \/* 手机评价滑动与按钮 *\/\n    var list = root.querySelector('[data-cozy-reviews]');\n    var items = Array.from(list.children);\n    var previous = root.querySelector('[data-cozy-prev]');\n    var next = root.querySelector('[data-cozy-next]');\n    var count = root.querySelector('[data-cozy-count]');\n    var frame = null;\n\n    function currentIndex() {\n      var left = list.getBoundingClientRect().left;\n      var nearest = 0;\n      var distance = Infinity;\n\n      items.forEach(function (item, index) {\n        var delta = Math.abs(\n          item.getBoundingClientRect().left - left\n        );\n\n        if (delta \u003c distance) {\n          distance = delta;\n          nearest = index;\n        }\n      });\n\n      return nearest;\n    }\n\n    function updateReviewControls() {\n      frame = null;\n\n      var index = mobile.matches ? currentIndex() : 0;\n\n      previous.disabled = index === 0;\n      next.disabled = index === items.length - 1;\n      count.textContent = (index + 1) + ' \/ ' + items.length;\n    }\n\n    function queueReviewUpdate() {\n      if (frame !== null) return;\n\n      frame = window.requestAnimationFrame(updateReviewControls);\n    }\n\n    function moveReview(direction) {\n      if (!mobile.matches) return;\n\n      var index = Math.max(\n        0,\n        Math.min(\n          items.length - 1,\n          currentIndex() + direction\n        )\n      );\n\n      var delta =\n        items[index].getBoundingClientRect().left -\n        list.getBoundingClientRect().left;\n\n      list.scrollBy({\n        left: delta,\n        behavior: reducedMotion.matches ? 'instant' : 'smooth'\n      });\n    }\n\n    previous.addEventListener('click', function () {\n      moveReview(-1);\n    }, { signal: signal });\n\n    next.addEventListener('click', function () {\n      moveReview(1);\n    }, { signal: signal });\n\n    list.addEventListener('scroll', queueReviewUpdate, {\n      passive: true,\n      signal: signal\n    });\n\n    mobile.addEventListener('change', function () {\n      list.scrollLeft = 0;\n      queueReviewUpdate();\n    }, { signal: signal });\n\n    window.addEventListener('resize', queueReviewUpdate, {\n      passive: true,\n      signal: signal\n    });\n\n    \/* 视频：可见时静音播放，离开视口后暂停 *\/\n    var video = root.querySelector('[data-cozy-video]');\n    var videoObserver = null;\n    var videoVisible = false;\n    var userPaused = false;\n    var automaticPause = false;\n    var playbackRequest = 0;\n\n    function pauseVideoAutomatically() {\n      playbackRequest++;\n\n      if (!video || video.paused) return;\n\n      automaticPause = true;\n      video.pause();\n    }\n\n    function syncVideo() {\n      if (!video) return;\n\n      if (!videoVisible || document.hidden) {\n        pauseVideoAutomatically();\n        return;\n      }\n\n      if (\n        reducedMotion.matches ||\n        userPaused ||\n        !video.muted ||\n        !video.paused\n      ) return;\n\n      var request = ++playbackRequest;\n      var promise = video.play();\n\n      if (promise \u0026\u0026 typeof promise.then === 'function') {\n        promise.then(function () {\n          if (\n            request !== playbackRequest ||\n            !videoVisible ||\n            document.hidden\n          ) {\n            pauseVideoAutomatically();\n          }\n        }).catch(function () {\n          \/* 浏览器阻止自动播放时，保留原生播放控件 *\/\n        });\n      }\n    }\n\n    if (video) {\n      video.addEventListener('pause', function () {\n        if (automaticPause) {\n          automaticPause = false;\n          return;\n        }\n\n        if (!video.ended) userPaused = true;\n      }, { signal: signal });\n\n      video.addEventListener('play', function () {\n        userPaused = false;\n      }, { signal: signal });\n\n      if ('IntersectionObserver' in window) {\n        videoObserver = new IntersectionObserver(function (entries) {\n          videoVisible = entries[0].isIntersecting;\n          syncVideo();\n        }, {\n          threshold: 0.4\n        });\n\n        videoObserver.observe(video);\n      }\n    }\n\n    document.addEventListener('visibilitychange', syncVideo, {\n      signal: signal\n    });\n\n    reducedMotion.addEventListener('change', function (event) {\n      if (event.matches) {\n        pauseVideoAutomatically();\n      } else {\n        syncVideo();\n      }\n    }, { signal: signal });\n\n    \/* Shopify 编辑器卸载时清理 *\/\n    document.addEventListener('shopify:section:unload', function (event) {\n      if (!event.target.contains(root)) return;\n\n      if (frame !== null) {\n        window.cancelAnimationFrame(frame);\n      }\n\n      if (videoObserver) {\n        videoObserver.disconnect();\n      }\n\n      playbackRequest++;\n      controller.abort();\n\n      if (video) video.pause();\n    }, { signal: signal });\n\n    updateReviewControls();\n  }\n\n  function initAll(scope) {\n    if (\n      scope.matches \u0026\u0026\n      scope.matches('[data-cozy-showcase]')\n    ) {\n      init(scope);\n    }\n\n    scope.querySelectorAll('[data-cozy-showcase]').forEach(init);\n  }\n\n  if (window[runtimeKey]) {\n    window[runtimeKey].initAll(document);\n    return;\n  }\n\n  window[runtimeKey] = {\n    initAll: initAll\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () {\n      initAll(document);\n    }, { once: true });\n  } else {\n    initAll(document);\n  }\n\n  document.addEventListener('shopify:section:load', function (event) {\n    initAll(event.target);\n  });\n})();\n\u003c\/script\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/section\u003e","brand":"Cozelle","offers":[{"title":"Pink","offer_id":48902656000161,"sku":"加热器-杯子加热器-粉色-140g-普货带电","price":30.99,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":48902656032929,"sku":"加热器-杯子加热器-白色-140g-普货带电","price":30.99,"currency_code":"USD","in_stock":true},{"title":"Green","offer_id":48902656065697,"sku":"加热器-杯子加热器-绿色-140g-普货带电","price":30.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0744\/9237\/9297\/files\/8b98350b-df97-4a94-876b-efc912a6f906.png?v=1794040118","url":"https:\/\/tervizo.com\/products\/usb-electric-mug-warmer-pad","provider":"Tervizo","version":"1.0","type":"link"}