{"title":"低压控制器","description":null,"products":[{"product_id":"cct-touch-panel-controller","title":"CCT 触摸屏控制器","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003c!-- TODO: Replace the image src attributes below with your actual hosted CCT Touch Panel Controller product photography URLs once uploaded to Shopify. --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting CCT touch panel controller with CCT segmented dim module DC12-24V wireless RF LED dimmer\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/1f9d63cd-aee4-4e92-baa0-dc07b107e110.png?v=1785609853\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting CCT touch panel controller white wall mount remote with color ring brightness and speed buttons\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/ProductPhotoDimensionGuide_5.png?v=1785609245\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003eCCT触摸面板控制器\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003eCCT触摸面板控制器是一款专为冷白光和暖白光LED灯带系统设计的无线射频调光器。它通过全触控方式调节亮度、速度和色温，为住宅、零售和酒店环境提供冷暖光之间的平滑过渡。其色环界面可精确调整CCT，而匹配码配对则支持一对一控制设置。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003e直流12-24V输入\u003c\/span\u003e \u003cspan\u003e5A x 2通道输出\u003c\/span\u003e \u003cspan\u003e高达240W\u003c\/span\u003e \u003cspan\u003e11种照明模式\u003c\/span\u003e \u003cspan\u003eCCT双线CW\/WW\u003c\/span\u003e \u003cspan\u003e一对一配对\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/LED_Full_Touch_Panel_-_Tunable_White_Controller.pdf?v=1785609853\" class=\"spec-btn\" rel=\"noopener\" title=\"CCT Touch Panel Controller Spec Sheet\" target=\"_blank\"\u003e下载规格表\u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e主要特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e全触控面板，带色环，可实现冷白光到暖白光的无级混合。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e照明模式\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e提供11种模式，包括白光和暖光跳变、日出、日落和渐变过渡。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e调光\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e无级亮度调节，8级速度控制。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e输出\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e为CW\/WW LED灯带提供每通道5A，共2通道输出。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e功率处理\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e5V时额定功率高达120W，24V时额定功率高达240W。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e电压范围\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e直流12-24V输入。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e工作温度\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e额定工作环境温度为-20℃至60℃。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e结构\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e无线射频铁壳外壳，经久耐用。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e兼容性\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e专为CCT双线、CW\/WW LED灯带系统打造，适用于需要可调白光照明的空间，从客厅、卧室到展示照明和特色墙。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e配对\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持一对一匹配码配对，用于专用控制器到灯带的设置。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e产品尺寸\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e尺寸为长85 x 宽62 x 高22毫米。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e输入\/输出\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通过电源正\/负端子输入。输出到LED灯带CW\/WW。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42814500372565,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/ProductPhotoDimensionGuide_5.png?v=1785609245"},{"product_id":"led-wifi-controller-kit","title":"LED WiFi控制器套件","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting LED strip WiFi controller with 4-zone beacon remote RGBW smart control\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/90acd1cc-573e-42c0-83f2-7aa19518b210.png?v=1785614830\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting Tuya WiFi LED controller RGBW with 4-zone beacon remote DC5-24V\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_5_cc79dbf0-ad0e-4c3c-85ec-4d3ee8101c86.png?v=1785614830\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003eLED WiFi 控制器套件\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003eLED 灯带 WiFi 控制器套件是一款由涂鸦提供支持的智能控制器，旨在通过 WiFi 操作 RGBW LED 灯带系统，支持 4 区遥控和信标控制。与涂鸦或智能生活应用程序配对后，它可以通过 Amazon Alexa、Google Assistant 和其他主要智能家居平台实现日程安排、场景设置和语音控制。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003eRGBW\u003c\/span\u003e \u003cspan\u003eDC5-24V 输入\u003c\/span\u003e \u003cspan\u003e6A\/CH，最大 15A\u003c\/span\u003e \u003cspan\u003e4 区信标遥控器\u003c\/span\u003e \u003cspan\u003e涂鸦 WiFi App 控制\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/LED_Wifi_Controller_Kit.pdf?v=1785614830\" class=\"spec-btn\" rel=\"noopener\" title=\"LED WiFi Controller Kit Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e主要特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003eWiFi 智能控制器，集成涂鸦应用程序和物理信标遥控器。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e智能家居兼容性\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e兼容 Amazon Alexa、Google Assistant 和其他涂鸦兼容的智能家居平台。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e区域控制\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持 4 区控制；一个信标遥控器最多可与 3 个控制器配对。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e应用程序设置\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通电后由涂鸦或智能生活应用程序自动检测，并提供 WiFi 网络设置引导。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e配对\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e控制器通过在通电后按住区域按钮 5 秒与远程区域配对；解除配对则使用区域按钮和调暗按钮。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e遥控功能\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e所有区域开\/关、调亮、调暗、延迟关机以及 4 个区域的单独区域选择。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e安装\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e包括安装支架、螺丝、双面胶带和螺丝刀，用于表面安装。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42814653759573,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/ProductPhotoDimensionGuide_5_d83426a2-9cee-44e6-b8b1-d5ca558dec41.png?v=1785615154"},{"product_id":"wifi-music-controller","title":"WiFi音乐控制器","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting Colorful-X7 Tuya WiFi smart LED music controller with SPI output for pixel strips\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/c17bd552-b8f0-4094-a4d9-cd7cc627cea5.png?v=1785616909\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting TY-Colorful-X7 WiFi LED music controller with GND DAT CLK VCC output terminals\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_5_61b429fe-945c-4cb6-a4c4-783965164c70.png?v=1785616909\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003eWiFi 音乐控制器\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003eWiFi LED 音乐控制器是一款由涂鸦智能驱动的 SPI 控制器，旨在通过音乐响应式灯光效果驱动可寻址像素 LED 灯带和矩阵面板。它使用内置麦克风或辅助电缆输入将灯光模式与声音同步，可通过涂鸦智能应用程序提供 22 种音乐模式和 180 种动态模式。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003eDC5-24V 输入\u003c\/span\u003e \u003cspan\u003e支持 1024 像素\u003c\/span\u003e \u003cspan\u003eSPI 输出\u003c\/span\u003e \u003cspan\u003e22 音乐 \/ 180 动态模式\u003c\/span\u003e \u003cspan\u003e涂鸦 WiFi App 控制\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/WiFi_Music_Controller.pdf?v=1785616909\" class=\"spec-btn\" rel=\"noopener\" title=\"WiFi Music Controller Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e突出特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003eApp 控制\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通过涂鸦智能 App 控制，支持远程访问和智能音箱集成。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003eOTA 更新\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持空中固件升级，以在新 IC 类型和功能可用时进行更新。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e灯光模式\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e内置 180 种动态模式、22 种音乐响应模式和 30 种非音乐灯光屏模式效果库。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e支持灯光屏\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持多达 1024 个 IC 像素点的灯光屏和灯带配置。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003eIC 兼容性\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持多种 IC 芯片类型，包括 SM16703、TM1804、UCS1903、WS2811、WS2801、SK6812 和 LPD6803，并可调节 RGB 通道排序。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e音频输入\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通过内置麦克风或 3.5 毫米辅助电缆接收音频，实现音乐同步。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e电源保护\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003eDC5-24V 输入，带反接保护。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42815814893653,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/ProductPhotoDimensionGuide_5_7cf863fc-cd3e-4c6d-9838-9b98ccd9ad17.png?v=1785617187"},{"product_id":"30a-wall-mount-dimmer","title":"30A 壁挂式调光器","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting rotary knob dimmer switch installed in wall junction box DC5-24V 30A\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/ba35c3e4-f842-4ea6-ad0e-d5eb0acbf970.png?v=1785618353\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\u003c!--nl--\"\u003e\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting DC5-24V 30A wall mount rotary knob dimmer for single color LED strips\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_6.png?v=1785618350\"\u003e\u003cbr\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003e30A 墙壁安装调光器\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003eDC5-24V 30A 墙壁安装调光器是一款旋钮式 PWM 控制器，用于调节单色 LED 灯带的亮度。旋转旋钮可提供从完全关闭到完全亮度的无级调光，控制 0% 至 100% 的调光，低亮度时无闪烁，无快速变化导致瞬间亮度变化造成视觉冲击。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003eDC5-24V 输入\u003c\/span\u003e \u003cspan\u003e30A 最大输出\u003c\/span\u003e \u003cspan\u003e旋钮式 PWM 调光\u003c\/span\u003e \u003cspan\u003e兼容单色\u003c\/span\u003e \u003cspan\u003eCE \/ RoHS 认证\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/30A_Wall_Mount_Dimmer.pdf?v=1785618357\" class=\"spec-btn\" rel=\"noopener\" title=\"30A Wall Mount Dimmer Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e主要特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e旋钮式 PWM 调光器，带开\/关和无级亮度调节。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e调光方式\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003ePWM 电路控制可将亮度从 0 调整到 100%，不影响连接的灯具，也不会引入刺眼的亮度变化。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e兼容性\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e专为单色 LED 灯带设计。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e安装\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e墙壁安装设计，适用于嵌入式接线盒安装。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e接线\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e输入和输出端子按顺序标记，便于直接连接电源和负载。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e认证\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003eCE 和 RoHS 认证。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\u003c\/section\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42815825674325,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_6.png?v=1785618350"},{"product_id":"rgbw-music-pixel-led-controller","title":"RGBW音乐像素LED控制器","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting SP611E Bluetooth music pixel LED controller with IR remote control\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/2c9eaf06-e980-4040-89b0-e6c81b7d9228.png?v=1785679878\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting LED remote controller for SP611E Bluetooth music pixel LED controller\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_7.png?v=1785679877\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003eRGBW 音乐像素LED控制器\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003eRGBW音乐像素LED控制器是一款支持蓝牙的控制器，旨在驱动可寻址像素LED灯带，具有应用程序和红外遥控选项。通过BanlanX应用程序，它支持手机麦克风、流媒体音频和板载麦克风声音采集，以实现音乐响应式照明效果，并且可以分组多个控制器以进行同步控制。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003e直流5-24V输入\u003c\/span\u003e \u003cspan\u003e最多600像素\u003c\/span\u003e \u003cspan\u003e蓝牙+红外遥控\u003c\/span\u003e \u003cspan\u003e142种动态\/18种音乐效果\u003c\/span\u003e \u003cspan\u003eBanlanX应用程序控制\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/RGBW_Music_Pixel_LED_Controller.pdf?v=1785679877\" class=\"spec-btn\" rel=\"noopener\" title=\"RGBW Music Pixel LED Controller Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e突出特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e带BanlanX应用控制和随附红外遥控器的蓝牙控制器。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e应用连接\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持应用程序打开时自动设备连接和自动重新连接。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e分组控制\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持将多个控制器分组在一起进行同步控制。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e声音采集\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e多种音频输入方式，包括手机麦克风、播放器流媒体和板载麦克风。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e定制\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持设备重命名、RGB通道序列校准和设置多达五个定时器事件。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003eIC兼容性\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e兼容常见的单线LED驱动IC，每个控制器最多可驱动600个像素。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e灯光效果\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e内置142种动态效果和18种音乐效果库，具有可调节的效果长度和灵敏度。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e电源保护\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e直流5-24V宽电压输入，带反接保护。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42816722436181,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_7.png?v=1785679877"},{"product_id":"24v-spi-cct-controller","title":"24V SPI CCT控制器","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting CCT SPI touch RF remote with LED flow controller receiver for CCT strip lighting\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/286c67cf-8a8d-4960-b7a0-be78a724766d.png?v=1785681086\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting Touch RF 86 panel CCT SPI controller wall mount remote 2700K-6500K dimming\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/dc786e44-7e6d-4812-85fa-54d3f062de19.png?v=1785681086\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003e24V SPI CCT 控制器\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003e24V SPI CCT 控制器是一款壁挂式触摸控制器，配有配套的射频遥控器，旨在驱动 CCT SPI LED 灯带，实现 2700K-6500K 无级色温调光。其色温圆盘让安装人员可以通过运行、拖尾或渐变效果的任意组合滑动整个暖到冷范围，而 26 种内置效果模式则增加了启动和关机过渡效果，如流水和回流。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003e5-24V 输入\u003c\/span\u003e \u003cspan\u003e多达 2132 个 IC\u003c\/span\u003e \u003cspan\u003e2700K-6500K 范围\u003c\/span\u003e \u003cspan\u003e26 种效果模式\u003c\/span\u003e \u003cspan\u003e每个控制器最多可连接 6 个遥控器\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/24V_SPI_CCT_Controller.pdf?v=1785681086\" class=\"spec-btn\" rel=\"noopener\" title=\"24V SPI CCT Controller Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e突出特点\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e壁挂式触摸面板（86 型）与射频遥控器配对使用。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e色温\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通过滑动色温圆环实现 2700K-6500K 全色温无级调光。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e效果模式\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e26 种内置效果，包括启动时的流水效果和关机时的回流效果。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e遥控范围\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e射频遥控器可在距离控制器最远 20 米的范围内操作。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e分组\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e支持编码分组，以便多个控制器可以在同一空间内共享而不会相互干扰；一个控制器最多可匹配 6 个遥控器。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e按键锁定\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e可锁定按键功能，防止灯关闭时意外或未经授权的调整。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e复位功能\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e按住 MODE1 按钮 3 秒可恢复出厂默认模式、速度和亮度。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003eLED 点调整\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e通过 MENU 键支持手动调整 LED 点数量，最多可达 2132 个 IC。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42816758349909,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/dc786e44-7e6d-4812-85fa-54d3f062de19_73e89881-5fd1-4125-a3bb-6db08880b17a.png?v=1785681358"},{"product_id":"stair-light-control-system","title":"楼梯照明控制系统","description":"\u003csection class=\"spec-page\"\u003e\u003c!-- FULL-WIDTH CAROUSEL (Top) --\u003e\n\u003csection class=\"spec-carousel\"\u003e\n\u003cdiv id=\"cobCarousel\" class=\"spec-carousel-track\"\u003e\n\n\u003cdiv class=\"spec-carousel-slide\"\u003e\u003cimg loading=\"eager\" alt=\"C\u0026amp;C Lighting stair step LED strip lighting installed on each stair tread warm white\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/6279b440-39e6-4d03-8e24-f8520073d6c9.png?v=1785691498\"\u003e\u003c\/div\u003e\n\n\u003c!-- Add more images like this when you have them --\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton type=\"button\" class=\"spec-carousel-btn prev\"\u003e‹\u003c\/button\u003e \u003cbutton type=\"button\" class=\"spec-carousel-btn next\"\u003e›\u003c\/button\u003e\n\u003cdiv class=\"spec-carousel-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003cscript\u003e\n(function () {\n  const carousel = document.querySelector(\".spec-carousel\");\n  if (!carousel) return;\n  const track = carousel.querySelector(\".spec-carousel-track\");\n  const slides = Array.from(carousel.querySelectorAll(\".spec-carousel-slide\"));\n  const prevBtn = carousel.querySelector(\"[data-carousel-prev]\");\n  const nextBtn = carousel.querySelector(\"[data-carousel-next]\");\n  const dotsWrap = carousel.querySelector(\"[data-carousel-dots]\");\n  if (!track || slides.length === 0) return;\n  let currentIndex = 0;\n  let autoplayTimer = null;\n  const AUTOPLAY_MS = 5000;\n  function slideWidth() {\n    return track.getBoundingClientRect().width;\n  }\n  function clampIndex(i) {\n    if (i \u003c 0) return 0;\n    if (i \u003e slides.length - 1) return slides.length - 1;\n    return i;\n  }\n  function scrollToIndex(i, opts) {\n    currentIndex = clampIndex(i);\n    track.scrollTo({\n      left: currentIndex * slideWidth(),\n      behavior: (opts \u0026\u0026 opts.instant) ? \"auto\" : \"smooth\"\n    });\n    updateDots();\n    updateButtons();\n  }\n  function updateButtons() {\n    if (!prevBtn || !nextBtn) return;\n    prevBtn.disabled = currentIndex === 0;\n    nextBtn.disabled = currentIndex === slides.length - 1;\n    prevBtn.style.opacity = prevBtn.disabled ? \"0.45\" : \"1\";\n    nextBtn.style.opacity = nextBtn.disabled ? \"0.45\" : \"1\";\n    prevBtn.style.pointerEvents = prevBtn.disabled ? \"none\" : \"auto\";\n    nextBtn.style.pointerEvents = nextBtn.disabled ? \"none\" : \"auto\";\n  }\n  function buildDots() {\n    if (!dotsWrap) return;\n    dotsWrap.innerHTML = \"\";\n    slides.forEach((_, i) =\u003e {\n      const btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"spec-carousel-dot\";\n      btn.setAttribute(\"aria-label\", \"Go to slide \" + (i + 1));\n      btn.addEventListener(\"click\", () =\u003e scrollToIndex(i));\n      dotsWrap.appendChild(btn);\n    });\n    updateDots();\n  }\n  function updateDots() {\n    if (!dotsWrap) return;\n    const dots = Array.from(dotsWrap.querySelectorAll(\".spec-carousel-dot\"));\n    dots.forEach((d, i) =\u003e {\n      const active = i === currentIndex;\n      d.setAttribute(\"aria-current\", active ? \"true\" : \"false\");\n    });\n  }\n  function syncIndexFromScroll() {\n    const w = slideWidth();\n    const i = Math.round(track.scrollLeft \/ w);\n    const next = clampIndex(i);\n    if (next !== currentIndex) {\n      currentIndex = next;\n      updateDots();\n      updateButtons();\n    }\n  }\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayTimer = window.setInterval(() =\u003e {\n      const next = (currentIndex + 1) % slides.length;\n      scrollToIndex(next);\n    }, AUTOPLAY_MS);\n  }\n  function stopAutoplay() {\n    if (autoplayTimer) window.clearInterval(autoplayTimer);\n    autoplayTimer = null;\n  }\n  if (prevBtn) prevBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex - 1));\n  if (nextBtn) nextBtn.addEventListener(\"click\", () =\u003e scrollToIndex(currentIndex + 1));\n  track.addEventListener(\"scroll\", () =\u003e {\n    window.requestAnimationFrame(syncIndexFromScroll);\n  });\n  carousel.addEventListener(\"mouseenter\", stopAutoplay);\n  carousel.addEventListener(\"mouseleave\", startAutoplay);\n  carousel.addEventListener(\"focusin\", stopAutoplay);\n  carousel.addEventListener(\"focusout\", startAutoplay);\n  track.addEventListener(\"keydown\", (e) =\u003e {\n    if (e.key === \"ArrowLeft\") scrollToIndex(currentIndex - 1);\n    if (e.key === \"ArrowRight\") scrollToIndex(currentIndex + 1);\n  });\n  window.addEventListener(\"resize\", () =\u003e {\n    scrollToIndex(currentIndex, { instant: true });\n  });\n  buildDots();\n  scrollToIndex(0, { instant: true });\n  startAutoplay();\n})();\n\u003c\/script\u003e \u003c!-- HERO --\u003e\n\u003csection class=\"spec-hero\"\u003e\n\u003cdiv style=\"text-align: start;\" class=\"spec-hero-media\"\u003e\n\n\u003cbr\u003e\u003cimg alt=\"C\u0026amp;C Lighting V3-STEP-3003 Bluetooth stair light controller with 30 step ports\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_5_4ca9716d-5730-4f13-ba55-f3458d5921f5.png?v=1785691498\"\u003e\u003cbr\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-hero-content\"\u003e\n\n\u003ch4 class=\"spec-title\"\u003e楼梯照明控制系统\u003c\/h4\u003e\n\n\u003cp class=\"spec-tagline\"\u003e楼梯照明控制系统是一款支持蓝牙的台阶照明控制器，可驱动多达30个独立的楼梯台阶LED灯带，外加2个闪光LED灯带区域，均通过单个设备控制。通过在楼梯顶部和底部放置双运动传感器，当有人从任一方向接近时，它会自动触发逐级照明，并内置18种感应照明模式。\u003c\/p\u003e\n\n\u003cdiv class=\"spec-stats\"\u003e\n\n\u003cspan\u003e24V直流输入\/输出\u003c\/span\u003e \u003cspan\u003e30个台阶端口\u003c\/span\u003e \u003cspan\u003e2个闪光LED端口\u003c\/span\u003e \u003cspan\u003e18种照明模式\u003c\/span\u003e \u003cspan\u003e蓝牙+应用程序控制\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Stair_Light_Control_System.pdf?v=1785691498\" class=\"spec-btn\" rel=\"noopener\" title=\"Stair Light Control System Spec Sheet\" target=\"_blank\"\u003e 下载规格表 \u003c\/a\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c!-- SUPPORT VISUAL --\u003e\u003c!-- FEATURES --\u003e\n\u003csection class=\"spec-features\"\u003e\n\u003ch2 class=\"spec-section-title\"\u003e亮点功能\u003c\/h2\u003e\n\n\u003cdiv class=\"spec-feature-grid\"\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e控制类型\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e蓝牙控制器，带板载A\/B\/C\/D按钮和配套移动应用程序。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e传感器输入\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e双DC5V传感器端口；传感器A检测下楼方向，传感器B检测上楼方向。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e台阶输出\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e30个独立接线的台阶LED灯带端口，用于按台阶顺序控制。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e闪光LED支持\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e2个专用的闪光LED灯带区域端口，兼容2811\/1903\/16703P IC类型。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e照明模式\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e内置18种感应照明模式，包括全亮、流星、追逐和流水效果；通过应用程序可获得200多种额外模式。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e按钮功能\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003eA按钮设置闪光LED灯带像素数，B按钮设置台阶数量和灯带序列，C按钮调节亮度和速度，D按钮选择照明模式。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature\"\u003e\n\n\u003cdiv class=\"spec-feature-label\"\u003e安全\u003c\/div\u003e\n\n\u003cdiv class=\"spec-feature-text\"\u003e内置短路保护；不防水，仅适用于室内干燥环境。\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\u003c\/section\u003e\n\u003cstyle\u003e\n  .spec-page{\n    max-width: 1180px;\n    margin: 0 auto;\n    padding: 40px 16px 24px;\n  }\n  \/* HERO *\/\n  .spec-hero{\n    display: grid;\n    grid-template-columns: 1.05fr 0.95fr;\n    gap: 56px;\n    align-items: center;\n  }\n  .spec-hero-media img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  .spec-title{\n    margin: 0 0 10px;\n    font-size: clamp(28px, 3vw, 40px);\n    line-height: 1.15;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n  }\n  .spec-tagline{\n    margin: 0 0 18px;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 400;\n    color: rgba(0,0,0,0.70);\n    max-width: 46ch;\n  }\n  \/* Stat row: minimal pipe-separated *\/\n  .spec-stats{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n    margin: 0 0 22px;\n    font-size: 13px;\n    letter-spacing: 0.3px;\n    color: rgba(0,0,0,0.62);\n  }\n  .spec-stats span{\n    position: relative;\n    padding-right: 14px;\n    white-space: nowrap;\n  }\n  .spec-stats span:not(:last-child)::after{\n    content: \"|\";\n    position: absolute;\n    right: 4px;\n    color: rgba(0,0,0,0.28);\n  }\n  \/* CTA button: subtle *\/\n  .spec-btn{\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px 16px;\n    border-radius: 10px;\n    text-decoration: none;\n    font-weight: 600;\n    font-size: 14px;\n    border: 1px solid rgba(0,0,0,0.14);\n    color: rgba(0,0,0,0.86);\n    background: #fff;\n    transition: transform 120ms ease, box-shadow 120ms ease;\n  }\n  .spec-btn:hover{\n    transform: translateY(-1px);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n  }\n  \/* SUPPORT *\/\n  .spec-support{\n    margin-top: 32px;\n  }\n  .spec-support img{\n    width: 100%;\n    height: auto;\n    display: block;\n    border-radius: 14px;\n  }\n  \/* FEATURES *\/\n  .spec-features{\n    margin-top: 40px;\n    padding-top: 26px;\n    border-top: 1px solid rgba(0,0,0,0.08);\n  }\n  .spec-section-title{\n    margin: 0 0 18px;\n    font-size: 16px;\n    font-weight: 600;\n    letter-spacing: 0.2px;\n    color: rgba(0,0,0,0.88);\n  }\n  .spec-feature-grid{\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 18px 40px;\n    align-items: start;\n  }\n  .spec-feature{\n    display: grid;\n    grid-template-columns: 210px 1fr;\n    gap: 14px;\n  }\n  .spec-feature-label{\n    font-size: 13px;\n    font-weight: 600;\n    color: rgba(0,0,0,0.90);\n    letter-spacing: 0.2px;\n  }\n  .spec-feature-text{\n    font-size: 14px;\n    line-height: 1.6;\n    color: rgba(0,0,0,0.68);\n  }\n  \/* Mobile *\/\n  @media (max-width: 900px){\n    .spec-hero{\n      grid-template-columns: 1fr;\n      gap: 24px;\n      align-items: start;\n    }\n    .spec-stats span{\n      padding-right: 0;\n      white-space: normal;\n    }\n    .spec-stats span:not(:last-child)::after{\n      content: \"\";\n    }\n    .spec-feature-grid{\n      grid-template-columns: 1fr;\n      gap: 14px;\n    }\n    .spec-feature{\n      grid-template-columns: 1fr;\n      gap: 6px;\n    }\n  }\n\n\/* FULL-WIDTH CAROUSEL *\/\n.spec-carousel{\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  right: 50%;\n  margin-left: -50vw;\n  margin-right: -50vw;\n  margin-top: -40px;\n  margin-bottom: 26px;\n  overflow: hidden;\n  background: #0b0b0b;\n}\n.spec-carousel-track{\n  display: flex;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scroll-behavior: smooth;\n  -webkit-overflow-scrolling: touch;\n  scrollbar-width: none;\n}\n.spec-carousel-track::-webkit-scrollbar{\n  display: none;\n}\n.spec-carousel-slide{\n  flex: 0 0 100%;\n  scroll-snap-align: center;\n  position: relative;\n  background: #0b0b0b;\n}\n.spec-carousel-slide img{\n  width: 100%;\n  height: auto;\n  display: block;\n}\n.spec-carousel-btn{\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 42px;\n  height: 42px;\n  border-radius: 999px;\n  border: 1px solid rgba(255,255,255,0.22);\n  background: rgba(0,0,0,0.38);\n  color: #fff;\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  transition: transform 120ms ease, background 120ms ease;\n}\n.spec-carousel-btn:hover{\n  background: rgba(0,0,0,0.55);\n  transform: translateY(-50%) scale(1.03);\n}\n.spec-carousel-btn.prev{\n  left: 14px;\n}\n.spec-carousel-btn.next{\n  right: 14px;\n}\n.spec-carousel-dots{\n  position: absolute;\n  left: 50%;\n  bottom: 14px;\n  transform: translateX(-50%);\n  display: flex;\n  gap: 8px;\n  padding: 6px 10px;\n  border-radius: 999px;\n  background: rgba(0,0,0,0.28);\n  border: 1px solid rgba(255,255,255,0.12);\n}\n.spec-carousel-dot{\n  width: 8px;\n  height: 8px;\n  border-radius: 999px;\n  background: rgba(255,255,255,0.35);\n  border: 0;\n  cursor: pointer;\n}\n.spec-carousel-dot[aria-current=\"true\"]{\n  background: rgba(255,255,255,0.92);\n}\n@media (max-width: 900px){\n  .spec-carousel{\n    margin-top: -24px;\n    margin-bottom: 18px;\n  }\n  .spec-carousel-btn{\n    width: 36px;\n    height: 36px;\n    font-size: 18px;\n  }\n  .spec-carousel-btn.prev{\n    left: 10px;\n  }\n  .spec-carousel-btn.next{\n    right: 10px;\n  }\n  .spec-carousel-dots{\n    bottom: 10px;\n  }\n}\n\u003c\/style\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"C\u0026C Lighting","offers":[{"title":"Default Title","offer_id":42816982876245,"sku":null,"price":0.0,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/files\/Product_Photo_Dimension_Guide_5_4ca9716d-5730-4f13-ba55-f3458d5921f5.png?v=1785691498"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0986\/0548\/collections\/dc786e44-7e6d-4812-85fa-54d3f062de19_73e89881-5fd1-4125-a3bb-6db08880b17a.png?v=1785692913","url":"https:\/\/candclight.com\/zh\/collections\/low-voltage-controllers.oembed","provider":"C\u0026C Lighting","version":"1.0","type":"link"}