{"id":3176,"date":"2026-06-12T02:49:49","date_gmt":"2026-06-12T02:49:49","guid":{"rendered":"https:\/\/shieldhz.com\/product-selector\/"},"modified":"2026-06-12T07:25:26","modified_gmt":"2026-06-12T07:25:26","slug":"product-selector","status":"publish","type":"page","link":"https:\/\/shieldhz.com\/pt\/product-selector\/","title":{"rendered":"Seletor de produtos"},"content":{"rendered":"\n<style>\n.page-id-3176 .hero-section {\n  display: none !important;\n}\n.page-id-3176 .gt_float_switcher,\n.page-id-3176 .trp-floating-switcher {\n  display: none !important;\n}\n.shz-selector-page {\n  --shz-primary: #294370;\n  --shz-primary-hover: #24417c;\n  --shz-navy: #111c2e;\n  --shz-secondary: #4a8fd4;\n  --shz-bg: #f3f5f7;\n  --shz-surface: #ffffff;\n  --shz-text: #111c2e;\n  --shz-muted: #52647b;\n  --shz-border: #e4e8ec;\n  --shz-soft: #f8fbff;\n  color: var(--shz-text);\n  font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n}\n.shz-selector-page * {\n  box-sizing: border-box;\n}\n.shz-selector-page [hidden] {\n  display: none !important;\n}\n.shz-selector-hero {\n  background: var(--shz-navy);\n  color: #fff;\n  margin-left: calc(50% - 50vw);\n  margin-right: calc(50% - 50vw);\n  width: 100vw;\n}\n.shz-selector-wrap {\n  max-width: 1180px;\n  margin: 0 auto;\n  padding: 56px 5vw;\n}\n.shz-selector-hero .shz-selector-wrap {\n  min-height: 480px;\n  display: grid;\n  align-items: center;\n}\n.shz-selector-kicker {\n  color: #b9d6f3;\n  font-size: .92rem;\n  font-weight: 700;\n  margin: 0 0 12px;\n}\n.shz-selector-hero h1 {\n  color: #fff;\n  font-size: clamp(2rem, 3vw, 3rem);\n  line-height: 1.12;\n  margin: 0;\n  max-width: 760px;\n}\n.shz-selector-hero p {\n  color: #d7e3f2;\n  font-size: 1.05rem;\n  line-height: 1.65;\n  max-width: 760px;\n  margin: 16px 0 0;\n}\n.shz-selector-main {\n  background: var(--shz-bg);\n  width: 100%;\n}\n.shz-selector-heading {\n  max-width: 760px;\n  margin-bottom: 22px;\n}\n.shz-selector-heading h2 {\n  color: var(--shz-navy);\n  font-size: 2rem;\n  line-height: 1.2;\n  margin: 0 0 8px;\n}\n.shz-selector-heading p {\n  color: var(--shz-muted);\n  font-size: 1rem;\n  line-height: 1.6;\n  margin: 0;\n}\n.shz-wizard-shell {\n  background: var(--shz-surface);\n  border: 1px solid var(--shz-border);\n  border-radius: 12px;\n  box-shadow: 0 8px 24px rgba(17, 28, 46, .10);\n  min-height: 560px;\n  overflow: hidden;\n}\n.shz-wizard-top {\n  border-bottom: 1px solid var(--shz-border);\n  padding: 22px 28px 18px;\n}\n.shz-progress-row {\n  align-items: center;\n  display: flex;\n  gap: 14px;\n}\n.shz-progress-track {\n  background: #dfe7f1;\n  border-radius: 999px;\n  flex: 1;\n  height: 10px;\n  overflow: hidden;\n}\n.shz-progress-fill {\n  background: var(--shz-primary);\n  border-radius: inherit;\n  display: block;\n  height: 100%;\n  transition: width .2s ease;\n  width: 0%;\n}\n.shz-progress-text {\n  color: var(--shz-muted);\n  font-size: .9rem;\n  font-weight: 700;\n  min-width: 88px;\n  text-align: right;\n}\n.shz-wizard-body {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 320px;\n  gap: 0;\n}\n.shz-wizard-shell[data-current-step=\"useCase\"] .shz-wizard-body {\n  grid-template-columns: 1fr;\n}\n.shz-wizard-shell[data-current-step=\"useCase\"] .shz-wizard-side {\n  display: none;\n}\n.shz-wizard-shell[data-current-step=\"useCase\"] .shz-step-panel {\n  min-height: 420px;\n}\n.shz-wizard-shell[data-current-step=\"useCase\"] .shz-wizard-actions {\n  display: none;\n}\n.shz-step-panel {\n  min-height: 500px;\n  padding: 42px 44px 48px;\n}\n.shz-step-label {\n  color: var(--shz-primary);\n  display: block;\n  font-size: .92rem;\n  font-weight: 800;\n  margin-bottom: 10px;\n}\n.shz-step-panel h3 {\n  color: var(--shz-navy);\n  font-size: 2rem;\n  line-height: 1.18;\n  margin: 0;\n  max-width: 760px;\n}\n.shz-step-panel p {\n  color: var(--shz-muted);\n  font-size: 1rem;\n  line-height: 1.6;\n  margin: 12px 0 0;\n  max-width: 720px;\n}\n.shz-step-options {\n  display: grid;\n  gap: 12px;\n  margin-top: 28px;\n}\n.shz-step-options[data-columns=\"2\"] {\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.shz-step-options[data-columns=\"3\"] {\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.shz-step-options[data-columns=\"4\"] {\n  grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.shz-step-option {\n  align-items: center;\n  background: #fff;\n  border: 1px solid var(--shz-border);\n  border-radius: 10px;\n  color: var(--shz-text);\n  cursor: pointer;\n  display: flex;\n  gap: 10px;\n  justify-content: space-between;\n  min-height: 54px;\n  padding: 12px 14px;\n  text-align: left;\n  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;\n  width: 100%;\n}\n.shz-step-option:hover {\n  background: var(--shz-soft);\n  border-color: #c2d1e4;\n  box-shadow: 0 2px 8px rgba(17, 28, 46, .08);\n}\n.shz-step-option:active,\n.shz-wizard-action:active {\n  transform: translateY(1px);\n}\n.shz-step-option:focus-visible,\n.shz-wizard-action:focus-visible,\n.shz-notes-input:focus-visible {\n  outline: 3px solid rgba(74, 143, 212, .42);\n  outline-offset: 2px;\n}\n.shz-step-option[aria-pressed=\"true\"] {\n  background: #f2f7fe;\n  border-color: var(--shz-primary);\n  box-shadow: inset 0 0 0 1px var(--shz-primary);\n}\n.shz-option-main {\n  display: block;\n  min-width: 0;\n}\n.shz-option-title {\n  color: var(--shz-navy);\n  display: block;\n  font-size: .98rem;\n  font-weight: 780;\n  line-height: 1.3;\n}\n.shz-option-help {\n  color: var(--shz-muted);\n  display: block;\n  font-size: .8rem;\n  line-height: 1.35;\n  margin-top: 4px;\n}\n.shz-option-tag {\n  background: #eef4fb;\n  border-radius: 999px;\n  color: var(--shz-primary);\n  flex: 0 0 auto;\n  font-size: .82rem;\n  font-weight: 750;\n  padding: 6px 10px;\n}\n.shz-code-guide {\n  background: #f8fafc;\n  border: 1px solid var(--shz-border);\n  border-radius: 8px;\n  display: grid;\n  gap: 8px 14px;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  margin-top: 14px;\n  padding: 12px;\n}\n.shz-code-guide div {\n  align-items: start;\n  display: grid;\n  gap: 8px;\n  grid-template-columns: 74px minmax(0, 1fr);\n}\n.shz-code-guide strong {\n  color: var(--shz-navy);\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace;\n  font-size: .84rem;\n  line-height: 1.35;\n}\n.shz-code-guide span {\n  color: var(--shz-muted);\n  font-size: .84rem;\n  line-height: 1.35;\n}\n.shz-notes-input {\n  border: 1px solid var(--shz-border);\n  border-radius: 10px;\n  color: var(--shz-text);\n  font: inherit;\n  min-height: 112px;\n  padding: 14px 16px;\n  resize: vertical;\n  width: 100%;\n}\n.shz-wizard-side {\n  background: #f8fafc;\n  border-left: 1px solid var(--shz-border);\n  padding: 30px 26px;\n}\n.shz-side-title {\n  color: var(--shz-muted);\n  display: block;\n  font-size: .82rem;\n  font-weight: 800;\n  margin-bottom: 8px;\n}\n.shz-side-family {\n  color: var(--shz-navy);\n  display: block;\n  font-size: 1.12rem;\n  font-weight: 800;\n  line-height: 1.35;\n}\n.shz-side-model {\n  background: #fff;\n  border: 1px solid #cbd8e8;\n  border-radius: 10px;\n  margin-top: 18px;\n  padding: 14px;\n}\n.shz-side-model span {\n  color: var(--shz-muted);\n  display: block;\n  font-size: .8rem;\n  font-weight: 800;\n  margin-bottom: 6px;\n}\n.shz-side-model strong {\n  color: var(--shz-navy);\n  display: block;\n  font-family: \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace;\n  font-size: 1.08rem;\n  overflow-wrap: anywhere;\n}\n.shz-side-summary {\n  border-top: 1px solid var(--shz-border);\n  margin-top: 18px;\n  padding-top: 16px;\n}\n.shz-side-summary dl {\n  display: grid;\n  gap: 10px;\n  margin: 0;\n}\n.shz-side-summary div {\n  display: grid;\n  gap: 2px;\n}\n.shz-side-summary dt {\n  color: var(--shz-muted);\n  font-size: .82rem;\n}\n.shz-side-summary dd {\n  color: var(--shz-text);\n  font-size: .92rem;\n  font-weight: 700;\n  margin: 0;\n  overflow-wrap: anywhere;\n}\n.shz-wizard-actions {\n  align-items: center;\n  border-top: 1px solid var(--shz-border);\n  display: flex;\n  gap: 12px;\n  justify-content: space-between;\n  padding: 18px 28px;\n}\n.shz-wizard-action {\n  align-items: center;\n  border-radius: 8px;\n  cursor: pointer;\n  display: inline-flex;\n  font-weight: 780;\n  justify-content: center;\n  min-height: 48px;\n  padding: 11px 16px;\n  text-decoration: none;\n  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;\n}\n.shz-wizard-action-primary {\n  background: var(--shz-primary);\n  border: 2px solid var(--shz-primary);\n  color: #fff;\n}\n.shz-wizard-action-primary:hover {\n  background: var(--shz-primary-hover);\n  border-color: var(--shz-primary-hover);\n  color: #fff;\n}\n.shz-wizard-action-secondary {\n  background: #fff;\n  border: 2px solid var(--shz-primary);\n  color: var(--shz-primary);\n}\n.shz-wizard-action-secondary:hover {\n  background: #f2f7fe;\n  color: var(--shz-primary);\n}\n.shz-wizard-action[aria-disabled=\"true\"],\n.shz-wizard-action:disabled {\n  cursor: not-allowed;\n  opacity: .48;\n}\n.shz-result-actions {\n  display: grid;\n  gap: 10px;\n  margin-top: 22px;\n  max-width: 420px;\n}\n.shz-copy-status {\n  color: var(--shz-muted);\n  font-size: .88rem;\n  min-height: 1.35em;\n}\n.shz-selector-note {\n  background: #fff8eb;\n  border: 1px solid #f0d5aa;\n  border-radius: 8px;\n  color: #6f3b05;\n  font-size: .9rem;\n  line-height: 1.5;\n  margin-top: 20px;\n  max-width: 680px;\n  padding: 12px;\n}\n@media (max-width: 900px) {\n  .shz-selector-wrap {\n    padding: 44px 16px;\n  }\n  .shz-wizard-body {\n    grid-template-columns: 1fr;\n  }\n  .shz-wizard-side {\n    border-left: 0;\n    border-top: 1px solid var(--shz-border);\n  }\n  .shz-step-panel {\n    min-height: 0;\n    padding: 32px 20px;\n  }\n  .shz-step-panel h3 {\n    font-size: 1.65rem;\n  }\n  .shz-step-options[data-columns=\"3\"],\n  .shz-step-options[data-columns=\"4\"] {\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n  }\n  .shz-step-options[data-columns=\"2\"] {\n    grid-template-columns: 1fr;\n  }\n  .shz-wizard-actions {\n    align-items: stretch;\n    flex-direction: column-reverse;\n    padding: 16px 20px;\n  }\n  .shz-wizard-action {\n    width: 100%;\n  }\n}\n@media (max-width: 560px) {\n  .shz-step-options[data-columns=\"3\"],\n  .shz-step-options[data-columns=\"4\"] {\n    grid-template-columns: 1fr;\n  }\n  .shz-code-guide {\n    grid-template-columns: 1fr;\n  }\n}\n@media (prefers-reduced-motion: reduce) {\n  .shz-selector-page * {\n    scroll-behavior: auto !important;\n    transition-duration: .01ms !important;\n  }\n}\n<\/style>\n<div class=\"shz-selector-page\">\n  <section class=\"shz-selector-hero\">\n    <div class=\"shz-selector-wrap\">\n      <div>\n        <p class=\"shz-selector-kicker\">Shieldhz product selector<\/p>\n        <h1>Choose by application, get the model route.<\/h1>\n        <p>Answer one question at a time. The selector recommends the Shieldhz family, builds the model code, and opens the matching product page for review.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n  <section class=\"shz-selector-main\">\n    <div class=\"shz-selector-wrap\">\n      <div class=\"shz-selector-heading\">\n        <h2>Product selector<\/h2>\n        <p>No series knowledge required. Pick the job first, then choose the rating and mounting details.<\/p>\n      <\/div>\n      <div id=\"shz-selector-app\" class=\"shz-wizard-shell\" data-selector-payload='{&quot;routes&quot;:{&quot;lw28&quot;:{&quot;label&quot;:&quot;LW28 Rotary Cam Switch&quot;,&quot;family&quot;:&quot;Rotary Cam Switch&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/rotary-cam-switches\/lw28-rotary-cam-switches\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;contactCode&quot;,&quot;layers&quot;,&quot;mounting&quot;]},&quot;lw42&quot;:{&quot;label&quot;:&quot;LW42 Rotary Cam Switch&quot;,&quot;family&quot;:&quot;Rotary Cam Switch&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/rotary-cam-switches\/lw42-rotary-cam-switches\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;contactCode&quot;,&quot;mounting&quot;]},&quot;sh30&quot;:{&quot;label&quot;:&quot;SH30 Load Isolator Switch&quot;,&quot;family&quot;:&quot;Load Isolator&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/rotary-cam-switches\/sh30-rotary-cam-switches\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;poles&quot;,&quot;mounting&quot;]},&quot;shp-box&quot;:{&quot;label&quot;:&quot;SHP Waterproof Isolator Switch Box&quot;,&quot;family&quot;:&quot;Waterproof Box&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/waterproof-isolator-box\/shp-waterproof-isolator-switch\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;poles&quot;,&quot;boxSize&quot;]},&quot;sh30-box&quot;:{&quot;label&quot;:&quot;SH30 Weatherproof Isolator Switch Box&quot;,&quot;family&quot;:&quot;Waterproof Box&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/waterproof-isolator-box\/sh30-weatherproof-isolator-switch\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;poles&quot;]},&quot;lw28-box&quot;:{&quot;label&quot;:&quot;LW28 Waterproof Cam Switch Box&quot;,&quot;family&quot;:&quot;Waterproof Box&quot;,&quot;url&quot;:&quot;https:\/\/shieldhz.com\/waterproof-isolator-box\/lw28-waterproof-cam-switch-box\/&quot;,&quot;required&quot;:[&quot;current&quot;,&quot;contactCode&quot;,&quot;layers&quot;]}},&quot;useCases&quot;:[{&quot;id&quot;:&quot;changeover-selector&quot;,&quot;label&quot;:&quot;Transfer \/ selector&quot;,&quot;description&quot;:&quot;Source transfer or mode selection&quot;,&quot;route&quot;:&quot;lw28&quot;},{&quot;id&quot;:&quot;meter-selector&quot;,&quot;label&quot;:&quot;Meter selector&quot;,&quot;description&quot;:&quot;Voltmeter or ammeter reading&quot;,&quot;route&quot;:&quot;lw28&quot;,&quot;defaults&quot;:{&quot;current&quot;:&quot;20&quot;}},{&quot;id&quot;:&quot;compact-changeover&quot;,&quot;label&quot;:&quot;Compact changeover&quot;,&quot;description&quot;:&quot;20A to 32A equipment switching&quot;,&quot;route&quot;:&quot;lw42&quot;},{&quot;id&quot;:&quot;indoor-load-isolation&quot;,&quot;label&quot;:&quot;Indoor isolator&quot;,&quot;description&quot;:&quot;ON-OFF load isolation&quot;,&quot;route&quot;:&quot;sh30&quot;,&quot;defaults&quot;:{&quot;poles&quot;:&quot;3&quot;}},{&quot;id&quot;:&quot;outdoor-equipment-disconnect&quot;,&quot;label&quot;:&quot;Outdoor disconnect&quot;,&quot;description&quot;:&quot;Waterproof ON-OFF switch box&quot;,&quot;route&quot;:&quot;shp-box&quot;,&quot;defaults&quot;:{&quot;poles&quot;:&quot;3&quot;}},{&quot;id&quot;:&quot;narrow-weatherproof-isolator&quot;,&quot;label&quot;:&quot;SH30 waterproof box&quot;,&quot;description&quot;:&quot;Narrow enclosed isolator&quot;,&quot;route&quot;:&quot;sh30-box&quot;,&quot;defaults&quot;:{&quot;poles&quot;:&quot;3&quot;}},{&quot;id&quot;:&quot;waterproof-cam-program&quot;,&quot;label&quot;:&quot;Waterproof cam switch&quot;,&quot;description&quot;:&quot;Outdoor selector or changeover&quot;,&quot;route&quot;:&quot;lw28-box&quot;}],&quot;options&quot;:{&quot;lw28&quot;:{&quot;currents&quot;:[&quot;16&quot;,&quot;20&quot;,&quot;25&quot;,&quot;32&quot;,&quot;63&quot;,&quot;100&quot;,&quot;125&quot;,&quot;160&quot;],&quot;contacts&quot;:[[&quot;D0401&quot;,&quot;1-0-2 changeover&quot;],[&quot;3V\/4&quot;,&quot;Voltmeter switch, 3P, 4 positions&quot;],[&quot;3V\/7&quot;,&quot;Voltmeter switch, 3P, 7 positions&quot;],[&quot;3A&quot;,&quot;Ammeter switch&quot;],[&quot;GS04&quot;,&quot;ON-OFF GS04 route&quot;],[&quot;CUSTOM&quot;,&quot;Custom contact program&quot;]],&quot;layers&quot;:[&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;6&quot;],&quot;mounting&quot;:[&quot;M0&quot;,&quot;M1&quot;,&quot;M2&quot;,&quot;M31&quot;,&quot;M3&quot;,&quot;M4&quot;,&quot;O&quot;,&quot;D1&quot;,&quot;OMS&quot;,&quot;OS&quot;,&quot;S&quot;,&quot;GS04&quot;,&quot;GSB&quot;]},&quot;lw42&quot;:{&quot;currents&quot;:[&quot;20&quot;,&quot;25&quot;,&quot;32&quot;],&quot;contacts&quot;:[[&quot;D0414&quot;,&quot;1-0-2 changeover&quot;],[&quot;CUSTOM&quot;,&quot;Custom contact program&quot;]],&quot;mounting&quot;:[&quot;Panel mount&quot;,&quot;Single-hole mount&quot;,&quot;DIN rail&quot;,&quot;Waterproof box&quot;]},&quot;sh30&quot;:{&quot;currents&quot;:[&quot;20&quot;,&quot;25&quot;,&quot;32&quot;,&quot;40&quot;,&quot;63&quot;,&quot;80&quot;,&quot;100&quot;,&quot;125&quot;],&quot;poles&quot;:[&quot;2&quot;,&quot;3&quot;,&quot;4&quot;],&quot;mounting&quot;:[&quot;M2I&quot;,&quot;GFB&quot;,&quot;GS04-2&quot;,&quot;GSB4&quot;,&quot;GSB3&quot;,&quot;GS03-2&quot;,&quot;D2-150&quot;,&quot;O&quot;,&quot;OM2S&quot;,&quot;OMI&quot;,&quot;OM2I&quot;]},&quot;shp-box&quot;:{&quot;currents&quot;:[&quot;16&quot;,&quot;20&quot;,&quot;25&quot;,&quot;32&quot;,&quot;40&quot;,&quot;63&quot;,&quot;80&quot;,&quot;100&quot;,&quot;125&quot;],&quot;poles&quot;:[&quot;2&quot;,&quot;3&quot;,&quot;4&quot;],&quot;boxes&quot;:[&quot;L0&quot;,&quot;L1&quot;,&quot;L3&quot;,&quot;L5&quot;]},&quot;sh30-box&quot;:{&quot;currents&quot;:[&quot;20&quot;,&quot;25&quot;,&quot;32&quot;,&quot;40&quot;,&quot;63&quot;,&quot;80&quot;,&quot;100&quot;,&quot;125&quot;],&quot;poles&quot;:[&quot;3&quot;]},&quot;lw28-box&quot;:{&quot;currents&quot;:[&quot;16&quot;,&quot;20&quot;,&quot;25&quot;,&quot;32&quot;,&quot;63&quot;,&quot;100&quot;,&quot;125&quot;,&quot;160&quot;],&quot;contacts&quot;:[[&quot;D0414&quot;,&quot;1-0-2, 2 layers&quot;],[&quot;D1050&quot;,&quot;1-0-2, 4 layers&quot;],[&quot;GS04&quot;,&quot;GS04 ON-OFF route&quot;],[&quot;CUSTOM&quot;,&quot;Custom contact program&quot;]],&quot;layers&quot;:[&quot;2&quot;,&quot;4&quot;]}}}'>\n        <div class=\"shz-wizard-top\">\n          <div class=\"shz-progress-row\" aria-label=\"Selection progress\">\n            <div class=\"shz-progress-track\"><span class=\"shz-progress-fill\" id=\"shz-progress-fill\"><\/span><\/div>\n            <span class=\"shz-progress-text\" id=\"shz-progress-text\">Step 1<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"shz-wizard-body\">\n          <section class=\"shz-step-panel\" aria-labelledby=\"shz-step-title\">\n            <span class=\"shz-step-label\" id=\"shz-step-label\">Application need<\/span>\n            <h3 id=\"shz-step-title\">What do you need the switch to do?<\/h3>\n            <p id=\"shz-step-help\">Start with the customer job. The product family is recommended automatically.<\/p>\n            <div class=\"shz-step-options\" id=\"shz-step-options\" data-step-kind=\"useCase\"><\/div>\n            <div class=\"shz-code-guide\" id=\"shz-code-guide\" aria-live=\"polite\" hidden><\/div>\n            <div class=\"shz-result-actions\" id=\"shz-result-actions\" hidden>\n              <a class=\"shz-wizard-action shz-wizard-action-primary\" id=\"shz-request-quote\" href=\"https:\/\/shieldhz.com\/contact\/\">Open quote form<\/a>\n              <button class=\"shz-wizard-action shz-wizard-action-secondary\" id=\"shz-copy-inquiry\" type=\"button\">Copy inquiry details<\/button>\n              <button class=\"shz-wizard-action shz-wizard-action-secondary\" id=\"shz-copy-code\" type=\"button\">Copy model only<\/button>\n              <a class=\"shz-wizard-action shz-wizard-action-secondary\" id=\"shz-view-page\" href=\"#\">View product page<\/a>\n              <div class=\"shz-copy-status\" id=\"shz-copy-status\" aria-live=\"polite\"><\/div>\n            <\/div>\n            <div class=\"shz-selector-note\" id=\"shz-selector-note\" hidden>For custom contact programs, send the contact drawing or describe the switching sequence. Shieldhz will confirm the datasheet, drawing, and documentation package before order release.<\/div>\n          <\/section>\n          <aside class=\"shz-wizard-side\" aria-label=\"Current selection\">\n            <span class=\"shz-side-title\">Recommended family<\/span>\n            <strong class=\"shz-side-family\" id=\"shz-recommended-family\">Choose an application<\/strong>\n            <div class=\"shz-side-model\">\n              <span>Recommended model<\/span>\n              <strong id=\"shz-model-code\">Not ready yet<\/strong>\n            <\/div>\n            <div class=\"shz-side-summary\" id=\"shz-selector-summary\" aria-live=\"polite\"><\/div>\n          <\/aside>\n        <\/div>\n        <div class=\"shz-wizard-actions\">\n          <button class=\"shz-wizard-action shz-wizard-action-secondary\" id=\"shz-back-step\" type=\"button\" disabled>Back<\/button>\n          <button class=\"shz-wizard-action shz-wizard-action-primary\" id=\"shz-skip-step\" type=\"button\" aria-disabled=\"true\">Skip optional note<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n<\/div>\n<script data-no-optimize=\"1\" data-cfasync=\"false\">\n(function () {\n  var app = document.getElementById(\"shz-selector-app\");\n  if (!app) return;\n  var data = JSON.parse(app.getAttribute(\"data-selector-payload\"));\n  var state = {};\n  var stepIndex = 0;\n\n  var stepLabel = document.getElementById(\"shz-step-label\");\n  var stepTitle = document.getElementById(\"shz-step-title\");\n  var stepHelp = document.getElementById(\"shz-step-help\");\n  var stepOptions = document.getElementById(\"shz-step-options\");\n  var codeGuide = document.getElementById(\"shz-code-guide\");\n  var progressFill = document.getElementById(\"shz-progress-fill\");\n  var progressText = document.getElementById(\"shz-progress-text\");\n  var recommendedFamily = document.getElementById(\"shz-recommended-family\");\n  var modelCode = document.getElementById(\"shz-model-code\");\n  var summary = document.getElementById(\"shz-selector-summary\");\n  var backStep = document.getElementById(\"shz-back-step\");\n  var skipStep = document.getElementById(\"shz-skip-step\");\n  var resultActions = document.getElementById(\"shz-result-actions\");\n  var selectorNote = document.getElementById(\"shz-selector-note\");\n  var viewPage = document.getElementById(\"shz-view-page\");\n  var copyInquiry = document.getElementById(\"shz-copy-inquiry\");\n  var copyCode = document.getElementById(\"shz-copy-code\");\n  var copyStatus = document.getElementById(\"shz-copy-status\");\n  var requestQuote = document.getElementById(\"shz-request-quote\");\n\n  var shpCoreByCurrent = {16:\"SHP0\",20:\"SHP0\",25:\"SHP1\",32:\"SHP1\",40:\"SHP3\",63:\"SHP3\",80:\"SHP5\",100:\"SHP5\",125:\"SHP5\"};\n  var sh30BoxByCurrent = {20:\"H1\",25:\"H1\",32:\"H1\",40:\"H3\",63:\"H3\",80:\"H5\",100:\"H5\",125:\"H5\"};\n  var lw28BoxByCurrent = {16:\"H0\",20:\"H0\",25:\"H0\",32:\"H0\",63:\"H3\",100:\"H5\",125:\"H5\",160:\"H5\"};\n\n  var stepMeta = {\n    current: [\"Rated current\", \"What current do you need?\", \"Choose the rated current class.\"],\n    contactCode: [\"Switching function\", \"What switching function do you need?\", \"Choose a common route, or choose custom when a contact drawing is needed.\"],\n    layers: [\"Contact layers\", \"How many layers?\", \"Use the layer count from the selection logic or drawing.\"],\n    poles: [\"Poles\", \"How many poles?\", \"Choose the pole count needed by the circuit.\"],\n    boxSize: [\"Box size\", \"Which waterproof box size?\", \"Choose the enclosure size required by the installation.\"],\n    mounting: [\"Mounting\", \"How will it be mounted?\", \"Choose the panel, door, DIN, or lockable mounting route.\"],\n    notes: [\"Inquiry note\", \"Any special requirement?\", \"This is optional. Add handle color, panel color, certificate request, or contact drawing notes.\"],\n  };\n\n  function buildSteps() {\n    var steps = [{\n      kind: \"useCase\",\n      label: \"Application need\",\n      title: \"Choose the application\",\n      help: \"Pick the closest job.\",\n      options: data.useCases.map(function (item) {\n        return { value: item.id, title: item.label, help: item.description };\n      }),\n    }];\n    if (!state.route) return steps;\n    data.routes[state.route].required.forEach(function (field) {\n      steps.push(fieldStep(field));\n    });\n    steps.push({ kind: \"notes\", label: stepMeta.notes[0], title: stepMeta.notes[1], help: stepMeta.notes[2] });\n    steps.push({ kind: \"result\", label: \"Result\", title: \"Selection ready\", help: \"Copy the inquiry details, or open the quote form with this model route.\" });\n    return steps;\n  }\n\n  function fieldStep(field) {\n    var meta = stepMeta[field];\n    return {\n      kind: field,\n      label: meta[0],\n      title: meta[1],\n      help: meta[2],\n      options: optionsForField(field),\n    };\n  }\n\n  function optionsForField(field) {\n    var opts = data.options[state.route];\n    if (field === \"current\") return opts.currents.map(function (x) { return { value: x, title: x + \"A\" }; });\n    if (field === \"contactCode\") return opts.contacts.map(function (x) { return { value: x[0], title: x[1], tag: x[0] }; });\n    if (field === \"layers\") return opts.layers.map(function (x) { return { value: x, title: x + \" layer\" + (x === \"1\" ? \"\" : \"s\") }; });\n    if (field === \"poles\") return opts.poles.map(function (x) { return { value: x, title: x + \"P\" }; });\n    if (field === \"boxSize\") return opts.boxes.map(function (x) { return { value: x, title: x }; });\n    if (field === \"mounting\") return opts.mounting.map(function (x) { return { value: x.value || x, title: x.title || x, help: x.help || \"\" }; });\n    return [];\n  }\n\n  function selectValue(kind, value) {\n    if (kind === \"useCase\") {\n      var useCase = data.useCases.find(function (item) { return item.id === value; });\n      state = { useCase: useCase.id, route: useCase.route };\n      Object.keys(useCase.defaults || {}).forEach(function (key) { state[key] = useCase.defaults[key]; });\n    } else {\n      state[kind] = value;\n    }\n    goToNextStep();\n  }\n\n  function goToNextStep() {\n    var steps = buildSteps();\n    stepIndex = Math.min(stepIndex + 1, steps.length - 1);\n    renderStep();\n  }\n\n  function goBack() {\n    stepIndex = Math.max(stepIndex - 1, 0);\n    renderStep();\n  }\n\n  function requiredFields() {\n    if (!state.route) return [];\n    return data.routes[state.route].required.filter(function (field) { return !state[field]; });\n  }\n\n  function isComplete() {\n    if (!state.route) return false;\n    return requiredFields().length === 0;\n  }\n\n  function buildModel() {\n    if (!isComplete()) return \"\";\n    if (state.route === \"lw28\") return \"LW28-\" + state.current + \"\/\" + state.contactCode + \"\/\" + state.layers + \"\/\" + state.mounting;\n    if (state.route === \"lw42\") return \"LW42-\" + state.current + \"\/\" + state.contactCode + \"\/\" + state.mounting;\n    if (state.route === \"sh30\") return \"SH30-\" + state.current + \"\/\" + state.poles + \"\/\" + state.mounting;\n    if (state.route === \"shp-box\") return shpCoreByCurrent[state.current] + \"-\" + state.current + \"\/\" + state.poles + \"\/\" + state.boxSize;\n    if (state.route === \"sh30-box\") return \"SH30-\" + state.current + \"\/\" + state.poles + \"\/\" + sh30BoxByCurrent[state.current];\n    if (state.route === \"lw28-box\") return \"LW28-\" + state.current + \"\/\" + state.contactCode + \"\/\" + state.layers + \"\/\" + lw28BoxByCurrent[state.current];\n    return \"\";\n  }\n\n  function renderStep() {\n    var steps = buildSteps();\n    var step = steps[stepIndex];\n    var isResult = step.kind === \"result\";\n    app.setAttribute(\"data-current-step\", step.kind);\n    stepLabel.textContent = step.label;\n    stepTitle.textContent = step.title;\n    stepHelp.textContent = step.kind === \"mounting\" ? mountingGuide() : step.help;\n    stepOptions.setAttribute(\"data-step-kind\", step.kind);\n    stepOptions.setAttribute(\"data-columns\", optionColumnCount(step));\n    stepOptions.hidden = isResult;\n    renderCodeGuide(step);\n    resultActions.hidden = !isResult;\n    if (!isResult) copyStatus.textContent = \"\";\n    selectorNote.hidden = !isResult;\n    skipStep.hidden = step.kind !== \"notes\";\n    skipStep.setAttribute(\"aria-disabled\", step.kind === \"notes\" ? \"false\" : \"true\");\n    backStep.disabled = stepIndex === 0;\n\n    if (step.kind === \"notes\") {\n      stepOptions.innerHTML = '<label class=\"shz-side-title\" for=\"shz-notes\">Notes for inquiry<\/label><textarea class=\"shz-notes-input\" id=\"shz-notes\" placeholder=\"Handle color, panel color, contact drawing, certificate request\">' + escapeText(state.notes || \"\") + '<\/textarea>';\n      document.getElementById(\"shz-notes\").addEventListener(\"input\", function (event) {\n        state.notes = event.target.value;\n        updateSide();\n      });\n    } else if (!isResult) {\n      stepOptions.innerHTML = step.options.map(function (option) {\n        var selected = state[step.kind] === option.value;\n        return '<button class=\"shz-step-option\" type=\"button\" data-kind=\"' + step.kind + '\" data-value=\"' + escapeAttr(option.value) + '\" aria-pressed=\"' + (selected ? \"true\" : \"false\") + '\"><span class=\"shz-option-main\"><span class=\"shz-option-title\">' + escapeText(option.title) + '<\/span>' + (option.help ? '<span class=\"shz-option-help\">' + escapeText(option.help) + '<\/span>' : '') + '<\/span>' + (option.tag ? '<span class=\"shz-option-tag\">' + escapeText(option.tag) + '<\/span>' : '') + '<\/button>';\n      }).join(\"\");\n      stepOptions.querySelectorAll(\"[data-kind]\").forEach(function (button) {\n        button.addEventListener(\"click\", function () { selectValue(button.getAttribute(\"data-kind\"), button.getAttribute(\"data-value\")); });\n      });\n    } else {\n      stepOptions.innerHTML = \"\";\n    }\n\n    var progress = Math.round(((stepIndex + 1) \/ steps.length) * 100);\n    progressFill.style.width = progress + \"%\";\n    progressText.textContent = \"Step \" + (stepIndex + 1) + \" of \" + steps.length;\n    updateSide();\n  }\n\n  function updateSide() {\n    var route = state.route ? data.routes[state.route] : null;\n    var code = buildModel();\n    recommendedFamily.textContent = route ? route.label : \"Choose an application\";\n    modelCode.textContent = code || \"Not ready yet\";\n    summary.innerHTML = '<dl>' + summaryRows(route).join(\"\") + '<\/dl>';\n    if (route) {\n      viewPage.href = route.url;\n      requestQuote.href = quoteUrl(route, code);\n    }\n  }\n\n  function optionColumnCount(step) {\n    if (step.kind === \"useCase\") return \"2\";\n    if (step.kind === \"mounting\") return \"4\";\n    if (step.kind === \"current\") return \"4\";\n    if (step.kind === \"layers\" || step.kind === \"poles\" || step.kind === \"boxSize\") return \"3\";\n    if (!step.options) return \"1\";\n    return step.options.length <= 6 ? \"2\" : \"1\";\n  }\n\n  function mountingGuide() {\n    if (state.route === \"lw28\") return \"Pick the mounting code. The compact guide below explains what each code group means.\";\n    if (state.route === \"sh30\") return \"Pick the mounting code. The compact guide below explains the SH30 mounting groups.\";\n    if (state.route === \"lw42\") return \"Choose panel mount, single-hole mount, DIN rail, or waterproof box.\";\n    return stepMeta.mounting[2];\n  }\n\n  function renderCodeGuide(step) {\n    if (step.kind !== \"mounting\") {\n      codeGuide.hidden = true;\n      codeGuide.innerHTML = \"\";\n      return;\n    }\n    var rows = mountingGuideRows();\n    codeGuide.innerHTML = rows.map(function (row) {\n      return '<div><strong>' + escapeText(row.code) + '<\/strong><span>' + escapeText(row.text) + '<\/span><\/div>';\n    }).join(\"\");\n    codeGuide.hidden = false;\n  }\n\n  function mountingGuideRows() {\n    if (state.route === \"lw28\") {\n      return [\n        { code: \"M0-M4\", text: \"Panel or door mount variants. Use the catalog drawing to confirm the exact plate and handle route. If unsure, start with M2.\" },\n        { code: \"O\", text: \"Single-hole operator mounting.\" },\n        { code: \"D1\", text: \"DIN rail mounting inside the cabinet.\" },\n        { code: \"OMS\", text: \"Single-hole panel mount with lockable handle.\" },\n        { code: \"OS\", text: \"Single-hole mount with lockable handle.\" },\n        { code: \"S\", text: \"Panel mount with lockable handle.\" },\n        { code: \"GS04\/GSB\", text: \"ON-OFF handle routes for GS switch programs.\" },\n      ];\n    }\n    if (state.route === \"sh30\") {\n      return [\n        { code: \"M2I\/GFB\", text: \"Panel or door mount variants.\" },\n        { code: \"GS codes\", text: \"Panel mount handle routes.\" },\n        { code: \"D2-150\", text: \"DIN rail mount with 150 mm shaft route.\" },\n        { code: \"O\/OM\", text: \"Single-hole mount variants.\" },\n      ];\n    }\n    return [\n      { code: \"Panel\", text: \"Panel or door mount.\" },\n      { code: \"Single-hole\", text: \"Single-hole operator mounting.\" },\n      { code: \"DIN rail\", text: \"DIN rail mounting inside the cabinet.\" },\n      { code: \"Box\", text: \"Waterproof box route.\" },\n    ];\n  }\n\n  function summaryRows(route) {\n    return summaryValues(route).map(function (row) {\n      return summaryRow(row.label, row.value);\n    });\n  }\n\n  function summaryValues(route) {\n    var useCase = data.useCases.find(function (item) { return item.id === state.useCase; });\n    var rows = [\n      { label: \"Application\", value: useCase ? useCase.label : \"Not selected\" },\n      { label: \"Family\", value: route ? route.label : \"Not selected\" },\n      { label: \"Current\", value: state.current ? state.current + \"A\" : \"Not selected\" },\n    ];\n    if (state.contactCode || routeRequires(route, \"contactCode\")) rows.push({ label: \"Function\", value: state.contactCode || \"Not selected\" });\n    if (state.layers || routeRequires(route, \"layers\")) rows.push({ label: \"Layers\", value: state.layers || \"Not selected\" });\n    if (state.poles || routeRequires(route, \"poles\")) rows.push({ label: \"Poles\", value: state.poles ? state.poles + \"P\" : \"Not selected\" });\n    if (route) rows.push({ label: \"Mounting or box\", value: state.mounting || state.boxSize || inferredBox() || \"Not selected\" });\n    if (state.notes) rows.push({ label: \"Notes\", value: state.notes });\n    return rows;\n  }\n\n  function summaryRow(label, value) {\n    return '<div><dt>' + escapeText(label) + '<\/dt><dd>' + escapeText(value) + '<\/dd><\/div>';\n  }\n\n  function routeRequires(route, field) {\n    if (!route) return false;\n    return route.required.indexOf(field) !== -1;\n  }\n\n  function inferredBox() {\n    if (state.route === \"sh30-box\") {\n      if (state.current) return sh30BoxByCurrent[state.current];\n    }\n    if (state.route === \"lw28-box\") {\n      if (state.current) return lw28BoxByCurrent[state.current];\n    }\n    return \"\";\n  }\n\n  function quoteUrl(route, code) {\n    var useCase = data.useCases.find(function (item) { return item.id === state.useCase; });\n    var amp = String.fromCharCode(38);\n    return \"https:\/\/shieldhz.com\/contact\/?selector_model=\" + encodeURIComponent(code || route.label)\n      + amp + \"selector_family=\" + encodeURIComponent(route.label)\n      + amp + \"selector_application=\" + encodeURIComponent(useCase ? useCase.label : \"\");\n  }\n\n  function buildInquiryText() {\n    var route = state.route ? data.routes[state.route] : null;\n    var code = buildModel();\n    if (!route || !code) return \"\";\n    var lines = [\"Shieldhz product selector\", \"Model: \" + code];\n    summaryValues(route).forEach(function (row) {\n      if (row.value !== \"Not selected\") lines.push(row.label + \": \" + row.value);\n    });\n    lines.push(\"Product page: \" + route.url);\n    return lines.join(\"\\n\");\n  }\n\n  function copyText(text, message) {\n    if (!text) return;\n    if (navigator.clipboard) {\n      if (navigator.clipboard.writeText) {\n        navigator.clipboard.writeText(text).then(function () {\n          copyStatus.textContent = message;\n        }).catch(function () {\n          fallbackCopy(text, message);\n        });\n        return;\n      }\n    }\n    fallbackCopy(text, message);\n  }\n\n  function fallbackCopy(text, message) {\n    var field = document.createElement(\"textarea\");\n    field.value = text;\n    field.setAttribute(\"readonly\", \"\");\n    field.style.position = \"fixed\";\n    field.style.left = \"-9999px\";\n    document.body.appendChild(field);\n    field.select();\n    document.execCommand(\"copy\");\n    document.body.removeChild(field);\n    copyStatus.textContent = message;\n  }\n\n  function escapeText(value) {\n    var amp = String.fromCharCode(38);\n    return String(value).split(amp).join(amp + \"amp;\").replace(\/<\/g, amp + \"lt;\").replace(\/>\/g, amp + \"gt;\");\n  }\n\n  function escapeAttr(value) {\n    return escapeText(value).replace(\/\"\/g, String.fromCharCode(38) + \"quot;\");\n  }\n\n  backStep.addEventListener(\"click\", goBack);\n  skipStep.addEventListener(\"click\", goToNextStep);\n  copyInquiry.addEventListener(\"click\", function () {\n    copyText(buildInquiryText(), \"Inquiry details copied.\");\n  });\n  copyCode.addEventListener(\"click\", function () {\n    var code = buildModel();\n    copyText(code, \"Model code copied.\");\n  });\n  renderStep();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Crie um roteiro do modelo Shieldhz para interruptores rotativos de came, isoladores de carga SH30 e caixas de interruptores \u00e0 prova d\u2019\u00e1gua.<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-3176","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","vertical_spacing_source":"custom","content_area_spacing":"none","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/pages\/3176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/comments?post=3176"}],"version-history":[{"count":16,"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/pages\/3176\/revisions"}],"predecessor-version":[{"id":3192,"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/pages\/3176\/revisions\/3192"}],"wp:attachment":[{"href":"https:\/\/shieldhz.com\/pt\/wp-json\/wp\/v2\/media?parent=3176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}