{"product_id":"new-year-sale-punch-free-smart-sensor-magnetic-rechargeable-led-lights-2-4-12","title":"Punch-free Smart Sensor Magnetic Rechargeable LED Lights","description":"\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700\u0026amp;display=swap\"\u003e\n\n\u003cstyle\u003e\n  #cl-cabinet-lights-detail,\n  #cl-cabinet-lights-detail *,\n  #cl-cabinet-lights-detail *::before,\n  #cl-cabinet-lights-detail *::after {\n    box-sizing: border-box;\n  }\n\n  #cl-cabinet-lights-detail {\n    --cl-ink: #302a24;\n    --cl-muted: #686159;\n    --cl-accent: #ad642d;\n    --cl-accent-hover: #8f5022;\n    --cl-line: #e8e1d7;\n    --cl-soft: #faf7f1;\n\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n    padding: 0;\n    background: #ffffff;\n    color: var(--cl-ink);\n    font-family: \"Poppins\", Arial, sans-serif;\n    font-weight: 400;\n    font-style: normal;\n    line-height: 1.65;\n    text-align: left;\n    -webkit-text-size-adjust: 100%;\n  }\n\n  #cl-cabinet-lights-detail *,\n  #cl-cabinet-lights-detail h2,\n  #cl-cabinet-lights-detail h3,\n  #cl-cabinet-lights-detail .cl-btn {\n    font-family: \"Poppins\", Arial, sans-serif !important;\n  }\n\n  #cl-cabinet-lights-detail .cl-wrap {\n    width: 100%;\n    max-width: 1060px;\n    margin: 0 auto;\n    padding: 0 24px;\n  }\n\n  #cl-cabinet-lights-detail .cl-section {\n    padding: 44px 0;\n    border-bottom: 1px solid var(--cl-line);\n  }\n\n  #cl-cabinet-lights-detail .cl-section:first-child {\n    padding-top: 0;\n  }\n\n  #cl-cabinet-lights-detail h2,\n  #cl-cabinet-lights-detail h3,\n  #cl-cabinet-lights-detail p {\n    padding: 0;\n    font-style: normal;\n    text-transform: none;\n    overflow-wrap: break-word;\n  }\n\n  #cl-cabinet-lights-detail h2 {\n    margin: 0 0 14px;\n    color: var(--cl-ink);\n    font-size: 32px;\n    font-weight: 600;\n    line-height: 1.3;\n    letter-spacing: -0.7px;\n  }\n\n  #cl-cabinet-lights-detail h3 {\n    margin: 0 0 10px;\n    color: var(--cl-ink);\n    font-size: 20px;\n    font-weight: 600;\n    line-height: 1.4;\n    letter-spacing: -0.3px;\n  }\n\n  #cl-cabinet-lights-detail p {\n    margin: 0 0 16px;\n    color: var(--cl-muted);\n    font-size: 15px;\n    font-weight: 400;\n    line-height: 1.75;\n  }\n\n  #cl-cabinet-lights-detail .cl-eyebrow {\n    display: block;\n    margin: 0 0 10px;\n    color: var(--cl-accent);\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.6;\n    letter-spacing: 1.2px;\n    text-transform: uppercase;\n  }\n\n  \/* 图片在上，文字在下 *\/\n\n  #cl-cabinet-lights-detail .cl-row {\n    display: flex;\n    flex-direction: column;\n    align-items: stretch;\n    gap: 26px;\n  }\n\n  #cl-cabinet-lights-detail .cl-row + .cl-row {\n    margin-top: 36px;\n  }\n\n  #cl-cabinet-lights-detail .cl-row \u003e div {\n    width: 100%;\n    min-width: 0;\n    max-width: 760px;\n    margin: 0 auto;\n  }\n\n  #cl-cabinet-lights-detail .cl-image {\n    display: block;\n    width: 100%;\n    max-width: 100%;\n    height: auto;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    border-radius: 16px;\n  }\n\n  #cl-cabinet-lights-detail .cl-row \u003e .cl-image {\n    max-width: 760px;\n    margin: 0 auto;\n  }\n\n  #cl-cabinet-lights-detail .cl-row \u003e .cl-gif {\n    max-width: 560px;\n  }\n\n  \/* 特点列表 *\/\n\n  #cl-cabinet-lights-detail .cl-list {\n    list-style: none;\n    margin: 20px 0 0;\n    padding: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-list li {\n    position: relative;\n    margin: 0 0 12px;\n    padding: 0 0 0 23px;\n    color: var(--cl-muted);\n    font-size: 14px;\n    font-weight: 400;\n    line-height: 1.7;\n    overflow-wrap: break-word;\n  }\n\n  #cl-cabinet-lights-detail .cl-list li:last-child {\n    margin-bottom: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-list li::before {\n    content: \"✓\";\n    position: absolute;\n    left: 0;\n    top: 0;\n    color: var(--cl-accent);\n    font-weight: 600;\n  }\n\n  #cl-cabinet-lights-detail strong {\n    color: var(--cl-ink);\n    font-weight: 600;\n  }\n\n  \/* 按钮 *\/\n\n  #cl-cabinet-lights-detail .cl-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    max-width: 100%;\n    min-height: 48px;\n    margin-top: 18px;\n    padding: 13px 25px;\n    border: 1px solid transparent;\n    border-radius: 30px;\n    background: var(--cl-accent);\n    color: #ffffff;\n    font-size: 14px;\n    font-weight: 600;\n    font-style: normal;\n    line-height: 1.5;\n    letter-spacing: 0;\n    text-align: center;\n    text-transform: none;\n    text-decoration: none;\n    white-space: normal;\n    cursor: pointer;\n    transition: background-color 0.2s ease;\n  }\n\n  @media (hover: hover) {\n    #cl-cabinet-lights-detail .cl-btn:hover {\n      background: var(--cl-accent-hover);\n      color: #ffffff;\n      text-decoration: none;\n    }\n  }\n\n  #cl-cabinet-lights-detail .cl-btn:focus-visible,\n  #cl-cabinet-lights-detail summary:focus-visible,\n  #cl-cabinet-lights-detail .cl-reviews:focus-visible {\n    outline: 3px solid var(--cl-accent);\n    outline-offset: 4px;\n  }\n\n  #cl-cabinet-lights-detail .cl-buy-status {\n    margin: 10px 0 0;\n    font-size: 13px;\n  }\n\n  #cl-cabinet-lights-detail .cl-buy-status:empty {\n    display: none;\n  }\n\n  \/* 图文卡片 *\/\n\n  #cl-cabinet-lights-detail .cl-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 22px;\n    margin-top: 32px;\n  }\n\n  #cl-cabinet-lights-detail .cl-grid-three {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n  }\n\n  #cl-cabinet-lights-detail .cl-card {\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid var(--cl-line);\n    border-radius: 16px;\n    background: #ffffff;\n  }\n\n  #cl-cabinet-lights-detail .cl-card \u003e .cl-image {\n    border-radius: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-card-copy {\n    flex: 1;\n    padding: 22px;\n  }\n\n  #cl-cabinet-lights-detail .cl-card-copy h3 {\n    font-size: 18px;\n  }\n\n  #cl-cabinet-lights-detail .cl-card-copy p {\n    font-size: 14px;\n  }\n\n  #cl-cabinet-lights-detail .cl-card-copy p:last-child,\n  #cl-cabinet-lights-detail .cl-row \u003e div \u003e p:last-child {\n    margin-bottom: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-center {\n    max-width: 760px;\n    margin: 0 auto 26px;\n    text-align: center;\n  }\n\n  #cl-cabinet-lights-detail .cl-center p:last-child {\n    margin-bottom: 0;\n  }\n\n  \/* 使用步骤 *\/\n\n  #cl-cabinet-lights-detail .cl-steps {\n    counter-reset: cl-step;\n    list-style: none;\n    padding: 0;\n    margin: 20px 0 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-steps li {\n    position: relative;\n    counter-increment: cl-step;\n    min-height: 30px;\n    margin: 0 0 18px;\n    padding: 0 0 0 44px;\n    color: var(--cl-muted);\n    font-size: 14px;\n    line-height: 1.7;\n    overflow-wrap: break-word;\n  }\n\n  #cl-cabinet-lights-detail .cl-steps li:last-child {\n    margin-bottom: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-steps li::before {\n    content: counter(cl-step);\n    position: absolute;\n    left: 0;\n    top: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 30px;\n    height: 30px;\n    border-radius: 50%;\n    background: #f3e7d8;\n    color: var(--cl-accent);\n    font-weight: 600;\n  }\n\n  #cl-cabinet-lights-detail .cl-steps strong {\n    display: block;\n    margin-bottom: 2px;\n  }\n\n  \/* FAQ *\/\n\n  #cl-cabinet-lights-detail .cl-details {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    border-bottom: 1px solid var(--cl-line);\n    border-radius: 0;\n    background: transparent;\n    box-shadow: none;\n  }\n\n  #cl-cabinet-lights-detail .cl-details summary {\n    position: relative;\n    display: block;\n    min-height: 52px;\n    margin: 0;\n    padding: 18px 36px 18px 0;\n    list-style: none;\n    cursor: pointer;\n    color: var(--cl-ink);\n    background: transparent;\n    font-size: 15px;\n    font-weight: 500;\n    line-height: 1.6;\n    overflow-wrap: break-word;\n  }\n\n  #cl-cabinet-lights-detail .cl-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  #cl-cabinet-lights-detail .cl-details summary::marker {\n    content: \"\";\n  }\n\n  #cl-cabinet-lights-detail .cl-details summary::before {\n    content: none;\n  }\n\n  #cl-cabinet-lights-detail .cl-details summary::after {\n    content: \"+\";\n    position: absolute;\n    right: 4px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: var(--cl-accent);\n    font-size: 24px;\n    font-weight: 400;\n    line-height: 1;\n  }\n\n  #cl-cabinet-lights-detail .cl-details[open] \u003e summary::after {\n    content: \"−\";\n  }\n\n  #cl-cabinet-lights-detail .cl-answer {\n    padding: 0 24px 20px 0;\n    color: var(--cl-muted);\n    font-size: 14px;\n    line-height: 1.75;\n  }\n\n  #cl-cabinet-lights-detail .cl-answer p {\n    font-size: 14px;\n  }\n\n  #cl-cabinet-lights-detail .cl-answer p:last-child {\n    margin-bottom: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-details:not([open]) \u003e .cl-answer {\n    display: none;\n  }\n\n  #cl-cabinet-lights-detail .cl-guide {\n    margin-top: 24px;\n  }\n\n  #cl-cabinet-lights-detail .cl-guide .cl-image {\n    max-width: 760px;\n    margin: 0 auto;\n  }\n\n  \/* 评论 *\/\n\n  #cl-cabinet-lights-detail .cl-reviews {\n    display: flex;\n    align-items: stretch;\n    gap: 16px;\n    overflow-x: auto;\n    scroll-snap-type: x proximity;\n    -webkit-overflow-scrolling: touch;\n    overscroll-behavior-x: contain;\n    padding: 4px 0 16px;\n    scrollbar-width: thin;\n    scrollbar-color: #c8a27c #f4eee7;\n  }\n\n  #cl-cabinet-lights-detail .cl-review {\n    display: flex;\n    flex-direction: column;\n    flex: 0 0 calc((100% - 32px) \/ 3);\n    min-width: 0;\n    margin: 0;\n    overflow: hidden;\n    border: 1px solid var(--cl-line);\n    border-radius: 16px;\n    background: #ffffff;\n    scroll-snap-align: start;\n  }\n\n  #cl-cabinet-lights-detail .cl-review img {\n    display: block;\n    width: 100%;\n    height: auto;\n    margin: 0;\n    border: 0;\n    border-radius: 0;\n  }\n\n  #cl-cabinet-lights-detail .cl-review-copy {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    align-items: flex-start;\n    padding: 20px;\n  }\n\n  #cl-cabinet-lights-detail .cl-stars {\n    display: block;\n    margin-bottom: 10px;\n    color: #b9742e;\n    letter-spacing: 2px;\n    font-size: 14px;\n    line-height: 1.5;\n  }\n\n  #cl-cabinet-lights-detail .cl-review blockquote {\n    padding: 0;\n    margin: 0 0 14px;\n    border: 0;\n    background: transparent;\n    color: #514a43;\n    font-size: 13px;\n    font-weight: 400;\n    font-style: normal;\n    line-height: 1.75;\n    overflow-wrap: break-word;\n  }\n\n  #cl-cabinet-lights-detail .cl-review cite {\n    margin-top: auto;\n    color: var(--cl-ink);\n    font-size: 12px;\n    font-style: normal;\n    font-weight: 600;\n  }\n\n  #cl-cabinet-lights-detail .cl-hint {\n    margin: 12px 0 0;\n    text-align: center;\n    font-size: 12px;\n  }\n\n  \/* 底部购买引导 *\/\n\n  #cl-cabinet-lights-detail .cl-final {\n    margin: 30px 0 0;\n    padding: 34px 24px;\n    border-radius: 18px;\n    background: var(--cl-soft);\n    text-align: center;\n  }\n\n  #cl-cabinet-lights-detail .cl-final h2 {\n    font-size: 28px;\n  }\n\n  #cl-cabinet-lights-detail .cl-final p {\n    max-width: 600px;\n    margin: 0 auto 12px;\n  }\n\n  \/* 平板 *\/\n\n  @media (min-width: 750px) and (max-width: 989px) {\n    #cl-cabinet-lights-detail .cl-grid {\n      gap: 16px;\n    }\n\n    #cl-cabinet-lights-detail .cl-card-copy {\n      padding: 18px;\n    }\n\n    #cl-cabinet-lights-detail .cl-review {\n      flex-basis: calc((100% - 16px) \/ 2);\n    }\n  }\n\n  \/* 手机 *\/\n\n  @media (max-width: 749px) {\n    #cl-cabinet-lights-detail .cl-wrap {\n      padding: 0 16px;\n    }\n\n    #cl-cabinet-lights-detail .cl-section {\n      padding: 30px 0;\n    }\n\n    #cl-cabinet-lights-detail h2 {\n      font-size: 26px;\n      letter-spacing: -0.5px;\n    }\n\n    #cl-cabinet-lights-detail h3 {\n      font-size: 19px;\n    }\n\n    #cl-cabinet-lights-detail p {\n      font-size: 14px;\n    }\n\n    #cl-cabinet-lights-detail .cl-eyebrow {\n      font-size: 10px;\n      letter-spacing: 1px;\n    }\n\n    #cl-cabinet-lights-detail .cl-row {\n      gap: 22px;\n    }\n\n    #cl-cabinet-lights-detail .cl-row + .cl-row {\n      margin-top: 30px;\n    }\n\n    #cl-cabinet-lights-detail .cl-grid,\n    #cl-cabinet-lights-detail .cl-grid-three {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 20px;\n      margin-top: 26px;\n    }\n\n    #cl-cabinet-lights-detail .cl-card-copy {\n      padding: 18px;\n    }\n\n    #cl-cabinet-lights-detail .cl-reviews {\n      gap: 14px;\n    }\n\n    #cl-cabinet-lights-detail .cl-review {\n      flex-basis: 88%;\n    }\n\n    #cl-cabinet-lights-detail .cl-review-copy {\n      padding: 18px;\n    }\n\n    #cl-cabinet-lights-detail .cl-center {\n      margin-bottom: 22px;\n    }\n\n    #cl-cabinet-lights-detail .cl-details summary {\n      font-size: 14px;\n      padding-top: 16px;\n      padding-bottom: 16px;\n    }\n\n    #cl-cabinet-lights-detail .cl-final {\n      margin-top: 24px;\n      padding: 28px 20px;\n    }\n\n    #cl-cabinet-lights-detail .cl-final h2 {\n      font-size: 25px;\n    }\n\n    #cl-cabinet-lights-detail .cl-btn {\n      width: 100%;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    #cl-cabinet-lights-detail .cl-btn {\n      transition: none;\n    }\n\n    #cl-cabinet-lights-detail .cl-reviews {\n      scroll-behavior: auto;\n      scroll-snap-type: none;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection id=\"cl-cabinet-lights-detail\" class=\"cld\" lang=\"en\" aria-label=\"Rechargeable motion sensor cabinet lights\"\u003e\n  \u003cdiv class=\"cl-wrap\"\u003e\n\n    \u003c!-- STYLE 1 --\u003e\n    \u003csection class=\"cl-section\" aria-labelledby=\"cl-cabinet-lights-detail-style1\"\u003e\n      \u003cdiv class=\"cl-row\"\u003e\n        \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/d488cf97e3a58ea1749631816ff5ad03ace145ec.png\" alt=\"Style 1 cabinet light with built-in motion sensor\" width=\"1000\" height=\"1000\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv\u003e\n          \u003cspan class=\"cl-eyebrow\"\u003e\n            Style 1 · Everyday Convenience\n          \u003c\/span\u003e\n\n          \u003ch2 id=\"cl-cabinet-lights-detail-style1\"\u003e\n            Small Lights. A Brighter Home.\n          \u003c\/h2\u003e\n\n          \u003cp\u003e\n            Rechargeable lighting for cabinets, closets, and everyday spaces.\n          \u003c\/p\u003e\n\n          \u003cul class=\"cl-list\" role=\"list\"\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eMotion activated.\u003c\/strong\u003e\n              Switches on with movement and off after inactivity.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eAdjustable brightness.\u003c\/strong\u003e\n              Set the light to suit your space.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eUSB-C rechargeable.\u003c\/strong\u003e\n              No replacement batteries needed.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eMagnetic mounting.\u003c\/strong\u003e\n              Lift off to charge. Snap back to use.\n            \u003c\/li\u003e\n          \u003c\/ul\u003e\n\n          \u003ca class=\"cl-btn\" href=\"#cl-quantity-selector\" data-cl-buy\u003e\n            Choose Your Lights →\n          \u003c\/a\u003e\n\n          \u003cp class=\"cl-buy-status\" role=\"status\"\u003e\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cl-grid cl-grid-three\"\u003e\n        \u003carticle class=\"cl-card\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/ff8fe0c319cddb65656b23c66f6940272257fea8.png\" alt=\"Magnetic mounting with adhesive metal plates\" width=\"1000\" height=\"1000\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-card-copy\"\u003e\n            \u003ch3\u003eSnap On. Lift Off.\u003c\/h3\u003e\n            \u003cp\u003e\n              Snap onto metal or use the included adhesive plates.\n              No wiring needed.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-card\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/d91e263434cd9075076e9686f3c9b8a42c58f04e.png\" alt=\"Light used in an entryway, closet, vanity, and stairway\" width=\"1000\" height=\"1000\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-card-copy\"\u003e\n            \u003ch3\u003eLight Where You Need It\u003c\/h3\u003e\n            \u003cp\u003e\n              A little extra light for closets, entryways, and stairs.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-card\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/e596f35d84243642ab742f3b5ce9844e126f3bb9.png\" alt=\"Indoor lighting ideas for cabinets, wardrobes, and walls\" width=\"1000\" height=\"1000\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-card-copy\"\u003e\n            \u003ch3\u003eBrighten Dark Corners\u003c\/h3\u003e\n            \u003cp\u003e\n              Make cabinets and wardrobe shelves easier to see.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003c!-- STYLE 2 --\u003e\n    \u003csection class=\"cl-section\" aria-labelledby=\"cl-cabinet-lights-detail-style2\"\u003e\n      \u003cdiv class=\"cl-row\"\u003e\n        \u003cimg class=\"cl-image cl-gif\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/356959fbae714b3a733b5094d244b360d584ec69.gif\" alt=\"Style 2 under-cabinet light demonstration\" width=\"480\" height=\"640\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv\u003e\n          \u003cspan class=\"cl-eyebrow\"\u003e\n            Style 2 · Flexible Lighting Modes\n          \u003c\/span\u003e\n\n          \u003ch2 id=\"cl-cabinet-lights-detail-style2\"\u003e\n            Open a Cabinet. See Clearly.\n          \u003c\/h2\u003e\n\n          \u003cp\u003e\n            Clear light for shelves and storage, without extra wiring.\n          \u003c\/p\u003e\n\n          \u003cul class=\"cl-list\" role=\"list\"\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eMotion mode.\u003c\/strong\u003e\n              About 10 ft detection range and a 120° angle in low light.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eAuto off.\u003c\/strong\u003e\n              Switches off after about 18 seconds without motion.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eAlways-on mode.\u003c\/strong\u003e\n              Continuous light when you need it.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eThree brightness levels.\u003c\/strong\u003e\n              Choose 50%, 75%, or 100%.\n            \u003c\/li\u003e\n          \u003c\/ul\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cl-row\"\u003e\n        \u003cimg class=\"cl-image cl-gif\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/d0ab3f26ec63b0dd0bc92239647ae87bdd297dea.gif\" alt=\"Cabinet shelves illuminated by a rechargeable LED light\" width=\"480\" height=\"640\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv\u003e\n          \u003cspan class=\"cl-eyebrow\"\u003e\n            Comfortable Everyday Light\n          \u003c\/span\u003e\n\n          \u003ch3\u003eJust Enough Light\u003c\/h3\u003e\n\n          \u003cp\u003e\n            Find pantry staples and clothes without turning on the main light.\n          \u003c\/p\u003e\n\n          \u003cp\u003e\n            Choose motion mode or always-on lighting to suit your routine.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cl-grid\"\u003e\n        \u003carticle class=\"cl-card\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/389182cdabb9437accaf640bcc0e1b6d61d74497.jpeg\" alt=\"Style 2 rechargeable battery and USB-C charging port\" width=\"1500\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-card-copy\"\u003e\n            \u003ch3\u003eRecharge. Reattach. Repeat.\u003c\/h3\u003e\n            \u003cp\u003e\n              Lift off the magnetic mount, recharge with USB-C,\n              and snap back into place.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-card\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/846e26f3e861017e9d2fa566e69952617aa0d160.jpeg\" alt=\"Style 2 lighting in kitchens, wardrobes, bedrooms, and home offices\" width=\"1500\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-card-copy\"\u003e\n            \u003ch3\u003eOne Light. Plenty of Places.\u003c\/h3\u003e\n            \u003cp\u003e\n              Use in cabinets, pantries, closets, hallways, and more.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n\n    \u003c!-- HOW TO USE --\u003e\n    \u003csection class=\"cl-section\" aria-labelledby=\"cl-cabinet-lights-detail-setup\"\u003e\n      \u003cdiv class=\"cl-row\"\u003e\n        \u003cimg class=\"cl-image cl-gif\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/22984c989932f1c57c1efce749cf4024a665d77b.gif\" alt=\"Magnetic cabinet light installation demonstration\" width=\"480\" height=\"640\" loading=\"lazy\" decoding=\"async\"\u003e\n\n        \u003cdiv\u003e\n          \u003cspan class=\"cl-eyebrow\"\u003eSimple Setup\u003c\/span\u003e\n\n          \u003ch2 id=\"cl-cabinet-lights-detail-setup\"\u003e\n            Easy to Set Up\n          \u003c\/h2\u003e\n\n          \u003col class=\"cl-steps\" role=\"list\"\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eCharge.\u003c\/strong\u003e\n              Connect a USB-C cable before first use.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eChoose a spot.\u003c\/strong\u003e\n              Use a clean, dry mounting surface.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eAttach the mount.\u003c\/strong\u003e\n              Use metal or the included adhesive plates.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eSnap into place.\u003c\/strong\u003e\n              Select your mode and brightness.\n            \u003c\/li\u003e\n            \u003cli\u003e\n              \u003cstrong\u003eRecharge as needed.\u003c\/strong\u003e\n              Lift off, charge, and reattach.\n            \u003c\/li\u003e\n          \u003c\/ol\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdetails class=\"cl-details cl-guide\"\u003e\n        \u003csummary\u003eView the illustrated installation guide\u003c\/summary\u003e\n\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cimg class=\"cl-image\" src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/09ac082919fc4e46d25af3c4f97376a1ddcbf503.jpeg\" alt=\"Magnetic and adhesive cabinet light mounting guide\" width=\"1500\" height=\"1500\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/section\u003e\n\n    \u003c!-- CUSTOMER PHOTOS AND REVIEWS --\u003e\n    \u003csection class=\"cl-section\" aria-labelledby=\"cl-cabinet-lights-detail-reviews\"\u003e\n      \u003cdiv class=\"cl-center\"\u003e\n        \u003cspan class=\"cl-eyebrow\"\u003e\n          Customer Photos \u0026amp; Feedback\n        \u003c\/span\u003e\n\n        \u003ch2 id=\"cl-cabinet-lights-detail-reviews\"\u003e\n          Lights in Everyday Homes\n        \u003c\/h2\u003e\n\n        \u003cp\u003eSee how customers light their everyday spaces.\u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"cl-reviews\" role=\"region\" tabindex=\"0\" aria-label=\"Customer reviews\" aria-describedby=\"cl-reviews-hint\"\u003e\n        \u003carticle class=\"cl-review\"\u003e\n          \u003cimg src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/5c204d5c974b7a9d0fb37609b3ce06b4a450c7ee.jpeg\" alt=\"AP's photo of lighting under a kitchen island\" width=\"1224\" height=\"1632\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-review-copy\"\u003e\n            \u003cspan class=\"cl-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"\u003e\n              ★★★★★\n            \u003c\/span\u003e\n\n            \u003cblockquote\u003e\n              “They were easy to install and think it adds a moody vibe.\n              I will purchase more for under my cabinets.”\n            \u003c\/blockquote\u003e\n\n            \u003ccite\u003e— AP\u003c\/cite\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-review\"\u003e\n          \u003cimg src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/0dc5de8715afb6227c1677e3e72407599abf6c3d.jpeg\" alt=\"Robert Pettit's photo of lighting inside a camper cabinet\" width=\"1224\" height=\"1632\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-review-copy\"\u003e\n            \u003cspan class=\"cl-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"\u003e\n              ★★★★★\n            \u003c\/span\u003e\n\n            \u003cblockquote\u003e\n              “These lights are perfect for our Camper.\n              It makes it a lot easier to see in the cabinets.”\n            \u003c\/blockquote\u003e\n\n            \u003ccite\u003e— Robert Pettit\u003c\/cite\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-review\"\u003e\n          \u003cimg src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/7cad6344307a7e97f35a943168aa2d1e93e89b52.jpeg\" alt=\"Dora's photo of a closet with rechargeable lights\" width=\"1224\" height=\"1632\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-review-copy\"\u003e\n            \u003cspan class=\"cl-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"\u003e\n              ★★★★★\n            \u003c\/span\u003e\n\n            \u003cblockquote\u003e\n              “So now every time I open doors to closet,\n              the lights automatically go on and I can see\n              our clothes so much better!!”\n            \u003c\/blockquote\u003e\n\n            \u003ccite\u003e— Dora\u003c\/cite\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-review\"\u003e\n          \u003cimg src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/cc286ce6dcee25a4ef70e6764238e62660ba17db.jpeg\" alt=\"Andrea's photo of illuminated shelves\" width=\"1224\" height=\"1632\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-review-copy\"\u003e\n            \u003cspan class=\"cl-stars\" role=\"img\" aria-label=\"5 out of 5 stars\"\u003e\n              ★★★★★\n            \u003c\/span\u003e\n\n            \u003cblockquote\u003e\n              “Exceeded my expectations. Great product”\n            \u003c\/blockquote\u003e\n\n            \u003ccite\u003e— Andrea\u003c\/cite\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n\n        \u003carticle class=\"cl-review\"\u003e\n          \u003cimg src=\"https:\/\/www.noveltyh.com\/cdn\/shop\/files\/image\/2867a89331696da248e17c7dac3463b7aca6ff8b.jpeg\" alt=\"Customer photo of warm lighting under kitchen cabinets\" width=\"1224\" height=\"1632\" loading=\"lazy\" decoding=\"async\"\u003e\n\n          \u003cdiv class=\"cl-review-copy\"\u003e\n            \u003cblockquote\u003e\n              “These are SO awesome. They give such a nice warm look\n              to our kitchen. I also have one in our little laundry\n              closet and it’s great.”\n            \u003c\/blockquote\u003e\n\n            \u003ccite\u003e— Praisety Customer\u003c\/cite\u003e\n          \u003c\/div\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n\n      \u003cp class=\"cl-hint\" id=\"cl-reviews-hint\"\u003e\n        Swipe, scroll, or use the arrow keys to see more photos →\n      \u003c\/p\u003e\n    \u003c\/section\u003e\n\n    \u003c!-- FAQ --\u003e\n    \u003csection class=\"cl-section\" aria-labelledby=\"cl-cabinet-lights-detail-faq\"\u003e\n      \u003cdiv class=\"cl-center\"\u003e\n        \u003cspan class=\"cl-eyebrow\"\u003eGood to Know\u003c\/span\u003e\n\n        \u003ch2 id=\"cl-cabinet-lights-detail-faq\"\u003e\n          Frequently Asked Questions\n        \u003c\/h2\u003e\n      \u003c\/div\u003e\n\n      \u003cdetails class=\"cl-details\"\u003e\n        \u003csummary\u003eDoes it need to stay plugged in?\u003c\/summary\u003e\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cp\u003e\n            No. The rechargeable battery powers the light.\n            Plug in a USB-C cable when it needs charging.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"cl-details\"\u003e\n        \u003csummary\u003eDo I need tools or an electrician?\u003c\/summary\u003e\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cp\u003e\n            No. Mount it on suitable metal or use the included\n            adhesive metal plates.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"cl-details\"\u003e\n        \u003csummary\u003eCan I adjust the brightness?\u003c\/summary\u003e\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cp\u003e\n            Yes. Both styles offer adjustable brightness.\n            Style 2 has 50%, 75%, and 100% settings.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"cl-details\"\u003e\n        \u003csummary\u003eHow does motion mode work on Style 2?\u003c\/summary\u003e\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cp\u003e\n            In low light, Style 2 detects motion within about\n            10 ft at a 120° angle. It switches off after about\n            18 seconds without motion.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n\n      \u003cdetails class=\"cl-details\"\u003e\n        \u003csummary\u003eWhere can I use these lights?\u003c\/summary\u003e\n        \u003cdiv class=\"cl-answer\"\u003e\n          \u003cp\u003e\n            Use indoors in cabinets, closets, pantries, hallways,\n            stairways, and on shelves.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/section\u003e\n\n    \u003c!-- FINAL CTA --\u003e\n    \u003cdiv class=\"cl-final\"\u003e\n      \u003ch2\u003eBrighten Your Everyday\u003c\/h2\u003e\n\n      \u003cp\u003eChoose your style. Add light where you need it.\u003c\/p\u003e\n\n      \u003ca class=\"cl-btn\" href=\"#cl-quantity-selector\" data-cl-buy\u003e\n        Choose Your Lights →\n      \u003c\/a\u003e\n\n      \u003cp class=\"cl-buy-status\" role=\"status\"\u003e\u003c\/p\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n(function () {\n  \"use strict\";\n\n  \/*\n   * 使用事件委托，兼容 Shopify 区块重新加载。\n   * 重复插入脚本时，先移除旧监听，避免重复执行。\n   *\/\n  var namespace = \"__clCabinetLightsDetail\";\n  var previous = window[namespace];\n\n  if (previous) {\n    document.removeEventListener(\"click\", previous.click);\n    document.removeEventListener(\"keydown\", previous.keydown);\n  }\n\n  function reducedMotion() {\n    return window.matchMedia \u0026\u0026\n      window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n  }\n\n  function isVisible(element, root) {\n    if (!element || root.contains(element)) return false;\n\n    if (element.closest(\n      '[hidden], [inert], [aria-hidden=\"true\"], ' +\n      'dialog, [role=\"dialog\"], cart-drawer, .cart-drawer, ' +\n      '.sticky-atc, .sticky-add-to-cart, .sticky-atc-container'\n    )) {\n      return false;\n    }\n\n    var rect = element.getBoundingClientRect();\n    var style = window.getComputedStyle(element);\n\n    return rect.width \u003e 0 \u0026\u0026\n      rect.height \u003e 0 \u0026\u0026\n      style.display !== \"none\" \u0026\u0026\n      style.visibility !== \"hidden\" \u0026\u0026\n      style.visibility !== \"collapse\";\n  }\n\n  function findAbove(scope, selector, root) {\n    var elements = scope.querySelectorAll(selector);\n    var best = null;\n    var closest = -Infinity;\n\n    for (var i = 0; i \u003c elements.length; i++) {\n      var element = elements[i];\n\n      if (!isVisible(element, root)) continue;\n\n      \/* 跳过包含详情模块的祖先容器 *\/\n      if (element.contains(root)) continue;\n\n      if (!(root.compareDocumentPosition(element) \u0026\n        Node.DOCUMENT_POSITION_PRECEDING)) {\n        continue;\n      }\n\n      var top = element.getBoundingClientRect().top;\n\n      if (top \u003e closest) {\n        best = element;\n        closest = top;\n      }\n    }\n\n    return best;\n  }\n\n  function findTarget(root) {\n    var anchor = document.getElementById(\"cl-quantity-selector\");\n\n    if (isVisible(anchor, root)) return anchor;\n\n    var scope = root.closest(\"main\") ||\n      document.querySelector(\"main\") ||\n      document;\n\n    var selectors = [\n      'quantity-breaks, quantity-breaks-picker, ' +\n      '.quantity-breaks, .quantity-breaks-container, ' +\n      '.quantity-breaks-wrapper, [id^=\"quantity-breaks\"], ' +\n      '[data-quantity-breaks], [data-bundle-selector], ' +\n      '.bundle-selector, .bundle-selection',\n\n      '.product-form__quantity, [id^=\"Quantity-Form-\"], ' +\n      '.product__quantity, quantity-input, input[name=\"quantity\"]',\n\n      'variant-selects, variant-radios, .product-form__input',\n\n      'product-info, .product__info-container, ' +\n      'form[action*=\"\/cart\/add\"]'\n    ];\n\n    for (var i = 0; i \u003c selectors.length; i++) {\n      var target = findAbove(scope, selectors[i], root);\n      if (target) return target;\n    }\n\n    return null;\n  }\n\n  function headerOffset() {\n    var headers = document.querySelectorAll(\n      \".shopify-section-header, sticky-header, \" +\n      \"#shopify-section-header, .shopify-section-header-sticky\"\n    );\n\n    var offset = 0;\n\n    for (var i = 0; i \u003c headers.length; i++) {\n      var header = headers[i];\n      var rect = header.getBoundingClientRect();\n      var style = window.getComputedStyle(header);\n\n      if (\n        (style.position === \"fixed\" || style.position === \"sticky\") \u0026\u0026\n        style.visibility !== \"hidden\" \u0026\u0026\n        rect.height \u003e 0 \u0026\u0026\n        rect.bottom \u003e 0 \u0026\u0026\n        rect.top \u003c= 1\n      ) {\n        offset = Math.max(offset, rect.bottom);\n      }\n    }\n\n    return Math.min(offset, window.innerHeight * 0.4);\n  }\n\n  function focusTarget(target) {\n    var hadTabindex = target.hasAttribute(\"tabindex\");\n\n    if (!hadTabindex) {\n      target.setAttribute(\"tabindex\", \"-1\");\n    }\n\n    target.focus({ preventScroll: true });\n\n    if (!hadTabindex) {\n      if (document.activeElement === target) {\n        target.addEventListener(\"blur\", function () {\n          target.removeAttribute(\"tabindex\");\n        }, { once: true });\n      } else {\n        target.removeAttribute(\"tabindex\");\n      }\n    }\n  }\n\n  function handleClick(event) {\n    if (\n      event.defaultPrevented ||\n      event.button !== 0 ||\n      event.metaKey ||\n      event.ctrlKey ||\n      event.shiftKey ||\n      event.altKey ||\n      !(event.target instanceof Element)\n    ) {\n      return;\n    }\n\n    var button = event.target.closest(\n      \"#cl-cabinet-lights-detail [data-cl-buy]\"\n    );\n\n    if (!button) return;\n\n    var root = button.closest(\"#cl-cabinet-lights-detail\");\n    var target = findTarget(root);\n    var status = button.parentElement.querySelector(\".cl-buy-status\");\n\n    event.preventDefault();\n\n    if (!target) {\n      if (status) {\n        status.textContent =\n          \"Please use the product options above to choose your lights.\";\n      }\n      return;\n    }\n\n    root.querySelectorAll(\".cl-buy-status\").forEach(function (item) {\n      item.textContent = \"\";\n    });\n\n    focusTarget(target);\n\n    var rect = target.getBoundingClientRect();\n    var offset = headerOffset();\n    var available = Math.max(0, window.innerHeight - offset - 32);\n    var spaceAbove = Math.max(16, (available - rect.height) \/ 2);\n\n    window.scrollTo({\n      top: Math.max(\n        0,\n        rect.top + window.scrollY - offset - spaceAbove\n      ),\n      behavior: reducedMotion() ? \"auto\" : \"smooth\"\n    });\n  }\n\n  function handleKeydown(event) {\n    if (\n      event.defaultPrevented ||\n      event.altKey ||\n      event.ctrlKey ||\n      event.metaKey ||\n      event.shiftKey ||\n      !(event.target instanceof Element) ||\n      !event.target.matches(\"#cl-cabinet-lights-detail .cl-reviews\")\n    ) {\n      return;\n    }\n\n    var track = event.target;\n    var card = track.querySelector(\".cl-review\");\n    if (!card) return;\n\n    var style = window.getComputedStyle(track);\n    var gap = parseFloat(style.columnGap) || 0;\n    var step = card.getBoundingClientRect().width + gap;\n    var behavior = reducedMotion() ? \"auto\" : \"smooth\";\n\n    if (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n      event.preventDefault();\n\n      track.scrollBy({\n        left: event.key === \"ArrowRight\" ? step : -step,\n        behavior: behavior\n      });\n    } else if (event.key === \"Home\" || event.key === \"End\") {\n      event.preventDefault();\n\n      track.scrollTo({\n        left: event.key === \"Home\" ? 0 : track.scrollWidth,\n        behavior: behavior\n      });\n    }\n  }\n\n  window[namespace] = {\n    click: handleClick,\n    keydown: handleKeydown\n  };\n\n  document.addEventListener(\"click\", handleClick);\n  document.addEventListener(\"keydown\", handleKeydown);\n})();\n\u003c\/script\u003e","brand":"mysite","offers":[{"title":"🔥White \/ Buy 1 Get 1 Free (2PCS)","offer_id":68195709649085,"sku":"B06126111002-WHITE-2PCS","price":19.99,"currency_code":"USD","in_stock":true},{"title":"🔥White \/ Buy 2 Get 2 Free (4PCS)","offer_id":68195709681853,"sku":"B06126111002-WHITE-4PCS","price":25.99,"currency_code":"USD","in_stock":true},{"title":"🔥White \/ Buy 3 Get 3 Free (6PCS)","offer_id":68195769680061,"sku":"B06126111002-WHITE-6PCS","price":33.99,"currency_code":"USD","in_stock":true},{"title":"🔥White \/ Buy 5 Get 5 Free (10PCS)","offer_id":68195769712829,"sku":"B06126111002-WHITE-10PCS","price":48.99,"currency_code":"USD","in_stock":true},{"title":"Warm White \/ Buy 1 Get 1 Free (2PCS)","offer_id":68195709943997,"sku":"B06126111002-WARMWHITE-2PCS","price":19.99,"currency_code":"USD","in_stock":true},{"title":"Warm White \/ Buy 2 Get 2 Free (4PCS)","offer_id":68195709976765,"sku":"B06126111002-WARMWHITE-4PCS","price":25.99,"currency_code":"USD","in_stock":true},{"title":"Warm White \/ Buy 3 Get 3 Free (6PCS)","offer_id":68195769745597,"sku":"B06126111002-WARMWHITE-6PCS","price":33.99,"currency_code":"USD","in_stock":true},{"title":"Warm White \/ Buy 5 Get 5 Free (10PCS)","offer_id":68195769778365,"sku":"B06126111002-WARMWHITE-10PCS","price":48.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0794\/3510\/4445\/files\/e09cf2731906af759d44a5a800e2560c.png?v=1794557052","url":"https:\/\/sieaoenio.com\/products\/new-year-sale-punch-free-smart-sensor-magnetic-rechargeable-led-lights-2-4-12","provider":"Sieaoenio","version":"1.0","type":"link"}