{"title":"Snow Plow Lights | LED Plow Light Bars and Amber Strobes","description":"\u003cp\u003eSnow plow lights do two jobs: keep you visible to traffic, and light up the blade and the lot in front of you. Our Low Pro Emergency bars cover the first job with amber or amber and white LEDs, a magnet or headache rack mount, and flash patterns you control from the cab. XDR-5 and XDR-4 strobes add side coverage from a plow frame, mirror or tailgate. For work light, a 6, 10 or 20 inch double row bar in flood optics throws a wide, even field so you can see the curb line and parked cars. All of it is designed and engineered in Sarasota, Florida, in military grade housings that take brine and pressure washing.\u003c\/p\u003e\n\u003cp\u003eHow to choose: a 17 inch bar on a magnet mount is the simplest way to put an amber warning light on a pickup. A 30 to 49 inch bar fits a dedicated plow truck. Pick amber and white if you want a white scene light for backing up. Add corner strobes, then a flood bar above the blade. Browse the full \u003ca href=\"\/collections\/emergency-light-bars\"\u003eemergency light bar collection\u003c\/a\u003e for every size and color option.\u003c\/p\u003e\n\u003ch3\u003eWhat color light do snow plows use?\u003c\/h3\u003e\n\u003cp\u003eAmber is the standard warning color for plow trucks in most states. Check your state rules before running any color on a public road.\u003c\/p\u003e\n\u003ch3\u003eDo I need a strobe or a full light bar for plowing?\u003c\/h3\u003e\n\u003cp\u003eA single strobe gets you seen from one direction. A bar with a 360 degree pattern covers you from every angle.\u003c\/p\u003e\n\u003ch3\u003eCan I mount a light bar on a plow truck headache rack?\u003c\/h3\u003e\n\u003cp\u003eYes. The Low Pro Emergency bars come with a headache rack bracket option.\u003c\/p\u003e","products":[{"product_id":"10-inch-double-row-light-bar","title":"10 Inch Double Row LED Light Bar – Pro Series 3.0 | Spot, Flood, or Combo (60W \/ 100W)","description":"\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cb id=\"docs-internal-guid-99ca67af-7fff-d0ee-51fe-8d5419599ad9\"\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cem\u003e\u003cspan style=\"color: rgb(56, 118, 29);\"\u003eIn Stock:\u003c\/span\u003e 5 Watt – \u003cspan style=\"text-decoration: underline;\"\u003eShips Next Business Day!\u003c\/span\u003e\u003c\/em\u003e\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 data-start=\"264\" data-end=\"326\"\u003e10 Inch Straight Double Row LED Light Bar – Black Housing\u003c\/h2\u003e\n\u003cp data-start=\"327\" data-end=\"382\"\u003e\u003cstrong data-start=\"327\" data-end=\"382\"\u003eSerious Output. Clean Install. Built for the Trail.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"327\" data-end=\"382\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"384\" data-end=\"831\"\u003eWhen you need dependable off-road lighting with a little more reach and coverage, the \u003cstrong data-start=\"470\" data-end=\"515\"\u003e10-inch Straight Double Row LED Light Bar\u003c\/strong\u003e delivers powerful, forward-facing illumination in a versatile, mid-size footprint. Designed for trucks, Jeeps, UTVs, side-by-sides, and work vehicles, this bar strikes the ideal balance between compact size and real-world performance—making it a go-to option for bumper mounts, racks, and auxiliary lighting setups.\u003c\/p\u003e\n\u003cp data-start=\"384\" data-end=\"831\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"833\" data-end=\"1186\"\u003eBuilt around a rugged black aluminum housing and high-output LEDs, this light bar is engineered to handle vibration, dust, mud, rain, and harsh trail conditions without flinching. Its straight-profile design allows for a clean, low-profile install while still delivering the brightness and durability needed for demanding off-road and work environments.\u003c\/p\u003e\n\u003cp data-start=\"833\" data-end=\"1186\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"1188\" data-end=\"1558\"\u003eOur most popular configuration pairs \u003cstrong data-start=\"1225\" data-end=\"1252\"\u003e5-watt high-output LEDs\u003c\/strong\u003e with a \u003cstrong data-start=\"1260\" data-end=\"1282\"\u003eCombo beam pattern\u003c\/strong\u003e, blending a focused center spot for distance with wide flood optics for improved peripheral visibility. The result is balanced, usable lighting that enhances awareness, control, and confidence—whether you’re navigating trails after dark, working late, or pushing past sunset.\u003c\/p\u003e\n\u003cp data-end=\"1177\" data-start=\"808\"\u003e \u003c\/p\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli data-end=\"177\" data-start=\"152\"\u003e\n\u003cp data-end=\"177\" data-start=\"154\"\u003e\u003cstrong data-end=\"175\" data-start=\"154\"\u003eLifetime Warranty\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"276\" data-start=\"178\"\u003e\n\u003cp data-end=\"276\" data-start=\"180\"\u003e\u003cstrong data-end=\"203\" data-start=\"180\"\u003eIP69K-Rated Housing\u003c\/strong\u003e – Fully sealed against salt, spray, pressure washing, and sun exposure\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"365\" data-start=\"277\"\u003e\n\u003cp data-end=\"365\" data-start=\"279\"\u003e\u003cstrong data-end=\"317\" data-start=\"279\"\u003ePremium CREE® and OSRAM® LED Chips\u003c\/strong\u003e – Engineered for maximum output and longevity\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"447\" data-start=\"366\"\u003e\n\u003cp data-end=\"447\" data-start=\"368\"\u003e\u003cstrong data-end=\"409\" data-start=\"368\"\u003e316 Stainless Steel Mounting Brackets\u003c\/strong\u003e – Marine-grade corrosion resistance\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"526\" data-start=\"448\"\u003e\n\u003cp data-end=\"526\" data-start=\"450\"\u003e\u003cstrong data-end=\"475\" data-start=\"450\"\u003eCeramic-Coated Finish\u003c\/strong\u003e – Enhanced UV stability and corrosion protection\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"618\" data-start=\"527\"\u003e\n\u003cp data-end=\"618\" data-start=\"529\"\u003e\u003cstrong data-end=\"556\" data-start=\"529\"\u003eMilitary-Grade Breather\u003c\/strong\u003e – Equalizes pressure and prevents internal moisture buildup\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"707\" data-start=\"619\"\u003e\n\u003cp data-end=\"707\" data-start=\"621\"\u003e\u003cstrong data-end=\"644\" data-start=\"621\"\u003ePremium Lexan® Lens\u003c\/strong\u003e – Designed to resist fading, hazing, and yellowing over time\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cb id=\"docs-internal-guid-d75b242a-7fff-5770-9b75-1fc2a5255411\"\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003e(1) LED Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStainless Mounting Brackets and Hardware\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eComplete Wiring Harness\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820396\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c!-- Image + Text Alternating Section --\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Row_-_Black_Housing.png?v=1769716266\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-4b99d397-7fff-906b-35a7-84a67c24a04d\"\u003e\u003cspan\u003ePremium Lexan Lens + IP69K Sealed Housing\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEach light is built with an optical-grade Lexan lens—twice as strong as glass and engineered to resist fading or yellowing—paired with an IP69K-rated housing that blocks out salt, spray, sun, and high-pressure water. The result is a crystal-clear, fully sealed system designed to perform for years in the harshest marine or off-road environments.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_In_use.png?v=1769716452\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-09963c7a-7fff-f143-6176-4fb8a82f9e58\"\u003e\u003cspan\u003ePremium OSRAM\u003cmeta charset=\"utf-8\"\u003e® LEDs\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eHigh-efficiency OSRAM LEDs deliver exceptional brightness, clarity, and long-term reliability—engineered for demanding marine use and sustained high-output performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Light_bar_Graphic.jpg?v=1765897304\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-1bd915b9-7fff-7ead-10d7-6339b588eb74\"\u003e\u003cspan\u003eComplete Wiring Harness Included\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eEvery light bar comes ready to install with a pre-terminated 12-gauge wiring harness, inline fuse, relay, and switch — plus heavy-duty stainless mounting brackets for a secure, professional-grade setup right out of the box.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_5_REV_1.png?v=1764958828\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-8087a335-7fff-83a6-3451-b34f408e2b24\"\u003e\u003cspan\u003eCeramic-Coated, Hydrex-Sealed Construction\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eFinished with a corrosion-resistant ceramic coating and sealed with our Hydrex gasket system for true IP69K performance. 316 stainless bolt-in mounts provide unmatched strength and durability in saltwater or off-road environments.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2025-10-24_at_11.43.59_AM.png?v=1761320662\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-ee629166-7fff-bdc5-3e83-f34dfa1b13f6\"\u003e\u003cspan\u003ePrecision Beam Patterns\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from spot, flood, \u003cstrong\u003eor\u003c\/strong\u003e combo configurations for the perfect lighting spread. Our advanced reflector design ensures maximum throw distance and balanced side illumination for total visibility in any situation. \u003cmeta charset=\"utf-8\"\u003e\u003cstrong data-end=\"180\" data-start=\"168\"\u003ePro Tip:\u003c\/strong\u003e Combo is usually the best choice — it gives you the best of both worlds, with the spot pattern in the center for distance and the flood pattern on the ends for wide coverage.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cbr\u003e\n\u003cp\u003e\u003ciframe width=\"420\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/fNuQt7zNg3s?rel=0\"\u003e\u003c\/iframe\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cb\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/b\u003e\u003cbr\u003e\n\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-93e6bcc8-7fff-5382-d6c9-e3ee51f66868\"\u003e\u003cspan\u003eLifetime Warranty\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEnjoy complete peace of mind knowing your light is backed by our industry-leading lifetime warranty. We stand behind every product we build — if it ever fails due to workmanship or materials, we’ll repair or replace it, guaranteed.\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c!-- Specs chart --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th,\n  table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n    vertical-align: top;\n  }\n\n  \/* Column headers *\/\n  table.spec-table thead th {\n    background-color: #f7f7f7;\n    font-weight: 700;\n  }\n\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n\n  \/* Section header row *\/\n  table.spec-table .spec-section th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFeature\u003c\/th\u003e\n\u003cth\u003e5 Watt\u003c\/th\u003e\n\u003cth\u003e3 Watt\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e100\u003c\/td\u003e\n\u003ctd\u003e60\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e4.1\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e12-30V DC\u003c\/td\u003e\n\u003ctd\u003e12-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e13,200\u003c\/td\u003e\n\u003ctd\u003e7,500\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eColor Temperature\u003c\/th\u003e\n\u003ctd\u003e6,000\u003c\/td\u003e\n\u003ctd\u003e6,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Qty\u003c\/th\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003eOsram\u003c\/td\u003e\n\u003ctd\u003eOsram\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eSpot or Flood\u003c\/td\u003e\n\u003ctd\u003eCombo, Spot, Flood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Angle\u003c\/th\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003eBoth - Combo\u003cbr\u003e15° - Spot\u003cbr\u003e45° - Flood\u003c\/td\u003e\n\u003ctd\u003eBoth - Combo\u003cbr\u003e15° - Spot\u003cbr\u003e45° - Flood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMode\u003c\/th\u003e\n\u003ctd\u003eOn\/Off\u003c\/td\u003e\n\u003ctd\u003eOn\/Off\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDimmable?\u003c\/th\u003e\n\u003ctd\u003eYes! (Separate dimmer module Required, NOT included)\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003eYes! (Separate dimmer module Required, NOT included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003ctd\u003e31 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Lead From Light\u003c\/th\u003e\n\u003ctd\u003e16\"\u003c\/td\u003e\n\u003ctd\u003e16\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e12'\u003c\/td\u003e\n\u003ctd\u003e12'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e16\u003c\/td\u003e\n\u003ctd\u003e14\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e10 Amp\u003c\/td\u003e\n\u003ctd\u003e10 Amp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003ctd\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e3.8 Lbs\u003c\/td\u003e\n\u003ctd\u003e3.8 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Combo\u003c\/th\u003e\n\u003ctd\u003e10C-D5OS\u003c\/td\u003e\n\u003ctd\u003e10C-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Spot\u003c\/th\u003e\n\u003ctd\u003e10S-D5OS\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003e10S-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Flood\u003c\/th\u003e\n\u003ctd\u003e10F-D5OS\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003e10F-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!--------- Dimensions --------\u003e\n\u003ch5\u003eSize\u003c\/h5\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/10_Inch_Double_Row_-_Straight.png?v=1738349843\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820397\"\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003ch5\u003ePattern\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_Light_Pattern_May_24.jpg?v=1749153353\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eInstructions\u003c\/h5\u003e\n\u003cp\u003eDownload Instructions \u003ca rel=\"noopener\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Single_Row_Light_Bar_-_Quick_Start_Guide.pdf?v=1766074025\" target=\"_blank\"\u003eHere\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e\n\u003ch2 data-end=\"301\" data-start=\"272\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cp data-end=\"361\" data-start=\"303\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"361\" data-start=\"303\"\u003e\u003cstrong data-end=\"359\" data-start=\"307\"\u003eQ: Should I choose the 3-watt or 5-watt version?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"688\" data-start=\"362\"\u003e\u003cstrong data-end=\"368\" data-start=\"362\"\u003eA:\u003c\/strong\u003e The \u003cstrong data-end=\"391\" data-start=\"373\"\u003e5-watt version\u003c\/strong\u003e is our most popular choice for off-road use, delivering significantly more brightness and throw for trails, open terrain, and higher-speed driving. The \u003cstrong data-end=\"562\" data-start=\"544\"\u003e3-watt version\u003c\/strong\u003e is a good option for lower-power setups, auxiliary lighting, or close-range applications where extreme output isn’t required.\u003c\/p\u003e\n\u003cp data-end=\"688\" data-start=\"362\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"778\" data-start=\"695\"\u003e\u003cstrong data-end=\"776\" data-start=\"699\"\u003eQ: What makes this light bar different from standard off-road light bars?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"1118\" data-start=\"779\"\u003e\u003cstrong data-end=\"785\" data-start=\"779\"\u003eA:\u003c\/strong\u003e This light bar is built with a focus on \u003cstrong data-end=\"880\" data-start=\"826\"\u003edurability, performance, and long-term reliability\u003c\/strong\u003e. It features a fully sealed housing, high-quality internal components, and a rugged black aluminum construction designed to handle vibration, dust, mud, rain, and harsh off-road conditions that cheaper light bars struggle with over time.\u003c\/p\u003e\n\u003cp data-end=\"1206\" data-start=\"1125\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"1206\" data-start=\"1125\"\u003e\u003cstrong data-end=\"1204\" data-start=\"1129\"\u003eQ: What beam patterns are available, and how do I choose the right one?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"1288\" data-start=\"1207\"\u003e\u003cstrong data-end=\"1213\" data-start=\"1207\"\u003eA:\u003c\/strong\u003e This light bar is available in \u003cstrong data-end=\"1271\" data-start=\"1245\"\u003eSpot, Flood, and Combo\u003c\/strong\u003e beam patterns.\u003c\/p\u003e\n\u003cul data-end=\"1658\" data-start=\"1289\"\u003e\n\u003cli data-end=\"1387\" data-start=\"1289\"\u003e\n\u003cp data-end=\"1387\" data-start=\"1291\"\u003e\u003cstrong data-end=\"1305\" data-start=\"1291\"\u003eSpot beams\u003c\/strong\u003e provide long-range distance lighting for higher-speed driving and open terrain.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"1504\" data-start=\"1388\"\u003e\n\u003cp data-end=\"1504\" data-start=\"1390\"\u003e\u003cstrong data-end=\"1405\" data-start=\"1390\"\u003eFlood beams\u003c\/strong\u003e deliver wide, close-range illumination ideal for crawling, work zones, or peripheral visibility.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"1658\" data-start=\"1505\"\u003e\n\u003cp data-end=\"1658\" data-start=\"1507\"\u003e\u003cstrong data-end=\"1522\" data-start=\"1507\"\u003eCombo beams\u003c\/strong\u003e offer the best of both, combining forward distance with wide coverage — making them the most versatile option for most off-road setups.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-end=\"1735\" data-start=\"1665\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"1735\" data-start=\"1665\"\u003e\u003cstrong data-end=\"1733\" data-start=\"1669\"\u003eQ: Where is a 4-inch double row light bar typically mounted?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2015\" data-start=\"1736\"\u003e\u003cstrong data-end=\"1742\" data-start=\"1736\"\u003eA:\u003c\/strong\u003e The 4-inch size is extremely versatile and commonly used for \u003cstrong data-end=\"1918\" data-start=\"1804\"\u003ebumper mounts, A-pillars, ditch lights, reverse lights, rock lights, rack lighting, or auxiliary fill lighting\u003c\/strong\u003e. Its compact size makes it ideal for tight mounting locations where larger light bars won’t fit.\u003c\/p\u003e\n\u003cp data-end=\"2094\" data-start=\"2022\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2094\" data-start=\"2022\"\u003e\u003cstrong data-end=\"2092\" data-start=\"2026\"\u003eQ: How durable is this light bar in harsh off-road conditions?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2376\" data-start=\"2095\"\u003e\u003cstrong data-end=\"2101\" data-start=\"2095\"\u003eA:\u003c\/strong\u003e This light bar is fully sealed and built to withstand \u003cstrong data-end=\"2208\" data-start=\"2156\"\u003edust, mud, rain, vibration, and repeated impacts\u003c\/strong\u003e commonly encountered on trails, job sites, and rough terrain. It’s designed for consistent performance in real off-road environments — not just occasional weekend use.\u003c\/p\u003e\n\u003cp data-end=\"2453\" data-start=\"2383\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2453\" data-start=\"2383\"\u003e\u003cstrong data-end=\"2451\" data-start=\"2387\"\u003eQ: Will this light bar cause glare on my hood or windshield?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2711\" data-start=\"2454\"\u003e\u003cstrong data-end=\"2460\" data-start=\"2454\"\u003eA:\u003c\/strong\u003e Proper mounting and aiming are key. During installation, we recommend temporarily powering the light to fine-tune the angle. When positioned and aimed correctly, the light delivers strong forward visibility without excessive hood or windshield glare.\u003c\/p\u003e\n\u003cp data-end=\"2786\" data-start=\"2718\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2786\" data-start=\"2718\"\u003e\u003cstrong data-end=\"2784\" data-start=\"2722\"\u003eQ: What voltage systems is this light bar compatible with?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2969\" data-start=\"2787\"\u003e\u003cstrong data-end=\"2793\" data-start=\"2787\"\u003eA:\u003c\/strong\u003e This light bar is compatible with \u003cstrong data-end=\"2849\" data-start=\"2828\"\u003e10–30V DC systems\u003c\/strong\u003e, making it suitable for most \u003cstrong data-end=\"2903\" data-start=\"2879\"\u003e12V and 24V vehicles\u003c\/strong\u003e, including trucks, Jeeps, UTVs, side-by-sides, and work vehicles.\u003c\/p\u003e\n\u003cp data-end=\"3034\" data-start=\"2976\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3034\" data-start=\"2976\"\u003e\u003cstrong data-end=\"3032\" data-start=\"2980\"\u003eQ: Does this light bar include a wiring harness?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3196\" data-start=\"3035\"\u003e\u003cstrong data-end=\"3041\" data-start=\"3035\"\u003eA:\u003c\/strong\u003e Yes. This light bar includes a \u003cstrong data-end=\"3100\" data-start=\"3073\"\u003ecomplete wiring harness\u003c\/strong\u003e with relay, fuse, and switch, allowing for a straightforward installation right out of the box.\u003c\/p\u003e\n\u003cp data-end=\"3251\" data-start=\"3203\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3251\" data-start=\"3203\"\u003e\u003cstrong data-end=\"3249\" data-start=\"3207\"\u003eQ: Is this light bar energy efficient?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3453\" data-start=\"3252\"\u003e\u003cstrong data-end=\"3258\" data-start=\"3252\"\u003eA:\u003c\/strong\u003e Yes. High-efficiency LEDs provide powerful output while keeping amp draw low, helping protect your electrical system during extended use — especially important when running multiple accessories.\u003c\/p\u003e\n\u003cp data-end=\"3525\" data-start=\"3460\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3525\" data-start=\"3460\"\u003e\u003cstrong data-end=\"3523\" data-start=\"3464\"\u003eQ: What applications is this light bar best suited for?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3769\" data-start=\"3526\"\u003e\u003cstrong data-end=\"3532\" data-start=\"3526\"\u003eA:\u003c\/strong\u003e This light bar is ideal for \u003cstrong data-end=\"3676\" data-start=\"3561\"\u003eoff-road trail driving, overlanding, work sites, ranching, plowing, utility use, and general auxiliary lighting\u003c\/strong\u003e. Its compact size and strong output make it a great supplement to larger primary light bars.\u003c\/p\u003e\n\u003cp data-end=\"3831\" data-start=\"3776\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3831\" data-start=\"3776\"\u003e\u003cstrong data-end=\"3829\" data-start=\"3780\"\u003eQ: What warranty does this light bar include?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"4028\" data-start=\"3832\"\u003e\u003cstrong data-end=\"3838\" data-start=\"3832\"\u003eA:\u003c\/strong\u003e This product is part of our \u003cstrong data-end=\"3892\" data-start=\"3867\"\u003ePro Series 3.0 lineup\u003c\/strong\u003e and is backed by \u003cstrong data-end=\"3955\" data-start=\"3910\"\u003eBlack Oak LED’s limited lifetime warranty\u003c\/strong\u003e, providing long-term confidence in performance, durability, and support.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Combo (Spot + Flood) \/ 3 Watt Osram (60W Total)","offer_id":3783175556,"sku":"10C-D3OS","price":375.0,"currency_code":"USD","in_stock":true},{"title":"Combo (Spot + Flood) \/ 5 Watt Osram (100W Total)","offer_id":3783175620,"sku":"10C-D5OS","price":415.0,"currency_code":"USD","in_stock":true},{"title":"Spot (15° Spread) \/ 3 Watt Osram (60W Total)","offer_id":3782968196,"sku":"10S-D3OS","price":375.0,"currency_code":"USD","in_stock":true},{"title":"Spot (15° Spread) \/ 5 Watt Osram (100W Total)","offer_id":3783175364,"sku":"10S-D5OS","price":415.0,"currency_code":"USD","in_stock":true},{"title":"Flood (45° Spread) \/ 3 Watt Osram (60W Total)","offer_id":3783175428,"sku":"10F-D3OS","price":375.0,"currency_code":"USD","in_stock":true},{"title":"Flood (45° Spread) \/ 5 Watt Osram (100W Total)","offer_id":3783175492,"sku":"10F-D5OS","price":415.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/10-inch-Double-Row-LED-Light-Bar-Black-Oak-3.0.jpg?v=1706115428"},{"product_id":"20-inch-double-row-led-light-bar-5w","title":"20 Inch Double Row LED Light Bar – Pro Series 3.0 | Spot, Flood, or Combo (120W \/ 200W)","description":"\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cb id=\"docs-internal-guid-99ca67af-7fff-d0ee-51fe-8d5419599ad9\"\u003e\u003cspan\u003e\u003cem\u003e\u003cspan style=\"color: rgb(56, 118, 29);\"\u003eIn Stock:\u003c\/span\u003e 5 Watt - \u003cspan style=\"text-decoration: underline;\"\u003eShips Next Business Day!\u003c\/span\u003e\u003c\/em\u003e\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 data-start=\"207\" data-end=\"264\"\u003e\u003cstrong data-start=\"210\" data-end=\"262\"\u003e20 Inch Double Row LED Light Bar – Black Housing\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp data-start=\"265\" data-end=\"325\"\u003e\u003cstrong data-start=\"265\" data-end=\"325\"\u003ePowerful Output. Rugged Durability. Built for the Trail.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"730\" data-start=\"339\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"327\" data-end=\"779\"\u003eWhen the sun dips below the horizon and the trail keeps calling, you need lighting that doesn’t quit. The \u003cstrong data-start=\"433\" data-end=\"469\"\u003e20-inch Double Row LED Light Bar\u003c\/strong\u003e delivers robust, off-road illumination that enhances visibility, confidence, and trail performance in demanding conditions. Designed for trucks, Jeeps, UTVs, side-by-sides, and work rigs, this mid-size bar strikes an ideal balance between size and output — perfect for bumper, roof rack, or bull bar mounting.\u003c\/p\u003e\n\u003cp data-start=\"327\" data-end=\"779\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"781\" data-end=\"1174\"\u003eEngineered around premium components and housed in rugged black aluminum, this light bar is built to withstand vibration, rain, mud, and trail abuse without hesitation. Its double row design combines high-output LEDs with advanced optics to deliver powerful forward throw and wide peripheral coverage, giving you clearer sight lines when navigating trails, backroads, or work zones after dark.\u003c\/p\u003e\n\u003cp data-start=\"781\" data-end=\"1174\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"1176\" data-end=\"1515\"\u003e\u003cmeta charset=\"utf-8\"\u003eOur most popular configuration—the \u003cstrong data-start=\"220\" data-end=\"253\"\u003e5-watt high-output Combo beam\u003c\/strong\u003e—delivers the best of both worlds, combining long-range distance lighting through the center spot optics with wide flood coverage for enhanced peripheral visibility. The result is balanced, real-world illumination that keeps you confident whether you’re pushing into the night, navigating obstacles, or lighting up a work area.\u003c\/p\u003e\n\u003cp data-start=\"808\" data-end=\"1177\"\u003e \u003c\/p\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli data-start=\"152\" data-end=\"177\"\u003e\n\u003cp data-start=\"154\" data-end=\"177\"\u003e\u003cstrong data-start=\"154\" data-end=\"175\"\u003eLifetime Warranty\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"178\" data-end=\"276\"\u003e\n\u003cp data-start=\"180\" data-end=\"276\"\u003e\u003cstrong data-start=\"180\" data-end=\"203\"\u003eIP69K-Rated Housing\u003c\/strong\u003e – Fully sealed against salt, spray, pressure washing, and sun exposure\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"277\" data-end=\"365\"\u003e\n\u003cp data-start=\"279\" data-end=\"365\"\u003e\u003cstrong data-start=\"279\" data-end=\"317\"\u003ePremium CREE® and OSRAM® LED Chips\u003c\/strong\u003e – Engineered for maximum output and longevity\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"366\" data-end=\"447\"\u003e\n\u003cp data-start=\"368\" data-end=\"447\"\u003e\u003cstrong data-start=\"368\" data-end=\"409\"\u003e316 Stainless Steel Mounting Brackets\u003c\/strong\u003e – Marine-grade corrosion resistance\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"448\" data-end=\"526\"\u003e\n\u003cp data-start=\"450\" data-end=\"526\"\u003e\u003cstrong data-start=\"450\" data-end=\"475\"\u003eCeramic-Coated Finish\u003c\/strong\u003e – Enhanced UV stability and corrosion protection\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"527\" data-end=\"618\"\u003e\n\u003cp data-start=\"529\" data-end=\"618\"\u003e\u003cstrong data-start=\"529\" data-end=\"556\"\u003eMilitary-Grade Breather\u003c\/strong\u003e – Equalizes pressure and prevents internal moisture buildup\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"619\" data-end=\"707\"\u003e\n\u003cp data-start=\"621\" data-end=\"707\"\u003e\u003cstrong data-start=\"621\" data-end=\"644\"\u003ePremium Lexan® Lens\u003c\/strong\u003e – Designed to resist fading, hazing, and yellowing over time\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cb id=\"docs-internal-guid-d75b242a-7fff-5770-9b75-1fc2a5255411\"\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003e(1) LED Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStainless Mounting Brackets and Hardware\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eComplete Wiring Harness\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820397\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c!-- Image + Text Alternating Section --\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Row_-_Black_Housing.png?v=1769716266\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-4b99d397-7fff-906b-35a7-84a67c24a04d\"\u003e\u003cspan\u003ePremium Lexan Lens + IP69K Sealed Housing\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEach light is built with an optical-grade Lexan lens—twice as strong as glass and engineered to resist fading or yellowing—paired with an IP69K-rated housing that blocks out salt, spray, sun, and high-pressure water. The result is a crystal-clear, fully sealed system designed to perform for years in the harshest marine or off-road environments.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_In_use.png?v=1769716452\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-09963c7a-7fff-f143-6176-4fb8a82f9e58\"\u003e\u003cspan\u003ePremium OSRAM\u003cmeta charset=\"utf-8\"\u003e® LEDs\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eHigh-efficiency OSRAM LEDs deliver exceptional brightness, clarity, and long-term reliability—engineered for demanding marine use and sustained high-output performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Light_bar_Graphic.jpg?v=1765897304\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-1bd915b9-7fff-7ead-10d7-6339b588eb74\"\u003e\u003cspan\u003eComplete Wiring Harness Included\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eEvery light bar comes ready to install with a pre-terminated 12-gauge wiring harness, inline fuse, relay, and switch — plus heavy-duty stainless mounting brackets for a secure, professional-grade setup right out of the box.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_5_REV_1.png?v=1764958828\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-8087a335-7fff-83a6-3451-b34f408e2b24\"\u003e\u003cspan\u003eCeramic-Coated, Hydrex-Sealed Construction\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eFinished with a corrosion-resistant ceramic coating and sealed with our Hydrex gasket system for true IP69K performance. 316 stainless bolt-in mounts provide unmatched strength and durability in saltwater or off-road environments.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2025-10-24_at_11.43.59_AM.png?v=1761320662\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-ee629166-7fff-bdc5-3e83-f34dfa1b13f6\"\u003e\u003cspan\u003ePrecision Beam Patterns\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from spot, flood, \u003cstrong\u003eor\u003c\/strong\u003e combo configurations for the perfect lighting spread. Our advanced reflector design ensures maximum throw distance and balanced side illumination for total visibility in any situation. \u003cmeta charset=\"utf-8\"\u003e\u003cstrong data-start=\"168\" data-end=\"180\"\u003ePro Tip:\u003c\/strong\u003e Combo is usually the best choice — it gives you the best of both worlds, with the spot pattern in the center for distance and the flood pattern on the ends for wide coverage.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cbr\u003e\n\u003cp\u003e\u003ciframe src=\"https:\/\/www.youtube.com\/embed\/fNuQt7zNg3s?rel=0\" height=\"315\" width=\"420\"\u003e\u003c\/iframe\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cb\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/b\u003e\u003cbr\u003e\n\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-93e6bcc8-7fff-5382-d6c9-e3ee51f66868\"\u003e\u003cspan\u003eLifetime Warranty\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEnjoy complete peace of mind knowing your light is backed by our industry-leading lifetime warranty. We stand behind every product we build — if it ever fails due to workmanship or materials, we’ll repair or replace it, guaranteed.\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c!-- Specs chart --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th,\n  table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n    vertical-align: top;\n  }\n\n  \/* Column headers *\/\n  table.spec-table thead th {\n    background-color: #f7f7f7;\n    font-weight: 700;\n  }\n\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n\n  \/* Section header row *\/\n  table.spec-table .spec-section th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFeature\u003c\/th\u003e\n\u003cth\u003e5 Watt\u003c\/th\u003e\n\u003cth\u003e3 Watt\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e200\u003c\/td\u003e\n\u003ctd\u003e120\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e8.4\u003c\/td\u003e\n\u003ctd\u003e8.1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e12-30V DC\u003c\/td\u003e\n\u003ctd\u003e12-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e26,400\u003c\/td\u003e\n\u003ctd\u003e14,900\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eColor Temperature\u003c\/th\u003e\n\u003ctd\u003e6,000\u003c\/td\u003e\n\u003ctd\u003e6,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Qty\u003c\/th\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003ctd\u003e40\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003eOsram\u003c\/td\u003e\n\u003ctd\u003eOsram\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eCombo, Spot, or Flood\u003c\/td\u003e\n\u003ctd\u003eCombo, Spot, Flood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Angle\u003c\/th\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003eBoth - Combo\u003cbr\u003e15° - Spot\u003cbr\u003e45° - Flood\u003c\/td\u003e\n\u003ctd\u003eBoth - Combo\u003cbr\u003e15° - Spot\u003cbr\u003e45° - Flood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMode\u003c\/th\u003e\n\u003ctd\u003eOn\/Off\u003c\/td\u003e\n\u003ctd\u003eOn\/Off\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDimmable?\u003c\/th\u003e\n\u003ctd\u003eYes! (Separate dimmer module Required, NOT included)\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003eYes! (Separate dimmer module Required, NOT included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003ctd\u003e31 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Lead From Light\u003c\/th\u003e\n\u003ctd\u003e16\"\u003c\/td\u003e\n\u003ctd\u003e16\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e12'\u003c\/td\u003e\n\u003ctd\u003e12'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e14\u003c\/td\u003e\n\u003ctd\u003e14\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e10 Amp\u003c\/td\u003e\n\u003ctd\u003e10 Amp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003ctd\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003cth colspan=\"3\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e6.3 Lbs\u003c\/td\u003e\n\u003ctd\u003e6.3 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Combo\u003c\/th\u003e\n\u003ctd\u003e20C-D5OS\u003c\/td\u003e\n\u003ctd\u003e20C-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Spot\u003c\/th\u003e\n\u003ctd\u003e20S-D5OS\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003e20S-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU - Flood\u003c\/th\u003e\n\u003ctd\u003e20F-D5OS\u003c\/td\u003e\n\u003ctd\u003e\n\u003cmeta charset=\"utf-8\"\u003e20F-D3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!--------- Dimensions --------\u003e\n\u003ch5\u003eSize\u003c\/h5\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/20_Inch_Double_Row_-_Curved.png?v=1768946540\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820397\" alt=\"\"\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003ch5\u003ePattern\u003c\/h5\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_Light_Pattern_May_24.jpg?v=1749153353\"\u003e\u003c\/p\u003e\n\u003ch5\u003eInstructions\u003c\/h5\u003e\n\u003cp\u003eDownload Instructions \u003ca href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Single_Row_Light_Bar_-_Quick_Start_Guide.pdf?v=1766074025\" rel=\"noopener\" target=\"_blank\"\u003eHere\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e\n\u003ch2 data-start=\"311\" data-end=\"340\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cp data-end=\"688\" data-start=\"362\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"778\" data-start=\"695\"\u003e\u003cstrong data-end=\"776\" data-start=\"699\"\u003eQ: What makes this light bar different from standard off-road light bars?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"1118\" data-start=\"779\"\u003e\u003cstrong data-end=\"785\" data-start=\"779\"\u003eA:\u003c\/strong\u003e This light bar is built with a focus on \u003cstrong data-end=\"880\" data-start=\"826\"\u003edurability, performance, and long-term reliability\u003c\/strong\u003e. It features a fully sealed housing, high-quality internal components, and a rugged black aluminum construction designed to handle vibration, dust, mud, rain, and harsh off-road conditions that cheaper light bars struggle with over time.\u003c\/p\u003e\n\u003cp data-end=\"1206\" data-start=\"1125\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"1206\" data-start=\"1125\"\u003e\u003cstrong data-end=\"1204\" data-start=\"1129\"\u003eQ: What beam patterns are available, and how do I choose the right one?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"1288\" data-start=\"1207\"\u003e\u003cstrong data-end=\"1213\" data-start=\"1207\"\u003eA:\u003c\/strong\u003e This light bar is available in \u003cstrong data-end=\"1271\" data-start=\"1245\"\u003eSpot, Flood, and Combo\u003c\/strong\u003e beam patterns.\u003c\/p\u003e\n\u003cul data-end=\"1658\" data-start=\"1289\"\u003e\n\u003cli data-end=\"1387\" data-start=\"1289\"\u003e\n\u003cp data-end=\"1387\" data-start=\"1291\"\u003e\u003cstrong data-end=\"1305\" data-start=\"1291\"\u003eSpot beams\u003c\/strong\u003e provide long-range distance lighting for higher-speed driving and open terrain.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"1504\" data-start=\"1388\"\u003e\n\u003cp data-end=\"1504\" data-start=\"1390\"\u003e\u003cstrong data-end=\"1405\" data-start=\"1390\"\u003eFlood beams\u003c\/strong\u003e deliver wide, close-range illumination ideal for crawling, work zones, or peripheral visibility.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"1658\" data-start=\"1505\"\u003e\n\u003cp data-end=\"1658\" data-start=\"1507\"\u003e\u003cstrong data-end=\"1522\" data-start=\"1507\"\u003eCombo beams\u003c\/strong\u003e offer the best of both, combining forward distance with wide coverage — making them the most versatile option for most off-road setups.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-end=\"2094\" data-start=\"2022\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2094\" data-start=\"2022\"\u003e\u003cstrong data-end=\"2092\" data-start=\"2026\"\u003eQ: How durable is this light bar in harsh off-road conditions?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2376\" data-start=\"2095\"\u003e\u003cstrong data-end=\"2101\" data-start=\"2095\"\u003eA:\u003c\/strong\u003e This light bar is fully sealed and built to withstand \u003cstrong data-end=\"2208\" data-start=\"2156\"\u003edust, mud, rain, vibration, and repeated impacts\u003c\/strong\u003e commonly encountered on trails, job sites, and rough terrain. It’s designed for consistent performance in real off-road environments — not just occasional weekend use.\u003c\/p\u003e\n\u003cp data-end=\"2453\" data-start=\"2383\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2453\" data-start=\"2383\"\u003e\u003cstrong data-end=\"2451\" data-start=\"2387\"\u003eQ: Will this light bar cause glare on my hood or windshield?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2711\" data-start=\"2454\"\u003e\u003cstrong data-end=\"2460\" data-start=\"2454\"\u003eA:\u003c\/strong\u003e Proper mounting and aiming are key. During installation, we recommend temporarily powering the light to fine-tune the angle. When positioned and aimed correctly, the light delivers strong forward visibility without excessive hood or windshield glare.\u003c\/p\u003e\n\u003cp data-end=\"2786\" data-start=\"2718\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"2786\" data-start=\"2718\"\u003e\u003cstrong data-end=\"2784\" data-start=\"2722\"\u003eQ: What voltage systems is this light bar compatible with?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"2969\" data-start=\"2787\"\u003e\u003cstrong data-end=\"2793\" data-start=\"2787\"\u003eA:\u003c\/strong\u003e This light bar is compatible with \u003cstrong data-end=\"2849\" data-start=\"2828\"\u003e10–30V DC systems\u003c\/strong\u003e, making it suitable for most \u003cstrong data-end=\"2903\" data-start=\"2879\"\u003e12V and 24V vehicles\u003c\/strong\u003e, including trucks, Jeeps, UTVs, side-by-sides, and work vehicles.\u003c\/p\u003e\n\u003cp data-end=\"3034\" data-start=\"2976\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3034\" data-start=\"2976\"\u003e\u003cstrong data-end=\"3032\" data-start=\"2980\"\u003eQ: Does this light bar include a wiring harness?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3196\" data-start=\"3035\"\u003e\u003cstrong data-end=\"3041\" data-start=\"3035\"\u003eA:\u003c\/strong\u003e Yes. This light bar includes a \u003cstrong data-end=\"3100\" data-start=\"3073\"\u003ecomplete wiring harness\u003c\/strong\u003e with relay, fuse, and switch, allowing for a straightforward installation right out of the box.\u003c\/p\u003e\n\u003cp data-end=\"3251\" data-start=\"3203\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3251\" data-start=\"3203\"\u003e\u003cstrong data-end=\"3249\" data-start=\"3207\"\u003eQ: Is this light bar energy efficient?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3453\" data-start=\"3252\"\u003e\u003cstrong data-end=\"3258\" data-start=\"3252\"\u003eA:\u003c\/strong\u003e Yes. High-efficiency LEDs provide powerful output while keeping amp draw low, helping protect your electrical system during extended use — especially important when running multiple accessories.\u003c\/p\u003e\n\u003cp data-end=\"3525\" data-start=\"3460\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3525\" data-start=\"3460\"\u003e\u003cstrong data-end=\"3523\" data-start=\"3464\"\u003eQ: What applications is this light bar best suited for?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"3769\" data-start=\"3526\"\u003e\u003cstrong data-end=\"3532\" data-start=\"3526\"\u003eA:\u003c\/strong\u003e This light bar is ideal for \u003cstrong data-end=\"3676\" data-start=\"3561\"\u003eoff-road trail driving, overlanding, work sites, ranching, plowing, utility use, and general auxiliary lighting\u003c\/strong\u003e. Its compact size and strong output make it a great supplement to larger primary light bars.\u003c\/p\u003e\n\u003cp data-end=\"3831\" data-start=\"3776\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"3831\" data-start=\"3776\"\u003e\u003cstrong data-end=\"3829\" data-start=\"3780\"\u003eQ: What warranty does this light bar include?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"4028\" data-start=\"3832\"\u003e\u003cstrong data-end=\"3838\" data-start=\"3832\"\u003eA:\u003c\/strong\u003e This product is part of our \u003cstrong data-end=\"3892\" data-start=\"3867\"\u003ePro Series 3.0 lineup\u003c\/strong\u003e and is backed by \u003cstrong data-end=\"3955\" data-start=\"3910\"\u003eBlack Oak LED’s limited lifetime warranty\u003c\/strong\u003e, providing long-term confidence in performance, durability, and support.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Combo (Spot + Flood) \/ 3 Watt Osram (120W Total)","offer_id":3783410564,"sku":"20C-D3OS","price":580.0,"currency_code":"USD","in_stock":true},{"title":"Combo (Spot + Flood) \/ 5 Watt Osram (200W Total)","offer_id":3783410628,"sku":"20C-D5OS","price":680.0,"currency_code":"USD","in_stock":true},{"title":"Spot (15° Spread) \/ 3 Watt Osram (120W Total)","offer_id":3783367620,"sku":"20S-D3OS","price":580.0,"currency_code":"USD","in_stock":true},{"title":"Spot (15° Spread) \/ 5 Watt Osram (200W Total)","offer_id":3783410372,"sku":"20S-D5OS","price":680.0,"currency_code":"USD","in_stock":true},{"title":"Flood (45° Spread) \/ 3 Watt Osram (120W Total)","offer_id":3783410436,"sku":"20F-D3OS","price":580.0,"currency_code":"USD","in_stock":true},{"title":"Flood (45° Spread) \/ 5 Watt Osram (200W Total)","offer_id":3783410500,"sku":"20F-D5OS","price":680.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/20-inch-Double-Row-LED-Light-Bar-Black-Oak-3.0.jpg?v=1706117610"},{"product_id":"6-inch-double-row-light-bar","title":"6 Inch Double Row LED Light Bar – Pro Series 3.0 | Spot, Flood, or Combo (60W)","description":"\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cb id=\"docs-internal-guid-99ca67af-7fff-d0ee-51fe-8d5419599ad9\"\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cem\u003e\u003cspan style=\"color: rgb(56, 118, 29);\"\u003eIn Stock:\u003c\/span\u003e \u003cspan style=\"text-decoration: underline;\"\u003eShips Next Business Day!\u003c\/span\u003e\u003c\/em\u003e\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 data-start=\"221\" data-end=\"282\"\u003e6 Inch Straight Double Row LED Light Bar – Black Housing\u003c\/h2\u003e\n\u003cp data-start=\"283\" data-end=\"337\"\u003e\u003cstrong data-start=\"283\" data-end=\"337\"\u003eCompact Size. Serious Output. Built for the Trail.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"339\" data-end=\"730\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"339\" data-end=\"730\"\u003eWhen you need powerful off-road lighting in a compact footprint, the \u003cstrong data-start=\"408\" data-end=\"452\"\u003e6-inch Straight Double Row LED Light Bar\u003c\/strong\u003e delivers dependable performance without taking up valuable mounting space. Designed for trucks, Jeeps, UTVs, side-by-sides, and work vehicles, this bar provides strong forward illumination for trails, job sites, and low-visibility conditions where factory lighting falls short.\u003c\/p\u003e\n\u003cp data-start=\"732\" data-end=\"1096\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"732\" data-end=\"1096\"\u003eBuilt with a rugged black aluminum housing and high-output LEDs, this light bar is engineered to handle vibration, dust, mud, rain, and repeated off-road abuse. Its straight-profile design allows for clean, low-profile installs on bumpers, racks, A-pillars, and auxiliary mounting points — making it a versatile solution for both primary and supplemental lighting.\u003c\/p\u003e\n\u003cp data-end=\"1177\" data-start=\"808\"\u003e \u003c\/p\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli data-end=\"177\" data-start=\"152\"\u003e\n\u003cp data-end=\"177\" data-start=\"154\"\u003e\u003cstrong data-end=\"175\" data-start=\"154\"\u003eLifetime Warranty\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"276\" data-start=\"178\"\u003e\n\u003cp data-end=\"276\" data-start=\"180\"\u003e\u003cstrong data-end=\"203\" data-start=\"180\"\u003eIP69K-Rated Housing\u003c\/strong\u003e – Fully sealed against salt, spray, pressure washing, and sun exposure\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"365\" data-start=\"277\"\u003e\n\u003cp data-end=\"365\" data-start=\"279\"\u003e\u003cstrong data-end=\"317\" data-start=\"279\"\u003ePremium CREE® and OSRAM® LED Chips\u003c\/strong\u003e – Engineered for maximum output and longevity\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"447\" data-start=\"366\"\u003e\n\u003cp data-end=\"447\" data-start=\"368\"\u003e\u003cstrong data-end=\"409\" data-start=\"368\"\u003e316 Stainless Steel Mounting Brackets\u003c\/strong\u003e – Marine-grade corrosion resistance\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"526\" data-start=\"448\"\u003e\n\u003cp data-end=\"526\" data-start=\"450\"\u003e\u003cstrong data-end=\"475\" data-start=\"450\"\u003eCeramic-Coated Finish\u003c\/strong\u003e – Enhanced UV stability and corrosion protection\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"618\" data-start=\"527\"\u003e\n\u003cp data-end=\"618\" data-start=\"529\"\u003e\u003cstrong data-end=\"556\" data-start=\"529\"\u003eMilitary-Grade Breather\u003c\/strong\u003e – Equalizes pressure and prevents internal moisture buildup\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-end=\"707\" data-start=\"619\"\u003e\n\u003cp data-end=\"707\" data-start=\"621\"\u003e\u003cstrong data-end=\"644\" data-start=\"621\"\u003ePremium Lexan® Lens\u003c\/strong\u003e – Designed to resist fading, hazing, and yellowing over time\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cb id=\"docs-internal-guid-d75b242a-7fff-5770-9b75-1fc2a5255411\"\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003e(1) LED Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStainless Mounting Brackets and Hardware\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eComplete Wiring Harness\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820397\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003c!-- Image + Text Alternating Section --\u003e\u003c\/p\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Row_-_Black_Housing.png?v=1769716266\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cbr\u003e\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-4b99d397-7fff-906b-35a7-84a67c24a04d\"\u003e\u003cspan\u003ePremium Lexan Lens + IP69K Sealed Housing\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEach light is built with an optical-grade Lexan lens—twice as strong as glass and engineered to resist fading or yellowing—paired with an IP69K-rated housing that blocks out salt, spray, sun, and high-pressure water. The result is a crystal-clear, fully sealed system designed to perform for years in the harshest marine or off-road environments.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_In_use.png?v=1769716452\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-09963c7a-7fff-f143-6176-4fb8a82f9e58\"\u003e\u003cspan\u003ePremium OSRAM\u003cmeta charset=\"utf-8\"\u003e® LEDs\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eHigh-efficiency OSRAM LEDs deliver exceptional brightness, clarity, and long-term reliability—engineered for demanding marine use and sustained high-output performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Light_bar_Graphic.jpg?v=1765897304\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-1bd915b9-7fff-7ead-10d7-6339b588eb74\"\u003e\u003cspan\u003eComplete Wiring Harness Included\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eEvery light bar comes ready to install with a pre-terminated 12-gauge wiring harness, inline fuse, relay, and switch — plus heavy-duty stainless mounting brackets for a secure, professional-grade setup right out of the box.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_5_REV_1.png?v=1764958828\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-8087a335-7fff-83a6-3451-b34f408e2b24\"\u003e\u003cspan\u003eCeramic-Coated, Hydrex-Sealed Construction\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eFinished with a corrosion-resistant ceramic coating and sealed with our Hydrex gasket system for true IP69K performance. 316 stainless bolt-in mounts provide unmatched strength and durability in saltwater or off-road environments.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2025-10-24_at_11.43.59_AM.png?v=1761320662\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cmeta charset=\"utf-8\"\u003e \u003cb id=\"docs-internal-guid-ee629166-7fff-bdc5-3e83-f34dfa1b13f6\"\u003e\u003cspan\u003ePrecision Beam Patterns\u003c\/span\u003e\u003c\/b\u003e\n\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from spot, flood, \u003cstrong\u003eor\u003c\/strong\u003e combo configurations for the perfect lighting spread. Our advanced reflector design ensures maximum throw distance and balanced side illumination for total visibility in any situation. \u003cmeta charset=\"utf-8\"\u003e\u003cstrong data-end=\"180\" data-start=\"168\"\u003ePro Tip:\u003c\/strong\u003e Combo is usually the best choice — it gives you the best of both worlds, with the spot pattern in the center for distance and the flood pattern on the ends for wide coverage.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cbr\u003e\n\u003cp\u003e\u003ciframe width=\"420\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/fNuQt7zNg3s?rel=0\"\u003e\u003c\/iframe\u003e\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cb\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/b\u003e\u003cbr\u003e\n\u003c\/h3\u003e\n\u003ch3 class=\"text-title\"\u003e\u003cb id=\"docs-internal-guid-93e6bcc8-7fff-5382-d6c9-e3ee51f66868\"\u003e\u003cspan\u003eLifetime Warranty\u003c\/span\u003e\u003c\/b\u003e\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEnjoy complete peace of mind knowing your light is backed by our industry-leading lifetime warranty. We stand behind every product we build — if it ever fails due to workmanship or materials, we’ll repair or replace it, guaranteed.\u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c!-- Specs chart --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th,\n  table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n    vertical-align: top;\n  }\n\n  \/* Column headers *\/\n  table.spec-table thead th {\n    background-color: #f7f7f7;\n    font-weight: 700;\n  }\n\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n\n  \/* Section header row *\/\n  table.spec-table .spec-section th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\" style=\"width: 100.089%; height: 707px;\"\u003e\n\u003cthead\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eFeature\u003c\/th\u003e\n\u003cth style=\"width: 62.673%; height: 21px;\"\u003e5 Watt\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"spec-section\" style=\"height: 21px;\"\u003e\n\u003cth colspan=\"2\" style=\"width: 92.2321%; height: 21px;\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e60\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e2.6\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e12-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e7,920\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eColor Temperature\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e6,000\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eLED Diode Qty\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e12\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eLED Chip\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003eOsram\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003eSpot or Flood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 35px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 35px;\"\u003eBeam Angle\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 35px;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cspan\u003eBoth - Combo\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e15° - Spot\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e45° - Flood\u003c\/span\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eMode\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003eOn\/Off\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 42px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 42px;\"\u003eDimmable?\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 42px;\"\u003eYes! (Separate dimmer module Required, NOT included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\" style=\"height: 21px;\"\u003e\n\u003cth colspan=\"2\" style=\"width: 92.2321%; height: 21px;\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 42px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 42px;\"\u003eOperating Temp\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 42px;\"\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eWarranty\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eGuarantee\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\" style=\"height: 21px;\"\u003e\n\u003cth colspan=\"2\" style=\"width: 92.2321%; height: 21px;\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eCord Lead From Light\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e16\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 42px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 42px;\"\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 42px;\"\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e12'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eWire Gauge\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e16\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eFuse Size\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e5 Amp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eConnector Type\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\" style=\"height: 21px;\"\u003e\n\u003cth colspan=\"2\" style=\"width: 92.2321%; height: 21px;\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eWeight\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e4.4 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth style=\"width: 29.5591%;\"\u003eSKU - Combo\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%;\"\u003e6C-D5OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eSKU - Spot\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e6S-D5OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 21px;\"\u003e\n\u003cth style=\"width: 29.5591%; height: 21px;\"\u003eSKU - Flood\u003c\/th\u003e\n\u003ctd style=\"width: 62.673%; height: 21px;\"\u003e6F-D5OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!--------- Dimensions --------\u003e\n\u003ch5\u003eSize\u003c\/h5\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/6_Inch_Double_Row_-_Straight.png?v=1736437509\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e \u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Double_Row_Dimensions.jpg?v=1767820397\"\u003e\u003cbr\u003e\n\u003c\/div\u003e\n\u003ch5\u003ePattern\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_Light_Pattern_May_24.jpg?v=1749153353\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eInstructions\u003c\/h5\u003e\n\u003cp\u003eDownload Instructions \u003ca rel=\"noopener\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Double_Single_Row_Light_Bar_-_Quick_Start_Guide.pdf?v=1766074025\" target=\"_blank\"\u003eHere\u003c\/a\u003e.\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e\n\u003ch2 data-end=\"340\" data-start=\"311\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cp data-start=\"362\" data-end=\"688\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"695\" data-end=\"778\"\u003e\u003cstrong data-start=\"699\" data-end=\"776\"\u003eQ: What makes this light bar different from standard off-road light bars?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"779\" data-end=\"1118\"\u003e\u003cstrong data-start=\"779\" data-end=\"785\"\u003eA:\u003c\/strong\u003e This light bar is built with a focus on \u003cstrong data-start=\"826\" data-end=\"880\"\u003edurability, performance, and long-term reliability\u003c\/strong\u003e. It features a fully sealed housing, high-quality internal components, and a rugged black aluminum construction designed to handle vibration, dust, mud, rain, and harsh off-road conditions that cheaper light bars struggle with over time.\u003c\/p\u003e\n\u003cp data-start=\"1125\" data-end=\"1206\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"1125\" data-end=\"1206\"\u003e\u003cstrong data-start=\"1129\" data-end=\"1204\"\u003eQ: What beam patterns are available, and how do I choose the right one?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"1207\" data-end=\"1288\"\u003e\u003cstrong data-start=\"1207\" data-end=\"1213\"\u003eA:\u003c\/strong\u003e This light bar is available in \u003cstrong data-start=\"1245\" data-end=\"1271\"\u003eSpot, Flood, and Combo\u003c\/strong\u003e beam patterns.\u003c\/p\u003e\n\u003cul data-start=\"1289\" data-end=\"1658\"\u003e\n\u003cli data-start=\"1289\" data-end=\"1387\"\u003e\n\u003cp data-start=\"1291\" data-end=\"1387\"\u003e\u003cstrong data-start=\"1291\" data-end=\"1305\"\u003eSpot beams\u003c\/strong\u003e provide long-range distance lighting for higher-speed driving and open terrain.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"1388\" data-end=\"1504\"\u003e\n\u003cp data-start=\"1390\" data-end=\"1504\"\u003e\u003cstrong data-start=\"1390\" data-end=\"1405\"\u003eFlood beams\u003c\/strong\u003e deliver wide, close-range illumination ideal for crawling, work zones, or peripheral visibility.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli data-start=\"1505\" data-end=\"1658\"\u003e\n\u003cp data-start=\"1507\" data-end=\"1658\"\u003e\u003cstrong data-start=\"1507\" data-end=\"1522\"\u003eCombo beams\u003c\/strong\u003e offer the best of both, combining forward distance with wide coverage — making them the most versatile option for most off-road setups.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-start=\"2022\" data-end=\"2094\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"2022\" data-end=\"2094\"\u003e\u003cstrong data-start=\"2026\" data-end=\"2092\"\u003eQ: How durable is this light bar in harsh off-road conditions?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"2095\" data-end=\"2376\"\u003e\u003cstrong data-start=\"2095\" data-end=\"2101\"\u003eA:\u003c\/strong\u003e This light bar is fully sealed and built to withstand \u003cstrong data-start=\"2156\" data-end=\"2208\"\u003edust, mud, rain, vibration, and repeated impacts\u003c\/strong\u003e commonly encountered on trails, job sites, and rough terrain. It’s designed for consistent performance in real off-road environments — not just occasional weekend use.\u003c\/p\u003e\n\u003cp data-start=\"2383\" data-end=\"2453\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"2383\" data-end=\"2453\"\u003e\u003cstrong data-start=\"2387\" data-end=\"2451\"\u003eQ: Will this light bar cause glare on my hood or windshield?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"2454\" data-end=\"2711\"\u003e\u003cstrong data-start=\"2454\" data-end=\"2460\"\u003eA:\u003c\/strong\u003e Proper mounting and aiming are key. During installation, we recommend temporarily powering the light to fine-tune the angle. When positioned and aimed correctly, the light delivers strong forward visibility without excessive hood or windshield glare.\u003c\/p\u003e\n\u003cp data-start=\"2718\" data-end=\"2786\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"2718\" data-end=\"2786\"\u003e\u003cstrong data-start=\"2722\" data-end=\"2784\"\u003eQ: What voltage systems is this light bar compatible with?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"2787\" data-end=\"2969\"\u003e\u003cstrong data-start=\"2787\" data-end=\"2793\"\u003eA:\u003c\/strong\u003e This light bar is compatible with \u003cstrong data-start=\"2828\" data-end=\"2849\"\u003e10–30V DC systems\u003c\/strong\u003e, making it suitable for most \u003cstrong data-start=\"2879\" data-end=\"2903\"\u003e12V and 24V vehicles\u003c\/strong\u003e, including trucks, Jeeps, UTVs, side-by-sides, and work vehicles.\u003c\/p\u003e\n\u003cp data-start=\"2976\" data-end=\"3034\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"2976\" data-end=\"3034\"\u003e\u003cstrong data-start=\"2980\" data-end=\"3032\"\u003eQ: Does this light bar include a wiring harness?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"3035\" data-end=\"3196\"\u003e\u003cstrong data-start=\"3035\" data-end=\"3041\"\u003eA:\u003c\/strong\u003e Yes. This light bar includes a \u003cstrong data-start=\"3073\" data-end=\"3100\"\u003ecomplete wiring harness\u003c\/strong\u003e with relay, fuse, and switch, allowing for a straightforward installation right out of the box.\u003c\/p\u003e\n\u003cp data-start=\"3203\" data-end=\"3251\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"3203\" data-end=\"3251\"\u003e\u003cstrong data-start=\"3207\" data-end=\"3249\"\u003eQ: Is this light bar energy efficient?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"3252\" data-end=\"3453\"\u003e\u003cstrong data-start=\"3252\" data-end=\"3258\"\u003eA:\u003c\/strong\u003e Yes. High-efficiency LEDs provide powerful output while keeping amp draw low, helping protect your electrical system during extended use — especially important when running multiple accessories.\u003c\/p\u003e\n\u003cp data-start=\"3460\" data-end=\"3525\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"3460\" data-end=\"3525\"\u003e\u003cstrong data-start=\"3464\" data-end=\"3523\"\u003eQ: What applications is this light bar best suited for?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"3526\" data-end=\"3769\"\u003e\u003cstrong data-start=\"3526\" data-end=\"3532\"\u003eA:\u003c\/strong\u003e This light bar is ideal for \u003cstrong data-start=\"3561\" data-end=\"3676\"\u003eoff-road trail driving, overlanding, work sites, ranching, plowing, utility use, and general auxiliary lighting\u003c\/strong\u003e. Its compact size and strong output make it a great supplement to larger primary light bars.\u003c\/p\u003e\n\u003cp data-start=\"3776\" data-end=\"3831\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"3776\" data-end=\"3831\"\u003e\u003cstrong data-start=\"3780\" data-end=\"3829\"\u003eQ: What warranty does this light bar include?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-start=\"3832\" data-end=\"4028\"\u003e\u003cstrong data-start=\"3832\" data-end=\"3838\"\u003eA:\u003c\/strong\u003e This product is part of our \u003cstrong data-start=\"3867\" data-end=\"3892\"\u003ePro Series 3.0 lineup\u003c\/strong\u003e and is backed by \u003cstrong data-start=\"3910\" data-end=\"3955\"\u003eBlack Oak LED’s limited lifetime warranty\u003c\/strong\u003e, providing long-term confidence in performance, durability, and support.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Combo (Spot + Flood)","offer_id":4165678212,"sku":"6C-D5OS","price":275.0,"currency_code":"USD","in_stock":true},{"title":"Spot (15° Spread)","offer_id":4165677956,"sku":"6S-D5OS","price":275.0,"currency_code":"USD","in_stock":true},{"title":"Flood (45° Spread)","offer_id":4165678084,"sku":"6F-D5OS","price":275.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/6-inch-Double-Row-LED-Light-Bar-Black-Oak-3.0.jpg?v=1706710555"},{"product_id":"2-inch-amber-fog-light-pod-light-powerful-turret-style-pod-3w-osram","title":"2 Inch Amber LED Pod Light | Flood Optics | Pro Series 3.0 (12W)","description":"\u003ch5\u003eOverview\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/pod_banner_98c90e27-8a3d-4b09-aa24-8c48ae146c23_grande.png?13950129521022892721\" alt=\"\" width=\"702\" height=\"117\"\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePowerful LEDs in a Compact Size:\u003c\/strong\u003e  \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003cstrong\u003eThis light has been upgraded to the New Black Oak LED Pro Series 3.0, see below for all the new features\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe amber LED fog light POD by Black Oak LED offers a levels of power to fill any need you might possibly have. Using True Amber 3w LEDS, these Amber PODs are the High Performers in their class. The POD delivers extreme IP69K durability to match such high performing LEDs allowing you to have the confidence your 2 inch fog lights are going to perform when needed. These PODs come in the Food Optic which throws light in a 45° pattern, and is perfect for your Fog Light applications.\u003c\/p\u003e\n\u003cp\u003eCree and Osram are the biggest names on the LED market for a reason. They put out more light and more power at such an extreme level. You won't believe that much light came from an LED so tiny. These mount virtually anywhere and with all the hardware needed in box, this 2 inch fog light is ready when you order.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eActivities \u0026amp; Uses: \u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e- Cut through fog and rain\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e- Lower A-Pillar ditch lights on UTV's and trucks\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e- Plow through snow with ease of vision\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e- Race through dunes with better visibility\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e- Front Bumper lights\u003c\/p\u003e\n\u003cul\u003e\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"line-height: 1.4;\"\u003e\u003cstrong\u003eWire two amber LED fog lights together with our \u003cspan style=\"text-decoration: underline;\"\u003e2-piece connect cable\u003c\/span\u003e or up to four Pod Lights with our \u003cspan style=\"text-decoration: underline;\"\u003e\u003ca href=\"https:\/\/www.blackoakled.com\/products\/4-piece-connect-cable\" style=\"color: #000000; text-decoration: underline;\" target=\"_blank\"\u003e4-piece connect cable\u003c\/a\u003e\u003c\/span\u003e.\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003e\u003cbr\u003e\u003c\/b\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/2_Inch_Pod_Light_-_Line_Drawing.png?v=1736792329\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch3\u003e\u003cspan style=\"color: #d20404;\"\u003e\u003cstrong\u003eEvery \u003c\/strong\u003eNew Black Oak LED Pro Series 3.0 - \u003cstrong\u003ePOD Series Includes:\u003c\/strong\u003e\u003c\/span\u003e\u003c\/h3\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003e-  Complete Wiring Harness with f\u003c\/span\u003e\u003c\/strong\u003e\u003cstrong\u003e\u003cspan\u003euse, relay, \u0026amp; switch\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003e-  Mounting brackets\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003e-  All hardware, ready to install! \u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003eUpgrades and Features:\u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003e360\u003cstrong\u003e°\u003c\/strong\u003e Ceramic Protection against UV, Salt Water \u0026amp; Corrosion \u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e“One of the most popular trends lately has been ceramic coating vehicles and boats. We have since added a Baricoat ceramic coating to our lights. It is an added 3-part protection from UV, saltwater, and corrosion. You'll never have to worry about what weather you put these bars through as we made sure every aspect of these lights can hold up to any environment.\"\u003cbr\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/IllustrationV-2_643b5ee6-b0b8-4420-8a7c-d66f1ec091ad_160x160.png?v=1702067069\" alt=\"\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screen_Shot_2019-11-04_at_11.14.31_AM_6a2f5677-8d95-4642-bdef-b7803aa9d079_160x160.png?v=1572885960\" width=\"160x160\" height=\"160x160\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003e\n\u003cbr\u003e\u003cb\u003e2 Stage Hydrex Seal Lock IP69\u003c\/b\u003e\u003cbr\u003e\u003cspan\u003e  \u003c\/span\u003e\n\u003c\/h4\u003e\n\u003cp\u003e\u003cspan\u003e“We didn’t want to limit the introduction of the new Hydrex Seal to just the Double Rows and Pods, so we added it to our Single Rows as well. It has a 2 Stage gasket redundant waterproofing seal allowing it to have a strong, waterproof seal even after taking a beating. We wanted everything we build to be as marine grade as possible, so we made sure you won't have any issues with water intrusion.”\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cspan\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Heyrex-Seal-on-Black-Oak-Pro-Series-2.0_160x160.jpg?v=1572883692\" width=\"160x160\" height=\"160x160\"\u003e\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003e4x Times Stronger Dynamax \u003cb\u003eHousing\u003c\/b\u003e\n\u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e“Do you ever find yourself battling some rough terrain? We made sure not to skimp out on the testing of our new Dynamax housing to make sure you would never have to worry about limiting your capabilities. As shown in the testing on our double rows, our single rows can take just as much of a beating. We made sure to prove that with using our light bars as a ramp for one of our trucks.”\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e   \u003c\/p\u003e\n\u003ch4\u003e\u003cb\u003e60% More Light \u0026amp; Visibility:\u003c\/b\u003e\u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e“\u003cspan\u003eWe redesigned our optics to make what was already great produce a more efficient light output. It increased the throw distance in our Spot pattern and widened the throw in the Flood pattern. You don't need to worry about the size of the light. These upgraded optics will throw out 60% more light.\u003c\/span\u003e”  \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_Light_Pattern_May_24.jpg?v=1749154696\" alt=\"\"\u003e\u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch4\u003e\u003cb\u003eMore Security\u003c\/b\u003e\u003c\/h4\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e“With Black Oak LED Lights, there is no room for failure. That’s why we even beefed up our bolts with stronger threads to offer better protection on our bars. We wanted to make sure there were no weak links in any part of our light bars, hence the decision to upgrade our hardware.”\u003c\/span\u003e \u003c\/p\u003e\n\u003cp\u003e  \u003c\/p\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-hover {\n    width: 100%;\n    border-collapse: collapse;\n    text-align: left;\n    font-family: Arial, sans-serif;\n    font-size: 16px;\n  }\n\n  table.spec-hover th {\n    background-color: #000000;\n    color: #ffffff;\n    padding: 12px;\n    border: 1px solid #ddd;\n    font-weight: bold;\n  }\n\n  table.spec-hover td {\n    padding: 12px;\n    border: 1px solid #ddd;\n  }\n\n  table.spec-hover tr:hover {\n    background-color: #f0f0f0;\n    transition: background-color 0.3s ease;\n  }\n\n  table.spec-hover tr.spec-section td {\n    background-color: #f4f4f4;\n    font-weight: bold;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-hover\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFeature\u003c\/th\u003e\n\u003cth\u003eDetails\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003ctd colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTotal Wattage\u003c\/td\u003e\n\u003ctd\u003e12 Watt\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTotal Amp Draw\u003c\/td\u003e\n\u003ctd\u003e1.1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eOperating Voltage\u003c\/td\u003e\n\u003ctd\u003e10 - 30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLumens\u003c\/td\u003e\n\u003ctd\u003e1,244\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLED Diode Qty\u003c\/td\u003e\n\u003ctd\u003e4\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLED Chip\u003c\/td\u003e\n\u003ctd\u003eOsram\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBeam Pattern\u003c\/td\u003e\n\u003ctd\u003eFlood\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBeam Angle\u003c\/td\u003e\n\u003ctd\u003e45°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003ctd colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLife Expectancy\u003c\/td\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eOperating Temp\u003c\/td\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWaterproof Rating\u003c\/td\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWarranty\u003c\/td\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGuarantee\u003c\/td\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003ctd colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCord Length From Light\u003c\/td\u003e\n\u003ctd\u003e16\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWire Harness Included?\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWire Harness Length\u003c\/td\u003e\n\u003ctd\u003e12'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWire Gauge\u003c\/td\u003e\n\u003ctd\u003e16\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFuse Size\u003c\/td\u003e\n\u003ctd\u003e5 Amp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eConnector Type\u003c\/td\u003e\n\u003ctd\u003e2 Pin Deutsch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHole Size for Switch\u003c\/td\u003e\n\u003ctd\u003e3\/4\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"spec-section\"\u003e\n\u003ctd colspan=\"2\"\u003eGeneral\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e1.4 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSKU\u003c\/td\u003e\n\u003ctd\u003e2A-POD3OS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch4 style=\"text-align: left;\"\u003e\u003cbr\u003e\u003c\/h4\u003e\n\u003ch5 style=\"text-align: left;\"\u003eDimensions\u003c\/h5\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/2_Inch_Pod_Light_-_Line_Drawing_600x600.png?v=1736792329\" alt=\"\" style=\"margin-bottom: 16px; float: none;\"\u003e\u003c\/div\u003e\n\u003ch5\u003eLight Pattern\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_Light_Pattern_May_24.jpg?v=1749154696\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eProduct Q+A\u003c\/h5\u003e\n\u003cp class=\"p1\"\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eHow do I know your lights are of the highest quality?\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p2\"\u003eWith IP68, IP69, IP69K ratings, the research has already been done for you! These standards give you clear cut pass\/fail scenarios to ensure only the toughest of the tough get passed these guys, Including water, temperature, pressure, and sheer brute force.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eWhat exactly does your warranty cover?\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p2\"\u003eWe are human, and thus make mistakes. If you believe your light was one of these rare occurrences due to workmanship or material failure, send it back and we will verify. Once confirmed, Black Oak LED will repair, or otherwise replace, your light free of charge.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eI see 3w, 5w, and 10w LED options, what’s the difference?\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p2\"\u003eYou have the option between 3w Osram, 5w Osram, or 10w Cree LEDs. These are some of the brightest LEDs on the market! Don’t be misled, the 3 watts still put out an unbelievable amount of light! You choose just how bright you need it.\u003c\/p\u003e\n\u003cp class=\"p2\"\u003e \u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eWhat is light beam spread pattern, and what is best for me?\u003c\/b\u003e\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eFlood\u003c\/b\u003e- Wide-spread light to illuminate the side and front of your rig. Perfect for those who want a wider cone of light than a spot.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eSpot\u003c\/b\u003e- Great for those who need those piercing beams of light that seem to travel forever.\u003c\/p\u003e\n\u003cp class=\"p1\"\u003e\u003cb\u003eCombo\u003c\/b\u003e- Best of both worlds, the floods sit on the outside giving you the side blow-out of light while still shooting far with the Spots piercing far ahead.\u003c\/p\u003e\n\u003c!-- split --\u003e","brand":"Black Oak LED","offers":[{"title":"Default Title","offer_id":25451229960,"sku":"2A-POD3OS","price":109.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/products\/Amber_Pod_Light.jpg?v=1752505365"},{"product_id":"low-pro-emergency-light-bar","title":"49\" Low Pro Emergency Light Bar","description":"\u003c!-- LOWPRO INTERACTIVE PLAYER (test embed) --\u003e\n\u003cdiv id=\"lowpro-player-block\" style=\"margin:0 0 26px;\"\u003e\n\u003cdiv class=\"lowpro-cta\"\u003e\n\u003ch2 style=\"margin:0 0 4px;font-size:24px;line-height:1.25;\"\u003eTake the Controls: Try This Light Bar Live\u003c\/h2\u003e\n\u003cp style=\"margin:0 0 12px;font-size:15px;line-height:1.5;\"\u003ePick your colors, run the flash patterns, sweep the traffic advisor, and switch on the 360° Halo scene light, exactly like the controller in the box. Every module on a dual-color bar can show either color.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ciframe id=\"lowpro-player-frame\" class=\"lowpro-frame\" title=\"Low Pro Emergency Bar interactive demo\" style=\"width:100%;border:0;display:block;border-radius:16px;background:#0a0c0f;\" srcdoc='\u0026lt;!DOCTYPE html\u0026gt;\n\u0026lt;html lang=\"en\"\u0026gt;\n\u0026lt;head\u0026gt;\n\u0026lt;meta charset=\"UTF-8\"\u0026gt;\n\u0026lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u0026gt;\n\u0026lt;title\u0026gt;Black Oak LED · Low Pro Emergency Bar Interactive Demo\u0026lt;\/title\u0026gt;\n\u0026lt;style\u0026gt;\n  :root{\n    --bg:#0a0c0f; --panel:#111418; --panel2:#161a20; --edge:#242a33;\n    --txt:#e8ecf2; --dim:#8a94a3; --white-led:#F4F8FF; --navy:#0B1B2B; --accent:#C8892A;\n  }\n  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent}\n  html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);\n    font-family:\"Segoe UI\",system-ui,-apple-system,Roboto,Arial,sans-serif;}\n  .wrap{max-width:1100px;margin:0 auto;padding:14px 16px 20px;}\n  header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}\n  .brand{font-weight:800;letter-spacing:.18em;font-size:19px;white-space:nowrap}\n  .brand span{color:var(--dim);font-weight:600}\n  .sub{color:var(--dim);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}\n  .stage{background:radial-gradient(ellipse at 50% 30%, #14181e 0%, #0b0d11 70%);\n    border:1px solid var(--edge);border-radius:14px;padding:6px 10px 2px;position:relative;overflow:hidden}\n  .stage svg{display:block;width:100%;height:auto}\n  .stageLabel{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.14em;\n    color:#5b6470;text-transform:uppercase}\n  .haloBadge{position:absolute;top:10px;right:14px;display:none;align-items:center;gap:8px;\n    font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#dfe9f7;\n    background:rgba(70,90,120,.22);border:1px solid rgba(190,215,255,.35);\n    border-radius:999px;padding:5px 12px 5px 9px;backdrop-filter:blur(2px)}\n  .haloBadge .dot{width:8px;height:8px;border-radius:50%;background:#F4F8FF;\n    box-shadow:0 0 8px 2px rgba(220,235,255,.9);flex:none}\n  .haloBadge b{font-weight:700;color:#fff}\n  .haloBadge span{color:#9fb0c6;text-transform:none;letter-spacing:.02em}\n  @media(max-width:700px){.haloBadge span{display:none}}\n  .lower{display:grid;grid-template-columns:270px 1fr;gap:14px;margin-top:14px;align-items:stretch}\n  .compactSel{display:none}\n  @media(max-width:840px){\n    .stage{padding:8px 8px 4px}\n    .stageLabel{position:static;font-size:10px;margin:0 0 6px}\n    .haloBadge{position:static;font-size:10px;padding:4px 9px;margin:0 0 6px;width:max-content}\n    .wrap{padding:6px 6px 10px !important}\n    .lower{grid-template-columns:1fr;gap:10px}\n    .cardCtl{order:1}\n    .cardColors{order:2}\n    .cardColors .cRow,.cardColors .hint{display:none}\n    .cardColors.expanded .cRow{display:block}\n    .compactSel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    .compactSel .sw{cursor:default}\n    .compactSel .sw:hover{transform:none}\n  }\n  .card{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:14px}\n  .card h3{margin:0 0 10px;font-size:11.5px;letter-spacing:.16em;color:var(--dim);\n    text-transform:uppercase;font-weight:700}\n  .cRow{margin-bottom:12px}\n  .cRow .lbl{font-size:12px;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}\n  .swatches{display:flex;gap:8px;flex-wrap:wrap}\n  .sw{width:38px;height:30px;border-radius:7px;border:2px solid #2c333d;cursor:pointer;\n    position:relative;transition:transform .08s}\n  .sw:hover{transform:translateY(-1px)}\n  .sw.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25),0 0 14px rgba(255,255,255,.15)}\n  .sw.none{background:repeating-linear-gradient(45deg,#1a1f26 0 6px,#12161b 6px 12px)}\n  .sw.none::after{content:\"OFF\";position:absolute;inset:0;display:flex;align-items:center;\n    justify-content:center;font-size:9px;color:#6b7480;font-weight:700;letter-spacing:.05em}\n  .swapBtn{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);border-radius:7px;\n    font-size:11px;padding:4px 9px;cursor:pointer;letter-spacing:.06em}\n  .swapBtn:hover{border-color:#4a5462}\n  .hint{font-size:11.5px;line-height:1.5;color:#6d7684;border-top:1px solid var(--edge);\n    padding-top:10px;margin-top:2px}\n  .hint b{color:#9aa4b2;font-weight:600}\n  .ctlWrap{display:flex;justify-content:center}\n  .ctlWrap svg{width:100%;max-width:560px;height:auto}\n  .kb{cursor:pointer}\n  .kb rect.face,.kb circle.face,.kb path.face{fill:#20242b;stroke:#0c0e11;stroke-width:1.5;transition:fill .1s}\n  .kb:hover rect.face,.kb:hover circle.face,.kb:hover path.face{fill:#2e3641}\n  @keyframes ringPulse{0%,100%{stroke-opacity:.9}50%{stroke-opacity:.12}}\n  .pulseRing{fill:none;stroke:#ffb43a;stroke-width:2.5;animation:ringPulse 1.8s ease-in-out infinite;pointer-events:none}\n  @keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}\n  .tryHint{display:flex;justify-content:center;margin:10px 0 0}\n  .tryHint span{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;\n    text-transform:uppercase;color:#ffcf7d;border:1px solid rgba(255,180,58,.45);border-radius:999px;\n    padding:6px 14px;animation:hintPulse 2.4s ease-in-out infinite;background:rgba(255,180,58,.07)}\n  .tryHint .dotLive{width:7px;height:7px;border-radius:50%;background:#ffb43a;\n    box-shadow:0 0 7px 2px rgba(255,180,58,.7);flex:none}\n  .kb.lit rect.face,.kb.lit circle.face,.kb.lit path.face{fill:#dfe7f5}\n  .kb.lit text{fill:#20242b;font-weight:600}\n  .kb:active rect.face,.kb:active circle.face,.kb:active path.face{fill:#aab6c9}\n  .kb.lit{filter:url(#btnGlow)}\n  .kb text{fill:#c7cdd6;font-size:11px;text-anchor:middle;pointer-events:none;user-select:none}\n  footer{margin-top:12px;color:#59626e;font-size:11px;letter-spacing:.04em;\n    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}\n  footer a{color:#7d8794;text-decoration:none}\n\u0026lt;\/style\u0026gt;\n\u0026lt;\/head\u0026gt;\n\u0026lt;body\u0026gt;\n\u0026lt;div class=\"wrap\"\u0026gt;\n  \u0026lt;header\u0026gt;\n    \u0026lt;div class=\"brand\"\u0026gt;BLACK OAK \u0026lt;span\u0026gt;LED\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"sub\"\u0026gt;Low Pro\u0026amp;trade; Emergency Bar · Interactive Demo \u0026amp;bull; 49\u0026amp;Prime;\u0026lt;\/div\u0026gt;\n  \u0026lt;\/header\u0026gt;\n\n  \u0026lt;div class=\"stage\"\u0026gt;\n    \u0026lt;div class=\"stageLabel\" id=\"patternLabel\"\u0026gt;Pattern 1 · Single Flash\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"haloBadge\" id=\"haloBadge\"\u0026gt;\u0026lt;i class=\"dot\"\u0026gt;\u0026lt;\/i\u0026gt;\n      \u0026lt;b\u0026gt;360\u0026amp;deg; Halo\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;\u0026amp;nbsp;scene light \u0026amp;middot; runs with or without the flashers\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;svg id=\"barSvg\" viewBox=\"0 0 1000 240\" aria-label=\"Light bar simulation\"\u0026gt;\u0026lt;\/svg\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"tryHint\" id=\"tryHint\"\u0026gt;\u0026lt;span\u0026gt;\u0026lt;i class=\"dotLive\"\u0026gt;\u0026lt;\/i\u0026gt;Live demo \u0026amp;middot; try the controller buttons\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"lower\"\u0026gt;\n    \u0026lt;div class=\"card cardColors\" id=\"colorCard\"\u0026gt;\n      \u0026lt;h3\u0026gt;Select Colors\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"compactSel\" id=\"compactSel\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 1\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw1\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 2 (dual color)\u0026lt;\/span\u0026gt;\n          \u0026lt;button class=\"swapBtn\" id=\"swapBtn\" title=\"Swap Color 1 and Color 2\"\u0026gt;\u0026amp;#8646; Swap\u0026lt;\/button\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw2\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"hint\"\u0026gt;\n        Every LED module on the Low Pro can display \u0026lt;b\u0026gt;either\u0026lt;\/b\u0026gt; selected color:\n        pick two colors and each module switches between them.\n        The right-hand cluster runs the \u0026lt;b\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/b\u0026gt;, a Low Pro\n        exclusive: it floods the area around the vehicle with steady work light,\n        with or without the warning flashers running. Try the \u0026lt;b\u0026gt;White\u0026lt;\/b\u0026gt; button.\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"card cardCtl\"\u0026gt;\n      \u0026lt;h3\u0026gt;Controller · press the buttons\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"ctlWrap\"\u0026gt;\n        \u0026lt;svg id=\"ctl\" viewBox=\"0 0 560 300\" aria-label=\"Controller keypad\"\u0026gt;\u0026lt;\/svg\u0026gt;\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;footer\u0026gt;\n    \u0026lt;div\u0026gt;BLACK OAK LED · Navigate the Night.\u0026lt;\/div\u0026gt;\n    \u0026lt;div\u0026gt;Designed and engineered in Sarasota, Florida\u0026lt;\/div\u0026gt;\n  \u0026lt;\/footer\u0026gt;\n\u0026lt;\/div\u0026gt;\n\n\u0026lt;script\u0026gt;\n\"use strict\";\nconst LEDCOLORS = {\n  amber:{main:\"#ffb43a\", core:\"#ffe9b0\", glow:\"#ff9d00\", label:\"Amber\"},\n  white:{main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#cfe4ff\", label:\"White\"},\n  red:  {main:\"#ff2d23\", core:\"#ffb0a8\", glow:\"#ff1400\", label:\"Red\"},\n  blue: {main:\"#2a62ff\", core:\"#b8ccff\", glow:\"#0040ff\", label:\"Blue\"},\n  green:{main:\"#19d949\", core:\"#c2ffcf\", glow:\"#00c832\", label:\"Green\"}\n};\nconst HALO = {main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#dcebff\"};\n\nconst S = {\n  color1:\"amber\", color2:\"white\",\n  c1on:true, c2on:false,\n  zones:{front:true, back:true, left:true, right:true},\n  halo:{front:false, back:false, left:false, right:false},\n  pattern:1,\n  ta:null,\n  cruise:false, random:false, dim50:false, autoSensor:false,\n  indicatorOff:false, favorite:1,\n  randTimer:0, randPat:1\n};\n\nconst NS=\"http:\/\/www.w3.org\/2000\/svg\";\nconst bar = document.getElementById(\"barSvg\");\nconst modules = [];\n\nfunction el(name, attrs, parent){\n  const e=document.createElementNS(NS,name);\n  for(const k in attrs) e.setAttribute(k,attrs[k]);\n  if(parent) parent.appendChild(e);\n  return e;\n}\n\nfunction buildBar(){\n  const defs = el(\"defs\",{},bar);\n  const mkGlow=(id,dev)=\u0026gt;{\n    const f=el(\"filter\",{id, x:\"-80%\",y:\"-80%\",width:\"260%\",height:\"260%\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:dev, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  };\n  mkGlow(\"ledGlow\",4);\n  (()=\u0026gt;{\n    const f=el(\"filter\",{id:\"haloGlow\", filterUnits:\"userSpaceOnUse\",\n      x:\"-120\",y:\"-160\",width:\"1240\",height:\"560\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:11, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  })();\n\n  const G = el(\"g\",{},bar);\n  const haloLayer = el(\"g\",{opacity:\"0\"},G);\n  const sidePaths = {\n    front:\"M 150,62 L 850,62\",\n    back: \"M 150,178 L 850,178\",\n    left: \"M 150,62 L 75,95 L 75,145 L 150,178\",\n    right:\"M 850,62 L 925,95 L 925,145 L 850,178\"\n  };\n  const haloEls = {};\n  for(const z in sidePaths){\n    const g=el(\"g\",{filter:\"url(#haloGlow)\"},haloLayer);\n    [[10,.9],[26,.4],[52,.16],[88,.07]].forEach(([wd,op])=\u0026gt;{\n      el(\"path\",{d:sidePaths[z], stroke:\"#eef4ff\", \"stroke-width\":wd, \"stroke-opacity\":op,\n        fill:\"none\", \"stroke-linecap\":\"round\", \"stroke-linejoin\":\"round\"},g);\n    });\n    haloEls[z]=g;\n  }\n  for(const k in haloEls){ haloEls[k].setAttribute(\"visibility\",\"hidden\"); }\n  S._haloEls = haloEls; haloLayer.setAttribute(\"opacity\",\"1\");\n\n  const bodyPts = \"150,62 850,62 925,95 925,145 850,178 150,178 75,145 75,95\";\n  el(\"polygon\",{points:bodyPts, fill:\"#15181d\", stroke:\"#3a4149\", \"stroke-width\":3},G);\n  el(\"polygon\",{points:\"158,70 842,70 913,99 913,141 842,170 158,170 87,141 87,99\",\n    fill:\"#0e1114\", stroke:\"#22272e\",\"stroke-width\":1},G);\n  el(\"text\",{x:500,y:112,\"text-anchor\":\"middle\",fill:\"#c9d0d9\",\"font-size\":\"21\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"6\",\"font-family\":\"inherit\"},G).textContent=\"BLACK OAK\";\n  el(\"text\",{x:500,y:130,\"text-anchor\":\"middle\",fill:\"#4c545e\",\"font-size\":\"9\",\n    \"letter-spacing\":\"2\"},G).textContent=\"SAE W3-1 22\";\n  el(\"circle\",{cx:500,cy:148,r:5,fill:\"#20252b\",stroke:\"#3a4149\"},G);\n\n  const ledLayer = el(\"g\",{},G);\n  const N=12;\n  const w=53, h=12, gap=4.6;\n  const startX=155, span=690;\n  let order=0;\n  const addMod=(zone,x,y,rot,cx,cy)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x,y,width:w,height:h,rx:4, fill:\"#23282f\", stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:x-6,y:y-6,width:w+12,height:h+12,rx:9, fill:\"none\",opacity:0, filter:\"url(#ledGlow)\"},g);\n    modules.push({zone, lens, halo, idx:order++, px:x+w\/2});\n  };\n  const addRot=(zone,cx,cy,len,rot)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x:cx-len\/2,y:cy-h\/2,width:len,height:h,rx:4,\n      fill:\"#23282f\",stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:cx-len\/2-6,y:cy-h\/2-6,width:len+12,height:h+12,rx:9,\n      fill:\"none\",opacity:0,filter:\"url(#ledGlow)\"},g);\n    modules.push({zone,lens,halo,idx:modules.length,px:cx});\n  };\n  for(let i=0;i\u0026lt;N;i++){ const x=startX+i*(span\/N)+gap\/2; addMod(\"front\",x,52,0,0,0); }\n  addRot(\"right\",884,73,68,23.7);\n  addRot(\"right\",921,120,46,90);\n  addRot(\"right\",884,167,68,-23.7);\n  for(let i=N-1;i\u0026gt;=0;i--){ const x=startX+i*(span\/N)+gap\/2; addMod(\"back\",x,176,0,0,0); }\n  addRot(\"left\",116,167,68,23.7);\n  addRot(\"left\",79,120,46,90);\n  addRot(\"left\",116,73,68,-23.7);\n}\nbuildBar();\nconst NMOD = modules.length;\nconst frontMods = modules.filter(m=\u0026gt;m.zone===\"front\");\nconst backMods  = modules.filter(m=\u0026gt;m.zone===\"back\");\nconst halfSplit = m=\u0026gt;{\n  if(m.zone===\"left\") return \"L\";\n  if(m.zone===\"right\") return \"R\";\n  const list = m.zone===\"front\"?frontMods:backMods;\n  const pos = list.indexOf(m);\n  const leftSide = m.zone===\"front\" ? pos \u0026lt; list.length\/2 : pos \u0026gt;= list.length\/2;\n  return leftSide ? \"L\" : \"R\";\n};\nmodules.forEach(m=\u0026gt;m.side=halfSplit(m));\nconst PXMIN=Math.min(...modules.map(m=\u0026gt;m.px)), PXMAX=Math.max(...modules.map(m=\u0026gt;m.px));\n\nfunction pulse(t, cycle, n){\n  const ph = t % cycle;\n  if(n===1) return ph \u0026lt; 168;\n  const sub = cycle\u0026gt;=800 ? 84 : (n===2 ? 83 : 67);\n  const onw = cycle\u0026gt;=800 ? 67 : 50;\n  if(ph \u0026gt;= n*sub) return false;\n  return (ph % sub) \u0026lt; onw;\n}\nfunction burst(local, half, n){\n  const sub = Math.min(half\u0026gt;=400 ? 84 : 67, half\/n);\n  if(local \u0026gt;= n*sub) return false;\n  return (local % sub) \u0026lt; sub*.75;\n}\nconst PATTERNS = {\n  1:{name:\"Single Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,1)},\n  2:{name:\"Double Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,2)},\n  3:{name:\"Triple Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,3)},\n  4:{name:\"Quintuple Flash\", cyc:800, f:(t,c)=\u0026gt;pulse(t,c,5)},\n  5:{name:\"Slow Single Flash\",cyc:800,f:(t,c)=\u0026gt;(t%c) \u0026lt; 434},\n  6:{name:\"Two Adjacent Groups Alternate\", cyc:400, group:true},\n  7:{name:\"Left \/ Right 3-Flash Alternate\", cyc:400, lr:3},\n  8:{name:\"Left \/ Right 5-Flash Alternate\", cyc:800, lr:5},\n  9:{name:\"Counterclockwise Rotation\", cyc:1400, rot:-1},\n  10:{name:\"Clockwise Rotation\",       cyc:1400, rot:1},\n  11:{name:\"Left Steady + Right Quintuple\", cyc:800, steady:\"L\"},\n  12:{name:\"Right Steady + Left Quintuple\", cyc:800, steady:\"R\"}\n};\n\nfunction moduleState(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const single = (S.c1on?1:0)+(S.c2on\u0026amp;\u0026amp;S.color2?1:0)===1;\n  if(!dual \u0026amp;\u0026amp; !single) return null;\n  const cA = S.c1on ? S.color1 : S.color2;\n  const P = PATTERNS[S.pattern];\n  const cyc = P.cyc;\n\n  if(S.cruise){\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:.7};\n  }\n\n  let phaseColor = cA;\n  let tt = t;\n  if(dual){\n    const period = cyc*2;\n    const first = (t % period) \u0026lt; cyc;\n    phaseColor = first ? S.color1 : S.color2;\n    tt = t % cyc;\n  }\n\n  if(P.rot){\n    const pos = (t % cyc)\/cyc;\n    const head = P.rot===1 ? pos : 1-pos;\n    const center = head*NMOD;\n    let d = Math.abs(m.idx - center);\n    d = Math.min(d, NMOD-d);\n    if(d \u0026gt; 3.2) return null;\n    const col = dual ? (Math.floor(t\/cyc)%2? S.color2 : S.color1) : cA;\n    return {color:col, intensity: 1 - d\/3.6};\n  }\n  if(P.lr){\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    const mineFirst = m.side===\"L\";\n    if(firstHalf!==mineFirst) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, P.lr)) return null;\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:1};\n  }\n  if(P.group){\n    const g = Math.floor(m.idx\/2)%2;\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    if((g===0)!==firstHalf) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, 3)) return null;\n    const col = dual ? (g===0?S.color1:S.color2) : phaseColor;\n    return {color:col, intensity:1};\n  }\n  if(P.steady){\n    const steadySide = P.steady;\n    if(m.side===steadySide){\n      const col = dual ? S.color1 : cA;\n      return {color:col, intensity:.4};\n    }\n    if(!pulse(tt,cyc,5)) return null;\n    const col = dual ? S.color2 : cA;\n    return {color:col, intensity:1};\n  }\n  if(!P.f(tt,cyc)) return null;\n  if(dual){\n    if(S.pattern===2||S.pattern===3){\n      const flip = S.pattern===3;\n      const c1side = flip? \"R\":\"L\";\n      return {color: m.side===c1side? S.color1:S.color2, intensity:1};\n    }\n    return {color:phaseColor, intensity:1};\n  }\n  return {color:cA, intensity:1};\n}\n\nfunction taSweep(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const T = 1600;\n  const pass = Math.floor(t\/T) % (dual?2:1);\n  const col = dual ? (pass===0 ? S.color1 : S.color2)\n                   : (S.c1on ? S.color1 : (S.color2||S.color1));\n  const ph=(t%T)\/T;\n  let build;\n  if(ph\u0026lt;.65) build = ph\/.65;\n  else if(ph\u0026lt;.8) build = 1;\n  else return null;\n  const p = (m.px-PXMIN)\/(PXMAX-PXMIN);\n  const e = .002;\n  let on=false;\n  if(S.ta===\"right\")      on = p \u0026lt;= build+e;\n  else if(S.ta===\"left\")  on = (1-p) \u0026lt;= build+e;\n  else                    on = Math.abs(p-0.5) \u0026lt;= build*0.5+e;\n  return on? {color:col,intensity:1} : null;\n}\n\nlet lastPatternShown=-1;\nfunction render(t){\n  const dimMul = S.dim50? .45 : 1;\n  if(S.random \u0026amp;\u0026amp; t-S.randTimer\u0026gt;4000){\n    S.randTimer=t; S.pattern = 1+Math.floor(Math.random()*12); syncUI();\n  }\n  const warnOn = (S.c1on || (S.c2on\u0026amp;\u0026amp;S.color2));\n  for(const m of modules){\n    let st;\n    if(S.ta) st = taSweep(m,t);\n    else if(warnOn \u0026amp;\u0026amp; S.zones[m.zone]) st = moduleState(m,t);\n    else st = null;\n    m.cur = st;\n    if(st){ m.lastT=t; m.lastC=st.color; m.lastK=st.intensity; }\n    let drawC=null, drawK=0;\n    if(st){ drawC=st.color; drawK=st.intensity; }\n    else if(m.lastC \u0026amp;\u0026amp; (t-m.lastT)\u0026lt;70){ drawC=m.lastC; drawK=m.lastK*(1-(t-m.lastT)\/70)*.7; }\n    if(drawC){\n      const c=LEDCOLORS[drawC];\n      const k=drawK*dimMul;\n      m.lens.setAttribute(\"fill\", k\u0026gt;.55? c.core : c.main);\n      m.lens.setAttribute(\"stroke\", c.main);\n      m.halo.setAttribute(\"fill\", c.glow);\n      m.halo.setAttribute(\"opacity\", (0.85*k).toFixed(2));\n    }else{\n      m.lens.setAttribute(\"fill\",\"#23282f\");\n      m.lens.setAttribute(\"stroke\",\"#10131a\");\n      m.halo.setAttribute(\"opacity\",\"0\");\n    }\n  }\n  for(const z in S._haloEls){\n    S._haloEls[z].setAttribute(\"visibility\", S.halo[z]? \"visible\":\"hidden\");\n    S._haloEls[z].setAttribute(\"opacity\", (.85*dimMul).toFixed(2));\n  }\n  if(S._dots){\n    const RED=\"#ff2622\", OFF=\"#1c2026\";\n    for(const row of [\"front\",\"back\"]){\n      const src = row===\"front\"? frontMods : backMods.slice().reverse();\n      S._dots[row].forEach((dot,i)=\u0026gt;{\n        if(S.indicatorOff){ dot.setAttribute(\"fill\",OFF); return; }\n        const m = src[Math.round(i*(src.length-1)\/(S._dots[row].length-1))];\n        dot.setAttribute(\"fill\", m.cur? RED : OFF);\n      });\n    }\n    const zoneLit = z =\u0026gt; modules.some(m=\u0026gt;m.zone===z \u0026amp;\u0026amp; m.cur);\n    S._dotL.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"left\"))?  RED : OFF);\n    S._dotR.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"right\"))? RED : OFF);\n  }\n  if(S.pattern!==lastPatternShown){ lastPatternShown=S.pattern; updateLabel(); }\n  requestAnimationFrame(render);\n}\n\nfunction updateLabel(){\n  const P=PATTERNS[S.pattern];\n  document.getElementById(\"patternLabel\").textContent =\n    `Pattern ${S.pattern} · ${P.name}` + (S.cruise? \"  •  Cruise\":\"\") + (S.ta\u0026amp;\u0026amp;!tourActive? `  •  Traffic Advisor ${S.ta}`:\"\");\n  drawDisplay();\n}\n\nconst ORDER=[\"amber\",\"white\",\"red\",\"blue\",\"green\"];\nfunction buildCompact(){\n  const c=document.getElementById(\"compactSel\");\n  c.innerHTML=\"\";\n  const mk=(col)=\u0026gt;{ const d=document.createElement(\"div\"); d.className=\"sw\";\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label; return d; };\n  const lab=document.createElement(\"span\");\n  lab.style.cssText=\"font-size:12px;color:#8a94a3\";\n  lab.textContent=\"Your colors:\";\n  c.appendChild(lab);\n  c.appendChild(mk(S.color1));\n  if(S.color2){ c.appendChild(mk(S.color2)); }\n  const btn=document.createElement(\"button\");\n  btn.className=\"swapBtn\";\n  const card=document.getElementById(\"colorCard\");\n  btn.textContent = card.classList.contains(\"expanded\") ? \"Done\" : \"Change colors\";\n  btn.onclick=()=\u0026gt;{ card.classList.toggle(\"expanded\"); buildCompact(); };\n  c.appendChild(btn);\n}\nfunction buildSwatches(){\n  buildCompact();\n  const s1=document.getElementById(\"sw1\"), s2=document.getElementById(\"sw2\");\n  s1.innerHTML=\"\"; s2.innerHTML=\"\";\n  for(const c of ORDER){\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color1===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color1=c; if(S.color2===c) S.color2=null; buildSwatches(); };\n    s1.appendChild(d);\n  }\n  const none=document.createElement(\"div\");\n  none.className=\"sw none\"+(S.color2===null?\" sel\":\"\");\n  none.title=\"Single color\"; none.onclick=()=\u0026gt;{S.color2=null; buildSwatches();};\n  s2.appendChild(none);\n  for(const c of ORDER){\n    if(c===S.color1) continue;\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color2===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color2=c; S.c2on=true; buildSwatches(); syncUI(); };\n    s2.appendChild(d);\n  }\n}\ndocument.getElementById(\"swapBtn\").onclick=()=\u0026gt;{\n  if(!S.color2) return;\n  [S.color1,S.color2]=[S.color2,S.color1]; buildSwatches();\n};\n\nconst ctl=document.getElementById(\"ctl\");\nconst buttons={};\nfunction buildController(){\n  const defs=el(\"defs\",{},ctl);\n  const f=el(\"filter\",{id:\"btnGlow\",x:\"-40%\",y:\"-40%\",width:\"180%\",height:\"180%\"},defs);\n  el(\"feGaussianBlur\",{stdDeviation:\"2.2\",result:\"b\"},f);\n  const mg=el(\"feMerge\",{},f);\n  el(\"feMergeNode\",{in:\"b\"},mg); el(\"feMergeNode\",{in:\"SourceGraphic\"},mg);\n\n  el(\"rect\",{x:2,y:2,width:556,height:296,rx:26,fill:\"#17191d\",stroke:\"#000\",\"stroke-width\":2},ctl);\n  el(\"rect\",{x:12,y:12,width:536,height:276,rx:20,fill:\"none\",stroke:\"#262a31\",\"stroke-width\":1.5},ctl);\n\n  const btn=(key,label,x,y,shape,w,h,fs)=\u0026gt;{\n    const g=el(\"g\",{class:\"kb\",tabindex:\"0\",role:\"button\",\"aria-label\":label.replace(\"\\n\",\" \")},ctl);\n    if(shape===\"circle\") el(\"circle\",{class:\"face\",cx:x,cy:y,r:w},g);\n    else if(shape===\"rect\") el(\"rect\",{class:\"face\",x:x-w\/2,y:y-h\/2,width:w,height:h,rx:8},g);\n    else el(\"path\",{class:\"face\",d:shape},g);\n    const lines=label.split(\"\\n\");\n    lines.forEach((ln,i)=\u0026gt;{\n      const tv = el(\"text\",{x:x, y:y+(i-(lines.length-1)\/2)*11+4, \"font-size\":fs||10.5},g);\n      tv.textContent=ln;\n    });\n    g.addEventListener(\"click\",()=\u0026gt;press(key));\n    g.addEventListener(\"keydown\",e=\u0026gt;{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();press(key);}});\n    buttons[key]={g};\n    return g;\n  };\n\n  const lx=88, ly=88;\n  btn(\"z_front\",\"Front\", lx,   ly-38,\"circle\",19);\n  btn(\"z_left\",\"Left\",   lx-52,ly,   \"circle\",19);\n  btn(\"z_all\",\"ALL\",     lx,   ly,   \"circle\",19);\n  btn(\"z_right\",\"Right\", lx+52,ly,   \"circle\",19);\n  btn(\"z_back\",\"Back\",   lx,   ly+38,\"circle\",19);\n\n  el(\"rect\",{x:170,y:34,width:220,height:64,rx:12,fill:\"#0a0c0e\",stroke:\"#26292f\"},ctl);\n  el(\"text\",{x:280,y:71,\"text-anchor\":\"middle\",fill:\"#b9c1cc\",\"font-size\":\"15\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"4\"},ctl).textContent=\"BLACK OAK\";\n  S._dots={front:[],back:[]};\n  for(let i=0;i\u0026lt;8;i++){\n    S._dots.front.push(el(\"circle\",{cx:198+i*24,cy:46,r:3.4,fill:\"#1c2026\"},ctl));\n    S._dots.back.push( el(\"circle\",{cx:198+i*24,cy:86,r:3.4,fill:\"#1c2026\"},ctl));\n  }\n  S._dotL = el(\"circle\",{cx:182,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n  S._dotR = el(\"circle\",{cx:382,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n\n  btn(\"ta_left\",\"Left\", 210,126,\"M186 126 L214 108 L226 108 L226 144 L214 144 Z\",0,0,9.5);\n  btn(\"ta_both\",\"Traffic\\nAdvisor\",272,126,\"M232 108 L308 108 L318 126 L308 144 L232 144 L242 126 Z\",0,0,9.5);\n  btn(\"ta_right\",\"Right\",330,126,\"M314 108 L326 108 L354 126 L326 144 L314 144 Z\",0,0,9.5);\n\n  const rx=470, ry=88;\n  btn(\"h_front\",\"Front\", rx,   ry-38,\"circle\",19);\n  btn(\"h_left\",\"Left\",   rx-52,ry,   \"circle\",19);\n  btn(\"h_white\",\"White\", rx,   ry,   \"circle\",19);\n  btn(\"h_right\",\"Right\", rx+52,ry,   \"circle\",19);\n  btn(\"h_back\",\"Back\",   rx,   ry+38,\"circle\",19);\n  el(\"text\",{x:rx,y:ry+68,\"text-anchor\":\"middle\",fill:\"#7f8b9c\",\"font-size\":\"9.5\",\n    \"font-weight\":\"700\",\"letter-spacing\":\"1.5\"},ctl).textContent=\"360° HALO\";\n  el(\"text\",{x:rx,y:ry+79,\"text-anchor\":\"middle\",fill:\"#59636f\",\"font-size\":\"8\",\n    \"letter-spacing\":\"1\"},ctl).textContent=\"SCENE LIGHT\";\n\n  btn(\"c1\",\"Color 1\\nON\/OFF\",   62,190,\"rect\",66,40,9.5);\n  btn(\"c2\",\"Color 2\\nON\/OFF\",  136,190,\"rect\",66,40,9.5);\n  btn(\"dim\",\"50%\",              62,244,\"rect\",66,34);\n  btn(\"auto\",\"Auto\\nSensor\",   136,244,\"rect\",66,40,9.5);\n\n  btn(\"last\",\"Last\\nPattern\",  228,218,\"rect\",62,44,9.5);\n  btn(\"next\",\"Next\\nPattern\",  298,218,\"rect\",62,44,9.5);\n  S._ring = el(\"rect\",{x:262,y:190,width:72,height:56,rx:12,class:\"pulseRing\"},ctl);\n\n  btn(\"ind\",\"Indicator\",       412,190,\"rect\",74,36,9.5);\n  btn(\"cruise\",\"Cruise\\nLight\",496,190,\"rect\",70,40,9.5);\n  btn(\"rand\",\"Random\",         412,244,\"rect\",74,36,9.5);\n  btn(\"fav\",\"Favorite\\nPattern\",496,244,\"rect\",70,40,9.5);\n}\nbuildController();\n\nfunction drawDisplay(){}\n\nlet favHold=null;\nfunction press(key){\n  markInteract();\n  switch(key){\n    case \"z_all\":{\n      const allOn=S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right;\n      const v=!allOn; S.zones={front:v,back:v,left:v,right:v}; break;}\n    case \"z_front\": S.zones.front=!S.zones.front; break;\n    case \"z_back\":  S.zones.back=!S.zones.back; break;\n    case \"z_left\":  S.zones.left=!S.zones.left; break;\n    case \"z_right\": S.zones.right=!S.zones.right; break;\n    case \"h_white\":{\n      const allOn=S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right;\n      const v=!allOn; S.halo={front:v,back:v,left:v,right:v}; break;}\n    case \"h_front\": S.halo.front=!S.halo.front; break;\n    case \"h_back\":  S.halo.back=!S.halo.back; break;\n    case \"h_left\":  S.halo.left=!S.halo.left; break;\n    case \"h_right\": S.halo.right=!S.halo.right; break;\n    case \"c1\": S.c1on=!S.c1on; break;\n    case \"c2\": if(S.color2) S.c2on=!S.c2on; break;\n    case \"next\": S.pattern=S.pattern%12+1; S.cruise=false; S.random=false; break;\n    case \"last\": S.pattern=(S.pattern+10)%12+1; S.cruise=false; S.random=false; break;\n    case \"cruise\": S.cruise=!S.cruise; if(S.cruise){S.random=false;} break;\n    case \"rand\": S.random=!S.random; if(S.random){S.cruise=false; S.randTimer=0;} break;\n    case \"dim\": S.dim50=!S.dim50; break;\n    case \"auto\": S.autoSensor=!S.autoSensor; break;\n    case \"ind\": S.indicatorOff=!S.indicatorOff; break;\n    case \"ta_left\":  S.ta = S.ta===\"left\"? null:\"left\"; break;\n    case \"ta_right\": S.ta = S.ta===\"right\"? null:\"right\"; break;\n    case \"ta_both\":  S.ta = S.ta===\"both\"? null:\"both\"; break;\n    case \"fav\": S.pattern=S.favorite; S.cruise=false; S.random=false; break;\n  }\n  updateLabel(); syncUI();\n}\n(function(){\n  const g=buttons[\"fav\"].g;\n  let t0=0;\n  g.addEventListener(\"pointerdown\",()=\u0026gt;{ t0=Date.now();\n    favHold=setTimeout(()=\u0026gt;{ S.favorite=S.pattern; flash(g); },1200); });\n  const clear=()=\u0026gt;{ if(favHold){clearTimeout(favHold); favHold=null;} };\n  g.addEventListener(\"pointerup\",clear); g.addEventListener(\"pointerleave\",clear);\n  function flash(el){ el.classList.add(\"lit\"); setTimeout(()=\u0026gt;syncUI(),400); }\n})();\n\nfunction syncUI(){\n  const setLit=(k,v)=\u0026gt;buttons[k].g.classList.toggle(\"lit\",!!v);\n  setLit(\"z_front\",S.zones.front); setLit(\"z_back\",S.zones.back);\n  setLit(\"z_left\",S.zones.left);   setLit(\"z_right\",S.zones.right);\n  setLit(\"z_all\",S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right);\n  setLit(\"h_front\",S.halo.front); setLit(\"h_back\",S.halo.back);\n  setLit(\"h_left\",S.halo.left);   setLit(\"h_right\",S.halo.right);\n  setLit(\"h_white\",S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right);\n  setLit(\"c1\",S.c1on); setLit(\"c2\",S.c2on\u0026amp;\u0026amp;!!S.color2);\n  setLit(\"cruise\",S.cruise); setLit(\"rand\",S.random);\n  setLit(\"dim\",S.dim50); setLit(\"auto\",S.autoSensor); setLit(\"ind\",S.indicatorOff);\n  setLit(\"ta_left\",S.ta===\"left\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_right\",S.ta===\"right\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_both\",S.ta===\"both\"\u0026amp;\u0026amp;!tourActive);\n  const haloOn = S.halo.front||S.halo.back||S.halo.left||S.halo.right;\n  document.getElementById(\"haloBadge\").style.display = haloOn? \"flex\":\"none\";\n  drawDisplay();\n}\n\n\/* default everywhere: dual-color amber\/white, steady burn; the attract sweep provides motion *\/\nS.c2on=true; S.cruise=true;\nS.interacted=false;\nlet tourActive=false, tourTimer=null, idleTimer=null;\nbuildSwatches(); syncUI(); updateLabel();\nrequestAnimationFrame(render);\n\n\/* ATTRACT MODE *\/\nfunction markInteract(){\n  if(S.interacted) return;\n  S.interacted=true;\n  if(tourActive){ tourActive=false; S.ta=null; }\n  clearTimeout(tourTimer); clearTimeout(idleTimer);\n  const h=document.getElementById(\"tryHint\");\n  if(h){ h.style.transition=\"opacity .5s\"; h.style.opacity=\"0\"; setTimeout(()=\u0026gt;h.remove(),600); }\n  if(S._ring) S._ring.remove();\n}\nfunction attractSweep(passes){\n  if(S.interacted || tourActive) return;\n  tourActive=true; S.ta=\"both\";\n  tourTimer=setTimeout(()=\u0026gt;{\n    if(tourActive){ tourActive=false; S.ta=null; }\n    scheduleIdle();\n  }, 1600*passes+400);\n}\nfunction scheduleIdle(){\n  if(S.interacted) return;\n  clearTimeout(idleTimer);\n  idleTimer=setTimeout(()=\u0026gt;attractSweep(1), 18000);\n}\ndocument.addEventListener(\"pointerdown\",e=\u0026gt;{\n  if(e.target.closest \u0026amp;\u0026amp; e.target.closest(\".sw,.swapBtn,.kb\")) markInteract();\n},true);\n(function(){\n  let fired=false;\n  const start=()=\u0026gt;{ if(!fired){ fired=true; setTimeout(()=\u0026gt;attractSweep(2), 600); } };\n  if(window.IntersectionObserver){\n    new IntersectionObserver((es,obs)=\u0026gt;{\n      if(es.some(e=\u0026gt;e.isIntersecting)){ start(); obs.disconnect(); }\n    },{threshold:.5}).observe(document.querySelector(\".stage\"));\n  } else start();\n})();\n\n(function(){\n  const embedded = (window!==parent);\n  if(embedded){\n    document.querySelector(\"header\").style.display=\"none\";\n    document.querySelector(\"footer\").style.display=\"none\";\n    if(window.innerWidth\u0026gt;840) document.querySelector(\".wrap\").style.padding=\"10px 12px 14px\";\n  }\n  const report=()=\u0026gt;{ try{\n    parent.postMessage({type:\"lowpro-player-height\",\n      height: document.querySelector(\".wrap\").scrollHeight+8}, \"*\");\n  }catch(e){} };\n  if(window.ResizeObserver) new ResizeObserver(report).observe(document.querySelector(\".wrap\"));\n  window.addEventListener(\"load\",report); window.addEventListener(\"pageshow\",report);\n  setTimeout(report,400); setTimeout(report,1500);\n  let n=0; const iv=setInterval(()=\u0026gt;{ report(); if(++n\u0026gt;10) clearInterval(iv); },1200);\n})();\n\u0026lt;\/script\u0026gt;\n\u0026lt;\/body\u0026gt;\n\u0026lt;\/html\u0026gt;\n'\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.lowpro-frame{height:700px}\n@media(max-width:840px){\n  .lowpro-cta{display:none}\n  .lowpro-frame{height:760px}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\nwindow.addEventListener(\"message\",function(e){\n  if(e.data \u0026\u0026 e.data.type===\"lowpro-player-height\"){\n    var f=document.getElementById(\"lowpro-player-frame\");\n    if(f \u0026\u0026 e.data.height\u003e200) f.style.height=(e.data.height+4)+\"px\";\n  }\n});\n\u003c\/script\u003e\n\u003cdiv style=\"height:28px;\"\u003e \u003c\/div\u003e\n\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cstrong\u003eBuilt for emergency response teams and public safety professionals, this high-intensity LED warning light bar delivers uncompromising performance in a sleek, durable design.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp data-start=\"530\" data-end=\"806\"\u003eThe Black Oak Low Pro Emergency Series Light Bar is engineered for maximum visibility, reliability, and user control. With ultra-bright LEDs, multiple flash patterns, and a rugged housing, this bar ensures your presence is known in any emergency situation—day or night, rain or shine.\u003c\/p\u003e\n\u003cp data-start=\"530\" data-end=\"806\"\u003e \u003c\/p\u003e\n\u003cp data-start=\"808\" data-end=\"1177\"\u003eBuilt to withstand the demands of high-speed response, off-road utility, or work site visibility, this low-profile bar features a streamlined, aerodynamic frame and a universal mounting system to ensure easy installation on any vehicle. Whether you're outfitting a patrol car, fire unit, or utility truck, this bar delivers dependable performance where it matters most.\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- TRUST STRIP --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2026-07-21_at_9.31.14_AM.png?v=1784641940\" alt=\"SAE J845 Certified, SAE J595 Class 1, IP69K Waterproof, Lifetime Warranty, -40F to +145F Rated, 50,000 Hour LEDs\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003c!-- SIZE SELECTOR --\u003e\n\u003cdiv style=\"margin:4px 0 2px;\"\u003e\n\u003cp style=\"margin:0 0 8px;font-weight:600;font-size:15px;\"\u003eAvailable sizes:\u003c\/p\u003e\n\u003ca href=\"\/products\/11-mini-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e11\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-17-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e17\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-30-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e30\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-43-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e43\"\u003c\/a\u003e\n\u003cspan style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:8px 14px;border-radius:8px;margin:0 6px 8px 0;font-size:15px;\"\u003e49\"\u003c\/span\u003e\n\u003ca href=\"\/products\/new-55-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e55\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-61-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e61\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-68-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e68\"\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003eLifetime warranty\u003c\/li\u003e\n\u003cli\u003eSAE J845 Class 1 Certified\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e360° visibility with dual-color ultra-bright LEDs\u003c\/li\u003e\n\u003cli\u003eSlim Low Profile design\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 flash patterns with memory recall\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eRugged, waterproof housing (IP69K rated)\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eIntegrated controller with pattern cycling, cruise mode, and cut-off\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eLow Pro Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eController\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eWiring\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStandard Feet\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eJamb Brackets\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- COMPLIANCE SECTION --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCompliance \u0026amp; Certifications\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cstrong\u003eMeets the standards your department requires.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"3\"\u003eCertification \u0026amp; Compliance\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J845\u003c\/th\u003e\n\u003ctd\u003e360° warning lamp photometric standard for light bars and beacons\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J595 Class 1\u003c\/th\u003e\n\u003ctd\u003eHighest intensity class — approved for primary emergency vehicles (police, fire, EMS)\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIP69K\u003c\/th\u003e\n\u003ctd\u003eSealed against high-pressure washdown, salt, dust, and submersion\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eRated\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Range\u003c\/th\u003e\n\u003ctd\u003eExtreme-climate duty\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e-40°F to +145°F\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDuty Life\u003c\/th\u003e\n\u003ctd\u003eContinuous-duty LED modules\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e50,000 hours\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"font-size:13px;color:#666;\"\u003e\u003cem\u003eWarning-equipment regulations vary by state and jurisdiction. Verify color and mounting requirements with your local authority. Spec sheet PDF and certification documentation available on request for procurement offices.\u003c\/em\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- Image + Text Alternating Section --\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003c!-- Image Right - Text Left Section --\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/255283_7703341170749_330031d5_da20_475f_887e_f1269d2ad248_1.jpg?v=1763495670\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eEmergency Bar + Work Light\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eGet full 360° white-light illumination at the touch of a button. Perfect for reverse lighting, scene lighting, or any situation where you need powerful all-around visibility. It’s a true dual-purpose feature you won’t find on most emergency bars — and it comes standard on every one of ours.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_SAE_graphics.jpg?v=1758041472\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eBuilt Tough for Any Environment\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eIP69K-rated waterproof housing and reinforced aluminum construction stand up to rain, snow, mud, and dust—ideal for police, fire, tow, or off-road response vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/DSC00223.jpg?v=1754512314\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e Full 360° Warning Visibility\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003ePacked with high-output dual-color LEDs and side modules, this bar delivers all-angle visibility—ensuring you're seen from every direction, even in chaotic scenes or inclement weather.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE_-_Driver_Side_Angle.jpg?v=1761226316\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSlim, Low-Profile Design\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEngineered to minimize wind resistance and visual bulk, this light bar features a sleek, aerodynamic frame that hugs your vehicle’s roofline. The low-profile housing not only enhances fuel efficiency but also delivers a clean, professional look without compromising brightness or performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cp\u003e\u003cvideo controls=\"controls\" playsinline=\"\" loop=\"loop\" autoplay=\"autoplay\" muted=\"\" height=\"auto\" width=\"100%\"\u003e\n    \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4ec9ce848f5e4d2d8083da9daf4dbe78.mp4\"\u003e\n    Your browser does not support the video tag.\n  \u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 Flash Patterns with Smart Memory\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from up to 45 user-selectable flash patterns to fit any scenario. Built-in memory recall stores your last used setting for consistent deployment every time.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_-_Sliding_Feet.gif?v=1758730578\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSliding Feet\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eOur sliding feet mounts are designed to give you maximum flexibility during installation. By allowing the brackets to slide along the base of the light bar, you can easily adjust spacing to match a wide variety of mounting points. This ensures a precise fit whether you’re working with factory holes, custom setups, or uneven surfaces.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HERO BANNER --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/d8j0ntlcm91z4.cloudfront.net\/user_3G9nKxyaQsdrPdDsxWr4EcSl5FL\/hf_20260715_201038_0803a0cd-07a6-4508-9c7a-50d0230a94e3.png\" alt=\"Built to Code. Backed for Life. SAE J845 and J595 Class 1 compliant, IP69K sealed, lifetime warranty\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- FLEET BLOCK --\u003e\n\u003cdiv style=\"padding:8px 0;margin:0 0 8px;\"\u003e\n\u003ch3 style=\"margin:0 0 8px;\"\u003eOutfitting a Fleet?\u003c\/h3\u003e\n\u003cp style=\"margin:0 0 14px;font-size:16px;line-height:1.6;\"\u003eVolume pricing on 5+ units, department POs accepted, W-9 on file, and spec sheets ready for your procurement office. From single patrol vehicles to full county fleets.\u003c\/p\u003e\n\u003ca href=\"\/pages\/fleet-pricing\" style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:12px 22px;border-radius:8px;text-decoration:none;\"\u003eRequest Fleet Pricing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Dimension --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_All_Dimensions.jpg?v=1762971573\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c!-- Specs --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003c!-- Specs Chart --\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th, table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n  }\n  table.spec-table th {\n    background-color: #f7f7f7;\n    font-weight: 600;\n    width: 30%;\n  }\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n  table.spec-table thead th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e408\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e30\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Quantity\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eWide Angle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertificate\u003c\/th\u003e\n\u003ctd\u003eSAE J845 \u0026amp; SAE J595 Class 1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Single Color\u003c\/th\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Dual Color\u003c\/th\u003e\n\u003ctd\u003e45 (15 Color 1 \/ 15 Color 2 \/ 15 Combo)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Length From Light\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHole Size for Controller\u003c\/th\u003e\n\u003ctd\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting Bolt Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e14.6 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU\u003c\/th\u003e\n\u003ctd\u003eLP-E49-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- FAQ --\u003e\n\u003ch5\u003eDimensions\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_49_Inch_Dimensions.jpg?v=1762972292\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eVideo\u003c\/h5\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cvideo style=\"max-width: 100%; height: auto;\" controls=\"controls\" playsinline=\"\" loop=\"loop\" muted=\"\" autoplay=\"autoplay\"\u003e\n  \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f7ecf4030812467bbb46b165c21da48e.mov\"\u003e\n  Your browser does not support the video tag.\n\u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp\u003e\u003cstrong\u003eWhat voltage and control systems does this light bar support?\u003c\/strong\u003e\u003cbr\u003eThis light bar operates on a 12 V–24 V DC power system and can be used with either push-button or wireless controllers. It’s compatible with standard vehicle electrical systems, making installation straightforward for both fleet and individual applications.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow durable is this light bar in harsh environments?\u003c\/strong\u003e\u003cbr\u003eThe Low Pro Emergency Light Bar is built with a rugged aluminum housing, sealed to an IP69K rating and tested to resist corrosion, vibration, and high-pressure water ingress. It’s designed for demanding conditions—whether roadside, rescue, or commercial use—so you can rely on consistent performance when it counts.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat beam patterns and flash modes are included?\u003c\/strong\u003e\u003cbr\u003eUp to 45 flash patterns are built into the unit—including warning, hazard, and full-output flasher modes—with memory recall so your last setting is retained even after power loss. You’ll also find low-profile steady-burn mode useful for scene lighting and standby operations.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs the light bar legal for use on public roads and emergency vehicles?\u003c\/strong\u003e\u003cbr\u003eYes. The unit meets SAE J595 Class 1 and other relevant emergency lighting standards for warning applications. However, regulations vary by jurisdiction, so we recommend checking your local laws before installation to ensure compliance with mounting height, color, and flash pattern requirements.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat’s covered by the warranty?\u003c\/strong\u003e\u003cbr\u003eOur industry-leading lifetime warranty covers manufacturing defects, driver failures, and LED module performance. It does not cover damage caused by improper installation, extreme overuse beyond defined duty cycles, or wiring issues. For full warranty terms, please refer to our Warranty \u0026amp; Returns page.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Amber \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957336637,"sku":"LP-E49-A","price":950.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789229461565,"sku":"LP-E49-A","price":976.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789229494333,"sku":"LP-E49-A","price":980.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957402173,"sku":"LP-E49-A","price":975.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789229592637,"sku":"LP-E49-A","price":1001.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789229625405,"sku":"LP-E49-A","price":1005.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42590527094845,"sku":"LP-E49-AB","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789229658173,"sku":"LP-E49-AB","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789229690941,"sku":"LP-E49-AB","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42590527160381,"sku":"LP-E49-AB","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789229789245,"sku":"LP-E49-AB","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789229822013,"sku":"LP-E49-AB","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ Standard - 12' Lead","offer_id":42996858454077,"sku":"LP-E49-AG","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42996858486845,"sku":"LP-E49-AG","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42996858519613,"sku":"LP-E49-AG","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ Standard - 12' Lead","offer_id":42996858650685,"sku":"LP-E49-AG","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42996858683453,"sku":"LP-E49-AG","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42996858716221,"sku":"LP-E49-AG","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ Standard - 12' Lead","offer_id":43482688323645,"sku":"LP-E49-AR","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":43482688356413,"sku":"LP-E49-AR","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":43482688389181,"sku":"LP-E49-AR","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ Standard - 12' Lead","offer_id":43482688421949,"sku":"LP-E49-AR","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":43482688454717,"sku":"LP-E49-AR","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":43482688487485,"sku":"LP-E49-AR","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957434941,"sku":"LP-E49-AW","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789229854781,"sku":"LP-E49-AW","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789229887549,"sku":"LP-E49-AW","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957500477,"sku":"LP-E49-AW","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789229985853,"sku":"LP-E49-AW","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789230018621,"sku":"LP-E49-AW","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957533245,"sku":"LP-E49-B","price":950.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789230051389,"sku":"LP-E49-B","price":976.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789230084157,"sku":"LP-E49-B","price":980.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957598781,"sku":"LP-E49-B","price":975.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789230182461,"sku":"LP-E49-B","price":1001.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789230215229,"sku":"LP-E49-B","price":1005.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42590527193149,"sku":"LP-E49-BW","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789230247997,"sku":"LP-E49-BW","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789230280765,"sku":"LP-E49-BW","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42590527258685,"sku":"LP-E49-BW","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789230379069,"sku":"LP-E49-BW","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789230411837,"sku":"LP-E49-BW","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957729853,"sku":"LP-E49-R","price":950.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789230444605,"sku":"LP-E49-R","price":976.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789230477373,"sku":"LP-E49-R","price":980.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957795389,"sku":"LP-E49-R","price":975.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789230575677,"sku":"LP-E49-R","price":1001.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789230608445,"sku":"LP-E49-R","price":1005.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957631549,"sku":"LP-E49-RB","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789230641213,"sku":"LP-E49-RB","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789230673981,"sku":"LP-E49-RB","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957697085,"sku":"LP-E49-RB","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789230772285,"sku":"LP-E49-RB","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789230805053,"sku":"LP-E49-RB","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957828157,"sku":"LP-E49-RW","price":1005.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789230837821,"sku":"LP-E49-RW","price":1031.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789230870589,"sku":"LP-E49-RW","price":1035.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957893693,"sku":"LP-E49-RW","price":1030.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789230968893,"sku":"LP-E49-RW","price":1056.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789231001661,"sku":"LP-E49-RW","price":1060.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42514957926461,"sku":"LP-E49-W","price":950.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789231034429,"sku":"LP-E49-W","price":976.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789231067197,"sku":"LP-E49-W","price":980.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42514957991997,"sku":"LP-E49-W","price":975.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789231165501,"sku":"LP-E49-W","price":1001.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789231198269,"sku":"LP-E49-W","price":1005.57,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE49_Angled.png?v=1759163313"},{"product_id":"xdr5-emergency-strobe-light","title":"XDR-5 Emergency Strobe Light, LED Warning Light","description":"\u003cstyle\u003e\n#MainContent .xd-h1 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 34px !important; font-weight: 800 !important; line-height: 1.12 !important; letter-spacing: -0.5px !important; color: #1C2026 !important; text-transform: none !important; margin: 0 0 10px !important; }\n#MainContent .xd-h2 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 26px !important; font-weight: 800 !important; line-height: 1.2 !important; color: #1C2026 !important; text-transform: none !important; letter-spacing: -0.2px !important; margin: 0 0 8px !important; }\n#MainContent .xd-h2-light { color: #ffffff !important; }\n#MainContent .xd-h3 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 16px !important; font-weight: 800 !important; color: #1C2026 !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 6px !important; }\n#MainContent .xd-eyebrow { display: block !important; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #C27C00; margin: 0 0 4px; }\n#MainContent .xd-eyebrow-dark { color: #FFB300; }\n#MainContent .xd-sub { font-size: 15.5px; line-height: 1.55; color: #5F6670; margin: 0 0 14px; }\n#MainContent .xd-flex { display: flex !important; flex-wrap: wrap; }\n#MainContent .xd-col, #MainContent .xd-card, #MainContent .xd-tile, #MainContent .xd-band { display: block !important; box-sizing: border-box; }\n#MainContent .xd-sw { display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 10px; box-sizing: border-box; }\n#MainContent .xd-card, #MainContent .xd-tile, #MainContent .xd-sw { transition: all .2s ease; }\n#MainContent .xd-card:hover, #MainContent .xd-tile:hover, #MainContent .xd-sw:hover { border-color: #FFB300 !important; box-shadow: 0 6px 18px rgba(28,32,38,.10); }\n#MainContent .xd-chip { display: inline-block !important; background: #FFF6E0; color: #1C2026; border: 1px solid #FFE1A0; border-radius: 12px; padding: 5px 11px; font-size: 12.5px; font-weight: 700; margin: 0 5px 6px 0; }\n#MainContent .xd-btn { display: inline-block !important; background: transparent; color: #fff !important; border: 2px solid #FFB300; border-radius: 10px; padding: 10px 18px; font-size: 14px; font-weight: 700; text-decoration: none !important; transition: all .18s ease; margin: 0 6px 6px 0; }\n#MainContent .xd-btn:hover { background: #FFB300; color: #111 !important; transform: translateY(-2px); }\n#MainContent .xd-dot { display: inline-block !important; width: 28px; height: 28px; border-radius: 50%; flex: 0 0 28px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.10); }\n#MainContent .xd-hero-img { text-align: center; }\n#MainContent .xd-hero-img img { max-width: 100% !important; max-height: 260px; width: auto; height: auto !important; border-radius: 14px; display: inline-block !important; }\n#MainContent .xd-tiw { display: flex !important; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0 0 8px; background: #fff; border: 2px solid #E5E7EB; border-radius: 16px; padding: 10px; box-sizing: border-box; transition: all .2s ease; }\n#MainContent .xd-tiw:hover { border-color: #FFB300; box-shadow: 0 6px 18px rgba(28,32,38,.10); }\n#MainContent .xd-tiw.xd-rev { flex-direction: row-reverse; }\n#MainContent .xd-tiw-img { flex: 0 1 340px; max-width: 340px; display: block !important; border-radius: 12px; overflow: hidden; }\n#MainContent .description .xd-tiw-img img, #MainContent .xd-tiw .xd-tiw-img img { width: 100% !important; height: 170px !important; max-height: 170px !important; object-fit: cover; border-radius: 12px; display: block !important; }\n@media (max-width: 749px) { #MainContent .xd-tiw-img { flex: 1 1 100%; max-width: 100%; } }\n#MainContent .xd-tiw-txt { flex: 1 1 280px; min-width: 260px; display: block !important; }\n#MainContent .xd-tiw-txt a, #MainContent details .content a { color: #C27C00; font-weight: 700; }\n#MainContent .xd-fig img { max-width: 100% !important; max-height: 280px; width: auto; height: auto !important; border-radius: 12px; display: inline-block !important; }\n#MainContent details { border: 2px solid #E5E7EB; border-radius: 12px; margin-bottom: 8px; overflow: hidden; background: #fff; display: block; }\n#MainContent details summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; padding: 12px 18px; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-weight: 700; font-size: 16px; color: #1C2026; list-style: none; background: #fff; border-bottom: 0; }\n#MainContent details summary:hover, #MainContent details[open] summary { background: #FFF6E0; }\n#MainContent details[open] summary { border-bottom: 1px solid #FFE1A0; }\n#MainContent details summary::-webkit-details-marker { display: none; }\n#MainContent details summary::after { content: '+'; font-size: 22px; font-weight: 400; color: #C27C00; }\n#MainContent details[open] summary::after { content: '\\2212'; }\n#MainContent details .content { padding: 6px 18px 12px; font-size: 15px; line-height: 1.55; display: block; }\n#MainContent table.xd-spec { width: 100%; border-collapse: collapse; margin: 0; font-size: 14.5px; }\n#MainContent table.xd-spec th, #MainContent table.xd-spec td { border: 1px solid #E5E7EB; padding: 8px 10px; text-align: left; }\n#MainContent table.xd-spec th { background: #F6F6F4; font-weight: 600; color: #1C2026; width: 42%; }\n#MainContent table.xd-spec tr:hover td, #MainContent table.xd-spec tr:hover th { background: #FFF6E0; }\n#MainContent .description img { max-width: 100% !important; height: auto !important; }\n@media (max-width: 749px) {\n  #MainContent .xd-h1 { font-size: 27px !important; }\n  #MainContent .xd-h2 { font-size: 22px !important; }\n  #MainContent .xd-pad { padding: 20px 16px !important; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"xd-pad xd-flex\" style=\"display: flex; flex-wrap: wrap; align-items: center; gap: 22px; background: linear-gradient(165deg,#FFF6E0 0%,#ffffff 72%); border: 2px solid #E5E7EB; border-radius: 18px; padding: 26px; margin: 0 0 12px;\"\u003e\n\u003cdiv class=\"xd-col\" style=\"flex: 1 1 340px; min-width: 260px;\"\u003e\n\u003cp style=\"display: inline-block; background: #1C2026; color: #FFB300; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; padding: 5px 11px; border-radius: 6px; margin: 0 0 10px;\"\u003eSAE J595 · IP69K · 13 Flash Patterns\u003c\/p\u003e\n\u003ch2 class=\"xd-h1\"\u003eXDR-5 Emergency Strobe Light\u003c\/h2\u003e\n\u003cp class=\"xd-sub\"\u003eA slim 5\" LED warning light for tow trucks, utility, construction, and emergency response vehicles. Six high-intensity LEDs throw a 120° wide warning pattern, the low-profile housing mounts almost anywhere, and it's sealed to IP69K for pressure washing and all-weather use.\u003c\/p\u003e\n\u003cp style=\"margin: 0; line-height: 2;\"\u003e\u003cspan class=\"xd-chip\"\u003eSAE J595\u003c\/span\u003e\u003cspan class=\"xd-chip\"\u003eIP69K Waterproof\u003c\/span\u003e\u003cspan class=\"xd-chip\"\u003e10–30V DC\u003c\/span\u003e\u003cspan class=\"xd-chip\"\u003eSync Capable\u003c\/span\u003e\u003cspan class=\"xd-chip\"\u003eLimited Lifetime Warranty\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-col xd-hero-img\" style=\"flex: 1 1 260px;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-5_-_Amber_Blue.png?v=1785501647\" alt=\"XDR-5 LED emergency strobe light in amber and blue\" width=\"500\" height=\"500\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-flex\" style=\"display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px;\"\u003e\n\u003cdiv class=\"xd-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e13\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eFlash Patterns\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e120°\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eWide Angle\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003eIP69K\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eWaterproof\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e1.5A\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eAmp Draw\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"xd-eyebrow\"\u003ePick Your Colors\u003c\/span\u003e\n\u003ch2 class=\"xd-h2\"\u003e9 single and dual-color options\u003c\/h2\u003e\n\u003cp class=\"xd-sub\"\u003eRun one color or split two in the same head. Dual-color models alternate between both colors for maximum attention.\u003c\/p\u003e\n\u003cdiv class=\"xd-flex\" style=\"display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px;\"\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: #FFB300;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: #1C6FE0;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eBlue\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: #E23B3B;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#FFB300 0 50%,#1C6FE0 50% 100%);\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber \u0026amp; Blue\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#FFB300 0 50%,#2FBF5B 50% 100%);\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber \u0026amp; Green\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#FFB300 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#1C6FE0 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eBlue \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#E23B3B 0 50%,#1C6FE0 50% 100%);\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed \u0026amp; Blue\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"xd-dot\" style=\"background: linear-gradient(135deg,#E23B3B 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"xd-eyebrow\"\u003eBuilt For The Job\u003c\/span\u003e\n\u003ch2 class=\"xd-h2\"\u003eSmall strobe, serious warning power\u003c\/h2\u003e\n\u003cdiv class=\"xd-flex\" style=\"display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 22px;\"\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"xd-h3\"\u003eSAE J595 Approved\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eMeets the SAE standard for directional flashing warning lamps on emergency and service vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"xd-h3\"\u003e13 Patterns + Sync\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eSteady-on plus 13 strobe patterns. Sync multiple units to flash together or alternate side to side.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"xd-h3\"\u003e12V or 24V\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eRuns on 10–30V DC, so it works on pickups, service bodies, and heavy trucks with no changes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw\"\u003e\n\u003cdiv class=\"xd-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Amber_-_White_stacked_on_top_of_each_other.jpg?v=1755002429\" alt=\"XDR-5 amber and white emergency strobe lights\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw-txt\"\u003e\n\u003ch3 class=\"xd-h3\" style=\"font-size: 20px !important;\"\u003eUltra Slim, Stealthy Design\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eThe 5-1\/8\" low-profile housing fits tight spots in grilles, bumpers, deck lids, and headache racks, and gives you a clean, modern look. It surface mounts with two M4 bolts and a vibration foam pad. Need to mount it sideways? Add our \u003ca href=\"\/products\/xdr-4-5-90-degree-bracket\"\u003e90° mounting bracket\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw xd-rev\"\u003e\n\u003cdiv class=\"xd-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Red_-_Blue_stacked_on_top_of_each_other.jpg?v=1755002448\" alt=\"XDR-5 red and blue emergency strobe lights\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw-txt\"\u003e\n\u003ch3 class=\"xd-h3\" style=\"font-size: 20px !important;\"\u003ePowerful Warning Output\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eSix high-intensity LEDs push an ultra-wide 120° pattern that stays visible day and night. Choose from 13 flash patterns or steady-on, and sync multiple heads for a coordinated, professional warning setup on any vehicle.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw\"\u003e\n\u003cdiv class=\"xd-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Amber-RedBlue-White_stackedontopofeachother.jpg?v=1755002411\" alt=\"XDR-5 strobe lights in amber, red, blue and white\" style=\"object-fit: contain; background: #fff;\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"xd-tiw-txt\"\u003e\n\u003ch3 class=\"xd-h3\" style=\"font-size: 20px !important;\"\u003eRugged \u0026amp; Waterproof\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eSealed to IP69K and rated from -40° to 145° F, the XDR-5 shrugs off rain, road salt, dust, and the pressure washer. It's built to run shift after shift in the conditions work trucks actually see, and it's backed by our limited lifetime warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cdetails\u003e\n\u003csummary\u003ePower \u0026amp; Performance\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"xd-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWattage\u003c\/th\u003e\n\u003ctd\u003e18W\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eAmp Draw\u003c\/th\u003e\n\u003ctd\u003e1.5A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10–30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertification\u003c\/th\u003e\n\u003ctd\u003eSAE J595\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLEDs\u003c\/th\u003e\n\u003ctd\u003e6 high-intensity\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam\u003c\/th\u003e\n\u003ctd\u003eUltra wide, 120°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eModes\u003c\/th\u003e\n\u003ctd\u003eSteady on + 13 strobe patterns, sync capable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDurability \u0026amp; Warranty\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"xd-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F (-40° to 62° C)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30-day money back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWiring \u0026amp; Installation\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"xd-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLead Length\u003c\/th\u003e\n\u003ctd\u003e12\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e24 AWG\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector\u003c\/th\u003e\n\u003ctd\u003eOpen-end pigtail\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHarness Included?\u003c\/th\u003e\n\u003ctd\u003eNo\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRecommended Fuse\u003c\/th\u003e\n\u003ctd\u003e5A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting\u003c\/th\u003e\n\u003ctd\u003eSurface mount, 2× M4 bolts + foam pad (included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eGeneral \u0026amp; SKUs\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"xd-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLength\u003c\/th\u003e\n\u003ctd\u003e5-1\/8\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e0.1 lb\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSingle Color\u003c\/th\u003e\n\u003ctd\u003eXDR-5S-A · XDR-5S-B · XDR-5S-R\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDual Color\u003c\/th\u003e\n\u003ctd\u003eXDR-5S-AB · XDR-5S-AG · XDR-5S-AW · XDR-5S-BW · XDR-5S-RB · XDR-5S-RW\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdiv class=\"xd-flex\" style=\"display: flex; flex-wrap: wrap; gap: 14px; margin: 18px 0 0; align-items: flex-start;\"\u003e\n\u003cdiv class=\"xd-col\" style=\"flex: 1 1 300px;\"\u003e\n\u003ch5 style=\"margin-top: 0;\"\u003eIn The Box\u003c\/h5\u003e\n\u003cdiv class=\"xd-flex\" style=\"display: flex; flex-wrap: wrap; gap: 8px;\"\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003e1 × XDR-5 Emergency Strobe\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWith 12\" 24 AWG pigtail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003eVibration Foam Insert\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eCushions the light against the mount\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003e2 × 1-1\/2\" M4 Bolts\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWith washers and nuts\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003eInstructions\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWiring and setup steps\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xd-col xd-fig\" style=\"flex: 1 1 300px;\"\u003e\n\u003ch5 style=\"margin-top: 0;\"\u003eDimensions\u003c\/h5\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-5_Strobe_Dimensions.png?v=1762181313\" alt=\"XDR-5 emergency strobe light dimensions\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIs the XDR-5 SAE approved?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. The XDR-5 is SAE J595 approved for directional flashing warning lamps. Rules on which colors you can run vary by state and vehicle type, so check your local regulations, especially for red and blue.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWill it work on a 24V truck?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. It runs on anything from 10V to 30V DC, so 12V and 24V systems both work with no changes.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCan I sync multiple XDR-5 lights?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. Wire multiple heads together to flash in unison or alternate.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDoes it come with a harness or switch?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eNo. Each light has a 12\" open-end pigtail that you wire to your own switch and a 5A fuse.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eHow do I mount it?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eIt surface mounts on any flat spot with the included M4 bolts and vibration foam pad. To mount it at a right angle, add the \u003ca href=\"\/products\/xdr-4-5-90-degree-bracket\"\u003eXDR-4 \u0026amp; XDR-5 90° mounting bracket\u003c\/a\u003e.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhat does the warranty cover?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eOur limited lifetime warranty covers workmanship and material failures. Send the light back and once we verify the issue, we'll repair or replace it free of charge. Every order also comes with a 30-day money-back guarantee.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e","brand":"Black Oak LED","offers":[{"title":"Amber","offer_id":42512529752125,"sku":"XDR-5S-A","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":42563696623677,"sku":"XDR-5S-B","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Red","offer_id":42563696656445,"sku":"XDR-5S-R","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue","offer_id":43408883482685,"sku":"XDR-5S-AB","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green","offer_id":43408883515453,"sku":"XDR-5S-AG","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White","offer_id":42512529784893,"sku":"XDR-5S-AW","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White","offer_id":42512529817661,"sku":"XDR-5S-BW","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue","offer_id":42512529850429,"sku":"XDR-5S-RB","price":46.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White","offer_id":42512529883197,"sku":"XDR-5S-RW","price":46.5,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Amber-RedBlue-White_stackedontopofeachother.jpg?v=1755002411"},{"product_id":"new-17-low-pro-emergency-light-bar","title":"17\" Low Pro Emergency Light Bar","description":"\u003c!-- LOWPRO MINI INTERACTIVE PLAYER --\u003e\n\u003cdiv id=\"lowpro-player-block\" style=\"margin:0 0 26px;\"\u003e\n\u003cdiv class=\"lowpro-cta\"\u003e\n\u003ch2 style=\"margin:0 0 4px;font-size:24px;line-height:1.25;\"\u003eTake the Controls: Try This Light Bar Live\u003c\/h2\u003e\n\u003cp style=\"margin:0 0 12px;font-size:15px;line-height:1.5;\"\u003eFlip the rocker, press the pattern button, and switch on the 360° Halo scene light, exactly like the socket controller that ships in the box. Only the colors this bar is offered in can be selected.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ciframe id=\"lowpro-player-frame\" class=\"lowpro-frame\" title=\"Mini Low Pro Emergency Bar interactive demo\" style=\"width:100%;border:0;display:block;border-radius:16px;background:#0a0c0f;\" srcdoc=\"\u0026lt;!DOCTYPE html\u0026gt;\n\u0026lt;html lang=\u0026quot;en\u0026quot;\u0026gt;\n\u0026lt;head\u0026gt;\n\u0026lt;meta charset=\u0026quot;UTF-8\u0026quot;\u0026gt;\n\u0026lt;meta name=\u0026quot;viewport\u0026quot; content=\u0026quot;width=device-width, initial-scale=1.0\u0026quot;\u0026gt;\n\u0026lt;title\u0026gt;Mini Low Pro Simulator\u0026lt;\/title\u0026gt;\n\u0026lt;style\u0026gt;\n  :root{\n    --bg:#0a0c0f; --panel:#111418; --panel2:#161a20; --edge:#242a33;\n    --txt:#e8ecf2; --dim:#8a94a3;\n  }\n  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent}\n  html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);\n    font-family:\u0026quot;Segoe UI\u0026quot;,system-ui,-apple-system,Roboto,Arial,sans-serif;}\n  .wrap{max-width:1100px;margin:0 auto;padding:14px 16px 20px;}\n  header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}\n  .brand{font-weight:800;letter-spacing:.18em;font-size:19px;white-space:nowrap}\n  .brand span{color:var(--dim);font-weight:600}\n  .sub{color:var(--dim);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}\n  .sizeBtns{margin-left:auto;display:flex;gap:6px}\n  .sizeBtns button{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);\n    border-radius:7px;font-size:12px;padding:4px 10px;cursor:pointer}\n  .sizeBtns button.on{border-color:#ffb43a;color:#ffcf7d}\n  .stage{background:radial-gradient(ellipse at 50% 30%, #14181e 0%, #0b0d11 70%);\n    border:1px solid var(--edge);border-radius:14px;padding:6px 10px 2px;position:relative;overflow:hidden}\n  .stage svg{display:block;width:100%;height:auto}\n  .stageLabel{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.14em;\n    color:#5b6470;text-transform:uppercase}\n  .haloBadge{position:absolute;top:10px;right:14px;display:none;align-items:center;gap:8px;\n    font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#dfe9f7;\n    background:rgba(70,90,120,.22);border:1px solid rgba(190,215,255,.35);\n    border-radius:999px;padding:5px 12px 5px 9px;backdrop-filter:blur(2px)}\n  .haloBadge .dot{width:8px;height:8px;border-radius:50%;background:#F4F8FF;\n    box-shadow:0 0 8px 2px rgba(220,235,255,.9);flex:none}\n  .haloBadge b{font-weight:700;color:#fff}\n  .haloBadge span{color:#9fb0c6;text-transform:none;letter-spacing:.02em}\n  @media(max-width:700px){.haloBadge span{display:none}}\n  .lower{display:grid;grid-template-columns:270px 1fr;gap:14px;margin-top:14px;align-items:stretch}\n  .compactSel{display:none}\n  @media(max-width:840px){\n    .stage{padding:8px 8px 4px}\n    .stageLabel{position:static;font-size:10px;margin:0 0 6px}\n    .haloBadge{position:static;font-size:10px;padding:4px 9px;margin:0 0 6px;width:max-content}\n    .wrap{padding:6px 6px 10px !important}\n    .lower{grid-template-columns:1fr;gap:10px}\n    .cardCtl{order:1}\n    .cardColors{order:2}\n    .cardColors .cRow,.cardColors .hint{display:none}\n    .cardColors.expanded .cRow{display:block}\n    .compactSel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    .compactSel .sw{cursor:default}\n    .compactSel .sw:hover{transform:none}\n  }\n  .card{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:14px}\n  .card h3{margin:0 0 10px;font-size:11.5px;letter-spacing:.16em;color:var(--dim);\n    text-transform:uppercase;font-weight:700}\n  .cRow{margin-bottom:12px}\n  .cRow .lbl{font-size:12px;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}\n  .swatches{display:flex;gap:8px;flex-wrap:wrap}\n  .sw{width:38px;height:30px;border-radius:7px;border:2px solid #2c333d;cursor:pointer;\n    position:relative;transition:transform .08s}\n  .sw:hover{transform:translateY(-1px)}\n  .sw.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25),0 0 14px rgba(255,255,255,.15)}\n  .sw.dis{opacity:.22;cursor:not-allowed}\n  .sw.none{background:repeating-linear-gradient(45deg,#1a1f26 0 6px,#12161b 6px 12px)}\n  .sw.none::after{content:\u0026quot;OFF\u0026quot;;position:absolute;inset:0;display:flex;align-items:center;\n    justify-content:center;font-size:9px;color:#6b7480;font-weight:700;letter-spacing:.05em}\n  .hint{font-size:11.5px;line-height:1.5;color:#6d7684;border-top:1px solid var(--edge);\n    padding-top:10px;margin-top:2px}\n  .hint b{color:#9aa4b2;font-weight:600}\n  .swapBtn{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);border-radius:7px;\n    font-size:11px;padding:4px 9px;cursor:pointer;letter-spacing:.06em}\n  .swapBtn:hover{border-color:#4a5462}\n  .ctlWrap{display:flex;justify-content:center}\n  .ctlWrap svg{width:100%;max-width:300px;height:auto}\n  .legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;\n    margin:12px auto 0;max-width:420px;border-top:1px solid var(--edge);padding-top:12px}\n  .legend div{display:flex;align-items:baseline;gap:8px;font-size:11.5px;line-height:1.4}\n  .legend b{color:#ffcf7d;font-weight:700;min-width:20px;flex:none}\n  .legend span{color:#7f8b9c}\n  @media(max-width:520px){.legend{grid-template-columns:1fr}}\n  .kb{cursor:pointer}\n  @keyframes ringPulse{0%,100%{stroke-opacity:.9}50%{stroke-opacity:.12}}\n  .pulseRing{fill:none;stroke:#ffb43a;stroke-width:2.5;animation:ringPulse 1.8s ease-in-out infinite;pointer-events:none}\n  @keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}\n  .tryHint{display:flex;justify-content:center;margin:10px 0 0}\n  .tryHint span{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;\n    text-transform:uppercase;color:#ffcf7d;border:1px solid rgba(255,180,58,.45);border-radius:999px;\n    padding:6px 14px;animation:hintPulse 2.4s ease-in-out infinite;background:rgba(255,180,58,.07)}\n  .tryHint .dotLive{width:7px;height:7px;border-radius:50%;background:#ffb43a;\n    box-shadow:0 0 7px 2px rgba(255,180,58,.7);flex:none}\n  footer{margin-top:12px;color:#59626e;font-size:11px;letter-spacing:.04em;\n    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}\n\u0026lt;\/style\u0026gt;\n\u0026lt;\/head\u0026gt;\n\u0026lt;body\u0026gt;\n\u0026lt;div class=\u0026quot;wrap\u0026quot;\u0026gt;\n  \u0026lt;header\u0026gt;\n    \u0026lt;div class=\u0026quot;brand\u0026quot;\u0026gt;BLACK OAK \u0026lt;span\u0026gt;LED\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;sub\u0026quot;\u0026gt;Mini Low Pro\u0026amp;trade; Emergency Bar · Interactive Demo \u0026amp;bull; \u0026lt;span id=\u0026quot;sizeLabel\u0026quot;\u0026gt;17\u0026amp;Prime;\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;sizeBtns\u0026quot; id=\u0026quot;sizeBtns\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n  \u0026lt;\/header\u0026gt;\n\n  \u0026lt;div class=\u0026quot;stage\u0026quot;\u0026gt;\n    \u0026lt;div class=\u0026quot;stageLabel\u0026quot; id=\u0026quot;patternLabel\u0026quot;\u0026gt;Pattern 1 · Split Steady Burn\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;haloBadge\u0026quot; id=\u0026quot;haloBadge\u0026quot;\u0026gt;\u0026lt;i class=\u0026quot;dot\u0026quot;\u0026gt;\u0026lt;\/i\u0026gt;\n      \u0026lt;b\u0026gt;360\u0026amp;deg; Halo\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;\u0026amp;nbsp;scene light \u0026amp;middot; rocker down\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;svg id=\u0026quot;barSvg\u0026quot; viewBox=\u0026quot;0 0 1000 240\u0026quot; aria-label=\u0026quot;Light bar simulation\u0026quot;\u0026gt;\u0026lt;\/svg\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\u0026quot;tryHint\u0026quot; id=\u0026quot;tryHint\u0026quot;\u0026gt;\u0026lt;span\u0026gt;\u0026lt;i class=\u0026quot;dotLive\u0026quot;\u0026gt;\u0026lt;\/i\u0026gt;Live demo \u0026amp;middot; flip the rocker, press the button\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\u0026quot;lower\u0026quot;\u0026gt;\n    \u0026lt;div class=\u0026quot;card cardColors\u0026quot; id=\u0026quot;colorCard\u0026quot;\u0026gt;\n      \u0026lt;h3\u0026gt;Select Colors\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\u0026quot;compactSel\u0026quot; id=\u0026quot;compactSel\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;cRow\u0026quot;\u0026gt;\n        \u0026lt;div class=\u0026quot;lbl\u0026quot;\u0026gt;\u0026lt;span\u0026gt;Color 1\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\u0026quot;swatches\u0026quot; id=\u0026quot;sw1\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;cRow\u0026quot;\u0026gt;\n        \u0026lt;div class=\u0026quot;lbl\u0026quot;\u0026gt;\u0026lt;span\u0026gt;Color 2 (dual color)\u0026lt;\/span\u0026gt;\n          \u0026lt;button class=\u0026quot;swapBtn\u0026quot; id=\u0026quot;swapBtn\u0026quot; title=\u0026quot;Swap Color 1 and Color 2\u0026quot;\u0026gt;\u0026amp;#8646; Swap\u0026lt;\/button\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\u0026quot;swatches\u0026quot; id=\u0026quot;sw2\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;hint\u0026quot; id=\u0026quot;colorHint\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;card cardCtl\u0026quot;\u0026gt;\n      \u0026lt;h3\u0026gt;Socket Controller · flip the rocker \u0026amp;middot; press the button\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\u0026quot;ctlWrap\u0026quot;\u0026gt;\n        \u0026lt;svg id=\u0026quot;ctl\u0026quot; viewBox=\u0026quot;0 0 300 300\u0026quot; aria-label=\u0026quot;Socket plug controller\u0026quot;\u0026gt;\u0026lt;\/svg\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;legend\u0026quot;\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;Button\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Next flash pattern\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;I\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Warning flash patterns\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;O\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Off\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;II\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;footer\u0026gt;\n    \u0026lt;div\u0026gt;BLACK OAK LED · Navigate the Night.\u0026lt;\/div\u0026gt;\n    \u0026lt;div\u0026gt;Designed and engineered in Sarasota, Florida\u0026lt;\/div\u0026gt;\n  \u0026lt;\/footer\u0026gt;\n\u0026lt;\/div\u0026gt;\n\n\u0026lt;script\u0026gt;\n\u0026quot;use strict\u0026quot;;\nconst LEDCOLORS = {\n  amber:{main:\u0026quot;#ffb43a\u0026quot;, core:\u0026quot;#ffe9b0\u0026quot;, glow:\u0026quot;#ff9d00\u0026quot;, label:\u0026quot;Amber\u0026quot;},\n  white:{main:\u0026quot;#F4F8FF\u0026quot;, core:\u0026quot;#ffffff\u0026quot;, glow:\u0026quot;#cfe4ff\u0026quot;, label:\u0026quot;White\u0026quot;},\n  red:  {main:\u0026quot;#ff2d23\u0026quot;, core:\u0026quot;#ffb0a8\u0026quot;, glow:\u0026quot;#ff1400\u0026quot;, label:\u0026quot;Red\u0026quot;},\n  blue: {main:\u0026quot;#2a62ff\u0026quot;, core:\u0026quot;#b8ccff\u0026quot;, glow:\u0026quot;#0040ff\u0026quot;, label:\u0026quot;Blue\u0026quot;},\n  green:{main:\u0026quot;#19d949\u0026quot;, core:\u0026quot;#c2ffcf\u0026quot;, glow:\u0026quot;#00c832\u0026quot;, label:\u0026quot;Green\u0026quot;}\n};\n\n\/* Catalog per size, straight from the product pages.\n   singles: colors sold alone. duals: exact combos sold. *\/\nconst SIZES = {\n  \u0026quot;11\u0026quot;: {\n    label:\u0026quot;11\u0026amp;Prime;\u0026quot;, front:3, span:290, x0:355,\n    singles:[], duals:[[\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;]],\n    note:\u0026quot;The 11\u0026amp;Prime; Mini ships in Amber \u0026amp;amp; White.\u0026quot;\n  },\n  \u0026quot;17\u0026quot;: {\n    label:\u0026quot;17\u0026amp;Prime;\u0026quot;, front:4, span:390, x0:305,\n    singles:[\u0026quot;amber\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;white\u0026quot;],\n    duals:[[\u0026quot;amber\u0026quot;,\u0026quot;blue\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;green\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;red\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;],[\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;],[\u0026quot;red\u0026quot;,\u0026quot;white\u0026quot;]],\n    note:\u0026quot;Every combo shown here is orderable on the 17\u0026amp;Prime; bar.\u0026quot;\n  }\n};\nlet SIZE = \u0026quot;17\u0026quot;;\n\nconst S = {\n  color1:\u0026quot;amber\u0026quot;, color2:\u0026quot;white\u0026quot;,\n  rocker:\u0026quot;up\u0026quot;,            \/\/ up = warning LEDs, mid = off, down = white halo\n  pattern:1\n};\n\nconst NS=\u0026quot;http:\/\/www.w3.org\/2000\/svg\u0026quot;;\nconst bar = document.getElementById(\u0026quot;barSvg\u0026quot;);\nlet modules = [];\nfunction el(name, attrs, parent){\n  const e=document.createElementNS(NS,name);\n  for(const k in attrs) e.setAttribute(k,attrs[k]);\n  if(parent) parent.appendChild(e);\n  return e;\n}\n\nfunction buildBar(){\n  bar.innerHTML=\u0026quot;\u0026quot;; modules=[];\n  const cfg=SIZES[SIZE];\n  const defs = el(\u0026quot;defs\u0026quot;,{},bar);\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;ledGlow\u0026quot;, x:\u0026quot;-80%\u0026quot;,y:\u0026quot;-80%\u0026quot;,width:\u0026quot;260%\u0026quot;,height:\u0026quot;260%\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:4, result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;haloGlow\u0026quot;, filterUnits:\u0026quot;userSpaceOnUse\u0026quot;,\n      x:\u0026quot;-120\u0026quot;,y:\u0026quot;-160\u0026quot;,width:\u0026quot;1240\u0026quot;,height:\u0026quot;560\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:11, result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n\n  const L=cfg.x0, R=cfg.x0+cfg.span, cL=L-75, cR=R+75;\n  const G = el(\u0026quot;g\u0026quot;,{},bar);\n  const haloLayer = el(\u0026quot;g\u0026quot;,{},G);\n  const sidePaths = {\n    front:`M ${L},62 L ${R},62`,\n    back: `M ${L},178 L ${R},178`,\n    left: `M ${L},62 L ${cL},95 L ${cL},145 L ${L},178`,\n    right:`M ${R},62 L ${cR},95 L ${cR},145 L ${R},178`\n  };\n  const haloEls={};\n  for(const z in sidePaths){\n    const g=el(\u0026quot;g\u0026quot;,{filter:\u0026quot;url(#haloGlow)\u0026quot;},haloLayer);\n    [[10,.9],[26,.4],[52,.16],[88,.07]].forEach(([wd,op])=\u0026gt;{\n      el(\u0026quot;path\u0026quot;,{d:sidePaths[z], stroke:\u0026quot;#eef4ff\u0026quot;,\u0026quot;stroke-width\u0026quot;:wd,\u0026quot;stroke-opacity\u0026quot;:op,\n        fill:\u0026quot;none\u0026quot;,\u0026quot;stroke-linecap\u0026quot;:\u0026quot;round\u0026quot;,\u0026quot;stroke-linejoin\u0026quot;:\u0026quot;round\u0026quot;},g);\n    });\n    g.setAttribute(\u0026quot;visibility\u0026quot;,\u0026quot;hidden\u0026quot;);\n    haloEls[z]=g;\n  }\n  S._haloEls=haloEls;\n\n  el(\u0026quot;polygon\u0026quot;,{points:`${L},62 ${R},62 ${cR},95 ${cR},145 ${R},178 ${L},178 ${cL},145 ${cL},95`,\n    fill:\u0026quot;#15181d\u0026quot;, stroke:\u0026quot;#3a4149\u0026quot;,\u0026quot;stroke-width\u0026quot;:3},G);\n  el(\u0026quot;polygon\u0026quot;,{points:`${L+8},70 ${R-8},70 ${cR-12},99 ${cR-12},141 ${R-8},170 ${L+8},170 ${cL+12},141 ${cL+12},99`,\n    fill:\u0026quot;#0e1114\u0026quot;, stroke:\u0026quot;#22272e\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},G);\n  el(\u0026quot;text\u0026quot;,{x:500,y:114,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#c9d0d9\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;17\u0026quot;,\n    \u0026quot;font-weight\u0026quot;:\u0026quot;800\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;4\u0026quot;,\u0026quot;font-family\u0026quot;:\u0026quot;inherit\u0026quot;},G).textContent=\u0026quot;BLACK OAK\u0026quot;;\n  el(\u0026quot;text\u0026quot;,{x:500,y:130,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#4c545e\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;8\u0026quot;,\n    \u0026quot;letter-spacing\u0026quot;:\u0026quot;2\u0026quot;},G).textContent=\u0026quot;SAE W3-1 22\u0026quot;;\n\n  const ledLayer = el(\u0026quot;g\u0026quot;,{},G);\n  const N=cfg.front, h=12, gap=6;\n  const w = cfg.span\/N - gap;\n  const addMod=(zone,x,y)=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{},ledLayer);\n    const lens=el(\u0026quot;rect\u0026quot;,{x,y,width:w,height:h,rx:4, fill:\u0026quot;#23282f\u0026quot;, stroke:\u0026quot;#10131a\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},g);\n    const halo=el(\u0026quot;rect\u0026quot;,{x:x-6,y:y-6,width:w+12,height:h+12,rx:9, fill:\u0026quot;none\u0026quot;,opacity:0, filter:\u0026quot;url(#ledGlow)\u0026quot;},g);\n    modules.push({zone, lens, halo, px:x+w\/2});\n  };\n  const addRot=(zone,cx,cy,len,rot)=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\u0026quot;rect\u0026quot;,{x:cx-len\/2,y:cy-h\/2,width:len,height:h,rx:4,\n      fill:\u0026quot;#23282f\u0026quot;,stroke:\u0026quot;#10131a\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},g);\n    const halo=el(\u0026quot;rect\u0026quot;,{x:cx-len\/2-6,y:cy-h\/2-6,width:len+12,height:h+12,rx:9,\n      fill:\u0026quot;none\u0026quot;,opacity:0,filter:\u0026quot;url(#ledGlow)\u0026quot;},g);\n    modules.push({zone,lens,halo,px:cx});\n  };\n  for(let i=0;i\u0026lt;N;i++){ addMod(\u0026quot;front\u0026quot;, L+5+i*(cfg.span\/N), 52); }\n  addRot(\u0026quot;right\u0026quot;,R+34,73,64,23.7);\n  addRot(\u0026quot;right\u0026quot;,cR-4,120,44,90);\n  addRot(\u0026quot;right\u0026quot;,R+34,167,64,-23.7);\n  for(let i=N-1;i\u0026gt;=0;i--){ addMod(\u0026quot;back\u0026quot;, L+5+i*(cfg.span\/N), 176); }\n  addRot(\u0026quot;left\u0026quot;,L-34,167,64,23.7);\n  addRot(\u0026quot;left\u0026quot;,cL+4,120,44,90);\n  addRot(\u0026quot;left\u0026quot;,L-34,73,64,-23.7);\n\n  const pxs=modules.map(m=\u0026gt;m.px);\n  S._pxmin=Math.min(...pxs); S._pxmax=Math.max(...pxs);\n  const mid=(S._pxmin+S._pxmax)\/2;\n  modules.forEach(m=\u0026gt;{ m.side = m.px\u0026lt;=mid ? \u0026quot;L\u0026quot;:\u0026quot;R\u0026quot;; m.p=(m.px-S._pxmin)\/(S._pxmax-S._pxmin); });\n}\n\n\/* ---- Pattern engine. Timings measured frame-by-frame from the 17\u0026quot; socket-controller video. ---- *\/\nfunction ph(t,cyc){ return t % cyc; }\nconst PATTERNS = [\n  {name:\u0026quot;Split Steady Burn\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{           \/\/ video 11.5-16s \/ 26-37s \/ 95s-end\n    return {color: m.side===\u0026quot;L\u0026quot;?c1:c2, k:.85};\n  }},\n  {name:\u0026quot;Alternating Single Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{     \/\/ video 37-42s: A 170ms, off 230, W 200, off 240\n    const p=ph(t,840);\n    if(p\u0026lt;170) return {color:c1,k:1};\n    if(p\u0026gt;=400\u0026amp;\u0026amp;p\u0026lt;600) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Split Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{                  \/\/ video 42.5-45.8s: halves flash together, 200 on \/ 270 off\n    const p=ph(t,470);\n    if(p\u0026lt;200) return {color: m.side===\u0026quot;L\u0026quot;?c2:c1, k:1};\n    return null;\n  }},\n  {name:\u0026quot;Alternating Double Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{     \/\/ video 45.9-49s\n    const p=ph(t,1470);\n    if(p\u0026lt;130||(p\u0026gt;=200\u0026amp;\u0026amp;p\u0026lt;330)) return {color:c1,k:1};\n    if((p\u0026gt;=730\u0026amp;\u0026amp;p\u0026lt;860)||(p\u0026gt;=930\u0026amp;\u0026amp;p\u0026lt;1060)) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Slow Alternating Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{       \/\/ video 49-52s: 430 on \/ 370 off each color\n    const p=ph(t,1600);\n    if(p\u0026lt;430) return {color:c1,k:1};\n    if(p\u0026gt;=800\u0026amp;\u0026amp;p\u0026lt;1230) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Double Flash + Steady\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{        \/\/ video 52.2-55.9s: C1 double pulse, C2 400ms burn\n    const p=ph(t,1300);\n    if(p\u0026lt;200||(p\u0026gt;=270\u0026amp;\u0026amp;p\u0026lt;470)) return {color:c1,k:1};\n    if(p\u0026gt;=600\u0026amp;\u0026amp;p\u0026lt;1000) return {color:c2,k:.85};\n    return null;\n  }},\n  {name:\u0026quot;Half Ping-Pong\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{               \/\/ video 56-63s: L C1, R C1, L C2, R C2\n    const p=ph(t,1600), seg=Math.floor(p\/400), local=p%400;\n    if(local\u0026gt;=270) return null;\n    const col = seg\u0026lt;2?c1:c2, side = (seg%2===0)?\u0026quot;L\u0026quot;:\u0026quot;R\u0026quot;;\n    return m.side===side ? {color:col,k:1} : null;\n  }},\n  {name:\u0026quot;Dual Rotation\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{                \/\/ video 63-70.4s: opposite ends counter-chasing\n    const p=ph(t,1400)\/1400;\n    const d1=Math.abs(m.p-p), d2=Math.abs(m.p-((p+.5)%1));\n    if(Math.min(d1,1-d1)\u0026lt;.18) return {color:c1,k:1};\n    if(Math.min(d2,1-d2)\u0026lt;.18) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Steady + Flash Combo\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{         \/\/ video 70.4-77.5s: one half steady, other flashes; swaps\n    const swap=Math.floor(t\/3500)%2===1;\n    const steadySide = swap?\u0026quot;R\u0026quot;:\u0026quot;L\u0026quot;;\n    if(m.side===steadySide) return {color: swap?c2:c1, k:.8};\n    const p=ph(t,730);\n    if(p\u0026lt;330) return {color: swap?c1:c2, k:1};\n    return null;\n  }},\n  {name:\u0026quot;End-to-End Sweep\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{             \/\/ video 77.6-85.9s: C1 builds across, then C2\n    const cyc=1700, p=ph(t,cyc), half=cyc\/2;\n    const dirFlip=Math.floor(t\/cyc)%2===1;\n    const local=p%half, col=p\u0026lt;half?c1:c2;\n    let b;\n    if(local\u0026lt;500) b=local\/500; else if(local\u0026lt;700) b=1; else return null;\n    const pos=dirFlip?1-m.p:m.p;\n    return pos\u0026lt;=b+.002 ? {color:col,k:1} : null;\n  }}\n];\n\nfunction activeColors(){\n  const c1=S.color1, c2=S.color2||S.color1;\n  return [c1,c2];\n}\n\nlet lastLabel=\u0026quot;\u0026quot;;\nfunction render(t){\n  const halo = S.rocker===\u0026quot;down\u0026quot;;\n  const on = S.rocker===\u0026quot;up\u0026quot;;\n  const [c1,c2]=activeColors();\n  const P=PATTERNS[S.pattern-1];\n  for(const m of modules){\n    let st=null;\n    if(on) st=P.f(m,t,c1,c2);\n    else if(halo) st={color:\u0026quot;white\u0026quot;,k:.9};\n    m.cur=st;\n    if(st){ m.lastT=t; m.lastC=st.color; m.lastK=st.k; }\n    let drawC=null, drawK=0;\n    if(st){ drawC=st.color; drawK=st.k; }\n    else if(m.lastC \u0026amp;\u0026amp; (t-m.lastT)\u0026lt;70){ drawC=m.lastC; drawK=m.lastK*(1-(t-m.lastT)\/70)*.7; }\n    if(drawC){\n      const c=LEDCOLORS[drawC];\n      m.lens.setAttribute(\u0026quot;fill\u0026quot;, drawK\u0026gt;.55? c.core : c.main);\n      m.lens.setAttribute(\u0026quot;stroke\u0026quot;, c.main);\n      m.halo.setAttribute(\u0026quot;fill\u0026quot;, c.glow);\n      m.halo.setAttribute(\u0026quot;opacity\u0026quot;, (0.85*drawK).toFixed(2));\n    }else{\n      m.lens.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#23282f\u0026quot;);\n      m.lens.setAttribute(\u0026quot;stroke\u0026quot;,\u0026quot;#10131a\u0026quot;);\n      m.halo.setAttribute(\u0026quot;opacity\u0026quot;,\u0026quot;0\u0026quot;);\n    }\n  }\n  for(const z in S._haloEls) S._haloEls[z].setAttribute(\u0026quot;visibility\u0026quot;, halo?\u0026quot;visible\u0026quot;:\u0026quot;hidden\u0026quot;);\n  const lbl = S.rocker===\u0026quot;mid\u0026quot; ? \u0026quot;Rocker centered · Off\u0026quot;\n    : S.rocker===\u0026quot;down\u0026quot; ? \u0026quot;360° Halo Scene Light · steady white\u0026quot;\n    : tourActive ? \u0026quot;Live demo · try the controller\u0026quot;\n    : `Pattern ${S.pattern} · ${P.name}`;\n  if(lbl!==lastLabel){ lastLabel=lbl; document.getElementById(\u0026quot;patternLabel\u0026quot;).textContent=lbl; }\n  document.getElementById(\u0026quot;haloBadge\u0026quot;).style.display = halo ? \u0026quot;flex\u0026quot;:\u0026quot;none\u0026quot;;\n  requestAnimationFrame(render);\n}\n\n\/* ---------------- Socket controller (replica of the plug in the video) ---------------- *\/\nconst ctl=document.getElementById(\u0026quot;ctl\u0026quot;);\nlet rockerParts={}, patternBtnG=null;\nfunction buildController(){\n  ctl.innerHTML=\u0026quot;\u0026quot;;\n  const defs=el(\u0026quot;defs\u0026quot;,{},ctl);\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;btnGlow\u0026quot;,x:\u0026quot;-40%\u0026quot;,y:\u0026quot;-40%\u0026quot;,width:\u0026quot;180%\u0026quot;,height:\u0026quot;180%\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:\u0026quot;2.2\u0026quot;,result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n  const lg=el(\u0026quot;linearGradient\u0026quot;,{id:\u0026quot;plugBody\u0026quot;,x1:\u0026quot;0\u0026quot;,y1:\u0026quot;0\u0026quot;,x2:\u0026quot;0\u0026quot;,y2:\u0026quot;1\u0026quot;},defs);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;0\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#2a2f37\u0026quot;},lg);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;.5\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#171a1f\u0026quot;},lg);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;1\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#0d0f12\u0026quot;},lg);\n\n  \/* socket base (the 12V outlet it plugs into) *\/\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:262,rx:118,ry:26,fill:\u0026quot;#0b0d10\u0026quot;,stroke:\u0026quot;#242a33\u0026quot;},ctl);\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:256,rx:100,ry:20,fill:\u0026quot;#10131a\u0026quot;,stroke:\u0026quot;#2b333d\u0026quot;},ctl);\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:254,rx:74,ry:14,fill:\u0026quot;none\u0026quot;,stroke:\u0026quot;#2a62ff\u0026quot;,\u0026quot;stroke-opacity\u0026quot;:\u0026quot;.55\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;3\u0026quot;,filter:\u0026quot;url(#btnGlow)\u0026quot;},ctl);\n\n  \/* plug barrel *\/\n  el(\u0026quot;rect\u0026quot;,{x:116,y:196,width:68,height:62,rx:14,fill:\u0026quot;url(#plugBody)\u0026quot;,stroke:\u0026quot;#000\u0026quot;},ctl);\n\n  \/* controller head *\/\n  el(\u0026quot;rect\u0026quot;,{x:70,y:26,width:160,height:184,rx:26,fill:\u0026quot;url(#plugBody)\u0026quot;,stroke:\u0026quot;#000\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;2\u0026quot;},ctl);\n  el(\u0026quot;rect\u0026quot;,{x:78,y:34,width:144,height:168,rx:20,fill:\u0026quot;none\u0026quot;,stroke:\u0026quot;#2c333d\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1.2\u0026quot;},ctl);\n\n  \/* pattern button on top *\/\n  const pb=el(\u0026quot;g\u0026quot;,{class:\u0026quot;kb\u0026quot;,role:\u0026quot;button\u0026quot;,tabindex:\u0026quot;0\u0026quot;,\u0026quot;aria-label\u0026quot;:\u0026quot;Cycle flash pattern\u0026quot;},ctl);\n  el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:20,fill:\u0026quot;#101318\u0026quot;,stroke:\u0026quot;#000\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;2\u0026quot;},pb);\n  const pbFace=el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:14,fill:\u0026quot;#22262d\u0026quot;,stroke:\u0026quot;#3a414b\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1.5\u0026quot;},pb);\n  el(\u0026quot;text\u0026quot;,{x:150,y:92,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#8a94a3\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;10\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;1.5\u0026quot;,\u0026quot;font-weight\u0026quot;:\u0026quot;700\u0026quot;},pb).textContent=\u0026quot;PATTERN\u0026quot;;\n  pb.addEventListener(\u0026quot;click\u0026quot;,()=\u0026gt;press(\u0026quot;pattern\u0026quot;));\n  pb.addEventListener(\u0026quot;keydown\u0026quot;,e=\u0026gt;{if(e.key===\u0026quot;Enter\u0026quot;||e.key===\u0026quot; \u0026quot;){e.preventDefault();press(\u0026quot;pattern\u0026quot;);}});\n  patternBtnG={g:pb,face:pbFace};\n  S._ring=el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:24,class:\u0026quot;pulseRing\u0026quot;},ctl);\n\n  \/* 3-position rocker *\/\n  const rx=150, ry=150, rw=56, rh=92;\n  el(\u0026quot;rect\u0026quot;,{x:rx-rw\/2-7,y:ry-rh\/2-7,width:rw+14,height:rh+14,rx:12,fill:\u0026quot;#0c0e12\u0026quot;,stroke:\u0026quot;#000\u0026quot;},ctl);\n  const zones=[\n    {pos:\u0026quot;up\u0026quot;,   y:ry-rh\/2,      lab:\u0026quot;I\u0026quot;},\n    {pos:\u0026quot;mid\u0026quot;,  y:ry-rh\/6,      lab:\u0026quot;O\u0026quot;},\n    {pos:\u0026quot;down\u0026quot;, y:ry+rh\/6,      lab:\u0026quot;II\u0026quot;}\n  ];\n  rockerParts={};\n  zones.forEach(z=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{class:\u0026quot;kb\u0026quot;,role:\u0026quot;button\u0026quot;,tabindex:\u0026quot;0\u0026quot;,\u0026quot;aria-label\u0026quot;:\u0026quot;Rocker \u0026quot;+z.pos},ctl);\n    const r=el(\u0026quot;rect\u0026quot;,{x:rx-rw\/2,y:z.y,width:rw,height:rh\/3,fill:\u0026quot;#1b1f26\u0026quot;,stroke:\u0026quot;#31383f\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1\u0026quot;},g);\n    const tx=el(\u0026quot;text\u0026quot;,{x:rx,y:z.y+rh\/6+4,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#9aa4b2\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;13\u0026quot;,\u0026quot;font-weight\u0026quot;:\u0026quot;700\u0026quot;},g);\n    tx.textContent=z.lab;\n    g.addEventListener(\u0026quot;click\u0026quot;,()=\u0026gt;press(\u0026quot;rocker_\u0026quot;+z.pos));\n    g.addEventListener(\u0026quot;keydown\u0026quot;,e=\u0026gt;{if(e.key===\u0026quot;Enter\u0026quot;||e.key===\u0026quot; \u0026quot;){e.preventDefault();press(\u0026quot;rocker_\u0026quot;+z.pos);}});\n    rockerParts[z.pos]={rect:r,text:tx};\n  });\n\n  el(\u0026quot;text\u0026quot;,{x:150,y:288,fill:\u0026quot;#59636f\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;10\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;1.5\u0026quot;,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;},ctl).textContent=\u0026quot;12V SOCKET\u0026quot;;\n  syncRocker();\n}\nfunction syncRocker(){\n  for(const pos in rockerParts){\n    const on = S.rocker===pos;\n    rockerParts[pos].rect.setAttribute(\u0026quot;fill\u0026quot;, on? (pos===\u0026quot;mid\u0026quot;?\u0026quot;#3a414b\u0026quot;:\u0026quot;#dfe7f5\u0026quot;) : \u0026quot;#1b1f26\u0026quot;);\n    rockerParts[pos].text.setAttribute(\u0026quot;fill\u0026quot;, on? \u0026quot;#12151a\u0026quot; : \u0026quot;#9aa4b2\u0026quot;);\n    if(on) rockerParts[pos].rect.setAttribute(\u0026quot;filter\u0026quot;,\u0026quot;url(#btnGlow)\u0026quot;);\n    else rockerParts[pos].rect.removeAttribute(\u0026quot;filter\u0026quot;);\n  }\n}\nfunction press(key){\n  markInteract();\n  if(key===\u0026quot;pattern\u0026quot;){\n    if(S.rocker!==\u0026quot;up\u0026quot;){ S.rocker=\u0026quot;up\u0026quot;; }   \/\/ like the hardware: button only matters with rocker up\n    else S.pattern = S.pattern % PATTERNS.length + 1;\n    patternBtnG.face.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#aab6c9\u0026quot;);\n    setTimeout(()=\u0026gt;patternBtnG.face.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#22262d\u0026quot;),140);\n  }\n  if(key===\u0026quot;rocker_up\u0026quot;) S.rocker=\u0026quot;up\u0026quot;;\n  if(key===\u0026quot;rocker_mid\u0026quot;) S.rocker=\u0026quot;mid\u0026quot;;\n  if(key===\u0026quot;rocker_down\u0026quot;) S.rocker=\u0026quot;down\u0026quot;;\n  syncRocker();\n}\n\n\/* ---------------- Color selection, constrained to the catalog ---------------- *\/\nfunction catalog(){ return SIZES[SIZE]; }\nfunction validC2(c1){\n  const c=catalog(); const out=[];\n  c.duals.forEach(([a,b])=\u0026gt;{ if(a===c1) out.push(b); else if(b===c1) out.push(a); });\n  return out;\n}\nfunction allC1(){\n  const c=catalog(); const set=new Set(c.singles);\n  c.duals.forEach(([a,b])=\u0026gt;{set.add(a);set.add(b);});\n  return [\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;].filter(x=\u0026gt;set.has(x));\n}\nfunction buildCompact(){\n  const c=document.getElementById(\u0026quot;compactSel\u0026quot;);\n  c.innerHTML=\u0026quot;\u0026quot;;\n  const mk=(col)=\u0026gt;{ const d=document.createElement(\u0026quot;div\u0026quot;); d.className=\u0026quot;sw\u0026quot;;\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label; return d; };\n  const lab=document.createElement(\u0026quot;span\u0026quot;);\n  lab.style.cssText=\u0026quot;font-size:12px;color:#8a94a3\u0026quot;;\n  lab.textContent=\u0026quot;Your colors:\u0026quot;;\n  c.appendChild(lab);\n  c.appendChild(mk(S.color1));\n  if(S.color2) c.appendChild(mk(S.color2));\n  const btn=document.createElement(\u0026quot;button\u0026quot;);\n  btn.className=\u0026quot;swapBtn\u0026quot;;\n  const card=document.getElementById(\u0026quot;colorCard\u0026quot;);\n  btn.textContent = card.classList.contains(\u0026quot;expanded\u0026quot;) ? \u0026quot;Done\u0026quot; : \u0026quot;Change colors\u0026quot;;\n  btn.onclick=()=\u0026gt;{ card.classList.toggle(\u0026quot;expanded\u0026quot;); buildCompact(); };\n  c.appendChild(btn);\n}\nfunction buildSwatches(){\n  buildCompact();\n  const s1=document.getElementById(\u0026quot;sw1\u0026quot;), s2=document.getElementById(\u0026quot;sw2\u0026quot;);\n  s1.innerHTML=\u0026quot;\u0026quot;; s2.innerHTML=\u0026quot;\u0026quot;;\n  const c=catalog();\n  for(const col of allC1()){\n    const d=document.createElement(\u0026quot;div\u0026quot;);\n    d.className=\u0026quot;sw\u0026quot;+(S.color1===col?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;);\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label;\n    d.onclick=()=\u0026gt;{\n      S.color1=col;\n      const v=validC2(col);\n      if(S.color2 \u0026amp;\u0026amp; !v.includes(S.color2)) S.color2 = v.length? v[0] : null;\n      if(!S.color2 \u0026amp;\u0026amp; !c.singles.includes(col) \u0026amp;\u0026amp; v.length) S.color2=v[0];\n      buildSwatches();\n    };\n    s1.appendChild(d);\n  }\n  const v=validC2(S.color1);\n  if(c.singles.includes(S.color1)){\n    const none=document.createElement(\u0026quot;div\u0026quot;);\n    none.className=\u0026quot;sw none\u0026quot;+(S.color2===null?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;);\n    none.title=\u0026quot;Single color\u0026quot;; none.onclick=()=\u0026gt;{S.color2=null; buildSwatches();};\n    s2.appendChild(none);\n  }\n  for(const col of [\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;]){\n    if(col===S.color1) continue;\n    const ok=v.includes(col);\n    const d=document.createElement(\u0026quot;div\u0026quot;);\n    d.className=\u0026quot;sw\u0026quot;+(S.color2===col?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;)+(ok?\u0026quot;\u0026quot;:\u0026quot; dis\u0026quot;);\n    d.style.background=LEDCOLORS[col].main;\n    d.title=ok? LEDCOLORS[col].label : \u0026quot;Not offered with \u0026quot;+LEDCOLORS[S.color1].label+\u0026quot; on this size\u0026quot;;\n    if(ok) d.onclick=()=\u0026gt;{ S.color2=col; buildSwatches(); };\n    s2.appendChild(d);\n  }\n  document.getElementById(\u0026quot;colorHint\u0026quot;).innerHTML =\n    catalog().note + \u0026quot; Rocker \u0026lt;b\u0026gt;up\u0026lt;\/b\u0026gt; runs the warning patterns and the button steps through them, \u0026quot; +\n    \u0026quot;exactly like the switch built into the socket plug. Rocker \u0026lt;b\u0026gt;down\u0026lt;\/b\u0026gt; is the \u0026lt;b\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/b\u0026gt;: \u0026quot; +\n    \u0026quot;steady white work light, a Low Pro exclusive.\u0026quot;;\n}\ndocument.getElementById(\u0026quot;swapBtn\u0026quot;).onclick=()=\u0026gt;{\n  if(!S.color2) return;\n  const a=S.color1,b=S.color2;\n  const c=catalog();\n  const ok=c.duals.some(([x,y])=\u0026gt;(x===b\u0026amp;\u0026amp;y===a)||(x===a\u0026amp;\u0026amp;y===b));\n  if(ok){ S.color1=b; S.color2=a; buildSwatches(); }\n};\n\n\/* ---------------- Size selector (prototype only; each product page pins its size) ---------------- *\/\nfunction buildSizeBtns(){\n  const holder=document.getElementById(\u0026quot;sizeBtns\u0026quot;);\n  holder.innerHTML=\u0026quot;\u0026quot;;\n  for(const s in SIZES){\n    const b=document.createElement(\u0026quot;button\u0026quot;);\n    b.textContent=s+'\u0026quot;'; b.className=SIZE===s?\u0026quot;on\u0026quot;:\u0026quot;\u0026quot;;\n    b.onclick=()=\u0026gt;{ SIZE=s; applySize(); };\n    holder.appendChild(b);\n  }\n}\nfunction applySize(){\n  document.getElementById(\u0026quot;sizeLabel\u0026quot;).innerHTML=SIZES[SIZE].label;\n  const c=catalog();\n  \/* prefer amber\/white, the house default, when the size offers it *\/\n  const pref=c.duals.find(([a,b])=\u0026gt;(a===\u0026quot;amber\u0026quot;\u0026amp;\u0026amp;b===\u0026quot;white\u0026quot;)||(a===\u0026quot;white\u0026quot;\u0026amp;\u0026amp;b===\u0026quot;amber\u0026quot;));\n  const firstDual=pref||c.duals[0];\n  S.color1=firstDual?\u0026quot;amber\u0026quot;:(c.singles[0]||\u0026quot;amber\u0026quot;);\n  if(firstDual\u0026amp;\u0026amp;!firstDual.includes(\u0026quot;amber\u0026quot;)) S.color1=firstDual[0];\n  S.color2=firstDual?(firstDual.find(x=\u0026gt;x!==S.color1)||null):null;\n  S.pattern=1;\n  buildBar(); buildSwatches(); buildSizeBtns();\n}\n\n\/* ---------------- Attract mode ---------------- *\/\nlet interacted=false, idleTimer=null, tourTimer=null, tourActive=false;\nfunction markInteract(){\n  if(interacted) return;\n  interacted=true;\n  if(tourActive){ tourActive=false; S.pattern=1; }\n  clearTimeout(tourTimer); clearTimeout(idleTimer);\n  const h=document.getElementById(\u0026quot;tryHint\u0026quot;);\n  if(h){ h.style.transition=\u0026quot;opacity .5s\u0026quot;; h.style.opacity=\u0026quot;0\u0026quot;; setTimeout(()=\u0026gt;h.remove(),600); }\n  if(S._ring) S._ring.remove();\n}\nfunction attractSweep(){\n  if(interacted||tourActive) return;\n  tourActive=true;\n  const prev=S.pattern; S.pattern=10;      \/\/ End-to-End Sweep as the attract animation\n  tourTimer=setTimeout(()=\u0026gt;{ if(tourActive){ tourActive=false; S.pattern=prev; } scheduleIdle(); }, 3600);\n}\nfunction scheduleIdle(){\n  if(interacted) return;\n  clearTimeout(idleTimer);\n  idleTimer=setTimeout(attractSweep, 18000);\n}\n(function(){\n  let fired=false;\n  const start=()=\u0026gt;{ if(!fired){ fired=true; setTimeout(attractSweep, 700); } };\n  if(window.IntersectionObserver){\n    new IntersectionObserver((es,obs)=\u0026gt;{\n      if(es.some(e=\u0026gt;e.isIntersecting)){ start(); obs.disconnect(); }\n    },{threshold:.5}).observe(document.querySelector(\u0026quot;.stage\u0026quot;));\n  } else start();\n})();\n\n\/* ---------------- Boot + embed plumbing ---------------- *\/\nbuildController();\napplySize();\nrequestAnimationFrame(render);\n\n(function(){\n  const embedded = (window!==parent);\n  if(embedded){\n    document.querySelector(\u0026quot;header\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    document.querySelector(\u0026quot;footer\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    document.getElementById(\u0026quot;sizeBtns\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    if(window.innerWidth\u0026gt;840) document.querySelector(\u0026quot;.wrap\u0026quot;).style.padding=\u0026quot;10px 12px 14px\u0026quot;;\n  }\n  const report=()=\u0026gt;{ try{\n    parent.postMessage({type:\u0026quot;lowpro-player-height\u0026quot;,\n      height: document.querySelector(\u0026quot;.wrap\u0026quot;).scrollHeight+8}, \u0026quot;*\u0026quot;);\n  }catch(e){} };\n  if(window.ResizeObserver) new ResizeObserver(report).observe(document.querySelector(\u0026quot;.wrap\u0026quot;));\n  window.addEventListener(\u0026quot;load\u0026quot;,report); window.addEventListener(\u0026quot;pageshow\u0026quot;,report);\n  setTimeout(report,400); setTimeout(report,1500);\n  let n=0; const iv=setInterval(()=\u0026gt;{ report(); if(++n\u0026gt;10) clearInterval(iv); },1200);\n})();\n\u0026lt;\/script\u0026gt;\n\u0026lt;\/body\u0026gt;\n\u0026lt;\/html\u0026gt;\n\"\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.lowpro-frame{height:775px}\n@media(max-width:840px){\n  .lowpro-cta{display:none}\n  .lowpro-frame{height:790px}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\nwindow.addEventListener(\"message\",function(e){\n  if(e.data \u0026\u0026 e.data.type===\"lowpro-player-height\"){\n    var f=document.getElementById(\"lowpro-player-frame\");\n    if(f \u0026\u0026 e.data.height\u003e200) f.style.height=(e.data.height+4)+\"px\";\n  }\n});\n\u003c\/script\u003e\n\u003cdiv style=\"height:28px;\"\u003e \u003c\/div\u003e\n\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cstrong\u003eBuilt for emergency response teams and public safety professionals, this high-intensity LED warning light bar delivers uncompromising performance in a sleek, durable design.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eThe Black Oak Low Pro Emergency Series Light Bar is engineered for maximum visibility, reliability, and user control. With ultra-bright LEDs, multiple flash patterns, and a rugged housing, this bar ensures your presence is known in any emergency situation—day or night, rain or shine.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eBuilt to withstand the demands of high-speed response, off-road utility, or work site visibility, this low-profile bar features a streamlined, aerodynamic frame and a universal mounting system to ensure easy installation on any vehicle. Whether you're outfitting a patrol car, fire unit, or utility truck, this bar delivers dependable performance where it matters most.\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- TRUST STRIP --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2026-07-21_at_9.31.14_AM.png?v=1784641940\" alt=\"SAE J845 Certified, SAE J595 Class 1, IP69K Waterproof, Lifetime Warranty, -40F to +145F Rated, 50,000 Hour LEDs\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003c!-- SIZE SELECTOR --\u003e\n\u003cdiv style=\"margin:4px 0 2px;\"\u003e\n\u003cp style=\"margin:0 0 8px;font-weight:600;font-size:15px;\"\u003eAvailable sizes:\u003c\/p\u003e\n\u003ca href=\"\/products\/11-mini-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e11\"\u003c\/a\u003e\n\u003cspan style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:8px 14px;border-radius:8px;margin:0 6px 8px 0;font-size:15px;\"\u003e17\"\u003c\/span\u003e\n\u003ca href=\"\/products\/new-30-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e30\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-43-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e43\"\u003c\/a\u003e\n\u003ca href=\"\/products\/low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e49\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-55-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e55\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-61-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e61\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-68-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e68\"\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n#MainContent details[open] summary::after {\n  content: '−';\n}\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003eLifetime Warranty\u003c\/li\u003e\n\u003cli\u003eSAE J845 Class 1 Certified\u003c\/li\u003e\n\u003cli\u003e360° visibility with dual-color ultra-bright LEDs\u003c\/li\u003e\n\u003cli\u003eSlim Low Profile design\u003c\/li\u003e\n\u003cli\u003eUp to 45 flash patterns with memory recall\u003c\/li\u003e\n\u003cli\u003eRugged, waterproof housing (IP69K rated)\u003c\/li\u003e\n\u003cli\u003eIntegrated controller with pattern cycling, cruise mode, and cut-off\n\u003cul\u003e\n\u003cli\u003eNote - this is built into the back of the \u003cspan style=\"text-decoration: underline;\"\u003esocket plug\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eThis bar \u003cspan style=\"text-decoration: underline;\"\u003edoes not\u003c\/span\u003e come with a standard controller!\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eLow Pro Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eWiring\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStandard Feet\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eJamb Brackets\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- COMPLIANCE SECTION --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCompliance \u0026amp; Certifications\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cstrong\u003eMeets the standards your department requires.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"3\"\u003eCertification \u0026amp; Compliance\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J845\u003c\/th\u003e\n\u003ctd\u003e360° warning lamp photometric standard for light bars and beacons\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J595 Class 1\u003c\/th\u003e\n\u003ctd\u003eHighest intensity class — approved for primary emergency vehicles (police, fire, EMS)\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIP69K\u003c\/th\u003e\n\u003ctd\u003eSealed against high-pressure washdown, salt, dust, and submersion\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eRated\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Range\u003c\/th\u003e\n\u003ctd\u003eExtreme-climate duty\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e-40°F to +145°F\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDuty Life\u003c\/th\u003e\n\u003ctd\u003eContinuous-duty LED modules\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e50,000 hours\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"font-size:13px;color:#666;\"\u003e\u003cem\u003eWarning-equipment regulations vary by state and jurisdiction. Verify color and mounting requirements with your local authority. Spec sheet PDF and certification documentation available on request for procurement offices.\u003c\/em\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- Image + Text Alternating Section --\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/255283_7703341170749_330031d5_da20_475f_887e_f1269d2ad248_1.jpg?v=1763495670\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eEmergency Bar + Work Light\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eGet full 360° white-light illumination at the touch of a button. Perfect for reverse lighting, scene lighting, or any situation where you need powerful all-around visibility. It's a true dual-purpose feature you won't find on most emergency bars — and it comes standard on every one of ours.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_SAE_graphics.jpg?v=1758041472\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eBuilt Tough for Any Environment\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eIP69K-rated waterproof housing and reinforced aluminum construction stand up to rain, snow, mud, and dust—ideal for police, fire, tow, or off-road response vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/DSC00223.jpg?v=1754512314\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eFull 360° Warning Visibility\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003ePacked with high-output dual-color LEDs and side modules, this bar delivers all-angle visibility—ensuring you're seen from every direction, even in chaotic scenes or inclement weather.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE_-_Driver_Side_Angle.jpg?v=1761226316\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eSlim, Low-Profile Design\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eEngineered to minimize wind resistance and visual bulk, this light bar features a sleek, aerodynamic frame that hugs your vehicle's roofline. The low-profile housing not only enhances fuel efficiency but also delivers a clean, professional look without compromising brightness or performance.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cp\u003e\u003cvideo width=\"100%\" height=\"auto\" muted=\"\" autoplay=\"autoplay\" loop=\"loop\" playsinline=\"\" controls=\"controls\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4ec9ce848f5e4d2d8083da9daf4dbe78.mp4\" type=\"video\/mp4\"\u003eYour browser does not support the video tag.\u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eUp to 45 Flash Patterns with Smart Memory\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eChoose from up to 45 user-selectable flash patterns to fit any scenario. Built-in memory recall stores your last used setting for consistent deployment every time.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HERO BANNER --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/d8j0ntlcm91z4.cloudfront.net\/user_3G9nKxyaQsdrPdDsxWr4EcSl5FL\/hf_20260715_201038_0803a0cd-07a6-4508-9c7a-50d0230a94e3.png\" alt=\"Built to Code. Backed for Life. SAE J845 and J595 Class 1 compliant, IP69K sealed, lifetime warranty\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- FLEET BLOCK --\u003e\n\u003cdiv style=\"padding:8px 0;margin:0 0 8px;\"\u003e\n\u003ch3 style=\"margin:0 0 8px;\"\u003eOutfitting a Fleet?\u003c\/h3\u003e\n\u003cp style=\"margin:0 0 14px;font-size:16px;line-height:1.6;\"\u003eVolume pricing on 5+ units, department POs accepted, W-9 on file, and spec sheets ready for your procurement office. From single patrol vehicles to full county fleets.\u003c\/p\u003e\n\u003ca href=\"\/pages\/fleet-pricing\" style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:12px 22px;border-radius:8px;text-decoration:none;\"\u003eRequest Fleet Pricing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Dimension --\u003e\u003c!-- Specs --\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_All_Dimensions.jpg?v=1762971573\"\u003e\u003c\/p\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th, table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n  }\n  table.spec-table th {\n    background-color: #f7f7f7;\n    font-weight: 600;\n    width: 30%;\n  }\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n  table.spec-table thead th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e168\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e13\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Quantity\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eWide Angle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertificate\u003c\/th\u003e\n\u003ctd\u003eSAE J845 \u0026amp; SAE J595 Class 1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Single Color\u003c\/th\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Dual Color\u003c\/th\u003e\n\u003ctd\u003e45 (15 Color 1 \/ 15 Color 2 \/ 15 Combo)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Length From Light\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHole Size for Controller\u003c\/th\u003e\n\u003ctd\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting Bolt Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"2\"\u003eGeneral\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU\u003c\/th\u003e\n\u003ctd\u003eLP-E17\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch5\u003eDimensions\u003c\/h5\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_17_Inch_Dimensions_cd599dcc-36bf-40dd-8ca3-e3c397f939e8.jpg?v=1762971479\"\u003e\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp\u003e\u003cstrong\u003eWhat voltage and control systems does this light bar support?\u003c\/strong\u003e\u003cbr\u003eThis light bar operates on a 12 V–24 V DC power system and can be used with either push-button or wireless controllers. It's compatible with standard vehicle electrical systems, making installation straightforward for both fleet and individual applications.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow durable is this light bar in harsh environments?\u003c\/strong\u003e\u003cbr\u003eThe Low Pro Emergency Light Bar is built with a rugged aluminum housing, sealed to an IP69K rating and tested to resist corrosion, vibration, and high-pressure water ingress. It's designed for demanding conditions—whether roadside, rescue, or commercial use—so you can rely on consistent performance when it counts.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat beam patterns and flash modes are included?\u003c\/strong\u003e\u003cbr\u003eUp to 45 flash patterns are built into the unit—including warning, hazard, and full-output flasher modes—with memory recall so your last setting is retained even after power loss. You'll also find low-profile steady-burn mode useful for scene lighting and standby operations.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs the light bar legal for use on public roads and emergency vehicles?\u003c\/strong\u003e\u003cbr\u003eYes. The unit meets SAE J595 Class 1 and other relevant emergency lighting standards for warning applications. However, regulations vary by jurisdiction, so we recommend checking your local laws before installation to ensure compliance with mounting height, color, and flash pattern requirements.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's covered by the warranty?\u003c\/strong\u003e\u003cbr\u003eOur industry-leading lifetime warranty covers manufacturing defects, driver failures, and LED module performance. It does not cover damage caused by improper installation, extreme overuse beyond defined duty cycles, or wiring issues. For full warranty terms, please refer to our Warranty \u0026amp; Returns page.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Amber \/ Magnet","offer_id":42583918968893,"sku":"LP-E17-A","price":349.37,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack (X2)","offer_id":42583919001661,"sku":"LP-E17-A","price":374.37,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet","offer_id":42590511628349,"sku":"LP-E17-AB","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack (X2)","offer_id":42590511661117,"sku":"LP-E17-AB","price":393.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet","offer_id":42590511693885,"sku":"LP-E17-AG","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack (X2)","offer_id":42590511726653,"sku":"LP-E17-AG","price":393.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet","offer_id":43482672496701,"sku":"LP-E17-AR","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack (X2)","offer_id":43482672529469,"sku":"LP-E17-AR","price":393.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet","offer_id":42583919067197,"sku":"LP-E17-AW","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack (X2)","offer_id":42583919099965,"sku":"LP-E17-AW","price":393.12,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet","offer_id":42583919165501,"sku":"LP-E17-B","price":349.37,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack (X2)","offer_id":42583919198269,"sku":"LP-E17-B","price":374.37,"currency_code":"USD","in_stock":true},{"title":"Green \/ Magnet","offer_id":42590511759421,"sku":"LP-E17-G","price":349.37,"currency_code":"USD","in_stock":true},{"title":"Green \/ Headache Rack (X2)","offer_id":42590511792189,"sku":"LP-E17-G","price":374.37,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet","offer_id":42583919263805,"sku":"LP-E17-RB","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack (X2)","offer_id":42583919296573,"sku":"LP-E17-RB","price":393.12,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet","offer_id":42583919362109,"sku":"LP-E17-R","price":349.37,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack (X2)","offer_id":42583919394877,"sku":"LP-E17-R","price":374.37,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet","offer_id":42583919460413,"sku":"LP-E17-RW","price":368.12,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack (X2)","offer_id":42583919493181,"sku":"LP-E17-RW","price":393.12,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet","offer_id":42583919558717,"sku":"LP-E17-W","price":349.37,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack (X2)","offer_id":42583919591485,"sku":"LP-E17-W","price":374.37,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE-17-inch-emergency-light-bar.png?v=1788466003"},{"product_id":"new-30-low-pro-emergency-light-bar","title":"30\" Low Pro Emergency Light Bar","description":"\u003c!-- LOWPRO INTERACTIVE PLAYER (test embed) --\u003e\n\u003cdiv id=\"lowpro-player-block\" style=\"margin:0 0 26px;\"\u003e\n\u003cdiv class=\"lowpro-cta\"\u003e\n\u003ch2 style=\"margin:0 0 4px;font-size:24px;line-height:1.25;\"\u003eTake the Controls: Try This Light Bar Live\u003c\/h2\u003e\n\u003cp style=\"margin:0 0 12px;font-size:15px;line-height:1.5;\"\u003ePick your colors, run the flash patterns, sweep the traffic advisor, and switch on the 360° Halo scene light, exactly like the controller in the box. Every module on a dual-color bar can show either color.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ciframe id=\"lowpro-player-frame\" class=\"lowpro-frame\" title=\"Low Pro Emergency Bar interactive demo\" style=\"width:100%;border:0;display:block;border-radius:16px;background:#0a0c0f;\" srcdoc='\u0026lt;!DOCTYPE html\u0026gt;\n\u0026lt;html lang=\"en\"\u0026gt;\n\u0026lt;head\u0026gt;\n\u0026lt;meta charset=\"UTF-8\"\u0026gt;\n\u0026lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u0026gt;\n\u0026lt;title\u0026gt;Black Oak LED · Low Pro Emergency Bar Interactive Demo\u0026lt;\/title\u0026gt;\n\u0026lt;style\u0026gt;\n  :root{\n    --bg:#0a0c0f; --panel:#111418; --panel2:#161a20; --edge:#242a33;\n    --txt:#e8ecf2; --dim:#8a94a3; --white-led:#F4F8FF; --navy:#0B1B2B; --accent:#C8892A;\n  }\n  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent}\n  html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);\n    font-family:\"Segoe UI\",system-ui,-apple-system,Roboto,Arial,sans-serif;}\n  .wrap{max-width:1100px;margin:0 auto;padding:14px 16px 20px;}\n  header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}\n  .brand{font-weight:800;letter-spacing:.18em;font-size:19px;white-space:nowrap}\n  .brand span{color:var(--dim);font-weight:600}\n  .sub{color:var(--dim);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}\n  .stage{background:radial-gradient(ellipse at 50% 30%, #14181e 0%, #0b0d11 70%);\n    border:1px solid var(--edge);border-radius:14px;padding:6px 10px 2px;position:relative;overflow:hidden}\n  .stage svg{display:block;width:100%;height:auto}\n  .stageLabel{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.14em;\n    color:#5b6470;text-transform:uppercase}\n  .haloBadge{position:absolute;top:10px;right:14px;display:none;align-items:center;gap:8px;\n    font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#dfe9f7;\n    background:rgba(70,90,120,.22);border:1px solid rgba(190,215,255,.35);\n    border-radius:999px;padding:5px 12px 5px 9px;backdrop-filter:blur(2px)}\n  .haloBadge .dot{width:8px;height:8px;border-radius:50%;background:#F4F8FF;\n    box-shadow:0 0 8px 2px rgba(220,235,255,.9);flex:none}\n  .haloBadge b{font-weight:700;color:#fff}\n  .haloBadge span{color:#9fb0c6;text-transform:none;letter-spacing:.02em}\n  @media(max-width:700px){.haloBadge span{display:none}}\n  .lower{display:grid;grid-template-columns:270px 1fr;gap:14px;margin-top:14px;align-items:stretch}\n  .compactSel{display:none}\n  @media(max-width:840px){\n    .stage{padding:8px 8px 4px}\n    .stageLabel{position:static;font-size:10px;margin:0 0 6px}\n    .haloBadge{position:static;font-size:10px;padding:4px 9px;margin:0 0 6px;width:max-content}\n    .wrap{padding:6px 6px 10px !important}\n    .lower{grid-template-columns:1fr;gap:10px}\n    .cardCtl{order:1}\n    .cardColors{order:2}\n    .cardColors .cRow,.cardColors .hint{display:none}\n    .cardColors.expanded .cRow{display:block}\n    .compactSel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    .compactSel .sw{cursor:default}\n    .compactSel .sw:hover{transform:none}\n  }\n  .card{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:14px}\n  .card h3{margin:0 0 10px;font-size:11.5px;letter-spacing:.16em;color:var(--dim);\n    text-transform:uppercase;font-weight:700}\n  .cRow{margin-bottom:12px}\n  .cRow .lbl{font-size:12px;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}\n  .swatches{display:flex;gap:8px;flex-wrap:wrap}\n  .sw{width:38px;height:30px;border-radius:7px;border:2px solid #2c333d;cursor:pointer;\n    position:relative;transition:transform .08s}\n  .sw:hover{transform:translateY(-1px)}\n  .sw.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25),0 0 14px rgba(255,255,255,.15)}\n  .sw.none{background:repeating-linear-gradient(45deg,#1a1f26 0 6px,#12161b 6px 12px)}\n  .sw.none::after{content:\"OFF\";position:absolute;inset:0;display:flex;align-items:center;\n    justify-content:center;font-size:9px;color:#6b7480;font-weight:700;letter-spacing:.05em}\n  .swapBtn{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);border-radius:7px;\n    font-size:11px;padding:4px 9px;cursor:pointer;letter-spacing:.06em}\n  .swapBtn:hover{border-color:#4a5462}\n  .hint{font-size:11.5px;line-height:1.5;color:#6d7684;border-top:1px solid var(--edge);\n    padding-top:10px;margin-top:2px}\n  .hint b{color:#9aa4b2;font-weight:600}\n  .ctlWrap{display:flex;justify-content:center}\n  .ctlWrap svg{width:100%;max-width:560px;height:auto}\n  .kb{cursor:pointer}\n  .kb rect.face,.kb circle.face,.kb path.face{fill:#20242b;stroke:#0c0e11;stroke-width:1.5;transition:fill .1s}\n  .kb:hover rect.face,.kb:hover circle.face,.kb:hover path.face{fill:#2e3641}\n  @keyframes ringPulse{0%,100%{stroke-opacity:.9}50%{stroke-opacity:.12}}\n  .pulseRing{fill:none;stroke:#ffb43a;stroke-width:2.5;animation:ringPulse 1.8s ease-in-out infinite;pointer-events:none}\n  @keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}\n  .tryHint{display:flex;justify-content:center;margin:10px 0 0}\n  .tryHint span{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;\n    text-transform:uppercase;color:#ffcf7d;border:1px solid rgba(255,180,58,.45);border-radius:999px;\n    padding:6px 14px;animation:hintPulse 2.4s ease-in-out infinite;background:rgba(255,180,58,.07)}\n  .tryHint .dotLive{width:7px;height:7px;border-radius:50%;background:#ffb43a;\n    box-shadow:0 0 7px 2px rgba(255,180,58,.7);flex:none}\n  .kb.lit rect.face,.kb.lit circle.face,.kb.lit path.face{fill:#dfe7f5}\n  .kb.lit text{fill:#20242b;font-weight:600}\n  .kb:active rect.face,.kb:active circle.face,.kb:active path.face{fill:#aab6c9}\n  .kb.lit{filter:url(#btnGlow)}\n  .kb text{fill:#c7cdd6;font-size:11px;text-anchor:middle;pointer-events:none;user-select:none}\n  footer{margin-top:12px;color:#59626e;font-size:11px;letter-spacing:.04em;\n    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}\n  footer a{color:#7d8794;text-decoration:none}\n\u0026lt;\/style\u0026gt;\n\u0026lt;\/head\u0026gt;\n\u0026lt;body\u0026gt;\n\u0026lt;div class=\"wrap\"\u0026gt;\n  \u0026lt;header\u0026gt;\n    \u0026lt;div class=\"brand\"\u0026gt;BLACK OAK \u0026lt;span\u0026gt;LED\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"sub\"\u0026gt;Low Pro\u0026amp;trade; Emergency Bar · Interactive Demo \u0026amp;bull; 30\u0026amp;Prime;\u0026lt;\/div\u0026gt;\n  \u0026lt;\/header\u0026gt;\n\n  \u0026lt;div class=\"stage\"\u0026gt;\n    \u0026lt;div class=\"stageLabel\" id=\"patternLabel\"\u0026gt;Pattern 1 · Single Flash\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"haloBadge\" id=\"haloBadge\"\u0026gt;\u0026lt;i class=\"dot\"\u0026gt;\u0026lt;\/i\u0026gt;\n      \u0026lt;b\u0026gt;360\u0026amp;deg; Halo\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;\u0026amp;nbsp;scene light \u0026amp;middot; runs with or without the flashers\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;svg id=\"barSvg\" viewBox=\"0 0 1000 240\" aria-label=\"Light bar simulation\"\u0026gt;\u0026lt;\/svg\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"tryHint\" id=\"tryHint\"\u0026gt;\u0026lt;span\u0026gt;\u0026lt;i class=\"dotLive\"\u0026gt;\u0026lt;\/i\u0026gt;Live demo \u0026amp;middot; try the controller buttons\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"lower\"\u0026gt;\n    \u0026lt;div class=\"card cardColors\" id=\"colorCard\"\u0026gt;\n      \u0026lt;h3\u0026gt;Select Colors\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"compactSel\" id=\"compactSel\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 1\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw1\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 2 (dual color)\u0026lt;\/span\u0026gt;\n          \u0026lt;button class=\"swapBtn\" id=\"swapBtn\" title=\"Swap Color 1 and Color 2\"\u0026gt;\u0026amp;#8646; Swap\u0026lt;\/button\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw2\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"hint\"\u0026gt;\n        Every LED module on the Low Pro can display \u0026lt;b\u0026gt;either\u0026lt;\/b\u0026gt; selected color:\n        pick two colors and each module switches between them.\n        The right-hand cluster runs the \u0026lt;b\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/b\u0026gt;, a Low Pro\n        exclusive: it floods the area around the vehicle with steady work light,\n        with or without the warning flashers running. Try the \u0026lt;b\u0026gt;White\u0026lt;\/b\u0026gt; button.\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"card cardCtl\"\u0026gt;\n      \u0026lt;h3\u0026gt;Controller · press the buttons\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"ctlWrap\"\u0026gt;\n        \u0026lt;svg id=\"ctl\" viewBox=\"0 0 560 300\" aria-label=\"Controller keypad\"\u0026gt;\u0026lt;\/svg\u0026gt;\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;footer\u0026gt;\n    \u0026lt;div\u0026gt;BLACK OAK LED · Navigate the Night.\u0026lt;\/div\u0026gt;\n    \u0026lt;div\u0026gt;Designed and engineered in Sarasota, Florida\u0026lt;\/div\u0026gt;\n  \u0026lt;\/footer\u0026gt;\n\u0026lt;\/div\u0026gt;\n\n\u0026lt;script\u0026gt;\n\"use strict\";\nconst LEDCOLORS = {\n  amber:{main:\"#ffb43a\", core:\"#ffe9b0\", glow:\"#ff9d00\", label:\"Amber\"},\n  white:{main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#cfe4ff\", label:\"White\"},\n  red:  {main:\"#ff2d23\", core:\"#ffb0a8\", glow:\"#ff1400\", label:\"Red\"},\n  blue: {main:\"#2a62ff\", core:\"#b8ccff\", glow:\"#0040ff\", label:\"Blue\"},\n  green:{main:\"#19d949\", core:\"#c2ffcf\", glow:\"#00c832\", label:\"Green\"}\n};\nconst HALO = {main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#dcebff\"};\n\nconst S = {\n  color1:\"amber\", color2:\"white\",\n  c1on:true, c2on:false,\n  zones:{front:true, back:true, left:true, right:true},\n  halo:{front:false, back:false, left:false, right:false},\n  pattern:1,\n  ta:null,\n  cruise:false, random:false, dim50:false, autoSensor:false,\n  indicatorOff:false, favorite:1,\n  randTimer:0, randPat:1\n};\n\nconst NS=\"http:\/\/www.w3.org\/2000\/svg\";\nconst bar = document.getElementById(\"barSvg\");\nconst modules = [];\n\nfunction el(name, attrs, parent){\n  const e=document.createElementNS(NS,name);\n  for(const k in attrs) e.setAttribute(k,attrs[k]);\n  if(parent) parent.appendChild(e);\n  return e;\n}\n\nfunction buildBar(){\n  const defs = el(\"defs\",{},bar);\n  const mkGlow=(id,dev)=\u0026gt;{\n    const f=el(\"filter\",{id, x:\"-80%\",y:\"-80%\",width:\"260%\",height:\"260%\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:dev, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  };\n  mkGlow(\"ledGlow\",4);\n  (()=\u0026gt;{\n    const f=el(\"filter\",{id:\"haloGlow\", filterUnits:\"userSpaceOnUse\",\n      x:\"-120\",y:\"-160\",width:\"1240\",height:\"560\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:11, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  })();\n\n  const G = el(\"g\",{},bar);\n  const haloLayer = el(\"g\",{opacity:\"0\"},G);\n  const sidePaths = {\n    front:\"M 150,62 L 850,62\",\n    back: \"M 150,178 L 850,178\",\n    left: \"M 150,62 L 75,95 L 75,145 L 150,178\",\n    right:\"M 850,62 L 925,95 L 925,145 L 850,178\"\n  };\n  const haloEls = {};\n  for(const z in sidePaths){\n    const g=el(\"g\",{filter:\"url(#haloGlow)\"},haloLayer);\n    [[10,.9],[26,.4],[52,.16],[88,.07]].forEach(([wd,op])=\u0026gt;{\n      el(\"path\",{d:sidePaths[z], stroke:\"#eef4ff\", \"stroke-width\":wd, \"stroke-opacity\":op,\n        fill:\"none\", \"stroke-linecap\":\"round\", \"stroke-linejoin\":\"round\"},g);\n    });\n    haloEls[z]=g;\n  }\n  for(const k in haloEls){ haloEls[k].setAttribute(\"visibility\",\"hidden\"); }\n  S._haloEls = haloEls; haloLayer.setAttribute(\"opacity\",\"1\");\n\n  const bodyPts = \"150,62 850,62 925,95 925,145 850,178 150,178 75,145 75,95\";\n  el(\"polygon\",{points:bodyPts, fill:\"#15181d\", stroke:\"#3a4149\", \"stroke-width\":3},G);\n  el(\"polygon\",{points:\"158,70 842,70 913,99 913,141 842,170 158,170 87,141 87,99\",\n    fill:\"#0e1114\", stroke:\"#22272e\",\"stroke-width\":1},G);\n  el(\"text\",{x:500,y:112,\"text-anchor\":\"middle\",fill:\"#c9d0d9\",\"font-size\":\"21\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"6\",\"font-family\":\"inherit\"},G).textContent=\"BLACK OAK\";\n  el(\"text\",{x:500,y:130,\"text-anchor\":\"middle\",fill:\"#4c545e\",\"font-size\":\"9\",\n    \"letter-spacing\":\"2\"},G).textContent=\"SAE W3-1 22\";\n  el(\"circle\",{cx:500,cy:148,r:5,fill:\"#20252b\",stroke:\"#3a4149\"},G);\n\n  const ledLayer = el(\"g\",{},G);\n  const N=12;\n  const w=53, h=12, gap=4.6;\n  const startX=155, span=690;\n  let order=0;\n  const addMod=(zone,x,y,rot,cx,cy)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x,y,width:w,height:h,rx:4, fill:\"#23282f\", stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:x-6,y:y-6,width:w+12,height:h+12,rx:9, fill:\"none\",opacity:0, filter:\"url(#ledGlow)\"},g);\n    modules.push({zone, lens, halo, idx:order++, px:x+w\/2});\n  };\n  const addRot=(zone,cx,cy,len,rot)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x:cx-len\/2,y:cy-h\/2,width:len,height:h,rx:4,\n      fill:\"#23282f\",stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:cx-len\/2-6,y:cy-h\/2-6,width:len+12,height:h+12,rx:9,\n      fill:\"none\",opacity:0,filter:\"url(#ledGlow)\"},g);\n    modules.push({zone,lens,halo,idx:modules.length,px:cx});\n  };\n  for(let i=0;i\u0026lt;N;i++){ const x=startX+i*(span\/N)+gap\/2; addMod(\"front\",x,52,0,0,0); }\n  addRot(\"right\",884,73,68,23.7);\n  addRot(\"right\",921,120,46,90);\n  addRot(\"right\",884,167,68,-23.7);\n  for(let i=N-1;i\u0026gt;=0;i--){ const x=startX+i*(span\/N)+gap\/2; addMod(\"back\",x,176,0,0,0); }\n  addRot(\"left\",116,167,68,23.7);\n  addRot(\"left\",79,120,46,90);\n  addRot(\"left\",116,73,68,-23.7);\n}\nbuildBar();\nconst NMOD = modules.length;\nconst frontMods = modules.filter(m=\u0026gt;m.zone===\"front\");\nconst backMods  = modules.filter(m=\u0026gt;m.zone===\"back\");\nconst halfSplit = m=\u0026gt;{\n  if(m.zone===\"left\") return \"L\";\n  if(m.zone===\"right\") return \"R\";\n  const list = m.zone===\"front\"?frontMods:backMods;\n  const pos = list.indexOf(m);\n  const leftSide = m.zone===\"front\" ? pos \u0026lt; list.length\/2 : pos \u0026gt;= list.length\/2;\n  return leftSide ? \"L\" : \"R\";\n};\nmodules.forEach(m=\u0026gt;m.side=halfSplit(m));\nconst PXMIN=Math.min(...modules.map(m=\u0026gt;m.px)), PXMAX=Math.max(...modules.map(m=\u0026gt;m.px));\n\nfunction pulse(t, cycle, n){\n  const ph = t % cycle;\n  if(n===1) return ph \u0026lt; 168;\n  const sub = cycle\u0026gt;=800 ? 84 : (n===2 ? 83 : 67);\n  const onw = cycle\u0026gt;=800 ? 67 : 50;\n  if(ph \u0026gt;= n*sub) return false;\n  return (ph % sub) \u0026lt; onw;\n}\nfunction burst(local, half, n){\n  const sub = Math.min(half\u0026gt;=400 ? 84 : 67, half\/n);\n  if(local \u0026gt;= n*sub) return false;\n  return (local % sub) \u0026lt; sub*.75;\n}\nconst PATTERNS = {\n  1:{name:\"Single Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,1)},\n  2:{name:\"Double Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,2)},\n  3:{name:\"Triple Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,3)},\n  4:{name:\"Quintuple Flash\", cyc:800, f:(t,c)=\u0026gt;pulse(t,c,5)},\n  5:{name:\"Slow Single Flash\",cyc:800,f:(t,c)=\u0026gt;(t%c) \u0026lt; 434},\n  6:{name:\"Two Adjacent Groups Alternate\", cyc:400, group:true},\n  7:{name:\"Left \/ Right 3-Flash Alternate\", cyc:400, lr:3},\n  8:{name:\"Left \/ Right 5-Flash Alternate\", cyc:800, lr:5},\n  9:{name:\"Counterclockwise Rotation\", cyc:1400, rot:-1},\n  10:{name:\"Clockwise Rotation\",       cyc:1400, rot:1},\n  11:{name:\"Left Steady + Right Quintuple\", cyc:800, steady:\"L\"},\n  12:{name:\"Right Steady + Left Quintuple\", cyc:800, steady:\"R\"}\n};\n\nfunction moduleState(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const single = (S.c1on?1:0)+(S.c2on\u0026amp;\u0026amp;S.color2?1:0)===1;\n  if(!dual \u0026amp;\u0026amp; !single) return null;\n  const cA = S.c1on ? S.color1 : S.color2;\n  const P = PATTERNS[S.pattern];\n  const cyc = P.cyc;\n\n  if(S.cruise){\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:.7};\n  }\n\n  let phaseColor = cA;\n  let tt = t;\n  if(dual){\n    const period = cyc*2;\n    const first = (t % period) \u0026lt; cyc;\n    phaseColor = first ? S.color1 : S.color2;\n    tt = t % cyc;\n  }\n\n  if(P.rot){\n    const pos = (t % cyc)\/cyc;\n    const head = P.rot===1 ? pos : 1-pos;\n    const center = head*NMOD;\n    let d = Math.abs(m.idx - center);\n    d = Math.min(d, NMOD-d);\n    if(d \u0026gt; 3.2) return null;\n    const col = dual ? (Math.floor(t\/cyc)%2? S.color2 : S.color1) : cA;\n    return {color:col, intensity: 1 - d\/3.6};\n  }\n  if(P.lr){\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    const mineFirst = m.side===\"L\";\n    if(firstHalf!==mineFirst) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, P.lr)) return null;\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:1};\n  }\n  if(P.group){\n    const g = Math.floor(m.idx\/2)%2;\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    if((g===0)!==firstHalf) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, 3)) return null;\n    const col = dual ? (g===0?S.color1:S.color2) : phaseColor;\n    return {color:col, intensity:1};\n  }\n  if(P.steady){\n    const steadySide = P.steady;\n    if(m.side===steadySide){\n      const col = dual ? S.color1 : cA;\n      return {color:col, intensity:.4};\n    }\n    if(!pulse(tt,cyc,5)) return null;\n    const col = dual ? S.color2 : cA;\n    return {color:col, intensity:1};\n  }\n  if(!P.f(tt,cyc)) return null;\n  if(dual){\n    if(S.pattern===2||S.pattern===3){\n      const flip = S.pattern===3;\n      const c1side = flip? \"R\":\"L\";\n      return {color: m.side===c1side? S.color1:S.color2, intensity:1};\n    }\n    return {color:phaseColor, intensity:1};\n  }\n  return {color:cA, intensity:1};\n}\n\nfunction taSweep(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const T = 1600;\n  const pass = Math.floor(t\/T) % (dual?2:1);\n  const col = dual ? (pass===0 ? S.color1 : S.color2)\n                   : (S.c1on ? S.color1 : (S.color2||S.color1));\n  const ph=(t%T)\/T;\n  let build;\n  if(ph\u0026lt;.65) build = ph\/.65;\n  else if(ph\u0026lt;.8) build = 1;\n  else return null;\n  const p = (m.px-PXMIN)\/(PXMAX-PXMIN);\n  const e = .002;\n  let on=false;\n  if(S.ta===\"right\")      on = p \u0026lt;= build+e;\n  else if(S.ta===\"left\")  on = (1-p) \u0026lt;= build+e;\n  else                    on = Math.abs(p-0.5) \u0026lt;= build*0.5+e;\n  return on? {color:col,intensity:1} : null;\n}\n\nlet lastPatternShown=-1;\nfunction render(t){\n  const dimMul = S.dim50? .45 : 1;\n  if(S.random \u0026amp;\u0026amp; t-S.randTimer\u0026gt;4000){\n    S.randTimer=t; S.pattern = 1+Math.floor(Math.random()*12); syncUI();\n  }\n  const warnOn = (S.c1on || (S.c2on\u0026amp;\u0026amp;S.color2));\n  for(const m of modules){\n    let st;\n    if(S.ta) st = taSweep(m,t);\n    else if(warnOn \u0026amp;\u0026amp; S.zones[m.zone]) st = moduleState(m,t);\n    else st = null;\n    m.cur = st;\n    if(st){ m.lastT=t; m.lastC=st.color; m.lastK=st.intensity; }\n    let drawC=null, drawK=0;\n    if(st){ drawC=st.color; drawK=st.intensity; }\n    else if(m.lastC \u0026amp;\u0026amp; (t-m.lastT)\u0026lt;70){ drawC=m.lastC; drawK=m.lastK*(1-(t-m.lastT)\/70)*.7; }\n    if(drawC){\n      const c=LEDCOLORS[drawC];\n      const k=drawK*dimMul;\n      m.lens.setAttribute(\"fill\", k\u0026gt;.55? c.core : c.main);\n      m.lens.setAttribute(\"stroke\", c.main);\n      m.halo.setAttribute(\"fill\", c.glow);\n      m.halo.setAttribute(\"opacity\", (0.85*k).toFixed(2));\n    }else{\n      m.lens.setAttribute(\"fill\",\"#23282f\");\n      m.lens.setAttribute(\"stroke\",\"#10131a\");\n      m.halo.setAttribute(\"opacity\",\"0\");\n    }\n  }\n  for(const z in S._haloEls){\n    S._haloEls[z].setAttribute(\"visibility\", S.halo[z]? \"visible\":\"hidden\");\n    S._haloEls[z].setAttribute(\"opacity\", (.85*dimMul).toFixed(2));\n  }\n  if(S._dots){\n    const RED=\"#ff2622\", OFF=\"#1c2026\";\n    for(const row of [\"front\",\"back\"]){\n      const src = row===\"front\"? frontMods : backMods.slice().reverse();\n      S._dots[row].forEach((dot,i)=\u0026gt;{\n        if(S.indicatorOff){ dot.setAttribute(\"fill\",OFF); return; }\n        const m = src[Math.round(i*(src.length-1)\/(S._dots[row].length-1))];\n        dot.setAttribute(\"fill\", m.cur? RED : OFF);\n      });\n    }\n    const zoneLit = z =\u0026gt; modules.some(m=\u0026gt;m.zone===z \u0026amp;\u0026amp; m.cur);\n    S._dotL.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"left\"))?  RED : OFF);\n    S._dotR.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"right\"))? RED : OFF);\n  }\n  if(S.pattern!==lastPatternShown){ lastPatternShown=S.pattern; updateLabel(); }\n  requestAnimationFrame(render);\n}\n\nfunction updateLabel(){\n  const P=PATTERNS[S.pattern];\n  document.getElementById(\"patternLabel\").textContent =\n    `Pattern ${S.pattern} · ${P.name}` + (S.cruise? \"  •  Cruise\":\"\") + (S.ta\u0026amp;\u0026amp;!tourActive? `  •  Traffic Advisor ${S.ta}`:\"\");\n  drawDisplay();\n}\n\nconst ORDER=[\"amber\",\"white\",\"red\",\"blue\",\"green\"];\nfunction buildCompact(){\n  const c=document.getElementById(\"compactSel\");\n  c.innerHTML=\"\";\n  const mk=(col)=\u0026gt;{ const d=document.createElement(\"div\"); d.className=\"sw\";\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label; return d; };\n  const lab=document.createElement(\"span\");\n  lab.style.cssText=\"font-size:12px;color:#8a94a3\";\n  lab.textContent=\"Your colors:\";\n  c.appendChild(lab);\n  c.appendChild(mk(S.color1));\n  if(S.color2){ c.appendChild(mk(S.color2)); }\n  const btn=document.createElement(\"button\");\n  btn.className=\"swapBtn\";\n  const card=document.getElementById(\"colorCard\");\n  btn.textContent = card.classList.contains(\"expanded\") ? \"Done\" : \"Change colors\";\n  btn.onclick=()=\u0026gt;{ card.classList.toggle(\"expanded\"); buildCompact(); };\n  c.appendChild(btn);\n}\nfunction buildSwatches(){\n  buildCompact();\n  const s1=document.getElementById(\"sw1\"), s2=document.getElementById(\"sw2\");\n  s1.innerHTML=\"\"; s2.innerHTML=\"\";\n  for(const c of ORDER){\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color1===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color1=c; if(S.color2===c) S.color2=null; buildSwatches(); };\n    s1.appendChild(d);\n  }\n  const none=document.createElement(\"div\");\n  none.className=\"sw none\"+(S.color2===null?\" sel\":\"\");\n  none.title=\"Single color\"; none.onclick=()=\u0026gt;{S.color2=null; buildSwatches();};\n  s2.appendChild(none);\n  for(const c of ORDER){\n    if(c===S.color1) continue;\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color2===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color2=c; S.c2on=true; buildSwatches(); syncUI(); };\n    s2.appendChild(d);\n  }\n}\ndocument.getElementById(\"swapBtn\").onclick=()=\u0026gt;{\n  if(!S.color2) return;\n  [S.color1,S.color2]=[S.color2,S.color1]; buildSwatches();\n};\n\nconst ctl=document.getElementById(\"ctl\");\nconst buttons={};\nfunction buildController(){\n  const defs=el(\"defs\",{},ctl);\n  const f=el(\"filter\",{id:\"btnGlow\",x:\"-40%\",y:\"-40%\",width:\"180%\",height:\"180%\"},defs);\n  el(\"feGaussianBlur\",{stdDeviation:\"2.2\",result:\"b\"},f);\n  const mg=el(\"feMerge\",{},f);\n  el(\"feMergeNode\",{in:\"b\"},mg); el(\"feMergeNode\",{in:\"SourceGraphic\"},mg);\n\n  el(\"rect\",{x:2,y:2,width:556,height:296,rx:26,fill:\"#17191d\",stroke:\"#000\",\"stroke-width\":2},ctl);\n  el(\"rect\",{x:12,y:12,width:536,height:276,rx:20,fill:\"none\",stroke:\"#262a31\",\"stroke-width\":1.5},ctl);\n\n  const btn=(key,label,x,y,shape,w,h,fs)=\u0026gt;{\n    const g=el(\"g\",{class:\"kb\",tabindex:\"0\",role:\"button\",\"aria-label\":label.replace(\"\\n\",\" \")},ctl);\n    if(shape===\"circle\") el(\"circle\",{class:\"face\",cx:x,cy:y,r:w},g);\n    else if(shape===\"rect\") el(\"rect\",{class:\"face\",x:x-w\/2,y:y-h\/2,width:w,height:h,rx:8},g);\n    else el(\"path\",{class:\"face\",d:shape},g);\n    const lines=label.split(\"\\n\");\n    lines.forEach((ln,i)=\u0026gt;{\n      const tv = el(\"text\",{x:x, y:y+(i-(lines.length-1)\/2)*11+4, \"font-size\":fs||10.5},g);\n      tv.textContent=ln;\n    });\n    g.addEventListener(\"click\",()=\u0026gt;press(key));\n    g.addEventListener(\"keydown\",e=\u0026gt;{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();press(key);}});\n    buttons[key]={g};\n    return g;\n  };\n\n  const lx=88, ly=88;\n  btn(\"z_front\",\"Front\", lx,   ly-38,\"circle\",19);\n  btn(\"z_left\",\"Left\",   lx-52,ly,   \"circle\",19);\n  btn(\"z_all\",\"ALL\",     lx,   ly,   \"circle\",19);\n  btn(\"z_right\",\"Right\", lx+52,ly,   \"circle\",19);\n  btn(\"z_back\",\"Back\",   lx,   ly+38,\"circle\",19);\n\n  el(\"rect\",{x:170,y:34,width:220,height:64,rx:12,fill:\"#0a0c0e\",stroke:\"#26292f\"},ctl);\n  el(\"text\",{x:280,y:71,\"text-anchor\":\"middle\",fill:\"#b9c1cc\",\"font-size\":\"15\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"4\"},ctl).textContent=\"BLACK OAK\";\n  S._dots={front:[],back:[]};\n  for(let i=0;i\u0026lt;8;i++){\n    S._dots.front.push(el(\"circle\",{cx:198+i*24,cy:46,r:3.4,fill:\"#1c2026\"},ctl));\n    S._dots.back.push( el(\"circle\",{cx:198+i*24,cy:86,r:3.4,fill:\"#1c2026\"},ctl));\n  }\n  S._dotL = el(\"circle\",{cx:182,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n  S._dotR = el(\"circle\",{cx:382,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n\n  btn(\"ta_left\",\"Left\", 210,126,\"M186 126 L214 108 L226 108 L226 144 L214 144 Z\",0,0,9.5);\n  btn(\"ta_both\",\"Traffic\\nAdvisor\",272,126,\"M232 108 L308 108 L318 126 L308 144 L232 144 L242 126 Z\",0,0,9.5);\n  btn(\"ta_right\",\"Right\",330,126,\"M314 108 L326 108 L354 126 L326 144 L314 144 Z\",0,0,9.5);\n\n  const rx=470, ry=88;\n  btn(\"h_front\",\"Front\", rx,   ry-38,\"circle\",19);\n  btn(\"h_left\",\"Left\",   rx-52,ry,   \"circle\",19);\n  btn(\"h_white\",\"White\", rx,   ry,   \"circle\",19);\n  btn(\"h_right\",\"Right\", rx+52,ry,   \"circle\",19);\n  btn(\"h_back\",\"Back\",   rx,   ry+38,\"circle\",19);\n  el(\"text\",{x:rx,y:ry+68,\"text-anchor\":\"middle\",fill:\"#7f8b9c\",\"font-size\":\"9.5\",\n    \"font-weight\":\"700\",\"letter-spacing\":\"1.5\"},ctl).textContent=\"360° HALO\";\n  el(\"text\",{x:rx,y:ry+79,\"text-anchor\":\"middle\",fill:\"#59636f\",\"font-size\":\"8\",\n    \"letter-spacing\":\"1\"},ctl).textContent=\"SCENE LIGHT\";\n\n  btn(\"c1\",\"Color 1\\nON\/OFF\",   62,190,\"rect\",66,40,9.5);\n  btn(\"c2\",\"Color 2\\nON\/OFF\",  136,190,\"rect\",66,40,9.5);\n  btn(\"dim\",\"50%\",              62,244,\"rect\",66,34);\n  btn(\"auto\",\"Auto\\nSensor\",   136,244,\"rect\",66,40,9.5);\n\n  btn(\"last\",\"Last\\nPattern\",  228,218,\"rect\",62,44,9.5);\n  btn(\"next\",\"Next\\nPattern\",  298,218,\"rect\",62,44,9.5);\n  S._ring = el(\"rect\",{x:262,y:190,width:72,height:56,rx:12,class:\"pulseRing\"},ctl);\n\n  btn(\"ind\",\"Indicator\",       412,190,\"rect\",74,36,9.5);\n  btn(\"cruise\",\"Cruise\\nLight\",496,190,\"rect\",70,40,9.5);\n  btn(\"rand\",\"Random\",         412,244,\"rect\",74,36,9.5);\n  btn(\"fav\",\"Favorite\\nPattern\",496,244,\"rect\",70,40,9.5);\n}\nbuildController();\n\nfunction drawDisplay(){}\n\nlet favHold=null;\nfunction press(key){\n  markInteract();\n  switch(key){\n    case \"z_all\":{\n      const allOn=S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right;\n      const v=!allOn; S.zones={front:v,back:v,left:v,right:v}; break;}\n    case \"z_front\": S.zones.front=!S.zones.front; break;\n    case \"z_back\":  S.zones.back=!S.zones.back; break;\n    case \"z_left\":  S.zones.left=!S.zones.left; break;\n    case \"z_right\": S.zones.right=!S.zones.right; break;\n    case \"h_white\":{\n      const allOn=S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right;\n      const v=!allOn; S.halo={front:v,back:v,left:v,right:v}; break;}\n    case \"h_front\": S.halo.front=!S.halo.front; break;\n    case \"h_back\":  S.halo.back=!S.halo.back; break;\n    case \"h_left\":  S.halo.left=!S.halo.left; break;\n    case \"h_right\": S.halo.right=!S.halo.right; break;\n    case \"c1\": S.c1on=!S.c1on; break;\n    case \"c2\": if(S.color2) S.c2on=!S.c2on; break;\n    case \"next\": S.pattern=S.pattern%12+1; S.cruise=false; S.random=false; break;\n    case \"last\": S.pattern=(S.pattern+10)%12+1; S.cruise=false; S.random=false; break;\n    case \"cruise\": S.cruise=!S.cruise; if(S.cruise){S.random=false;} break;\n    case \"rand\": S.random=!S.random; if(S.random){S.cruise=false; S.randTimer=0;} break;\n    case \"dim\": S.dim50=!S.dim50; break;\n    case \"auto\": S.autoSensor=!S.autoSensor; break;\n    case \"ind\": S.indicatorOff=!S.indicatorOff; break;\n    case \"ta_left\":  S.ta = S.ta===\"left\"? null:\"left\"; break;\n    case \"ta_right\": S.ta = S.ta===\"right\"? null:\"right\"; break;\n    case \"ta_both\":  S.ta = S.ta===\"both\"? null:\"both\"; break;\n    case \"fav\": S.pattern=S.favorite; S.cruise=false; S.random=false; break;\n  }\n  updateLabel(); syncUI();\n}\n(function(){\n  const g=buttons[\"fav\"].g;\n  let t0=0;\n  g.addEventListener(\"pointerdown\",()=\u0026gt;{ t0=Date.now();\n    favHold=setTimeout(()=\u0026gt;{ S.favorite=S.pattern; flash(g); },1200); });\n  const clear=()=\u0026gt;{ if(favHold){clearTimeout(favHold); favHold=null;} };\n  g.addEventListener(\"pointerup\",clear); g.addEventListener(\"pointerleave\",clear);\n  function flash(el){ el.classList.add(\"lit\"); setTimeout(()=\u0026gt;syncUI(),400); }\n})();\n\nfunction syncUI(){\n  const setLit=(k,v)=\u0026gt;buttons[k].g.classList.toggle(\"lit\",!!v);\n  setLit(\"z_front\",S.zones.front); setLit(\"z_back\",S.zones.back);\n  setLit(\"z_left\",S.zones.left);   setLit(\"z_right\",S.zones.right);\n  setLit(\"z_all\",S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right);\n  setLit(\"h_front\",S.halo.front); setLit(\"h_back\",S.halo.back);\n  setLit(\"h_left\",S.halo.left);   setLit(\"h_right\",S.halo.right);\n  setLit(\"h_white\",S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right);\n  setLit(\"c1\",S.c1on); setLit(\"c2\",S.c2on\u0026amp;\u0026amp;!!S.color2);\n  setLit(\"cruise\",S.cruise); setLit(\"rand\",S.random);\n  setLit(\"dim\",S.dim50); setLit(\"auto\",S.autoSensor); setLit(\"ind\",S.indicatorOff);\n  setLit(\"ta_left\",S.ta===\"left\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_right\",S.ta===\"right\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_both\",S.ta===\"both\"\u0026amp;\u0026amp;!tourActive);\n  const haloOn = S.halo.front||S.halo.back||S.halo.left||S.halo.right;\n  document.getElementById(\"haloBadge\").style.display = haloOn? \"flex\":\"none\";\n  drawDisplay();\n}\n\n\/* default everywhere: dual-color amber\/white, steady burn; the attract sweep provides motion *\/\nS.c2on=true; S.cruise=true;\nS.interacted=false;\nlet tourActive=false, tourTimer=null, idleTimer=null;\nbuildSwatches(); syncUI(); updateLabel();\nrequestAnimationFrame(render);\n\n\/* ATTRACT MODE *\/\nfunction markInteract(){\n  if(S.interacted) return;\n  S.interacted=true;\n  if(tourActive){ tourActive=false; S.ta=null; }\n  clearTimeout(tourTimer); clearTimeout(idleTimer);\n  const h=document.getElementById(\"tryHint\");\n  if(h){ h.style.transition=\"opacity .5s\"; h.style.opacity=\"0\"; setTimeout(()=\u0026gt;h.remove(),600); }\n  if(S._ring) S._ring.remove();\n}\nfunction attractSweep(passes){\n  if(S.interacted || tourActive) return;\n  tourActive=true; S.ta=\"both\";\n  tourTimer=setTimeout(()=\u0026gt;{\n    if(tourActive){ tourActive=false; S.ta=null; }\n    scheduleIdle();\n  }, 1600*passes+400);\n}\nfunction scheduleIdle(){\n  if(S.interacted) return;\n  clearTimeout(idleTimer);\n  idleTimer=setTimeout(()=\u0026gt;attractSweep(1), 18000);\n}\ndocument.addEventListener(\"pointerdown\",e=\u0026gt;{\n  if(e.target.closest \u0026amp;\u0026amp; e.target.closest(\".sw,.swapBtn,.kb\")) markInteract();\n},true);\n(function(){\n  let fired=false;\n  const start=()=\u0026gt;{ if(!fired){ fired=true; setTimeout(()=\u0026gt;attractSweep(2), 600); } };\n  if(window.IntersectionObserver){\n    new IntersectionObserver((es,obs)=\u0026gt;{\n      if(es.some(e=\u0026gt;e.isIntersecting)){ start(); obs.disconnect(); }\n    },{threshold:.5}).observe(document.querySelector(\".stage\"));\n  } else start();\n})();\n\n(function(){\n  const embedded = (window!==parent);\n  if(embedded){\n    document.querySelector(\"header\").style.display=\"none\";\n    document.querySelector(\"footer\").style.display=\"none\";\n    if(window.innerWidth\u0026gt;840) document.querySelector(\".wrap\").style.padding=\"10px 12px 14px\";\n  }\n  const report=()=\u0026gt;{ try{\n    parent.postMessage({type:\"lowpro-player-height\",\n      height: document.querySelector(\".wrap\").scrollHeight+8}, \"*\");\n  }catch(e){} };\n  if(window.ResizeObserver) new ResizeObserver(report).observe(document.querySelector(\".wrap\"));\n  window.addEventListener(\"load\",report); window.addEventListener(\"pageshow\",report);\n  setTimeout(report,400); setTimeout(report,1500);\n  let n=0; const iv=setInterval(()=\u0026gt;{ report(); if(++n\u0026gt;10) clearInterval(iv); },1200);\n})();\n\u0026lt;\/script\u0026gt;\n\u0026lt;\/body\u0026gt;\n\u0026lt;\/html\u0026gt;\n'\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.lowpro-frame{height:700px}\n@media(max-width:840px){\n  .lowpro-cta{display:none}\n  .lowpro-frame{height:760px}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\nwindow.addEventListener(\"message\",function(e){\n  if(e.data \u0026\u0026 e.data.type===\"lowpro-player-height\"){\n    var f=document.getElementById(\"lowpro-player-frame\");\n    if(f \u0026\u0026 e.data.height\u003e200) f.style.height=(e.data.height+4)+\"px\";\n  }\n});\n\u003c\/script\u003e\n\u003cdiv style=\"height:28px;\"\u003e \u003c\/div\u003e\n\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cstrong\u003eBuilt for emergency response teams and public safety professionals, this high-intensity LED warning light bar delivers uncompromising performance in a sleek, durable design.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp data-end=\"806\" data-start=\"530\"\u003eThe Black Oak Low Pro Emergency Series Light Bar is engineered for maximum visibility, reliability, and user control. With ultra-bright LEDs, multiple flash patterns, and a rugged housing, this bar ensures your presence is known in any emergency situation—day or night, rain or shine.\u003c\/p\u003e\n\u003cp data-end=\"806\" data-start=\"530\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"1177\" data-start=\"808\"\u003eBuilt to withstand the demands of high-speed response, off-road utility, or work site visibility, this low-profile bar features a streamlined, aerodynamic frame and a universal mounting system to ensure easy installation on any vehicle. Whether you're outfitting a patrol car, fire unit, or utility truck, this bar delivers dependable performance where it matters most.\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- TRUST STRIP --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2026-07-21_at_9.31.14_AM.png?v=1784641940\" alt=\"SAE J845 Certified, SAE J595 Class 1, IP69K Waterproof, Lifetime Warranty, -40F to +145F Rated, 50,000 Hour LEDs\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003c!-- SIZE SELECTOR --\u003e\n\u003cdiv style=\"margin:4px 0 2px;\"\u003e\n\u003cp style=\"margin:0 0 8px;font-weight:600;font-size:15px;\"\u003eAvailable sizes:\u003c\/p\u003e\n\u003ca href=\"\/products\/11-mini-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e11\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-17-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e17\"\u003c\/a\u003e\n\u003cspan style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:8px 14px;border-radius:8px;margin:0 6px 8px 0;font-size:15px;\"\u003e30\"\u003c\/span\u003e\n\u003ca href=\"\/products\/new-43-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e43\"\u003c\/a\u003e\n\u003ca href=\"\/products\/low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e49\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-55-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e55\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-61-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e61\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-68-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e68\"\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003eLifetime Warranty\u003c\/li\u003e\n\u003cli\u003eSAE J845 Class 1 Certified\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e360° visibility with dual-color ultra-bright LEDs\u003c\/li\u003e\n\u003cli\u003eSlim Low Profile design\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 flash patterns with memory recall\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eRugged, waterproof housing (IP69K rated)\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eIntegrated controller with pattern cycling, cruise mode, and cut-off\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eLow Pro Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eController\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eWiring\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStandard Feet\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eJamb Brackets\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- COMPLIANCE SECTION --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCompliance \u0026amp; Certifications\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cstrong\u003eMeets the standards your department requires.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"3\"\u003eCertification \u0026amp; Compliance\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J845\u003c\/th\u003e\n\u003ctd\u003e360° warning lamp photometric standard for light bars and beacons\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J595 Class 1\u003c\/th\u003e\n\u003ctd\u003eHighest intensity class — approved for primary emergency vehicles (police, fire, EMS)\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIP69K\u003c\/th\u003e\n\u003ctd\u003eSealed against high-pressure washdown, salt, dust, and submersion\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eRated\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Range\u003c\/th\u003e\n\u003ctd\u003eExtreme-climate duty\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e-40°F to +145°F\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDuty Life\u003c\/th\u003e\n\u003ctd\u003eContinuous-duty LED modules\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e50,000 hours\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"font-size:13px;color:#666;\"\u003e\u003cem\u003eWarning-equipment regulations vary by state and jurisdiction. Verify color and mounting requirements with your local authority. Spec sheet PDF and certification documentation available on request for procurement offices.\u003c\/em\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- Image + Text Alternating Section --\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003c!-- Image Right - Text Left Section --\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/255283_7703341170749_330031d5_da20_475f_887e_f1269d2ad248_1.jpg?v=1763495670\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eEmergency Bar + Work Light\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eGet full 360° white-light illumination at the touch of a button. Perfect for reverse lighting, scene lighting, or any situation where you need powerful all-around visibility. It’s a true dual-purpose feature you won’t find on most emergency bars — and it comes standard on every one of ours.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_SAE_graphics.jpg?v=1758041472\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eBuilt Tough for Any Environment\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eIP69K-rated waterproof housing and reinforced aluminum construction stand up to rain, snow, mud, and dust—ideal for police, fire, tow, or off-road response vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/DSC00223.jpg?v=1754512314\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e Full 360° Warning Visibility\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003ePacked with high-output dual-color LEDs and side modules, this bar delivers all-angle visibility—ensuring you're seen from every direction, even in chaotic scenes or inclement weather.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE_-_Driver_Side_Angle.jpg?v=1761226316\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSlim, Low-Profile Design\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEngineered to minimize wind resistance and visual bulk, this light bar features a sleek, aerodynamic frame that hugs your vehicle’s roofline. The low-profile housing not only enhances fuel efficiency but also delivers a clean, professional look without compromising brightness or performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cp\u003e\u003cvideo width=\"100%\" height=\"auto\" muted=\"\" autoplay=\"autoplay\" loop=\"loop\" playsinline=\"\" controls=\"controls\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4ec9ce848f5e4d2d8083da9daf4dbe78.mp4\" type=\"video\/mp4\"\u003e\n    Your browser does not support the video tag.\n  \u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 Flash Patterns with Smart Memory\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from up to 45 user-selectable flash patterns to fit any scenario. Built-in memory recall stores your last used setting for consistent deployment every time.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_-_Sliding_Feet.gif?v=1758730578\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSliding Feet\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eOur sliding feet mounts are designed to give you maximum flexibility during installation. By allowing the brackets to slide along the base of the light bar, you can easily adjust spacing to match a wide variety of mounting points. This ensures a precise fit whether you’re working with factory holes, custom setups, or uneven surfaces.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HERO BANNER --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/d8j0ntlcm91z4.cloudfront.net\/user_3G9nKxyaQsdrPdDsxWr4EcSl5FL\/hf_20260715_201038_0803a0cd-07a6-4508-9c7a-50d0230a94e3.png\" alt=\"Built to Code. Backed for Life. SAE J845 and J595 Class 1 compliant, IP69K sealed, lifetime warranty\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- FLEET BLOCK --\u003e\n\u003cdiv style=\"padding:8px 0;margin:0 0 8px;\"\u003e\n\u003ch3 style=\"margin:0 0 8px;\"\u003eOutfitting a Fleet?\u003c\/h3\u003e\n\u003cp style=\"margin:0 0 14px;font-size:16px;line-height:1.6;\"\u003eVolume pricing on 5+ units, department POs accepted, W-9 on file, and spec sheets ready for your procurement office. From single patrol vehicles to full county fleets.\u003c\/p\u003e\n\u003ca href=\"\/pages\/fleet-pricing\" style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:12px 22px;border-radius:8px;text-decoration:none;\"\u003eRequest Fleet Pricing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Dimension --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_All_Dimensions.jpg?v=1762971573\" alt=\"\"\u003e\u003c\/p\u003e\n\u003c!-- Specs --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003c!-- Specs Chart --\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th, table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n  }\n  table.spec-table th {\n    background-color: #f7f7f7;\n    font-weight: 600;\n    width: 30%;\n  }\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n  table.spec-table thead th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e264\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e20\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Quantity\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eWide Angle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertificate\u003c\/th\u003e\n\u003ctd\u003eSAE J845 \u0026amp; SAE J595 Class 1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Single Color\u003c\/th\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Dual Color\u003c\/th\u003e\n\u003ctd\u003e45 (15 Color 1 \/ 15 Color 2 \/ 15 Combo)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Length From Light\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHole Size for Controller\u003c\/th\u003e\n\u003ctd\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting Bolt Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e9.4 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU\u003c\/th\u003e\n\u003ctd\u003eLP-E30-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- FAQ --\u003e\n\u003ch5\u003eDimensions\u003c\/h5\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_30_Inch_Dimensions.jpg?v=1762972188\" alt=\"\"\u003e\u003c\/p\u003e\n\u003ch5\u003eVideo\u003c\/h5\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cvideo style=\"max-width: 100%; height: auto;\" controls=\"controls\" playsinline=\"\" loop=\"loop\" muted=\"\" autoplay=\"autoplay\"\u003e\n  \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f7ecf4030812467bbb46b165c21da48e.mov\"\u003e\n  Your browser does not support the video tag.\n\u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp\u003e\u003cstrong\u003eWhat voltage and control systems does this light bar support?\u003c\/strong\u003e\u003cbr\u003eThis light bar operates on a 12 V–24 V DC power system and can be used with either push-button or wireless controllers. It’s compatible with standard vehicle electrical systems, making installation straightforward for both fleet and individual applications.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow durable is this light bar in harsh environments?\u003c\/strong\u003e\u003cbr\u003eThe Low Pro Emergency Light Bar is built with a rugged aluminum housing, sealed to an IP69K rating and tested to resist corrosion, vibration, and high-pressure water ingress. It’s designed for demanding conditions—whether roadside, rescue, or commercial use—so you can rely on consistent performance when it counts.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat beam patterns and flash modes are included?\u003c\/strong\u003e\u003cbr\u003eUp to 45 flash patterns are built into the unit—including warning, hazard, and full-output flasher modes—with memory recall so your last setting is retained even after power loss. You’ll also find low-profile steady-burn mode useful for scene lighting and standby operations.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs the light bar legal for use on public roads and emergency vehicles?\u003c\/strong\u003e\u003cbr\u003eYes. The unit meets SAE J595 Class 1 and other relevant emergency lighting standards for warning applications. However, regulations vary by jurisdiction, so we recommend checking your local laws before installation to ensure compliance with mounting height, color, and flash pattern requirements.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat’s covered by the warranty?\u003c\/strong\u003e\u003cbr\u003eOur industry-leading lifetime warranty covers manufacturing defects, driver failures, and LED module performance. It does not cover damage caused by improper installation, extreme overuse beyond defined duty cycles, or wiring issues. For full warranty terms, please refer to our Warranty \u0026amp; Returns page.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Amber \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975067709,"sku":"LP-E30-A","price":615.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312002621,"sku":"LP-E30-A","price":641.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732312035389,"sku":"LP-E30-A","price":645.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ Standard 12' Lead","offer_id":42583975100477,"sku":"LP-E30-A","price":655.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732312068157,"sku":"LP-E30-A","price":681.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732312100925,"sku":"LP-E30-A","price":685.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975133245,"sku":"LP-E30-A","price":640.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732312133693,"sku":"LP-E30-A","price":666.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732312166461,"sku":"LP-E30-A","price":670.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ Standard 12' Lead","offer_id":42590516871229,"sku":"LP-E30-AB","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312199229,"sku":"LP-E30-AB","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732312231997,"sku":"LP-E30-AB","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ Standard 12' Lead","offer_id":42590516903997,"sku":"LP-E30-AB","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732312264765,"sku":"LP-E30-AB","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732312297533,"sku":"LP-E30-AB","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ Standard 12' Lead","offer_id":42590516936765,"sku":"LP-E30-AB","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732312330301,"sku":"LP-E30-AB","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732312363069,"sku":"LP-E30-AB","price":700.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ Standard 12' Lead","offer_id":42996860321853,"sku":"LP-E30-AG","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42996860354621,"sku":"LP-E30-AG","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42996860387389,"sku":"LP-E30-AG","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ Standard 12' Lead","offer_id":42996860420157,"sku":"LP-E30-AG","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42996860452925,"sku":"LP-E30-AG","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42996860485693,"sku":"LP-E30-AG","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ Standard 12' Lead","offer_id":42996860518461,"sku":"LP-E30-AG","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42996860551229,"sku":"LP-E30-AG","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42996860583997,"sku":"LP-E30-AG","price":700.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ Standard 12' Lead","offer_id":43482683211837,"sku":"LP-E30-AR","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":43482683244605,"sku":"LP-E30-AR","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":43482683277373,"sku":"LP-E30-AR","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ Standard 12' Lead","offer_id":43482683310141,"sku":"LP-E30-AR","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":43482683342909,"sku":"LP-E30-AR","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":43482683375677,"sku":"LP-E30-AR","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ Standard 12' Lead","offer_id":43482683408445,"sku":"LP-E30-AR","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":43482683441213,"sku":"LP-E30-AR","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":43482683473981,"sku":"LP-E30-AR","price":700.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975166013,"sku":"LP-E30-AW","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312395837,"sku":"LP-E30-AW","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732312428605,"sku":"LP-E30-AW","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ Standard 12' Lead","offer_id":42583975198781,"sku":"LP-E30-AW","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732312461373,"sku":"LP-E30-AW","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732312494141,"sku":"LP-E30-AW","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975231549,"sku":"LP-E30-AW","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732312526909,"sku":"LP-E30-AW","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732312559677,"sku":"LP-E30-AW","price":700.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975264317,"sku":"LP-E30-B","price":615.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312592445,"sku":"LP-E30-B","price":641.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732312625213,"sku":"LP-E30-B","price":645.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ Standard 12' Lead","offer_id":42583975297085,"sku":"LP-E30-B","price":655.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732312657981,"sku":"LP-E30-B","price":681.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732312690749,"sku":"LP-E30-B","price":685.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975329853,"sku":"LP-E30-B","price":640.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732312723517,"sku":"LP-E30-B","price":666.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732312756285,"sku":"LP-E30-B","price":670.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975460925,"sku":"LP-E30-R","price":615.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312789053,"sku":"LP-E30-R","price":641.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732312821821,"sku":"LP-E30-R","price":645.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ Standard 12' Lead","offer_id":42583975493693,"sku":"LP-E30-R","price":655.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732312854589,"sku":"LP-E30-R","price":681.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732312887357,"sku":"LP-E30-R","price":685.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975526461,"sku":"LP-E30-R","price":640.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732312920125,"sku":"LP-E30-R","price":666.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732312952893,"sku":"LP-E30-R","price":670.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975362621,"sku":"LP-E30-RB","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732312985661,"sku":"LP-E30-RB","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732313018429,"sku":"LP-E30-RB","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ Standard 12' Lead","offer_id":42583975395389,"sku":"LP-E30-RB","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732313051197,"sku":"LP-E30-RB","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732313083965,"sku":"LP-E30-RB","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975428157,"sku":"LP-E30-RB","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732313116733,"sku":"LP-E30-RB","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732313149501,"sku":"LP-E30-RB","price":700.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975559229,"sku":"LP-E30-RW","price":645.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732313182269,"sku":"LP-E30-RW","price":671.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732313215037,"sku":"LP-E30-RW","price":675.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ Standard 12' Lead","offer_id":42583975591997,"sku":"LP-E30-RW","price":685.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732313247805,"sku":"LP-E30-RW","price":711.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732313280573,"sku":"LP-E30-RW","price":715.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975624765,"sku":"LP-E30-RW","price":670.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732313313341,"sku":"LP-E30-RW","price":696.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732313346109,"sku":"LP-E30-RW","price":700.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ Standard 12' Lead","offer_id":42583975657533,"sku":"LP-E30-W","price":615.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 22' Total (12’ + 10' Extension)","offer_id":42732313378877,"sku":"LP-E30-W","price":641.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 27' Total (12’ + 15' Extension)","offer_id":42732313411645,"sku":"LP-E30-W","price":645.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ Standard 12' Lead","offer_id":42583975690301,"sku":"LP-E30-W","price":655.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ 22' Total (12’ + 10' Extension)","offer_id":42732313444413,"sku":"LP-E30-W","price":681.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ 27' Total (12’ + 15' Extension)","offer_id":42732313477181,"sku":"LP-E30-W","price":685.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ Standard 12' Lead","offer_id":42583975723069,"sku":"LP-E30-W","price":640.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 22' Total (12’ + 10' Extension)","offer_id":42732313509949,"sku":"LP-E30-W","price":666.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 27' Total (12’ + 15' Extension)","offer_id":42732313542717,"sku":"LP-E30-W","price":670.57,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE30_Angled.png?v=1759159738"},{"product_id":"new-43-low-pro-emergency-light-bar","title":"43\" Low Pro Emergency Light Bar","description":"\u003c!-- LOWPRO INTERACTIVE PLAYER (test embed) --\u003e\n\u003cdiv id=\"lowpro-player-block\" style=\"margin:0 0 26px;\"\u003e\n\u003cdiv class=\"lowpro-cta\"\u003e\n\u003ch2 style=\"margin:0 0 4px;font-size:24px;line-height:1.25;\"\u003eTake the Controls: Try This Light Bar Live\u003c\/h2\u003e\n\u003cp style=\"margin:0 0 12px;font-size:15px;line-height:1.5;\"\u003ePick your colors, run the flash patterns, sweep the traffic advisor, and switch on the 360° Halo scene light, exactly like the controller in the box. Every module on a dual-color bar can show either color.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ciframe id=\"lowpro-player-frame\" class=\"lowpro-frame\" title=\"Low Pro Emergency Bar interactive demo\" style=\"width:100%;border:0;display:block;border-radius:16px;background:#0a0c0f;\" srcdoc='\u0026lt;!DOCTYPE html\u0026gt;\n\u0026lt;html lang=\"en\"\u0026gt;\n\u0026lt;head\u0026gt;\n\u0026lt;meta charset=\"UTF-8\"\u0026gt;\n\u0026lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u0026gt;\n\u0026lt;title\u0026gt;Black Oak LED · Low Pro Emergency Bar Interactive Demo\u0026lt;\/title\u0026gt;\n\u0026lt;style\u0026gt;\n  :root{\n    --bg:#0a0c0f; --panel:#111418; --panel2:#161a20; --edge:#242a33;\n    --txt:#e8ecf2; --dim:#8a94a3; --white-led:#F4F8FF; --navy:#0B1B2B; --accent:#C8892A;\n  }\n  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent}\n  html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);\n    font-family:\"Segoe UI\",system-ui,-apple-system,Roboto,Arial,sans-serif;}\n  .wrap{max-width:1100px;margin:0 auto;padding:14px 16px 20px;}\n  header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}\n  .brand{font-weight:800;letter-spacing:.18em;font-size:19px;white-space:nowrap}\n  .brand span{color:var(--dim);font-weight:600}\n  .sub{color:var(--dim);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}\n  .stage{background:radial-gradient(ellipse at 50% 30%, #14181e 0%, #0b0d11 70%);\n    border:1px solid var(--edge);border-radius:14px;padding:6px 10px 2px;position:relative;overflow:hidden}\n  .stage svg{display:block;width:100%;height:auto}\n  .stageLabel{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.14em;\n    color:#5b6470;text-transform:uppercase}\n  .haloBadge{position:absolute;top:10px;right:14px;display:none;align-items:center;gap:8px;\n    font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#dfe9f7;\n    background:rgba(70,90,120,.22);border:1px solid rgba(190,215,255,.35);\n    border-radius:999px;padding:5px 12px 5px 9px;backdrop-filter:blur(2px)}\n  .haloBadge .dot{width:8px;height:8px;border-radius:50%;background:#F4F8FF;\n    box-shadow:0 0 8px 2px rgba(220,235,255,.9);flex:none}\n  .haloBadge b{font-weight:700;color:#fff}\n  .haloBadge span{color:#9fb0c6;text-transform:none;letter-spacing:.02em}\n  @media(max-width:700px){.haloBadge span{display:none}}\n  .lower{display:grid;grid-template-columns:270px 1fr;gap:14px;margin-top:14px;align-items:stretch}\n  .compactSel{display:none}\n  @media(max-width:840px){\n    .stage{padding:8px 8px 4px}\n    .stageLabel{position:static;font-size:10px;margin:0 0 6px}\n    .haloBadge{position:static;font-size:10px;padding:4px 9px;margin:0 0 6px;width:max-content}\n    .wrap{padding:6px 6px 10px !important}\n    .lower{grid-template-columns:1fr;gap:10px}\n    .cardCtl{order:1}\n    .cardColors{order:2}\n    .cardColors .cRow,.cardColors .hint{display:none}\n    .cardColors.expanded .cRow{display:block}\n    .compactSel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    .compactSel .sw{cursor:default}\n    .compactSel .sw:hover{transform:none}\n  }\n  .card{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:14px}\n  .card h3{margin:0 0 10px;font-size:11.5px;letter-spacing:.16em;color:var(--dim);\n    text-transform:uppercase;font-weight:700}\n  .cRow{margin-bottom:12px}\n  .cRow .lbl{font-size:12px;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}\n  .swatches{display:flex;gap:8px;flex-wrap:wrap}\n  .sw{width:38px;height:30px;border-radius:7px;border:2px solid #2c333d;cursor:pointer;\n    position:relative;transition:transform .08s}\n  .sw:hover{transform:translateY(-1px)}\n  .sw.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25),0 0 14px rgba(255,255,255,.15)}\n  .sw.none{background:repeating-linear-gradient(45deg,#1a1f26 0 6px,#12161b 6px 12px)}\n  .sw.none::after{content:\"OFF\";position:absolute;inset:0;display:flex;align-items:center;\n    justify-content:center;font-size:9px;color:#6b7480;font-weight:700;letter-spacing:.05em}\n  .swapBtn{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);border-radius:7px;\n    font-size:11px;padding:4px 9px;cursor:pointer;letter-spacing:.06em}\n  .swapBtn:hover{border-color:#4a5462}\n  .hint{font-size:11.5px;line-height:1.5;color:#6d7684;border-top:1px solid var(--edge);\n    padding-top:10px;margin-top:2px}\n  .hint b{color:#9aa4b2;font-weight:600}\n  .ctlWrap{display:flex;justify-content:center}\n  .ctlWrap svg{width:100%;max-width:560px;height:auto}\n  .kb{cursor:pointer}\n  .kb rect.face,.kb circle.face,.kb path.face{fill:#20242b;stroke:#0c0e11;stroke-width:1.5;transition:fill .1s}\n  .kb:hover rect.face,.kb:hover circle.face,.kb:hover path.face{fill:#2e3641}\n  @keyframes ringPulse{0%,100%{stroke-opacity:.9}50%{stroke-opacity:.12}}\n  .pulseRing{fill:none;stroke:#ffb43a;stroke-width:2.5;animation:ringPulse 1.8s ease-in-out infinite;pointer-events:none}\n  @keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}\n  .tryHint{display:flex;justify-content:center;margin:10px 0 0}\n  .tryHint span{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;\n    text-transform:uppercase;color:#ffcf7d;border:1px solid rgba(255,180,58,.45);border-radius:999px;\n    padding:6px 14px;animation:hintPulse 2.4s ease-in-out infinite;background:rgba(255,180,58,.07)}\n  .tryHint .dotLive{width:7px;height:7px;border-radius:50%;background:#ffb43a;\n    box-shadow:0 0 7px 2px rgba(255,180,58,.7);flex:none}\n  .kb.lit rect.face,.kb.lit circle.face,.kb.lit path.face{fill:#dfe7f5}\n  .kb.lit text{fill:#20242b;font-weight:600}\n  .kb:active rect.face,.kb:active circle.face,.kb:active path.face{fill:#aab6c9}\n  .kb.lit{filter:url(#btnGlow)}\n  .kb text{fill:#c7cdd6;font-size:11px;text-anchor:middle;pointer-events:none;user-select:none}\n  footer{margin-top:12px;color:#59626e;font-size:11px;letter-spacing:.04em;\n    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}\n  footer a{color:#7d8794;text-decoration:none}\n\u0026lt;\/style\u0026gt;\n\u0026lt;\/head\u0026gt;\n\u0026lt;body\u0026gt;\n\u0026lt;div class=\"wrap\"\u0026gt;\n  \u0026lt;header\u0026gt;\n    \u0026lt;div class=\"brand\"\u0026gt;BLACK OAK \u0026lt;span\u0026gt;LED\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"sub\"\u0026gt;Low Pro\u0026amp;trade; Emergency Bar · Interactive Demo \u0026amp;bull; 43\u0026amp;Prime;\u0026lt;\/div\u0026gt;\n  \u0026lt;\/header\u0026gt;\n\n  \u0026lt;div class=\"stage\"\u0026gt;\n    \u0026lt;div class=\"stageLabel\" id=\"patternLabel\"\u0026gt;Pattern 1 · Single Flash\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"haloBadge\" id=\"haloBadge\"\u0026gt;\u0026lt;i class=\"dot\"\u0026gt;\u0026lt;\/i\u0026gt;\n      \u0026lt;b\u0026gt;360\u0026amp;deg; Halo\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;\u0026amp;nbsp;scene light \u0026amp;middot; runs with or without the flashers\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;svg id=\"barSvg\" viewBox=\"0 0 1000 240\" aria-label=\"Light bar simulation\"\u0026gt;\u0026lt;\/svg\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"tryHint\" id=\"tryHint\"\u0026gt;\u0026lt;span\u0026gt;\u0026lt;i class=\"dotLive\"\u0026gt;\u0026lt;\/i\u0026gt;Live demo \u0026amp;middot; try the controller buttons\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\"lower\"\u0026gt;\n    \u0026lt;div class=\"card cardColors\" id=\"colorCard\"\u0026gt;\n      \u0026lt;h3\u0026gt;Select Colors\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"compactSel\" id=\"compactSel\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 1\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw1\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"cRow\"\u0026gt;\n        \u0026lt;div class=\"lbl\"\u0026gt;\u0026lt;span\u0026gt;Color 2 (dual color)\u0026lt;\/span\u0026gt;\n          \u0026lt;button class=\"swapBtn\" id=\"swapBtn\" title=\"Swap Color 1 and Color 2\"\u0026gt;\u0026amp;#8646; Swap\u0026lt;\/button\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\"swatches\" id=\"sw2\"\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\"hint\"\u0026gt;\n        Every LED module on the Low Pro can display \u0026lt;b\u0026gt;either\u0026lt;\/b\u0026gt; selected color:\n        pick two colors and each module switches between them.\n        The right-hand cluster runs the \u0026lt;b\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/b\u0026gt;, a Low Pro\n        exclusive: it floods the area around the vehicle with steady work light,\n        with or without the warning flashers running. Try the \u0026lt;b\u0026gt;White\u0026lt;\/b\u0026gt; button.\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\"card cardCtl\"\u0026gt;\n      \u0026lt;h3\u0026gt;Controller · press the buttons\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\"ctlWrap\"\u0026gt;\n        \u0026lt;svg id=\"ctl\" viewBox=\"0 0 560 300\" aria-label=\"Controller keypad\"\u0026gt;\u0026lt;\/svg\u0026gt;\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;footer\u0026gt;\n    \u0026lt;div\u0026gt;BLACK OAK LED · Navigate the Night.\u0026lt;\/div\u0026gt;\n    \u0026lt;div\u0026gt;Designed and engineered in Sarasota, Florida\u0026lt;\/div\u0026gt;\n  \u0026lt;\/footer\u0026gt;\n\u0026lt;\/div\u0026gt;\n\n\u0026lt;script\u0026gt;\n\"use strict\";\nconst LEDCOLORS = {\n  amber:{main:\"#ffb43a\", core:\"#ffe9b0\", glow:\"#ff9d00\", label:\"Amber\"},\n  white:{main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#cfe4ff\", label:\"White\"},\n  red:  {main:\"#ff2d23\", core:\"#ffb0a8\", glow:\"#ff1400\", label:\"Red\"},\n  blue: {main:\"#2a62ff\", core:\"#b8ccff\", glow:\"#0040ff\", label:\"Blue\"},\n  green:{main:\"#19d949\", core:\"#c2ffcf\", glow:\"#00c832\", label:\"Green\"}\n};\nconst HALO = {main:\"#F4F8FF\", core:\"#ffffff\", glow:\"#dcebff\"};\n\nconst S = {\n  color1:\"amber\", color2:\"white\",\n  c1on:true, c2on:false,\n  zones:{front:true, back:true, left:true, right:true},\n  halo:{front:false, back:false, left:false, right:false},\n  pattern:1,\n  ta:null,\n  cruise:false, random:false, dim50:false, autoSensor:false,\n  indicatorOff:false, favorite:1,\n  randTimer:0, randPat:1\n};\n\nconst NS=\"http:\/\/www.w3.org\/2000\/svg\";\nconst bar = document.getElementById(\"barSvg\");\nconst modules = [];\n\nfunction el(name, attrs, parent){\n  const e=document.createElementNS(NS,name);\n  for(const k in attrs) e.setAttribute(k,attrs[k]);\n  if(parent) parent.appendChild(e);\n  return e;\n}\n\nfunction buildBar(){\n  const defs = el(\"defs\",{},bar);\n  const mkGlow=(id,dev)=\u0026gt;{\n    const f=el(\"filter\",{id, x:\"-80%\",y:\"-80%\",width:\"260%\",height:\"260%\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:dev, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  };\n  mkGlow(\"ledGlow\",4);\n  (()=\u0026gt;{\n    const f=el(\"filter\",{id:\"haloGlow\", filterUnits:\"userSpaceOnUse\",\n      x:\"-120\",y:\"-160\",width:\"1240\",height:\"560\"},defs);\n    el(\"feGaussianBlur\",{stdDeviation:11, result:\"b\"},f);\n    const m=el(\"feMerge\",{},f);\n    el(\"feMergeNode\",{in:\"b\"},m); el(\"feMergeNode\",{in:\"SourceGraphic\"},m);\n  })();\n\n  const G = el(\"g\",{},bar);\n  const haloLayer = el(\"g\",{opacity:\"0\"},G);\n  const sidePaths = {\n    front:\"M 150,62 L 850,62\",\n    back: \"M 150,178 L 850,178\",\n    left: \"M 150,62 L 75,95 L 75,145 L 150,178\",\n    right:\"M 850,62 L 925,95 L 925,145 L 850,178\"\n  };\n  const haloEls = {};\n  for(const z in sidePaths){\n    const g=el(\"g\",{filter:\"url(#haloGlow)\"},haloLayer);\n    [[10,.9],[26,.4],[52,.16],[88,.07]].forEach(([wd,op])=\u0026gt;{\n      el(\"path\",{d:sidePaths[z], stroke:\"#eef4ff\", \"stroke-width\":wd, \"stroke-opacity\":op,\n        fill:\"none\", \"stroke-linecap\":\"round\", \"stroke-linejoin\":\"round\"},g);\n    });\n    haloEls[z]=g;\n  }\n  for(const k in haloEls){ haloEls[k].setAttribute(\"visibility\",\"hidden\"); }\n  S._haloEls = haloEls; haloLayer.setAttribute(\"opacity\",\"1\");\n\n  const bodyPts = \"150,62 850,62 925,95 925,145 850,178 150,178 75,145 75,95\";\n  el(\"polygon\",{points:bodyPts, fill:\"#15181d\", stroke:\"#3a4149\", \"stroke-width\":3},G);\n  el(\"polygon\",{points:\"158,70 842,70 913,99 913,141 842,170 158,170 87,141 87,99\",\n    fill:\"#0e1114\", stroke:\"#22272e\",\"stroke-width\":1},G);\n  el(\"text\",{x:500,y:112,\"text-anchor\":\"middle\",fill:\"#c9d0d9\",\"font-size\":\"21\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"6\",\"font-family\":\"inherit\"},G).textContent=\"BLACK OAK\";\n  el(\"text\",{x:500,y:130,\"text-anchor\":\"middle\",fill:\"#4c545e\",\"font-size\":\"9\",\n    \"letter-spacing\":\"2\"},G).textContent=\"SAE W3-1 22\";\n  el(\"circle\",{cx:500,cy:148,r:5,fill:\"#20252b\",stroke:\"#3a4149\"},G);\n\n  const ledLayer = el(\"g\",{},G);\n  const N=12;\n  const w=53, h=12, gap=4.6;\n  const startX=155, span=690;\n  let order=0;\n  const addMod=(zone,x,y,rot,cx,cy)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x,y,width:w,height:h,rx:4, fill:\"#23282f\", stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:x-6,y:y-6,width:w+12,height:h+12,rx:9, fill:\"none\",opacity:0, filter:\"url(#ledGlow)\"},g);\n    modules.push({zone, lens, halo, idx:order++, px:x+w\/2});\n  };\n  const addRot=(zone,cx,cy,len,rot)=\u0026gt;{\n    const g=el(\"g\",{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\"rect\",{x:cx-len\/2,y:cy-h\/2,width:len,height:h,rx:4,\n      fill:\"#23282f\",stroke:\"#10131a\",\"stroke-width\":1},g);\n    const halo=el(\"rect\",{x:cx-len\/2-6,y:cy-h\/2-6,width:len+12,height:h+12,rx:9,\n      fill:\"none\",opacity:0,filter:\"url(#ledGlow)\"},g);\n    modules.push({zone,lens,halo,idx:modules.length,px:cx});\n  };\n  for(let i=0;i\u0026lt;N;i++){ const x=startX+i*(span\/N)+gap\/2; addMod(\"front\",x,52,0,0,0); }\n  addRot(\"right\",884,73,68,23.7);\n  addRot(\"right\",921,120,46,90);\n  addRot(\"right\",884,167,68,-23.7);\n  for(let i=N-1;i\u0026gt;=0;i--){ const x=startX+i*(span\/N)+gap\/2; addMod(\"back\",x,176,0,0,0); }\n  addRot(\"left\",116,167,68,23.7);\n  addRot(\"left\",79,120,46,90);\n  addRot(\"left\",116,73,68,-23.7);\n}\nbuildBar();\nconst NMOD = modules.length;\nconst frontMods = modules.filter(m=\u0026gt;m.zone===\"front\");\nconst backMods  = modules.filter(m=\u0026gt;m.zone===\"back\");\nconst halfSplit = m=\u0026gt;{\n  if(m.zone===\"left\") return \"L\";\n  if(m.zone===\"right\") return \"R\";\n  const list = m.zone===\"front\"?frontMods:backMods;\n  const pos = list.indexOf(m);\n  const leftSide = m.zone===\"front\" ? pos \u0026lt; list.length\/2 : pos \u0026gt;= list.length\/2;\n  return leftSide ? \"L\" : \"R\";\n};\nmodules.forEach(m=\u0026gt;m.side=halfSplit(m));\nconst PXMIN=Math.min(...modules.map(m=\u0026gt;m.px)), PXMAX=Math.max(...modules.map(m=\u0026gt;m.px));\n\nfunction pulse(t, cycle, n){\n  const ph = t % cycle;\n  if(n===1) return ph \u0026lt; 168;\n  const sub = cycle\u0026gt;=800 ? 84 : (n===2 ? 83 : 67);\n  const onw = cycle\u0026gt;=800 ? 67 : 50;\n  if(ph \u0026gt;= n*sub) return false;\n  return (ph % sub) \u0026lt; onw;\n}\nfunction burst(local, half, n){\n  const sub = Math.min(half\u0026gt;=400 ? 84 : 67, half\/n);\n  if(local \u0026gt;= n*sub) return false;\n  return (local % sub) \u0026lt; sub*.75;\n}\nconst PATTERNS = {\n  1:{name:\"Single Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,1)},\n  2:{name:\"Double Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,2)},\n  3:{name:\"Triple Flash\",    cyc:400, f:(t,c)=\u0026gt;pulse(t,c,3)},\n  4:{name:\"Quintuple Flash\", cyc:800, f:(t,c)=\u0026gt;pulse(t,c,5)},\n  5:{name:\"Slow Single Flash\",cyc:800,f:(t,c)=\u0026gt;(t%c) \u0026lt; 434},\n  6:{name:\"Two Adjacent Groups Alternate\", cyc:400, group:true},\n  7:{name:\"Left \/ Right 3-Flash Alternate\", cyc:400, lr:3},\n  8:{name:\"Left \/ Right 5-Flash Alternate\", cyc:800, lr:5},\n  9:{name:\"Counterclockwise Rotation\", cyc:1400, rot:-1},\n  10:{name:\"Clockwise Rotation\",       cyc:1400, rot:1},\n  11:{name:\"Left Steady + Right Quintuple\", cyc:800, steady:\"L\"},\n  12:{name:\"Right Steady + Left Quintuple\", cyc:800, steady:\"R\"}\n};\n\nfunction moduleState(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const single = (S.c1on?1:0)+(S.c2on\u0026amp;\u0026amp;S.color2?1:0)===1;\n  if(!dual \u0026amp;\u0026amp; !single) return null;\n  const cA = S.c1on ? S.color1 : S.color2;\n  const P = PATTERNS[S.pattern];\n  const cyc = P.cyc;\n\n  if(S.cruise){\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:.7};\n  }\n\n  let phaseColor = cA;\n  let tt = t;\n  if(dual){\n    const period = cyc*2;\n    const first = (t % period) \u0026lt; cyc;\n    phaseColor = first ? S.color1 : S.color2;\n    tt = t % cyc;\n  }\n\n  if(P.rot){\n    const pos = (t % cyc)\/cyc;\n    const head = P.rot===1 ? pos : 1-pos;\n    const center = head*NMOD;\n    let d = Math.abs(m.idx - center);\n    d = Math.min(d, NMOD-d);\n    if(d \u0026gt; 3.2) return null;\n    const col = dual ? (Math.floor(t\/cyc)%2? S.color2 : S.color1) : cA;\n    return {color:col, intensity: 1 - d\/3.6};\n  }\n  if(P.lr){\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    const mineFirst = m.side===\"L\";\n    if(firstHalf!==mineFirst) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, P.lr)) return null;\n    const col = dual ? (m.side===\"L\"?S.color1:S.color2) : cA;\n    return {color:col, intensity:1};\n  }\n  if(P.group){\n    const g = Math.floor(m.idx\/2)%2;\n    const firstHalf = (tt % cyc) \u0026lt; cyc\/2;\n    if((g===0)!==firstHalf) return null;\n    const local = tt % (cyc\/2);\n    if(!burst(local, cyc\/2, 3)) return null;\n    const col = dual ? (g===0?S.color1:S.color2) : phaseColor;\n    return {color:col, intensity:1};\n  }\n  if(P.steady){\n    const steadySide = P.steady;\n    if(m.side===steadySide){\n      const col = dual ? S.color1 : cA;\n      return {color:col, intensity:.4};\n    }\n    if(!pulse(tt,cyc,5)) return null;\n    const col = dual ? S.color2 : cA;\n    return {color:col, intensity:1};\n  }\n  if(!P.f(tt,cyc)) return null;\n  if(dual){\n    if(S.pattern===2||S.pattern===3){\n      const flip = S.pattern===3;\n      const c1side = flip? \"R\":\"L\";\n      return {color: m.side===c1side? S.color1:S.color2, intensity:1};\n    }\n    return {color:phaseColor, intensity:1};\n  }\n  return {color:cA, intensity:1};\n}\n\nfunction taSweep(m, t){\n  const dual = S.c1on \u0026amp;\u0026amp; S.c2on \u0026amp;\u0026amp; S.color2;\n  const T = 1600;\n  const pass = Math.floor(t\/T) % (dual?2:1);\n  const col = dual ? (pass===0 ? S.color1 : S.color2)\n                   : (S.c1on ? S.color1 : (S.color2||S.color1));\n  const ph=(t%T)\/T;\n  let build;\n  if(ph\u0026lt;.65) build = ph\/.65;\n  else if(ph\u0026lt;.8) build = 1;\n  else return null;\n  const p = (m.px-PXMIN)\/(PXMAX-PXMIN);\n  const e = .002;\n  let on=false;\n  if(S.ta===\"right\")      on = p \u0026lt;= build+e;\n  else if(S.ta===\"left\")  on = (1-p) \u0026lt;= build+e;\n  else                    on = Math.abs(p-0.5) \u0026lt;= build*0.5+e;\n  return on? {color:col,intensity:1} : null;\n}\n\nlet lastPatternShown=-1;\nfunction render(t){\n  const dimMul = S.dim50? .45 : 1;\n  if(S.random \u0026amp;\u0026amp; t-S.randTimer\u0026gt;4000){\n    S.randTimer=t; S.pattern = 1+Math.floor(Math.random()*12); syncUI();\n  }\n  const warnOn = (S.c1on || (S.c2on\u0026amp;\u0026amp;S.color2));\n  for(const m of modules){\n    let st;\n    if(S.ta) st = taSweep(m,t);\n    else if(warnOn \u0026amp;\u0026amp; S.zones[m.zone]) st = moduleState(m,t);\n    else st = null;\n    m.cur = st;\n    if(st){ m.lastT=t; m.lastC=st.color; m.lastK=st.intensity; }\n    let drawC=null, drawK=0;\n    if(st){ drawC=st.color; drawK=st.intensity; }\n    else if(m.lastC \u0026amp;\u0026amp; (t-m.lastT)\u0026lt;70){ drawC=m.lastC; drawK=m.lastK*(1-(t-m.lastT)\/70)*.7; }\n    if(drawC){\n      const c=LEDCOLORS[drawC];\n      const k=drawK*dimMul;\n      m.lens.setAttribute(\"fill\", k\u0026gt;.55? c.core : c.main);\n      m.lens.setAttribute(\"stroke\", c.main);\n      m.halo.setAttribute(\"fill\", c.glow);\n      m.halo.setAttribute(\"opacity\", (0.85*k).toFixed(2));\n    }else{\n      m.lens.setAttribute(\"fill\",\"#23282f\");\n      m.lens.setAttribute(\"stroke\",\"#10131a\");\n      m.halo.setAttribute(\"opacity\",\"0\");\n    }\n  }\n  for(const z in S._haloEls){\n    S._haloEls[z].setAttribute(\"visibility\", S.halo[z]? \"visible\":\"hidden\");\n    S._haloEls[z].setAttribute(\"opacity\", (.85*dimMul).toFixed(2));\n  }\n  if(S._dots){\n    const RED=\"#ff2622\", OFF=\"#1c2026\";\n    for(const row of [\"front\",\"back\"]){\n      const src = row===\"front\"? frontMods : backMods.slice().reverse();\n      S._dots[row].forEach((dot,i)=\u0026gt;{\n        if(S.indicatorOff){ dot.setAttribute(\"fill\",OFF); return; }\n        const m = src[Math.round(i*(src.length-1)\/(S._dots[row].length-1))];\n        dot.setAttribute(\"fill\", m.cur? RED : OFF);\n      });\n    }\n    const zoneLit = z =\u0026gt; modules.some(m=\u0026gt;m.zone===z \u0026amp;\u0026amp; m.cur);\n    S._dotL.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"left\"))?  RED : OFF);\n    S._dotR.setAttribute(\"fill\", (!S.indicatorOff \u0026amp;\u0026amp; zoneLit(\"right\"))? RED : OFF);\n  }\n  if(S.pattern!==lastPatternShown){ lastPatternShown=S.pattern; updateLabel(); }\n  requestAnimationFrame(render);\n}\n\nfunction updateLabel(){\n  const P=PATTERNS[S.pattern];\n  document.getElementById(\"patternLabel\").textContent =\n    `Pattern ${S.pattern} · ${P.name}` + (S.cruise? \"  •  Cruise\":\"\") + (S.ta\u0026amp;\u0026amp;!tourActive? `  •  Traffic Advisor ${S.ta}`:\"\");\n  drawDisplay();\n}\n\nconst ORDER=[\"amber\",\"white\",\"red\",\"blue\",\"green\"];\nfunction buildCompact(){\n  const c=document.getElementById(\"compactSel\");\n  c.innerHTML=\"\";\n  const mk=(col)=\u0026gt;{ const d=document.createElement(\"div\"); d.className=\"sw\";\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label; return d; };\n  const lab=document.createElement(\"span\");\n  lab.style.cssText=\"font-size:12px;color:#8a94a3\";\n  lab.textContent=\"Your colors:\";\n  c.appendChild(lab);\n  c.appendChild(mk(S.color1));\n  if(S.color2){ c.appendChild(mk(S.color2)); }\n  const btn=document.createElement(\"button\");\n  btn.className=\"swapBtn\";\n  const card=document.getElementById(\"colorCard\");\n  btn.textContent = card.classList.contains(\"expanded\") ? \"Done\" : \"Change colors\";\n  btn.onclick=()=\u0026gt;{ card.classList.toggle(\"expanded\"); buildCompact(); };\n  c.appendChild(btn);\n}\nfunction buildSwatches(){\n  buildCompact();\n  const s1=document.getElementById(\"sw1\"), s2=document.getElementById(\"sw2\");\n  s1.innerHTML=\"\"; s2.innerHTML=\"\";\n  for(const c of ORDER){\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color1===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color1=c; if(S.color2===c) S.color2=null; buildSwatches(); };\n    s1.appendChild(d);\n  }\n  const none=document.createElement(\"div\");\n  none.className=\"sw none\"+(S.color2===null?\" sel\":\"\");\n  none.title=\"Single color\"; none.onclick=()=\u0026gt;{S.color2=null; buildSwatches();};\n  s2.appendChild(none);\n  for(const c of ORDER){\n    if(c===S.color1) continue;\n    const d=document.createElement(\"div\");\n    d.className=\"sw\"+(S.color2===c?\" sel\":\"\");\n    d.style.background=LEDCOLORS[c].main; d.title=LEDCOLORS[c].label;\n    d.onclick=()=\u0026gt;{ S.color2=c; S.c2on=true; buildSwatches(); syncUI(); };\n    s2.appendChild(d);\n  }\n}\ndocument.getElementById(\"swapBtn\").onclick=()=\u0026gt;{\n  if(!S.color2) return;\n  [S.color1,S.color2]=[S.color2,S.color1]; buildSwatches();\n};\n\nconst ctl=document.getElementById(\"ctl\");\nconst buttons={};\nfunction buildController(){\n  const defs=el(\"defs\",{},ctl);\n  const f=el(\"filter\",{id:\"btnGlow\",x:\"-40%\",y:\"-40%\",width:\"180%\",height:\"180%\"},defs);\n  el(\"feGaussianBlur\",{stdDeviation:\"2.2\",result:\"b\"},f);\n  const mg=el(\"feMerge\",{},f);\n  el(\"feMergeNode\",{in:\"b\"},mg); el(\"feMergeNode\",{in:\"SourceGraphic\"},mg);\n\n  el(\"rect\",{x:2,y:2,width:556,height:296,rx:26,fill:\"#17191d\",stroke:\"#000\",\"stroke-width\":2},ctl);\n  el(\"rect\",{x:12,y:12,width:536,height:276,rx:20,fill:\"none\",stroke:\"#262a31\",\"stroke-width\":1.5},ctl);\n\n  const btn=(key,label,x,y,shape,w,h,fs)=\u0026gt;{\n    const g=el(\"g\",{class:\"kb\",tabindex:\"0\",role:\"button\",\"aria-label\":label.replace(\"\\n\",\" \")},ctl);\n    if(shape===\"circle\") el(\"circle\",{class:\"face\",cx:x,cy:y,r:w},g);\n    else if(shape===\"rect\") el(\"rect\",{class:\"face\",x:x-w\/2,y:y-h\/2,width:w,height:h,rx:8},g);\n    else el(\"path\",{class:\"face\",d:shape},g);\n    const lines=label.split(\"\\n\");\n    lines.forEach((ln,i)=\u0026gt;{\n      const tv = el(\"text\",{x:x, y:y+(i-(lines.length-1)\/2)*11+4, \"font-size\":fs||10.5},g);\n      tv.textContent=ln;\n    });\n    g.addEventListener(\"click\",()=\u0026gt;press(key));\n    g.addEventListener(\"keydown\",e=\u0026gt;{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();press(key);}});\n    buttons[key]={g};\n    return g;\n  };\n\n  const lx=88, ly=88;\n  btn(\"z_front\",\"Front\", lx,   ly-38,\"circle\",19);\n  btn(\"z_left\",\"Left\",   lx-52,ly,   \"circle\",19);\n  btn(\"z_all\",\"ALL\",     lx,   ly,   \"circle\",19);\n  btn(\"z_right\",\"Right\", lx+52,ly,   \"circle\",19);\n  btn(\"z_back\",\"Back\",   lx,   ly+38,\"circle\",19);\n\n  el(\"rect\",{x:170,y:34,width:220,height:64,rx:12,fill:\"#0a0c0e\",stroke:\"#26292f\"},ctl);\n  el(\"text\",{x:280,y:71,\"text-anchor\":\"middle\",fill:\"#b9c1cc\",\"font-size\":\"15\",\n    \"font-weight\":\"800\",\"letter-spacing\":\"4\"},ctl).textContent=\"BLACK OAK\";\n  S._dots={front:[],back:[]};\n  for(let i=0;i\u0026lt;8;i++){\n    S._dots.front.push(el(\"circle\",{cx:198+i*24,cy:46,r:3.4,fill:\"#1c2026\"},ctl));\n    S._dots.back.push( el(\"circle\",{cx:198+i*24,cy:86,r:3.4,fill:\"#1c2026\"},ctl));\n  }\n  S._dotL = el(\"circle\",{cx:182,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n  S._dotR = el(\"circle\",{cx:382,cy:66,r:3.4,fill:\"#1c2026\"},ctl);\n\n  btn(\"ta_left\",\"Left\", 210,126,\"M186 126 L214 108 L226 108 L226 144 L214 144 Z\",0,0,9.5);\n  btn(\"ta_both\",\"Traffic\\nAdvisor\",272,126,\"M232 108 L308 108 L318 126 L308 144 L232 144 L242 126 Z\",0,0,9.5);\n  btn(\"ta_right\",\"Right\",330,126,\"M314 108 L326 108 L354 126 L326 144 L314 144 Z\",0,0,9.5);\n\n  const rx=470, ry=88;\n  btn(\"h_front\",\"Front\", rx,   ry-38,\"circle\",19);\n  btn(\"h_left\",\"Left\",   rx-52,ry,   \"circle\",19);\n  btn(\"h_white\",\"White\", rx,   ry,   \"circle\",19);\n  btn(\"h_right\",\"Right\", rx+52,ry,   \"circle\",19);\n  btn(\"h_back\",\"Back\",   rx,   ry+38,\"circle\",19);\n  el(\"text\",{x:rx,y:ry+68,\"text-anchor\":\"middle\",fill:\"#7f8b9c\",\"font-size\":\"9.5\",\n    \"font-weight\":\"700\",\"letter-spacing\":\"1.5\"},ctl).textContent=\"360° HALO\";\n  el(\"text\",{x:rx,y:ry+79,\"text-anchor\":\"middle\",fill:\"#59636f\",\"font-size\":\"8\",\n    \"letter-spacing\":\"1\"},ctl).textContent=\"SCENE LIGHT\";\n\n  btn(\"c1\",\"Color 1\\nON\/OFF\",   62,190,\"rect\",66,40,9.5);\n  btn(\"c2\",\"Color 2\\nON\/OFF\",  136,190,\"rect\",66,40,9.5);\n  btn(\"dim\",\"50%\",              62,244,\"rect\",66,34);\n  btn(\"auto\",\"Auto\\nSensor\",   136,244,\"rect\",66,40,9.5);\n\n  btn(\"last\",\"Last\\nPattern\",  228,218,\"rect\",62,44,9.5);\n  btn(\"next\",\"Next\\nPattern\",  298,218,\"rect\",62,44,9.5);\n  S._ring = el(\"rect\",{x:262,y:190,width:72,height:56,rx:12,class:\"pulseRing\"},ctl);\n\n  btn(\"ind\",\"Indicator\",       412,190,\"rect\",74,36,9.5);\n  btn(\"cruise\",\"Cruise\\nLight\",496,190,\"rect\",70,40,9.5);\n  btn(\"rand\",\"Random\",         412,244,\"rect\",74,36,9.5);\n  btn(\"fav\",\"Favorite\\nPattern\",496,244,\"rect\",70,40,9.5);\n}\nbuildController();\n\nfunction drawDisplay(){}\n\nlet favHold=null;\nfunction press(key){\n  markInteract();\n  switch(key){\n    case \"z_all\":{\n      const allOn=S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right;\n      const v=!allOn; S.zones={front:v,back:v,left:v,right:v}; break;}\n    case \"z_front\": S.zones.front=!S.zones.front; break;\n    case \"z_back\":  S.zones.back=!S.zones.back; break;\n    case \"z_left\":  S.zones.left=!S.zones.left; break;\n    case \"z_right\": S.zones.right=!S.zones.right; break;\n    case \"h_white\":{\n      const allOn=S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right;\n      const v=!allOn; S.halo={front:v,back:v,left:v,right:v}; break;}\n    case \"h_front\": S.halo.front=!S.halo.front; break;\n    case \"h_back\":  S.halo.back=!S.halo.back; break;\n    case \"h_left\":  S.halo.left=!S.halo.left; break;\n    case \"h_right\": S.halo.right=!S.halo.right; break;\n    case \"c1\": S.c1on=!S.c1on; break;\n    case \"c2\": if(S.color2) S.c2on=!S.c2on; break;\n    case \"next\": S.pattern=S.pattern%12+1; S.cruise=false; S.random=false; break;\n    case \"last\": S.pattern=(S.pattern+10)%12+1; S.cruise=false; S.random=false; break;\n    case \"cruise\": S.cruise=!S.cruise; if(S.cruise){S.random=false;} break;\n    case \"rand\": S.random=!S.random; if(S.random){S.cruise=false; S.randTimer=0;} break;\n    case \"dim\": S.dim50=!S.dim50; break;\n    case \"auto\": S.autoSensor=!S.autoSensor; break;\n    case \"ind\": S.indicatorOff=!S.indicatorOff; break;\n    case \"ta_left\":  S.ta = S.ta===\"left\"? null:\"left\"; break;\n    case \"ta_right\": S.ta = S.ta===\"right\"? null:\"right\"; break;\n    case \"ta_both\":  S.ta = S.ta===\"both\"? null:\"both\"; break;\n    case \"fav\": S.pattern=S.favorite; S.cruise=false; S.random=false; break;\n  }\n  updateLabel(); syncUI();\n}\n(function(){\n  const g=buttons[\"fav\"].g;\n  let t0=0;\n  g.addEventListener(\"pointerdown\",()=\u0026gt;{ t0=Date.now();\n    favHold=setTimeout(()=\u0026gt;{ S.favorite=S.pattern; flash(g); },1200); });\n  const clear=()=\u0026gt;{ if(favHold){clearTimeout(favHold); favHold=null;} };\n  g.addEventListener(\"pointerup\",clear); g.addEventListener(\"pointerleave\",clear);\n  function flash(el){ el.classList.add(\"lit\"); setTimeout(()=\u0026gt;syncUI(),400); }\n})();\n\nfunction syncUI(){\n  const setLit=(k,v)=\u0026gt;buttons[k].g.classList.toggle(\"lit\",!!v);\n  setLit(\"z_front\",S.zones.front); setLit(\"z_back\",S.zones.back);\n  setLit(\"z_left\",S.zones.left);   setLit(\"z_right\",S.zones.right);\n  setLit(\"z_all\",S.zones.front\u0026amp;\u0026amp;S.zones.back\u0026amp;\u0026amp;S.zones.left\u0026amp;\u0026amp;S.zones.right);\n  setLit(\"h_front\",S.halo.front); setLit(\"h_back\",S.halo.back);\n  setLit(\"h_left\",S.halo.left);   setLit(\"h_right\",S.halo.right);\n  setLit(\"h_white\",S.halo.front\u0026amp;\u0026amp;S.halo.back\u0026amp;\u0026amp;S.halo.left\u0026amp;\u0026amp;S.halo.right);\n  setLit(\"c1\",S.c1on); setLit(\"c2\",S.c2on\u0026amp;\u0026amp;!!S.color2);\n  setLit(\"cruise\",S.cruise); setLit(\"rand\",S.random);\n  setLit(\"dim\",S.dim50); setLit(\"auto\",S.autoSensor); setLit(\"ind\",S.indicatorOff);\n  setLit(\"ta_left\",S.ta===\"left\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_right\",S.ta===\"right\"\u0026amp;\u0026amp;!tourActive); setLit(\"ta_both\",S.ta===\"both\"\u0026amp;\u0026amp;!tourActive);\n  const haloOn = S.halo.front||S.halo.back||S.halo.left||S.halo.right;\n  document.getElementById(\"haloBadge\").style.display = haloOn? \"flex\":\"none\";\n  drawDisplay();\n}\n\n\/* default everywhere: dual-color amber\/white, steady burn; the attract sweep provides motion *\/\nS.c2on=true; S.cruise=true;\nS.interacted=false;\nlet tourActive=false, tourTimer=null, idleTimer=null;\nbuildSwatches(); syncUI(); updateLabel();\nrequestAnimationFrame(render);\n\n\/* ATTRACT MODE *\/\nfunction markInteract(){\n  if(S.interacted) return;\n  S.interacted=true;\n  if(tourActive){ tourActive=false; S.ta=null; }\n  clearTimeout(tourTimer); clearTimeout(idleTimer);\n  const h=document.getElementById(\"tryHint\");\n  if(h){ h.style.transition=\"opacity .5s\"; h.style.opacity=\"0\"; setTimeout(()=\u0026gt;h.remove(),600); }\n  if(S._ring) S._ring.remove();\n}\nfunction attractSweep(passes){\n  if(S.interacted || tourActive) return;\n  tourActive=true; S.ta=\"both\";\n  tourTimer=setTimeout(()=\u0026gt;{\n    if(tourActive){ tourActive=false; S.ta=null; }\n    scheduleIdle();\n  }, 1600*passes+400);\n}\nfunction scheduleIdle(){\n  if(S.interacted) return;\n  clearTimeout(idleTimer);\n  idleTimer=setTimeout(()=\u0026gt;attractSweep(1), 18000);\n}\ndocument.addEventListener(\"pointerdown\",e=\u0026gt;{\n  if(e.target.closest \u0026amp;\u0026amp; e.target.closest(\".sw,.swapBtn,.kb\")) markInteract();\n},true);\n(function(){\n  let fired=false;\n  const start=()=\u0026gt;{ if(!fired){ fired=true; setTimeout(()=\u0026gt;attractSweep(2), 600); } };\n  if(window.IntersectionObserver){\n    new IntersectionObserver((es,obs)=\u0026gt;{\n      if(es.some(e=\u0026gt;e.isIntersecting)){ start(); obs.disconnect(); }\n    },{threshold:.5}).observe(document.querySelector(\".stage\"));\n  } else start();\n})();\n\n(function(){\n  const embedded = (window!==parent);\n  if(embedded){\n    document.querySelector(\"header\").style.display=\"none\";\n    document.querySelector(\"footer\").style.display=\"none\";\n    if(window.innerWidth\u0026gt;840) document.querySelector(\".wrap\").style.padding=\"10px 12px 14px\";\n  }\n  const report=()=\u0026gt;{ try{\n    parent.postMessage({type:\"lowpro-player-height\",\n      height: document.querySelector(\".wrap\").scrollHeight+8}, \"*\");\n  }catch(e){} };\n  if(window.ResizeObserver) new ResizeObserver(report).observe(document.querySelector(\".wrap\"));\n  window.addEventListener(\"load\",report); window.addEventListener(\"pageshow\",report);\n  setTimeout(report,400); setTimeout(report,1500);\n  let n=0; const iv=setInterval(()=\u0026gt;{ report(); if(++n\u0026gt;10) clearInterval(iv); },1200);\n})();\n\u0026lt;\/script\u0026gt;\n\u0026lt;\/body\u0026gt;\n\u0026lt;\/html\u0026gt;\n'\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.lowpro-frame{height:700px}\n@media(max-width:840px){\n  .lowpro-cta{display:none}\n  .lowpro-frame{height:760px}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\nwindow.addEventListener(\"message\",function(e){\n  if(e.data \u0026\u0026 e.data.type===\"lowpro-player-height\"){\n    var f=document.getElementById(\"lowpro-player-frame\");\n    if(f \u0026\u0026 e.data.height\u003e200) f.style.height=(e.data.height+4)+\"px\";\n  }\n});\n\u003c\/script\u003e\n\u003cdiv style=\"height:28px;\"\u003e \u003c\/div\u003e\n\u003cp\u003e\u003c!-- Intro Section --\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cstrong\u003eBuilt for emergency response teams and public safety professionals, this high-intensity LED warning light bar delivers uncompromising performance in a sleek, durable design.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp data-end=\"806\" data-start=\"530\"\u003eThe Black Oak Low Pro Emergency Series Light Bar is engineered for maximum visibility, reliability, and user control. With ultra-bright LEDs, multiple flash patterns, and a rugged housing, this bar ensures your presence is known in any emergency situation, day or night, rain or shine.\u003c\/p\u003e\n\u003cp data-end=\"806\" data-start=\"530\"\u003e \u003c\/p\u003e\n\u003cp data-end=\"1177\" data-start=\"808\"\u003eBuilt to withstand the demands of high-speed response, off-road utility, or work site visibility, this low-profile bar features a streamlined, aerodynamic frame and a universal mounting system to ensure easy installation on any vehicle. Whether you're outfitting a patrol car, fire unit, or utility truck, this bar delivers dependable performance where it matters most.\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- TRUST STRIP --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2026-07-21_at_9.31.14_AM.png?v=1784641940\" alt=\"SAE J845 Certified, SAE J595 Class 1, IP69K Waterproof, Lifetime Warranty, -40F to +145F Rated, 50,000 Hour LEDs\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003c!-- SIZE SELECTOR --\u003e\n\u003cdiv style=\"margin:4px 0 2px;\"\u003e\n\u003cp style=\"margin:0 0 8px;font-weight:600;font-size:15px;\"\u003eAvailable sizes:\u003c\/p\u003e\n\u003ca href=\"\/products\/11-mini-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e11\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-17-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e17\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-30-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e30\"\u003c\/a\u003e\n\u003cspan style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:8px 14px;border-radius:8px;margin:0 6px 8px 0;font-size:15px;\"\u003e43\"\u003c\/span\u003e\n\u003ca href=\"\/products\/low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e49\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-55-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e55\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-61-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e61\"\u003c\/a\u003e\n\u003ca href=\"\/products\/new-68-low-pro-emergency-light-bar\" style=\"display:inline-block;border:2px solid #FFB300;color:#111;font-weight:700;padding:6px 12px;border-radius:8px;margin:0 6px 8px 0;text-decoration:none;font-size:15px;\"\u003e68\"\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n\n#MainContent details[open] summary::after {\n  content: '−';\n}\n\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003eLifetime Warranty\u003c\/li\u003e\n\u003cli\u003eSAE J845 Class 1 Certified\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003e360° visibility with dual-color ultra-bright LEDs\u003c\/li\u003e\n\u003cli\u003eSlim Low Profile design\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 flash patterns with memory recall\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eRugged, waterproof housing (IP69K rated)\u003c\/li\u003e\n\u003cli\u003e\n\u003cmeta charset=\"utf-8\"\u003eIntegrated controller with pattern cycling, cruise mode, and cut-off\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eLow Pro Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eController\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eWiring\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eStandard Feet\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eJamb Brackets\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- COMPLIANCE SECTION --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCompliance \u0026amp; Certifications\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cstrong\u003eMeets the standards your department requires.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"3\"\u003eCertification \u0026amp; Compliance\u003c\/th\u003e\u003c\/tr\u003e\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J845\u003c\/th\u003e\n\u003ctd\u003e360° warning lamp photometric standard for light bars and beacons\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J595 Class 1\u003c\/th\u003e\n\u003ctd\u003eHighest intensity class — approved for primary emergency vehicles (police, fire, EMS)\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIP69K\u003c\/th\u003e\n\u003ctd\u003eSealed against high-pressure washdown, salt, dust, and submersion\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eRated\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Range\u003c\/th\u003e\n\u003ctd\u003eExtreme-climate duty\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e-40°F to +145°F\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDuty Life\u003c\/th\u003e\n\u003ctd\u003eContinuous-duty LED modules\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e50,000 hours\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"font-size:13px;color:#666;\"\u003e\u003cem\u003eWarning-equipment regulations vary by state and jurisdiction. Verify color and mounting requirements with your local authority. Spec sheet PDF and certification documentation available on request for procurement offices.\u003c\/em\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- Image + Text Alternating Section --\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003c!-- Image Right - Text Left Section --\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/255283_7703341170749_330031d5_da20_475f_887e_f1269d2ad248_1.jpg?v=1763495670\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eEmergency Bar + Work Light\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eGet full 360° white-light illumination at the touch of a button. Perfect for reverse lighting, scene lighting, or any situation where you need powerful all-around visibility. It’s a true dual-purpose feature you won’t find on most emergency bars — and it comes standard on every one of ours.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_SAE_graphics.jpg?v=1758041472\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eBuilt Tough for Any Environment\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eIP69K-rated waterproof housing and reinforced aluminum construction stand up to rain, snow, mud, and dust—ideal for police, fire, tow, or off-road response vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/DSC00223.jpg?v=1754512314\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e Full 360° Warning Visibility\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003ePacked with high-output dual-color LEDs and side modules, this bar delivers all-angle visibility—ensuring you're seen from every direction, even in chaotic scenes or inclement weather.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE_-_Driver_Side_Angle.jpg?v=1761226316\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSlim, Low-Profile Design\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eEngineered to minimize wind resistance and visual bulk, this light bar features a sleek, aerodynamic frame that hugs your vehicle’s roofline. The low-profile housing not only enhances fuel efficiency but also delivers a clean, professional look without compromising brightness or performance.\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cp\u003e\u003cvideo width=\"100%\" height=\"auto\" muted=\"\" autoplay=\"autoplay\" loop=\"loop\" playsinline=\"\" controls=\"controls\"\u003e\n    \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4ec9ce848f5e4d2d8083da9daf4dbe78.mp4\" type=\"video\/mp4\"\u003e\n    Your browser does not support the video tag.\n  \u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eUp to 45 Flash Patterns with Smart Memory\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eChoose from up to 45 user-selectable flash patterns to fit any scenario. Built-in memory recall stores your last used setting for consistent deployment every time.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_-_Sliding_Feet.gif?v=1758730578\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003e\n\u003cmeta charset=\"utf-8\"\u003eSliding Feet\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003e\u003cmeta charset=\"utf-8\"\u003eOur sliding feet mounts are designed to give you maximum flexibility during installation. By allowing the brackets to slide along the base of the light bar, you can easily adjust spacing to match a wide variety of mounting points. This ensures a precise fit whether you’re working with factory holes, custom setups, or uneven surfaces.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HERO BANNER --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/d8j0ntlcm91z4.cloudfront.net\/user_3G9nKxyaQsdrPdDsxWr4EcSl5FL\/hf_20260715_201038_0803a0cd-07a6-4508-9c7a-50d0230a94e3.png\" alt=\"Built to Code. Backed for Life. SAE J845 and J595 Class 1 compliant, IP69K sealed, lifetime warranty\" style=\"width:100%;display:block;border-radius:10px;\"\u003e\u003c\/p\u003e\n\u003cbr\u003e\n\u003c!-- FLEET BLOCK --\u003e\n\u003cdiv style=\"padding:8px 0;margin:0 0 8px;\"\u003e\n\u003ch3 style=\"margin:0 0 8px;\"\u003eOutfitting a Fleet?\u003c\/h3\u003e\n\u003cp style=\"margin:0 0 14px;font-size:16px;line-height:1.6;\"\u003eVolume pricing on 5+ units, department POs accepted, W-9 on file, and spec sheets ready for your procurement office. From single patrol vehicles to full county fleets.\u003c\/p\u003e\n\u003ca href=\"\/pages\/fleet-pricing\" style=\"display:inline-block;background:#FFB300;color:#111;font-weight:700;padding:12px 22px;border-radius:8px;text-decoration:none;\"\u003eRequest Fleet Pricing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Dimension --\u003e\u003c!-- Specs --\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003c!-- Specs Chart --\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th, table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n  }\n  table.spec-table th {\n    background-color: #f7f7f7;\n    font-weight: 600;\n    width: 30%;\n  }\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n  table.spec-table thead th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e360\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e27\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Quantity\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eWide Angle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertificate\u003c\/th\u003e\n\u003ctd\u003eSAE J845 \u0026amp; SAE J595 Class 1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Single Color\u003c\/th\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Dual Color\u003c\/th\u003e\n\u003ctd\u003e45 (15 Color 1 \/ 15 Color 2 \/ 15 Combo)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Length From Light\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHole Size for Controller\u003c\/th\u003e\n\u003ctd\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting Bolt Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e13 Lbs\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c!-- FAQ --\u003e\n\u003ch5\u003eDimensions\u003c\/h5\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/43_Inch_Low_Pro_Dimensions.png?v=1779800831\"\u003e\u003c\/p\u003e\n\u003ch5\u003eVideo\u003c\/h5\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cvideo style=\"max-width: 100%; height: auto;\" controls=\"controls\" playsinline=\"\" loop=\"loop\" muted=\"\" autoplay=\"autoplay\"\u003e\n  \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f7ecf4030812467bbb46b165c21da48e.mov\"\u003e\n  Your browser does not support the video tag.\n\u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp\u003e\u003cstrong\u003eWhat voltage and control systems does this light bar support?\u003c\/strong\u003e\u003cbr\u003eThis light bar operates on a 12 V–24 V DC power system and can be used with either push-button or wireless controllers. It’s compatible with standard vehicle electrical systems, making installation straightforward for both fleet and individual applications.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow durable is this light bar in harsh environments?\u003c\/strong\u003e\u003cbr\u003eThe Low Pro Emergency Light Bar is built with a rugged aluminum housing, sealed to an IP69K rating and tested to resist corrosion, vibration, and high-pressure water ingress. It’s designed for demanding conditions—whether roadside, rescue, or commercial use—so you can rely on consistent performance when it counts.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat beam patterns and flash modes are included?\u003c\/strong\u003e\u003cbr\u003eUp to 45 flash patterns are built into the unit—including warning, hazard, and full-output flasher modes—with memory recall so your last setting is retained even after power loss. You’ll also find low-profile steady-burn mode useful for scene lighting and standby operations.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs the light bar legal for use on public roads and emergency vehicles?\u003c\/strong\u003e\u003cbr\u003eYes. The unit meets SAE J595 Class 1 and other relevant emergency lighting standards for warning applications. However, regulations vary by jurisdiction, so we recommend checking your local laws before installation to ensure compliance with mounting height, color, and flash pattern requirements.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat’s covered by the warranty?\u003c\/strong\u003e\u003cbr\u003eOur industry-leading lifetime warranty covers manufacturing defects, driver failures, and LED module performance. It does not cover damage caused by improper installation, extreme overuse beyond defined duty cycles, or wiring issues. For full warranty terms, please refer to our Warranty \u0026amp; Returns page.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Amber \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981031485,"sku":"LP-E43-A","price":767.5,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789181947965,"sku":"LP-E43-A","price":793.45,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789181980733,"sku":"LP-E43-A","price":797.45,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981097021,"sku":"LP-E43-A","price":792.5,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789182079037,"sku":"LP-E43-A","price":818.45,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789182111805,"sku":"LP-E43-A","price":822.45,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ Standard - 12' Lead","offer_id":43423999393853,"sku":"LP-E43-A","price":805.62,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999426621,"sku":"LP-E43-A","price":831.57,"currency_code":"USD","in_stock":true},{"title":"Amber \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999459389,"sku":"LP-E43-A","price":835.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42590506254397,"sku":"LP-E43-AB","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789182144573,"sku":"LP-E43-AB","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789182177341,"sku":"LP-E43-AB","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42590506319933,"sku":"LP-E43-AB","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789182275645,"sku":"LP-E43-AB","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789182308413,"sku":"LP-E43-AB","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ Standard - 12' Lead","offer_id":43423999492157,"sku":"LP-E43-AB","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999524925,"sku":"LP-E43-AB","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Blue \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999557693,"sku":"LP-E43-AB","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ Standard - 12' Lead","offer_id":42996859469885,"sku":"LP-E43-AG","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42996859502653,"sku":"LP-E43-AG","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42996859535421,"sku":"LP-E43-AG","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ Standard - 12' Lead","offer_id":42996859666493,"sku":"LP-E43-AG","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42996859699261,"sku":"LP-E43-AG","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42996859732029,"sku":"LP-E43-AG","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ Standard - 12' Lead","offer_id":43423999590461,"sku":"LP-E43-AG","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999623229,"sku":"LP-E43-AG","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Green \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999655997,"sku":"LP-E43-AG","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ Standard - 12' Lead","offer_id":43482685046845,"sku":"LP-E43-AR","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":43482685079613,"sku":"LP-E43-AR","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":43482685112381,"sku":"LP-E43-AR","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ Standard - 12' Lead","offer_id":43482685145149,"sku":"LP-E43-AR","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":43482685177917,"sku":"LP-E43-AR","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":43482685210685,"sku":"LP-E43-AR","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ Standard - 12' Lead","offer_id":43482685243453,"sku":"LP-E43-AR","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43482685276221,"sku":"LP-E43-AR","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 Red \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43482685308989,"sku":"LP-E43-AR","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981129789,"sku":"LP-E43-AW","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789182341181,"sku":"LP-E43-AW","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789182373949,"sku":"LP-E43-AW","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981195325,"sku":"LP-E43-AW","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789182472253,"sku":"LP-E43-AW","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789182505021,"sku":"LP-E43-AW","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ Standard - 12' Lead","offer_id":43423999688765,"sku":"LP-E43-AW","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999721533,"sku":"LP-E43-AW","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999754301,"sku":"LP-E43-AW","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981228093,"sku":"LP-E43-B","price":767.5,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789182537789,"sku":"LP-E43-B","price":793.45,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789182570557,"sku":"LP-E43-B","price":797.45,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981293629,"sku":"LP-E43-B","price":792.5,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789182668861,"sku":"LP-E43-B","price":818.45,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789182701629,"sku":"LP-E43-B","price":822.45,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ Standard - 12' Lead","offer_id":43423999787069,"sku":"LP-E43-B","price":805.62,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999819837,"sku":"LP-E43-B","price":831.57,"currency_code":"USD","in_stock":true},{"title":"Blue \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999852605,"sku":"LP-E43-B","price":835.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":43118360100925,"sku":"LP-E43-BW","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":43118360133693,"sku":"LP-E43-BW","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":43118360166461,"sku":"LP-E43-BW","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":43118360199229,"sku":"LP-E43-BW","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":43118360231997,"sku":"LP-E43-BW","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":43118360264765,"sku":"LP-E43-BW","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Magnet \/ Standard - 12' Lead","offer_id":43423999885373,"sku":"LP-E43-BW","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43423999918141,"sku":"LP-E43-BW","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43423999950909,"sku":"LP-E43-BW","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981424701,"sku":"LP-E43-R","price":767.5,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789182734397,"sku":"LP-E43-R","price":793.45,"currency_code":"USD","in_stock":true},{"title":"Red \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789182767165,"sku":"LP-E43-R","price":797.45,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981490237,"sku":"LP-E43-R","price":792.5,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789182865469,"sku":"LP-E43-R","price":818.45,"currency_code":"USD","in_stock":true},{"title":"Red \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789182898237,"sku":"LP-E43-R","price":822.45,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ Standard - 12' Lead","offer_id":43423999983677,"sku":"LP-E43-R","price":805.62,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43424000016445,"sku":"LP-E43-R","price":831.57,"currency_code":"USD","in_stock":true},{"title":"Red \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43424000049213,"sku":"LP-E43-R","price":835.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981326397,"sku":"LP-E43-RB","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789182931005,"sku":"LP-E43-RB","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789182963773,"sku":"LP-E43-RB","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981391933,"sku":"LP-E43-RB","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789183062077,"sku":"LP-E43-RB","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789183094845,"sku":"LP-E43-RB","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ Standard - 12' Lead","offer_id":43424000081981,"sku":"LP-E43-RB","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43424000114749,"sku":"LP-E43-RB","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43424000147517,"sku":"LP-E43-RB","price":880.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981523005,"sku":"LP-E43-RW","price":812.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789183127613,"sku":"LP-E43-RW","price":838.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789183160381,"sku":"LP-E43-RW","price":842.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981588541,"sku":"LP-E43-RW","price":837.5,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789183258685,"sku":"LP-E43-RW","price":863.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789183291453,"sku":"LP-E43-RW","price":867.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ Standard - 12' Lead","offer_id":43424000180285,"sku":"LP-E43-RW","price":850.62,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43424000213053,"sku":"LP-E43-RW","price":876.57,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43424000245821,"sku":"LP-E43-RW","price":880.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ Standard - 12' Lead","offer_id":42583981621309,"sku":"LP-E43-W","price":767.5,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 22' Total - (12' + 10' Extension)","offer_id":42789183324221,"sku":"LP-E43-W","price":793.45,"currency_code":"USD","in_stock":true},{"title":"White \/ Door Jamb \/ 27' Total - (12' + 15' Extension)","offer_id":42789183356989,"sku":"LP-E43-W","price":797.45,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ Standard - 12' Lead","offer_id":42583981686845,"sku":"LP-E43-W","price":792.5,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 22' Total - (12' + 10' Extension)","offer_id":42789183455293,"sku":"LP-E43-W","price":818.45,"currency_code":"USD","in_stock":true},{"title":"White \/ Headache Rack \/ 27' Total - (12' + 15' Extension)","offer_id":42789183488061,"sku":"LP-E43-W","price":822.45,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ Standard - 12' Lead","offer_id":43424000278589,"sku":"LP-E43-W","price":805.62,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ 22' Total - (12' + 10' Extension)","offer_id":43424000311357,"sku":"LP-E43-W","price":831.57,"currency_code":"USD","in_stock":true},{"title":"White \/ Magnet \/ 27' Total - (12' + 15' Extension)","offer_id":43424000344125,"sku":"LP-E43-W","price":835.57,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE43_Angled.png?v=1759162162"},{"product_id":"new-xdr-4-emergency-strobe-light-led-warning-light","title":"XDR-4 Emergency Strobe Light, LED Warning Light","description":"\u003cstyle\u003e\n#MainContent .x4-h1 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 34px !important; font-weight: 800 !important; line-height: 1.12 !important; letter-spacing: -0.5px !important; color: #1C2026 !important; text-transform: none !important; margin: 0 0 10px !important; }\n#MainContent .x4-h2 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 26px !important; font-weight: 800 !important; line-height: 1.2 !important; color: #1C2026 !important; text-transform: none !important; letter-spacing: -0.2px !important; margin: 0 0 8px !important; }\n#MainContent .x4-h3 { font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !important; font-size: 16px !important; font-weight: 800 !important; color: #1C2026 !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 6px !important; }\n#MainContent .x4-eyebrow { display: block !important; font-size: 11px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: #C27C00; margin: 0 0 4px; }\n#MainContent .x4-sub { font-size: 15.5px; line-height: 1.55; color: #5F6670; margin: 0 0 14px; }\n#MainContent .x4-flex { display: flex !important; flex-wrap: wrap; }\n#MainContent .x4-col, #MainContent .x4-card, #MainContent .x4-tile { display: block !important; box-sizing: border-box; }\n#MainContent .x4-sw { display: flex !important; flex-wrap: nowrap !important; align-items: center; gap: 10px; box-sizing: border-box; }\n#MainContent .x4-card, #MainContent .x4-tile, #MainContent .x4-sw { transition: all .2s ease; }\n#MainContent .x4-card:hover, #MainContent .x4-tile:hover, #MainContent .x4-sw:hover { border-color: #FFB300 !important; box-shadow: 0 6px 18px rgba(28,32,38,.10); }\n#MainContent .x4-chip { display: inline-block !important; background: #FFF6E0; color: #1C2026; border: 1px solid #FFE1A0; border-radius: 12px; padding: 5px 11px; font-size: 12.5px; font-weight: 700; margin: 0 5px 6px 0; }\n#MainContent .x4-dot { display: inline-block !important; width: 28px; height: 28px; border-radius: 50%; flex: 0 0 28px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.10); }\n#MainContent .x4-hero-img { text-align: center; }\n#MainContent .x4-hero-img img { max-width: 100% !important; max-height: 260px; width: auto; height: auto !important; border-radius: 14px; display: inline-block !important; }\n#MainContent .x4-tiw { display: flex !important; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0 0 8px; background: #fff; border: 2px solid #E5E7EB; border-radius: 16px; padding: 10px; box-sizing: border-box; transition: all .2s ease; }\n#MainContent .x4-tiw:hover { border-color: #FFB300; box-shadow: 0 6px 18px rgba(28,32,38,.10); }\n#MainContent .x4-tiw.x4-rev { flex-direction: row-reverse; }\n#MainContent .x4-tiw-img { flex: 0 1 340px; max-width: 340px; display: block !important; border-radius: 12px; overflow: hidden; }\n#MainContent .description .x4-tiw-img img, #MainContent .x4-tiw .x4-tiw-img img { width: 100% !important; height: 170px !important; max-height: 170px !important; object-fit: contain; background: #fff; border-radius: 12px; display: block !important; }\n@media (max-width: 749px) { #MainContent .x4-tiw-img { flex: 1 1 100%; max-width: 100%; } }\n#MainContent .x4-tiw-txt { flex: 1 1 280px; min-width: 260px; display: block !important; }\n#MainContent .x4-tiw-txt a, #MainContent details .content a { color: #C27C00; font-weight: 700; }\n#MainContent .x4-fig img { max-width: 100% !important; max-height: 280px; width: auto; height: auto !important; border-radius: 12px; display: inline-block !important; }\n#MainContent details { border: 2px solid #E5E7EB; border-radius: 12px; margin-bottom: 8px; overflow: hidden; background: #fff; display: block; }\n#MainContent details summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; padding: 12px 18px; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-weight: 700; font-size: 16px; color: #1C2026; list-style: none; background: #fff; border-bottom: 0; }\n#MainContent details summary:hover, #MainContent details[open] summary { background: #FFF6E0; }\n#MainContent details[open] summary { border-bottom: 1px solid #FFE1A0; }\n#MainContent details summary::-webkit-details-marker { display: none; }\n#MainContent details summary::after { content: '+'; font-size: 22px; font-weight: 400; color: #C27C00; }\n#MainContent details[open] summary::after { content: '\\2212'; }\n#MainContent details .content { padding: 6px 18px 12px; font-size: 15px; line-height: 1.55; display: block; }\n#MainContent table.x4-spec { width: 100%; border-collapse: collapse; margin: 0; font-size: 14.5px; }\n#MainContent table.x4-spec th, #MainContent table.x4-spec td { border: 1px solid #E5E7EB; padding: 8px 10px; text-align: left; }\n#MainContent table.x4-spec th { background: #F6F6F4; font-weight: 600; color: #1C2026; width: 42%; }\n#MainContent table.x4-spec tr:hover td, #MainContent table.x4-spec tr:hover th { background: #FFF6E0; }\n#MainContent .description img { max-width: 100% !important; height: auto !important; }\n@media (max-width: 749px) {\n  #MainContent .x4-h1 { font-size: 27px !important; }\n  #MainContent .x4-h2 { font-size: 22px !important; }\n  #MainContent .x4-pad { padding: 20px 16px !important; }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"x4-pad x4-flex\" style=\"display: flex; flex-wrap: wrap; align-items: center; gap: 22px; background: linear-gradient(165deg,#FFF6E0 0%,#ffffff 72%); border: 2px solid #E5E7EB; border-radius: 18px; padding: 26px; margin: 0 0 12px;\"\u003e\n\u003cdiv class=\"x4-col\" style=\"flex: 1 1 340px; min-width: 260px;\"\u003e\n\u003cp style=\"display: inline-block; background: #1C2026; color: #FFB300; font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; padding: 5px 11px; border-radius: 6px; margin: 0 0 10px;\"\u003eSAE J595 · IP69K · 13 Flash Patterns\u003c\/p\u003e\n\u003ch2 class=\"x4-h1\"\u003eXDR-4 Emergency Strobe Light\u003c\/h2\u003e\n\u003cp class=\"x4-sub\"\u003eA compact 4\" LED warning light for tow trucks, utility, construction, and emergency response vehicles. Four high-intensity LEDs throw a 120° wide warning pattern, the ultra-low-profile housing fits where bigger strobes won't, and it's sealed to IP69K for pressure washing and all-weather use.\u003c\/p\u003e\n\u003cp style=\"margin: 0; line-height: 2;\"\u003e\u003cspan class=\"x4-chip\"\u003eSAE J595\u003c\/span\u003e\u003cspan class=\"x4-chip\"\u003eIP69K Waterproof\u003c\/span\u003e\u003cspan class=\"x4-chip\"\u003e10–30V DC\u003c\/span\u003e\u003cspan class=\"x4-chip\"\u003eSync Capable\u003c\/span\u003e\u003cspan class=\"x4-chip\"\u003eLimited Lifetime Warranty\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-col x4-hero-img\" style=\"flex: 1 1 260px;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4Red_White_Blue_Amber.png?v=1768577056\" alt=\"XDR-4 LED emergency strobe lights in red, white, blue and amber\" width=\"500\" height=\"500\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-flex\" style=\"display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px;\"\u003e\n\u003cdiv class=\"x4-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e13\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eFlash Patterns\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e120°\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eWide Angle\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003eIP69K\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eWaterproof\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tile\" style=\"flex: 1 1 120px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 12px 10px; text-align: center;\"\u003e\n\u003cspan style=\"display: block; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 800; color: #1C2026; line-height: 1.1;\"\u003e3-7\/8\"\u003c\/span\u003e\u003cspan style=\"display: block; font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: #5F6670;\"\u003eLong\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"x4-eyebrow\"\u003ePick Your Colors\u003c\/span\u003e\n\u003ch2 class=\"x4-h2\"\u003e7 single and dual-color options\u003c\/h2\u003e\n\u003cp class=\"x4-sub\"\u003eRun one color or split two in the same head. Dual-color models alternate between both colors for maximum attention.\u003c\/p\u003e\n\u003cdiv class=\"x4-flex\" style=\"display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px;\"\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: #FFB300;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: #1C6FE0;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eBlue\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: #E23B3B;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: linear-gradient(135deg,#FFB300 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eAmber \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: linear-gradient(135deg,#1C6FE0 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eBlue \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: linear-gradient(135deg,#E23B3B 0 50%,#1C6FE0 50% 100%);\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed \u0026amp; Blue\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-sw\" style=\"flex: 1 1 170px; background: #fff; border: 2px solid #E5E7EB; border-radius: 12px; padding: 8px 12px;\"\u003e\n\u003cspan class=\"x4-dot\" style=\"background: linear-gradient(135deg,#E23B3B 0 50%,#F4F6F8 50% 100%); box-shadow: inset 0 0 0 2px #E5E7EB;\"\u003e\u003c\/span\u003e\u003cb style=\"color: #1C2026;\"\u003eRed \u0026amp; White\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"x4-eyebrow\"\u003eBuilt For The Job\u003c\/span\u003e\n\u003ch2 class=\"x4-h2\"\u003eCompact strobe, full warning power\u003c\/h2\u003e\n\u003cdiv class=\"x4-flex\" style=\"display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 22px;\"\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"x4-h3\"\u003eSAE J595 Approved\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eMeets the SAE standard for directional flashing warning lamps on emergency and service vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"x4-h3\"\u003e13 Patterns + Sync\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eSteady-on plus 13 strobe patterns. Sync multiple units to flash together or alternate side to side.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 220px; background: #fff; border: 2px solid #E5E7EB; border-radius: 14px; padding: 14px 16px;\"\u003e\n\u003ch3 class=\"x4-h3\"\u003e12V or 24V\u003c\/h3\u003e\n\u003cp style=\"font-size: 14.5px; line-height: 1.5; color: #5F6670; margin: 0;\"\u003eRuns on 10–30V DC, so it works on pickups, service bodies, and heavy trucks with no changes.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw\"\u003e\n\u003cdiv class=\"x4-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4Amber_White.png?v=1768577056\" alt=\"XDR-4 amber and white emergency strobe lights\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw-txt\"\u003e\n\u003ch3 class=\"x4-h3\" style=\"font-size: 20px !important;\"\u003eUltra Slim, Stealthy Design\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eAt just 3-7\/8\" long, the XDR-4 fits the tightest spots in grilles, bumpers, deck lids, and headache racks, and gives you a clean, modern look. It surface mounts with two M4 bolts and a vibration foam pad. Need to mount it sideways? Add our \u003ca href=\"\/products\/xdr-4-5-90-degree-bracket\"\u003e90° mounting bracket\u003c\/a\u003e.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw x4-rev\"\u003e\n\u003cdiv class=\"x4-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4Red_Blue.png?v=1768577056\" alt=\"XDR-4 red and blue emergency strobe lights\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw-txt\"\u003e\n\u003ch3 class=\"x4-h3\" style=\"font-size: 20px !important;\"\u003ePowerful Warning Output\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eFour high-intensity LEDs push 20W through an ultra-wide 120° pattern that stays visible day and night. Choose from 13 flash patterns or steady-on, and sync multiple heads for a coordinated, professional warning setup on any vehicle.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw\"\u003e\n\u003cdiv class=\"x4-tiw-img\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/IMG_5955_WithouutBracket.jpg?v=1768577056\" alt=\"XDR-4 emergency strobe light\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"x4-tiw-txt\"\u003e\n\u003ch3 class=\"x4-h3\" style=\"font-size: 20px !important;\"\u003eRugged \u0026amp; Waterproof\u003c\/h3\u003e\n\u003cp style=\"font-size: 15.5px; line-height: 1.55; margin: 0;\"\u003eSealed to IP69K and rated from -40° to 145° F, the XDR-4 shrugs off rain, road salt, dust, and the pressure washer. It's built to run shift after shift in the conditions work trucks actually see, and it's backed by our limited lifetime warranty.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cdetails\u003e\n\u003csummary\u003ePower \u0026amp; Performance\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"x4-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWattage\u003c\/th\u003e\n\u003ctd\u003e20W\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eAmp Draw\u003c\/th\u003e\n\u003ctd\u003e1.6A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10–30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertification\u003c\/th\u003e\n\u003ctd\u003eSAE J595\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLEDs\u003c\/th\u003e\n\u003ctd\u003e4 high-intensity\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam\u003c\/th\u003e\n\u003ctd\u003eUltra wide, 120°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eModes\u003c\/th\u003e\n\u003ctd\u003eSteady on + 13 strobe patterns, sync capable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDurability \u0026amp; Warranty\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"x4-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F (-40° to 62° C)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30-day money back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWiring \u0026amp; Installation\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"x4-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLead Length\u003c\/th\u003e\n\u003ctd\u003e12\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e24 AWG\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector\u003c\/th\u003e\n\u003ctd\u003eOpen-end pigtail\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHarness Included?\u003c\/th\u003e\n\u003ctd\u003eNo\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRecommended Fuse\u003c\/th\u003e\n\u003ctd\u003e5A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting\u003c\/th\u003e\n\u003ctd\u003eSurface mount, 2× M4 bolts + foam pad (included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eGeneral \u0026amp; SKUs\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003ctable class=\"x4-spec\"\u003e\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLength\u003c\/th\u003e\n\u003ctd\u003e3-7\/8\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e0.1 lb\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSingle Color\u003c\/th\u003e\n\u003ctd\u003eXDR-4S-A · XDR-4S-B · XDR-4S-R\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDual Color\u003c\/th\u003e\n\u003ctd\u003eXDR-4S-AW · XDR-4S-BW · XDR-4S-RB · XDR-4S-RW\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdiv class=\"x4-flex\" style=\"display: flex; flex-wrap: wrap; gap: 14px; margin: 18px 0 0; align-items: flex-start;\"\u003e\n\u003cdiv class=\"x4-col\" style=\"flex: 1 1 300px;\"\u003e\n\u003ch5 style=\"margin-top: 0;\"\u003eIn The Box\u003c\/h5\u003e\n\u003cdiv class=\"x4-flex\" style=\"display: flex; flex-wrap: wrap; gap: 8px;\"\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003e1 × XDR-4 Emergency Strobe\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWith 12\" 24 AWG pigtail\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003eVibration Foam Insert\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eCushions the light against the mount\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003e2 × 1-1\/2\" M4 Bolts\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWith washers and nuts\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-card\" style=\"flex: 1 1 100%; background: #F6F6F4; border: 2px solid #E5E7EB; border-radius: 12px; padding: 10px 14px;\"\u003e\n\u003cb style=\"color: #1C2026;\"\u003eInstructions\u003c\/b\u003e\u003cbr\u003e\u003cspan style=\"font-size: 13.5px; color: #5F6670;\"\u003eWiring and setup steps\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"x4-col x4-fig\" style=\"flex: 1 1 300px;\"\u003e\n\u003ch5 style=\"margin-top: 0;\"\u003eDimensions\u003c\/h5\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4_Strobe_Dimensions.png?v=1768577056\" alt=\"XDR-4 emergency strobe light dimensions\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIs the XDR-4 SAE approved?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. The XDR-4 is SAE J595 approved for directional flashing warning lamps. Rules on which colors you can run vary by state and vehicle type, so check your local regulations, especially for red and blue.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWill it work on a 24V truck?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. It runs on anything from 10V to 30V DC, so 12V and 24V systems both work with no changes.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCan I sync multiple XDR-4 lights?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eYes. Wire multiple heads together to flash in unison or alternate.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDoes it come with a harness or switch?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eNo. Each light has a 12\" open-end pigtail that you wire to your own switch and a 5A fuse.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eHow do I mount it?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eIt surface mounts on any flat spot with the included M4 bolts and vibration foam pad. To mount it at a right angle, add the \u003ca href=\"\/products\/xdr-4-5-90-degree-bracket\"\u003eXDR-4 \u0026amp; XDR-5 90° mounting bracket\u003c\/a\u003e.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eWhat does the warranty cover?\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\u003cp style=\"margin: 0;\"\u003eOur limited lifetime warranty covers workmanship and material failures. Send the light back and once we verify the issue, we'll repair or replace it free of charge. Every order also comes with a 30-day money-back guarantee.\u003c\/p\u003e\u003c\/div\u003e\n\u003c\/details\u003e","brand":"Black Oak LED","offers":[{"title":"Amber","offer_id":42918400262205,"sku":"XDR-4S-A","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Blue","offer_id":42918400294973,"sku":"XDR-4S-B","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Red","offer_id":42918400327741,"sku":"XDR-4S-R","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White","offer_id":42918400360509,"sku":"XDR-4S-AW","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Blue \u0026 White","offer_id":43408882860093,"sku":"XDR-4S-BW","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 Blue","offer_id":42918400426045,"sku":"XDR-4S-RB","price":37.45,"currency_code":"USD","in_stock":true},{"title":"Red \u0026 White","offer_id":42918400458813,"sku":"XDR-4S-RW","price":37.45,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4Red_White_Blue_Amber.png?v=1768577056"},{"product_id":"xdr-4-5-90-degree-bracket","title":"XDR-4 \u0026 XDR-5 90 Degree Mounting Bracket","description":"\u003cstyle\u003e\n#MainContent .xb-eyebrow { display: block; font-family: Helvetica, Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #1A3D5E; margin: 0 0 8px; }\n#MainContent .xb-h { display: block; font-family: Helvetica, Arial, sans-serif; font-size: 22px; font-weight: 700; line-height: 1.25; color: #111111; margin: 0 0 14px; }\n#MainContent .xb-p { display: block; font-size: 16px; line-height: 1.65; color: #333333; max-width: 70ch; margin: 0 0 16px; }\n#MainContent .xb-row { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 4px; }\n#MainContent .xb-card { display: block; box-sizing: border-box; flex: 1 1 190px; border: 1px solid #E0E0E0; border-top: 3px solid #1A3D5E; border-radius: 8px; background: #F9F9F9; padding: 14px 16px; }\n#MainContent .xb-k { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #1A3D5E; margin: 0 0 4px; }\n#MainContent .xb-v { display: block; font-family: Helvetica, Arial, sans-serif; font-size: 15.5px; font-weight: 700; color: #111111; }\n@media (max-width: 749px) {\n  #MainContent .xb-h { font-size: 19px; }\n  #MainContent .xb-row { gap: 8px; }\n}\n@media (max-width: 599px) {\n  #MainContent .xb-card { flex: 1 1 100%; }\n}\n\u003c\/style\u003e\n\u003cp class=\"xb-eyebrow\"\u003eAccessory\u003c\/p\u003e\n\u003ch3 class=\"xb-h\"\u003eFor the spots a flat mount can't reach\u003c\/h3\u003e\n\u003cp class=\"xb-p\"\u003eNot every good mounting spot is flat and facing forward. This 90 degree bracket lets you mount an XDR-4 or XDR-5 strobe on a perpendicular surface — a headache rack upright, the inside of a bumper, a push bar, the wall of a tool box — and still aim the light where it needs to point.\u003c\/p\u003e\n\u003cp class=\"xb-p\"\u003eIt bolts to the XDR-4 and XDR-5 at their standard M4 mounting points, so the light keeps its low-profile footprint and nothing changes about the wiring or the flash patterns.\u003c\/p\u003e\n\u003cdiv class=\"xb-row\"\u003e\n\u003cdiv class=\"xb-card\"\u003e\n\u003cspan class=\"xb-k\"\u003eFits\u003c\/span\u003e\u003cspan class=\"xb-v\"\u003eXDR-4 \u0026amp; XDR-5\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xb-card\"\u003e\n\u003cspan class=\"xb-k\"\u003eMounting\u003c\/span\u003e\u003cspan class=\"xb-v\"\u003e90° offset\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xb-card\"\u003e\n\u003cspan class=\"xb-k\"\u003eQuantity\u003c\/span\u003e\u003cspan class=\"xb-v\"\u003eOne per light\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Black Oak LED","offers":[{"title":"Default Title","offer_id":43066744668221,"sku":"XDR-B90","price":15.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR90-DegreeBracket.png?v=1790794036"},{"product_id":"low-pro-emergency-bar-15-ft-controller-extension","title":"Low Pro Emergency Bar – 15-Ft Controller Extension Cable","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003eUpgrade your installation flexibility with this 15-foot Controller Extension Cable for the Low Pro Emergency Bar. Designed for longer vehicles or custom mounting setups, this extension gives you the extra reach you need without sacrificing durability or performance. Built with rugged, weather-resistant materials and plug-and-play connectors, it ensures a secure connection and reliable control of your bar from virtually any mounting location. Perfect for trucks, service vehicles, utility rigs, or any setup that requires additional cable length.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Default Title","offer_id":43098690453565,"sku":"LPE-HE-15","price":20.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/extension.webp?v=1763499030"},{"product_id":"xdr2_beacon","title":"XDR-2 Mini Amber Warning LED Beacon","description":"\u003cdiv class=\"bol-beacon\"\u003e\n\u003cstyle\u003e\n\/* Scoped to .bol-beacon — matches Black Oak LED site styling, won't collide with theme *\/\n.bol-beacon{--ink:#111;--ink2:#3a424e;--muted:#6a7482;--line:#e4e7ec;--bg:#f5f5f5;--soft:#f8f8f6;--yellow:#FEB902;--yellow2:#F5B31B;--navy:#1A3D5E;font-family:Roboto,\"Helvetica Neue\",Arial,sans-serif;color:var(--ink);line-height:1.6;font-size:16px;max-width:1000px;margin:0 auto;}\n.bol-beacon *{box-sizing:border-box;}\n.bol-beacon h2,.bol-beacon h3{font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.2;margin:0;}\n.bol-beacon p{margin:0 0 14px;color:var(--ink2);}\n\n\/* Hero *\/\n.bol-beacon .bf-hero{background:linear-gradient(155deg,#0c0c0c 0%,#14171c 55%,#1A3D5E 130%);color:#fff;border-radius:12px;padding:34px 32px;position:relative;overflow:hidden;}\n.bol-beacon .bf-hero:after{content:\"\";position:absolute;right:-70px;top:-70px;width:280px;height:280px;background:radial-gradient(circle,rgba(254,185,2,.28),transparent 62%);}\n.bol-beacon .bf-kicker{display:inline-block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);font-weight:800;margin-bottom:10px;}\n.bol-beacon .bf-hero h2{font-size:30px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;}\n.bol-beacon .bf-hero .bf-sub{margin-top:12px;font-size:16px;color:#c7d0dc;max-width:640px;position:relative;}\n.bol-beacon .bf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;position:relative;}\n.bol-beacon .bf-chip{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);color:#eaf0f7;font-size:13px;font-weight:600;padding:7px 13px;border-radius:999px;}\n.bol-beacon .bf-chip.is-y{background:var(--yellow);border-color:var(--yellow);color:var(--navy);font-weight:700;}\n\n\/* Spec strip *\/\n.bol-beacon .bf-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0;}\n.bol-beacon .bf-stat{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px 14px;text-align:center;}\n.bol-beacon .bf-stat .bf-ic{width:30px;height:30px;margin:0 auto 8px;display:block;color:var(--yellow2);}\n.bol-beacon .bf-stat b{display:block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:20px;font-weight:800;color:var(--ink);}\n.bol-beacon .bf-stat span{font-size:12.5px;color:var(--muted);}\n\n\/* Section *\/\n.bol-beacon .bf-sec{margin:26px 0;}\n.bol-beacon .bf-sec h3{font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;display:flex;align-items:center;gap:9px;}\n.bol-beacon .bf-sec h3:before{content:\"\";width:5px;height:20px;border-radius:3px;background:var(--yellow);display:inline-block;}\n\n\/* Accordion *\/\n.bol-beacon details{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fff;overflow:hidden;}\n.bol-beacon details[open]{border-color:#cdd4dd;}\n.bol-beacon summary{list-style:none;cursor:pointer;padding:17px 20px;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:16.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;}\n.bol-beacon summary::-webkit-details-marker{display:none;}\n.bol-beacon summary .bf-lbl{display:flex;align-items:center;gap:11px;}\n.bol-beacon summary .bf-lbl svg{width:20px;height:20px;color:var(--yellow2);flex:none;}\n.bol-beacon .bf-plus{width:22px;height:22px;position:relative;flex:none;transition:transform .2s;}\n.bol-beacon .bf-plus:before,.bol-beacon .bf-plus:after{content:\"\";position:absolute;background:var(--muted);border-radius:2px;}\n.bol-beacon .bf-plus:before{left:4px;right:4px;top:10px;height:2px;}\n.bol-beacon .bf-plus:after{top:4px;bottom:4px;left:10px;width:2px;}\n.bol-beacon details[open] .bf-plus{transform:rotate(135deg);}\n.bol-beacon .bf-body{padding:2px 20px 20px;border-top:1px solid var(--line);}\n\n\/* Feature list *\/\n.bol-beacon .bf-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;}\n.bol-beacon .bf-list li{position:relative;padding-left:28px;font-size:14.5px;color:var(--ink2);}\n.bol-beacon .bf-list li b{color:var(--ink);}\n.bol-beacon .bf-list li:before{content:\"\";position:absolute;left:0;top:3px;width:17px;height:17px;border-radius:50%;background:var(--yellow);\n  -webkit-mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/12px no-repeat;\n  mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/12px no-repeat;}\n\n\/* In the box *\/\n.bol-beacon .bf-box{list-style:none;margin:14px 0 0;padding:0;}\n.bol-beacon .bf-box li{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px dashed var(--line);font-size:15px;}\n.bol-beacon .bf-box li:last-child{border-bottom:none;}\n.bol-beacon .bf-qty{flex:none;min-width:40px;height:40px;border-radius:9px;background:var(--navy);border:1px solid var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--yellow);font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;}\n.bol-beacon .bf-box b{color:var(--ink);}\n.bol-beacon .bf-box small{display:block;color:var(--muted);font-size:12.5px;}\n.bol-beacon .bf-note{margin-top:14px;font-size:13.5px;color:var(--muted);background:#fffaf0;border:1px solid #f6e2b8;border-radius:9px;padding:11px 14px;}\n\n\/* Specs table *\/\n.bol-beacon .bf-specs{width:100%;border-collapse:collapse;margin-top:14px;font-size:14.5px;}\n.bol-beacon .bf-specs tr{border-bottom:1px solid var(--line);}\n.bol-beacon .bf-specs td{padding:11px 6px;}\n.bol-beacon .bf-specs td:first-child{color:var(--muted);}\n.bol-beacon .bf-specs td:last-child{text-align:right;font-weight:700;color:var(--ink);}\n\n\/* Cert badges *\/\n.bol-beacon .bf-certs{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}\n.bol-beacon .bf-cert{background:var(--navy);color:#fff;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:700;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;letter-spacing:.3px;}\n\n\/* Applications *\/\n.bol-beacon .bf-apps{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}\n.bol-beacon .bf-app{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 13px;font-size:13.5px;font-weight:600;color:var(--ink2);}\n\n\/* Also available note *\/\n.bol-beacon .bf-avail{margin:0 0 4px;padding:12px 16px;background:var(--soft);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:10px;font-size:14.5px;color:var(--ink2);}\n.bol-beacon .bf-avail a{color:var(--navy);font-weight:800;text-decoration:none;}\n.bol-beacon .bf-avail a:hover{text-decoration:underline;}\n\n\/* Setup options *\/\n.bol-beacon .bf-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}\n.bol-beacon .bf-opt{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;}\n.bol-beacon .bf-opt.is-feature{border-color:var(--yellow);box-shadow:0 0 0 1px var(--yellow);}\n.bol-beacon .bf-opt-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px;margin-bottom:10px;}\n.bol-beacon .bf-opt.is-feature .bf-opt-tag{background:var(--yellow);border-color:var(--yellow);}\n.bol-beacon .bf-opt-name{font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:18px;font-weight:800;color:var(--ink);margin-bottom:4px;}\n.bol-beacon .bf-opt-sub{font-size:13.5px;color:var(--muted);margin:0 0 12px;}\n.bol-beacon .bf-oplist{list-style:none;margin:0;padding:0;}\n.bol-beacon .bf-oplist li{position:relative;padding:7px 0 7px 26px;font-size:14px;color:var(--ink2);border-top:1px solid var(--line);}\n.bol-beacon .bf-oplist li:first-child{border-top:none;}\n.bol-beacon .bf-oplist li b{color:var(--ink);}\n.bol-beacon .bf-oplist li:before{content:\"\";position:absolute;left:0;top:10px;width:16px;height:16px;border-radius:50%;background:var(--yellow);\n  -webkit-mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/11px no-repeat;\n  mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/11px no-repeat;}\n\n\/* Trust *\/\n.bol-beacon .bf-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px;}\n.bol-beacon .bf-tcard{border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;gap:14px;align-items:flex-start;background:#fff;}\n.bol-beacon .bf-tcard svg{width:30px;height:30px;color:var(--navy);flex:none;}\n.bol-beacon .bf-tcard b{display:block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:15.5px;margin-bottom:3px;}\n.bol-beacon .bf-tcard span{font-size:13.5px;color:var(--muted);}\n\n@media(max-width:720px){\n  .bol-beacon .bf-hero{padding:26px 22px;}\n  .bol-beacon .bf-hero h2{font-size:23px;}\n  .bol-beacon .bf-strip{grid-template-columns:1fr 1fr;}\n  .bol-beacon .bf-list{grid-template-columns:1fr;}\n  .bol-beacon .bf-trust{grid-template-columns:1fr;}\n  .bol-beacon .bf-opts{grid-template-columns:1fr;}\n}\n\/* --- Shopify rich-text safety: the description editor converts \u003cdiv\u003e to inline \u003cspan\u003e; re-assert layout so nothing collapses --- *\/\n.bol-beacon,.bol-beacon .bf-hero,.bol-beacon .bf-sec,.bol-beacon .bf-body,.bol-beacon .bf-note,.bol-beacon .bf-stat,.bol-beacon .bf-avail,.bol-beacon .bf-opt,.bol-beacon .bf-opt-name,.bol-beacon .bf-opt-sub{display:block !important;}\n.bol-beacon .bf-strip,.bol-beacon .bf-list,.bol-beacon .bf-trust,.bol-beacon .bf-opts{display:grid !important;}\n.bol-beacon .bf-chips,.bol-beacon .bf-certs,.bol-beacon .bf-apps,.bol-beacon .bf-variant,.bol-beacon .bf-tcard,.bol-beacon .bf-box li,.bol-beacon summary,.bol-beacon summary .bf-lbl{display:flex !important;}\n.bol-beacon .bf-hero h2{color:#fff !important;font-size:30px !important;font-weight:800 !important;letter-spacing:.5px !important;text-transform:uppercase !important;line-height:1.2 !important;margin:0 !important;}\n.bol-beacon .bf-kicker{color:#FEB902 !important;}\n.bol-beacon .bf-hero .bf-sub{color:#c7d0dc !important;}\n\u003c\/style\u003e\n\n\u003c!-- HERO --\u003e\n\u003cdiv class=\"bf-hero\"\u003e\n  \u003cspan class=\"bf-kicker\"\u003eWarning \u0026amp; Safety Lighting\u003c\/span\u003e\n  \u003ch2\u003eXDR-2 Beacon\u003c\/h2\u003e\n  \u003cp class=\"bf-sub\"\u003eA low-profile 36W LED beacon built for the harshest work environments. 24 high-output LEDs, 12 selectable flash patterns, and full ECE + SAE certification — sealed to IP69K and backed by a lifetime warranty.\u003c\/p\u003e\n  \u003cdiv class=\"bf-chips\"\u003e\n    \u003cspan class=\"bf-chip is-y\"\u003eLifetime Warranty\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003eIP67 \/ IP69K\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003eECE R65 · SAE J845\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003e12 Flash Patterns\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- SPEC STRIP --\u003e\n\u003cdiv class=\"bf-strip\"\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M13 2 3 14h7l-1 8 10-12h-7z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e36W\u003c\/b\u003e\u003cspan\u003eLED Output\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003eIP69K\u003c\/b\u003e\u003cspan\u003eSealed \u0026amp; Rated\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 7v5l3 2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e12\u003c\/b\u003e\u003cspan\u003eFlash Patterns\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 12h16M12 4l8 8-8 8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e10–30V\u003c\/b\u003e\u003cspan\u003eMulti-Voltage\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ALSO AVAILABLE --\u003e\n\u003cdiv class=\"bf-avail\"\u003eAlso available in a heavy-duty \u003ca href=\"https:\/\/www.blackoakled.com\/products\/xdr-4-beacon\"\u003eXDR-4 version →\u003c\/a\u003e\n\u003c\/div\u003e\n\n\u003c!-- OVERVIEW --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eOverview\u003c\/h3\u003e\n  \u003cp\u003eBuilt for emergency, utility, and off-road work vehicles, the XDR-2 Beacon packs 24 individual 1.5W LEDs — 36W total — into a rugged, low-profile housing that stands just 2.15 in tall. Twelve selectable flash patterns and both synchronized and asynchronized modes let you run a single beacon or a coordinated array across a whole fleet.\u003c\/p\u003e\n  \u003cp\u003eA \u003cb\u003erobust aluminium housing\u003c\/b\u003e and \u003cb\u003eUV-resistant polycarbonate lens\u003c\/b\u003e shrug off impact, weather, and years of sun. Sealed to \u003cb\u003eIP67 and IP69K\u003c\/b\u003e, rated to withstand \u003cb\u003e60G of shock\u003c\/b\u003e, and operating from \u003cb\u003e-45°C to +65°C\u003c\/b\u003e, it's certified to \u003cb\u003eECE R65, ECE R10, SAE J845, CE and CISPR 25\u003c\/b\u003e. Runs on any \u003cb\u003e10–30V\u003c\/b\u003e system and mounts with a simple bolt-down fixing.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003c!-- CHOOSE SETUP --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eChoose Your Setup\u003c\/h3\u003e\n  \u003cdiv class=\"bf-opts\"\u003e\n    \u003cdiv class=\"bf-opt\"\u003e\n      \u003cspan class=\"bf-opt-tag\"\u003eOption 1 · Base\u003c\/span\u003e\n      \u003cdiv class=\"bf-opt-name\"\u003ePermanent\u003c\/div\u003e\n      \u003cp class=\"bf-opt-sub\"\u003eHard-wired for a clean, permanent installation.\u003c\/p\u003e\n      \u003cul class=\"bf-oplist\"\u003e\n        \u003cli\u003e\u003cb\u003eOpen \/ bare-wire lead\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eBolt-on mounting\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003eWires into your own \u003cb\u003eswitch \u0026amp; power source\u003c\/b\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bf-opt is-feature\"\u003e\n      \u003cspan class=\"bf-opt-tag\"\u003eOption 2 · Plug \u0026amp; Play\u003c\/span\u003e\n      \u003cdiv class=\"bf-opt-name\"\u003ePlug \u0026amp; Play\u003c\/div\u003e\n      \u003cp class=\"bf-opt-sub\"\u003eReady to run out of the box — no hard-wiring needed.\u003c\/p\u003e\n      \u003cul class=\"bf-oplist\"\u003e\n        \u003cli\u003e\n\u003cb\u003e9.5 ft of wiring\u003c\/b\u003e with a 12V cigarette-socket plug\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eControls built into the back of the plug\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eRocker 1\u003c\/b\u003e — power on \/ off\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eRocker 2\u003c\/b\u003e — cycle through the 12 flash patterns\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ACCORDIONS --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eDetails\u003c\/h3\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 2 2 7l10 5 10-5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 17l10 5 10-5M2 12l10 5 10-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003eKey Features\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cul class=\"bf-list\"\u003e\n        \u003cli\u003e\n\u003cb\u003e36W total output\u003c\/b\u003e from 24× 1.5W LEDs\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003e12 selectable flash patterns\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eSync \u0026amp; async\u003c\/b\u003e multi-beacon operation\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eLow-profile\u003c\/b\u003e — only 2.15 in tall\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eIP67 \u0026amp; IP69K\u003c\/b\u003e waterproof sealing\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e60G anti-shock\u003c\/b\u003e rating\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eRobust aluminium\u003c\/b\u003e housing\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eUV-resistant PC lens\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eAmber or Clear\u003c\/b\u003e lens options\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e10–30V\u003c\/b\u003e multi-voltage input\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e-45°C to +65°C\u003c\/b\u003e operating range\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eBolt-mount\u003c\/b\u003e installation\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\u003e\u003c\/path\u003e\u003cpath d=\"m3.3 7 8.7 5 8.7-5M12 22V12\"\u003e\u003c\/path\u003e\u003c\/svg\u003eWhat's in the Box\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cp style=\"margin-top:14px;\"\u003e\u003cb\u003ePermanent (Base)\u003c\/b\u003e\u003c\/p\u003e\n      \u003cul class=\"bf-box\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eXDR-2 Low-Profile LED Beacon\u003c\/b\u003e\u003csmall\u003eAmber or Clear lens\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eBolt-Mount Hardware Kit\u003c\/b\u003e\u003csmall\u003eFixed bolt-down mounting\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eOpen-Wire Lead (~16 in)\u003c\/b\u003e\u003csmall\u003eHard-wire into your own switch \u0026amp; power\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp style=\"margin-top:10px;\"\u003e\u003cb\u003ePlug \u0026amp; Play\u003c\/b\u003e\u003c\/p\u003e\n      \u003cul class=\"bf-box\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eXDR-2 Low-Profile LED Beacon\u003c\/b\u003e\u003csmall\u003eAmber or Clear lens\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eBolt-Mount Hardware Kit\u003c\/b\u003e\u003csmall\u003eFixed bolt-down mounting\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003e9.5 ft Plug Harness\u003c\/b\u003e\u003csmall\u003e12V cigarette-socket plug with built-in on\/off + pattern-cycle rocker controls\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cdiv class=\"bf-note\"\u003e\n\u003cb\u003eNote:\u003c\/b\u003e on the Permanent version, flash-pattern selection is set through the wiring; on the Plug \u0026amp; Play version it's handled by the rocker switches on the plug.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 4h16v4H4zM4 10h16v4H4zM4 16h16v4H4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFull Specifications\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003ctable class=\"bf-specs\"\u003e\n        \u003ctr\u003e\n\u003ctd\u003ePower\u003c\/td\u003e\n\u003ctd\u003e36W LED Chip\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLight Source\u003c\/td\u003e\n\u003ctd\u003e24 × 1.5W LED\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eVoltage\u003c\/td\u003e\n\u003ctd\u003e10–30V\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eFlash Patterns\u003c\/td\u003e\n\u003ctd\u003e12\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSynchronization\u003c\/td\u003e\n\u003ctd\u003eSync \u0026amp; Async available\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWaterproof Rating\u003c\/td\u003e\n\u003ctd\u003eIP67 \/ IP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eAnti-Shock Rating\u003c\/td\u003e\n\u003ctd\u003e60G\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eHousing Material\u003c\/td\u003e\n\u003ctd\u003eRobust Aluminium\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLens Material\u003c\/td\u003e\n\u003ctd\u003eUV-Resistant PC\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLens Color\u003c\/td\u003e\n\u003ctd\u003eAmber or Clear\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSize\u003c\/td\u003e\n\u003ctd\u003e4.4 × 4.4 × 2.15 in\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eMounting\u003c\/td\u003e\n\u003ctd\u003eBolt Mount\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eCable\u003c\/td\u003e\n\u003ctd\u003e~16 in lead wire\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWorking Temperature\u003c\/td\u003e\n\u003ctd\u003e-45°C ~ +65°C (-49°F ~ +149°F)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWarranty\u003c\/td\u003e\n\u003ctd\u003eLifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eCertifications \u0026amp; Approvals\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cp style=\"margin-top:14px;\"\u003eIndependently tested and approved to the standards that matter for on-road and fleet use:\u003c\/p\u003e\n      \u003cdiv class=\"bf-certs\"\u003e\n        \u003cspan class=\"bf-cert\"\u003eECE R65\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eECE R10\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eSAE J845\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eCE\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eCISPR 25\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"11\" cy=\"11\" r=\"8\"\u003e\u003c\/circle\u003e\u003cpath d=\"m21 21-4.3-4.3\"\u003e\u003c\/path\u003e\u003c\/svg\u003eApplications\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cdiv class=\"bf-apps\"\u003e\n        \u003cspan class=\"bf-app\"\u003eEmergency Vehicles\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eTow \u0026amp; Recovery\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eConstruction\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eAgriculture \u0026amp; Tractors\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eUtility Fleets\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eSnow Plows\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eForklifts\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eSecurity Patrol\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eWarranty\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cdiv class=\"bf-trust\"\u003e\n        \u003cdiv class=\"bf-tcard\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          \u003cdiv\u003e\n\u003cb\u003eLifetime Warranty\u003c\/b\u003e\u003cspan\u003eCovers defects in workmanship and materials.\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"bf-tcard\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M20 6 9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          \u003cdiv\u003e\n\u003cb\u003eBuilt to Endure\u003c\/b\u003e\u003cspan\u003e60G shock rated, IP69K sealed, -45°C to +65°C.\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Black Oak LED","offers":[{"title":"Permanent","offer_id":43434015916093,"sku":"XDR-2B","price":85.94,"currency_code":"USD","in_stock":true},{"title":"Magnetic","offer_id":43434015948861,"sku":"XDR-2B-M","price":98.44,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/2Beacon.png?v=1785877565"},{"product_id":"xdr-4-beacon","title":"XDR-4 Amber Warning LED Beacon","description":"\u003cdiv class=\"bol-beacon\"\u003e\n\u003cstyle\u003e\n\/* Scoped to .bol-beacon — matches Black Oak LED site styling, won't collide with theme *\/\n.bol-beacon{--ink:#111;--ink2:#3a424e;--muted:#6a7482;--line:#e4e7ec;--bg:#f5f5f5;--soft:#f8f8f6;--yellow:#FEB902;--yellow2:#F5B31B;--navy:#1A3D5E;font-family:Roboto,\"Helvetica Neue\",Arial,sans-serif;color:var(--ink);line-height:1.6;font-size:16px;max-width:1000px;margin:0 auto;}\n.bol-beacon *{box-sizing:border-box;}\n.bol-beacon h2,.bol-beacon h3{font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;line-height:1.2;margin:0;}\n.bol-beacon p{margin:0 0 14px;color:var(--ink2);}\n\n\/* Hero *\/\n.bol-beacon .bf-hero{background:linear-gradient(155deg,#0c0c0c 0%,#14171c 55%,#1A3D5E 130%);color:#fff;border-radius:12px;padding:34px 32px;position:relative;overflow:hidden;}\n.bol-beacon .bf-hero:after{content:\"\";position:absolute;right:-70px;top:-70px;width:280px;height:280px;background:radial-gradient(circle,rgba(254,185,2,.28),transparent 62%);}\n.bol-beacon .bf-kicker{display:inline-block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);font-weight:800;margin-bottom:10px;}\n.bol-beacon .bf-hero h2{font-size:30px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;}\n.bol-beacon .bf-hero .bf-sub{margin-top:12px;font-size:16px;color:#c7d0dc;max-width:640px;position:relative;}\n.bol-beacon .bf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;position:relative;}\n.bol-beacon .bf-chip{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);color:#eaf0f7;font-size:13px;font-weight:600;padding:7px 13px;border-radius:999px;}\n.bol-beacon .bf-chip.is-y{background:var(--yellow);border-color:var(--yellow);color:var(--navy);font-weight:700;}\n\n\/* Spec strip *\/\n.bol-beacon .bf-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0;}\n.bol-beacon .bf-stat{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px 14px;text-align:center;}\n.bol-beacon .bf-stat .bf-ic{width:30px;height:30px;margin:0 auto 8px;display:block;color:var(--yellow2);}\n.bol-beacon .bf-stat b{display:block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:20px;font-weight:800;color:var(--ink);}\n.bol-beacon .bf-stat span{font-size:12.5px;color:var(--muted);}\n\n\/* Section *\/\n.bol-beacon .bf-sec{margin:26px 0;}\n.bol-beacon .bf-sec h3{font-size:20px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;display:flex;align-items:center;gap:9px;}\n.bol-beacon .bf-sec h3:before{content:\"\";width:5px;height:20px;border-radius:3px;background:var(--yellow);display:inline-block;}\n\n\/* Accordion *\/\n.bol-beacon details{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;background:#fff;overflow:hidden;}\n.bol-beacon details[open]{border-color:#cdd4dd;}\n.bol-beacon summary{list-style:none;cursor:pointer;padding:17px 20px;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:16.5px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;}\n.bol-beacon summary::-webkit-details-marker{display:none;}\n.bol-beacon summary .bf-lbl{display:flex;align-items:center;gap:11px;}\n.bol-beacon summary .bf-lbl svg{width:20px;height:20px;color:var(--yellow2);flex:none;}\n.bol-beacon .bf-plus{width:22px;height:22px;position:relative;flex:none;transition:transform .2s;}\n.bol-beacon .bf-plus:before,.bol-beacon .bf-plus:after{content:\"\";position:absolute;background:var(--muted);border-radius:2px;}\n.bol-beacon .bf-plus:before{left:4px;right:4px;top:10px;height:2px;}\n.bol-beacon .bf-plus:after{top:4px;bottom:4px;left:10px;width:2px;}\n.bol-beacon details[open] .bf-plus{transform:rotate(135deg);}\n.bol-beacon .bf-body{padding:2px 20px 20px;border-top:1px solid var(--line);}\n\n\/* Feature list *\/\n.bol-beacon .bf-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px;}\n.bol-beacon .bf-list li{position:relative;padding-left:28px;font-size:14.5px;color:var(--ink2);}\n.bol-beacon .bf-list li b{color:var(--ink);}\n.bol-beacon .bf-list li:before{content:\"\";position:absolute;left:0;top:3px;width:17px;height:17px;border-radius:50%;background:var(--yellow);\n  -webkit-mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/12px no-repeat;\n  mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/12px no-repeat;}\n\n\/* In the box *\/\n.bol-beacon .bf-box{list-style:none;margin:14px 0 0;padding:0;}\n.bol-beacon .bf-box li{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px dashed var(--line);font-size:15px;}\n.bol-beacon .bf-box li:last-child{border-bottom:none;}\n.bol-beacon .bf-qty{flex:none;min-width:40px;height:40px;border-radius:9px;background:var(--navy);border:1px solid var(--navy);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--yellow);font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;}\n.bol-beacon .bf-box b{color:var(--ink);}\n.bol-beacon .bf-box small{display:block;color:var(--muted);font-size:12.5px;}\n.bol-beacon .bf-note{margin-top:14px;font-size:13.5px;color:var(--muted);background:#fffaf0;border:1px solid #f6e2b8;border-radius:9px;padding:11px 14px;}\n\n\/* Specs table *\/\n.bol-beacon .bf-specs{width:100%;border-collapse:collapse;margin-top:14px;font-size:14.5px;}\n.bol-beacon .bf-specs tr{border-bottom:1px solid var(--line);}\n.bol-beacon .bf-specs td{padding:11px 6px;}\n.bol-beacon .bf-specs td:first-child{color:var(--muted);}\n.bol-beacon .bf-specs td:last-child{text-align:right;font-weight:700;color:var(--ink);}\n\n\/* Cert badges *\/\n.bol-beacon .bf-certs{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}\n.bol-beacon .bf-cert{background:var(--navy);color:#fff;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:700;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;letter-spacing:.3px;}\n\n\/* Applications *\/\n.bol-beacon .bf-apps{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px;}\n.bol-beacon .bf-app{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 13px;font-size:13.5px;font-weight:600;color:var(--ink2);}\n\n\/* Also available note *\/\n.bol-beacon .bf-avail{margin:0 0 4px;padding:12px 16px;background:var(--soft);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:10px;font-size:14.5px;color:var(--ink2);}\n.bol-beacon .bf-avail a{color:var(--navy);font-weight:800;text-decoration:none;}\n.bol-beacon .bf-avail a:hover{text-decoration:underline;}\n\n\/* Setup options *\/\n.bol-beacon .bf-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;}\n.bol-beacon .bf-opt{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;}\n.bol-beacon .bf-opt.is-feature{border-color:var(--yellow);box-shadow:0 0 0 1px var(--yellow);}\n.bol-beacon .bf-opt-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px;margin-bottom:10px;}\n.bol-beacon .bf-opt.is-feature .bf-opt-tag{background:var(--yellow);border-color:var(--yellow);}\n.bol-beacon .bf-opt-name{font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:18px;font-weight:800;color:var(--ink);margin-bottom:4px;}\n.bol-beacon .bf-opt-sub{font-size:13.5px;color:var(--muted);margin:0 0 12px;}\n.bol-beacon .bf-oplist{list-style:none;margin:0;padding:0;}\n.bol-beacon .bf-oplist li{position:relative;padding:7px 0 7px 26px;font-size:14px;color:var(--ink2);border-top:1px solid var(--line);}\n.bol-beacon .bf-oplist li:first-child{border-top:none;}\n.bol-beacon .bf-oplist li b{color:var(--ink);}\n.bol-beacon .bf-oplist li:before{content:\"\";position:absolute;left:0;top:10px;width:16px;height:16px;border-radius:50%;background:var(--yellow);\n  -webkit-mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/11px no-repeat;\n  mask:url(\"data:image\/svg+xml;utf8,\u003csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'\u003e\u003cpath fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'\/\u003e\u003c\/svg\u003e\") center\/11px no-repeat;}\n\n\/* Trust *\/\n.bol-beacon .bf-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px;}\n.bol-beacon .bf-tcard{border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;gap:14px;align-items:flex-start;background:#fff;}\n.bol-beacon .bf-tcard svg{width:30px;height:30px;color:var(--navy);flex:none;}\n.bol-beacon .bf-tcard b{display:block;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:15.5px;margin-bottom:3px;}\n.bol-beacon .bf-tcard span{font-size:13.5px;color:var(--muted);}\n\n@media(max-width:720px){\n  .bol-beacon .bf-hero{padding:26px 22px;}\n  .bol-beacon .bf-hero h2{font-size:23px;}\n  .bol-beacon .bf-strip{grid-template-columns:1fr 1fr;}\n  .bol-beacon .bf-list{grid-template-columns:1fr;}\n  .bol-beacon .bf-trust{grid-template-columns:1fr;}\n  .bol-beacon .bf-opts{grid-template-columns:1fr;}\n}\n\/* --- Shopify rich-text safety: the description editor converts \u003cdiv\u003e to inline \u003cspan\u003e; re-assert layout so nothing collapses --- *\/\n.bol-beacon,.bol-beacon .bf-hero,.bol-beacon .bf-sec,.bol-beacon .bf-body,.bol-beacon .bf-note,.bol-beacon .bf-stat,.bol-beacon .bf-avail,.bol-beacon .bf-opt,.bol-beacon .bf-opt-name,.bol-beacon .bf-opt-sub{display:block !important;}\n.bol-beacon .bf-strip,.bol-beacon .bf-list,.bol-beacon .bf-trust,.bol-beacon .bf-opts{display:grid !important;}\n.bol-beacon .bf-chips,.bol-beacon .bf-certs,.bol-beacon .bf-apps,.bol-beacon .bf-tcard,.bol-beacon .bf-box li,.bol-beacon summary,.bol-beacon summary .bf-lbl{display:flex !important;}\n.bol-beacon .bf-hero h2{color:#fff !important;font-size:30px !important;font-weight:800 !important;letter-spacing:.5px !important;text-transform:uppercase !important;line-height:1.2 !important;margin:0 !important;}\n.bol-beacon .bf-kicker{color:#FEB902 !important;}\n.bol-beacon .bf-hero .bf-sub{color:#c7d0dc !important;}\n\u003c\/style\u003e\n\n\u003c!-- HERO --\u003e\n\u003cdiv class=\"bf-hero\"\u003e\n  \u003cspan class=\"bf-kicker\"\u003eWarning \u0026amp; Safety Lighting\u003c\/span\u003e\n  \u003ch2\u003eXDR-4 Beacon\u003c\/h2\u003e\n  \u003cp class=\"bf-sub\"\u003eA heavy-duty 72W LED beacon built to dominate the harshest work environments. 48 high-output LEDs, 12 selectable flash patterns, and full ECE R65 Class 2 + SAE J845 certification — sealed to IP69K and backed by a lifetime warranty.\u003c\/p\u003e\n  \u003cdiv class=\"bf-chips\"\u003e\n    \u003cspan class=\"bf-chip is-y\"\u003eLifetime Warranty\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003eIP67 \/ IP69K\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003eECE R65 Class 2 · SAE J845\u003c\/span\u003e\n    \u003cspan class=\"bf-chip\"\u003e12 Flash Patterns\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- SPEC STRIP --\u003e\n\u003cdiv class=\"bf-strip\"\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M13 2 3 14h7l-1 8 10-12h-7z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e72W\u003c\/b\u003e\u003cspan\u003eLED Output\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003eIP69K\u003c\/b\u003e\u003cspan\u003eSealed \u0026amp; Rated\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M12 7v5l3 2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e12\u003c\/b\u003e\u003cspan\u003eFlash Patterns\u003c\/span\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bf-stat\"\u003e\n    \u003csvg class=\"bf-ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 12h16M12 4l8 8-8 8\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n    \u003cb\u003e10–30V\u003c\/b\u003e\u003cspan\u003eMulti-Voltage\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ALSO AVAILABLE --\u003e\n\u003cdiv class=\"bf-avail\"\u003eAlso available in a compact, low-profile \u003ca href=\"https:\/\/www.blackoakled.com\/products\/xdr2-beacon\"\u003eXDR-2 version →\u003c\/a\u003e\n\u003c\/div\u003e\n\n\u003c!-- OVERVIEW --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eOverview\u003c\/h3\u003e\n  \u003cp\u003eWhen you need maximum output and maximum presence, the XDR-4 Beacon delivers. Forty-eight high-output 1.5W LEDs — 72W total — pack into a rugged heavy-duty housing measuring 4.9 in across and 3.5 in tall, throwing a wall of amber warning light that cuts through daylight, dust, and weather. Twelve selectable flash patterns plus synchronized and asynchronized modes let you run a single beacon or a coordinated array across an entire fleet.\u003c\/p\u003e\n  \u003cp\u003eA \u003cb\u003erobust aluminium housing\u003c\/b\u003e and \u003cb\u003eUV-resistant polycarbonate lens\u003c\/b\u003e shrug off impact, weather, and years of sun. Sealed to \u003cb\u003eIP67 and IP69K\u003c\/b\u003e, rated to withstand \u003cb\u003e60G of shock\u003c\/b\u003e, and operating from \u003cb\u003e-45°C to +65°C\u003c\/b\u003e, it's certified to \u003cb\u003eECE R65 Amber Class 2, ECE R10, SAE J845, CE and CISPR 25 Class 5\u003c\/b\u003e. Runs on any \u003cb\u003e10–30V\u003c\/b\u003e system and mounts with a simple bolt-down fixing.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003c!-- CHOOSE SETUP --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eChoose Your Setup\u003c\/h3\u003e\n  \u003cdiv class=\"bf-opts\"\u003e\n    \u003cdiv class=\"bf-opt\"\u003e\n      \u003cspan class=\"bf-opt-tag\"\u003eOption 1 · Base\u003c\/span\u003e\n      \u003cdiv class=\"bf-opt-name\"\u003ePermanent\u003c\/div\u003e\n      \u003cp class=\"bf-opt-sub\"\u003eHard-wired for a clean, permanent installation.\u003c\/p\u003e\n      \u003cul class=\"bf-oplist\"\u003e\n        \u003cli\u003e\u003cb\u003eOpen \/ bare-wire lead\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eBolt-on mounting\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003eWires into your own \u003cb\u003eswitch \u0026amp; power source\u003c\/b\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bf-opt is-feature\"\u003e\n      \u003cspan class=\"bf-opt-tag\"\u003eOption 2 · Magnetic Mount\u003c\/span\u003e\n      \u003cdiv class=\"bf-opt-name\"\u003eMagnetic Mount\u003c\/div\u003e\n      \u003cp class=\"bf-opt-sub\"\u003eTool-free — drop it on and move it between vehicles in seconds.\u003c\/p\u003e\n      \u003cul class=\"bf-oplist\"\u003e\n        \u003cli\u003e\n\u003cb\u003eStrong magnetic base\u003c\/b\u003e — no drilling\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eCigarette-socket power lead\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eControls built into the plug\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eRocker 1\u003c\/b\u003e — power on \/ off\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eRocker 2\u003c\/b\u003e — cycle through the 12 flash patterns\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- ACCORDIONS --\u003e\n\u003cdiv class=\"bf-sec\"\u003e\n  \u003ch3\u003eDetails\u003c\/h3\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 2 2 7l10 5 10-5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 17l10 5 10-5M2 12l10 5 10-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003eKey Features\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cul class=\"bf-list\"\u003e\n        \u003cli\u003e\n\u003cb\u003e72W total output\u003c\/b\u003e from 48× 1.5W LEDs\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003e12 selectable flash patterns\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eSync \u0026amp; async\u003c\/b\u003e multi-beacon operation\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eHeavy-duty\u003c\/b\u003e aluminium build\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eIP67 \u0026amp; IP69K\u003c\/b\u003e waterproof sealing\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e60G anti-shock\u003c\/b\u003e rating\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eECE R65 Amber Class 2\u003c\/b\u003e certified\u003c\/li\u003e\n        \u003cli\u003e\u003cb\u003eUV-resistant PC lens\u003c\/b\u003e\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eAmber or Clear\u003c\/b\u003e lens options\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e10–30V\u003c\/b\u003e multi-voltage input\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003e-45°C to +65°C\u003c\/b\u003e operating range\u003c\/li\u003e\n        \u003cli\u003e\n\u003cb\u003eBolt-mount\u003c\/b\u003e installation\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M21 16V8a2 2 0 0 0-1-1.7l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.7l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\u003e\u003c\/path\u003e\u003cpath d=\"m3.3 7 8.7 5 8.7-5M12 22V12\"\u003e\u003c\/path\u003e\u003c\/svg\u003eWhat's in the Box\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cp style=\"margin-top:14px;\"\u003e\u003cb\u003ePermanent (Base)\u003c\/b\u003e\u003c\/p\u003e\n      \u003cul class=\"bf-box\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eXDR-4 Heavy-Duty LED Beacon\u003c\/b\u003e\u003csmall\u003eAmber or Clear lens\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eBolt-Mount Hardware Kit\u003c\/b\u003e\u003csmall\u003eFixed bolt-down mounting\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eOpen-Wire Lead (~16 in)\u003c\/b\u003e\u003csmall\u003eHard-wire into your own switch \u0026amp; power\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp style=\"margin-top:10px;\"\u003e\u003cb\u003eMagnetic Mount\u003c\/b\u003e\u003c\/p\u003e\n      \u003cul class=\"bf-box\"\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eXDR-4 Heavy-Duty LED Beacon\u003c\/b\u003e\u003csmall\u003eAmber or Clear lens\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eMagnetic Mount Base\u003c\/b\u003e\u003csmall\u003eStrong, tool-free hold — no drilling\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"bf-qty\"\u003e1×\u003c\/span\u003e\u003cspan\u003e\u003cb\u003eCigarette-Socket Power Lead\u003c\/b\u003e\u003csmall\u003eBuilt-in on\/off + pattern-cycle rocker controls\u003c\/small\u003e\u003c\/span\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cdiv class=\"bf-note\"\u003e\n\u003cb\u003eNote:\u003c\/b\u003e on the Permanent version, flash-pattern selection is set through the wiring; on the Magnetic Mount version it's handled by the rocker switches on the plug.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M4 4h16v4H4zM4 10h16v4H4zM4 16h16v4H4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003eFull Specifications\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003ctable class=\"bf-specs\"\u003e\n        \u003ctr\u003e\n\u003ctd\u003ePower\u003c\/td\u003e\n\u003ctd\u003e72W (48 × 1.5W LED)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLight Source\u003c\/td\u003e\n\u003ctd\u003e48 × 1.5W LED\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eVoltage\u003c\/td\u003e\n\u003ctd\u003e10–30V\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eFlash Patterns\u003c\/td\u003e\n\u003ctd\u003e12\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSynchronization\u003c\/td\u003e\n\u003ctd\u003eSync \u0026amp; Async available\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWaterproof Rating\u003c\/td\u003e\n\u003ctd\u003eIP67 \/ IP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eAnti-Shock Rating\u003c\/td\u003e\n\u003ctd\u003e60G\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eHousing Material\u003c\/td\u003e\n\u003ctd\u003eRobust Aluminium\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLens Material\u003c\/td\u003e\n\u003ctd\u003eUV-Resistant PC\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eLens Color\u003c\/td\u003e\n\u003ctd\u003eAmber or Clear\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSize\u003c\/td\u003e\n\u003ctd\u003e4.9 × 4.9 × 3.5 in\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eMounting\u003c\/td\u003e\n\u003ctd\u003eBolt Mount \/ Magnetic\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eCable\u003c\/td\u003e\n\u003ctd\u003e~16 in lead wire\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWorking Temperature\u003c\/td\u003e\n\u003ctd\u003e-45°C ~ +65°C (-49°F ~ +149°F)\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWarranty\u003c\/td\u003e\n\u003ctd\u003eLifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eCertifications \u0026amp; Approvals\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cp style=\"margin-top:14px;\"\u003eIndependently tested and approved to the standards that matter for on-road and fleet use:\u003c\/p\u003e\n      \u003cdiv class=\"bf-certs\"\u003e\n        \u003cspan class=\"bf-cert\"\u003eECE R65 Amber Class 2\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eECE R10\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eSAE J845\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eCE\u003c\/span\u003e\n        \u003cspan class=\"bf-cert\"\u003eCISPR 25 Class 5\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003ccircle cx=\"11\" cy=\"11\" r=\"8\"\u003e\u003c\/circle\u003e\u003cpath d=\"m21 21-4.3-4.3\"\u003e\u003c\/path\u003e\u003c\/svg\u003eApplications\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cdiv class=\"bf-apps\"\u003e\n        \u003cspan class=\"bf-app\"\u003eEmergency Vehicles\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eTow \u0026amp; Recovery\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eConstruction\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eAgriculture \u0026amp; Tractors\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eUtility Fleets\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eSnow Plows\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eMining \u0026amp; Heavy Equipment\u003c\/span\u003e\n        \u003cspan class=\"bf-app\"\u003eSecurity Patrol\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003e\n      \u003cspan class=\"bf-lbl\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003eWarranty\u003c\/span\u003e\n      \u003cspan class=\"bf-plus\"\u003e\u003c\/span\u003e\n    \u003c\/summary\u003e\n    \u003cdiv class=\"bf-body\"\u003e\n      \u003cdiv class=\"bf-trust\"\u003e\n        \u003cdiv class=\"bf-tcard\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\u003e\u003c\/path\u003e\u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          \u003cdiv\u003e\n\u003cb\u003eLifetime Warranty\u003c\/b\u003e\u003cspan\u003eCovers defects in workmanship and materials.\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"bf-tcard\"\u003e\n          \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M20 6 9 17l-5-5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n          \u003cdiv\u003e\n\u003cb\u003eBuilt to Endure\u003c\/b\u003e\u003cspan\u003e60G shock rated, IP69K sealed, -45°C to +65°C.\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e","brand":"Black Oak LED","offers":[{"title":"Permanent","offer_id":43434015752253,"sku":"XDR-4B","price":106.24,"currency_code":"USD","in_stock":true},{"title":"Magnetic","offer_id":43434015785021,"sku":"XDR-4B-M","price":119.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/XDR-4.png?v=1786041954"},{"product_id":"11-mini-low-pro-emergency-light-bar","title":"11\" Mini Low Pro Emergency Light Bar","description":"\u003c!-- LOWPRO MINI INTERACTIVE PLAYER --\u003e\n\u003cdiv id=\"lowpro-player-block\" style=\"margin:0 0 26px;\"\u003e\n\u003cdiv class=\"lowpro-cta\"\u003e\n\u003ch2 style=\"margin:0 0 4px;font-size:24px;line-height:1.25;\"\u003eTake the Controls: Try This Light Bar Live\u003c\/h2\u003e\n\u003cp style=\"margin:0 0 12px;font-size:15px;line-height:1.5;\"\u003eFlip the rocker, press the pattern button, and switch on the 360° Halo scene light, exactly like the socket controller that ships in the box. Only the colors this bar is offered in can be selected.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ciframe id=\"lowpro-player-frame\" class=\"lowpro-frame\" title=\"Mini Low Pro Emergency Bar interactive demo\" style=\"width:100%;border:0;display:block;border-radius:16px;background:#0a0c0f;\" srcdoc=\"\u0026lt;!DOCTYPE html\u0026gt;\n\u0026lt;html lang=\u0026quot;en\u0026quot;\u0026gt;\n\u0026lt;head\u0026gt;\n\u0026lt;meta charset=\u0026quot;UTF-8\u0026quot;\u0026gt;\n\u0026lt;meta name=\u0026quot;viewport\u0026quot; content=\u0026quot;width=device-width, initial-scale=1.0\u0026quot;\u0026gt;\n\u0026lt;title\u0026gt;Mini Low Pro Simulator\u0026lt;\/title\u0026gt;\n\u0026lt;style\u0026gt;\n  :root{\n    --bg:#0a0c0f; --panel:#111418; --panel2:#161a20; --edge:#242a33;\n    --txt:#e8ecf2; --dim:#8a94a3;\n  }\n  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent}\n  html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);\n    font-family:\u0026quot;Segoe UI\u0026quot;,system-ui,-apple-system,Roboto,Arial,sans-serif;}\n  .wrap{max-width:1100px;margin:0 auto;padding:14px 16px 20px;}\n  header{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}\n  .brand{font-weight:800;letter-spacing:.18em;font-size:19px;white-space:nowrap}\n  .brand span{color:var(--dim);font-weight:600}\n  .sub{color:var(--dim);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase}\n  .sizeBtns{margin-left:auto;display:flex;gap:6px}\n  .sizeBtns button{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);\n    border-radius:7px;font-size:12px;padding:4px 10px;cursor:pointer}\n  .sizeBtns button.on{border-color:#ffb43a;color:#ffcf7d}\n  .stage{background:radial-gradient(ellipse at 50% 30%, #14181e 0%, #0b0d11 70%);\n    border:1px solid var(--edge);border-radius:14px;padding:6px 10px 2px;position:relative;overflow:hidden}\n  .stage svg{display:block;width:100%;height:auto}\n  .stageLabel{position:absolute;top:10px;left:14px;font-size:11px;letter-spacing:.14em;\n    color:#5b6470;text-transform:uppercase}\n  .haloBadge{position:absolute;top:10px;right:14px;display:none;align-items:center;gap:8px;\n    font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#dfe9f7;\n    background:rgba(70,90,120,.22);border:1px solid rgba(190,215,255,.35);\n    border-radius:999px;padding:5px 12px 5px 9px;backdrop-filter:blur(2px)}\n  .haloBadge .dot{width:8px;height:8px;border-radius:50%;background:#F4F8FF;\n    box-shadow:0 0 8px 2px rgba(220,235,255,.9);flex:none}\n  .haloBadge b{font-weight:700;color:#fff}\n  .haloBadge span{color:#9fb0c6;text-transform:none;letter-spacing:.02em}\n  @media(max-width:700px){.haloBadge span{display:none}}\n  .lower{display:grid;grid-template-columns:270px 1fr;gap:14px;margin-top:14px;align-items:stretch}\n  .compactSel{display:none}\n  @media(max-width:840px){\n    .stage{padding:8px 8px 4px}\n    .stageLabel{position:static;font-size:10px;margin:0 0 6px}\n    .haloBadge{position:static;font-size:10px;padding:4px 9px;margin:0 0 6px;width:max-content}\n    .wrap{padding:6px 6px 10px !important}\n    .lower{grid-template-columns:1fr;gap:10px}\n    .cardCtl{order:1}\n    .cardColors{order:2}\n    .cardColors .cRow,.cardColors .hint{display:none}\n    .cardColors.expanded .cRow{display:block}\n    .compactSel{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    .compactSel .sw{cursor:default}\n    .compactSel .sw:hover{transform:none}\n  }\n  .card{background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:14px}\n  .card h3{margin:0 0 10px;font-size:11.5px;letter-spacing:.16em;color:var(--dim);\n    text-transform:uppercase;font-weight:700}\n  .cRow{margin-bottom:12px}\n  .cRow .lbl{font-size:12px;color:var(--dim);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}\n  .swatches{display:flex;gap:8px;flex-wrap:wrap}\n  .sw{width:38px;height:30px;border-radius:7px;border:2px solid #2c333d;cursor:pointer;\n    position:relative;transition:transform .08s}\n  .sw:hover{transform:translateY(-1px)}\n  .sw.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25),0 0 14px rgba(255,255,255,.15)}\n  .sw.dis{opacity:.22;cursor:not-allowed}\n  .sw.none{background:repeating-linear-gradient(45deg,#1a1f26 0 6px,#12161b 6px 12px)}\n  .sw.none::after{content:\u0026quot;OFF\u0026quot;;position:absolute;inset:0;display:flex;align-items:center;\n    justify-content:center;font-size:9px;color:#6b7480;font-weight:700;letter-spacing:.05em}\n  .hint{font-size:11.5px;line-height:1.5;color:#6d7684;border-top:1px solid var(--edge);\n    padding-top:10px;margin-top:2px}\n  .hint b{color:#9aa4b2;font-weight:600}\n  .swapBtn{background:var(--panel2);border:1px solid #2c333d;color:var(--txt);border-radius:7px;\n    font-size:11px;padding:4px 9px;cursor:pointer;letter-spacing:.06em}\n  .swapBtn:hover{border-color:#4a5462}\n  .ctlWrap{display:flex;justify-content:center}\n  .ctlWrap svg{width:100%;max-width:300px;height:auto}\n  .legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;\n    margin:12px auto 0;max-width:420px;border-top:1px solid var(--edge);padding-top:12px}\n  .legend div{display:flex;align-items:baseline;gap:8px;font-size:11.5px;line-height:1.4}\n  .legend b{color:#ffcf7d;font-weight:700;min-width:20px;flex:none}\n  .legend span{color:#7f8b9c}\n  @media(max-width:520px){.legend{grid-template-columns:1fr}}\n  .kb{cursor:pointer}\n  @keyframes ringPulse{0%,100%{stroke-opacity:.9}50%{stroke-opacity:.12}}\n  .pulseRing{fill:none;stroke:#ffb43a;stroke-width:2.5;animation:ringPulse 1.8s ease-in-out infinite;pointer-events:none}\n  @keyframes hintPulse{0%,100%{opacity:.6}50%{opacity:1}}\n  .tryHint{display:flex;justify-content:center;margin:10px 0 0}\n  .tryHint span{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.08em;\n    text-transform:uppercase;color:#ffcf7d;border:1px solid rgba(255,180,58,.45);border-radius:999px;\n    padding:6px 14px;animation:hintPulse 2.4s ease-in-out infinite;background:rgba(255,180,58,.07)}\n  .tryHint .dotLive{width:7px;height:7px;border-radius:50%;background:#ffb43a;\n    box-shadow:0 0 7px 2px rgba(255,180,58,.7);flex:none}\n  footer{margin-top:12px;color:#59626e;font-size:11px;letter-spacing:.04em;\n    display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}\n\u0026lt;\/style\u0026gt;\n\u0026lt;\/head\u0026gt;\n\u0026lt;body\u0026gt;\n\u0026lt;div class=\u0026quot;wrap\u0026quot;\u0026gt;\n  \u0026lt;header\u0026gt;\n    \u0026lt;div class=\u0026quot;brand\u0026quot;\u0026gt;BLACK OAK \u0026lt;span\u0026gt;LED\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;sub\u0026quot;\u0026gt;Mini Low Pro\u0026amp;trade; Emergency Bar · Interactive Demo \u0026amp;bull; \u0026lt;span id=\u0026quot;sizeLabel\u0026quot;\u0026gt;17\u0026amp;Prime;\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;sizeBtns\u0026quot; id=\u0026quot;sizeBtns\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n  \u0026lt;\/header\u0026gt;\n\n  \u0026lt;div class=\u0026quot;stage\u0026quot;\u0026gt;\n    \u0026lt;div class=\u0026quot;stageLabel\u0026quot; id=\u0026quot;patternLabel\u0026quot;\u0026gt;Pattern 1 · Split Steady Burn\u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;haloBadge\u0026quot; id=\u0026quot;haloBadge\u0026quot;\u0026gt;\u0026lt;i class=\u0026quot;dot\u0026quot;\u0026gt;\u0026lt;\/i\u0026gt;\n      \u0026lt;b\u0026gt;360\u0026amp;deg; Halo\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;\u0026amp;nbsp;scene light \u0026amp;middot; rocker down\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;svg id=\u0026quot;barSvg\u0026quot; viewBox=\u0026quot;0 0 1000 240\u0026quot; aria-label=\u0026quot;Light bar simulation\u0026quot;\u0026gt;\u0026lt;\/svg\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\u0026quot;tryHint\u0026quot; id=\u0026quot;tryHint\u0026quot;\u0026gt;\u0026lt;span\u0026gt;\u0026lt;i class=\u0026quot;dotLive\u0026quot;\u0026gt;\u0026lt;\/i\u0026gt;Live demo \u0026amp;middot; flip the rocker, press the button\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n\n  \u0026lt;div class=\u0026quot;lower\u0026quot;\u0026gt;\n    \u0026lt;div class=\u0026quot;card cardColors\u0026quot; id=\u0026quot;colorCard\u0026quot;\u0026gt;\n      \u0026lt;h3\u0026gt;Select Colors\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\u0026quot;compactSel\u0026quot; id=\u0026quot;compactSel\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;cRow\u0026quot;\u0026gt;\n        \u0026lt;div class=\u0026quot;lbl\u0026quot;\u0026gt;\u0026lt;span\u0026gt;Color 1\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\u0026quot;swatches\u0026quot; id=\u0026quot;sw1\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;cRow\u0026quot;\u0026gt;\n        \u0026lt;div class=\u0026quot;lbl\u0026quot;\u0026gt;\u0026lt;span\u0026gt;Color 2 (dual color)\u0026lt;\/span\u0026gt;\n          \u0026lt;button class=\u0026quot;swapBtn\u0026quot; id=\u0026quot;swapBtn\u0026quot; title=\u0026quot;Swap Color 1 and Color 2\u0026quot;\u0026gt;\u0026amp;#8646; Swap\u0026lt;\/button\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div class=\u0026quot;swatches\u0026quot; id=\u0026quot;sw2\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;hint\u0026quot; id=\u0026quot;colorHint\u0026quot;\u0026gt;\u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n    \u0026lt;div class=\u0026quot;card cardCtl\u0026quot;\u0026gt;\n      \u0026lt;h3\u0026gt;Socket Controller · flip the rocker \u0026amp;middot; press the button\u0026lt;\/h3\u0026gt;\n      \u0026lt;div class=\u0026quot;ctlWrap\u0026quot;\u0026gt;\n        \u0026lt;svg id=\u0026quot;ctl\u0026quot; viewBox=\u0026quot;0 0 300 300\u0026quot; aria-label=\u0026quot;Socket plug controller\u0026quot;\u0026gt;\u0026lt;\/svg\u0026gt;\n      \u0026lt;\/div\u0026gt;\n      \u0026lt;div class=\u0026quot;legend\u0026quot;\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;Button\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Next flash pattern\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;I\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Warning flash patterns\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;O\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;Off\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n        \u0026lt;div\u0026gt;\u0026lt;b\u0026gt;II\u0026lt;\/b\u0026gt;\u0026lt;span\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/span\u0026gt;\u0026lt;\/div\u0026gt;\n      \u0026lt;\/div\u0026gt;\n    \u0026lt;\/div\u0026gt;\n  \u0026lt;\/div\u0026gt;\n\n  \u0026lt;footer\u0026gt;\n    \u0026lt;div\u0026gt;BLACK OAK LED · Navigate the Night.\u0026lt;\/div\u0026gt;\n    \u0026lt;div\u0026gt;Designed and engineered in Sarasota, Florida\u0026lt;\/div\u0026gt;\n  \u0026lt;\/footer\u0026gt;\n\u0026lt;\/div\u0026gt;\n\n\u0026lt;script\u0026gt;\n\u0026quot;use strict\u0026quot;;\nconst LEDCOLORS = {\n  amber:{main:\u0026quot;#ffb43a\u0026quot;, core:\u0026quot;#ffe9b0\u0026quot;, glow:\u0026quot;#ff9d00\u0026quot;, label:\u0026quot;Amber\u0026quot;},\n  white:{main:\u0026quot;#F4F8FF\u0026quot;, core:\u0026quot;#ffffff\u0026quot;, glow:\u0026quot;#cfe4ff\u0026quot;, label:\u0026quot;White\u0026quot;},\n  red:  {main:\u0026quot;#ff2d23\u0026quot;, core:\u0026quot;#ffb0a8\u0026quot;, glow:\u0026quot;#ff1400\u0026quot;, label:\u0026quot;Red\u0026quot;},\n  blue: {main:\u0026quot;#2a62ff\u0026quot;, core:\u0026quot;#b8ccff\u0026quot;, glow:\u0026quot;#0040ff\u0026quot;, label:\u0026quot;Blue\u0026quot;},\n  green:{main:\u0026quot;#19d949\u0026quot;, core:\u0026quot;#c2ffcf\u0026quot;, glow:\u0026quot;#00c832\u0026quot;, label:\u0026quot;Green\u0026quot;}\n};\n\n\/* Catalog per size, straight from the product pages.\n   singles: colors sold alone. duals: exact combos sold. *\/\nconst SIZES = {\n  \u0026quot;11\u0026quot;: {\n    label:\u0026quot;11\u0026amp;Prime;\u0026quot;, front:4, span:290, x0:355,\n    singles:[], duals:[[\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;]],\n    note:\u0026quot;The 11\u0026amp;Prime; Mini ships in Amber \u0026amp;amp; White.\u0026quot;\n  },\n  \u0026quot;17\u0026quot;: {\n    label:\u0026quot;17\u0026amp;Prime;\u0026quot;, front:4, span:390, x0:305,\n    singles:[\u0026quot;amber\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;white\u0026quot;],\n    duals:[[\u0026quot;amber\u0026quot;,\u0026quot;blue\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;green\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;red\u0026quot;],[\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;],[\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;],[\u0026quot;red\u0026quot;,\u0026quot;white\u0026quot;]],\n    note:\u0026quot;Every combo shown here is orderable on the 17\u0026amp;Prime; bar.\u0026quot;\n  }\n};\nlet SIZE = \u0026quot;11\u0026quot;;\n\nconst S = {\n  color1:\u0026quot;amber\u0026quot;, color2:\u0026quot;white\u0026quot;,\n  rocker:\u0026quot;up\u0026quot;,            \/\/ up = warning LEDs, mid = off, down = white halo\n  pattern:1\n};\n\nconst NS=\u0026quot;http:\/\/www.w3.org\/2000\/svg\u0026quot;;\nconst bar = document.getElementById(\u0026quot;barSvg\u0026quot;);\nlet modules = [];\nfunction el(name, attrs, parent){\n  const e=document.createElementNS(NS,name);\n  for(const k in attrs) e.setAttribute(k,attrs[k]);\n  if(parent) parent.appendChild(e);\n  return e;\n}\n\nfunction buildBar(){\n  bar.innerHTML=\u0026quot;\u0026quot;; modules=[];\n  const cfg=SIZES[SIZE];\n  const defs = el(\u0026quot;defs\u0026quot;,{},bar);\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;ledGlow\u0026quot;, x:\u0026quot;-80%\u0026quot;,y:\u0026quot;-80%\u0026quot;,width:\u0026quot;260%\u0026quot;,height:\u0026quot;260%\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:4, result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;haloGlow\u0026quot;, filterUnits:\u0026quot;userSpaceOnUse\u0026quot;,\n      x:\u0026quot;-120\u0026quot;,y:\u0026quot;-160\u0026quot;,width:\u0026quot;1240\u0026quot;,height:\u0026quot;560\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:11, result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n\n  const L=cfg.x0, R=cfg.x0+cfg.span, cL=L-75, cR=R+75;\n  const G = el(\u0026quot;g\u0026quot;,{},bar);\n  const haloLayer = el(\u0026quot;g\u0026quot;,{},G);\n  const sidePaths = {\n    front:`M ${L},62 L ${R},62`,\n    back: `M ${L},178 L ${R},178`,\n    left: `M ${L},62 L ${cL},95 L ${cL},145 L ${L},178`,\n    right:`M ${R},62 L ${cR},95 L ${cR},145 L ${R},178`\n  };\n  const haloEls={};\n  for(const z in sidePaths){\n    const g=el(\u0026quot;g\u0026quot;,{filter:\u0026quot;url(#haloGlow)\u0026quot;},haloLayer);\n    [[10,.9],[26,.4],[52,.16],[88,.07]].forEach(([wd,op])=\u0026gt;{\n      el(\u0026quot;path\u0026quot;,{d:sidePaths[z], stroke:\u0026quot;#eef4ff\u0026quot;,\u0026quot;stroke-width\u0026quot;:wd,\u0026quot;stroke-opacity\u0026quot;:op,\n        fill:\u0026quot;none\u0026quot;,\u0026quot;stroke-linecap\u0026quot;:\u0026quot;round\u0026quot;,\u0026quot;stroke-linejoin\u0026quot;:\u0026quot;round\u0026quot;},g);\n    });\n    g.setAttribute(\u0026quot;visibility\u0026quot;,\u0026quot;hidden\u0026quot;);\n    haloEls[z]=g;\n  }\n  S._haloEls=haloEls;\n\n  el(\u0026quot;polygon\u0026quot;,{points:`${L},62 ${R},62 ${cR},95 ${cR},145 ${R},178 ${L},178 ${cL},145 ${cL},95`,\n    fill:\u0026quot;#15181d\u0026quot;, stroke:\u0026quot;#3a4149\u0026quot;,\u0026quot;stroke-width\u0026quot;:3},G);\n  el(\u0026quot;polygon\u0026quot;,{points:`${L+8},70 ${R-8},70 ${cR-12},99 ${cR-12},141 ${R-8},170 ${L+8},170 ${cL+12},141 ${cL+12},99`,\n    fill:\u0026quot;#0e1114\u0026quot;, stroke:\u0026quot;#22272e\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},G);\n  el(\u0026quot;text\u0026quot;,{x:500,y:114,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#c9d0d9\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;17\u0026quot;,\n    \u0026quot;font-weight\u0026quot;:\u0026quot;800\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;4\u0026quot;,\u0026quot;font-family\u0026quot;:\u0026quot;inherit\u0026quot;},G).textContent=\u0026quot;BLACK OAK\u0026quot;;\n  el(\u0026quot;text\u0026quot;,{x:500,y:130,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#4c545e\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;8\u0026quot;,\n    \u0026quot;letter-spacing\u0026quot;:\u0026quot;2\u0026quot;},G).textContent=\u0026quot;SAE W3-1 22\u0026quot;;\n\n  const ledLayer = el(\u0026quot;g\u0026quot;,{},G);\n  const N=cfg.front, h=12, gap=6;\n  const w = cfg.span\/N - gap;\n  const addMod=(zone,x,y)=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{},ledLayer);\n    const lens=el(\u0026quot;rect\u0026quot;,{x,y,width:w,height:h,rx:4, fill:\u0026quot;#23282f\u0026quot;, stroke:\u0026quot;#10131a\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},g);\n    const halo=el(\u0026quot;rect\u0026quot;,{x:x-6,y:y-6,width:w+12,height:h+12,rx:9, fill:\u0026quot;none\u0026quot;,opacity:0, filter:\u0026quot;url(#ledGlow)\u0026quot;},g);\n    modules.push({zone, lens, halo, px:x+w\/2});\n  };\n  const addRot=(zone,cx,cy,len,rot)=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{transform:`rotate(${rot} ${cx} ${cy})`},ledLayer);\n    const lens=el(\u0026quot;rect\u0026quot;,{x:cx-len\/2,y:cy-h\/2,width:len,height:h,rx:4,\n      fill:\u0026quot;#23282f\u0026quot;,stroke:\u0026quot;#10131a\u0026quot;,\u0026quot;stroke-width\u0026quot;:1},g);\n    const halo=el(\u0026quot;rect\u0026quot;,{x:cx-len\/2-6,y:cy-h\/2-6,width:len+12,height:h+12,rx:9,\n      fill:\u0026quot;none\u0026quot;,opacity:0,filter:\u0026quot;url(#ledGlow)\u0026quot;},g);\n    modules.push({zone,lens,halo,px:cx});\n  };\n  for(let i=0;i\u0026lt;N;i++){ addMod(\u0026quot;front\u0026quot;, L+5+i*(cfg.span\/N), 52); }\n  addRot(\u0026quot;right\u0026quot;,R+34,73,64,23.7);\n  addRot(\u0026quot;right\u0026quot;,cR-4,120,44,90);\n  addRot(\u0026quot;right\u0026quot;,R+34,167,64,-23.7);\n  for(let i=N-1;i\u0026gt;=0;i--){ addMod(\u0026quot;back\u0026quot;, L+5+i*(cfg.span\/N), 176); }\n  addRot(\u0026quot;left\u0026quot;,L-34,167,64,23.7);\n  addRot(\u0026quot;left\u0026quot;,cL+4,120,44,90);\n  addRot(\u0026quot;left\u0026quot;,L-34,73,64,-23.7);\n\n  const pxs=modules.map(m=\u0026gt;m.px);\n  S._pxmin=Math.min(...pxs); S._pxmax=Math.max(...pxs);\n  const mid=(S._pxmin+S._pxmax)\/2;\n  modules.forEach(m=\u0026gt;{ m.side = m.px\u0026lt;=mid ? \u0026quot;L\u0026quot;:\u0026quot;R\u0026quot;; m.p=(m.px-S._pxmin)\/(S._pxmax-S._pxmin); });\n}\n\n\/* ---- Pattern engine. Timings measured frame-by-frame from the 17\u0026quot; socket-controller video. ---- *\/\nfunction ph(t,cyc){ return t % cyc; }\nconst PATTERNS = [\n  {name:\u0026quot;Split Steady Burn\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{           \/\/ video 11.5-16s \/ 26-37s \/ 95s-end\n    return {color: m.side===\u0026quot;L\u0026quot;?c1:c2, k:.85};\n  }},\n  {name:\u0026quot;Alternating Single Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{     \/\/ video 37-42s: A 170ms, off 230, W 200, off 240\n    const p=ph(t,840);\n    if(p\u0026lt;170) return {color:c1,k:1};\n    if(p\u0026gt;=400\u0026amp;\u0026amp;p\u0026lt;600) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Split Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{                  \/\/ video 42.5-45.8s: halves flash together, 200 on \/ 270 off\n    const p=ph(t,470);\n    if(p\u0026lt;200) return {color: m.side===\u0026quot;L\u0026quot;?c2:c1, k:1};\n    return null;\n  }},\n  {name:\u0026quot;Alternating Double Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{     \/\/ video 45.9-49s\n    const p=ph(t,1470);\n    if(p\u0026lt;130||(p\u0026gt;=200\u0026amp;\u0026amp;p\u0026lt;330)) return {color:c1,k:1};\n    if((p\u0026gt;=730\u0026amp;\u0026amp;p\u0026lt;860)||(p\u0026gt;=930\u0026amp;\u0026amp;p\u0026lt;1060)) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Slow Alternating Flash\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{       \/\/ video 49-52s: 430 on \/ 370 off each color\n    const p=ph(t,1600);\n    if(p\u0026lt;430) return {color:c1,k:1};\n    if(p\u0026gt;=800\u0026amp;\u0026amp;p\u0026lt;1230) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Double Flash + Steady\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{        \/\/ video 52.2-55.9s: C1 double pulse, C2 400ms burn\n    const p=ph(t,1300);\n    if(p\u0026lt;200||(p\u0026gt;=270\u0026amp;\u0026amp;p\u0026lt;470)) return {color:c1,k:1};\n    if(p\u0026gt;=600\u0026amp;\u0026amp;p\u0026lt;1000) return {color:c2,k:.85};\n    return null;\n  }},\n  {name:\u0026quot;Half Ping-Pong\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{               \/\/ video 56-63s: L C1, R C1, L C2, R C2\n    const p=ph(t,1600), seg=Math.floor(p\/400), local=p%400;\n    if(local\u0026gt;=270) return null;\n    const col = seg\u0026lt;2?c1:c2, side = (seg%2===0)?\u0026quot;L\u0026quot;:\u0026quot;R\u0026quot;;\n    return m.side===side ? {color:col,k:1} : null;\n  }},\n  {name:\u0026quot;Dual Rotation\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{                \/\/ video 63-70.4s: opposite ends counter-chasing\n    const p=ph(t,1400)\/1400;\n    const d1=Math.abs(m.p-p), d2=Math.abs(m.p-((p+.5)%1));\n    if(Math.min(d1,1-d1)\u0026lt;.18) return {color:c1,k:1};\n    if(Math.min(d2,1-d2)\u0026lt;.18) return {color:c2,k:1};\n    return null;\n  }},\n  {name:\u0026quot;Steady + Flash Combo\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{         \/\/ video 70.4-77.5s: one half steady, other flashes; swaps\n    const swap=Math.floor(t\/3500)%2===1;\n    const steadySide = swap?\u0026quot;R\u0026quot;:\u0026quot;L\u0026quot;;\n    if(m.side===steadySide) return {color: swap?c2:c1, k:.8};\n    const p=ph(t,730);\n    if(p\u0026lt;330) return {color: swap?c1:c2, k:1};\n    return null;\n  }},\n  {name:\u0026quot;End-to-End Sweep\u0026quot;, f:(m,t,c1,c2)=\u0026gt;{             \/\/ video 77.6-85.9s: C1 builds across, then C2\n    const cyc=1700, p=ph(t,cyc), half=cyc\/2;\n    const dirFlip=Math.floor(t\/cyc)%2===1;\n    const local=p%half, col=p\u0026lt;half?c1:c2;\n    let b;\n    if(local\u0026lt;500) b=local\/500; else if(local\u0026lt;700) b=1; else return null;\n    const pos=dirFlip?1-m.p:m.p;\n    return pos\u0026lt;=b+.002 ? {color:col,k:1} : null;\n  }}\n];\n\nfunction activeColors(){\n  const c1=S.color1, c2=S.color2||S.color1;\n  return [c1,c2];\n}\n\nlet lastLabel=\u0026quot;\u0026quot;;\nfunction render(t){\n  const halo = S.rocker===\u0026quot;down\u0026quot;;\n  const on = S.rocker===\u0026quot;up\u0026quot;;\n  const [c1,c2]=activeColors();\n  const P=PATTERNS[S.pattern-1];\n  for(const m of modules){\n    let st=null;\n    if(on) st=P.f(m,t,c1,c2);\n    else if(halo) st={color:\u0026quot;white\u0026quot;,k:.9};\n    m.cur=st;\n    if(st){ m.lastT=t; m.lastC=st.color; m.lastK=st.k; }\n    let drawC=null, drawK=0;\n    if(st){ drawC=st.color; drawK=st.k; }\n    else if(m.lastC \u0026amp;\u0026amp; (t-m.lastT)\u0026lt;70){ drawC=m.lastC; drawK=m.lastK*(1-(t-m.lastT)\/70)*.7; }\n    if(drawC){\n      const c=LEDCOLORS[drawC];\n      m.lens.setAttribute(\u0026quot;fill\u0026quot;, drawK\u0026gt;.55? c.core : c.main);\n      m.lens.setAttribute(\u0026quot;stroke\u0026quot;, c.main);\n      m.halo.setAttribute(\u0026quot;fill\u0026quot;, c.glow);\n      m.halo.setAttribute(\u0026quot;opacity\u0026quot;, (0.85*drawK).toFixed(2));\n    }else{\n      m.lens.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#23282f\u0026quot;);\n      m.lens.setAttribute(\u0026quot;stroke\u0026quot;,\u0026quot;#10131a\u0026quot;);\n      m.halo.setAttribute(\u0026quot;opacity\u0026quot;,\u0026quot;0\u0026quot;);\n    }\n  }\n  for(const z in S._haloEls) S._haloEls[z].setAttribute(\u0026quot;visibility\u0026quot;, halo?\u0026quot;visible\u0026quot;:\u0026quot;hidden\u0026quot;);\n  const lbl = S.rocker===\u0026quot;mid\u0026quot; ? \u0026quot;Rocker centered · Off\u0026quot;\n    : S.rocker===\u0026quot;down\u0026quot; ? \u0026quot;360° Halo Scene Light · steady white\u0026quot;\n    : tourActive ? \u0026quot;Live demo · try the controller\u0026quot;\n    : `Pattern ${S.pattern} · ${P.name}`;\n  if(lbl!==lastLabel){ lastLabel=lbl; document.getElementById(\u0026quot;patternLabel\u0026quot;).textContent=lbl; }\n  document.getElementById(\u0026quot;haloBadge\u0026quot;).style.display = halo ? \u0026quot;flex\u0026quot;:\u0026quot;none\u0026quot;;\n  requestAnimationFrame(render);\n}\n\n\/* ---------------- Socket controller (replica of the plug in the video) ---------------- *\/\nconst ctl=document.getElementById(\u0026quot;ctl\u0026quot;);\nlet rockerParts={}, patternBtnG=null;\nfunction buildController(){\n  ctl.innerHTML=\u0026quot;\u0026quot;;\n  const defs=el(\u0026quot;defs\u0026quot;,{},ctl);\n  (()=\u0026gt;{ const f=el(\u0026quot;filter\u0026quot;,{id:\u0026quot;btnGlow\u0026quot;,x:\u0026quot;-40%\u0026quot;,y:\u0026quot;-40%\u0026quot;,width:\u0026quot;180%\u0026quot;,height:\u0026quot;180%\u0026quot;},defs);\n    el(\u0026quot;feGaussianBlur\u0026quot;,{stdDeviation:\u0026quot;2.2\u0026quot;,result:\u0026quot;b\u0026quot;},f);\n    const m=el(\u0026quot;feMerge\u0026quot;,{},f);\n    el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;b\u0026quot;},m); el(\u0026quot;feMergeNode\u0026quot;,{in:\u0026quot;SourceGraphic\u0026quot;},m); })();\n  const lg=el(\u0026quot;linearGradient\u0026quot;,{id:\u0026quot;plugBody\u0026quot;,x1:\u0026quot;0\u0026quot;,y1:\u0026quot;0\u0026quot;,x2:\u0026quot;0\u0026quot;,y2:\u0026quot;1\u0026quot;},defs);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;0\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#2a2f37\u0026quot;},lg);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;.5\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#171a1f\u0026quot;},lg);\n  el(\u0026quot;stop\u0026quot;,{offset:\u0026quot;1\u0026quot;,\u0026quot;stop-color\u0026quot;:\u0026quot;#0d0f12\u0026quot;},lg);\n\n  \/* socket base (the 12V outlet it plugs into) *\/\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:262,rx:118,ry:26,fill:\u0026quot;#0b0d10\u0026quot;,stroke:\u0026quot;#242a33\u0026quot;},ctl);\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:256,rx:100,ry:20,fill:\u0026quot;#10131a\u0026quot;,stroke:\u0026quot;#2b333d\u0026quot;},ctl);\n  el(\u0026quot;ellipse\u0026quot;,{cx:150,cy:254,rx:74,ry:14,fill:\u0026quot;none\u0026quot;,stroke:\u0026quot;#2a62ff\u0026quot;,\u0026quot;stroke-opacity\u0026quot;:\u0026quot;.55\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;3\u0026quot;,filter:\u0026quot;url(#btnGlow)\u0026quot;},ctl);\n\n  \/* plug barrel *\/\n  el(\u0026quot;rect\u0026quot;,{x:116,y:196,width:68,height:62,rx:14,fill:\u0026quot;url(#plugBody)\u0026quot;,stroke:\u0026quot;#000\u0026quot;},ctl);\n\n  \/* controller head *\/\n  el(\u0026quot;rect\u0026quot;,{x:70,y:26,width:160,height:184,rx:26,fill:\u0026quot;url(#plugBody)\u0026quot;,stroke:\u0026quot;#000\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;2\u0026quot;},ctl);\n  el(\u0026quot;rect\u0026quot;,{x:78,y:34,width:144,height:168,rx:20,fill:\u0026quot;none\u0026quot;,stroke:\u0026quot;#2c333d\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1.2\u0026quot;},ctl);\n\n  \/* pattern button on top *\/\n  const pb=el(\u0026quot;g\u0026quot;,{class:\u0026quot;kb\u0026quot;,role:\u0026quot;button\u0026quot;,tabindex:\u0026quot;0\u0026quot;,\u0026quot;aria-label\u0026quot;:\u0026quot;Cycle flash pattern\u0026quot;},ctl);\n  el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:20,fill:\u0026quot;#101318\u0026quot;,stroke:\u0026quot;#000\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;2\u0026quot;},pb);\n  const pbFace=el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:14,fill:\u0026quot;#22262d\u0026quot;,stroke:\u0026quot;#3a414b\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1.5\u0026quot;},pb);\n  el(\u0026quot;text\u0026quot;,{x:150,y:92,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#8a94a3\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;10\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;1.5\u0026quot;,\u0026quot;font-weight\u0026quot;:\u0026quot;700\u0026quot;},pb).textContent=\u0026quot;PATTERN\u0026quot;;\n  pb.addEventListener(\u0026quot;click\u0026quot;,()=\u0026gt;press(\u0026quot;pattern\u0026quot;));\n  pb.addEventListener(\u0026quot;keydown\u0026quot;,e=\u0026gt;{if(e.key===\u0026quot;Enter\u0026quot;||e.key===\u0026quot; \u0026quot;){e.preventDefault();press(\u0026quot;pattern\u0026quot;);}});\n  patternBtnG={g:pb,face:pbFace};\n  S._ring=el(\u0026quot;circle\u0026quot;,{cx:150,cy:58,r:24,class:\u0026quot;pulseRing\u0026quot;},ctl);\n\n  \/* 3-position rocker *\/\n  const rx=150, ry=150, rw=56, rh=92;\n  el(\u0026quot;rect\u0026quot;,{x:rx-rw\/2-7,y:ry-rh\/2-7,width:rw+14,height:rh+14,rx:12,fill:\u0026quot;#0c0e12\u0026quot;,stroke:\u0026quot;#000\u0026quot;},ctl);\n  const zones=[\n    {pos:\u0026quot;up\u0026quot;,   y:ry-rh\/2,      lab:\u0026quot;I\u0026quot;},\n    {pos:\u0026quot;mid\u0026quot;,  y:ry-rh\/6,      lab:\u0026quot;O\u0026quot;},\n    {pos:\u0026quot;down\u0026quot;, y:ry+rh\/6,      lab:\u0026quot;II\u0026quot;}\n  ];\n  rockerParts={};\n  zones.forEach(z=\u0026gt;{\n    const g=el(\u0026quot;g\u0026quot;,{class:\u0026quot;kb\u0026quot;,role:\u0026quot;button\u0026quot;,tabindex:\u0026quot;0\u0026quot;,\u0026quot;aria-label\u0026quot;:\u0026quot;Rocker \u0026quot;+z.pos},ctl);\n    const r=el(\u0026quot;rect\u0026quot;,{x:rx-rw\/2,y:z.y,width:rw,height:rh\/3,fill:\u0026quot;#1b1f26\u0026quot;,stroke:\u0026quot;#31383f\u0026quot;,\u0026quot;stroke-width\u0026quot;:\u0026quot;1\u0026quot;},g);\n    const tx=el(\u0026quot;text\u0026quot;,{x:rx,y:z.y+rh\/6+4,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;,fill:\u0026quot;#9aa4b2\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;13\u0026quot;,\u0026quot;font-weight\u0026quot;:\u0026quot;700\u0026quot;},g);\n    tx.textContent=z.lab;\n    g.addEventListener(\u0026quot;click\u0026quot;,()=\u0026gt;press(\u0026quot;rocker_\u0026quot;+z.pos));\n    g.addEventListener(\u0026quot;keydown\u0026quot;,e=\u0026gt;{if(e.key===\u0026quot;Enter\u0026quot;||e.key===\u0026quot; \u0026quot;){e.preventDefault();press(\u0026quot;rocker_\u0026quot;+z.pos);}});\n    rockerParts[z.pos]={rect:r,text:tx};\n  });\n\n  el(\u0026quot;text\u0026quot;,{x:150,y:288,fill:\u0026quot;#59636f\u0026quot;,\u0026quot;font-size\u0026quot;:\u0026quot;10\u0026quot;,\u0026quot;letter-spacing\u0026quot;:\u0026quot;1.5\u0026quot;,\u0026quot;text-anchor\u0026quot;:\u0026quot;middle\u0026quot;},ctl).textContent=\u0026quot;12V SOCKET\u0026quot;;\n  syncRocker();\n}\nfunction syncRocker(){\n  for(const pos in rockerParts){\n    const on = S.rocker===pos;\n    rockerParts[pos].rect.setAttribute(\u0026quot;fill\u0026quot;, on? (pos===\u0026quot;mid\u0026quot;?\u0026quot;#3a414b\u0026quot;:\u0026quot;#dfe7f5\u0026quot;) : \u0026quot;#1b1f26\u0026quot;);\n    rockerParts[pos].text.setAttribute(\u0026quot;fill\u0026quot;, on? \u0026quot;#12151a\u0026quot; : \u0026quot;#9aa4b2\u0026quot;);\n    if(on) rockerParts[pos].rect.setAttribute(\u0026quot;filter\u0026quot;,\u0026quot;url(#btnGlow)\u0026quot;);\n    else rockerParts[pos].rect.removeAttribute(\u0026quot;filter\u0026quot;);\n  }\n}\nfunction press(key){\n  markInteract();\n  if(key===\u0026quot;pattern\u0026quot;){\n    if(S.rocker!==\u0026quot;up\u0026quot;){ S.rocker=\u0026quot;up\u0026quot;; }   \/\/ like the hardware: button only matters with rocker up\n    else S.pattern = S.pattern % PATTERNS.length + 1;\n    patternBtnG.face.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#aab6c9\u0026quot;);\n    setTimeout(()=\u0026gt;patternBtnG.face.setAttribute(\u0026quot;fill\u0026quot;,\u0026quot;#22262d\u0026quot;),140);\n  }\n  if(key===\u0026quot;rocker_up\u0026quot;) S.rocker=\u0026quot;up\u0026quot;;\n  if(key===\u0026quot;rocker_mid\u0026quot;) S.rocker=\u0026quot;mid\u0026quot;;\n  if(key===\u0026quot;rocker_down\u0026quot;) S.rocker=\u0026quot;down\u0026quot;;\n  syncRocker();\n}\n\n\/* ---------------- Color selection, constrained to the catalog ---------------- *\/\nfunction catalog(){ return SIZES[SIZE]; }\nfunction validC2(c1){\n  const c=catalog(); const out=[];\n  c.duals.forEach(([a,b])=\u0026gt;{ if(a===c1) out.push(b); else if(b===c1) out.push(a); });\n  return out;\n}\nfunction allC1(){\n  const c=catalog(); const set=new Set(c.singles);\n  c.duals.forEach(([a,b])=\u0026gt;{set.add(a);set.add(b);});\n  return [\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;].filter(x=\u0026gt;set.has(x));\n}\nfunction buildCompact(){\n  const c=document.getElementById(\u0026quot;compactSel\u0026quot;);\n  c.innerHTML=\u0026quot;\u0026quot;;\n  const mk=(col)=\u0026gt;{ const d=document.createElement(\u0026quot;div\u0026quot;); d.className=\u0026quot;sw\u0026quot;;\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label; return d; };\n  const lab=document.createElement(\u0026quot;span\u0026quot;);\n  lab.style.cssText=\u0026quot;font-size:12px;color:#8a94a3\u0026quot;;\n  lab.textContent=\u0026quot;Your colors:\u0026quot;;\n  c.appendChild(lab);\n  c.appendChild(mk(S.color1));\n  if(S.color2) c.appendChild(mk(S.color2));\n  const btn=document.createElement(\u0026quot;button\u0026quot;);\n  btn.className=\u0026quot;swapBtn\u0026quot;;\n  const card=document.getElementById(\u0026quot;colorCard\u0026quot;);\n  btn.textContent = card.classList.contains(\u0026quot;expanded\u0026quot;) ? \u0026quot;Done\u0026quot; : \u0026quot;Change colors\u0026quot;;\n  btn.onclick=()=\u0026gt;{ card.classList.toggle(\u0026quot;expanded\u0026quot;); buildCompact(); };\n  c.appendChild(btn);\n}\nfunction buildSwatches(){\n  buildCompact();\n  const s1=document.getElementById(\u0026quot;sw1\u0026quot;), s2=document.getElementById(\u0026quot;sw2\u0026quot;);\n  s1.innerHTML=\u0026quot;\u0026quot;; s2.innerHTML=\u0026quot;\u0026quot;;\n  const c=catalog();\n  for(const col of allC1()){\n    const d=document.createElement(\u0026quot;div\u0026quot;);\n    d.className=\u0026quot;sw\u0026quot;+(S.color1===col?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;);\n    d.style.background=LEDCOLORS[col].main; d.title=LEDCOLORS[col].label;\n    d.onclick=()=\u0026gt;{\n      S.color1=col;\n      const v=validC2(col);\n      if(S.color2 \u0026amp;\u0026amp; !v.includes(S.color2)) S.color2 = v.length? v[0] : null;\n      if(!S.color2 \u0026amp;\u0026amp; !c.singles.includes(col) \u0026amp;\u0026amp; v.length) S.color2=v[0];\n      buildSwatches();\n    };\n    s1.appendChild(d);\n  }\n  const v=validC2(S.color1);\n  if(c.singles.includes(S.color1)){\n    const none=document.createElement(\u0026quot;div\u0026quot;);\n    none.className=\u0026quot;sw none\u0026quot;+(S.color2===null?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;);\n    none.title=\u0026quot;Single color\u0026quot;; none.onclick=()=\u0026gt;{S.color2=null; buildSwatches();};\n    s2.appendChild(none);\n  }\n  for(const col of [\u0026quot;amber\u0026quot;,\u0026quot;white\u0026quot;,\u0026quot;red\u0026quot;,\u0026quot;blue\u0026quot;,\u0026quot;green\u0026quot;]){\n    if(col===S.color1) continue;\n    const ok=v.includes(col);\n    const d=document.createElement(\u0026quot;div\u0026quot;);\n    d.className=\u0026quot;sw\u0026quot;+(S.color2===col?\u0026quot; sel\u0026quot;:\u0026quot;\u0026quot;)+(ok?\u0026quot;\u0026quot;:\u0026quot; dis\u0026quot;);\n    d.style.background=LEDCOLORS[col].main;\n    d.title=ok? LEDCOLORS[col].label : \u0026quot;Not offered with \u0026quot;+LEDCOLORS[S.color1].label+\u0026quot; on this size\u0026quot;;\n    if(ok) d.onclick=()=\u0026gt;{ S.color2=col; buildSwatches(); };\n    s2.appendChild(d);\n  }\n  document.getElementById(\u0026quot;colorHint\u0026quot;).innerHTML =\n    catalog().note + \u0026quot; Rocker \u0026lt;b\u0026gt;up\u0026lt;\/b\u0026gt; runs the warning patterns and the button steps through them, \u0026quot; +\n    \u0026quot;exactly like the switch built into the socket plug. Rocker \u0026lt;b\u0026gt;down\u0026lt;\/b\u0026gt; is the \u0026lt;b\u0026gt;360\u0026amp;deg; Halo scene light\u0026lt;\/b\u0026gt;: \u0026quot; +\n    \u0026quot;steady white work light, a Low Pro exclusive.\u0026quot;;\n}\ndocument.getElementById(\u0026quot;swapBtn\u0026quot;).onclick=()=\u0026gt;{\n  if(!S.color2) return;\n  const a=S.color1,b=S.color2;\n  const c=catalog();\n  const ok=c.duals.some(([x,y])=\u0026gt;(x===b\u0026amp;\u0026amp;y===a)||(x===a\u0026amp;\u0026amp;y===b));\n  if(ok){ S.color1=b; S.color2=a; buildSwatches(); }\n};\n\n\/* ---------------- Size selector (prototype only; each product page pins its size) ---------------- *\/\nfunction buildSizeBtns(){\n  const holder=document.getElementById(\u0026quot;sizeBtns\u0026quot;);\n  holder.innerHTML=\u0026quot;\u0026quot;;\n  for(const s in SIZES){\n    const b=document.createElement(\u0026quot;button\u0026quot;);\n    b.textContent=s+'\u0026quot;'; b.className=SIZE===s?\u0026quot;on\u0026quot;:\u0026quot;\u0026quot;;\n    b.onclick=()=\u0026gt;{ SIZE=s; applySize(); };\n    holder.appendChild(b);\n  }\n}\nfunction applySize(){\n  document.getElementById(\u0026quot;sizeLabel\u0026quot;).innerHTML=SIZES[SIZE].label;\n  const c=catalog();\n  \/* prefer amber\/white, the house default, when the size offers it *\/\n  const pref=c.duals.find(([a,b])=\u0026gt;(a===\u0026quot;amber\u0026quot;\u0026amp;\u0026amp;b===\u0026quot;white\u0026quot;)||(a===\u0026quot;white\u0026quot;\u0026amp;\u0026amp;b===\u0026quot;amber\u0026quot;));\n  const firstDual=pref||c.duals[0];\n  S.color1=firstDual?\u0026quot;amber\u0026quot;:(c.singles[0]||\u0026quot;amber\u0026quot;);\n  if(firstDual\u0026amp;\u0026amp;!firstDual.includes(\u0026quot;amber\u0026quot;)) S.color1=firstDual[0];\n  S.color2=firstDual?(firstDual.find(x=\u0026gt;x!==S.color1)||null):null;\n  S.pattern=1;\n  buildBar(); buildSwatches(); buildSizeBtns();\n}\n\n\/* ---------------- Attract mode ---------------- *\/\nlet interacted=false, idleTimer=null, tourTimer=null, tourActive=false;\nfunction markInteract(){\n  if(interacted) return;\n  interacted=true;\n  if(tourActive){ tourActive=false; S.pattern=1; }\n  clearTimeout(tourTimer); clearTimeout(idleTimer);\n  const h=document.getElementById(\u0026quot;tryHint\u0026quot;);\n  if(h){ h.style.transition=\u0026quot;opacity .5s\u0026quot;; h.style.opacity=\u0026quot;0\u0026quot;; setTimeout(()=\u0026gt;h.remove(),600); }\n  if(S._ring) S._ring.remove();\n}\nfunction attractSweep(){\n  if(interacted||tourActive) return;\n  tourActive=true;\n  const prev=S.pattern; S.pattern=10;      \/\/ End-to-End Sweep as the attract animation\n  tourTimer=setTimeout(()=\u0026gt;{ if(tourActive){ tourActive=false; S.pattern=prev; } scheduleIdle(); }, 3600);\n}\nfunction scheduleIdle(){\n  if(interacted) return;\n  clearTimeout(idleTimer);\n  idleTimer=setTimeout(attractSweep, 18000);\n}\n(function(){\n  let fired=false;\n  const start=()=\u0026gt;{ if(!fired){ fired=true; setTimeout(attractSweep, 700); } };\n  if(window.IntersectionObserver){\n    new IntersectionObserver((es,obs)=\u0026gt;{\n      if(es.some(e=\u0026gt;e.isIntersecting)){ start(); obs.disconnect(); }\n    },{threshold:.5}).observe(document.querySelector(\u0026quot;.stage\u0026quot;));\n  } else start();\n})();\n\n\/* ---------------- Boot + embed plumbing ---------------- *\/\nbuildController();\napplySize();\nrequestAnimationFrame(render);\n\n(function(){\n  const embedded = (window!==parent);\n  if(embedded){\n    document.querySelector(\u0026quot;header\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    document.querySelector(\u0026quot;footer\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    document.getElementById(\u0026quot;sizeBtns\u0026quot;).style.display=\u0026quot;none\u0026quot;;\n    if(window.innerWidth\u0026gt;840) document.querySelector(\u0026quot;.wrap\u0026quot;).style.padding=\u0026quot;10px 12px 14px\u0026quot;;\n  }\n  const report=()=\u0026gt;{ try{\n    parent.postMessage({type:\u0026quot;lowpro-player-height\u0026quot;,\n      height: document.querySelector(\u0026quot;.wrap\u0026quot;).scrollHeight+8}, \u0026quot;*\u0026quot;);\n  }catch(e){} };\n  if(window.ResizeObserver) new ResizeObserver(report).observe(document.querySelector(\u0026quot;.wrap\u0026quot;));\n  window.addEventListener(\u0026quot;load\u0026quot;,report); window.addEventListener(\u0026quot;pageshow\u0026quot;,report);\n  setTimeout(report,400); setTimeout(report,1500);\n  let n=0; const iv=setInterval(()=\u0026gt;{ report(); if(++n\u0026gt;10) clearInterval(iv); },1200);\n})();\n\u0026lt;\/script\u0026gt;\n\u0026lt;\/body\u0026gt;\n\u0026lt;\/html\u0026gt;\n\"\u003e\u003c\/iframe\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.lowpro-frame{height:775px}\n@media(max-width:840px){\n  .lowpro-cta{display:none}\n  .lowpro-frame{height:790px}\n}\n\u003c\/style\u003e\n\u003cscript\u003e\nwindow.addEventListener(\"message\",function(e){\n  if(e.data \u0026\u0026 e.data.type===\"lowpro-player-height\"){\n    var f=document.getElementById(\"lowpro-player-frame\");\n    if(f \u0026\u0026 e.data.height\u003e200) f.style.height=(e.data.height+4)+\"px\";\n  }\n});\n\u003c\/script\u003e\n\u003cdiv style=\"height:28px;\"\u003e \u003c\/div\u003e\n\u003c!-- Intro Section --\u003e\n\u003cp\u003e\u003cstrong\u003eBuilt for emergency response teams and public safety professionals, this high-intensity LED warning light bar delivers uncompromising performance in a sleek, durable design.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003eThe \u003cstrong\u003eBlack Oak 11\" Mini Low Pro Emergency LED Light Bar\u003c\/strong\u003e is engineered for maximum visibility, reliability, and user control in a compact, low-profile footprint. With ultra-bright LEDs, multiple selectable flash and strobe patterns, and a rugged, weather-sealed housing, this mini light bar makes sure your presence is known in any emergency or warning situation—day or night, rain or shine.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003eBuilt to withstand the demands of high-speed response, off-road utility, and work-site visibility, this 11-inch low-profile bar features a streamlined, aerodynamic frame and a universal mounting system for quick, easy installation on virtually any vehicle. Whether you're outfitting a patrol car, fire or EMS unit, tow truck, or utility vehicle, this mini emergency light bar delivers dependable warning performance where it matters most.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\"\u003e \u003c\/p\u003e\n\u003c!-- TRUST STRIP --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Screenshot_2026-07-21_at_9.31.14_AM.png?v=1784641940\" alt=\"SAE J845 Certified, SAE J595 Class 1, IP69K Waterproof, Lifetime Warranty, -40F to +145F Rated, 50,000 Hour LEDs\" style=\"width: 100%; display: block; border-radius: 10px;\"\u003e\u003c\/p\u003e\n\u003c!-- SIZE SELECTOR --\u003e\n\u003cdiv style=\"margin: 4px 0 2px;\"\u003e\n\u003cp style=\"margin: 0 0 8px; font-weight: 600; font-size: 15px;\"\u003eAvailable sizes:\u003c\/p\u003e\n\u003cspan style=\"display: inline-block; background: #FFB300; color: #111; font-weight: bold; padding: 8px 14px; border-radius: 8px; margin: 0 6px 8px 0; font-size: 15px;\"\u003e11\"\u003c\/span\u003e \u003ca href=\"\/products\/new-17-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e17\"\u003c\/a\u003e \u003ca href=\"\/products\/new-30-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e30\"\u003c\/a\u003e \u003ca href=\"\/products\/new-43-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e43\"\u003c\/a\u003e \u003ca href=\"\/products\/low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e49\"\u003c\/a\u003e \u003ca href=\"\/products\/new-55-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e55\"\u003c\/a\u003e \u003ca href=\"\/products\/new-61-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e61\"\u003c\/a\u003e \u003ca href=\"\/products\/new-68-low-pro-emergency-light-bar\" style=\"display: inline-block; border: 2px solid #FFB300; color: #111; font-weight: bold; padding: 6px 12px; border-radius: 8px; margin: 0 6px 8px 0; text-decoration: none; font-size: 15px;\"\u003e68\"\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c!-- Collapsable Sections --\u003e\n\u003cstyle\u003e\n#MainContent details {\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  margin-bottom: 16px;\n  overflow: hidden;\n  background: #fff;\n  font-family: Arial, sans-serif;\n}\n#MainContent details summary {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  cursor: pointer;\n  padding: 14px 18px;\n  font-weight: 600;\n  font-size: 18px;\n  list-style: none;\n  background-color: #f9f9f9;\n  border-bottom: 1px solid #e0e0e0;\n  position: relative;\n}\n#MainContent details[open] summary {\n  background-color: #f1f1f1;\n}\n#MainContent details summary::after {\n  content: '+';\n  font-size: 20px;\n  font-weight: bold;\n  transition: transform 0.3s ease;\n}\n#MainContent details[open] summary::after {\n  content: '−';\n}\n#MainContent details .content {\n  padding: 16px 20px;\n  font-size: 16px;\n  line-height: 1.6;\n}\n\u003c\/style\u003e\n\u003cdetails\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003eLifetime Warranty\u003c\/li\u003e\n\u003cli\u003eSAE J845 Class 1 Certified\u003c\/li\u003e\n\u003cli\u003e360° visibility with dual-color ultra-bright LEDs\u003c\/li\u003e\n\u003cli\u003eSlim Low Profile design\u003c\/li\u003e\n\u003cli\u003eUp to 45 flash patterns with memory recall\u003c\/li\u003e\n\u003cli\u003eRugged, waterproof housing (IP69K rated)\u003c\/li\u003e\n\u003cli\u003eIntegrated controller with pattern cycling, cruise mode, and cut-off\n\u003cul\u003e\n\u003cli\u003eNote - this is built into the back of the \u003cspan style=\"text-decoration: underline;\"\u003esocket plug\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003eThis bar \u003cspan style=\"text-decoration: underline;\"\u003edoes not\u003c\/span\u003e come with a standard controller!\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eIn the Box\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cb\u003eLow Pro Light Bar\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eWiring\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003eMagnetic Feet\u003c\/b\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- COMPLIANCE SECTION --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCompliance \u0026amp; Certifications\u003c\/summary\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cp\u003e\u003cstrong\u003eMeets the standards your department requires.\u003c\/strong\u003e\u003c\/p\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"3\"\u003eCertification \u0026amp; Compliance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J845\u003c\/th\u003e\n\u003ctd\u003e360° warning lamp photometric standard for light bars and beacons\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSAE J595 Class 1\u003c\/th\u003e\n\u003ctd\u003eHighest intensity class — approved for primary emergency vehicles (police, fire, EMS)\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eCertified\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eIP69K\u003c\/th\u003e\n\u003ctd\u003eSealed against high-pressure washdown, salt, dust, and submersion\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003eRated\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Range\u003c\/th\u003e\n\u003ctd\u003eExtreme-climate duty\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e-40°F to +145°F\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDuty Life\u003c\/th\u003e\n\u003ctd\u003eContinuous-duty LED modules\u003c\/td\u003e\n\u003ctd\u003e\u003cstrong\u003e50,000 hours\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"font-size: 13px; color: #666;\"\u003e\u003cem\u003eWarning-equipment regulations vary by state and jurisdiction. Verify color and mounting requirements with your local authority. Spec sheet PDF and certification documentation available on request for procurement offices.\u003c\/em\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c!-- Image + Text Alternating Section --\u003e\n\u003cstyle\u003e\n.text-image-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 20px;\n}\n.text-image-wrap.text-image-right {\n  flex-direction: row-reverse;\n}\n.text-image-wrap .image-wrap {\n  flex: 1;\n  max-width: 500px;\n}\n.text-image-wrap .image-wrap img {\n  width: 100%;\n  height: auto;\n  max-height: 300px; \n  display: block;\n  object-fit: contain; \n}\n.text-image-wrap .text-wrap {\n  flex: 1;\n  min-width: 300px;\n}\n\u003c\/style\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/255283_7703341170749_330031d5_da20_475f_887e_f1269d2ad248_1.jpg?v=1763495670\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eEmergency Bar + Work Light\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eGet full 360° white-light illumination at the touch of a button. Perfect for reverse lighting, scene lighting, or any situation where you need powerful all-around visibility. It's a true dual-purpose feature you won't find on most emergency bars — and it comes standard on every one of ours.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Low_Pro_Emergency_Bar_SAE_graphics.jpg?v=1758041472\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eBuilt Tough for Any Environment\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eIP69K-rated waterproof housing and reinforced aluminum construction stand up to rain, snow, mud, and dust—ideal for police, fire, tow, or off-road response vehicles.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/DSC00223.jpg?v=1754512314\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eFull 360° Warning Visibility\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003ePacked with high-output dual-color LEDs and side modules, this bar delivers all-angle visibility—ensuring you're seen from every direction, even in chaotic scenes or inclement weather.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LPE_-_Driver_Side_Angle.jpg?v=1761226316\" alt=\"\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eSlim, Low-Profile Design\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eEngineered to minimize wind resistance and visual bulk, this light bar features a sleek, aerodynamic frame that hugs your vehicle's roofline. The low-profile housing not only enhances fuel efficiency but also delivers a clean, professional look without compromising brightness or performance.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-image-wrap text-image-right\"\u003e\n\u003cdiv class=\"image-wrap\"\u003e\n\u003cp\u003e\u003cvideo width=\"100%\" height=\"auto\" muted=\"\" autoplay=\"autoplay\" loop=\"loop\" playsinline=\"\" controls=\"controls\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4ec9ce848f5e4d2d8083da9daf4dbe78.mp4\" type=\"video\/mp4\"\u003eYour browser does not support the video tag.\u003c\/source\u003e\u003c\/video\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"text-wrap\"\u003e\n\u003ch3 class=\"text-title\"\u003eUp to 45 Flash Patterns with Smart Memory\u003c\/h3\u003e\n\u003cp class=\"text-content\"\u003eChoose from up to 45 user-selectable flash patterns to fit any scenario. Built-in memory recall stores your last used setting for consistent deployment every time.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- HERO BANNER --\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/d8j0ntlcm91z4.cloudfront.net\/user_3G9nKxyaQsdrPdDsxWr4EcSl5FL\/hf_20260715_201038_0803a0cd-07a6-4508-9c7a-50d0230a94e3.png\" alt=\"Built to Code. Backed for Life. SAE J845 and J595 Class 1 compliant, IP69K sealed, lifetime warranty\" style=\"width: 100%; display: block; border-radius: 10px;\"\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c!-- FLEET BLOCK --\u003e\n\u003cdiv style=\"padding: 8px 0; margin: 0 0 8px;\"\u003e\n\u003ch3 style=\"margin: 0 0 8px;\"\u003eOutfitting a Fleet?\u003c\/h3\u003e\n\u003cp style=\"margin: 0 0 14px; font-size: 16px; line-height: 1.6;\"\u003eVolume pricing on 5+ units, department POs accepted, W-9 on file, and spec sheets ready for your procurement office. From single patrol vehicles to full county fleets.\u003c\/p\u003e\n\u003ca href=\"\/pages\/fleet-pricing\" style=\"display: inline-block; background: #FFB300; color: #111; font-weight: bold; padding: 12px 22px; border-radius: 8px; text-decoration: none;\"\u003eRequest Fleet Pricing\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Dimension --\u003e\u003c!-- Specs --\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/Black_Oak_-_Low_Pro_Emergency_Bar_-_All_Dimensions.jpg?v=1762971573\"\u003e\u003c\/p\u003e\n\u003ch5\u003eSpecs\u003c\/h5\u003e\n\u003cstyle\u003e\n  table.spec-table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n    font-size: 15px;\n  }\n  table.spec-table th, table.spec-table td {\n    border: 1px solid #ccc;\n    padding: 10px;\n    text-align: left;\n  }\n  table.spec-table th {\n    background-color: #f7f7f7;\n    font-weight: 600;\n    width: 30%;\n  }\n  table.spec-table tr:hover {\n    background-color: #f2f2f2;\n  }\n  table.spec-table thead th {\n    background-color: #222;\n    color: #fff;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    text-align: center;\n  }\n\u003c\/style\u003e\n\u003ctable class=\"spec-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003ePower \u0026amp; Performance\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Wattage\u003c\/th\u003e\n\u003ctd\u003e168\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTotal Amp Draw\u003c\/th\u003e\n\u003ctd\u003e13\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Voltage\u003c\/th\u003e\n\u003ctd\u003e10-30V DC\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRaw Lumens\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Diode Quantity\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eLED Chip\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBeam Pattern\u003c\/th\u003e\n\u003ctd\u003eWide Angle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCertificate\u003c\/th\u003e\n\u003ctd\u003eSAE J845 \u0026amp; SAE J595 Class 1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Single Color\u003c\/th\u003e\n\u003ctd\u003e15\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFlash Patterns – Dual Color\u003c\/th\u003e\n\u003ctd\u003e45 (15 Color 1 \/ 15 Color 2 \/ 15 Combo)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eDurability \u0026amp; Lifespan\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eLife Expectancy\u003c\/th\u003e\n\u003ctd\u003e50,000 Hours\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eOperating Temp\u003c\/th\u003e\n\u003ctd\u003e-40° to 145° F\u003cbr\u003e-40° to 62° C\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWaterproof Rating\u003c\/th\u003e\n\u003ctd\u003eIP69K\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWarranty\u003c\/th\u003e\n\u003ctd\u003eLimited Lifetime\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eGuarantee\u003c\/th\u003e\n\u003ctd\u003e30 Day Money Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eWiring \u0026amp; Installation\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eCord Length From Light\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Included?\u003c\/th\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Harness Length\u003c\/th\u003e\n\u003ctd\u003e9'\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWire Gauge\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFuse Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eConnector Type\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHole Size for Controller\u003c\/th\u003e\n\u003ctd\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eMounting Bolt Size\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth colspan=\"2\"\u003eGeneral\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eWeight\u003c\/th\u003e\n\u003ctd\u003e—\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSKU\u003c\/th\u003e\n\u003ctd\u003eLP-E11-AW\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch5\u003eFAQ\u003c\/h5\u003e\n\u003cp\u003e\u003cstrong\u003eWhat voltage and control systems does this light bar support?\u003c\/strong\u003e\u003cbr\u003eThis light bar operates on a 12 V–24 V DC power system and can be used with either push-button or wireless controllers. It's compatible with standard vehicle electrical systems, making installation straightforward for both fleet and individual applications.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow durable is this light bar in harsh environments?\u003c\/strong\u003e\u003cbr\u003eThe Low Pro Emergency Light Bar is built with a rugged aluminum housing, sealed to an IP69K rating and tested to resist corrosion, vibration, and high-pressure water ingress. It's designed for demanding conditions—whether roadside, rescue, or commercial use—so you can rely on consistent performance when it counts.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat beam patterns and flash modes are included?\u003c\/strong\u003e\u003cbr\u003eUp to 45 flash patterns are built into the unit—including warning, hazard, and full-output flasher modes—with memory recall so your last setting is retained even after power loss. You'll also find low-profile steady-burn mode useful for scene lighting and standby operations.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIs the light bar legal for use on public roads and emergency vehicles?\u003c\/strong\u003e\u003cbr\u003eYes. The unit meets SAE J595 Class 1 and other relevant emergency lighting standards for warning applications. However, regulations vary by jurisdiction, so we recommend checking your local laws before installation to ensure compliance with mounting height, color, and flash pattern requirements.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat's covered by the warranty?\u003c\/strong\u003e\u003cbr\u003eOur industry-leading lifetime warranty covers manufacturing defects, driver failures, and LED module performance. It does not cover damage caused by improper installation, extreme overuse beyond defined duty cycles, or wiring issues. For full warranty terms, please refer to our Warranty \u0026amp; Returns page.\u003c\/p\u003e","brand":"Black Oak LED","offers":[{"title":"Amber \u0026 White \/ Magnetic","offer_id":43435872878653,"sku":"LP-E11-AW","price":299.37,"currency_code":"USD","in_stock":true},{"title":"Amber \u0026 White \/ Headache Rack (X2)","offer_id":43558460162109,"sku":"LP-E11-AW","price":324.37,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/files\/LowProEmergency-11-Side.png?v=1787078070"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0761\/3599\/collections\/LPE-17-inch-emergency-light-bar.png?v=1793064941","url":"https:\/\/www.blackoakled.com\/collections\/snow-plow-lights.oembed","provider":"Black Oak LED","version":"1.0","type":"link"}