{"id":10535,"date":"2025-12-19T21:11:25","date_gmt":"2025-12-19T21:11:25","guid":{"rendered":"https:\/\/dev.smartplug.com\/staging\/?page_id=10535"},"modified":"2026-10-05T20:14:44","modified_gmt":"2026-10-05T20:14:44","slug":"smartplug-combokit","status":"publish","type":"page","link":"https:\/\/dev.smartplug.com\/staging\/smartplug-combokit\/","title":{"rendered":"Combo Kit &#8211; Boat"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10535\" class=\"elementor elementor-10535\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3bca2de e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"3bca2de\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a6fee19 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"a6fee19\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0037da4 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"0037da4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7fe139b elementor-widget elementor-widget-heading\" data-id=\"7fe139b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\nSmartplug Combo Kit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-88192ed e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"88192ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4723124 e-grid e-con-full wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"4723124\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-75c0c77 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"75c0c77\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0f1f6b sp-hotspot-image elementor-widget elementor-widget-html\" data-id=\"c0f1f6b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- SMARTPLUG COMBO KIT GALLERY -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&family=Montserrat:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n<div id=\"sp-combo-kit-gallery\">\n\n    <div class=\"sp-main-view\">\n\n        <!-- =================================================\n             FEATURE \/ HOTSPOT SLIDE\n             ================================================= -->\n\n        <div\n            class=\"sp-gallery-slide active\"\n            data-slide=\"0\"\n            data-title=\"KEY FEATURES\"\n            data-subtitle=\"Click the numbered points to explore the ComboKit\"\n        >\n\n            <div\n                class=\"sp-product-image-wrap sp-main-product sp-hotspot-image\"\n                style=\"\n                    --image-x-desktop:0px;\n                    --image-y-desktop:15px;\n                    --image-scale-desktop:1.8;\n\n                    --image-x-laptop:0px;\n                    --image-y-laptop:15px;\n                    --image-scale-laptop:1.5;\n\n                    --image-x-tablet:0px;\n                    --image-y-tablet:15px;\n                    --image-scale-tablet:1.8;\n\n                    --image-x-mobile:20px;\n                    --image-y-mobile:50px;\n                    --image-scale-mobile:1.7;\n                \"\n            >\n\n                <div class=\"sp-main-image-clip\">\n                    <img decoding=\"async\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/08\/Smartplug-Combo-Kit-1.png\"\n                        alt=\"SmartPlug ComboKit\"\n                    >\n                <\/div>\n\n\n                <!-- =================================================\n                     HOTSPOT 1\n                     ================================================= -->\n\n                <div\n                    class=\"sp-hotspot\"\n                    tabindex=\"0\"\n                    style=\"\n                        --top:33%;\n                        --left:23%;\n                        --hotspot-x:0px;\n                        --hotspot-y:0px;\n                        --hotspot-scale-desktop:1;\n\n                        --hotspot-scale-mobile:0.7;\n\n                        --tooltip-x-desktop:0px;\n                        --tooltip-y-desktop:0px;\n                        --tooltip-scale-desktop:1;\n\n                        --tooltip-x-laptop:70px;\n                        --tooltip-y-laptop:0px;\n                        --tooltip-scale-laptop:1;\n\n                        --tooltip-x-tablet:0px;\n                        --tooltip-y-tablet:0px;\n                        --tooltip-scale-tablet:1;\n\n                        --tooltip-x-mobile:45px;\n                        --tooltip-y-mobile:0px;\n                        --tooltip-scale-mobile:1;\n\n                        --dot-color:#DF6B30;\n                        --number-color:#ffffff;\n                        --tooltip-bg:#DF6B30;\n                        --tooltip-width:190px;\n                        --dot-size:30px;\n                        --number-size:12px;\n                    \"\n                >\n\n                    <div class=\"sp-dot\">\n                        <span class=\"sp-number\">\n                            1\n                        <\/span>\n                    <\/div>\n\n                    <div class=\"sp-tooltip\">\n                        <strong>\n                            Quick &amp; Easy Installation\n                        <\/strong>\n\n                        <br>\n\n                        Mounting flange holes align with twist-type patterns for a quick 30-minute installation.\n                    <\/div>\n\n                <\/div>\n\n\n                <!-- =================================================\n                     HOTSPOT 2\n                     ================================================= -->\n\n                <div\n                    class=\"sp-hotspot\"\n                    tabindex=\"0\"\n                    style=\"\n                        --top:67%;\n                        --left:25%;\n                        --hotspot-x:0px;\n                        --hotspot-y:0px;\n                        --hotspot-scale-desktop:1;\n                        \n                        --hotspot-scale-mobile:.7;\n\n                        --tooltip-x-desktop:0px;\n                        --tooltip-y-desktop:0px;\n                        --tooltip-scale-desktop:1;\n\n                        --tooltip-x-laptop:72px;\n                        --tooltip-y-laptop:0px;\n                        --tooltip-scale-laptop:1;\n\n                        --tooltip-x-tablet:50px;\n                        --tooltip-y-tablet:0px;\n                        --tooltip-scale-tablet:1;\n\n                        --tooltip-x-mobile:25px;\n                        --tooltip-y-mobile:0px;\n                        --tooltip-scale-mobile:1;\n\n                        --dot-color:#DF6B30;\n                        --number-color:#ffffff;\n                        --tooltip-bg:#DF6B30;\n                        --tooltip-width:190px;\n                        --dot-size:30px;\n                        --number-size:12px;\n                    \"\n                >\n\n                    <div class=\"sp-dot\">\n                        <span class=\"sp-number\">\n                            2\n                        <\/span>\n                    <\/div>\n\n                    <div class=\"sp-tooltip\">\n                        <strong>\n                            Multi-Point Locking System\n                        <\/strong>\n\n                        <br>\n\n                        Side clips secure the plug in the inlet, preventing pin stress from cord movement.\n                    <\/div>\n\n                <\/div>\n\n\n                <!-- =================================================\n                     HOTSPOT 3\n                     ================================================= -->\n\n                <div\n                    class=\"sp-hotspot\"\n                    tabindex=\"0\"\n                    style=\"\n                        --top:23%;\n                        --left:56%;\n                        --hotspot-x:0px;\n                        --hotspot-y:0px;\n                        --hotspot-scale-desktop:1;\n                        \n                        --hotspot-scale-mobile:.7;\n\n                        --tooltip-x-desktop:0px;\n                        --tooltip-y-desktop:0px;\n                        --tooltip-scale-desktop:1;\n\n                        --tooltip-x-laptop:0px;\n                        --tooltip-y-laptop:0px;\n                        --tooltip-scale-laptop:1;\n\n                        --tooltip-x-tablet:0px;\n                        --tooltip-y-tablet:0px;\n                        --tooltip-scale-tablet:1;\n\n                        --tooltip-x-mobile:0px;\n                        --tooltip-y-mobile:5px;\n                        --tooltip-scale-mobile:1;\n\n                        --dot-color:#DF6B30;\n                        --number-color:#ffffff;\n                        --tooltip-bg:#DF6B30;\n                        --tooltip-width:190px;\n                        --dot-size:30px;\n                        --number-size:12px;\n                    \"\n                >\n\n                    <div class=\"sp-dot\">\n                        <span class=\"sp-number\">\n                            3\n                        <\/span>\n                    <\/div>\n\n                    <div class=\"sp-tooltip\">\n                        <strong>\n                            Weatherproof Seals\n                        <\/strong>\n\n                        <br>\n\n                        Superior gaskets in the inlet cover and plug body prevent moisture penetration.\n                    <\/div>\n\n                <\/div>\n\n\n                <!-- =================================================\n                     HOTSPOT 4\n                     ================================================= -->\n\n                <div\n                    class=\"sp-hotspot\"\n                    tabindex=\"0\"\n                    style=\"\n                        --top:49%;\n                        --left:68%;\n                        --hotspot-x:0px;\n                        --hotspot-y:0px;\n                        --hotspot-scale-desktop:1;\n                        --hotspot-scale-laptop:1;\n                        --hotspot-scale-tablet:1;\n                        --hotspot-scale-mobile:.9;\n\n                        --tooltip-x-desktop:0px;\n                        --tooltip-y-desktop:0px;\n                        --tooltip-scale-desktop:1;\n\n                        --tooltip-x-laptop:0px;\n                        --tooltip-y-laptop:0px;\n                        --tooltip-scale-laptop:1;\n\n                        --tooltip-x-tablet:0px;\n                        --tooltip-y-tablet:0px;\n                        --tooltip-scale-tablet:1;\n\n                        --tooltip-x-mobile:-40px;\n                        --tooltip-y-mobile:5px;\n                        --tooltip-scale-mobile:1;\n\n                        --dot-color:#DF6B30;\n                        --number-color:#ffffff;\n                        --tooltip-bg:#DF6B30;\n                        --tooltip-width:190px;\n                        --dot-size:30px;\n                        --number-size:12px;\n                    \"\n                >\n\n                    <div class=\"sp-dot\">\n                        <span class=\"sp-number\">\n                            4\n                        <\/span>\n                    <\/div>\n\n                    <div class=\"sp-tooltip\">\n                        <strong>\n                            Ease of Use\n                        <\/strong>\n\n                        <br>\n\n                        Push-in design eliminates the need for twisting, ensuring the plug only fits one way, even in the dark.\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n\n            <div class=\"sp-slide-info\">\n\n                <div class=\"sp-slide-title\">\n                    KEY FEATURES\n                <\/div>\n\n                <div class=\"sp-slide-subtitle\">\n                    Click the numbered points to explore the ComboKit\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n\n        <!-- =====================================================\n             COMBO KIT VARIATION 1\n             30A Heyco ComboKit\n             ===================================================== -->\n\n        <div\n            class=\"sp-gallery-slide sp-variant-slide\"\n            data-slide=\"1\"\n            data-variant=\"30a-heyco-combokit\"\n\n            data-Stainless-Steel=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-30A-w-Stainless-Inlet.png\"\n            data-Stainless-Steel-kicker=\"SMARTPLUG COMBO KIT\"\n            data-Stainless-Steel-title=\"30A Heyco Connector & Inlet\"\n            data-Stainless-Steel-subtitle=\"Stainless - Steel\"\n            data-Stainless-Steel-part-number=\"B30ASSYNT\"\n\n            data-White=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-30A-w-White-Inlet.png\"\n            data-White-title=\"30A Heyco Connector & Inlet\"\n            data-White-subtitle=\"Non-Metal - White\"\n            data-White-part-number=\"B30ASSYPW\"\n\n            data-Black=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-30A-w-Black-Inlet.png\"\n            data-Black-title=\"30A Heyco Connector & Inlet\"\n            data-Black-subtitle=\"Non-Metal - Black\"\n            data-Black-part-number=\"B30ASSYPB\"\n\n            data-Grey=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-30A-w-Grey-Inlet.png\"\n            data-Grey-title=\"30A Heyco Connector & Inlet\"\n            data-Grey-subtitle=\"Non-Metal - Grey\"\n            data-Grey-part-number=\"B30ASSYPG\"\n\n            \n        >\n\n            <div class=\"sp-variant-layout\">\n\n                <div class=\"sp-mobile-variant-title\">\n\n\n                    <div class=\"sp-slide-title\">\n                        30A Heyco Connector & Inlet\n                    <\/div>\n\n                    <div class=\"sp-slide-subtitle\">\n                        Stainless - Steel\n                    <\/div>\n\n                <\/div>\n\n\n                <div class=\"sp-variant-image-wrap\">\n\n                    <img decoding=\"async\"\n                        class=\"sp-variant-image\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/30A-Heyco-Combokits-Stainless.png\"\n                        alt=\"30A Heyco ComboKit Stainless Steel\"\n                        style=\"\n                            --image-x-desktop:0px;\n                            --image-y-desktop:0px;\n                            --image-scale-desktop:1.05;\n\n                            --image-x-mobile:10px;\n                            --image-y-mobile:0px;\n                            --image-scale-mobile:1.3;\n                        \"\n                    >\n\n                <\/div>\n\n\n                <div class=\"sp-slide-info sp-side-info\">\n\n                    <div class=\"sp-slide-title\">\n                        30A Heyco Connector & Inlet\n                    <\/div>\n\n                    <div class=\"sp-slide-subtitle\">\n                        Stainless - Steel\n                    <\/div>\n\n                    <div class=\"sp-amp-label\">\n                        SELECT COLOR\n                    <\/div>\n\n                    <div\n                        class=\"sp-amp-toggle\"\n                        role=\"group\"\n                        aria-label=\"30A Heyco ComboKit color configuration\"\n                    >\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn active\"\n                            data-view=\"Stainless Steel\"\n                        >\n                            Stainless\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"White\"\n                        >\n                            White\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"Black\"\n                        >\n                            Black\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"Grey\"\n                        >\n                            Grey\n                        <\/button>\n\n\n                    <\/div>\n\n                    <div\n                        class=\"sp-current-amp\"\n                        aria-live=\"polite\"\n                    >\n                        Showing <strong>Stainless Steel<\/strong>\n                    <\/div>\n\n                    <div class=\"sp-part-number\">\n                        PART NUMBER:\n                        <strong class=\"sp-part-number-value\"><\/strong>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n\n        <!-- =====================================================\n             COMBO KIT VARIATION 2\n             30A Rubber Tail ComboKit\n             ===================================================== -->\n\n        <div\n            class=\"sp-gallery-slide sp-variant-slide\"\n            data-slide=\"2\"\n            data-variant=\"30a-rubber-tail-combokit\"\n\n            data-Stainless-Steel=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-50A-w-Stainless-Inlet.png\"\n            data-Stainless-Steel-title=\"50A Heyco Connector & Inlet\"\n            data-Stainless-Steel-subtitle=\"Stainless - Steel\"\n            data-Stainless-Steel-part-number=\"B50ASSYNT\"\n\n            data-White=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-50A-w-White-Inlet.png\"\n            data-White-title=\"50A Heyco Connector & Inlet\"\n            data-White-subtitle=\"Non-Metal - White\"\n            data-White-part-number=\"B50ASSYPW\"\n\n            data-Black=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-50A-w-Black-Inlet.png\"\n            data-Black-title=\"50A Heyco Connector & Inlet\"\n            data-Black-subtitle=\"Non-Metal - Black\"\n            data-Black-part-number=\"B50ASSYPB\"\n\n            data-Grey=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-50A-w-Grey-Inlet.png\"\n            data-Grey-title=\"50A Heyco Connector & Inlet\"\n            data-Grey-subtitle=\"Non-Metal - Grey\"\n            data-Grey-part-number=\"B50ASSYPG\"\n\n        >\n\n            <div class=\"sp-variant-layout\">\n\n                <div class=\"sp-mobile-variant-title\">\n\n                    <div class=\"sp-slide-kicker\">\n                        SMARTPLUG COMBO KIT\n                    <\/div>\n\n                    <div class=\"sp-slide-title\">\n                        50A Heyco Connector & Inlet\n                    <\/div>\n\n                    <div class=\"sp-slide-subtitle\">\n                        Stainless - Steel\n                    <\/div>\n\n                <\/div>\n\n\n                <div class=\"sp-variant-image-wrap\">\n\n                    <img decoding=\"async\"\n                        class=\"sp-variant-image\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/30A-Rubber-tail-Combokits-Stainless.png\"\n                        alt=\"30A Rubber Tail ComboKit Stainless Steel\"\n                        style=\"\n                            --image-x-desktop:0px;\n                            --image-y-desktop:0px;\n                            --image-scale-desktop:1.05;\n\n                            --image-x-mobile:10px;\n                            --image-y-mobile:0px;\n                            --image-scale-mobile:1.25;\n                        \"\n                    >\n\n                <\/div>\n\n\n                <div class=\"sp-slide-info sp-side-info\">\n\n                    <div class=\"sp-slide-kicker\">\n                        SMARTPLUG COMBO KIT\n                    <\/div>\n\n                    <div class=\"sp-slide-title\">\n                        30A Heyco Connector & Inlet\n                    <\/div>\n\n                    <div class=\"sp-slide-subtitle\">\n                        Stainless - Steel\n                    <\/div>\n\n                    <div class=\"sp-amp-label\">\n                        SELECT COLOR\n                    <\/div>\n\n                    <div\n                        class=\"sp-amp-toggle\"\n                        role=\"group\"\n                        aria-label=\"30A Rubber Tail ComboKit color configuration\"\n                    >\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn active\"\n                            data-view=\"Stainless Steel\"\n                        >\n                            Stainless\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"White\"\n                        >\n                            White\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"Black\"\n                        >\n                            Black\n                        <\/button>\n\n                        <button\n                            type=\"button\"\n                            class=\"sp-amp-btn\"\n                            data-view=\"Grey\"\n                        >\n                            Grey\n                        <\/button>\n\n                        \n                    <\/div>\n\n                    <div\n                        class=\"sp-current-amp\"\n                        aria-live=\"polite\"\n                    >\n                        Showing <strong>Stainless Steel<\/strong>\n                    <\/div>\n\n                    <div class=\"sp-part-number\">\n                        PART NUMBER:\n                        <strong class=\"sp-part-number-value\"><\/strong>\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n\n    <!-- =====================================================\n         THUMBNAILS \u2014 EXACTLY 3\n         ===================================================== -->\n\n    <div class=\"sp-product-selector\">\n\n        <button\n            type=\"button\"\n            class=\"sp-thumb-nav sp-thumb-prev\"\n            aria-label=\"Previous product image\"\n        >\n            &#10094;\n        <\/button>\n\n        <div class=\"sp-thumbnails\">\n\n            <button\n                type=\"button\"\n                class=\"sp-thumb sp-feature-thumb active\"\n                data-target=\"0\"\n                aria-label=\"View ComboKit key features\"\n            >\n\n                <span class=\"sp-thumb-image\">\n\n                    <img decoding=\"async\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/08\/32A-Connector-w-Inlet-.png\"\n                        alt=\"SmartPlug ComboKit\"\n                    >\n\n                <\/span>\n\n                <span class=\"sp-thumb-label\">\n                    Features\n                <\/span>\n\n            <\/button>\n\n\n            <button\n                type=\"button\"\n                class=\"sp-thumb\"\n                data-target=\"1\"\n                aria-label=\"View 30A Heyco ComboKit\"\n            >\n\n                <span class=\"sp-thumb-image\">\n\n                    <img decoding=\"async\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-30A-w-Stainless-Inlet.png\"\n                        alt=\"30A Heyco ComboKit Stainless Steel\"\n                    >\n\n                <\/span>\n\n                <span class=\"sp-thumb-label\">\n                    30A\n                <\/span>\n\n            <\/button>\n\n\n            <button\n                type=\"button\"\n                class=\"sp-thumb\"\n                data-target=\"2\"\n                aria-label=\"View 30A Rubber Tail ComboKit\"\n            >\n\n                <span class=\"sp-thumb-image\">\n\n                    <img decoding=\"async\"\n                        src=\"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/09\/Connector-50A-w-Stainless-Inlet.png\"\n                        alt=\"30A Rubber Tail ComboKit Stainless Steel\"\n                    >\n\n                <\/span>\n\n                <span class=\"sp-thumb-label\">\n                    50A\n                <\/span>\n\n            <\/button>\n\n        <\/div>\n\n\n        <button\n            type=\"button\"\n            class=\"sp-thumb-nav sp-thumb-next\"\n            aria-label=\"Next product image\"\n        >\n            &#10095;\n        <\/button>\n\n    <\/div>\n\n\n    <!-- =====================================================\n         PAGINATION DOTS \u2014 EXACTLY 3\n         ===================================================== -->\n\n    <div\n        class=\"sp-gallery-pagination\"\n        aria-label=\"Product gallery pagination\"\n    >\n\n        <button\n            type=\"button\"\n            class=\"sp-page-dot active\"\n            data-page=\"0\"\n            aria-label=\"Go to features\"\n        ><\/button>\n\n        <button\n            type=\"button\"\n            class=\"sp-page-dot\"\n            data-page=\"1\"\n            aria-label=\"Go to Heyco ComboKit\"\n        ><\/button>\n\n        <button\n            type=\"button\"\n            class=\"sp-page-dot\"\n            data-page=\"2\"\n            aria-label=\"Go to Rubber Tail ComboKit\"\n        ><\/button>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* =========================================================\n   SMARTPLUG DUAL CORDSET GALLERY\n   Amazon-inspired product selector\n   ========================================================= *\/\n\n#sp-combo-kit-gallery {\n\n    --sp-orange: #DF6B30;\n    --sp-dark: #1c1c1c;\n    --sp-muted: #666;\n    --sp-border: #dedede;\n    --sp-soft: #f7f7f7;\n\n    width: 100%;\n    height: 560px;\n    margin: 0 auto;\n    font-family: \"Montserrat\", sans-serif;\n    box-sizing: border-box;\n    overflow: visible;\n}\n\n\n#sp-combo-kit-gallery *,\n#sp-combo-kit-gallery *::before,\n#sp-combo-kit-gallery *::after {\n\n    box-sizing: border-box;\n\n}\n\n\n\/* =========================================================\n   MAIN VIEW\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-main-view {\n\n    position: relative;\n    width: 100%;\n    height: 430px;\n    overflow: visible;\n\n}\n\n\n#sp-combo-kit-gallery .sp-gallery-slide {\n\n    display: none;\n    width: 100%;\n    height: 100%;\n    position: relative;\n    overflow: visible;\n    flex-direction: column;\n    align-items: center;\n    justify-content: flex-start;\n\n}\n\n\n#sp-combo-kit-gallery .sp-gallery-slide.active {\n\n    display: flex;\n\n}\n\n\n\/* =========================================================\n   FEATURE IMAGE\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-main-product {\n\n    position: relative;\n    width: 100%;\n    height: 400px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n}\n\n\n#sp-combo-kit-gallery .sp-main-image-clip {\n\n    position: absolute;\n    inset: 0;\n    overflow: hidden;\n    pointer-events: none;\n    z-index: 1;\n\n}\n\n\n#sp-combo-kit-gallery .sp-main-image-clip > img {\n\n    width: 100%;\n    height: 100%;\n    max-width: none;\n    object-fit: contain;\n    display: block;\n\n    transform:\n        translate(\n            var(--image-x-desktop),\n            var(--image-y-desktop)\n        )\n        scale(\n            var(--image-scale-desktop)\n        );\n\n    transform-origin: center center;\n    transition: transform .18s ease;\n\n}\n\n\n\/* =========================================================\n   VARIANT IMAGE\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-variant-layout {\n\n    width: 100%;\n    height: 100%;\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(180px, .65fr);\n    align-items: center;\n    gap: 12px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-variant-image-wrap {\n\n    width: 100%;\n    height: 400px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    position: relative;\n    min-width: 0;\n\n}\n\n\n#sp-combo-kit-gallery .sp-variant-image-wrap img {\n\n    width: 100%;\n    height: 100%;\n    object-fit: contain;\n    display: block;\n\n    transform:\n        translate(\n            var(--image-x-desktop),\n            var(--image-y-desktop)\n        )\n        scale(\n            var(--image-scale-desktop)\n        );\n\n    transform-origin: center center;\n    transition: opacity .16s ease, transform .18s ease;\n\n}\n\n\n\/* =========================================================\n   PRODUCT INFORMATION\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-slide-info {\n\n    width: 100%;\n    max-width: 400px;\n    margin-top: -2px;\n    padding: 0 12px;\n    text-align: center;\n    transition: none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-side-info {\n\n    max-width: none;\n    margin: 0;\n    padding: 2px 2px 2px 2px;\n    text-align: left;\n\n}\n\n\n#sp-combo-kit-gallery .sp-side-info .sp-slide-title {\n\n    font-size: 30px;\n    font-family: \"Bebas Neue\", sans-serif;\n    font-weight: 600;\n    letter-spacing: 1.5px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-label {\n\n    margin-top: 17px;\n    color: #777;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: .5px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-toggle {\n\n    display: flex;\n    width: 100%;\n    max-width: 300px;\n    margin-top: 6px;\n    border: 1px solid #d8d8d8;\n    border-radius: 6px;\n    overflow: hidden;\n    background: #fff;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-btn {\n\n    flex: 1 1 50%;\n    min-height: 30px;\n    padding: 7px 10px;\n    border: 0;\n    border-right: 0px solid #d8d8d8;\n    background: #fff;\n    color: #333;\n    font-family: \"Montserrat\", sans-serif;\n    font-size: 12px;\n    font-weight: 700;\n    cursor: pointer;\n    appearance: none;\n    -webkit-appearance: none;\n    transition: background .18s ease, color .18s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-btn:last-child {\n    border-right: 0;\n}\n\n\n#sp-combo-kit-gallery .sp-amp-btn.active {\n\n    background: var(--sp-orange);\n    color: #fff;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-btn:disabled {\n\n    background: #f2f2f2;\n    color: #aaa;\n    cursor: not-allowed;\n\n}\n\n\n#sp-combo-kit-gallery .sp-current-amp {\n\n    margin-top: 8px;\n    color: #555;\n    font-size: 12px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-side-info .sp-part-number {\n\n    margin-top: 10px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-mobile-variant-title {\n\n    display: none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-slide-kicker {\n\n    color: var(--sp-orange);\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: .9px;\n    text-transform: uppercase;\n    line-height: 1.2;\n\n}\n\n\n#sp-combo-kit-gallery .sp-slide-title {\n\n    margin-top: 3px;\n    color: var(--sp-dark);\n    font-family: \"Bebas Neue\", sans-serif;\n    font-size: 31px;\n    line-height: 1;\n    letter-spacing: 0px;\n    font-weight: 500;\n\n}\n\n\n#sp-combo-kit-gallery .sp-slide-subtitle {\n\n    margin-top: 5px;\n    color: #666;\n    font-size: 12px;\n    line-height: 1.4;\n\n}\n\n\n#sp-combo-kit-gallery .sp-part-number {\n\n    color: #555;\n    font-size: 10px;\n    font-weight: 600;\n    letter-spacing: .5px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-part-number strong {\n\n    color: var(--sp-dark);\n\n}\n\n\n\/* =========================================================\n   HOTSPOTS\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-main-product .sp-hotspot {\n\n        position: absolute;\n\n        top:\n            var(\n                --sp-hotspot-top-px,\n                var(--top)\n            );\n\n        left:\n            var(\n                --sp-hotspot-left-px,\n                var(--left)\n            );\n\n        transform:\n            translate(-50%, -50%)\n            scale(var(--hotspot-scale-desktop));\n\n        transform-origin: center center;\n        transition: top .18s ease, left .18s ease, transform .18s ease;\n\n        z-index: 1;\n        outline: none;\n\n    }\n\n\n#sp-combo-kit-gallery .sp-dot {\n\n    width: var(--dot-size);\n    height: var(--dot-size);\n\n    border-radius: 50%;\n\n    background:\n        var(--dot-color);\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    box-shadow:\n        none !important;\n\n}\n\n\n#sp-combo-kit-gallery .sp-number {\n\n    color:\n        var(--number-color);\n\n    font-size:\n        var(--number-size);\n\n    font-weight: 700;\n\n    line-height: 1;\n\n    transform:\n        translate(\n            var(--number-x, 0px),\n            var(--number-y, 0px)\n        );\n\n}\n\n\n#sp-combo-kit-gallery .sp-tooltip {\n\n    position: absolute;\n\n    bottom:\n        calc(\n            100% +\n            5px -\n            var(--tooltip-y-desktop)\n        );\n\n    left:\n        calc(\n            50% +\n            var(--tooltip-x-desktop)\n        );\n\n    transform:\n        translateX(-50%)\n        scale(var(--tooltip-scale-desktop));\n\n    width:\n        var(--tooltip-width);\n\n    background:\n        var(--tooltip-bg);\n\n    color: #ffffff;\n\n    padding:\n        10px 10px;\n\n    border-radius:\n        8px;\n\n    font-size:\n        10px;\n\n    line-height:\n        1.45;\n\n    text-align:\n        left;\n\n    opacity:\n        0;\n\n    visibility:\n        hidden;\n\n    transition:\n        opacity .18s ease,\n        visibility .18s ease;\n\n    pointer-events:\n        none;\n\n    z-index:\n        9999;\n\n    box-shadow:\n        none !important;\n\n    text-shadow:\n        none !important;\n\n}\n\n\n\/* =========================================================\n   LAPTOP \/ TABLET RESPONSIVE IMAGE + HOTSPOT CONTROLS\n   Uses the same responsive architecture as the working\n   Angled RV gallery so hotspots follow the image.\n   ========================================================= *\/\n\n@media (min-width: 1025px) and (max-width: 1366px) {\n\n    #sp-combo-kit-gallery .sp-main-image-clip > img {\n\n        transform:\n            translate(\n                var(--image-x-laptop),\n                var(--image-y-laptop)\n            )\n            scale(\n                var(--image-scale-laptop)\n            );\n\n    }\n\n    #sp-combo-kit-gallery .sp-hotspot {\n\n        \/* JavaScript-calculated pixel position remains authoritative. *\/\n\n        top:\n            var(\n                --sp-hotspot-top-px,\n                var(--top)\n            );\n\n        left:\n            var(\n                --sp-hotspot-left-px,\n                var(--left)\n            );\n\n        transform:\n            translate(-50%, -50%)\n            scale(var(--hotspot-scale-laptop, var(--hotspot-scale-desktop)));\n\n    }\n\n}\n\n\n@media (min-width: 601px) and (max-width: 1024px) {\n\n    #sp-combo-kit-gallery .sp-main-image-clip > img {\n\n        transform:\n            translate(\n                var(--image-x-tablet),\n                var(--image-y-tablet)\n            )\n            scale(\n                var(--image-scale-tablet)\n            );\n\n    }\n\n    #sp-combo-kit-gallery .sp-hotspot {\n\n        \/* JavaScript-calculated pixel position remains authoritative. *\/\n\n        top:\n            var(\n                --sp-hotspot-top-px,\n                var(--top)\n            );\n\n        left:\n            var(\n                --sp-hotspot-left-px,\n                var(--left)\n            );\n\n        transform:\n            translate(-50%, -50%)\n            scale(var(--hotspot-scale-tablet, var(--hotspot-scale-desktop)));\n\n    }\n\n}\n\n\n\/* =========================================================\n   LAPTOP \/ TABLET TOOLTIP CONTROLS\n   ========================================================= *\/\n\n@media (min-width: 1025px) and (max-width: 1366px) {\n\n    #sp-combo-kit-gallery .sp-hotspot .sp-tooltip {\n\n        bottom:\n            calc(\n                100% +\n                5px -\n                var(--tooltip-y-laptop)\n            );\n\n        left:\n            calc(\n                50% +\n                var(--tooltip-x-laptop)\n            );\n\n        transform:\n            translateX(-50%)\n            scale(var(--tooltip-scale-laptop));\n\n    }\n\n}\n\n\n@media (min-width: 601px) and (max-width: 1024px) {\n\n    #sp-combo-kit-gallery .sp-hotspot .sp-tooltip {\n\n        bottom:\n            calc(\n                100% +\n                5px -\n                var(--tooltip-y-tablet)\n            );\n\n        left:\n            calc(\n                50% +\n                var(--tooltip-x-tablet)\n            );\n\n        transform:\n            translateX(-50%)\n            scale(var(--tooltip-scale-tablet));\n\n    }\n\n}\n\n\n#sp-combo-kit-gallery .sp-hotspot:hover .sp-tooltip,\n#sp-combo-kit-gallery .sp-hotspot:focus-visible .sp-tooltip,\n#sp-combo-kit-gallery .sp-hotspot.is-open .sp-tooltip {\n\n    opacity: 1;\n    visibility: visible;\n\n}\n\n\n\/* =========================================================\n   AMAZON-STYLE PRODUCT SELECTOR\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-product-selector {\n\n    width: 100%;\n    display: flex;\n    align-items: stretch;\n    gap: 6px;\n    margin-top: 4px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumbnails {\n\n    flex: 1 1 auto;\n    min-width: 0;\n\n    display: flex;\n    align-items: stretch;\n    justify-content: center;\n\n    gap: 7px;\n\n    overflow-x: auto;\n    overflow-y: hidden;\n\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n\n    padding: 2px 0;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumbnails::-webkit-scrollbar {\n\n    display: none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb {\n\n    flex: 0 0 72px;\n    width: 72px;\n    min-height: 94px;\n\n    padding:\n        5px 5px 6px;\n\n    border:\n        1px solid var(--sp-border);\n\n    border-radius:\n        7px;\n\n    background:\n        #fff;\n\n    cursor:\n        pointer;\n\n    display:\n        flex;\n\n    flex-direction:\n        column;\n\n    align-items:\n        center;\n\n    justify-content:\n        flex-start;\n\n    gap:\n        3px;\n\n    appearance:\n        none;\n\n    -webkit-appearance:\n        none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease,\n        transform .15s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb:hover {\n\n    border-color:\n        var(--sp-orange);\n\n    transform:\n        translateY(-1px);\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb.active {\n\n    border:\n        2px solid var(--sp-orange);\n\n    box-shadow:\n        0 2px 8px rgba(223,107,48,.13);\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb:focus {\n\n    outline:\n        none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb:focus-visible {\n\n    border-color:\n        var(--sp-orange);\n\n    box-shadow:\n        0 0 0 2px rgba(223,107,48,.18);\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb-image {\n\n    width:\n        100%;\n\n    height:\n        57px;\n\n    display:\n        flex;\n\n    align-items:\n        center;\n\n    justify-content:\n        center;\n\n    overflow:\n        hidden;\n\n    border-radius:\n        4px;\n\n    background:\n        #fff;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb img {\n\n    width:\n        100%;\n\n    height:\n        100%;\n\n    object-fit:\n        contain;\n\n    display:\n        block;\n\n    pointer-events:\n        none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb-label {\n\n    display:\n        block;\n\n    width:\n        100%;\n\n    color:\n        var(--sp-dark);\n\n    font-size:\n        9px;\n\n    font-weight:\n        700;\n\n    line-height:\n        1.15;\n\n    white-space:\n        nowrap;\n\n    overflow:\n        hidden;\n\n    text-overflow:\n        ellipsis;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb-part {\n\n    display:\n        block;\n\n    color:\n        #777;\n\n    font-size:\n        8px;\n\n    font-weight:\n        600;\n\n    line-height:\n        1;\n\n}\n\n\n#sp-combo-kit-gallery .sp-thumb-view {\n\n    display:\n        block;\n\n    color:\n        #777;\n\n    font-size:\n        8px;\n\n    font-weight:\n        600;\n\n    line-height:\n        1;\n\n}\n\n\n#sp-combo-kit-gallery .sp-feature-thumb .sp-thumb-part {\n\n    visibility:\n        hidden;\n\n}\n\n\n\/* =========================================================\n   THUMBNAIL ARROWS\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-thumb-nav {\n\n    display:\n        none;\n\n    width:\n        26px;\n\n    min-width:\n        26px;\n\n    height:\n        26px;\n\n    align-self:\n        center;\n\n    padding:\n        0;\n\n    border:\n        0;\n\n    border-radius:\n        50%;\n\n    background:\n        #fff;\n\n    color:\n        #222;\n\n    font-family:\n        Arial, sans-serif;\n\n    font-size:\n        16px;\n\n    line-height:\n        26px;\n\n    text-align:\n        center;\n\n    cursor:\n        pointer;\n\n    appearance:\n        none;\n\n    -webkit-appearance:\n        none;\n\n}\n\n\n\/* =========================================================\n   PAGINATION\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-gallery-pagination {\n\n    display:\n        flex;\n\n    justify-content:\n        center;\n\n    align-items:\n        center;\n\n    gap:\n        6px;\n\n    margin-top:\n        7px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-page-dot {\n\n    width:\n        6px;\n\n    height:\n        6px;\n\n    padding:\n        0;\n\n    border:\n        0;\n\n    border-radius:\n        50%;\n\n    background:\n        #c7c7c7;\n\n    cursor:\n        pointer;\n\n    appearance:\n        none;\n\n    -webkit-appearance:\n        none;\n\n    transition:\n        background .2s ease,\n        transform .2s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-page-dot:hover,\n#sp-combo-kit-gallery .sp-page-dot.active {\n\n    background:\n        var(--sp-orange);\n\n}\n\n\n#sp-combo-kit-gallery .sp-page-dot.active {\n\n    transform:\n        scale(1.25);\n\n}\n\n\n\/* =========================================================\n   FULL SCREEN VIEW + HOVER ZOOM\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-fullscreen-trigger {\n\n    position:\n        static;\n\n    display:\n        inline-flex;\n\n    align-items:\n        center;\n\n    justify-content:\n        center;\n\n    margin-top:\n        7px;\n\n    transform:\n        none;\n\n    z-index:\n        10;\n\n    border:\n        1px solid #d7d7d7;\n\n    border-radius:\n        4px;\n\n    background:\n        #fff;\n\n    color:\n        #333;\n\n    padding:\n        6px 11px;\n\n    font-family:\n        \"Montserrat\", sans-serif;\n\n    font-size:\n        9px;\n\n    font-weight:\n        700;\n\n    letter-spacing:\n        .2px;\n\n    line-height:\n        1;\n\n    cursor:\n        pointer;\n\n    white-space:\n        nowrap;\n\n    appearance:\n        none;\n\n    -webkit-appearance:\n        none;\n\n    box-shadow:\n        0 1px 4px rgba(0,0,0,.08);\n\n    transition:\n        border-color .18s ease,\n        color .18s ease,\n        background .18s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-mobile-variant-title .sp-fullscreen-trigger {\n\n    display:\n        none;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-trigger:hover {\n\n    border-color:\n        var(--sp-orange);\n\n    color:\n        var(--sp-orange);\n\n}\n\n\n#sp-combo-kit-gallery .sp-zoom-preview {\n\n    position:\n        absolute;\n\n    top:\n        0;\n\n    left:\n        calc(90% + 12px);\n\n    width:\n        78%;\n\n    height:\n        100%;\n\n    background:\n        #fff;\n\n    border:\n        1px solid #e3e3e3;\n\n    border-radius:\n        8px;\n\n    box-shadow:\n        0 6px 20px rgba(0,0,0,.18);\n\n    overflow:\n        hidden;\n\n    opacity:\n        0;\n\n    visibility:\n        hidden;\n\n    pointer-events:\n        none;\n\n    z-index:\n        1;\n\n    transition:\n        opacity .12s ease,\n        visibility .12s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-zoom-preview img {\n\n    position:\n        absolute;\n\n    width:\n        200%;\n\n    height:\n        200%;\n\n    max-width:\n        none;\n\n    object-fit:\n        contain;\n\n    display:\n        block;\n\n    pointer-events:\n        none;\n\n    transform-origin:\n        top left;\n\n}\n\n\n#sp-combo-kit-gallery .sp-variant-image-wrap.sp-zoom-active .sp-zoom-preview {\n\n    opacity:\n        1;\n\n    visibility:\n        visible;\n\n}\n\n\n\/* =========================================================\n   FULL-SCREEN PRODUCT POPUP\n   ========================================================= *\/\n\n#sp-combo-kit-gallery .sp-fullscreen-modal {\n\n    position:\n        fixed;\n\n    inset:\n        0;\n\n    z-index:\n        999999;\n\n    display:\n        none;\n\n    align-items:\n        center;\n\n    justify-content:\n        center;\n\n    padding:\n        20px;\n\n    background:\n        rgba(0,0,0,.38);\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-modal.is-open {\n\n    display:\n        flex;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-dialog {\n\n    position:\n        relative;\n\n    width:\n        var(--sp-popup-width-desktop, 1100px);\n\n    height:\n        var(--sp-popup-height-desktop, 520px);\n\n    max-width:\n        calc(100vw - 30px);\n\n    max-height:\n        calc(100vh - 40px);\n\n    display:\n        grid;\n\n    grid-template-columns:\n        minmax(0, 1.55fr) minmax(260px, .75fr);\n\n    gap:\n        28px;\n\n    padding:\n        24px 28px;\n\n    background:\n        #fff;\n\n    border-radius:\n        7px;\n\n    box-shadow:\n        0 8px 35px rgba(0,0,0,.25);\n\n    overflow:\n        hidden;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-close {\n\n    position:\n        absolute;\n\n    top:\n        8px;\n\n    right:\n        10px;\n\n    width:\n        28px;\n\n    height:\n        28px;\n\n    padding:\n        0;\n\n    border:\n        0;\n\n    background:\n        transparent;\n\n    color:\n        #222;\n\n    font-family:\n        Arial, sans-serif;\n\n    font-size:\n        24px;\n\n    line-height:\n        28px;\n\n    cursor:\n        pointer;\n\n    z-index:\n        5;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-image-area {\n\n    min-width:\n        0;\n\n    min-height:\n        0;\n\n    display:\n        flex;\n\n    align-items:\n        center;\n\n    justify-content:\n        center;\n\n    overflow:\n        hidden;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-image {\n\n    width:\n        var(--sp-popup-image-width-desktop, 100%);\n\n    height:\n        var(--sp-popup-image-height-desktop, 100%);\n\n    max-width:\n        none;\n\n    max-height:\n        none;\n\n    object-fit:\n        contain;\n\n    display:\n        block;\n\n    transform:\n        translate(\n            var(--sp-popup-image-x-desktop, 0px),\n            var(--sp-popup-image-y-desktop, 0px)\n        );\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-info {\n\n    min-width:\n        0;\n\n    padding:\n        8px 8px 8px 0;\n\n    display:\n        flex;\n\n    flex-direction:\n        column;\n\n    align-items:\n        flex-start;\n\n    overflow-y:\n        auto;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-kicker {\n\n    color:\n        var(--sp-orange);\n\n    font-size:\n        11px;\n\n    font-weight:\n        700;\n\n    letter-spacing:\n        .7px;\n\n    text-transform:\n        uppercase;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-title {\n\n    margin-top:\n        5px;\n\n    color:\n        var(--sp-dark);\n\n    font-family:\n        \"Bebas Neue\", sans-serif;\n\n    font-size:\n        31px;\n\n    line-height:\n        1;\n\n    letter-spacing:\n        1.5px;\n\n    font-weight:\n        700;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-description {\n\n    margin-top:\n        8px;\n\n    color:\n        #666;\n\n    font-size:\n        12px;\n\n    line-height:\n        1.45;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-part-number {\n\n    margin-top:\n        8px;\n\n    color:\n        #555;\n\n    font-size:\n        11px;\n\n    font-weight:\n        600;\n\n    letter-spacing:\n        .5px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-part-number strong {\n\n    color:\n        var(--sp-dark);\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-wrap {\n\n    display:\n        none;\n\n    margin-top:\n        14px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-wrap.is-visible {\n\n    display:\n        block;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-label {\n\n    margin-bottom:\n        5px;\n\n    color:\n        #777;\n\n    font-size:\n        10px;\n\n    font-weight:\n        700;\n\n    letter-spacing:\n        .5px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-toggle {\n\n    display:\n        flex;\n\n    width:\n        300px;\n\n    max-width:\n        100%;\n\n    border:\n        1px solid #d8d8d8;\n\n    border-radius:\n        6px;\n\n    overflow:\n        hidden;\n\n    background:\n        #fff;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-btn {\n\n    flex:\n        1 1 50%;\n\n    min-height:\n        32px;\n\n    padding:\n        7px 10px;\n\n    border:\n        0;\n\n    background:\n        #fff;\n\n    color:\n        #333;\n\n    font-family:\n        \"Montserrat\", sans-serif;\n\n    font-size:\n        11px;\n\n    font-weight:\n        700;\n\n    cursor:\n        pointer;\n\n    appearance:\n        none;\n\n    -webkit-appearance:\n        none;\n\n    transition:\n        background .18s ease,\n        color .18s ease;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-btn.active {\n\n    background:\n        var(--sp-orange);\n\n    color:\n        #fff;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-amp-btn:disabled {\n\n    background:\n        #f2f2f2;\n\n    color:\n        #aaa;\n\n    cursor:\n        not-allowed;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-thumbnails {\n\n    width:\n        100%;\n\n    margin-top:\n        18px;\n\n    display:\n        grid;\n\n    grid-template-columns:\n        repeat(3, minmax(0, 1fr));\n\n    gap:\n        8px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-thumb {\n\n    width:\n        100%;\n\n    height:\n        72px;\n\n    padding:\n        4px;\n\n    border:\n        1px solid var(--sp-border);\n\n    border-radius:\n        4px;\n\n    background:\n        #fff;\n\n    cursor:\n        pointer;\n\n    overflow:\n        hidden;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-thumb.active {\n\n    border:\n        2px solid var(--sp-orange);\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-thumb img {\n\n    width:\n        100%;\n\n    height:\n        100%;\n\n    object-fit:\n        contain;\n\n    display:\n        block;\n\n}\n\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width: 767px) {\n\n    #sp-combo-kit-gallery .sp-fullscreen-trigger {\n\n        position:\n            static;\n\n        display:\n            inline-flex;\n\n        margin-top:\n            6px;\n\n        transform:\n            none;\n\n        font-size:\n            8px;\n\n        padding:\n            6px 10px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-zoom-preview {\n\n        display:\n            none;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-modal {\n\n        padding:\n            8px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-dialog {\n\n        width:\n            var(--sp-popup-width-mobile, calc(100vw - 16px));\n\n        height:\n            var(--sp-popup-height-mobile, 90vh);\n\n        max-width:\n            calc(100vw - 16px);\n\n        max-height:\n            calc(100vh - 16px);\n\n        min-height:\n            0;\n\n        grid-template-columns:\n            1fr;\n\n        gap:\n            8px;\n\n        padding:\n            18px 12px 12px;\n\n        border-radius:\n            8px;\n\n        box-shadow:\n            0 8px 30px rgba(0,0,0,.22);\n\n        overflow-y:\n            auto;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-image-area {\n\n        height:\n            var(--sp-popup-image-area-height-mobile, 54vh);\n\n        min-height:\n            260px;\n\n        overflow:\n            hidden;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-image {\n\n        width:\n            var(--sp-popup-image-width-mobile, 100%);\n\n        height:\n            var(--sp-popup-image-height-mobile, 100%);\n\n        transform:\n            translate(\n                var(--sp-popup-image-x-mobile, 0px),\n                var(--sp-popup-image-y-mobile, 0px)\n            );\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-info {\n\n        padding:\n            0 4px 4px;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-title {\n\n        font-size:\n            25px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-description {\n\n        font-size:\n            10px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-part-number {\n\n        font-size:\n            9px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-wrap {\n\n        margin-top:\n            8px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-label {\n\n        font-size:\n            9px;\n\n        margin-bottom:\n            4px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-toggle {\n\n        width:\n            250px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-btn {\n\n        min-height:\n            30px;\n\n        padding:\n            6px 8px;\n\n        font-size:\n            10px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-thumbnails {\n\n        margin-top:\n            10px;\n\n        grid-template-columns:\n            repeat(3, minmax(0, 1fr));\n\n        gap:\n            5px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-thumb {\n\n        height:\n            58px;\n\n    }\n\n\n    \/* =====================================================\n       MOBILE PRODUCT GALLERY\n       Compact Amazon-style vertical product layout\n       ===================================================== *\/\n\n    #sp-combo-kit-gallery {\n\n        width:\n            100%;\n\n        max-width:\n            100%;\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        margin:\n            0 auto;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-main-view {\n\n        width:\n            100%;\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-gallery-slide {\n\n        width:\n            100%;\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        display:\n            none;\n\n        position:\n            relative;\n\n        overflow:\n            visible;\n\n        flex-direction:\n            column;\n\n        align-items:\n            center;\n\n        justify-content:\n            flex-start;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-gallery-slide.active {\n\n        display:\n            flex;\n\n    }\n\n\n    \/* FEATURE IMAGE\n       The main\/features image uses the same responsive viewing frame. *\/\n\n    #sp-combo-kit-gallery .sp-main-product {\n\n        width:\n            100%;\n\n        height:\n            auto;\n\n        aspect-ratio:\n            2.95 \/ 3;\n\n        min-height:\n            0;\n\n        flex:\n            0 0 auto;\n\n        display:\n            flex;\n\n        align-items:\n            center;\n\n        justify-content:\n            center;\n\n        order:\n            1;\n\n        position:\n            relative;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-main-image-clip {\n\n        inset:\n            0;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-main-image-clip > img {\n\n        width:\n            100%;\n\n        height:\n            100%;\n\n        object-fit:\n            contain;\n\n        transform:\n            translate(\n                var(--image-x-mobile),\n                var(--image-y-mobile)\n            )\n            scale(\n                var(--image-scale-mobile)\n            );\n\n    }\n\n\n    \/* VARIANT LAYOUT *\/\n\n    #sp-combo-kit-gallery .sp-variant-layout {\n\n        width:\n            100%;\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        display:\n            flex;\n\n        flex-direction:\n            column;\n\n        align-items:\n            center;\n\n        justify-content:\n            flex-start;\n\n        gap:\n            0;\n\n    }\n\n\n    \/* TITLE AT THE TOP *\/\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title {\n\n        display:\n            block;\n\n        width:\n            100%;\n\n        min-height:\n            46px;\n\n        padding:\n            0 8px;\n\n        text-align:\n            center;\n\n        order:\n            1;\n\n        margin:\n            0;\n\n        position:\n            relative;\n\n        z-index:\n            2;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-slide-kicker {\n\n        margin:\n            0;\n\n        font-size:\n            8px;\n\n        line-height:\n            1.1;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-slide-title {\n\n        margin:\n            2px 0 0;\n\n        font-size:\n            23px;\n\n        line-height:\n            .95;\n\n        letter-spacing:\n            .8px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-slide-subtitle {\n\n        margin:\n            3px 0 0;\n\n        font-size:\n            10px;\n\n        line-height:\n            1.2;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-fullscreen-trigger {\n\n        display:\n            inline-flex;\n\n        margin-left:\n            auto;\n\n        margin-right:\n            auto;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-fullscreen-trigger {\n\n        display:\n            none;\n\n    }\n\n\n    \/* PRODUCT IMAGE\n       Every variation uses the responsive viewing frame. *\/\n\n    #sp-combo-kit-gallery .sp-variant-image-wrap {\n\n        width:\n            100%;\n\n        height:\n            auto;\n\n        aspect-ratio:\n            5 \/ 3;\n\n        min-height:\n            0;\n\n        flex:\n            0 0 auto;\n\n        display:\n            flex;\n\n        align-items:\n            center;\n\n        justify-content:\n            center;\n\n        order:\n            2;\n\n        position:\n            relative;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-variant-image-wrap img {\n\n        width:\n            100%;\n\n        height:\n            100%;\n\n        object-fit:\n            contain;\n\n        display:\n            block;\n\n        transform:\n            translate(\n                var(--image-x-mobile),\n                var(--image-y-mobile)\n            )\n            scale(\n                var(--image-scale-mobile)\n            );\n\n        transform-origin:\n            center center;\n\n        transition:\n            opacity .16s ease,\n            transform .18s ease;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-slide-info .sp-fullscreen-trigger {\n\n        margin-left:\n            auto;\n\n        margin-right:\n            auto;\n\n    }\n\n\n    \/* PRODUCT INFORMATION \/ CONTROLS *\/\n\n    #sp-combo-kit-gallery .sp-side-info {\n\n        width:\n            100%;\n\n        max-width:\n            100%;\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        padding:\n            0;\n\n        margin:\n            0;\n\n        text-align:\n            center;\n\n        display:\n            flex;\n\n        flex-direction:\n            column;\n\n        align-items:\n            center;\n\n        justify-content:\n            flex-start;\n\n        gap:\n            0;\n\n        order:\n            3;\n\n    }\n\n\n    \/* HIDE DUPLICATE DESKTOP TITLE *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-kicker,\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-title,\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-subtitle {\n\n        display:\n            none;\n\n    }\n\n\n    \/* VIEW SELECTOR LABEL *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-label {\n\n        display:\n            block;\n\n        width:\n            100%;\n\n        margin:\n            0 0 4px;\n\n        color:\n            #777;\n\n        font-size:\n            10px;\n\n        line-height:\n            1.1;\n\n        font-weight:\n            700;\n\n        letter-spacing:\n            .5px;\n\n        text-align:\n            center;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle {\n\n        display:\n            flex;\n\n        width:\n            180px;\n\n        max-height:\n            none;\n\n        gap:\n            2px;\n\n        border:\n            none;\n\n        background:\n            transparent;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn {\n\n        width:\n            100%;\n\n        height:\n            35px;\n\n        min-height:\n            35px;\n\n        padding:\n            5px 10px;\n\n        font-size:\n            11px;\n\n    }\n\n\n    \/* KEEP THE EXISTING VIEW SWITCHING FULLY FUNCTIONAL *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-current-amp {\n\n        display:\n            block;\n\n        width:\n            100%;\n\n        margin:\n            5px 0 0;\n\n        color:\n            #666;\n\n        font-size:\n            11px;\n\n        line-height:\n            1.15;\n\n        text-align:\n            center;\n\n    }\n\n\n    \/* PART NUMBER *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-part-number {\n\n        display:\n            inline-block;\n\n        margin:\n            5px auto 0;\n\n        padding:\n            0;\n\n        color:\n            #555;\n\n        font-size:\n            8px;\n\n        letter-spacing:\n            .4px;\n\n        text-align:\n            center;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-part-number strong {\n\n        color:\n            var(--sp-dark);\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-variant-image.is-empty {\n\n        visibility:\n            hidden;\n\n    }\n\n\n    \/* HOTSPOTS *\/\n\n    #sp-combo-kit-gallery .sp-hotspot {\n\n        \/* Keep the JavaScript-calculated position authoritative on mobile. *\/\n\n        top:\n            var(\n                --sp-hotspot-top-px,\n                var(--top)\n            );\n\n        left:\n            var(\n                --sp-hotspot-left-px,\n                var(--left)\n            );\n\n        transform:\n            translate(-50%, -50%)\n            scale(var(--hotspot-scale-mobile));\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-tooltip {\n\n        bottom:\n            calc(\n                100% +\n                7px -\n                var(--tooltip-y-mobile)\n            ) !important;\n\n        left:\n            calc(\n                50% +\n                var(--tooltip-x-mobile)\n            ) !important;\n\n        transform:\n            translateX(-50%)\n            scale(var(--tooltip-scale-mobile)) !important;\n\n        width:\n            min(\n                190px,\n                calc(100vw - 22px)\n            );\n\n        padding:\n            8px;\n\n        font-size:\n            9px;\n\n    }\n\n\n    \/* MOBILE THUMBNAIL STRIP *\/\n\n    #sp-combo-kit-gallery .sp-product-selector {\n\n        width:\n            100%;\n\n        display:\n            flex;\n\n        align-items:\n            center;\n            \n        justify-content: center;\n\n        gap:\n            3px;\n\n        margin-top:\n            7px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb-nav {\n\n        display:\n            flex;\n\n        align-items:\n            center;\n\n        justify-content:\n            center;\n\n        flex:\n            0 0 26px;\n\n        width:\n            26px;\n\n        min-width:\n            26px;\n\n        height:\n            26px;\n\n        min-height:\n            26px;\n\n        padding:\n            0;\n\n        border:\n            0;\n\n        border-radius:\n            50%;\n\n        background:\n            #fff;\n\n        color:\n            #222;\n\n        font-size:\n            16px;\n\n        line-height:\n            26px;\n\n        cursor:\n            pointer;\n\n        z-index:\n            3;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumbnails {\n\n        flex:\n            1 1 auto;\n\n        width:\n            auto;\n\n        max-width:\n            calc(100% - 58px);\n\n        min-width:\n            0;\n\n        display:\n            flex;\n\n        align-items:\n            center;\n\n        justify-content:\n            center;\n\n        gap:\n            4px;\n\n        overflow-x:\n            auto;\n\n        overflow-y:\n            hidden;\n\n        scroll-behavior:\n            smooth;\n\n        scrollbar-width:\n            none;\n\n        padding:\n            1px 0;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumbnails::-webkit-scrollbar {\n\n        display:\n            none;\n            \n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb {\n\n        flex:\n            0 0 62px;\n\n        width:\n            62px;\n\n        min-width:\n            62px;\n            \n\n        min-height:\n            75px;\n\n        height:\n            75px;\n\n        padding:\n            3px;\n\n        border:\n            1px solid var(--sp-border);\n\n        border-radius:\n            5px;\n\n        gap:\n            2px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb.active {\n\n        border:\n            2px solid var(--sp-orange);\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb-image {\n\n        width:\n            100%;\n\n        height:\n            45px;\n\n        min-height:\n            45px;\n\n        border-radius:\n            3px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb-label {\n\n        font-size:\n            8px;\n\n        line-height:\n            1.05;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb-part {\n\n        font-size:\n            7px;\n\n        line-height:\n            1;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumb-view {\n\n        font-size:\n            7px;\n\n        line-height:\n            1;\n\n    }\n\n\n    \/* PAGINATION *\/\n\n    #sp-combo-kit-gallery .sp-gallery-pagination {\n\n        display:\n            flex;\n\n        justify-content:\n            center;\n\n        align-items:\n            center;\n\n        gap:\n            5px;\n\n        margin-top:\n            4px;\n\n        height:\n            7px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-page-dot {\n\n        width:\n            6px;\n\n        height:\n            6px;\n\n    }\n\n\n    \/* LENGTH TOGGLE *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle {\n\n        width:\n            240px;\n\n        max-width:\n            240px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn {\n\n        min-width:\n            0;\n\n        white-space:\n            nowrap;\n\n    }\n\n\n    \/* LOCKED RESPONSIVE VIEWING FRAME *\/\n\n    #sp-combo-kit-gallery .sp-main-view {\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-gallery-slide {\n\n        height:\n            100%;\n\n        min-height:\n            0;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-main-product,\n    #sp-combo-kit-gallery .sp-variant-image-wrap {\n\n        flex-shrink:\n            0;\n\n    }\n\n\n    \/* LOCKED IMAGE FRAME: IMAGE SWAPS NEVER CHANGE THE RESERVED VIEWING AREA *\/\n\n    #sp-combo-kit-gallery .sp-variant-image-wrap img,\n    #sp-combo-kit-gallery .sp-main-image-clip > img {\n\n        flex-shrink:\n            0;\n\n    }\n\n}\n\n\n\/* ELEMENTOR CONTAINERS MUST NOT CLIP HOTSPOT TOOLTIPS *\/\n\n.sp-gallery-overflow,\n.sp-gallery-overflow > .e-con,\n.sp-gallery-overflow > .elementor-widget-container {\n\n    overflow:\n        visible !important;\n\n}\n\n\n\/* =========================================================\n   CHANGE LOG \u2014 MOBILE RESPONSIVE FIX\n   =========================================================\n   1. Removed the mobile side-info minimum height that created\n      excessive empty space above the thumbnail strip.\n   2. Added a fixed mobile title area so different title lengths\n      do not make the controls appear at different levels.\n   3. Added a compact, fixed mobile controls area so the\n      configuration, current selection, part number, and\n      Full Screen button stay evenly aligned between variations.\n   4. Reduced the spacing between the Full Screen button and\n      the thumbnail strip.\n   5. Kept the mobile image viewing frame fixed so image swaps\n      do not change the gallery layout.\n   ========================================================= *\/\n\n\n\/* DESKTOP \u2014 KEEP THE EXISTING FIXED VIEWING FRAME *\/\n\n#sp-combo-kit-gallery .sp-main-view {\n    height:\n        430px;\n\n    min-height:\n        430px;\n}\n\n\n#sp-combo-kit-gallery .sp-gallery-slide {\n\n    height:\n        100%;\n\n    min-height:\n        430px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-variant-layout {\n\n    height:\n        100%;\n\n    min-height:\n        0;\n\n}\n\n\n#sp-combo-kit-gallery .sp-variant-image-wrap {\n\n    height:\n        400px;\n\n    min-height:\n        400px;\n\n    flex:\n        0 0 400px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-side-info {\n\n    min-height:\n        220px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-amp-toggle {\n\n    min-height:\n        30px;\n\n    height:\n        30px;\n\n}\n\n\n#sp-combo-kit-gallery .sp-fullscreen-trigger {\n\n    display:\n        inline-flex;\n\n    position:\n        static;\n\n    margin-top:\n        7px;\n\n}\n\n\n\/* MOBILE \u2014 FIXED TITLE \/ IMAGE \/ CONTROLS SPACING *\/\n\n@media (max-width:767px) {\n\n    #sp-combo-kit-gallery .sp-main-view {\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-gallery-slide {\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-variant-layout {\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n    }\n\n\n    \/* KEEP EVERY VARIATION ON THE SAME IMAGE VIEWING FRAME *\/\n\n    #sp-combo-kit-gallery .sp-variant-image-wrap {\n\n        height:\n            auto;\n\n        min-height:\n            0;\n\n        flex:\n            0 0 auto;\n\n        aspect-ratio:\n            5 \/ 3;\n\n    }\n\n\n    \/* RESERVE THE SAME TITLE SPACE FOR EVERY VARIATION *\/\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title {\n\n        height:\n            70px;\n\n        min-height:\n            70px;\n\n        max-height:\n            70px;\n\n        overflow:\n            hidden;\n\n        display:\n            block;\n\n    }\n\n\n    \/* KEEP THE PRODUCT CONTROLS ALIGNED AT THE SAME LEVEL *\/\n\n    #sp-combo-kit-gallery .sp-side-info {\n\n        height:\n            148px;\n\n        min-height:\n            148px;\n\n        max-height:\n            148px;\n\n        overflow:\n            visible;\n\n        justify-content:\n            flex-start;\n\n    }\n\n\n    \/* KEEP THE CONFIGURATION LABEL AND BUTTONS COMPACT *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-label {\n\n        margin:\n            0 0 4px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle {\n\n        height:\n            35px;\n\n        min-height:\n            35px;\n\n        flex:\n            0 0 35px;\n\n    }\n\n\n    \/* TIGHTEN THE INFORMATION BELOW THE CONFIGURATION BUTTONS *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-current-amp {\n\n        margin:\n            3px 0 0;\n\n        line-height:\n            1.1;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-part-number {\n\n        margin:\n            3px auto 0;\n\n        line-height:\n            1.05;\n\n    }\n\n\n    \/* KEEP THE FULL SCREEN BUTTON DIRECTLY BELOW THE PART NUMBER *\/\n\n    #sp-combo-kit-gallery .sp-side-info .sp-fullscreen-trigger {\n\n        margin-top:\n            5px;\n\n    }\n\n\n    \/* REDUCE THE GAP BETWEEN PRODUCT DETAILS AND THUMBNAILS *\/\n\n    #sp-combo-kit-gallery .sp-product-selector {\n\n        margin-top:\n            2px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-gallery-pagination {\n\n        margin-top:\n            3px;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-thumbnails {\n\n        justify-content:\n            center;\n\n    }\n\n}\n\n\n\/* =========================================================\n   COMBOKIT \u2014 NORMAL VIEW COLOR OPTION TOGGLE\n   3-column by 2-row layout for variation views only.\n   Full-screen toggle is unchanged.\n   ========================================================= *\/\n\n@media (min-width: 768px) {\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle {\n        width:\n            240px;\n\n        max-width:\n            240px;\n\n        height:\n            73px;\n\n        min-height:\n            73px;\n\n        display:\n            grid;\n\n        grid-template-columns:\n            repeat(3, minmax(0, 1fr));\n\n        grid-template-rows:\n            repeat(2, 35px);\n\n        gap:\n            2px;\n\n        border:\n            none;\n\n        background:\n            transparent;\n    }\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn {\n        width:\n            100%;\n\n        height:\n            35px;\n\n        min-height:\n            35px;\n    }\n}\n\n\n\/* =========================================================\n   COMBOKIT \u2014 MOBILE COLOR OPTION TOGGLE\n   Requested 3-column by 2-row layout.\n   ========================================================= *\/\n\n\n\n@media (max-width: 767px) {\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle {\n\n        width:\n            240px;\n\n        max-width:\n            240px;\n\n        height:\n            73px;\n\n        min-height:\n            73px;\n\n        display:\n            grid;\n\n        grid-template-columns:\n            repeat(3, minmax(0, 1fr));\n\n        grid-template-rows:\n            repeat(2, 35px);\n\n        gap:\n            2px;\n\n        border:\n            none;\n\n        background:\n            transparent;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn {\n\n        width:\n            100%;\n\n        min-width:\n            0;\n\n        height:\n            35px;\n\n        min-height:\n            35px;\n\n        padding:\n            5px 4px;\n\n        font-size:\n            9px;\n\n        white-space:\n            nowrap;\n\n        overflow:\n            hidden;\n\n        text-overflow:\n            ellipsis;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn:nth-child(4) {\n\n        grid-column:\n            1;\n\n        grid-row:\n            2;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-btn:nth-child(5) {\n\n        grid-column:\n            2;\n\n        grid-row:\n            2;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-toggle {\n\n        width:\n            240px;\n\n        max-width:\n            100%;\n\n        height:\n            73px;\n\n        min-height:\n            73px;\n\n        display:\n            grid;\n\n        grid-template-columns:\n            repeat(3, minmax(0, 1fr));\n\n        grid-template-rows:\n            repeat(2, 30px);\n\n        gap:\n            2px;\n\n        border:\n            none;\n\n        background:\n            transparent;\n\n        overflow:\n            visible;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-btn {\n\n        width:\n            100%;\n\n        min-width:\n            0;\n\n        height:\n            30px;\n\n        min-height:\n            30px;\n\n        padding:\n            5px 4px;\n\n        font-size:\n            9px;\n\n        white-space:\n            nowrap;\n\n        overflow:\n            hidden;\n\n        text-overflow:\n            ellipsis;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-btn:nth-child(4) {\n\n        grid-column:\n            1;\n\n        grid-row:\n            2;\n\n    }\n\n\n    #sp-combo-kit-gallery .sp-fullscreen-amp-btn:nth-child(5) {\n\n        grid-column:\n            2;\n\n        grid-row:\n            2;\n\n    }\n\n}\n\n\n\n\/* =========================================================\n   2ND PIGTAIL TOOLTIP \/ BOUNDLESS IMPLEMENTATION\n   FINAL RESPONSIVE FRAME OVERRIDES FOR COMBO KIT\n   ========================================================= *\/\n\n\/* Keep the gallery itself self-contained. The Elementor parent is\n   intentionally not used to calculate the gallery height. *\/\n@media (max-width:767px){\n    #sp-combo-kit-gallery{\n        height:580px !important;\n        min-height:580px !important;\n        max-height:580px !important;\n        position:relative !important;\n        overflow:visible !important;\n    }\n\n    #sp-combo-kit-gallery .sp-main-view{\n        height:510px !important;\n        min-height:510px !important;\n        max-height:510px !important;\n        position:relative !important;\n        overflow:visible !important;\n    }\n\n    #sp-combo-kit-gallery .sp-gallery-slide{\n        height:430px !important;\n        min-height:430px !important;\n        max-height:430px !important;\n        position:relative !important;\n        overflow:visible !important;\n    }\n\n    \/* ---------------------------------------------------------\n       VARIATION LAYOUT\n       Title -> image -> controls, while thumbnails\/pagination\n       are pinned to the bottom of the 430px frame.\n       --------------------------------------------------------- *\/\n    #sp-combo-kit-gallery .sp-variant-layout{\n        height:430px !important;\n        min-height:430px !important;\n        max-height:430px !important;\n        display:flex !important;\n        flex-direction:column !important;\n        align-items:center !important;\n        justify-content:flex-start !important;\n        position:relative !important;\n    }\n\n    \/* Fixed title area *\/\n    #sp-combo-kit-gallery .sp-mobile-variant-title{\n        height:76px !important;\n        min-height:76px !important;\n        max-height:76px !important;\n        flex:0 0 76px !important;\n        overflow:visible !important;\n        padding:0 8px !important;\n        margin:0 !important;\n        order:1 !important;\n        position:relative !important;\n        z-index:12 !important;\n        display:block !important;\n        text-align:center !important;\n    }\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-slide-title{\n        margin-top:2px !important;\n        line-height:.95 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-mobile-variant-title .sp-slide-subtitle{\n        margin-top:3px !important;\n        line-height:1.2 !important;\n    }\n\n    \/* Product image gets its own fixed middle frame. *\/\n    #sp-combo-kit-gallery .sp-variant-image-wrap{\n        width:100% !important;\n        height:210px !important;\n        min-height:210px !important;\n        max-height:210px !important;\n        flex:0 0 210px !important;\n        aspect-ratio:auto !important;\n        display:flex !important;\n        align-items:center !important;\n        justify-content:center !important;\n        position:absolute !important;\n        top:76px !important;\n        left:0 !important;\n        right:0 !important;\n        margin:0 !important;\n        order:2 !important;\n        overflow:visible !important;\n        z-index:1 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-variant-image-wrap img{\n        width:auto !important;\n        height:auto !important;\n        max-width:92% !important;\n        max-height:190px !important;\n        object-fit:contain !important;\n        display:block !important;\n        flex:0 0 auto !important;\n        transform:\n            translate(var(--image-x-mobile), var(--image-y-mobile))\n            scale(var(--image-scale-mobile)) !important;\n        transform-origin:center center !important;\n    }\n\n    \/* Controls stay in a fixed area above the thumbnails. *\/\n    #sp-combo-kit-gallery .sp-side-info{\n        width:100% !important;\n        height:50px !important;\n        min-height:50px !important;\n        max-height:50px !important;\n        flex:0 0 50px !important;\n        position:absolute !important;\n        left:0 !important;\n        right:0 !important;\n        bottom:100px !important;\n        z-index:12 !important;\n        display:flex !important;\n        flex-direction:column !important;\n        align-items:center !important;\n        justify-content:flex-start !important;\n        overflow:visible !important;\n        padding:0 !important;\n        margin:0 !important;\n        text-align:center !important;\n    }\n\n    \/* The desktop title is duplicated by the mobile title. *\/\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-kicker,\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-title,\n    #sp-combo-kit-gallery .sp-side-info .sp-slide-subtitle{\n        display:none !important;\n    }\n\n    #sp-combo-kit-gallery .sp-side-info .sp-current-amp{\n        display:block !important;\n        width:100% !important;\n        margin:50px 0 0 !important;\n        line-height:1.1 !important;\n        text-align:center !important;\n    }\n\n    #sp-combo-kit-gallery .sp-side-info .sp-part-number{\n        display:inline-block !important;\n        margin:3px auto 0 !important;\n        padding:0 !important;\n        line-height:1.05 !important;\n        text-align:center !important;\n    }\n\n    #sp-combo-kit-gallery .sp-side-info .sp-fullscreen-trigger{\n        display:inline-flex !important;\n        position:static !important;\n        margin:5px auto 0 !important;\n        order:initial !important;\n    }\n\n    \/* Keep the normal Combo Kit color selector functional. *\/\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-label{\n        margin:40px 0 0 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-side-info .sp-amp-toggle{\n        height:35px !important;\n        min-height:35px !important;\n        flex:0 0 35px !important;\n    }\n\n    \/* ---------------------------------------------------------\n       FEATURES SLIDE\n       Give the feature image the same fixed middle treatment.\n       --------------------------------------------------------- *\/\n    #sp-combo-kit-gallery .sp-main-product{\n        width:100% !important;\n        height:238px !important;\n        min-height:238px !important;\n        max-height:238px !important;\n        flex:0 0 238px !important;\n        display:flex !important;\n        align-items:center !important;\n        justify-content:center !important;\n        position:relative !important;\n        overflow:visible !important;\n        order:1 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-main-image-clip{\n        inset:0 !important;\n        overflow:visible !important;\n    }\n\n    #sp-combo-kit-gallery .sp-main-image-clip > img{\n        width:100% !important;\n        height:100% !important;\n        max-width:100% !important;\n        max-height:100% !important;\n        object-fit:contain !important;\n        display:block !important;\n        transform:\n            translate(var(--image-x-mobile), var(--image-y-mobile))\n            scale(var(--image-scale-mobile)) !important;\n        transform-origin:center center !important;\n    }\n\n    #sp-combo-kit-gallery .sp-gallery-slide[data-slide=\"0\"] .sp-slide-info{\n        position:absolute !important;\n        top:0 !important;\n        left:0 !important;\n        right:0 !important;\n        z-index:12 !important;\n        margin:0 !important;\n        padding:0 8px !important;\n        max-width:none !important;\n        text-align:center !important;\n        pointer-events:none !important;\n    }\n\n    #sp-combo-kit-gallery .sp-gallery-slide[data-slide=\"0\"] .sp-slide-info .sp-slide-title{\n        margin-top:0 !important;\n    }\n\n    \/* ---------------------------------------------------------\n       THUMBNAILS + PAGINATION \u2014 pinned to the frame bottom\n       --------------------------------------------------------- *\/\n    #sp-combo-kit-gallery .sp-product-selector{\n        position:absolute !important;\n        left:0 !important;\n        right:0 !important;\n        bottom:18px !important;\n        width:100% !important;\n        max-width:100% !important;\n        margin:0 !important;\n        z-index:20 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-thumb-nav{\n        display:flex !important;\n        align-items:center !important;\n        justify-content:center !important;\n        flex:0 0 26px !important;\n        width:26px !important;\n        min-width:26px !important;\n        height:26px !important;\n        min-height:26px !important;\n        z-index:21 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-thumbnails{\n        flex:1 1 auto !important;\n        width:auto !important;\n        max-width:calc(100% - 58px) !important;\n        min-width:0 !important;\n        display:flex !important;\n        align-items:center !important;\n        justify-content:center !important;\n        gap:4px !important;\n        overflow-x:hidden !important;\n        overflow-y:hidden !important;\n        padding:1px 0 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-thumb{\n        flex:0 0 62px !important;\n        width:62px !important;\n        min-width:62px !important;\n        min-height:75px !important;\n        height:75px !important;\n        padding:3px !important;\n    }\n\n    #sp-combo-kit-gallery .sp-thumb-image{\n        width:100% !important;\n        height:45px !important;\n        min-height:45px !important;\n    }\n\n    #sp-combo-kit-gallery .sp-thumb-label{\n        font-size:8px !important;\n        line-height:1.05 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-gallery-pagination{\n        position:absolute !important;\n        left:0 !important;\n        right:0 !important;\n        bottom:4px !important;\n        margin:0 !important;\n        z-index:20 !important;\n        height:7px !important;\n    }\n\n    \/* ---------------------------------------------------------\n       BOUNDLESS HOTSPOTS\n       --------------------------------------------------------- *\/\n    #sp-combo-kit-gallery,\n    #sp-combo-kit-gallery .sp-main-view,\n    #sp-combo-kit-gallery .sp-gallery-slide,\n    #sp-combo-kit-gallery .sp-main-product,\n    #sp-combo-kit-gallery .sp-main-image-clip,\n    #sp-combo-kit-gallery .sp-variant-image-wrap{\n        overflow:visible !important;\n    }\n\n    html, body{\n        overflow-x:hidden !important;\n    }\n\n    #sp-combo-kit-gallery .sp-hotspot:hover,\n    #sp-combo-kit-gallery .sp-hotspot:focus-visible,\n    #sp-combo-kit-gallery .sp-hotspot.is-open{\n        z-index:10000 !important;\n    }\n\n    #sp-combo-kit-gallery .sp-hotspot .sp-tooltip{\n        position:absolute !important;\n        z-index:10001 !important;\n        pointer-events:none !important;\n    }\n}\n\n\/* Elementor wrappers must not clip the boundless tooltip. *\/\n#sp-combo-kit-gallery,\n#sp-combo-kit-gallery .sp-main-view,\n#sp-combo-kit-gallery .sp-gallery-slide,\n#sp-combo-kit-gallery .sp-main-product,\n#sp-combo-kit-gallery .sp-main-image-clip,\n#sp-combo-kit-gallery .sp-variant-image-wrap{\n    overflow:visible !important;\n}\n\n#sp-combo-kit-gallery .sp-hotspot:hover,\n#sp-combo-kit-gallery .sp-hotspot:focus-visible,\n#sp-combo-kit-gallery .sp-hotspot.is-open{\n    z-index:10000 !important;\n}\n\n#sp-combo-kit-gallery .sp-hotspot .sp-tooltip{\n    z-index:10001 !important;\n}\n\n.sp-gallery-overflow,\n.sp-gallery-overflow > .e-con,\n.sp-gallery-overflow > .elementor-widget-container{\n    overflow:visible !important;\n}\n\n\n\/* =========================================================\n   TABLET OVERFLOW \/ OVERLAP FIX\n   The feature image is scaled on tablet, which can make the\n   transformed image box extend beyond the gallery and create\n   horizontal page overflow. Keep the image inside its viewing\n   frame while leaving the hotspot layer\/tooltip layer boundless.\n   ========================================================= *\/\n@media (min-width: 601px) and (max-width: 1024px) {\n\n    #sp-combo-kit-gallery .sp-main-image-clip {\n        overflow: hidden !important;\n        width: 100% !important;\n        height: 100% !important;\n    }\n\n    #sp-combo-kit-gallery .sp-main-image-clip > img {\n        max-width: none !important;\n        max-height: none !important;\n    }\n\n    \/* Keep the hotspot layer outside the image clip so the\n       numbered bubbles and tooltips remain fully functional. *\/\n    #sp-combo-kit-gallery .sp-main-product {\n        overflow: visible !important;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n\n(function () {\n\n    function initSmartPlugComboKitGallery() {\n\n        const gallery =\n            document.getElementById(\n                \"sp-combo-kit-gallery\"\n            );\n\n        if (\n            !gallery ||\n            gallery.dataset.initialized === \"true\"\n        ) {\n            return;\n        }\n\n        gallery.dataset.initialized =\n            \"true\";\n\n\n        const slides =\n            gallery.querySelectorAll(\n                \".sp-gallery-slide\"\n            );\n\n        const thumbs =\n            gallery.querySelectorAll(\n                \".sp-thumb\"\n            );\n\n        const hotspots =\n            gallery.querySelectorAll(\n                \".sp-hotspot\"\n            );\n\n        const pageDots =\n            gallery.querySelectorAll(\n                \".sp-page-dot\"\n            );\n\n        const variantSlides =\n            gallery.querySelectorAll(\n                \".sp-variant-slide\"\n            );\n\n        const thumbnailContainer =\n            gallery.querySelector(\n                \".sp-thumbnails\"\n            );\n\n        const thumbPrev =\n            gallery.querySelector(\n                \".sp-thumb-prev\"\n            );\n\n        const thumbNext =\n            gallery.querySelector(\n                \".sp-thumb-next\"\n            );\n\n\n        if (\n            !slides.length ||\n            !thumbs.length\n        ) {\n            return;\n        }\n\n\n        let currentIndex =\n            0;\n\n\n        \/* =================================================\n           SHOW SLIDE\n           ================================================= *\/\n\n        function showSlide(index) {\n\n            if (index < 0) {\n\n                index =\n                    slides.length - 1;\n\n            }\n\n\n            if (\n                index >=\n                slides.length\n            ) {\n\n                index =\n                    0;\n\n            }\n\n\n            slides.forEach(\n                function (\n                    slide,\n                    i\n                ) {\n\n                    slide.classList.toggle(\n                        \"active\",\n                        i === index\n                    );\n\n                }\n            );\n\n\n            thumbs.forEach(\n                function (thumb) {\n\n                    const target =\n                        parseInt(\n                            thumb.getAttribute(\n                                \"data-target\"\n                            ),\n                            10\n                        );\n\n                    thumb.classList.toggle(\n                        \"active\",\n                        target === index\n                    );\n\n                }\n            );\n\n\n            pageDots.forEach(\n                function (\n                    dot,\n                    i\n                ) {\n\n                    dot.classList.toggle(\n                        \"active\",\n                        i === index\n                    );\n\n                }\n            );\n\n\n            currentIndex =\n                index;\n\n            \/* Re-sync feature hotspots after every slide change.\n               This keeps the bubbles attached to the actual rendered\n               product image when the gallery layout changes. *\/\n            if (typeof scheduleFeatureHotspotSync === \"function\") {\n                scheduleFeatureHotspotSync();\n            }\n\n\n            if (index === 0) {\n\n                updateFeatureText();\n\n            } else {\n\n                const activeVariant =\n                    slides[index];\n\n                if (activeVariant) {\n\n                    updateVariantText(\n                        activeVariant,\n                        activeVariant.dataset.currentView ||\n                        activeVariant.querySelector(\n                            \".sp-amp-btn.active\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        activeVariant.querySelector(\n                            \".sp-amp-btn\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        \"\"\n                    );\n\n                }\n\n            }\n\n\n            const activeThumb =\n                Array.from(\n                    thumbs\n                ).find(\n                    function (thumb) {\n\n                        return (\n                            parseInt(\n                                thumb.getAttribute(\n                                    \"data-target\"\n                                ),\n                                10\n                            ) === index\n                        );\n\n                    }\n                );\n\n\n            if (\n                activeThumb &&\n                thumbnailContainer\n            ) {\n\n                const left =\n                    activeThumb.offsetLeft;\n\n                const right =\n                    left +\n                    activeThumb.offsetWidth;\n\n                const viewLeft =\n                    thumbnailContainer.scrollLeft;\n\n                const viewRight =\n                    viewLeft +\n                    thumbnailContainer.clientWidth;\n\n\n                if (\n                    left < viewLeft ||\n                    right > viewRight\n                ) {\n\n                    thumbnailContainer.scrollTo({\n\n                        left:\n                            left -\n                            (\n                                thumbnailContainer.clientWidth \/\n                                2\n                            ) +\n                            (\n                                activeThumb.offsetWidth \/\n                                2\n                            ),\n\n                        behavior:\n                            \"smooth\"\n\n                    });\n\n                }\n\n            }\n\n\n            hotspots.forEach(\n                function (hotspot) {\n\n                    hotspot.classList.remove(\n                        \"is-open\"\n                    );\n\n                }\n            );\n\n        }\n\n\n        \/* =================================================\n           THUMBNAIL CLICK\n           ================================================= *\/\n\n        thumbs.forEach(\n            function (thumb) {\n\n                thumb.addEventListener(\n                    \"click\",\n                    function (event) {\n\n                        event.preventDefault();\n                        event.stopPropagation();\n\n\n                        const target =\n                            parseInt(\n                                thumb.getAttribute(\n                                    \"data-target\"\n                                ),\n                                10\n                            );\n\n\n                        if (\n                            !isNaN(target)\n                        ) {\n\n                            showSlide(\n                                target\n                            );\n\n                        }\n\n                    }\n                );\n\n            }\n        );\n\n\n        \/* =================================================\n           PAGINATION CLICK\n           ================================================= *\/\n\n        pageDots.forEach(\n            function (dot) {\n\n                dot.addEventListener(\n                    \"click\",\n                    function (event) {\n\n                        event.preventDefault();\n                        event.stopPropagation();\n\n\n                        const target =\n                            parseInt(\n                                dot.getAttribute(\n                                    \"data-page\"\n                                ),\n                                10\n                            );\n\n\n                        if (\n                            !isNaN(target)\n                        ) {\n\n                            showSlide(\n                                target\n                            );\n\n                        }\n\n                    }\n                );\n\n            }\n        );\n\n\n        \/* =================================================\n           MOBILE THUMBNAIL NAVIGATION\n           ================================================= *\/\n\n        function scrollThumbnailStrip(\n            direction\n        ) {\n\n            if (\n                !thumbnailContainer ||\n                !window.matchMedia(\n                    \"(max-width: 600px)\"\n                ).matches\n            ) {\n                return;\n            }\n\n\n            const items =\n                Array.from(\n                    thumbnailContainer.querySelectorAll(\n                        \".sp-thumb\"\n                    )\n                );\n\n\n            if (!items.length) {\n                return;\n            }\n\n\n            let activeIndex =\n                items.findIndex(\n                    function (thumb) {\n\n                        return thumb.classList.contains(\n                            \"active\"\n                        );\n\n                    }\n                );\n\n\n            if (\n                activeIndex < 0\n            ) {\n\n                activeIndex =\n                    0;\n\n            }\n\n\n            let targetIndex =\n                activeIndex +\n                (\n                    direction > 0\n                        ? 1\n                        : -1\n                );\n\n\n            if (\n                targetIndex < 0\n            ) {\n\n                targetIndex =\n                    items.length - 1;\n\n            }\n\n\n            if (\n                targetIndex >=\n                items.length\n            ) {\n\n                targetIndex =\n                    0;\n\n            }\n\n\n            items[targetIndex].click();\n\n\n            items[targetIndex].scrollIntoView({\n\n                behavior:\n                    \"smooth\",\n\n                block:\n                    \"nearest\",\n\n                inline:\n                    \"center\"\n\n            });\n\n        }\n\n\n        if (thumbPrev) {\n\n            thumbPrev.addEventListener(\n                \"click\",\n                function (event) {\n\n                    event.preventDefault();\n                    event.stopPropagation();\n\n                    scrollThumbnailStrip(\n                        -1\n                    );\n\n                }\n            );\n\n        }\n\n\n        if (thumbNext) {\n\n            thumbNext.addEventListener(\n                \"click\",\n                function (event) {\n\n                    event.preventDefault();\n                    event.stopPropagation();\n\n                    scrollThumbnailStrip(\n                        1\n                    );\n\n                }\n            );\n\n        }\n\n\n        \/* =================================================\n           HOTSPOT CLICK \/ TAP\n           ================================================= *\/\n\n        hotspots.forEach(\n            function (hotspot) {\n\n                hotspot.addEventListener(\n                    \"click\",\n                    function (event) {\n\n                        event.preventDefault();\n                        event.stopPropagation();\n\n\n                        const isOpen =\n                            hotspot.classList.contains(\n                                \"is-open\"\n                            );\n\n\n                        hotspots.forEach(\n                            function (item) {\n\n                                item.classList.remove(\n                                    \"is-open\"\n                                );\n\n                            }\n                        );\n\n\n                        if (!isOpen) {\n\n                            hotspot.classList.add(\n                                \"is-open\"\n                            );\n\n                        }\n\n                    }\n                );\n\n            }\n        );\n\n\n        \/* =================================================\n           CLOSE HOTSPOT\n           ================================================= *\/\n\n        document.addEventListener(\n            \"click\",\n            function (event) {\n\n                if (\n                    !gallery.contains(\n                        event.target\n                    )\n                ) {\n\n                    hotspots.forEach(\n                        function (hotspot) {\n\n                            hotspot.classList.remove(\n                                \"is-open\"\n                            );\n\n                        }\n                    );\n\n                }\n\n            }\n        );\n\n\n        \/* =================================================\n           DYNAMIC EDITABLE KICKER \/ TITLE \/\n           SUBTITLE \/ PART NUMBER\n           ================================================= *\/\n\n        function getViewDataAttributeName(\n            view,\n            field\n        ) {\n\n            if (!view) {\n\n                return \"data-\" +\n                    field;\n\n            }\n\n\n            return (\n                \"data-\" +\n                view.replace(\n                    \/\\s+\/g,\n                    \"-\"\n                ) +\n                \"-\" +\n                field\n            );\n\n        }\n\n\n        function getViewCopy(\n            slide,\n            view\n        ) {\n\n            if (!slide) {\n\n                return {\n\n                    kicker:\n                        \"\",\n\n                    title:\n                        \"\",\n\n                    subtitle:\n                        \"\",\n\n                    partNumber:\n                        \"\"\n\n                };\n\n            }\n\n\n            const variationView =\n                view ||\n                \"\";\n\n            const isVariation =\n                slide.classList.contains(\n                    \"sp-variant-slide\"\n                );\n\n\n            if (\n                isVariation &&\n                variationView\n            ) {\n\n                return {\n\n                    kicker:\n                        slide.getAttribute(\n                            getViewDataAttributeName(\n                                variationView,\n                                \"kicker\"\n                            )\n                        ) ||\n                        \"\",\n\n                    title:\n                        slide.getAttribute(\n                            getViewDataAttributeName(\n                                variationView,\n                                \"title\"\n                            )\n                        ) ||\n                        \"\",\n\n                    subtitle:\n                        slide.getAttribute(\n                            getViewDataAttributeName(\n                                variationView,\n                                \"subtitle\"\n                            )\n                        ) ||\n                        \"\",\n\n                    partNumber:\n                        slide.getAttribute(\n                            getViewDataAttributeName(\n                                variationView,\n                                \"part-number\"\n                            )\n                        ) ||\n                        \"\"\n\n                };\n\n            }\n\n\n            return {\n\n                kicker:\n                    slide.getAttribute(\n                        \"data-kicker\"\n                    ) ||\n                    \"\",\n\n                title:\n                    slide.getAttribute(\n                        \"data-title\"\n                    ) ||\n                    \"\",\n\n                subtitle:\n                    slide.getAttribute(\n                        \"data-subtitle\"\n                    ) ||\n                    \"\",\n\n                partNumber:\n                    slide.getAttribute(\n                        \"data-part-number\"\n                    ) ||\n                    \"\"\n\n            };\n\n        }\n\n\n        function updateVariantText(\n            slide,\n            view\n        ) {\n\n            const copy =\n                getViewCopy(\n                    slide,\n                    view\n                );\n\n\n            const mobileKicker =\n                slide.querySelector(\n                    \".sp-mobile-variant-title .sp-slide-kicker\"\n                );\n\n            const mobileTitle =\n                slide.querySelector(\n                    \".sp-mobile-variant-title .sp-slide-title\"\n                );\n\n            const mobileSubtitle =\n                slide.querySelector(\n                    \".sp-mobile-variant-title .sp-slide-subtitle\"\n                );\n\n            const desktopKicker =\n                slide.querySelector(\n                    \".sp-side-info .sp-slide-kicker\"\n                );\n\n            const desktopTitle =\n                slide.querySelector(\n                    \".sp-side-info .sp-slide-title\"\n                );\n\n            const desktopSubtitle =\n                slide.querySelector(\n                    \".sp-side-info .sp-slide-subtitle\"\n                );\n\n            const partNumber =\n                slide.querySelector(\n                    \".sp-part-number-value\"\n                );\n\n\n            if (mobileKicker) {\n\n                mobileKicker.textContent =\n                    copy.kicker;\n\n            }\n\n\n            if (mobileTitle) {\n\n                mobileTitle.textContent =\n                    copy.title;\n\n            }\n\n\n            if (mobileSubtitle) {\n\n                mobileSubtitle.textContent =\n                    copy.subtitle;\n\n            }\n\n\n            if (desktopKicker) {\n\n                desktopKicker.textContent =\n                    copy.kicker;\n\n            }\n\n\n            if (desktopTitle) {\n\n                desktopTitle.textContent =\n                    copy.title;\n\n            }\n\n\n            if (desktopSubtitle) {\n\n                desktopSubtitle.textContent =\n                    copy.subtitle;\n\n            }\n\n\n            if (partNumber) {\n\n                partNumber.textContent =\n                    copy.partNumber;\n\n            }\n\n        }\n\n\n        function updateFeatureText() {\n\n            const featureSlide =\n                slides[0];\n\n            if (!featureSlide) {\n                return;\n            }\n\n\n            const copy =\n                getViewCopy(\n                    featureSlide,\n                    \"\"\n                );\n\n\n            const kicker =\n                featureSlide.querySelector(\n                    \".sp-slide-info .sp-slide-kicker\"\n                );\n\n            const title =\n                featureSlide.querySelector(\n                    \".sp-slide-info .sp-slide-title\"\n                );\n\n            const subtitle =\n                featureSlide.querySelector(\n                    \".sp-slide-info .sp-slide-subtitle\"\n                );\n\n            const partNumber =\n                featureSlide.querySelector(\n                    \".sp-part-number-value\"\n                );\n\n\n            if (kicker) {\n\n                kicker.textContent =\n                    copy.kicker;\n\n            }\n\n\n            if (title) {\n\n                title.textContent =\n                    copy.title;\n\n            }\n\n\n            if (subtitle) {\n\n                subtitle.textContent =\n                    copy.subtitle;\n\n            }\n\n\n            if (partNumber) {\n\n                partNumber.textContent =\n                    copy.partNumber;\n\n            }\n\n        }\n\n\n        \/* =================================================\n           VARIATION TOGGLE\n           ================================================= *\/\n\n        variantSlides.forEach(\n            function (slide) {\n\n                const image =\n                    slide.querySelector(\n                        \".sp-variant-image\"\n                    );\n\n                const viewButtons =\n                    slide.querySelectorAll(\n                        \".sp-amp-btn\"\n                    );\n\n                const currentView =\n                    slide.querySelector(\n                        \".sp-current-amp\"\n                    );\n\n\n                if (!image) {\n                    return;\n                }\n\n\n                slide.dataset.currentView =\n                    slide.querySelector(\n                        \".sp-amp-btn.active\"\n                    )?.getAttribute(\n                        \"data-view\"\n                    ) ||\n                    slide.querySelector(\n                        \".sp-amp-btn\"\n                    )?.getAttribute(\n                        \"data-view\"\n                    ) ||\n                    \"\";\n\n\n                function updateImage() {\n\n                    const view =\n                        slide.dataset.currentView ||\n                        \"\";\n\n                    const source =\n                        slide.getAttribute(\n                            \"data-\" +\n                            view.replace(\n                                \/\\s+\/g,\n                                \"-\"\n                            )\n                        ) ||\n                        \"\";\n\n\n                    updateVariantText(\n                        slide,\n                        view\n                    );\n\n\n                    image.style.opacity =\n                        \"0\";\n\n\n                    window.setTimeout(\n                        function () {\n\n                            if (source) {\n\n                                image.src =\n                                    source;\n\n                                image.classList.remove(\n                                    \"is-empty\"\n                                );\n\n                            } else {\n\n                                image.removeAttribute(\n                                    \"src\"\n                                );\n\n                                image.classList.add(\n                                    \"is-empty\"\n                                );\n\n                            }\n\n\n                            image.style.opacity =\n                                \"1\";\n\n\n                            if (\n                                fullscreenModal.classList.contains(\n                                    \"is-open\"\n                                )\n                            ) {\n\n                                refreshFullscreenModal();\n\n                            }\n\n                        },\n                        90\n                    );\n\n\n                    viewButtons.forEach(\n                        function (button) {\n\n                            button.classList.toggle(\n                                \"active\",\n                                button.getAttribute(\n                                    \"data-view\"\n                                ) ===\n                                view\n                            );\n\n                        }\n                    );\n\n\n                    if (currentView) {\n\n                        currentView.innerHTML =\n                            \"Showing <strong>\" +\n                            view +\n                            \"<\/strong>\";\n\n                    }\n\n                }\n\n\n                function setView(view) {\n\n                    slide.dataset.currentView =\n                        view ||\n                        \"\";\n\n                    updateImage();\n\n                }\n\n\n                slide._setView =\n                    setView;\n\n\n                viewButtons.forEach(\n                    function (button) {\n\n                        button.addEventListener(\n                            \"click\",\n                            function (event) {\n\n                                event.preventDefault();\n                                event.stopPropagation();\n\n                                setView(\n                                    button.getAttribute(\n                                        \"data-view\"\n                                    )\n                                );\n\n                            }\n                        );\n\n                    }\n                );\n\n\n                \/* INITIALIZE EVERY VARIATION TO ITS FIRST CONFIGURED IMAGE *\/\n\n                setView(\n                    slide.querySelector(\n                        \".sp-amp-btn.active\"\n                    )?.getAttribute(\n                        \"data-view\"\n                    ) ||\n                    slide.querySelector(\n                        \".sp-amp-btn\"\n                    )?.getAttribute(\n                        \"data-view\"\n                    ) ||\n                    \"\"\n                );\n\n            }\n        );\n\n\n        \/* =================================================\n           VIEW FULL SCREEN + HOVER ZOOM\n           ================================================= *\/\n\n        const fullscreenModal =\n            document.createElement(\n                \"div\"\n            );\n\n\n        fullscreenModal.className =\n            \"sp-fullscreen-modal\";\n\n\n        fullscreenModal.setAttribute(\n            \"aria-hidden\",\n            \"true\"\n        );\n\n\n        fullscreenModal.innerHTML = `\n\n            <div\n                class=\"sp-fullscreen-dialog\"\n                role=\"dialog\"\n                aria-modal=\"true\"\n                aria-label=\"Product full screen view\"\n            >\n\n                <button\n                    type=\"button\"\n                    class=\"sp-fullscreen-close\"\n                    aria-label=\"Close full screen\"\n                >\n                    &times;\n                <\/button>\n\n\n                <div class=\"sp-fullscreen-image-area\">\n\n                    <img\n                        class=\"sp-fullscreen-image\"\n                        alt=\"\"\n                    >\n\n                <\/div>\n\n\n                <div class=\"sp-fullscreen-info\">\n\n                    <div class=\"sp-fullscreen-kicker\"><\/div>\n\n                    <div class=\"sp-fullscreen-title\"><\/div>\n\n                    <div class=\"sp-fullscreen-description\"><\/div>\n\n                    <div class=\"sp-fullscreen-part-number\">\n                        PART NUMBER:\n                        <strong class=\"sp-fullscreen-part-number-value\"><\/strong>\n                    <\/div>\n\n\n                    <div class=\"sp-fullscreen-amp-wrap\">\n\n                        <div class=\"sp-fullscreen-amp-label\">\n                            SELECT COLOR\n                        <\/div>\n\n                        <div\n                            class=\"sp-fullscreen-amp-toggle\"\n                            role=\"group\"\n                            aria-label=\"Fullscreen product configuration\"\n                        >\n\n                            <button\n                                type=\"button\"\n                                class=\"sp-fullscreen-amp-btn active\"\n                                data-view=\"\"\n                            >\n                                Stainless Steel\n                            <\/button>\n\n                            <button\n                                type=\"button\"\n                                class=\"sp-fullscreen-amp-btn\"\n                                data-view=\"\"\n                            >\n                                White\n                            <\/button>\n\n                            <button\n                                type=\"button\"\n                                class=\"sp-fullscreen-amp-btn\"\n                                data-view=\"\"\n                            >\n                                Black\n                            <\/button>\n\n                            <button\n                                type=\"button\"\n                                class=\"sp-fullscreen-amp-btn\"\n                                data-view=\"\"\n                            >\n                                Grey\n                            <\/button>\n\n                            \n\n                        <\/div>\n\n                    <\/div>\n\n\n                    <div class=\"sp-fullscreen-thumbnails\"><\/div>\n\n                <\/div>\n\n            <\/div>\n\n        `;\n\n\n        gallery.appendChild(\n            fullscreenModal\n        );\n\n\n        const fullscreenImage =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-image\"\n            );\n\n        const fullscreenKicker =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-kicker\"\n            );\n\n        const fullscreenTitle =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-title\"\n            );\n\n        const fullscreenDescription =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-description\"\n            );\n\n        const fullscreenPartNumber =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-part-number-value\"\n            );\n\n        const fullscreenViewWrap =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-amp-wrap\"\n            );\n\n        const fullscreenViewButtons =\n            fullscreenModal.querySelectorAll(\n                \".sp-fullscreen-amp-btn\"\n            );\n\n        const fullscreenThumbs =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-thumbnails\"\n            );\n\n        const fullscreenClose =\n            fullscreenModal.querySelector(\n                \".sp-fullscreen-close\"\n            );\n\n\n        \/* =================================================\n           FEATURE IMAGE \u2014 NORMAL VIEW \/ FULL SCREEN VIEW\n           Normal view and full screen use separate images.\n           ================================================= *\/\n\n        const FEATURE_FULLSCREEN_IMAGE =\n            \"https:\/\/dev.smartplug.com\/staging\/wp-content\/uploads\/2026\/08\/32A-Connector-w-Inlet-.png\";\n\n\n        function getActiveGalleryImage() {\n\n            const activeSlide =\n                slides[currentIndex];\n\n            if (!activeSlide) {\n                return null;\n            }\n\n\n            if (currentIndex === 0) {\n\n                return activeSlide.querySelector(\n                    \".sp-main-image-clip img\"\n                );\n\n            }\n\n\n            return activeSlide.querySelector(\n                \".sp-variant-image\"\n            );\n\n        }\n\n\n        function getActiveGalleryCopy() {\n\n            const activeSlide =\n                slides[currentIndex];\n\n\n            if (!activeSlide) {\n\n                return {\n\n                    kicker:\n                        \"\",\n\n                    title:\n                        \"\",\n\n                    description:\n                        \"\",\n\n                    partNumber:\n                        \"\"\n\n                };\n\n            }\n\n\n            const view =\n                activeSlide.classList.contains(\n                    \"sp-variant-slide\"\n                )\n                    ? (\n                        activeSlide.dataset.currentView ||\n                        activeSlide.querySelector(\n                            \".sp-amp-btn.active\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        activeSlide.querySelector(\n                            \".sp-amp-btn\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        \"\"\n                    )\n                    : \"\";\n\n\n            const copy =\n                getViewCopy(\n                    activeSlide,\n                    view\n                );\n\n\n            return {\n\n                kicker:\n                    copy.kicker,\n\n                title:\n                    copy.title,\n\n                description:\n                    copy.subtitle,\n\n                partNumber:\n                    copy.partNumber\n\n            };\n\n        }\n\n\n        function applyFullscreenSettings() {\n\n            const dialog =\n                fullscreenModal.querySelector(\n                    \".sp-fullscreen-dialog\"\n                );\n\n\n            if (!dialog) {\n                return;\n            }\n\n\n            dialog.style.setProperty(\n                \"--sp-popup-width-desktop\",\n                \"1100px\"\n            );\n\n\n            dialog.style.setProperty(\n                \"--sp-popup-height-desktop\",\n                \"520px\"\n            );\n\n\n            dialog.style.setProperty(\n                \"--sp-popup-width-mobile\",\n                \"calc(100vw - 16px)\"\n            );\n\n\n            dialog.style.setProperty(\n                \"--sp-popup-height-mobile\",\n                \"90vh\"\n            );\n\n\n            dialog.style.setProperty(\n                \"--sp-popup-image-area-height-mobile\",\n                \"54vh\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-width-desktop\",\n                \"100%\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-height-desktop\",\n                \"100%\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-x-desktop\",\n                \"0px\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-y-desktop\",\n                \"0px\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-width-mobile\",\n                \"100%\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-height-mobile\",\n                \"100%\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-x-mobile\",\n                \"0px\"\n            );\n\n\n            fullscreenImage.style.setProperty(\n                \"--sp-popup-image-y-mobile\",\n                \"0px\"\n            );\n\n        }\n\n\n        function refreshFullscreenModal() {\n\n            const activeImage =\n                getActiveGalleryImage();\n\n\n            if (\n                !activeImage ||\n                !activeImage.src\n            ) {\n                return;\n            }\n\n\n            const copy =\n                getActiveGalleryCopy();\n\n\n            const activeSlide =\n                slides[currentIndex];\n\n\n            const isVariation =\n                currentIndex >= 1 &&\n                activeSlide;\n\n\n            const view =\n                isVariation\n                    ? (\n                        activeSlide.dataset.currentView ||\n                        activeSlide.querySelector(\n                            \".sp-amp-btn.active\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        activeSlide.querySelector(\n                            \".sp-amp-btn\"\n                        )?.getAttribute(\n                            \"data-view\"\n                        ) ||\n                        \"\"\n                    )\n                    : \"\";\n\n\n            const viewImage =\n                isVariation\n                    ? (\n                        activeSlide.getAttribute(\n                            \"data-\" +\n                            view.replace(\n                                \/\\s+\/g,\n                                \"-\"\n                            )\n                        ) ||\n                        \"\"\n                    )\n                    : FEATURE_FULLSCREEN_IMAGE;\n\n\n            applyFullscreenSettings();\n\n\n            fullscreenImage.src =\n                viewImage ||\n                activeImage.currentSrc ||\n                activeImage.src;\n\n\n            fullscreenImage.alt =\n                copy.title ||\n                activeImage.alt ||\n                \"\";\n\n\n            fullscreenKicker.textContent =\n                copy.kicker ||\n                \"\";\n\n\n            fullscreenTitle.textContent =\n                copy.title ||\n                \"\";\n\n\n            fullscreenDescription.textContent =\n                copy.description ||\n                \"\";\n\n\n            if (fullscreenPartNumber) {\n\n                fullscreenPartNumber.textContent =\n                    isVariation\n                        ? (\n                            copy.partNumber ||\n                            \"\"\n                        )\n                        : \"\";\n\n                fullscreenPartNumber.parentElement.style.display =\n                    isVariation\n                        ? \"\"\n                        : \"none\";\n\n            }\n\n\n            fullscreenViewWrap.classList.toggle(\n                \"is-visible\",\n                !!isVariation\n            );\n\n\n            if (isVariation) {\n\n                const activeButtons =\n                    Array.from(\n                        activeSlide.querySelectorAll(\n                            \".sp-amp-btn\"\n                        )\n                    );\n\n\n                fullscreenViewButtons.forEach(\n                    function (\n                        button,\n                        index\n                    ) {\n\n                        const sourceButton =\n                            activeButtons[index];\n\n\n                        if (sourceButton) {\n\n                            button.setAttribute(\n                                \"data-view\",\n                                sourceButton.getAttribute(\n                                    \"data-view\"\n                                ) ||\n                                \"\"\n                            );\n\n\n                            button.textContent =\n                                sourceButton.textContent.trim();\n\n                        }\n\n                    }\n                );\n\n            }\n\n\n            fullscreenViewButtons.forEach(\n                function (button) {\n\n                    const buttonView =\n                        button.getAttribute(\n                            \"data-view\"\n                        );\n\n\n                    button.classList.toggle(\n                        \"active\",\n                        buttonView === view\n                    );\n\n\n                    button.disabled =\n                        !isVariation;\n\n                }\n            );\n\n\n            fullscreenThumbs.innerHTML =\n                \"\";\n\n\n            thumbs.forEach(\n                function (thumb) {\n\n                    const sourceImage =\n                        thumb.querySelector(\n                            \"img\"\n                        );\n\n\n                    if (!sourceImage) {\n                        return;\n                    }\n\n\n                    const modalThumb =\n                        document.createElement(\n                            \"button\"\n                        );\n\n\n                    modalThumb.type =\n                        \"button\";\n\n\n                    modalThumb.className =\n                        \"sp-fullscreen-thumb\";\n\n\n                    modalThumb.setAttribute(\n                        \"aria-label\",\n                        thumb.getAttribute(\n                            \"aria-label\"\n                        ) ||\n                        \"View product image\"\n                    );\n\n\n                    const modalThumbImage =\n                        document.createElement(\n                            \"img\"\n                        );\n\n\n                    modalThumbImage.src =\n                        sourceImage.currentSrc ||\n                        sourceImage.src;\n\n\n                    modalThumbImage.alt =\n                        sourceImage.alt ||\n                        \"\";\n\n\n                    modalThumb.appendChild(\n                        modalThumbImage\n                    );\n\n\n                    const thumbTarget =\n                        parseInt(\n                            thumb.getAttribute(\n                                \"data-target\"\n                            ),\n                            10\n                        );\n\n\n                    if (\n                        thumbTarget ===\n                        currentIndex\n                    ) {\n\n                        modalThumb.classList.add(\n                            \"active\"\n                        );\n\n                    }\n\n\n                    modalThumb.addEventListener(\n                        \"click\",\n                        function (event) {\n\n                            event.preventDefault();\n                            event.stopPropagation();\n\n\n                            showSlide(\n                                thumbTarget\n                            );\n\n\n                            window.setTimeout(\n                                refreshFullscreenModal,\n                                110\n                            );\n\n                        }\n                    );\n\n\n                    fullscreenThumbs.appendChild(\n                        modalThumb\n                    );\n\n                }\n            );\n\n        }\n\n\n        fullscreenViewButtons.forEach(\n            function (button) {\n\n                button.addEventListener(\n                    \"click\",\n                    function (event) {\n\n                        event.preventDefault();\n                        event.stopPropagation();\n\n\n                        if (\n                            !fullscreenModal.classList.contains(\n                                \"is-open\"\n                            )\n                        ) {\n                            return;\n                        }\n\n\n                        const activeSlide =\n                            slides[currentIndex];\n\n\n                        if (\n                            !activeSlide ||\n                            currentIndex < 1\n                        ) {\n                            return;\n                        }\n\n\n                        if (\n                            typeof activeSlide._setView ===\n                            \"function\"\n                        ) {\n\n                            activeSlide._setView(\n                                button.getAttribute(\n                                    \"data-view\"\n                                )\n                            );\n\n\n                            window.setTimeout(\n                                refreshFullscreenModal,\n                                110\n                            );\n\n                        }\n\n                    }\n                );\n\n            }\n        );\n\n\n        let fullscreenScrollTop =\n            0;\n\n        let fullscreenScrollLeft =\n            0;\n\n        let fullscreenBodyPaddingRight =\n            \"\";\n\n\n        function openFullscreenModal() {\n\n            refreshFullscreenModal();\n\n\n            fullscreenScrollTop =\n                window.scrollY ||\n                window.pageYOffset ||\n                0;\n\n\n            fullscreenScrollLeft =\n                window.scrollX ||\n                window.pageXOffset ||\n                0;\n\n\n            fullscreenBodyPaddingRight =\n                document.body.style.paddingRight;\n\n\n            const scrollbarWidth =\n                window.innerWidth -\n                document.documentElement.clientWidth;\n\n\n            if (scrollbarWidth > 0) {\n\n                document.body.style.paddingRight =\n                    scrollbarWidth +\n                    \"px\";\n\n            }\n\n\n            fullscreenModal.classList.add(\n                \"is-open\"\n            );\n\n\n            fullscreenModal.setAttribute(\n                \"aria-hidden\",\n                \"false\"\n            );\n\n\n            document.body.style.overflow =\n                \"hidden\";\n\n        }\n\n\n        function closeFullscreenModal() {\n\n            fullscreenModal.classList.remove(\n                \"is-open\"\n            );\n\n\n            fullscreenModal.setAttribute(\n                \"aria-hidden\",\n                \"true\"\n            );\n\n\n            document.body.style.overflow =\n                \"\";\n\n\n            document.body.style.paddingRight =\n                fullscreenBodyPaddingRight;\n\n\n            window.scrollTo({\n\n                top:\n                    fullscreenScrollTop,\n\n                left:\n                    fullscreenScrollLeft,\n\n                behavior:\n                    \"auto\"\n\n            });\n\n        }\n\n\n        fullscreenClose.addEventListener(\n            \"click\",\n            function (event) {\n\n                event.preventDefault();\n\n                closeFullscreenModal();\n\n            }\n        );\n\n\n        fullscreenModal.addEventListener(\n            \"click\",\n            function (event) {\n\n                if (\n                    event.target ===\n                    fullscreenModal\n                ) {\n\n                    closeFullscreenModal();\n\n                }\n\n            }\n        );\n\n\n        document.addEventListener(\n            \"keydown\",\n            function (event) {\n\n                if (\n                    event.key ===\n                    \"Escape\" &&\n                    fullscreenModal.classList.contains(\n                        \"is-open\"\n                    )\n                ) {\n\n                    closeFullscreenModal();\n\n                }\n\n            }\n        );\n\n\n        \/* =================================================\n           ADD FULLSCREEN BUTTONS\n           ================================================= *\/\n\n        function addFullscreenButtons() {\n\n            const featureWrap =\n                gallery.querySelector(\n                    \".sp-main-product\"\n                );\n\n\n            if (\n                featureWrap &&\n                !featureWrap.closest(\n                    \".sp-gallery-slide\"\n                ).querySelector(\n                    \".sp-fullscreen-trigger\"\n                )\n            ) {\n\n                const button =\n                    document.createElement(\n                        \"button\"\n                    );\n\n\n                button.type =\n                    \"button\";\n\n\n                button.className =\n                    \"sp-fullscreen-trigger\";\n\n\n                button.textContent =\n                    \"View Full Screen\";\n\n\n                button.addEventListener(\n                    \"click\",\n                    function (event) {\n\n                        event.preventDefault();\n                        event.stopPropagation();\n\n                        openFullscreenModal();\n\n                    }\n                );\n\n\n                const featureInfo =\n                    featureWrap.closest(\n                        \".sp-gallery-slide\"\n                    ).querySelector(\n                        \".sp-slide-info\"\n                    );\n\n\n                if (featureInfo) {\n\n                    featureInfo.appendChild(\n                        button\n                    );\n\n                } else {\n\n                    featureWrap.appendChild(\n                        button\n                    );\n\n                }\n\n            }\n\n\n            variantSlides.forEach(\n                function (slide) {\n\n                    const imageWrap =\n                        slide.querySelector(\n                            \".sp-variant-image-wrap\"\n                        );\n\n\n                    if (\n                        !imageWrap ||\n                        slide.querySelector(\n                            \".sp-fullscreen-trigger\"\n                        )\n                    ) {\n                        return;\n                    }\n\n\n                    const button =\n                        document.createElement(\n                            \"button\"\n                        );\n\n\n                    button.type =\n                        \"button\";\n\n\n                    button.className =\n                        \"sp-fullscreen-trigger\";\n\n\n                    button.textContent =\n                        \"View Full Screen\";\n\n\n                    button.addEventListener(\n                        \"click\",\n                        function (event) {\n\n                            event.preventDefault();\n                            event.stopPropagation();\n\n                            openFullscreenModal();\n\n                        }\n                    );\n\n\n                    const sideInfo =\n                        slide.querySelector(\n                            \".sp-side-info\"\n                        );\n\n\n                    if (sideInfo) {\n\n                        const partNumber =\n                            sideInfo.querySelector(\n                                \".sp-part-number\"\n                            );\n\n\n                        if (partNumber) {\n\n                            partNumber.insertAdjacentElement(\n                                \"afterend\",\n                                button\n                            );\n\n                        } else {\n\n                            sideInfo.appendChild(\n                                button\n                            );\n\n                        }\n\n                    } else {\n\n                        imageWrap.appendChild(\n                            button\n                        );\n\n                    }\n\n                }\n            );\n\n        }\n\n\n        \/* =================================================\n           HOVER ZOOM\n           ================================================= *\/\n\n        function setupHoverZoom() {\n\n            variantSlides.forEach(\n                function (slide) {\n\n                    const imageWrap =\n                        slide.querySelector(\n                            \".sp-variant-image-wrap\"\n                        );\n\n\n                    const image =\n                        slide.querySelector(\n                            \".sp-variant-image\"\n                        );\n\n\n                    if (\n                        !imageWrap ||\n                        !image ||\n                        imageWrap.dataset.zoomInitialized ===\n                            \"true\"\n                    ) {\n                        return;\n                    }\n\n\n                    imageWrap.dataset.zoomInitialized =\n                        \"true\";\n\n\n                    const preview =\n                        document.createElement(\n                            \"div\"\n                        );\n\n\n                    preview.className =\n                        \"sp-zoom-preview\";\n\n\n                    const previewImage =\n                        document.createElement(\n                            \"img\"\n                        );\n\n\n                    previewImage.alt =\n                        \"\";\n\n\n                    preview.appendChild(\n                        previewImage\n                    );\n\n\n                    imageWrap.appendChild(\n                        preview\n                    );\n\n\n                    function syncPreviewImage() {\n\n                        const source =\n                            image.currentSrc ||\n                            image.src;\n\n\n                        if (source) {\n\n                            previewImage.src =\n                                source;\n\n                        }\n\n                    }\n\n\n                    image.addEventListener(\n                        \"load\",\n                        syncPreviewImage\n                    );\n\n\n                    syncPreviewImage();\n\n\n                    imageWrap.addEventListener(\n                        \"mouseenter\",\n                        function () {\n\n                            syncPreviewImage();\n\n                            imageWrap.classList.add(\n                                \"sp-zoom-active\"\n                            );\n\n                        }\n                    );\n\n\n                    imageWrap.addEventListener(\n                        \"mouseleave\",\n                        function () {\n\n                            imageWrap.classList.remove(\n                                \"sp-zoom-active\"\n                            );\n\n                        }\n                    );\n\n\n                    imageWrap.addEventListener(\n                        \"mousemove\",\n                        function (event) {\n\n                            if (\n                                window.innerWidth <=\n                                600\n                            ) {\n                                return;\n                            }\n\n\n                            const rect =\n                                imageWrap.getBoundingClientRect();\n\n\n                            const x =\n                                Math.max(\n                                    0,\n                                    Math.min(\n                                        1,\n                                        (\n                                            event.clientX -\n                                            rect.left\n                                        ) \/\n                                        rect.width\n                                    )\n                                );\n\n\n                            const y =\n                                Math.max(\n                                    0,\n                                    Math.min(\n                                        1,\n                                        (\n                                            event.clientY -\n                                            rect.top\n                                        ) \/\n                                        rect.height\n                                    )\n                                );\n\n\n                            previewImage.style.left =\n                                (-x * 100) +\n                                \"%\";\n\n\n                            previewImage.style.top =\n                                (-y * 100) +\n                                \"%\";\n\n                        }\n                    );\n\n                }\n            );\n\n        }\n\n\n        addFullscreenButtons();\n\n        setupHoverZoom();\n\n\n        \/* =================================================\n           WOOCOMMERCE VARIATION COMPATIBILITY\n           ================================================= *\/\n\n        if (window.jQuery) {\n\n            jQuery(document).on(\n                \"found_variation.spComboKitGallery\",\n                \"form.variations_form\",\n                function (\n                    event,\n                    variation\n                ) {\n\n                    if (\n                        !variation ||\n                        !variation.image ||\n                        !variation.image.src\n                    ) {\n                        return;\n                    }\n\n\n                    const variationImage =\n                        variation.image.src;\n\n\n                    thumbs.forEach(\n                        function (\n                            thumb,\n                            index\n                        ) {\n\n                            const image =\n                                thumb.querySelector(\n                                    \"img\"\n                                );\n\n\n                            if (!image) {\n                                return;\n                            }\n\n\n                            const thumbImage =\n                                image.currentSrc ||\n                                image.src;\n\n\n                            if (\n                                thumbImage ===\n                                variationImage ||\n\n                                thumbImage.includes(\n                                    variationImage\n                                ) ||\n\n                                variationImage.includes(\n                                    thumbImage\n                                )\n                            ) {\n\n                                showSlide(\n                                    index\n                                );\n\n                            }\n\n                        }\n                    );\n\n                }\n            );\n\n        }\n\n\n        \/* =====================================================\n           RESPONSIVE FEATURE HOTSPOT IMAGE SYNC\n           Keeps hotspots aligned with the actual rendered image.\n           ===================================================== *\/\n\n        function getResponsiveMode() {\n            const width =\n                window.innerWidth ||\n                document.documentElement.clientWidth ||\n                0;\n\n            if (width <= 767) return \"mobile\";\n            if (width <= 1024) return \"tablet\";\n            if (width <= 1366) return \"laptop\";\n            return \"desktop\";\n        }\n\n\n        function readCssNumber(element, variableName, fallback) {\n            const inlineValue =\n                element.style.getPropertyValue(variableName).trim();\n\n            if (inlineValue) {\n                const parsedInline = parseFloat(inlineValue);\n\n                if (Number.isFinite(parsedInline)) {\n                    return parsedInline;\n                }\n            }\n\n            const computedValue =\n                window\n                    .getComputedStyle(element)\n                    .getPropertyValue(variableName)\n                    .trim();\n\n            const parsedComputed = parseFloat(computedValue);\n\n            return Number.isFinite(parsedComputed)\n                ? parsedComputed\n                : fallback;\n        }\n\n\n        function getActiveImageSetting(\n            element,\n            responsiveMode,\n            property,\n            fallback\n        ) {\n            const responsiveName =\n                \"--\" +\n                property +\n                \"-\" +\n                responsiveMode;\n\n            const responsiveValue =\n                readCssNumber(\n                    element,\n                    responsiveName,\n                    NaN\n                );\n\n            if (Number.isFinite(responsiveValue)) {\n                return responsiveValue;\n            }\n\n            return readCssNumber(\n                element,\n                \"--\" + property + \"-desktop\",\n                fallback\n            );\n        }\n\n\n        \/* =====================================================\n           RESPONSIVE FEATURE HOTSPOT IMAGE SYNC\n           -----------------------------------------------------\n           Each hotspot keeps ONE canonical product-relative\n           percentage anchor. The final pixel position is calculated\n           from the actual rendered object-fit: contain image,\n           including responsive image scale and X\/Y translation.\n           ===================================================== *\/\n        function syncFeatureHotspots() {\n\n            const featureSlide = slides[0];\n\n            if (!featureSlide) return;\n\n\n            const imageWrap =\n                featureSlide.querySelector(\n                    \".sp-main-product.sp-hotspot-image\"\n                );\n\n            const imageClip =\n                featureSlide.querySelector(\n                    \".sp-main-image-clip\"\n                );\n\n            const image =\n                featureSlide.querySelector(\n                    \".sp-main-image-clip > img\"\n                );\n\n            const featureHotspots =\n                featureSlide.querySelectorAll(\n                    \".sp-hotspot\"\n                );\n\n\n            if (\n                !imageWrap ||\n                !imageClip ||\n                !image ||\n                !featureHotspots.length\n            ) {\n                return;\n            }\n\n\n            if (\n                !image.naturalWidth ||\n                !image.naturalHeight\n            ) {\n                return;\n            }\n\n\n            const clipRect =\n                imageClip.getBoundingClientRect();\n\n            const wrapRect =\n                imageWrap.getBoundingClientRect();\n\n\n            if (\n                !clipRect.width ||\n                !clipRect.height ||\n                !wrapRect.width ||\n                !wrapRect.height\n            ) {\n                return;\n            }\n\n\n            const responsiveMode =\n                getResponsiveMode();\n\n\n            \/*\n             * The feature image stores its responsive --image-* settings\n             * on the .sp-main-product wrapper, not on the <img>.\n             *\/\n            const imageScale =\n                Math.max(\n                    0.001,\n                    getActiveImageSetting(\n                        imageWrap,\n                        responsiveMode,\n                        \"image-scale\",\n                        1\n                    )\n                );\n\n            const imageX =\n                getActiveImageSetting(\n                    imageWrap,\n                    responsiveMode,\n                    \"image-x\",\n                    0\n                );\n\n            const imageY =\n                getActiveImageSetting(\n                    imageWrap,\n                    responsiveMode,\n                    \"image-y\",\n                    0\n                );\n\n\n            \/*\n             * Match object-fit: contain from the image's natural\n             * dimensions and the actual clip dimensions.\n             *\/\n            const imageRatio =\n                image.naturalWidth \/\n                image.naturalHeight;\n\n            const containerRatio =\n                clipRect.width \/\n                clipRect.height;\n\n\n            let renderedWidth;\n            let renderedHeight;\n\n\n            if (imageRatio > containerRatio) {\n\n                renderedWidth =\n                    clipRect.width;\n\n                renderedHeight =\n                    renderedWidth \/\n                    imageRatio;\n\n            } else {\n\n                renderedHeight =\n                    clipRect.height;\n\n                renderedWidth =\n                    renderedHeight *\n                    imageRatio;\n            }\n\n\n            \/*\n             * Match the CSS transform scale around the image center.\n             *\/\n            renderedWidth *= imageScale;\n            renderedHeight *= imageScale;\n\n\n            const renderedLeft =\n                clipRect.left +\n                (clipRect.width - renderedWidth) \/ 2 +\n                imageX;\n\n            const renderedTop =\n                clipRect.top +\n                (clipRect.height - renderedHeight) \/ 2 +\n                imageY;\n\n\n            featureHotspots.forEach(\n                function (hotspot) {\n\n                    \/*\n                     * ONE canonical hotspot position across all viewports.\n                     *\/\n                    const topPercent =\n                        readCssNumber(\n                            hotspot,\n                            \"--top\",\n                            50\n                        );\n\n                    const leftPercent =\n                        readCssNumber(\n                            hotspot,\n                            \"--left\",\n                            50\n                        );\n\n                    const hotspotX =\n                        readCssNumber(\n                            hotspot,\n                            \"--hotspot-x\",\n                            0\n                        );\n\n                    const hotspotY =\n                        readCssNumber(\n                            hotspot,\n                            \"--hotspot-y\",\n                            0\n                        );\n\n\n                    const leftPx =\n                        renderedLeft -\n                        wrapRect.left +\n                        (\n                            renderedWidth *\n                            leftPercent \/\n                            100\n                        ) +\n                        hotspotX;\n\n\n                    const topPx =\n                        renderedTop -\n                        wrapRect.top +\n                        (\n                            renderedHeight *\n                            topPercent \/\n                            100\n                        ) +\n                        hotspotY;\n\n\n                    hotspot.style.setProperty(\n                        \"--sp-hotspot-left-px\",\n                        leftPx + \"px\"\n                    );\n\n                    hotspot.style.setProperty(\n                        \"--sp-hotspot-top-px\",\n                        topPx + \"px\"\n                    );\n\n                }\n            );\n        }\n\n\n        let hotspotFrame = null;\n\n        function scheduleFeatureHotspotSync() {\n\n            if (hotspotFrame) {\n                cancelAnimationFrame(hotspotFrame);\n            }\n\n            hotspotFrame = requestAnimationFrame(\n                function () {\n\n                    hotspotFrame = null;\n                    syncFeatureHotspots();\n\n                }\n            );\n\n        }\n\n\n        const featureImage = slides[0]\n            ? slides[0].querySelector(\n                \".sp-main-image-clip > img\"\n            )\n            : null;\n\n\n        if (featureImage) {\n\n            featureImage.addEventListener(\n                \"load\",\n                scheduleFeatureHotspotSync\n            );\n\n        }\n\n\n        window.addEventListener(\n            \"resize\",\n            scheduleFeatureHotspotSync\n        );\n\n\n        window.addEventListener(\n            \"orientationchange\",\n            scheduleFeatureHotspotSync\n        );\n\n\n        scheduleFeatureHotspotSync();\n\n\n        if (window.ResizeObserver) {\n\n            const hotspotObserver =\n                new ResizeObserver(\n                    function () {\n                        scheduleFeatureHotspotSync();\n                    }\n                );\n\n            const featureClip =\n                slides[0]?.querySelector(\n                    \".sp-main-image-clip\"\n                );\n\n            const featureWrap =\n                slides[0]?.querySelector(\n                    \".sp-main-product.sp-hotspot-image\"\n                );\n\n            const mainView =\n                gallery.querySelector(\n                    \".sp-main-view\"\n                );\n\n\n            if (featureClip) {\n                hotspotObserver.observe(featureClip);\n            }\n\n            if (featureWrap) {\n                hotspotObserver.observe(featureWrap);\n            }\n\n            if (mainView) {\n                hotspotObserver.observe(mainView);\n            }\n\n        }\n\n\n        showSlide(0);\n\n        \/* Give Elementor one additional layout frame before the\n           final hotspot measurement. *\/\n        window.setTimeout(\n            scheduleFeatureHotspotSync,\n            50\n        );\n\n    }\n\n\n    \/* =====================================================\n       NORMAL PAGE LOAD\n       ===================================================== *\/\n\n    if (\n        document.readyState ===\n        \"loading\"\n    ) {\n\n        document.addEventListener(\n            \"DOMContentLoaded\",\n            initSmartPlugComboKitGallery\n        );\n\n    } else {\n\n        initSmartPlugComboKitGallery();\n\n    }\n\n\n    \/* =====================================================\n       ELEMENTOR FRONTEND\n       ===================================================== *\/\n\n    if (window.jQuery) {\n\n        jQuery(window).on(\n            \"elementor\/frontend\/init\",\n            function () {\n\n                setTimeout(\n                    initSmartPlugComboKitGallery,\n                    150\n                );\n\n            }\n        );\n\n    }\n\n})();\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8fd309a e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"8fd309a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f404ad elementor-widget elementor-widget-heading\" data-id=\"9f404ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\nCombo Kit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b747897 elementor-widget elementor-widget-text-editor\" data-id=\"b747897\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The SmartPlug Combo Kit, which includes both the SmartPlug inlet and connector, is designed to deliver superior performance, enhanced safety, and effortless usability for reliable shore power connections. Engineered to handle high electrical demand, the system features increased pin and clip surface area that improves conductivity and significantly reduces the risk of overheating. Its intuitive push-in design eliminates the need for twisting, while the unique plug body shape ensures a correct connection every time, even in low-light conditions. A built-in multi-point locking system uses secure side clips to hold the plug firmly in place, preventing movement and removing stress from the electrical pins. Advanced weatherproof sealing gaskets are integrated into both the inlet cover and plug body to block moisture and protect against water intrusion in harsh environments. Designed for convenience, the inlet\u2019s mounting flange aligns with standard twist-type hole patterns, allowing for a quick and straightforward installation that can typically be completed in about 30 minutes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f79334f elementor-widget elementor-widget-button\" data-id=\"f79334f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/dev.smartplug.com\/staging\/where-to-buy\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">WHERE TO BUY<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Smartplug Combo Kit 1 Quick &amp; Easy Installation Mounting flange holes align with twist-type patterns for a quick 30-minute installation. 2 Multi-Point Locking System Side clips secure the plug in the inlet, preventing pin stress from cord movement. 3 Weatherproof Seals Superior gaskets in the inlet cover and plug body prevent moisture penetration. 4 Ease of Use Push-in design eliminates the need for twisting, ensuring the plug only fits one way, even in the dark. KEY FEATURES Click the numbered points to explore the ComboKit 30A Heyco Connector &#038; Inlet Stainless &#8211; Steel 30A Heyco Connector &#038; Inlet Stainless &#8211; Steel SELECT COLOR Stainless White Black Grey Showing Stainless Steel PART NUMBER: SMARTPLUG COMBO KIT 50A Heyco Connector &#038; Inlet Stainless &#8211; Steel SMARTPLUG COMBO KIT 30A Heyco Connector &#038; Inlet Stainless &#8211; Steel SELECT COLOR Stainless White Black Grey Showing Stainless Steel PART NUMBER: &#10094; Features 30A 50A &#10095; Combo Kit The SmartPlug Combo Kit, which includes both the SmartPlug inlet and connector, is designed to deliver superior performance, enhanced safety, and effortless usability for reliable shore power connections. Engineered to handle high electrical demand, the system features increased pin and clip surface area that improves conductivity and significantly reduces the risk of overheating. Its intuitive push-in design eliminates the need for twisting, while the unique plug body shape ensures a correct connection every time, even in low-light conditions. A built-in multi-point locking system uses secure side clips to hold the plug firmly in place, preventing movement and removing stress from the electrical pins. Advanced weatherproof sealing gaskets are integrated into both the inlet cover and plug body to block moisture and protect against water intrusion in harsh environments. Designed for convenience, the inlet\u2019s mounting flange aligns with standard twist-type hole patterns, allowing for a quick and straightforward installation that can typically be completed in about 30 minutes. WHERE TO BUY<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-10535","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/pages\/10535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/comments?post=10535"}],"version-history":[{"count":122,"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/pages\/10535\/revisions"}],"predecessor-version":[{"id":20284,"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/pages\/10535\/revisions\/20284"}],"wp:attachment":[{"href":"https:\/\/dev.smartplug.com\/staging\/wp-json\/wp\/v2\/media?parent=10535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}