{"product_id":"ds429-square-push-buttons","title":"DS429 Square Push Button","description":"\u003cstyle\u003e\n  .nzn-desc {\n    width: 100%;\n    max-width: 1400px;\n    margin: 0 auto;\n    font-family: inherit;\n    color: #101114;\n  }\n\n  .nzn-desc,\n  .nzn-desc * {\n    box-sizing: border-box;\n  }\n\n  .nzn-desc .nzn-tabs {\n    width: 100%;\n    max-width: 100%;\n    display: flex;\n    gap: 30px;\n    border-bottom: 1px solid #e7e7e7;\n    overflow-x: auto;\n    overflow-y: hidden;\n    scrollbar-width: none;\n    min-height: 55px;\n    align-items: flex-end;\n    -webkit-overflow-scrolling: touch;\n  }\n\n  .nzn-desc .nzn-tabs::-webkit-scrollbar { display: none; }\n\n  .nzn-desc .nzn-tab {\n    flex: 0 0 auto;\n    background: none;\n    border: 0;\n    padding: 16px 0;\n    font: inherit;\n    font-size: 14px;\n    font-weight: 800;\n    white-space: nowrap;\n    border-bottom: 3px solid transparent;\n    color: #101114;\n    cursor: pointer;\n    transition: color .18s ease, border-color .18s ease;\n  }\n\n  .nzn-desc .nzn-tab:hover { color: #ff7a2f; }\n\n  .nzn-desc .nzn-tab.is-active {\n    border-bottom-color: #ff7a2f;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-card {\n    width: 100%;\n    border: 1px solid #e7e7e7;\n    border-top: 0;\n    border-radius: 0 0 18px 18px;\n    padding: 38px 34px;\n    box-shadow: 0 10px 24px rgba(0,0,0,.035);\n    background: #fff;\n    min-height: 620px;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .nzn-desc .nzn-panel { display: none; }\n\n  .nzn-desc .nzn-panel.is-active {\n    display: flex;\n    flex-direction: column;\n    flex: 1;\n    animation: nznTabFade .18s ease both;\n  }\n\n  @keyframes nznTabFade {\n    from { opacity: 0; transform: translateY(6px); }\n    to   { opacity: 1; transform: translateY(0); }\n  }\n\n  .nzn-desc .nzn-panel-content { flex: 1; }\n\n  .nzn-desc .nzn-overview {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 46px;\n    align-items: start;\n  }\n\n  .nzn-desc .nzn-overview-copy {\n    padding-top: 6px;\n    text-align: center;\n  }\n\n  .nzn-desc p {\n    font-size: 15px;\n    line-height: 1.65;\n    color: #60646c;\n    margin: 0;\n  }\n\n  .nzn-desc .nzn-checks {\n    list-style: none;\n    padding: 0;\n    margin: 34px auto 0;\n    display: grid;\n    gap: 18px;\n    width: fit-content;\n    max-width: 100%;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-checks li {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-size: 14.5px;\n    color: #101114;\n    line-height: 1.45;\n  }\n\n  .nzn-desc .nzn-checks li::before {\n    content: \"✓\";\n    flex-shrink: 0;\n    color: #ff7a2f;\n    font-weight: 900;\n    font-size: 16px;\n    line-height: 1;\n  }\n\n  .nzn-desc .nzn-section-title {\n    margin: 0 0 30px;\n    padding-top: 10px;\n    text-transform: uppercase;\n    letter-spacing: .12em;\n    font-size: 14px;\n    font-weight: 900;\n    color: #ff7a2f;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-started {\n    background: #eef6ff;\n    border-left: 4px solid #4a9af7;\n    border-radius: 16px;\n    padding: 26px 28px;\n  }\n\n  .nzn-desc .nzn-started h3 {\n    margin: 0 0 20px;\n    text-transform: uppercase;\n    letter-spacing: .12em;\n    font-size: 14px;\n    font-weight: 900;\n    color: #1f4268;\n  }\n\n  .nzn-desc .nzn-step {\n    display: grid;\n    grid-template-columns: 34px 1fr;\n    gap: 14px;\n    margin-bottom: 18px;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-step:last-child { margin-bottom: 0; }\n\n  .nzn-desc .nzn-step span {\n    width: 34px;\n    height: 34px;\n    border-radius: 999px;\n    background: #fff;\n    border: 1px solid #d9e9fb;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-weight: 900;\n  }\n\n  .nzn-desc .nzn-step strong {\n    display: block;\n    font-size: 14px;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-step p {\n    margin-top: 4px;\n    font-size: 13px;\n    color: #40566c;\n  }\n\n  .nzn-desc .nzn-specs { border-top: 1px solid #e7e7e7; }\n\n  .nzn-desc .nzn-specs div {\n    display: grid;\n    grid-template-columns: minmax(180px, .8fr) 1.4fr;\n    gap: 24px;\n    padding: 15px 14px;\n    border-bottom: 1px solid #e7e7e7;\n    font-size: 14px;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-specs div:nth-child(even) { background: #fafafa; }\n  .nzn-desc .nzn-specs span { color: #60646c; }\n  .nzn-desc .nzn-specs strong { font-weight: 800; color: #101114; }\n\n  .nzn-desc .nzn-action-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 16px;\n    margin-bottom: 28px;\n  }\n\n  .nzn-desc .nzn-action-card {\n    border: 1px solid #e7e7e7;\n    border-radius: 14px;\n    padding: 22px 20px;\n    background: #fafafa;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-action-card .action-label {\n    font-size: 13px;\n    font-weight: 900;\n    text-transform: uppercase;\n    letter-spacing: .1em;\n    color: #ff7a2f;\n    margin-bottom: 10px;\n    display: block;\n  }\n\n  .nzn-desc .nzn-action-card strong {\n    display: block;\n    font-size: 15px;\n    color: #101114;\n    margin-bottom: 8px;\n  }\n\n  .nzn-desc .nzn-action-card p {\n    font-size: 13.5px;\n    color: #60646c;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-included-card {\n    display: grid;\n    grid-template-columns: auto 1fr;\n    gap: 18px;\n    align-items: center;\n    border: 1px solid #e7e7e7;\n    border-radius: 16px;\n    background: #fafafa;\n    padding: 24px;\n    margin-bottom: 12px;\n  }\n\n  .nzn-desc .nzn-included-qty {\n    width: 48px;\n    height: 48px;\n    border-radius: 999px;\n    background: #fff5ef;\n    border: 1px solid rgba(255,122,47,.2);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-weight: 900;\n    color: #ff7a2f;\n    font-size: 13px;\n  }\n\n  .nzn-desc .nzn-included-card strong {\n    display: block;\n    font-size: 16px;\n    margin-bottom: 4px;\n  }\n\n  .nzn-desc .nzn-included-card p { font-size: 14px; }\n\n  .nzn-desc .nzn-uses {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 12px;\n  }\n\n  .nzn-desc .nzn-use {\n    border-left: 3px solid #ff7a2f;\n    background: #f7f7f7;\n    padding: 15px 16px;\n    font-size: 14px;\n    line-height: 1.45;\n    text-align: left;\n    border-radius: 0 8px 8px 0;\n  }\n\n  .nzn-desc .nzn-faq { display: grid; gap: 12px; }\n\n  .nzn-desc .nzn-faq-item {\n    border: 1px solid #e7e7e7;\n    border-radius: 12px;\n    padding: 16px 18px;\n    background: #fff;\n    text-align: left;\n  }\n\n  .nzn-desc .nzn-faq-item strong {\n    display: block;\n    margin-bottom: 7px;\n    color: #101114;\n  }\n\n  .nzn-desc .nzn-faq-item p { font-size: 14px; }\n\n  .nzn-desc .nzn-note {\n    margin-top: 30px;\n    background: #fafafa;\n    border: 1px solid #e7e7e7;\n    border-radius: 12px;\n    padding: 16px 18px;\n    text-align: center;\n    color: #60646c;\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n  @media (max-width: 750px) {\n    .nzn-desc { width: 100%; max-width: 100%; padding: 0; overflow: hidden; }\n\n    .nzn-desc .nzn-tabs {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 0;\n      overflow: visible;\n      min-height: unset;\n      border-bottom: 0;\n      width: 100%;\n      max-width: 100%;\n    }\n\n    .nzn-desc .nzn-tab {\n      width: 100%;\n      min-width: 0;\n      padding: 12px 6px;\n      font-size: 12px;\n      line-height: 1.15;\n      text-align: center;\n      white-space: normal;\n      border-bottom: 2px solid #e7e7e7;\n    }\n\n    .nzn-desc .nzn-tab.is-active { border-bottom-color: #ff7a2f; }\n\n    .nzn-desc .nzn-card {\n      padding: 24px 16px;\n      min-height: unset;\n      width: 100%;\n      max-width: 100%;\n      border-top: 1px solid #e7e7e7;\n      border-radius: 0 0 16px 16px;\n    }\n\n    .nzn-desc .nzn-panel.is-active { display: block; }\n    .nzn-desc .nzn-overview { grid-template-columns: 1fr; gap: 26px; }\n    .nzn-desc .nzn-overview-copy { padding-top: 0; text-align: center; }\n    .nzn-desc p { font-size: 14.5px; text-align: center; }\n    .nzn-desc .nzn-checks { margin-top: 24px; gap: 13px; width: fit-content; max-width: 100%; }\n    .nzn-desc .nzn-checks li { align-items: flex-start; gap: 10px; font-size: 14px; text-align: left; }\n    .nzn-desc .nzn-checks li::before { margin-top: 2px; }\n    .nzn-desc .nzn-uses { grid-template-columns: 1fr; }\n    .nzn-desc .nzn-action-grid { grid-template-columns: 1fr; }\n    .nzn-desc .nzn-specs div { grid-template-columns: 1fr; gap: 4px; padding: 13px 10px; }\n    .nzn-desc .nzn-section-title { text-align: left; padding-top: 0; margin-bottom: 22px; }\n    .nzn-desc .nzn-started { padding: 20px 16px; }\n    .nzn-desc .nzn-included-card { grid-template-columns: 1fr; text-align: left; justify-items: start; }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"nzn-desc\"\u003e\n  \u003cdiv class=\"nzn-tabs\"\u003e\n    \u003cbutton class=\"nzn-tab is-active\" type=\"button\" data-tab=\"overview\"\u003eOverview\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"specifications\"\u003eSpecifications\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"action\"\u003eMomentary vs Latching\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"included\"\u003eWhat's Included\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"uses\"\u003eCommon Uses\u003c\/button\u003e\n    \u003cbutton class=\"nzn-tab\" type=\"button\" data-tab=\"faqs\"\u003eFAQs\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nzn-card\"\u003e\n\n    \u003c!-- OVERVIEW --\u003e\n    \u003cdiv class=\"nzn-panel is-active\" data-panel=\"overview\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003cdiv class=\"nzn-overview\"\u003e\n          \u003cdiv class=\"nzn-overview-copy\"\u003e\n            \u003cp\u003eCompact square push button built for reliable switching in DIY electronics, control panels, and custom builds. Available in momentary or latching action — both in the same durable ABS housing with a standard panel-mount footprint.\u003c\/p\u003e\n\n            \u003cul class=\"nzn-checks\"\u003e\n              \u003cli\u003eAvailable in Momentary or Latching action\u003c\/li\u003e\n              \u003cli\u003eRated 3A @ 125VAC \/ 1A @ 250VAC\u003c\/li\u003e\n              \u003cli\u003e13 × 11mm rectangular panel cutout\u003c\/li\u003e\n              \u003cli\u003ePin terminal connections\u003c\/li\u003e\n              \u003cli\u003eABS plastic housing — black\u003c\/li\u003e\n              \u003cli\u003eOperating range −25°C to +85°C\u003c\/li\u003e\n              \u003cli\u003eSold individually\u003c\/li\u003e\n            \u003c\/ul\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-started\"\u003e\n            \u003ch3\u003eWhich Action Do You Need?\u003c\/h3\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003eM\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eMomentary\u003c\/strong\u003e\n                \u003cp\u003eActive only while held. Releases when you let go. Use for triggers, doorbells, reset buttons, or any action that should fire only while pressed.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003eL\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eLatching\u003c\/strong\u003e\n                \u003cp\u003ePress once to turn on, press again to turn off. Stays in position without being held. Use for power switches, mode selectors, or any on\/off control.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n\n            \u003cdiv class=\"nzn-step\"\u003e\n              \u003cspan\u003e?\u003c\/span\u003e\n              \u003cdiv\u003e\n                \u003cstrong\u003eNot sure?\u003c\/strong\u003e\n                \u003cp\u003eIf your circuit needs to stay on after you release the button, choose Latching. If it should only trigger while pressed, choose Momentary.\u003c\/p\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Select your required action (Momentary or Latching) from the variant selector before adding to cart.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- SPECIFICATIONS --\u003e\n    \u003cdiv class=\"nzn-panel\" data-panel=\"specifications\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eSpecifications\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-specs\"\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eModel\u003c\/span\u003e\u003cstrong\u003eDS429\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eContact Type\u003c\/span\u003e\u003cstrong\u003ePin terminal\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eRated Current \u0026amp; Voltage\u003c\/span\u003e\u003cstrong\u003e3A @ 125VAC \/ 1A @ 250VAC\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eSwitch Action\u003c\/span\u003e\u003cstrong\u003eMomentary (NO) or Latching — select variant\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eMounting Hole\u003c\/span\u003e\u003cstrong\u003e13 × 11mm rectangular\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eHousing Material\u003c\/span\u003e\u003cstrong\u003eABS plastic\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eColour\u003c\/span\u003e\u003cstrong\u003eBlack\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eOperating Temperature\u003c\/span\u003e\u003cstrong\u003e−25°C to +85°C\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Select your required action (Momentary or Latching) from the variant selector before adding to cart.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- MOMENTARY VS LATCHING --\u003e\n    \u003cdiv class=\"nzn-panel\" data-panel=\"action\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eMomentary vs Latching\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-action-grid\"\u003e\n          \u003cdiv class=\"nzn-action-card\"\u003e\n            \u003cspan class=\"action-label\"\u003eMomentary\u003c\/span\u003e\n            \u003cstrong\u003eActive while held only\u003c\/strong\u003e\n            \u003cp\u003eThe circuit closes when you press and opens the moment you release. Ideal for any function that should only fire while the button is physically held down.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"nzn-action-card\"\u003e\n            \u003cspan class=\"action-label\"\u003eLatching\u003c\/span\u003e\n            \u003cstrong\u003ePress on, press off\u003c\/strong\u003e\n            \u003cp\u003eThe circuit stays closed after you press and release. Press again to open. Ideal for any on\/off control that needs to hold its state without being held.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"nzn-specs\"\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eMomentary — typical uses\u003c\/span\u003e\u003cstrong\u003eDoorbells, reset buttons, triggers, joystick inputs, test points\u003c\/strong\u003e\n\u003c\/div\u003e\n          \u003cdiv\u003e\n\u003cspan\u003eLatching — typical uses\u003c\/span\u003e\u003cstrong\u003ePower switches, mode selectors, enable\/disable circuits, LED toggles\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Both variants share the same DS429 housing and panel cutout size. Select your action type from the variant selector before adding to cart.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- INCLUDED --\u003e\n    \u003cdiv class=\"nzn-panel\" data-panel=\"included\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eWhat's Included\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-included-card\"\u003e\n          \u003cdiv class=\"nzn-included-qty\"\u003e1×\u003c\/div\u003e\n          \u003cdiv\u003e\n            \u003cstrong\u003eDS429 Square Push Button\u003c\/strong\u003e\n            \u003cp\u003eYour selected action type (Momentary or Latching). Sold individually.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Sold individually. Select Momentary or Latching from the variant selector before adding to cart.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- USES --\u003e\n    \u003cdiv class=\"nzn-panel\" data-panel=\"uses\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eCommon Uses\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-uses\"\u003e\n          \u003cdiv class=\"nzn-use\"\u003eDIY electronics \u0026amp; maker projects\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eControl panels \u0026amp; custom enclosures\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eArcade builds \u0026amp; custom game controllers\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003e3D printer control interfaces\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003eIndustrial \u0026amp; hobbyist automation\u003c\/div\u003e\n          \u003cdiv class=\"nzn-use\"\u003ePower switching \u0026amp; mode selection circuits\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Both Momentary and Latching variants fit the same 13 × 11mm panel cutout.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- FAQS --\u003e\n    \u003cdiv class=\"nzn-panel\" data-panel=\"faqs\"\u003e\n      \u003cdiv class=\"nzn-panel-content\"\u003e\n        \u003ch3 class=\"nzn-section-title\"\u003eCommon Questions\u003c\/h3\u003e\n\n        \u003cdiv class=\"nzn-faq\"\u003e\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eCan this switch be used for mains AC wiring?\u003c\/strong\u003e\n            \u003cp\u003eThe switch is rated for AC use (up to 3A @ 125VAC or 1A @ 250VAC), but any mains-voltage installation must be carried out by a qualified electrician in accordance with local wiring regulations.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eWhat size panel cutout do I need?\u003c\/strong\u003e\n            \u003cp\u003eThe switch requires a 13 × 11mm rectangular cutout for panel mounting. The body clips or fastens into the panel from the front.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"nzn-faq-item\"\u003e\n            \u003cstrong\u003eI ordered the wrong action type — can I swap it?\u003c\/strong\u003e\n            \u003cp\u003eThe Momentary and Latching variants are electrically different and are not interchangeable. Make sure to select the correct action from the variant selector before ordering.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"nzn-note\"\u003e\n\u003cstrong\u003ePlease note:\u003c\/strong\u003e Select your required action (Momentary or Latching) from the variant selector before adding to cart.\u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  document.addEventListener('click', function(event) {\n    const tab = event.target.closest('.nzn-desc .nzn-tab');\n    if (!tab) return;\n    const wrapper = tab.closest('.nzn-desc');\n    if (!wrapper) return;\n    const target = tab.getAttribute('data-tab');\n    wrapper.querySelectorAll('.nzn-tab').forEach(function(item) { item.classList.remove('is-active'); });\n    wrapper.querySelectorAll('.nzn-panel').forEach(function(panel) { panel.classList.remove('is-active'); });\n    tab.classList.add('is-active');\n    const panel = wrapper.querySelector('[data-panel=\"' + target + '\"]');\n    if (panel) panel.classList.add('is-active');\n  });\n\u003c\/script\u003e","brand":"NZN Electronics","offers":[{"title":"Black \/ Momentary","offer_id":42707662176352,"sku":"SW-DS429-BLK-MOM","price":3.99,"currency_code":"NZD","in_stock":false},{"title":"Black \/ Latching","offer_id":42707662209120,"sku":"SW-DS429-BLK-LAT","price":3.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/DS429Product_Hero_Single.png?v=1779592081","url":"https:\/\/www.nznelectronics.co.nz\/products\/ds429-square-push-buttons","provider":"NZN Electronics","version":"1.0","type":"link"}