{"id":2645,"date":"2025-01-27T09:43:29","date_gmt":"2025-01-27T08:43:29","guid":{"rendered":"https:\/\/www.lupato.it\/lista-prodotti\/"},"modified":"2025-07-23T16:02:44","modified_gmt":"2025-07-23T14:02:44","slug":"products-list","status":"publish","type":"page","link":"https:\/\/www.lupato.it\/en\/products-list\/","title":{"rendered":"Products list"},"content":{"rendered":"<div class=\"slider-generic header-small\">\n<div class=\"hero\">\n    <\/div>\n<\/div>\n<div class=\"section section-product_list gradient-bg\">\n<div class=\"row\">\n<div class=\"product-sidebar\">\n<div class=\"row-title\">\n<h1>Products<\/h1>\n<\/p><\/div>\n<div class=\"row-subtitle\">\n<h2>A comprehensive range for every requirement.<\/h2>\n<\/p><\/div>\n<div class=\"row-desc\">\n                <span>Lupato specialises in manufacturing high-strength metal structures. <\/p>\n<p>Use the <b>filters<\/b> below to identify the product you want more easily:<\/span>\n            <\/div>\n<div class=\"product-filters\">\n<div class=\"filter-container\">\n                    <input type=\"text\" id=\"search\" placeholder=\"Searching...\"><\/p>\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n<\/p><\/div>\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_cat\" required><option value=\"\" selected>Product category<\/option><\/select><\/p>\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n<\/p><\/div>\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_subcat\" required><option value=\"\" selected>Type<\/option><\/select><\/p>\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n<\/p><\/div>\n<p>                <!--\n                \n\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_length\" required> \n<option value=\"\" selected>Lunghezza<\/option>\n                     <\/select>\n                    \n\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n\n\n                <\/div>\n\n\n                --><\/p>\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_width\" required><option value=\"\" selected>Width<\/option><\/select><\/p>\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n<\/p><\/div>\n<p>                <!--\n                \n\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_shoulder\" required> \n<option value=\"\" selected>Spalla<\/option>\n                     <\/select>\n                    \n\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n\n\n                <\/div>\n\n\n                --><\/p>\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_profile\" required><option value=\"\" selected>Conventional\/Reinforced<\/option><\/select><\/p>\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n<\/p><\/div>\n<p>                <!--\n                \n\n<div class=\"filter-container\">\n                    <select class=\"filter\" id=\"filter-product_coating\" required> \n<option value=\"\" selected>Rivestimento<\/option>\n<option value=\"alZn\">Aluzinc<\/option>\n<option value=\"znMg\">Zincomagnesio<\/option>\n<option value=\"zn\">Zinco<\/option>\n<option value=\"prev\">Preverniciato<\/option>\n                     <\/select>\n                    \n\n<div class=\"filter-cancel\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg>\n                    <\/div>\n\n\n                <\/div>\n\n\n                --><\/p>\n<div class=\"filter-reset hide\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xml:space=\"preserve\" viewBox=\"0 0 512 512\"><path d=\"M255.575 476.292a219.93 219.93 0 0 1-156.036-64.53c-86.052-86.051-86.052-226.057 0-312.108a219.255 219.255 0 0 1 156.054-64.653c58.95 0 114.37 22.951 156.036 64.653 41.684 41.684 64.653 97.103 64.653 156.054s-22.952 114.37-64.653 156.054a219.989 219.989 0 0 1-156.054 64.53zm.018-405.98a184.107 184.107 0 0 0-131.09 54.306c-35.01 35.011-54.29 81.567-54.29 131.09s19.28 96.062 54.29 131.09c72.28 72.28 189.899 72.298 262.162 0 35.01-35.01 54.307-81.567 54.307-131.09s-19.28-96.062-54.307-131.09a184.192 184.192 0 0 0-131.072-54.307z\" data-original=\"#000000\"\/><path d=\"M180.677 348.25a17.64 17.64 0 0 1-16.334-10.888 17.64 17.64 0 0 1 3.852-19.249l149.804-149.804a17.65 17.65 0 0 1 24.964 0 17.65 17.65 0 0 1 0 24.964L193.159 343.078a17.53 17.53 0 0 1-12.482 5.172z\" data-original=\"#000000\"\/><path d=\"M330.491 348.25a17.59 17.59 0 0 1-12.482-5.172L168.204 193.273a17.654 17.654 0 0 1 24.965-24.964l149.804 149.804a17.632 17.632 0 0 1 3.852 19.249 17.645 17.645 0 0 1-6.512 7.927 17.642 17.642 0 0 1-9.822 2.961z\" data-original=\"#000000\"\/><\/svg><br \/>\n                    <span>Clear all filters<\/span>\n                <\/div>\n<\/p><\/div>\n<div class=\"legend-list\">\n                <span class=\"legend-title\">Key to coatings:<\/span><\/p>\n<div class=\"legend legend-z\">\n<div class=\"legend-icon\"><span>Z<\/span><\/div>\n<div class=\"legend-desc\"><span>Zinc-plated<\/span><\/div>\n<\/p><\/div>\n<div class=\"legend legend-zm\">\n<div class=\"legend-icon\"><span>ZM<\/span><\/div>\n<div class=\"legend-desc\"><span>Zinc-magnesium<\/span><\/div>\n<\/p><\/div>\n<div class=\"legend legend-az\">\n<div class=\"legend-icon\"><span>AZ<\/span><\/div>\n<div class=\"legend-desc\"><span>Aluzinc<\/span><\/div>\n<\/p><\/div>\n<div class=\"legend legend-p\">\n<div class=\"legend-icon\"><span>P<\/span><\/div>\n<div class=\"legend-desc\"><span>Pre-painted<\/span><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"product-listing\">\n<div class=\"products-loader\">\n                <a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a><a href=\"#\">\n            <div class=\"product-card\">\n                <div class=\"card-img\">\n                    <img decoding=\"async\" src=\"\/wp-content\/uploads\/demo-img.jpg\" width=\"182\" height=\"168\" loading=\"lazy\">\n                <\/div>\n                <div class=\"card-title\">\n                    <span><\/span>\n                <\/div>\n            <\/div>\n        <\/a>\n            <\/div>\n<div class=\"products hide\" id=\"productList\"><\/div>\n<div class=\"pagination\">\n                <a href=\"#\" class=\"prev disabled\">&laquo;<\/a><br \/>\n                <a href=\"#\" class=\"page fake-page\" data-page=\"-1\"><\/p>\n<div class=\"loader\"><\/div>\n<p>                <\/a><br \/>\n                <a href=\"#\" class=\"next\" data-page=\"2\">&raquo;<\/a>\n            <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<p><script>\njQuery(document).ready(function ($) {<\/p>\n<p>    const currentLang = 'en';<\/p>\n<p>    const ajaxUrl = window.ajaxurl || '\/wp-admin\/admin-ajax.php';<\/p>\n<p>    const translations = {\n        it: {\n            noProducts: 'Nessun prodotto per i filtri selezionati.',\n            totalPages: 'pagine totali',\n            goTo: 'Vai a'\n        },\n        en: {\n            noProducts: 'No products found for the selected filters.',\n            totalPages: 'total pages',\n            goTo: 'Go to'\n        }\n    };\n    const T = translations[currentLang] || translations.it; <\/p>\n<p>    function generateProductCards(products) {\n        return products.map(function (product) {\n            let legends = '';\n            const currentWebsiteUrl = window.location.origin;\n            const cleanedImageUrl = product.imageUrl.replaceAll(\"|Inscatolato.jpg\", \"\");\n            const imageUrl = `${currentWebsiteUrl}\/img-listino\/web\/${cleanedImageUrl}`;\n            let inscatolatoImage = '';\n            if (product.imageUrl.includes(\"|Inscatolato.jpg\")) {\n                const inscatolatoPart = product.imageUrl.split(\"|\")[1];\n                inscatolatoImage = `<img decoding=\"async\" class=\"profile-boxed\" src=\"${currentWebsiteUrl}\/img-listino\/web\/${inscatolatoPart}\" alt=\"${product.description}\" loading=\"lazy\">`;\n            }<\/p>\n<p>            const productUrlPrefix = currentLang === 'en' ? '\/en' : '';\n            const productDetailUrlPrefix = currentLang === 'en' ? 'product-detail' : 'dettaglio-prodotto';\n            const productUrl = `${productUrlPrefix}\/${productDetailUrlPrefix}\/${encodeURIComponent(product.id)}`;<\/p>\n<p>            if (product.coatingZn) legends += `<\/p>\n<div class=\"legend legend-z\">\n<div class=\"legend-icon\"><span>Z<\/span><\/div>\n<\/div>\n<p>`;\n            if (product.coatingZnMg) legends += `<\/p>\n<div class=\"legend legend-zm\">\n<div class=\"legend-icon\"><span>ZM<\/span><\/div>\n<\/div>\n<p>`;\n            if (product.coatingAlZn) legends += `<\/p>\n<div class=\"legend legend-az\">\n<div class=\"legend-icon\"><span>AZ<\/span><\/div>\n<\/div>\n<p>`;\n            if (product.coatingPrev) legends += `<\/p>\n<div class=\"legend legend-p\">\n<div class=\"legend-icon\"><span>P<\/span><\/div>\n<\/div>\n<p>`;<\/p>\n<p>            return `\n                <a href=\"${productUrl}\"><\/p>\n<div class=\"product-card\">\n<div class=\"card-img\">\n                            <img decoding=\"async\" src=\"${imageUrl}\" alt=\"${product.description}\" width=\"182\" height=\"168\" loading=\"lazy\">\n                            ${inscatolatoImage}<\/p>\n<div class=\"card-info\">\n<div class=\"info-legend\">${legends}<\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"card-title\">\n                            <span>${product.description}<\/span>\n                        <\/div>\n<\/p><\/div>\n<p>                <\/a>`;\n        }).join('');\n    }<\/p>\n<p>    function updatePagination(totalPages, currentPage) {\n        let paginationHtml = '';\n        paginationHtml += currentPage > 1 ? `<a href=\"#\" class=\"prev\" data-page=\"${currentPage - 1}\">&laquo;<\/a>` : `<a href=\"#\" class=\"prev disabled\">&laquo;<\/a>`;\n        if (totalPages <= 5) {\n            for (let pageNumber = 1; pageNumber <= totalPages; pageNumber++) {\n                paginationHtml += `<a href=\"#\" class=\"page${pageNumber === currentPage ? ' active' : ''}\" data-page=\"${pageNumber}\">${pageNumber}<\/a>`;\n            }\n        } else {\n            paginationHtml += `<a href=\"#\" class=\"page${currentPage === 1 ? ' active' : ''}\" data-page=\"1\">1<\/a>`;\n            if (currentPage > 3) paginationHtml += `<span class=\"dots\">...<\/span>`;\n            let pagesToShow = [];\n            if (currentPage <= 3) pagesToShow = [2, 3];\n            else if (currentPage >= totalPages - 2) pagesToShow = [totalPages - 2, totalPages - 1];\n            else pagesToShow = [currentPage - 1, currentPage, currentPage + 1];\n            pagesToShow.forEach(function (pageNumber) {\n                if (pageNumber > 1 && pageNumber < totalPages) {\n                    paginationHtml += `<a href=\"#\" class=\"page${pageNumber === currentPage ? ' active' : ''}\" data-page=\"${pageNumber}\">${pageNumber}<\/a>`;\n                }\n            });\n            if (currentPage < totalPages - 2) paginationHtml += `<span class=\"dots\">...<\/span>`;\n            paginationHtml += `<a href=\"#\" class=\"page${currentPage === totalPages ? ' active' : ''}\" data-page=\"${totalPages}\">${totalPages}<\/a>`;\n        }\n        paginationHtml += currentPage < totalPages ? `<a href=\"#\" class=\"next\" data-page=\"${currentPage + 1}\">&raquo;<\/a>` : `<a href=\"#\" class=\"next disabled\">&raquo;<\/a>`;<\/p>\n<p>        paginationHtml += `<\/p>\n<div class=\"page_num-indicator\"><strong>${totalPages}<\/strong> ${T.totalPages} - <span>${T.goTo} <input id=\"pageInput\" type=\"number\" min=\"1\" max=\"${totalPages}\" placeholder=\"1-${totalPages}\"><\/span><\/div>\n<p>`;\n        return paginationHtml;\n    }<\/p>\n<p>    function fetchProducts(page = 1) {\n        updateUrlWithPage(page);\n        $('.product-listing .products').addClass('hide');\n        $('.product-listing .products-loader').removeClass('hide');<\/p>\n<p>        const categoryFilter = $('#filter-product_cat').val();\n        const subcategoryFilter = $('#filter-product_subcat').val();\n        const lengthFilter = $('#filter-product_length').val();\n        const coatingFilter = $('#filter-product_coating').val();\n        const profileFilter = $('#filter-product_profile').val();\n        const shoulderFilter = $(\"#filter-product_shoulder\").val();\n        const widthFilter = $(\"#filter-product_width\").val();\n        const searchQuery = $('#search').val().trim();<\/p>\n<p>        $.ajax({\n            url: ajaxUrl,\n            type: 'POST',\n            data: {\n                action: 'parse_json_codes',\n                lang: currentLang, \n                page_number: page,\n                items_per_page: 24,\n                category: categoryFilter,\n                subcategory: subcategoryFilter,\n                length: lengthFilter,\n                coating: coatingFilter,\n                profile: profileFilter,\n                shoulder: shoulderFilter,\n                width: widthFilter,\n                search_query: searchQuery,\n            },\n            success: function (response) {\n                if (response.success) {\n                    const paginationHtml = updatePagination(response.data.total_pages, response.data.current_page);\n                    $('.pagination').html(paginationHtml);\n                    if (response.data.data.length > 0) {\n                        const productsHtml = generateProductCards(response.data.data);\n                        $('.product-listing .products').html(productsHtml);\n                        updatePageInput(response.data.total_pages);\n                        $('.product-listing .products').removeClass('hide');\n                        $('.product-listing .products-loader').addClass('hide');<\/p>\n<p>                        if (typeof lenis !== 'undefined') {\n                            lenis.scrollTo(\"#productList\", { offset: ($(\"#masthead\").innerHeight() * -1 - 20) });\n                        }\n                    } else {<\/p>\n<p>                        const noProductsHtml = `<\/p>\n<div class=\"no-products-message\"><span>${T.noProducts}<\/span><\/div>\n<p>`;\n                        $('.product-listing .products').html(noProductsHtml);\n                        $('.product-listing .products').removeClass('hide');\n                        $('.product-listing .products-loader').addClass('hide');\n                    }\n                } else {\n                    console.error('Error:', response.data.message);\n                    $('.product-listing .products-loader').addClass('hide');\n                    $('.product-listing .products').removeClass('hide');\n                }\n            },\n            error: function () {\n                $('.product-listing .products-loader').addClass('hide');\n                $('.product-listing .products').removeClass('hide');\n                console.error('AJAX request failed.');\n            }\n        });\n    }<\/p>\n<p>    function fetchFilters() {\n        disableFilters();\n        const urlParams = new URLSearchParams(window.location.search);\n        const categoryFilter = urlParams.get('category') || '';\n        const subcategoryFilter = urlParams.get('subcategory') || '';\n        const lengthFilter = urlParams.get('length') || '';\n        const searchQuery = urlParams.get('query') || '';\n        const initialPage = parseInt(urlParams.get('page_num'), 10) || 1;\n        const coatingFilter = urlParams.get('coating') || '';\n        const profileFilter = urlParams.get('profile') || '';\n        const shoulderFilter = urlParams.get('shoulder') || '';\n        const widthFilter = urlParams.get('width') || '';<\/p>\n<p>        $('#filter-product_coating').val(coatingFilter);<\/p>\n<p>        const categoryContainer = $('#filter-product_cat').closest('.filter-container');\n        const subcategoryContainer = $('#filter-product_subcat').closest('.filter-container');\n        const lengthContainer = $('#filter-product_length').closest('.filter-container');\n        const coatingContainer = $('#filter-product_coating').closest('.filter-container');\n        const profileContainer = $('#filter-product_profile').closest('.filter-container');\n        const shoulderContainer = $('#filter-product_shoulder').closest('.filter-container');\n        const widthContainer = $('#filter-product_width').closest('.filter-container');\n        const searchContainer = $('#search').closest('.filter-container');<\/p>\n<p>        if (categoryFilter) categoryContainer.addClass('active'); else categoryContainer.removeClass('active');\n        if (subcategoryFilter) subcategoryContainer.addClass('active'); else subcategoryContainer.removeClass('active');\n        if (lengthFilter) lengthContainer.addClass('active'); else lengthContainer.removeClass('active');\n        if (coatingFilter) coatingContainer.addClass('active'); else coatingContainer.removeClass('active');\n        if (profileFilter) profileContainer.addClass('active'); else profileContainer.removeClass('active');\n        if (shoulderFilter) shoulderContainer.addClass('active'); else shoulderContainer.removeClass('active');\n        if (widthFilter) widthContainer.addClass('active'); else widthContainer.removeClass('active');\n        if (searchQuery) searchContainer.addClass('active'); else searchContainer.removeClass('active');<\/p>\n<p>        $.ajax({\n            url: ajaxUrl,\n            type: 'POST',\n            data: {\n                action: 'parse_json_filters',\n                lang: currentLang, \n                category: categoryFilter,\n                subcategory: subcategoryFilter,\n                length: lengthFilter,\n                profile: profileFilter,\n                shoulder: shoulderFilter,\n                width: widthFilter,\n                search_query: searchQuery\n            },\n            success: function (response) {\n                enableFilters();\n                if (response.success) {\n                    const filters = response.data.filters;\n                    if(categoryFilter == 'Botole' || categoryFilter == 'Pendini' || categoryFilter == 'Viti') {\n                        filters.subcategories = [];\n                    }\n                    populateSelect($('#filter-product_cat'), filters.categories);\n                    populateSelect($('#filter-product_subcat'), filters.subcategories);\n                    populateSelect($('#filter-product_length'), filters.lengths);\n                    populateSelect($('#filter-product_shoulder'), filters.shoulders);\n                    populateSelect($('#filter-product_width'), filters.widths);\n                    populateSelect($('#filter-product_profile'), filters.profiles);<\/p>\n<p>                    $('#filter-product_cat').val(categoryFilter);\n                    $('#filter-product_subcat').val(subcategoryFilter);\n                    $('#filter-product_length').val(lengthFilter);\n                    $('#filter-product_profile').val(profileFilter);\n                    $('#filter-product_shoulder').val(shoulderFilter);\n                    $('#filter-product_width').val(widthFilter);<\/p>\n<p>                    if (categoryFilter || subcategoryFilter || lengthFilter || profileFilter || shoulderFilter || widthFilter) {\n                        showFilterReset();\n                    }\n                    fetchProducts(initialPage);\n                } else {\n                    console.error('Error fetching filters:', response.data.message);\n                }\n            },\n            error: function () {\n                enableFilters();\n                console.error('AJAX request for filters failed.');\n            }\n        });\n    }<\/p>\n<p>    function populateSelect(selectElement, values) {\n        const selectedValue = selectElement.val();\n        const firstOption = selectElement.find('option:first');\n        selectElement.empty().append(firstOption);\n        let valueExists = false;\n        if (values && values.length > 0) {\n            values.forEach(function (value) {\n                const optionElement = $('<option>', { value: value, text: value });\n                if (value === selectedValue) {\n                    valueExists = true;\n                }\n                selectElement.append(optionElement);\n            });\n            if (valueExists) {\n                selectElement.val(selectedValue);\n            } else if (selectedValue) {\n                selectElement.append($('<option>', { value: selectedValue, text: selectedValue, selected: true }));\n            }\n            selectElement.prop('disabled', false);\n        } else {\n            if (selectedValue) {\n                selectElement.append($('<option>', { value: selectedValue, text: selectedValue, selected: true }));\n            }\n            selectElement.prop('disabled', true);\n        }\n    }<\/p>\n<p>    $('.filter').each(function () {\n        $(this).on('change', function () {\n            const container = $(this).closest('.filter-container');\n            if ($(this).val()) {\n                container.addClass('active');\n            } else {\n                container.removeClass('active');\n            }\n            showFilterReset();\n            removePageParam();\n            updateUrlWithFilters();\n            fetchFilters();\n        });\n    });<\/p>\n<p>    $('.filter-cancel').each(function () {\n        $(this).on('click', function () {\n            const filterContainer = $(this).closest('.filter-container');\n            const selectElement = filterContainer.find('.filter');\n            const searchInput = filterContainer.find('#search');\n            if (selectElement.length && selectElement.val() !== '') {\n                selectElement.val('');\n            } else if (searchInput.length && searchInput.val() !== '') {\n                searchInput.val('');\n                updateUrlWithSearch('');\n            }\n            filterContainer.removeClass('active');\n            removePageParam();\n            updateUrlWithFilters();\n            fetchFilters();\n        });\n    });<\/p>\n<p>    function removePageParam() {\n        const params = new URLSearchParams(window.location.search);\n        params.delete('page_num');\n        const newUrl = window.location.pathname + '?' + params.toString();\n        window.history.pushState({}, '', newUrl);\n    }<\/p>\n<p>    $(window).on('popstate', function() {\n        fetchFilters();\n    });<\/p>\n<p>    initializeFilterResetListener();\n    initializeSearch();\n    fetchFilters();<\/p>\n<p>    function initializeSearch() {\n        const searchParams = new URLSearchParams(window.location.search);\n        const searchQuery = searchParams.get('query');\n        if (searchQuery) {\n            $('#search').val(searchQuery);\n            showFilterReset();\n        }\n    }<\/p>\n<p>    $('body').on('click', '.pagination a', function (e) {\n        e.preventDefault();\n        const page = $(this).data('page');\n        if (page) {\n            fetchProducts(page);\n        }\n    });<\/p>\n<p>    function initializeFilterResetListener() {\n        const filterResetButton = document.querySelector('.filter-reset');\n        if (filterResetButton) {\n            filterResetButton.addEventListener('click', () => {\n                handleFilterResetClick(filterResetButton);\n            });\n        }\n    }<\/p>\n<p>    function handleFilterResetClick(button) {\n        button.classList.add('hide');\n        document.querySelectorAll('select.filter').forEach(select => {\n            if (select.options.length > 0) select.value = select.options[0].value;\n        });\n        document.querySelectorAll('.filter-container').forEach(container => {\n            container.classList.remove('active');\n        });\n        const searchInput = document.getElementById('search');\n        if (searchInput) {\n            searchInput.value = '';\n        }\n        window.history.pushState({}, '', window.location.pathname);\n        fetchFilters();\n    }<\/p>\n<p>    function showFilterReset() {\n        const filterResetButton = document.querySelector('.filter-reset');\n        if (filterResetButton) {\n            filterResetButton.classList.remove('hide');\n        }\n    }<\/p>\n<p>    function hideFilterReset() {\n        const filterResetButton = document.querySelector('.filter-reset');\n        if (filterResetButton) {\n            filterResetButton.classList.add('hide');\n        }\n    }<\/p>\n<p>    function updatePageInput(totalPages) {\n        const pageInput = document.getElementById(\"pageInput\");\n        if(pageInput) {\n            pageInput.addEventListener(\"keydown\", function (event) {\n                if (event.key === \"Enter\") {\n                    handlePageNavigation(pageInput.value, totalPages);\n                }\n            });\n        }\n    }<\/p>\n<p>    function handlePageNavigation(value, totalPages) {\n        const pageNumber = parseInt(value, 10);\n        if (pageNumber >= 1 && pageNumber <= totalPages) {\n            fetchProducts(pageNumber);\n        } else if (value) {\n            console.log(`Invalid value for input: ${value}`);\n        }\n    }\n\n    function disableFilters() {\n        const filters = document.querySelector('.product-filters');\n        if (filters) {\n            filters.classList.add('disabled');\n        }\n    }\n\n    function enableFilters() {\n        const filters = document.querySelector('.product-filters');\n        if (filters) {\n            filters.classList.remove('disabled');\n        }\n    }\n\n    function updateUrlWithFilters() {\n        const category = $('#filter-product_cat').val();\n        const subcategory = $('#filter-product_subcat').val();\n        const length = $('#filter-product_length').val();\n        const coating = $('#filter-product_coating').val();\n        const profile = $('#filter-product_profile').val();\n        const shoulder = $('#filter-product_shoulder').val();\n        const width = $('#filter-product_width').val();\n        const params = new URLSearchParams(window.location.search);\n\n        const categoryContainer = $('#filter-product_cat').parent('.filter-container');\n        const subcategoryContainer = $('#filter-product_subcat').parent('.filter-container');\n        const lengthContainer = $('#filter-product_length').parent('.filter-container');\n        const coatingContainer = $('#filter-product_coating').parent('.filter-container');\n        const profileContainer = $('#filter-product_profile').parent('.filter-container');\n        const shoulderContainer = $('#filter-product_shoulder').closest('.filter-container');\n        const widthContainer = $('#filter-product_width').closest('.filter-container');\n\n        if (category) { params.set('category', category); categoryContainer.addClass('active'); } \n        else { params.delete('category'); categoryContainer.removeClass('active'); }\n        if (subcategory) { params.set('subcategory', subcategory); subcategoryContainer.addClass('active'); } \n        else { params.delete('subcategory'); subcategoryContainer.removeClass('active'); }\n        if (length) { params.set('length', length); lengthContainer.addClass('active'); } \n        else { params.delete('length'); lengthContainer.removeClass('active'); }\n        if (coating) { params.set('coating', coating); coatingContainer.addClass('active'); } \n        else { params.delete('coating'); coatingContainer.removeClass('active'); }\n        if (profile) { params.set('profile', profile); profileContainer.addClass('active'); } \n        else { params.delete('profile'); profileContainer.removeClass('active'); }\n        if (shoulder) { params.set('shoulder', shoulder); shoulderContainer.addClass('active'); } \n        else { params.delete('shoulder'); shoulderContainer.removeClass('active'); }\n        if (width) { params.set('width', width); widthContainer.addClass('active'); } \n        else { params.delete('width'); widthContainer.removeClass('active'); }\n\n        const newUrl = window.location.pathname + '?' + params.toString();\n        window.history.pushState({}, '', newUrl);\n    }\n\n    function updateUrlWithPage(page) {\n        const params = new URLSearchParams(window.location.search);\n        if (page > 1) {\n            params.set('page_num', page);\n        } else {\n            params.delete('page_num');\n        }\n        const newUrl = window.location.pathname + '?' + params.toString();\n        window.history.pushState({}, '', newUrl);\n    }<\/p>\n<p>    $('#search').on('input', function () {\n        const searchInput = $(this);\n        const filterContainer = searchInput.closest('.filter-container');\n        const query = searchInput.val().trim();<\/p>\n<p>        clearTimeout(searchInput.data('timeout'));\n        searchInput.data('timeout', setTimeout(function() {\n            removePageParam();\n            updateUrlWithSearch(query);\n            if (query.length === 0) {\n                hideFilterReset();\n                filterContainer.removeClass('active');\n            } else {\n                showFilterReset();\n                filterContainer.addClass('active');\n            }\n            if (query.length >= 3 || query.length === 0) {\n                fetchFilters();\n            }\n        }, 500));\n    });<\/p>\n<p>    function updateUrlWithSearch(query) {\n        const params = new URLSearchParams(window.location.search);\n        if (query) {\n            params.set('query', query);\n        } else {\n            params.delete('query');\n        }\n        const newUrl = window.location.pathname + '?' + params.toString();\n        window.history.pushState({}, '', newUrl);\n    }\n});\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Products A comprehensive range for every requirement. Lupato specialises in manufacturing high-strength metal structures. Use the filters below to identify the product you want more easily: Product category Type Width Conventional\/Reinforced Clear all filters Key to coatings: Z Zinc-plated ZM Zinc-magnesium AZ Aluzinc P Pre-painted &laquo; &raquo;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-product-list.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2645","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Products list - Lupato<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lupato.it\/en\/products-list\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Products list - Lupato\" \/>\n<meta property=\"og:description\" content=\"Products A comprehensive range for every requirement. Lupato specialises in manufacturing high-strength metal structures. Use the filters below to identify the product you want more easily: Product category Type Width Conventional\/Reinforced Clear all filters Key to coatings: Z Zinc-plated ZM Zinc-magnesium AZ Aluzinc P Pre-painted &laquo; &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lupato.it\/en\/products-list\/\" \/>\n<meta property=\"og:site_name\" content=\"Lupato\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-23T14:02:44+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/products-list\\\/\",\"url\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/products-list\\\/\",\"name\":\"Products list - Lupato\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/#website\"},\"datePublished\":\"2025-01-27T08:43:29+00:00\",\"dateModified\":\"2025-07-23T14:02:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/products-list\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lupato.it\\\/en\\\/products-list\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/products-list\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Products list\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/\",\"name\":\"Lupato\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lupato.it\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Products list - Lupato","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lupato.it\/en\/products-list\/","og_locale":"en_US","og_type":"article","og_title":"Products list - Lupato","og_description":"Products A comprehensive range for every requirement. Lupato specialises in manufacturing high-strength metal structures. Use the filters below to identify the product you want more easily: Product category Type Width Conventional\/Reinforced Clear all filters Key to coatings: Z Zinc-plated ZM Zinc-magnesium AZ Aluzinc P Pre-painted &laquo; &raquo;","og_url":"https:\/\/www.lupato.it\/en\/products-list\/","og_site_name":"Lupato","article_modified_time":"2025-07-23T14:02:44+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lupato.it\/en\/products-list\/","url":"https:\/\/www.lupato.it\/en\/products-list\/","name":"Products list - Lupato","isPartOf":{"@id":"https:\/\/www.lupato.it\/en\/#website"},"datePublished":"2025-01-27T08:43:29+00:00","dateModified":"2025-07-23T14:02:44+00:00","breadcrumb":{"@id":"https:\/\/www.lupato.it\/en\/products-list\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lupato.it\/en\/products-list\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lupato.it\/en\/products-list\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lupato.it\/en\/"},{"@type":"ListItem","position":2,"name":"Products list"}]},{"@type":"WebSite","@id":"https:\/\/www.lupato.it\/en\/#website","url":"https:\/\/www.lupato.it\/en\/","name":"Lupato","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lupato.it\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/pages\/2645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/comments?post=2645"}],"version-history":[{"count":9,"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/pages\/2645\/revisions"}],"predecessor-version":[{"id":2674,"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/pages\/2645\/revisions\/2674"}],"wp:attachment":[{"href":"https:\/\/www.lupato.it\/en\/wp-json\/wp\/v2\/media?parent=2645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}