{"id":2540,"date":"2026-05-23T15:30:15","date_gmt":"2026-05-23T15:30:15","guid":{"rendered":"https:\/\/millepiani.com\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/"},"modified":"2026-09-15T17:51:32","modified_gmt":"2026-09-15T17:51:32","slug":"%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b","status":"publish","type":"page","link":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/","title":{"rendered":"\u0414\u0412\u0418\u0416\u0423\u0429\u0418\u0415\u0421\u042f \u0414\u041e\u0420\u041e\u0416\u041a\u0418 \u0418 \u042d\u0421\u041a\u0410\u041b\u0410\u0422\u041e\u0420\u042b"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2540\" class=\"elementor elementor-2540 elementor-340\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7d2e8cd e-con-full e-flex e-con e-parent\" data-id=\"7d2e8cd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-954048c elementor-widget elementor-widget-html\" data-id=\"954048c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"mp-scale-page\">\r\n\r\n  <!-- HERO -->\r\n  <section class=\"mp-sm-hero\" id=\"top\">\r\n    <div class=\"mp-sm-hero-bg\"><\/div>\r\n    <div class=\"mp-sm-hero-overlay\"><\/div>\r\n\r\n    <div class=\"mp-sm-hero-content mp-reveal\">\r\n      <p class=\"mp-kicker\">\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u0430\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/p>\r\n\r\n      <h1>\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438<br\/>\u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b<\/h1>\r\n\r\n      <p>\r\n \u0411\u0435\u0441\u0448\u0443\u043c\u043d\u044b\u0435, \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u044b\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u043b\u044e\u0434\u0435\u0439\r\n \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u043e\u0442\u0435\u043b\u044f\u0445, \u043e\u0444\u0438\u0441\u0430\u0445, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430\u0445, \u043d\u0430 \u0432\u043e\u043a\u0437\u0430\u043b\u0430\u0445, \u0432 \u043c\u0435\u0442\u0440\u043e \u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445.\r\n \u0421\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438.\r\n      <\/p>\r\n\r\n      <a href=\"#preventivo\" class=\"mp-outline-btn\">\u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442<\/a>\r\n    <\/div>\r\n\r\n    <a href=\"#linea-scale\" class=\"mp-scroll-arrow\" aria-label=\"Scorri alla sezione successiva\">\r\n      <span><\/span>\r\n    <\/a>\r\n  <\/section>\r\n\r\n\r\n  <!-- INTRO -->\r\n  <section class=\"mp-sm-intro\" id=\"linea-scale\">\r\n    <div class=\"mp-container\">\r\n\r\n      <div class=\"mp-section-heading mp-reveal\">\r\n        <p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430\u0441<\/p>\r\n        <h2>\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b<br\/>Millepiani<\/h2>\r\n      <\/div>\r\n\r\n      <div class=\"mp-intro-text mp-reveal\">\r\n        <p>\r\n \u0421\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439\r\n \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0410\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e\r\n \u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0430\u043a\u0446\u0435\u043d\u0442\u043e\u043c \u043d\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u043c\u0444\u043e\u0440\u0442 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u0431\u0435\u0441\u0448\u0443\u043c\u043d\u043e\u0441\u0442\u044c, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c,\r\n \u044d\u0441\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b. \r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"mp-features-grid\">\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M3 19h18\"><\/path>\r\n              <path d=\"M5 16h4l2-3h4l2-3h2\"><\/path>\r\n              <path d=\"M6 16v3\"><\/path>\r\n              <path d=\"M11 13v6\"><\/path>\r\n              <path d=\"M16 10v9\"><\/path>\r\n            <\/path><\/path><\/path><\/path><\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u0411\u0435\u0441\u0448\u0443\u043c\u043d\u044b\u0435<\/h3>\r\n          <p>\u0420\u0435\u0448\u0435\u043d\u0438\u044f, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0438 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0448\u0443\u043c\u0430.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M12 3l7 4v5c0 5-3.5 8-7 9-3.5-1-7-4-7-9V7l7-4z\"><\/path>\r\n              <path d=\"M9 12l2 2 4-5\"><\/path>\r\n            <\/path><\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435<\/h3>\r\n          <p>\u0421\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u0437\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u043c EN115 \u0438 \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M4 17c4-6 12-6 16 0\"><\/path>\r\n              <path d=\"M7 14c3-3 7-3 10 0\"><\/path>\r\n              <path d=\"M12 20h.01\"><\/path>\r\n            <\/path><\/path><\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u041f\u043b\u0430\u0432\u043d\u044b\u0435<\/h3>\r\n          <p>\u041e\u0431\u043b\u0435\u0433\u0447\u0430\u044e\u0442 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u0443\u044e \u0446\u0438\u0440\u043a\u0443\u043b\u044f\u0446\u0438\u044e \u043b\u044e\u0434\u0435\u0439 \u0432 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f\u0445 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M13 2L4 14h7l-1 8 10-13h-7V2z\"><\/path>\r\n            <\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435<\/h3>\r\n          <p>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0441 \u0440\u0435\u0436\u0438\u043c\u0430\u043c\u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, Soft and Go \u0438 Stop and Go.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M4 20h16\"><\/path>\r\n              <path d=\"M7 17l10-10\"><\/path>\r\n              <path d=\"M8 7h9v9\"><\/path>\r\n            <\/path><\/path><\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435<\/h3>\r\n          <p>\u041f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432, \u043c\u0435\u0442\u0440\u043e \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-feature-card mp-reveal\">\r\n          <span class=\"mp-feature-icon\">\r\n            <svg viewbox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M4 4h16v16H4z\"><\/path>\r\n              <path d=\"M8 8h8v8H8z\"><\/path>\r\n              <path d=\"M12 4v4\"><\/path>\r\n              <path d=\"M12 16v4\"><\/path>\r\n              <path d=\"M4 12h4\"><\/path>\r\n              <path d=\"M16 12h4\"><\/path>\r\n            <\/path><\/path><\/path><\/path><\/path><\/path><\/svg>\r\n          <\/span>\r\n          <h3>\u0418\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0435<\/h3>\r\n          <p>\u041e\u0442\u0434\u0435\u043b\u043a\u0430, \u043f\u043e\u0440\u0443\u0447\u043d\u0438, \u0431\u0430\u043b\u044e\u0441\u0442\u0440\u0430\u0434\u044b, \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443.<\/p>\r\n        <\/article>\r\n\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n  <!-- 3D EXPERIENCE -->\r\n  <section class=\"mp-3d-section\" id=\"flow-experience\">\r\n    <div class=\"mp-3d-bg\"><\/div>\r\n    <div class=\"mp-3d-grid\"><\/div>\r\n\r\n    <div class=\"mp-3d-copy\">\r\n      <p id=\"mp3dKicker\">\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S<\/p>\r\n\r\n      <h2 id=\"mp3dTitle\">\r\n \u041f\u043e\u0442\u043e\u043a \u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442<br\/> \u0444\u043e\u0440\u043c\u0443 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\r\n      <\/h2>\r\n\r\n      <p id=\"mp3dText\">\r\n \u0411\u0435\u0441\u0448\u0443\u043c\u043d\u043e\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432\r\n \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u0438\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f.\r\n      <\/p>\r\n\r\n      <div class=\"mp-3d-tags\" id=\"mp3dTags\">\r\n        <span>Indoor \/ Outdoor<\/span>\r\n        <span>EN115<\/span>\r\n        <span>\u041a\u043e\u043c\u0444\u043e\u0440\u0442<\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"mp-3d-canvas-wrap\">\r\n      <canvas id=\"mpThreeEscalator\" aria-label=\"Modello 3D interattivo di scala mobile\"><\/canvas>\r\n\r\n      <div class=\"mp-3d-fallback\" id=\"mp3dFallback\">\r\n        <strong>3D-\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430<\/strong>\r\n        <span>\u0411\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 WebGL \u0438\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 Three.js \u043d\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430.<\/span>\r\n      <\/div>\r\n\r\n      <button class=\"mp-3d-hotspot is-active\" type=\"button\" data-point=\"safety\" style=\"--x: 18%; --y: 63%;\">\r\n        <i><\/i>\r\n        <span>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/span>\r\n      <\/button>\r\n\r\n      <button class=\"mp-3d-hotspot\" type=\"button\" data-point=\"comfort\" style=\"--x: 42%; --y: 44%;\">\r\n        <i><\/i>\r\n        <span>\u041a\u043e\u043c\u0444\u043e\u0440\u0442<\/span>\r\n      <\/button>\r\n\r\n      <button class=\"mp-3d-hotspot\" type=\"button\" data-point=\"design\" style=\"--x: 69%; --y: 33%;\">\r\n        <i><\/i>\r\n        <span>\u0414\u0438\u0437\u0430\u0439\u043d<\/span>\r\n      <\/button>\r\n\r\n      <button class=\"mp-3d-hotspot\" type=\"button\" data-point=\"operation\" style=\"--x: 78%; --y: 56%;\">\r\n        <i><\/i>\r\n        <span>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/span>\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <div class=\"mp-3d-panel\">\r\n      <div class=\"mp-3d-switch\">\r\n        <button class=\"is-active\" type=\"button\" data-solution=\"s\">\r\n          <span>01<\/span>\r\n \u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S\r\n        <\/button>\r\n\r\n        <button type=\"button\" data-solution=\"splus\">\r\n          <span>02<\/span>\r\n \u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S+\r\n        <\/button>\r\n\r\n        <button type=\"button\" data-solution=\"st\">\r\n          <span>03<\/span>\r\n \u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440 ST\r\n        <\/button>\r\n      <\/div>\r\n\r\n      <div class=\"mp-3d-info-card\" id=\"mp3dInfoCard\">\r\n        <p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/p>\r\n        <h3>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/h3>\r\n        <span>\r\n \u0421\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u0430\u043a \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0433\u0440\u0435\u0431\u0435\u043d\u043e\u043a,\r\n \u043f\u043e\u0440\u0443\u0447\u043d\u0435\u0439, \u0446\u0435\u043f\u0435\u0439, \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u043c\u0430\u0440\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u0435\u0439.\r\n        <\/span>\r\n      <\/div>\r\n\r\n      <div class=\"mp-3d-mode-row\">\r\n        <button class=\"is-active\" type=\"button\" data-mode=\"continuo\">\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439<\/button>\r\n        <button type=\"button\" data-mode=\"soft\">Soft and Go<\/button>\r\n        <button type=\"button\" data-mode=\"stop\">Stop and Go<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"mp-3d-dashboard\">\r\n      <div>\r\n        <span>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/span>\r\n        <strong id=\"mpDashSolution\">\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S<\/strong>\r\n      <\/div>\r\n\r\n      <div>\r\n        <span>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<\/span>\r\n        <strong id=\"mpDashContext\">\u041d\u0438\u0437\u043a\u0438\u0439 \/ \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a<\/strong>\r\n      <\/div>\r\n\r\n      <div>\r\n        <span>\u0420\u0435\u0436\u0438\u043c<\/span>\r\n        <strong id=\"mpDashMode\">\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439<\/strong>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n\r\n  <!-- AMBITI -->\r\n  <section class=\"mp-sectors-section\">\r\n    <div class=\"mp-container\">\r\n\r\n      <div class=\"mp-sectors-heading mp-reveal\">\r\n        <p>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/p>\r\n        <h2>\u0420\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f<br\/>\u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430<\/h2>\r\n      <\/div>\r\n\r\n      <div class=\"mp-sectors-grid\">\r\n\r\n        <article class=\"mp-sector-card mp-reveal\">\r\n          <span>01<\/span>\r\n          <h3>\u0422\u043e\u0440\u0433\u043e\u0432\u044b\u0435 \u0446\u0435\u043d\u0442\u0440\u044b<\/h3>\r\n          <p>\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u0430, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-sector-card mp-reveal\">\r\n          <span>02<\/span>\r\n          <h3>\u041e\u0442\u0435\u043b\u0438 \u0438 \u043e\u0444\u0438\u0441\u044b<\/h3>\r\n          <p>\u0411\u0435\u0441\u0448\u0443\u043c\u043d\u044b\u0435, \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-sector-card mp-reveal\">\r\n          <span>03<\/span>\r\n          <h3>\u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u044b \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u044b<\/h3>\r\n          <p>\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\r\n        <\/article>\r\n\r\n        <article class=\"mp-sector-card mp-reveal\">\r\n          <span>04<\/span>\r\n          <h3>\u041c\u0435\u0442\u0440\u043e\u043f\u043e\u043b\u0438\u0442\u0435\u043d<\/h3>\r\n          <p>\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b S+, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438.<\/p>\r\n        <\/article>\r\n\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a7ffae elementor-widget elementor-widget-shortcode\" data-id=\"0a7ffae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><section class=\"section mp-quote-section\" id=\"preventivo\">\r\n  <div class=\"mp-quote-bg\"><\/div>\r\n  <div class=\"mp-quote-overlay\"><\/div>\r\n\r\n  <div class=\"mp-quote-inner\">\r\n    <div class=\"mp-quote-info\">\r\n      <p class=\"mp-quote-kicker\">\u0421\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u043c\u0438<\/p>\r\n\r\n      <h2 class=\"mp-quote-title\">\r\n        \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0435<br>\r\n        \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0440\u0430\u0441\u0447\u0451\u0442<br>\r\n        \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438\r\n      <\/h2>\r\n\r\n      <p class=\"mp-quote-description\">\r\n        \u0412\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0446\u0438\u044f \u0438\u043b\u0438 \u0432\u044b \u0438\u0449\u0435\u0442\u0435 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435,\r\n        \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0430\u0441? \u0421\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043d\u0430\u043c\u0438:\r\n        \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u0438 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435,\r\n        \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0430\u0448\u0438\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c.\r\n      <\/p>\r\n\r\n      <div class=\"mp-quote-contacts\">\r\n        <a href=\"tel:+390296690901\" class=\"mp-quote-contact\">\r\n          <span class=\"mp-quote-contact-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2A19.86 19.86 0 0 1 11.19 19 19.5 19.5 0 0 1 5 12.81 19.86 19.86 0 0 1 2.08 4.18 2 2 0 0 1 4.06 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.62 2.63a2 2 0 0 1-.45 2.11L8 9.69a16 16 0 0 0 6.31 6.31l1.23-1.23a2 2 0 0 1 2.11-.45c.85.29 1.73.5 2.63.62A2 2 0 0 1 22 16.92z\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n\r\n          <span>\r\n            <strong>\u0422\u0435\u043b\u0435\u0444\u043e\u043d<\/strong>\r\n            +39 02 96690901\r\n          <\/span>\r\n        <\/a>\r\n\r\n        <a href=\"mailto:info@millepiani.com\" class=\"mp-quote-contact\">\r\n          <span class=\"mp-quote-contact-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\"><\/path>\r\n              <path d=\"m22 6-10 7L2 6\"><\/path>\r\n            <\/svg>\r\n          <\/span>\r\n\r\n          <span>\r\n            <strong>\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430<\/strong>\r\n            info@millepiani.com\r\n          <\/span>\r\n        <\/a>\r\n\r\n        <div class=\"mp-quote-contact\">\r\n          <span class=\"mp-quote-contact-icon\">\r\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\r\n              <path d=\"M21 10c0 7-9 12-9 12S3 17 3 10a9 9 0 1 1 18 0z\"><\/path>\r\n              <circle cx=\"12\" cy=\"10\" r=\"3\"><\/circle>\r\n            <\/svg>\r\n          <\/span>\r\n\r\n          <span>\r\n            <strong>\u041e\u0444\u0438\u0441<\/strong>\r\n            Via Della Longura, 21 Misinto MB\r\n          <\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"mp-quote-form-card\">\r\n      <form\r\n        class=\"mp-quote-form\"\r\n        id=\"mpQuoteForm\"\r\n        enctype=\"multipart\/form-data\"\r\n        data-success-url=\"\/grazie\/\"\r\n        novalidate\r\n      >\r\n        <div\r\n          class=\"mp-form-status\"\r\n          id=\"mpFormStatus\"\r\n          aria-live=\"polite\"\r\n        ><\/div>\r\n\r\n        <!-- \u0421\u043a\u0440\u044b\u0442\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0441\u043f\u0430\u043c\u0430 -->\r\n        <input\r\n          type=\"text\"\r\n          name=\"website\"\r\n          tabindex=\"-1\"\r\n          autocomplete=\"off\"\r\n          aria-hidden=\"true\"\r\n          style=\"position:absolute;left:-9999px;opacity:0;height:0;width:0;\"\r\n        >\r\n\r\n        <div class=\"mp-form-grid\">\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"text\"\r\n              name=\"name\"\r\n              id=\"mpName\"\r\n              placeholder=\" \"\r\n              required\r\n              autocomplete=\"given-name\"\r\n            >\r\n            <label for=\"mpName\">\u0418\u043c\u044f *<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"text\"\r\n              name=\"surname\"\r\n              id=\"mpSurname\"\r\n              placeholder=\" \"\r\n              required\r\n              autocomplete=\"family-name\"\r\n            >\r\n            <label for=\"mpSurname\">\u0424\u0430\u043c\u0438\u043b\u0438\u044f *<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"email\"\r\n              name=\"email\"\r\n              id=\"mpEmail\"\r\n              placeholder=\" \"\r\n              required\r\n              autocomplete=\"email\"\r\n            >\r\n            <label for=\"mpEmail\">\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430 *<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"tel\"\r\n              name=\"phone\"\r\n              id=\"mpPhone\"\r\n              placeholder=\" \"\r\n              required\r\n              autocomplete=\"tel\"\r\n            >\r\n            <label for=\"mpPhone\">\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <select name=\"role\" id=\"mpRole\">\r\n              <option value=\"\" selected>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435<\/option>\r\n              <option value=\"progettista\">\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a<\/option>\r\n              <option value=\"impresa_di_costruzioni\">\r\n                \u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\r\n              <\/option>\r\n              <option value=\"proprietario_edificio\">\r\n                \u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0437\u0434\u0430\u043d\u0438\u044f\r\n              <\/option>\r\n              <option value=\"amministratore_edificio\">\r\n                \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0434\u0430\u043d\u0438\u0435\u043c\r\n              <\/option>\r\n              <option value=\"consulente_ascensori\">\r\n                \u041a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u043f\u043e \u043b\u0438\u0444\u0442\u0430\u043c\r\n              <\/option>\r\n              <option value=\"ente_pubblico\">\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f<\/option>\r\n              <option value=\"cerco_lavoro\">\u0418\u0449\u0443 \u0440\u0430\u0431\u043e\u0442\u0443<\/option>\r\n              <option value=\"utente_passeggero\">\r\n                \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\/\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\r\n              <\/option>\r\n              <option value=\"studente\">\u0421\u0442\u0443\u0434\u0435\u043d\u0442<\/option>\r\n              <option value=\"altro\">\u0414\u0440\u0443\u0433\u043e\u0435<\/option>\r\n            <\/select>\r\n\r\n            <label for=\"mpRole\">\u0412\u0430\u0448\u0430 \u0440\u043e\u043b\u044c?<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"text\"\r\n              name=\"company\"\r\n              id=\"mpCompany\"\r\n              placeholder=\" \"\r\n              autocomplete=\"organization\"\r\n            >\r\n            <label for=\"mpCompany\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438<\/label>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"mp-form-grid mp-location-grid\">\r\n          <div class=\"mp-field\">\r\n            <select\r\n              name=\"country\"\r\n              id=\"mpCountry\"\r\n              required\r\n              autocomplete=\"country-name\"\r\n            >\r\n              <option value=\"italia\" selected>\u0418\u0442\u0430\u043b\u0438\u044f<\/option>\r\n              <option value=\"estero\">\u0414\u0440\u0443\u0433\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0430<\/option>\r\n            <\/select>\r\n\r\n            <label for=\"mpCountry\">\u0421\u0442\u0440\u0430\u043d\u0430\/\u0420\u0435\u0433\u0438\u043e\u043d *<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <select\r\n              name=\"province\"\r\n              id=\"mpProvince\"\r\n              required\r\n              autocomplete=\"address-level2\"\r\n            >\r\n              <option value=\"\" selected disabled>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435<\/option>\r\n              <option value=\"AG\">\u0410\u0433\u0440\u0438\u0434\u0436\u0435\u043d\u0442\u043e<\/option>\r\n              <option value=\"AL\">\u0410\u043b\u0435\u0441\u0441\u0430\u043d\u0434\u0440\u0438\u044f<\/option>\r\n              <option value=\"AN\">\u0410\u043d\u043a\u043e\u043d\u0430<\/option>\r\n              <option value=\"AO\">\u0410\u043e\u0441\u0442\u0430<\/option>\r\n              <option value=\"AR\">\u0410\u0440\u0435\u0446\u0446\u043e<\/option>\r\n              <option value=\"AP\">\u0410\u0441\u043a\u043e\u043b\u0438-\u041f\u0438\u0447\u0435\u043d\u043e<\/option>\r\n              <option value=\"AT\">\u0410\u0441\u0442\u0438<\/option>\r\n              <option value=\"AV\">\u0410\u0432\u0435\u043b\u043b\u0438\u043d\u043e<\/option>\r\n              <option value=\"BA\">\u0411\u0430\u0440\u0438<\/option>\r\n              <option value=\"BT\">\u0411\u0430\u0440\u043b\u0435\u0442\u0442\u0430-\u0410\u043d\u0434\u0440\u0438\u044f-\u0422\u0440\u0430\u043d\u0438<\/option>\r\n              <option value=\"BL\">\u0411\u0435\u043b\u043b\u0443\u043d\u043e<\/option>\r\n              <option value=\"BN\">\u0411\u0435\u043d\u0435\u0432\u0435\u043d\u0442\u043e<\/option>\r\n              <option value=\"BG\">\u0411\u0435\u0440\u0433\u0430\u043c\u043e<\/option>\r\n              <option value=\"BI\">\u0411\u044c\u0435\u043b\u043b\u0430<\/option>\r\n              <option value=\"BO\">\u0411\u043e\u043b\u043e\u043d\u044c\u044f<\/option>\r\n              <option value=\"BZ\">\u0411\u043e\u043b\u044c\u0446\u0430\u043d\u043e<\/option>\r\n              <option value=\"BS\">\u0411\u0440\u0435\u0448\u0438\u0430<\/option>\r\n              <option value=\"BR\">\u0411\u0440\u0438\u043d\u0434\u0438\u0437\u0438<\/option>\r\n              <option value=\"CA\">\u041a\u0430\u043b\u044c\u044f\u0440\u0438<\/option>\r\n              <option value=\"CL\">\u041a\u0430\u043b\u044c\u0442\u0430\u043d\u0438\u0441\u0441\u0435\u0442\u0442\u0430<\/option>\r\n              <option value=\"CB\">\u041a\u0430\u043c\u043f\u043e\u0431\u0430\u0441\u0441\u043e<\/option>\r\n              <option value=\"CE\">\u041a\u0430\u0437\u0435\u0440\u0442\u0430<\/option>\r\n              <option value=\"CT\">\u041a\u0430\u0442\u0430\u043d\u0438\u044f<\/option>\r\n              <option value=\"CZ\">\u041a\u0430\u0442\u0430\u043d\u0434\u0437\u0430\u0440\u043e<\/option>\r\n              <option value=\"CH\">\u041a\u044c\u0435\u0442\u0438<\/option>\r\n              <option value=\"CO\">\u041a\u043e\u043c\u043e<\/option>\r\n              <option value=\"CS\">\u041a\u043e\u0437\u0435\u043d\u0446\u0430<\/option>\r\n              <option value=\"CR\">\u041a\u0440\u0435\u043c\u043e\u043d\u0430<\/option>\r\n              <option value=\"KR\">\u041a\u0440\u043e\u0442\u043e\u043d\u0435<\/option>\r\n              <option value=\"CN\">\u041a\u0443\u043d\u0435\u043e<\/option>\r\n              <option value=\"EN\">\u042d\u043d\u043d\u0430<\/option>\r\n              <option value=\"FM\">\u0424\u0435\u0440\u043c\u043e<\/option>\r\n              <option value=\"FE\">\u0424\u0435\u0440\u0440\u0430\u0440\u0430<\/option>\r\n              <option value=\"FI\">\u0424\u043b\u043e\u0440\u0435\u043d\u0446\u0438\u044f<\/option>\r\n              <option value=\"FG\">\u0424\u043e\u0434\u0436\u0430<\/option>\r\n              <option value=\"FC\">\u0424\u043e\u0440\u043b\u0438-\u0427\u0435\u0437\u0435\u043d\u0430<\/option>\r\n              <option value=\"FR\">\u0424\u0440\u043e\u0437\u0438\u043d\u043e\u043d\u0435<\/option>\r\n              <option value=\"GE\">\u0413\u0435\u043d\u0443\u044f<\/option>\r\n              <option value=\"GO\">\u0413\u043e\u0440\u0438\u0446\u0438\u044f<\/option>\r\n              <option value=\"GR\">\u0413\u0440\u043e\u0441\u0441\u0435\u0442\u043e<\/option>\r\n              <option value=\"IM\">\u0418\u043c\u043f\u0435\u0440\u0438\u044f<\/option>\r\n              <option value=\"IS\">\u0418\u0437\u0435\u0440\u043d\u0438\u044f<\/option>\r\n              <option value=\"SP\">\u0421\u043f\u0435\u0446\u0438\u044f<\/option>\r\n              <option value=\"AQ\">\u041b'\u0410\u043a\u0443\u0438\u043b\u0430<\/option>\r\n              <option value=\"LT\">\u041b\u0430\u0442\u0438\u043d\u0430<\/option>\r\n              <option value=\"LE\">\u041b\u0435\u0447\u0447\u0435<\/option>\r\n              <option value=\"LC\">\u041b\u0435\u043a\u043a\u043e<\/option>\r\n              <option value=\"LI\">\u041b\u0438\u0432\u043e\u0440\u043d\u043e<\/option>\r\n              <option value=\"LO\">\u041b\u043e\u0434\u0438<\/option>\r\n              <option value=\"LU\">\u041b\u0443\u043a\u043a\u0430<\/option>\r\n              <option value=\"MC\">\u041c\u0430\u0447\u0435\u0440\u0430\u0442\u0430<\/option>\r\n              <option value=\"MN\">\u041c\u0430\u043d\u0442\u0443\u044f<\/option>\r\n              <option value=\"MS\">\u041c\u0430\u0441\u0441\u0430-\u041a\u0430\u0440\u0440\u0430\u0440\u0430<\/option>\r\n              <option value=\"MT\">\u041c\u0430\u0442\u0435\u0440\u0430<\/option>\r\n              <option value=\"ME\">\u041c\u0435\u0441\u0441\u0438\u043d\u0430<\/option>\r\n              <option value=\"MI\">\u041c\u0438\u043b\u0430\u043d<\/option>\r\n              <option value=\"MO\">\u041c\u043e\u0434\u0435\u043d\u0430<\/option>\r\n              <option value=\"MB\">\u041c\u043e\u043d\u0446\u0430 \u0438 \u0411\u0440\u0438\u0430\u043d\u0446\u0430<\/option>\r\n              <option value=\"NA\">\u041d\u0435\u0430\u043f\u043e\u043b\u044c<\/option>\r\n              <option value=\"NO\">\u041d\u043e\u0432\u0430\u0440\u0430<\/option>\r\n              <option value=\"NU\">\u041d\u0443\u043e\u0440\u043e<\/option>\r\n              <option value=\"OR\">\u041e\u0440\u0438\u0441\u0442\u0430\u043d\u043e<\/option>\r\n              <option value=\"PD\">\u041f\u0430\u0434\u0443\u044f<\/option>\r\n              <option value=\"PA\">\u041f\u0430\u043b\u0435\u0440\u043c\u043e<\/option>\r\n              <option value=\"PR\">\u041f\u0430\u0440\u043c\u0430<\/option>\r\n              <option value=\"PV\">\u041f\u0430\u0432\u0438\u044f<\/option>\r\n              <option value=\"PG\">\u041f\u0435\u0440\u0443\u0434\u0436\u0430<\/option>\r\n              <option value=\"PU\">\u041f\u0435\u0437\u0430\u0440\u043e \u0438 \u0423\u0440\u0431\u0438\u043d\u043e<\/option>\r\n              <option value=\"PE\">\u041f\u0435\u0441\u043a\u0430\u0440\u0430<\/option>\r\n              <option value=\"PC\">\u041f\u044c\u044f\u0447\u0435\u043d\u0446\u0430<\/option>\r\n              <option value=\"PI\">\u041f\u0438\u0437\u0430<\/option>\r\n              <option value=\"PT\">\u041f\u0438\u0441\u0442\u043e\u044f<\/option>\r\n              <option value=\"PN\">\u041f\u043e\u0440\u0434\u0435\u043d\u043e\u043d\u0435<\/option>\r\n              <option value=\"PZ\">\u041f\u043e\u0442\u0435\u043d\u0446\u0430<\/option>\r\n              <option value=\"PO\">\u041f\u0440\u0430\u0442\u043e<\/option>\r\n              <option value=\"RG\">\u0420\u0430\u0433\u0443\u0437\u0430<\/option>\r\n              <option value=\"RA\">\u0420\u0430\u0432\u0435\u043d\u043d\u0430<\/option>\r\n              <option value=\"RC\">\u0420\u0435\u0434\u0436\u043e-\u0434\u0438-\u041a\u0430\u043b\u0430\u0431\u0440\u0438\u044f<\/option>\r\n              <option value=\"RE\">\u0420\u0435\u0434\u0436\u043e-\u043d\u0435\u043b\u044c-\u042d\u043c\u0438\u043b\u0438\u044f<\/option>\r\n              <option value=\"RI\">\u0420\u0438\u0435\u0442\u0438<\/option>\r\n              <option value=\"RN\">\u0420\u0438\u043c\u0438\u043d\u0438<\/option>\r\n              <option value=\"RM\">\u0420\u0438\u043c<\/option>\r\n              <option value=\"RO\">\u0420\u043e\u0432\u0438\u0433\u043e<\/option>\r\n              <option value=\"SA\">\u0421\u0430\u043b\u0435\u0440\u043d\u043e<\/option>\r\n              <option value=\"SS\">\u0421\u0430\u0441\u0441\u0430\u0440\u0438<\/option>\r\n              <option value=\"SV\">\u0421\u0430\u0432\u043e\u043d\u0430<\/option>\r\n              <option value=\"SI\">\u0421\u0438\u0435\u043d\u0430<\/option>\r\n              <option value=\"SR\">\u0421\u0438\u0440\u0430\u043a\u0443\u0437\u044b<\/option>\r\n              <option value=\"SO\">\u0421\u043e\u043d\u0434\u0440\u0438\u043e<\/option>\r\n              <option value=\"SU\">\u042e\u0436\u043d\u0430\u044f \u0421\u0430\u0440\u0434\u0438\u043d\u0438\u044f<\/option>\r\n              <option value=\"TA\">\u0422\u0430\u0440\u0430\u043d\u0442\u043e<\/option>\r\n              <option value=\"TE\">\u0422\u0435\u0440\u0430\u043c\u043e<\/option>\r\n              <option value=\"TR\">\u0422\u0435\u0440\u043d\u0438<\/option>\r\n              <option value=\"TO\">\u0422\u0443\u0440\u0438\u043d<\/option>\r\n              <option value=\"TP\">\u0422\u0440\u0430\u043f\u0430\u043d\u0438<\/option>\r\n              <option value=\"TN\">\u0422\u0440\u0435\u043d\u0442\u043e<\/option>\r\n              <option value=\"TV\">\u0422\u0440\u0435\u0432\u0438\u0437\u043e<\/option>\r\n              <option value=\"TS\">\u0422\u0440\u0438\u0435\u0441\u0442<\/option>\r\n              <option value=\"UD\">\u0423\u0434\u0438\u043d\u0435<\/option>\r\n              <option value=\"VA\">\u0412\u0430\u0440\u0435\u0437\u0435<\/option>\r\n              <option value=\"VE\">\u0412\u0435\u043d\u0435\u0446\u0438\u044f<\/option>\r\n              <option value=\"VB\">\u0412\u0435\u0440\u0431\u0430\u043d\u043e-\u041a\u0443\u0437\u044c\u043e-\u041e\u0441\u0441\u043e\u043b\u0430<\/option>\r\n              <option value=\"VC\">\u0412\u0435\u0440\u0447\u0435\u043b\u043b\u0438<\/option>\r\n              <option value=\"VR\">\u0412\u0435\u0440\u043e\u043d\u0430<\/option>\r\n              <option value=\"VV\">\u0412\u0438\u0431\u043e-\u0412\u0430\u043b\u0435\u043d\u0442\u0438\u044f<\/option>\r\n              <option value=\"VI\">\u0412\u0438\u0447\u0435\u043d\u0446\u0430<\/option>\r\n              <option value=\"VT\">\u0412\u0438\u0442\u0435\u0440\u0431\u043e<\/option>\r\n              <option value=\"ESTERO\">\u041f\u0440\u043e\u0432\u0438\u043d\u0446\u0438\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 \u0418\u0442\u0430\u043b\u0438\u0438<\/option>\r\n            <\/select>\r\n\r\n            <label for=\"mpProvince\">\u041f\u0440\u043e\u0432\u0438\u043d\u0446\u0438\u044f *<\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-field\">\r\n            <input\r\n              type=\"text\"\r\n              name=\"city\"\r\n              id=\"mpCity\"\r\n              placeholder=\" \"\r\n              required\r\n              autocomplete=\"address-level2\"\r\n            >\r\n            <label for=\"mpCity\">\u0413\u043e\u0440\u043e\u0434 *<\/label>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"mp-field mp-field-full\">\r\n          <select\r\n            name=\"contact_reason\"\r\n            id=\"mpContactReason\"\r\n            required\r\n          >\r\n            <option value=\"\" selected disabled>\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435<\/option>\r\n            <option value=\"nuovo_impianto\">\r\n              \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043b\u0438\u0444\u0442\u0430 \u0432 \u043d\u043e\u0432\u043e\u043c\/\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0437\u0434\u0430\u043d\u0438\u0438\r\n            <\/option>\r\n            <option value=\"sostituzione_ascensore\">\r\n              \u0417\u0430\u043c\u0435\u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043b\u0438\u0444\u0442\u0430\r\n            <\/option>\r\n            <option value=\"ammodernamento_impianto\">\r\n              \u041c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f\r\n            <\/option>\r\n            <option value=\"assistenza_manutenzione\">\r\n              \u041c\u0435\u043d\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0443\u0441\u043b\u0443\u0433\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f\r\n            <\/option>\r\n            <option value=\"ricambi\">\r\n              \u0417\u0430\u043f\u0430\u0441\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0434\u043b\u044f \u043b\u0438\u0444\u0442\u043e\u0432 Millepiani\r\n            <\/option>\r\n            <option value=\"altro\">\u0414\u0440\u0443\u0433\u043e\u0435<\/option>\r\n          <\/select>\r\n\r\n          <label for=\"mpContactReason\">\r\n            \u041f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043b\u0438\u0441\u044c? *\r\n          <\/label>\r\n        <\/div>\r\n\r\n        <div class=\"mp-field mp-field-full\">\r\n          <textarea\r\n            name=\"message\"\r\n            id=\"mpMessage\"\r\n            rows=\"4\"\r\n            placeholder=\" \"\r\n          ><\/textarea>\r\n\r\n          <label for=\"mpMessage\">\u0427\u0435\u043c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c?<\/label>\r\n        <\/div>\r\n\r\n        <div class=\"mp-form-foot\">\r\n          <div class=\"mp-privacy-box\">\r\n            <label\r\n              class=\"mp-privacy-check\"\r\n              for=\"mpPrivacyAcceptance\"\r\n            >\r\n              <input\r\n                type=\"checkbox\"\r\n                name=\"privacy_acceptance\"\r\n                id=\"mpPrivacyAcceptance\"\r\n                value=\"accepted\"\r\n                required\r\n              >\r\n\r\n              <span>\r\n                \u042f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\r\n                <a\r\n                  href=\"\/privacy-policy\/\"\r\n                  target=\"_blank\"\r\n                  rel=\"noopener noreferrer\"\r\n                >\r\n                  \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438\r\n                <\/a>. *\r\n              <\/span>\r\n            <\/label>\r\n\r\n            <label\r\n              class=\"mp-privacy-check\"\r\n              for=\"mpExistingContract\"\r\n            >\r\n              <input\r\n                type=\"checkbox\"\r\n                name=\"existing_contract\"\r\n                id=\"mpExistingContract\"\r\n                value=\"yes\"\r\n              >\r\n\r\n              <span>\r\n                \u0423 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0434\u043e\u0433\u043e\u0432\u043e\u0440 \u0441 Millepiani\r\n              <\/span>\r\n            <\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mp-captcha\">\r\n            <div\r\n              class=\"g-recaptcha\"\r\n              data-sitekey=\"6LfxY6ktAAAAAFBbvnofa2IpjG_zaaX5UdOtJuTS\"\r\n            ><\/div>\r\n          <\/div>\r\n\r\n          <button type=\"submit\" class=\"mp-submit-btn\">\r\n            <span>\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/span>\r\n          <\/button>\r\n        <\/div>\r\n      <\/form>\r\n    <\/div>\r\n  <\/div>\r\n<\/section><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1931b80 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-shortcode\" data-id=\"1931b80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script>document.documentElement.classList.add(\"mp-js-ready\");\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Reveal\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const revealItems = document.querySelectorAll(\".mp-reveal\");\r\n\r\n  if (\"IntersectionObserver\" in window) {\r\n    const revealObserver = new IntersectionObserver(function (entries, observer) {\r\n      entries.forEach(function (entry) {\r\n        if (!entry.isIntersecting) return;\r\n\r\n        entry.target.classList.add(\"is-visible\");\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      threshold: 0.16\r\n    });\r\n\r\n    revealItems.forEach(function (item) {\r\n      revealObserver.observe(item);\r\n    });\r\n  } else {\r\n    revealItems.forEach(function (item) {\r\n      item.classList.add(\"is-visible\");\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Smooth scroll\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  document.querySelectorAll('a[href^=\"#\"]').forEach(function (anchor) {\r\n    anchor.addEventListener(\"click\", function (event) {\r\n      const targetId = anchor.getAttribute(\"href\");\r\n\r\n      if (!targetId || targetId === \"#\") return;\r\n\r\n      const target = document.querySelector(targetId);\r\n\r\n      if (!target) return;\r\n\r\n      event.preventDefault();\r\n\r\n      target.scrollIntoView({\r\n        behavior: \"smooth\",\r\n        block: \"start\"\r\n      });\r\n    });\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Language\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const pageLang = (document.documentElement.lang || \"it\")\r\n    .toLowerCase()\r\n    .split(\"-\")[0];\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Technical solution data\r\n  |--------------------------------------------------------------------------\r\n  |\r\n  | Questi dati NON vengono tradotti.\r\n  | Servono esclusivamente alla logica e al modello Three.js.\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const solutionTechnicalData = {\r\n    s: {\r\n      angle: 0.34,\r\n      speed: 0.34,\r\n      isWalkway: false,\r\n      camera: {\r\n        x: 3.7,\r\n        y: 2.8,\r\n        z: 8.4\r\n      },\r\n      rotationY: -0.60\r\n    },\r\n\r\n    splus: {\r\n      angle: 0.39,\r\n      speed: 0.42,\r\n      isWalkway: false,\r\n      camera: {\r\n        x: 4.2,\r\n        y: 3.05,\r\n        z: 8.0\r\n      },\r\n      rotationY: -0.68\r\n    },\r\n\r\n    st: {\r\n      angle: 0.12,\r\n      speed: 0.24,\r\n      isWalkway: true,\r\n      camera: {\r\n        x: 3.4,\r\n        y: 2.25,\r\n        z: 8.8\r\n      },\r\n      rotationY: -0.42\r\n    }\r\n  };\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Technical mode data\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const modeTechnicalData = {\r\n    continuo: {\r\n      multiplier: 1\r\n    },\r\n\r\n    soft: {\r\n      multiplier: 0.5\r\n    },\r\n\r\n    stop: {\r\n      multiplier: 0.18\r\n    }\r\n  };\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Translations\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const escalatorTranslations = {\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ITALIANO\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    it: {\r\n      solutions: {\r\n        s: {\r\n          kicker: \"Scala mobile S\",\r\n          title: \"Il flusso prende<br>forma nello spazio\",\r\n          text: \"Una soluzione silenziosa ed efficiente per centri commerciali, hotel, uffici e contesti con traffico leggero o medio.\",\r\n          tags: [\r\n            \"Indoor \/ Outdoor\",\r\n            \"EN115\",\r\n            \"Comfort\"\r\n          ],\r\n          dashSolution: \"Scala mobile S\",\r\n          dashContext: \"Traffico leggero \/ medio\"\r\n        },\r\n\r\n        splus: {\r\n          kicker: \"Scala mobile S+\",\r\n          title: \"Performance per<br>flussi intensi\",\r\n          text: \"Soluzione versatile e performante per condizioni di esercizio gravose, ideale per aeroporti, stazioni, metropolitane e grandi infrastrutture.\",\r\n          tags: [\r\n            \"Traffico intenso\",\r\n            \"Servizio pubblico\",\r\n            \"Outdoor\"\r\n          ],\r\n          dashSolution: \"Scala mobile S+\",\r\n          dashContext: \"Traffico intenso\"\r\n        },\r\n\r\n        st: {\r\n          kicker: \"Tappeto mobile ST\",\r\n          title: \"Il movimento<br>si distende\",\r\n          text: \"Soluzione pensata per agevolare il passaggio continuo degli utenti su percorsi dedicati e inclinati, in ambienti pubblici e commerciali.\",\r\n          tags: [\r\n            \"Tappeto ST\",\r\n            \"Flussi continui\",\r\n            \"Percorsi inclinati\"\r\n          ],\r\n          dashSolution: \"Tappeto mobile ST\",\r\n          dashContext: \"Percorsi continui\"\r\n        }\r\n      },\r\n\r\n      points: {\r\n        safety: {\r\n          label: \"Sicurezza\",\r\n          title: \"Dispositivi integrati per utenti e gestori\",\r\n          text: \"Gli impianti prevedono dispositivi come stop di emergenza, controlli sui pettini, corrimano, catene, sovravelocit\u00e0, direzione di marcia e demarcazione dei gradini.\"\r\n        },\r\n\r\n        comfort: {\r\n          label: \"Comfort\",\r\n          title: \"Movimento fluido, silenzioso e continuo\",\r\n          text: \"La progettazione \u00e8 orientata a comfort di marcia, silenziosit\u00e0 e continuit\u00e0 del flusso, anche negli ambienti ad alta percorrenza.\"\r\n        },\r\n\r\n        design: {\r\n          label: \"Design\",\r\n          title: \"Finiture integrate nell\u2019architettura\",\r\n          text: \"Balaustre, corrimano, illuminazioni, gradini, zoccolature e rivestimenti possono essere configurati per integrarsi con il progetto.\"\r\n        },\r\n\r\n        operation: {\r\n          label: \"Funzionamento\",\r\n          title: \"Continuo, Soft and Go o Stop and Go\",\r\n          text: \"Le modalit\u00e0 operative consentono di adattare l\u2019impianto al flusso reale degli utenti, con logiche pensate anche per l\u2019efficienza energetica.\"\r\n        }\r\n      },\r\n\r\n      modes: {\r\n        continuo: {\r\n          label: \"Continuo\"\r\n        },\r\n\r\n        soft: {\r\n          label: \"Soft and Go\"\r\n        },\r\n\r\n        stop: {\r\n          label: \"Stop and Go\"\r\n        }\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | ENGLISH\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    en: {\r\n      solutions: {\r\n        s: {\r\n          kicker: \"S Escalator\",\r\n          title: \"Flow takes<br>shape in space\",\r\n          text: \"A quiet and efficient solution for shopping centres, hotels, offices and environments with light to medium passenger traffic.\",\r\n          tags: [\r\n            \"Indoor \/ Outdoor\",\r\n            \"EN115\",\r\n            \"Comfort\"\r\n          ],\r\n          dashSolution: \"S Escalator\",\r\n          dashContext: \"Light \/ medium traffic\"\r\n        },\r\n\r\n        splus: {\r\n          kicker: \"S+ Escalator\",\r\n          title: \"Performance for<br>heavy traffic\",\r\n          text: \"A versatile, high-performance solution for demanding operating conditions, ideal for airports, railway stations, underground systems and major infrastructure.\",\r\n          tags: [\r\n            \"Heavy traffic\",\r\n            \"Public service\",\r\n            \"Outdoor\"\r\n          ],\r\n          dashSolution: \"S+ Escalator\",\r\n          dashContext: \"Heavy traffic\"\r\n        },\r\n\r\n        st: {\r\n          kicker: \"ST Moving Walkway\",\r\n          title: \"Movement<br>stretches out\",\r\n          text: \"A solution designed to facilitate the continuous movement of users along dedicated and inclined routes in public and commercial environments.\",\r\n          tags: [\r\n            \"ST Walkway\",\r\n            \"Continuous flow\",\r\n            \"Inclined routes\"\r\n          ],\r\n          dashSolution: \"ST Moving Walkway\",\r\n          dashContext: \"Continuous routes\"\r\n        }\r\n      },\r\n\r\n      points: {\r\n        safety: {\r\n          label: \"Safety\",\r\n          title: \"Integrated safety devices for users and operators\",\r\n          text: \"The systems include devices such as emergency stops, comb plate monitoring, handrail and chain controls, overspeed monitoring, travel direction controls and step demarcation.\"\r\n        },\r\n\r\n        comfort: {\r\n          label: \"Comfort\",\r\n          title: \"Smooth, quiet and continuous movement\",\r\n          text: \"The design focuses on ride comfort, low noise and continuous passenger flow, even in high-traffic environments.\"\r\n        },\r\n\r\n        design: {\r\n          label: \"Design\",\r\n          title: \"Finishes integrated into the architecture\",\r\n          text: \"Balustrades, handrails, lighting, steps, skirting and cladding can be configured to integrate seamlessly with the architectural project.\"\r\n        },\r\n\r\n        operation: {\r\n          label: \"Operation\",\r\n          title: \"Continuous, Soft and Go or Stop and Go\",\r\n          text: \"The operating modes allow the system to adapt to actual passenger flow, with control strategies also designed to improve energy efficiency.\"\r\n        }\r\n      },\r\n\r\n      modes: {\r\n        continuo: {\r\n          label: \"Continuous\"\r\n        },\r\n\r\n        soft: {\r\n          label: \"Soft and Go\"\r\n        },\r\n\r\n        stop: {\r\n          label: \"Stop and Go\"\r\n        }\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | FRAN\u00c7AIS\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    fr: {\r\n      solutions: {\r\n        s: {\r\n          kicker: \"Escalier m\u00e9canique S\",\r\n          title: \"Le flux prend<br>forme dans l\u2019espace\",\r\n          text: \"Une solution silencieuse et efficace pour les centres commerciaux, h\u00f4tels, bureaux et environnements \u00e0 trafic faible ou moyen.\",\r\n          tags: [\r\n            \"Int\u00e9rieur \/ Ext\u00e9rieur\",\r\n            \"EN115\",\r\n            \"Confort\"\r\n          ],\r\n          dashSolution: \"Escalier m\u00e9canique S\",\r\n          dashContext: \"Trafic faible \/ moyen\"\r\n        },\r\n\r\n        splus: {\r\n          kicker: \"Escalier m\u00e9canique S+\",\r\n          title: \"Des performances pour<br>les flux intensifs\",\r\n          text: \"Une solution polyvalente et performante pour les conditions d\u2019utilisation exigeantes, id\u00e9ale pour les a\u00e9roports, gares, m\u00e9tros et grandes infrastructures.\",\r\n          tags: [\r\n            \"Trafic intense\",\r\n            \"Service public\",\r\n            \"Ext\u00e9rieur\"\r\n          ],\r\n          dashSolution: \"Escalier m\u00e9canique S+\",\r\n          dashContext: \"Trafic intense\"\r\n        },\r\n\r\n        st: {\r\n          kicker: \"Trottoir roulant ST\",\r\n          title: \"Le mouvement<br>se prolonge\",\r\n          text: \"Une solution con\u00e7ue pour faciliter le d\u00e9placement continu des utilisateurs sur des parcours d\u00e9di\u00e9s et inclin\u00e9s, dans les espaces publics et commerciaux.\",\r\n          tags: [\r\n            \"Trottoir ST\",\r\n            \"Flux continus\",\r\n            \"Parcours inclin\u00e9s\"\r\n          ],\r\n          dashSolution: \"Trottoir roulant ST\",\r\n          dashContext: \"Parcours continus\"\r\n        }\r\n      },\r\n\r\n      points: {\r\n        safety: {\r\n          label: \"S\u00e9curit\u00e9\",\r\n          title: \"Dispositifs int\u00e9gr\u00e9s pour les utilisateurs et les exploitants\",\r\n          text: \"Les installations int\u00e8grent notamment des arr\u00eats d\u2019urgence, des contr\u00f4les des plaques \u00e0 peignes, des mains courantes, des cha\u00eenes, de la survitesse, du sens de d\u00e9placement et du marquage des marches.\"\r\n        },\r\n\r\n        comfort: {\r\n          label: \"Confort\",\r\n          title: \"Un mouvement fluide, silencieux et continu\",\r\n          text: \"La conception privil\u00e9gie le confort de d\u00e9placement, le silence de fonctionnement et la continuit\u00e9 des flux, m\u00eame dans les environnements tr\u00e8s fr\u00e9quent\u00e9s.\"\r\n        },\r\n\r\n        design: {\r\n          label: \"Design\",\r\n          title: \"Des finitions int\u00e9gr\u00e9es \u00e0 l\u2019architecture\",\r\n          text: \"Les balustrades, mains courantes, \u00e9clairages, marches, plinthes et rev\u00eatements peuvent \u00eatre configur\u00e9s afin de s\u2019int\u00e9grer au projet architectural.\"\r\n        },\r\n\r\n        operation: {\r\n          label: \"Fonctionnement\",\r\n          title: \"Continu, Soft and Go ou Stop and Go\",\r\n          text: \"Les diff\u00e9rents modes de fonctionnement permettent d\u2019adapter l\u2019installation au flux r\u00e9el des utilisateurs, avec des logiques \u00e9galement con\u00e7ues pour optimiser l\u2019efficacit\u00e9 \u00e9nerg\u00e9tique.\"\r\n        }\r\n      },\r\n\r\n      modes: {\r\n        continuo: {\r\n          label: \"Continu\"\r\n        },\r\n\r\n        soft: {\r\n          label: \"Soft and Go\"\r\n        },\r\n\r\n        stop: {\r\n          label: \"Stop and Go\"\r\n        }\r\n      }\r\n    },\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | \u0420\u0423\u0421\u0421\u041a\u0418\u0419\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    ru: {\r\n      solutions: {\r\n        s: {\r\n          kicker: \"\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S\",\r\n          title: \"\u041f\u043e\u0442\u043e\u043a \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442<br>\u0444\u043e\u0440\u043c\u0443 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\",\r\n          text: \"\u0422\u0438\u0445\u043e\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u0433\u043e\u0441\u0442\u0438\u043d\u0438\u0446, \u043e\u0444\u0438\u0441\u043e\u0432 \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u0438\u043b\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a\u0430.\",\r\n          tags: [\r\n            \"\u0412 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \/ \u041d\u0430 \u0443\u043b\u0438\u0446\u0435\",\r\n            \"EN115\",\r\n            \"\u041a\u043e\u043c\u0444\u043e\u0440\u0442\"\r\n          ],\r\n          dashSolution: \"\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S\",\r\n          dashContext: \"\u041d\u0438\u0437\u043a\u0438\u0439 \/ \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u043f\u043e\u0442\u043e\u043a\"\r\n        },\r\n\r\n        splus: {\r\n          kicker: \"\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S+\",\r\n          title: \"\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<br>\u0434\u043b\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\",\r\n          text: \"\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0434\u043b\u044f \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432, \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432, \u043c\u0435\u0442\u0440\u043e\u043f\u043e\u043b\u0438\u0442\u0435\u043d\u043e\u0432 \u0438 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.\",\r\n          tags: [\r\n            \"\u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a\",\r\n            \"\u041e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\",\r\n            \"\u041d\u0430 \u0443\u043b\u0438\u0446\u0435\"\r\n          ],\r\n          dashSolution: \"\u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440 S+\",\r\n          dashContext: \"\u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a\"\r\n        },\r\n\r\n        st: {\r\n          kicker: \"\u0414\u0432\u0438\u0436\u0443\u0449\u0430\u044f\u0441\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430 ST\",\r\n          title: \"\u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435<br>\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u043c\",\r\n          text: \"\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043d\u0430\u043a\u043b\u043e\u043d\u043d\u044b\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c \u0432 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445.\",\r\n          tags: [\r\n            \"\u0414\u043e\u0440\u043e\u0436\u043a\u0430 ST\",\r\n            \"\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a\",\r\n            \"\u041d\u0430\u043a\u043b\u043e\u043d\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b\"\r\n          ],\r\n          dashSolution: \"\u0414\u0432\u0438\u0436\u0443\u0449\u0430\u044f\u0441\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430 ST\",\r\n          dashContext: \"\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b\"\r\n        }\r\n      },\r\n\r\n      points: {\r\n        safety: {\r\n          label: \"\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\",\r\n          title: \"\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432\",\r\n          text: \"\u041e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u043d\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043a\u0430\u043a \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0433\u0440\u0435\u0431\u0451\u043d\u043e\u043a, \u043f\u043e\u0440\u0443\u0447\u043d\u0435\u0439 \u0438 \u0446\u0435\u043f\u0435\u0439, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0443\u043f\u0435\u043d\u0435\u0439.\"\r\n        },\r\n\r\n        comfort: {\r\n          label: \"\u041a\u043e\u043c\u0444\u043e\u0440\u0442\",\r\n          title: \"\u041f\u043b\u0430\u0432\u043d\u043e\u0435, \u0442\u0438\u0445\u043e\u0435 \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\",\r\n          text: \"\u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u043a\u043e\u043c\u0444\u043e\u0440\u0442 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u043d\u0438\u0437\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0448\u0443\u043c\u0430 \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u0436\u0435 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.\"\r\n        },\r\n\r\n        design: {\r\n          label: \"\u0414\u0438\u0437\u0430\u0439\u043d\",\r\n          title: \"\u041e\u0442\u0434\u0435\u043b\u043a\u0430, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443\",\r\n          text: \"\u0411\u0430\u043b\u044e\u0441\u0442\u0440\u0430\u0434\u044b, \u043f\u043e\u0440\u0443\u0447\u043d\u0438, \u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0438\u0435, \u0441\u0442\u0443\u043f\u0435\u043d\u0438, \u0446\u043e\u043a\u043e\u043b\u0438 \u0438 \u043e\u0431\u043b\u0438\u0446\u043e\u0432\u043a\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u043d\u043e \u0441\u043e\u0447\u0435\u0442\u0430\u0442\u044c\u0441\u044f \u0441 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c.\"\r\n        },\r\n\r\n        operation: {\r\n          label: \"\u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b\",\r\n          title: \"\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439, Soft and Go \u0438\u043b\u0438 Stop and Go\",\r\n          text: \"\u0420\u0435\u0436\u0438\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u043e\u043f\u043e\u0442\u043e\u043a\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u044d\u043d\u0435\u0440\u0433\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438.\"\r\n        }\r\n      },\r\n\r\n      modes: {\r\n        continuo: {\r\n          label: \"\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439\"\r\n        },\r\n\r\n        soft: {\r\n          label: \"Soft and Go\"\r\n        },\r\n\r\n        stop: {\r\n          label: \"Stop and Go\"\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Active translations\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const activeTranslations =\r\n    escalatorTranslations[pageLang] ||\r\n    escalatorTranslations.it;\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Build solution data\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const solutions = {};\r\n\r\n  Object.keys(solutionTechnicalData).forEach(function (solutionKey) {\r\n    solutions[solutionKey] = Object.assign(\r\n      {},\r\n      solutionTechnicalData[solutionKey],\r\n      activeTranslations.solutions[solutionKey]\r\n    );\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Build points\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const points = activeTranslations.points;\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Build modes\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const modes = {};\r\n\r\n  Object.keys(modeTechnicalData).forEach(function (modeKey) {\r\n    modes[modeKey] = Object.assign(\r\n      {},\r\n      modeTechnicalData[modeKey],\r\n      activeTranslations.modes[modeKey]\r\n    );\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | DOM\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const canvas = document.querySelector(\"#mpThreeEscalator\");\r\n  const fallback = document.querySelector(\"#mp3dFallback\");\r\n\r\n  const kicker = document.querySelector(\"#mp3dKicker\");\r\n  const title = document.querySelector(\"#mp3dTitle\");\r\n  const text = document.querySelector(\"#mp3dText\");\r\n  const tags = document.querySelector(\"#mp3dTags\");\r\n\r\n  const dashSolution = document.querySelector(\"#mpDashSolution\");\r\n  const dashContext = document.querySelector(\"#mpDashContext\");\r\n  const dashMode = document.querySelector(\"#mpDashMode\");\r\n\r\n  const solutionButtons = document.querySelectorAll(\".mp-3d-switch button\");\r\n  const modeButtons = document.querySelectorAll(\".mp-3d-mode-row button\");\r\n  const hotspotButtons = document.querySelectorAll(\".mp-3d-hotspot\");\r\n  const infoCard = document.querySelector(\"#mp3dInfoCard\");\r\n\r\n  let currentSolutionKey = \"s\";\r\n  let currentModeKey = \"continuo\";\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | UI helpers\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function animateElement(element) {\r\n    if (!element) return;\r\n\r\n    element.animate([\r\n      {\r\n        opacity: 0.35,\r\n        transform: \"translateY(18px)\"\r\n      },\r\n      {\r\n        opacity: 1,\r\n        transform: \"translateY(0)\"\r\n      }\r\n    ], {\r\n      duration: 430,\r\n      easing: \"cubic-bezier(0.22, 1, 0.36, 1)\"\r\n    });\r\n  }\r\n\r\n\r\n  function setTextContent(solutionKey) {\r\n    const solution = solutions[solutionKey];\r\n\r\n    if (!solution) return;\r\n\r\n    if (kicker) {\r\n      kicker.textContent = solution.kicker;\r\n    }\r\n\r\n    if (title) {\r\n      title.innerHTML = solution.title;\r\n    }\r\n\r\n    if (text) {\r\n      text.textContent = solution.text;\r\n    }\r\n\r\n    if (tags) {\r\n      tags.innerHTML = \"\";\r\n\r\n      solution.tags.forEach(function (tag) {\r\n        const span = document.createElement(\"span\");\r\n\r\n        span.textContent = tag;\r\n\r\n        tags.appendChild(span);\r\n      });\r\n    }\r\n\r\n    if (dashSolution) {\r\n      dashSolution.textContent = solution.dashSolution;\r\n    }\r\n\r\n    if (dashContext) {\r\n      dashContext.textContent = solution.dashContext;\r\n    }\r\n\r\n    solutionButtons.forEach(function (button) {\r\n      button.classList.toggle(\r\n        \"is-active\",\r\n        button.getAttribute(\"data-solution\") === solutionKey\r\n      );\r\n    });\r\n\r\n    animateElement(\r\n      document.querySelector(\".mp-3d-copy\")\r\n    );\r\n  }\r\n\r\n\r\n  function setPoint(pointKey) {\r\n    const point = points[pointKey];\r\n\r\n    if (!point || !infoCard) return;\r\n\r\n    infoCard.innerHTML =\r\n      \"<p>\" + point.label + \"<\/p>\" +\r\n      \"<h3>\" + point.title + \"<\/h3>\" +\r\n      \"<span>\" + point.text + \"<\/span>\";\r\n\r\n    hotspotButtons.forEach(function (button) {\r\n      button.classList.toggle(\r\n        \"is-active\",\r\n        button.getAttribute(\"data-point\") === pointKey\r\n      );\r\n    });\r\n\r\n    animateElement(infoCard);\r\n  }\r\n\r\n\r\n  function setMode(modeKey) {\r\n    const mode = modes[modeKey];\r\n\r\n    if (!mode) return;\r\n\r\n    currentModeKey = modeKey;\r\n\r\n    if (dashMode) {\r\n      dashMode.textContent = mode.label;\r\n    }\r\n\r\n    modeButtons.forEach(function (button) {\r\n      button.classList.toggle(\r\n        \"is-active\",\r\n        button.getAttribute(\"data-mode\") === modeKey\r\n      );\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | THREE\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  let renderer;\r\n  let scene;\r\n  let camera;\r\n  let escalatorGroup;\r\n\r\n  let steps = [];\r\n  let returnSteps = [];\r\n  let handrailMarkers = [];\r\n  let lightMarkers = [];\r\n\r\n  let mouse = {\r\n    x: 0,\r\n    y: 0\r\n  };\r\n\r\n  let scrollProgress = 0;\r\n\r\n  let cameraTarget = {\r\n    x: solutions.s.camera.x,\r\n    y: solutions.s.camera.y,\r\n    z: solutions.s.camera.z\r\n  };\r\n\r\n  let modelState = {\r\n    angle: solutions.s.angle,\r\n    targetAngle: solutions.s.angle,\r\n    speed: solutions.s.speed,\r\n    targetSpeed: solutions.s.speed,\r\n    isWalkway: false,\r\n    targetWalkway: false,\r\n    rotationY: solutions.s.rotationY,\r\n    targetRotationY: solutions.s.rotationY\r\n  };\r\n\r\n\r\n  function showFallback() {\r\n    if (fallback) {\r\n      fallback.style.display = \"grid\";\r\n    }\r\n  }\r\n\r\n\r\n  function createMaterial(\r\n    color,\r\n    roughness,\r\n    metalness,\r\n    opacity,\r\n    emissive,\r\n    emissiveIntensity\r\n  ) {\r\n    const material = new THREE.MeshStandardMaterial({\r\n      color: color,\r\n      roughness: roughness,\r\n      metalness: metalness\r\n    });\r\n\r\n    if (typeof emissive !== \"undefined\") {\r\n      material.emissive = new THREE.Color(emissive);\r\n      material.emissiveIntensity = emissiveIntensity || 0;\r\n    }\r\n\r\n    if (opacity < 1) {\r\n      material.transparent = true;\r\n      material.opacity = opacity;\r\n      material.depthWrite = false;\r\n    }\r\n\r\n    return material;\r\n  }\r\n\r\n\r\n  function createBox(\r\n    width,\r\n    height,\r\n    depth,\r\n    material\r\n  ) {\r\n    const geometry = new THREE.BoxGeometry(\r\n      width,\r\n      height,\r\n      depth\r\n    );\r\n\r\n    const mesh = new THREE.Mesh(\r\n      geometry,\r\n      material\r\n    );\r\n\r\n    mesh.castShadow = true;\r\n    mesh.receiveShadow = true;\r\n\r\n    return mesh;\r\n  }\r\n\r\n\r\n  function createCylinderBetween(\r\n    start,\r\n    end,\r\n    radius,\r\n    material,\r\n    radialSegments\r\n  ) {\r\n    const direction = new THREE.Vector3()\r\n      .subVectors(end, start);\r\n\r\n    const length = direction.length();\r\n\r\n    const midpoint = new THREE.Vector3()\r\n      .addVectors(start, end)\r\n      .multiplyScalar(0.5);\r\n\r\n    const geometry = new THREE.CylinderGeometry(\r\n      radius,\r\n      radius,\r\n      length,\r\n      radialSegments || 32\r\n    );\r\n\r\n    const mesh = new THREE.Mesh(\r\n      geometry,\r\n      material\r\n    );\r\n\r\n    mesh.position.copy(midpoint);\r\n\r\n    const quaternion = new THREE.Quaternion();\r\n\r\n    quaternion.setFromUnitVectors(\r\n      new THREE.Vector3(\r\n        0,\r\n        1,\r\n        0\r\n      ),\r\n      direction.clone().normalize()\r\n    );\r\n\r\n    mesh.quaternion.copy(quaternion);\r\n\r\n    mesh.castShadow = true;\r\n    mesh.receiveShadow = true;\r\n\r\n    return mesh;\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Step\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function createStepGroup(\r\n    matTread,\r\n    matRiser,\r\n    matGroove,\r\n    matEdge\r\n  ) {\r\n    const group = new THREE.Group();\r\n\r\n    const tread = createBox(\r\n      0.46,\r\n      0.105,\r\n      1.62,\r\n      matTread\r\n    );\r\n\r\n    tread.position.y = 0.058;\r\n\r\n    group.add(tread);\r\n\r\n\r\n    const riser = createBox(\r\n      0.46,\r\n      0.18,\r\n      1.62,\r\n      matRiser\r\n    );\r\n\r\n    riser.position.set(\r\n      -0.23,\r\n      -0.045,\r\n      0\r\n    );\r\n\r\n    group.add(riser);\r\n\r\n\r\n    const frontEdge = createBox(\r\n      0.035,\r\n      0.035,\r\n      1.66,\r\n      matEdge\r\n    );\r\n\r\n    frontEdge.position.set(\r\n      -0.245,\r\n      0.125,\r\n      0\r\n    );\r\n\r\n    group.add(frontEdge);\r\n\r\n\r\n    const backEdge = createBox(\r\n      0.026,\r\n      0.026,\r\n      1.66,\r\n      matEdge\r\n    );\r\n\r\n    backEdge.position.set(\r\n      0.215,\r\n      0.122,\r\n      0\r\n    );\r\n\r\n    group.add(backEdge);\r\n\r\n\r\n    for (let i = 0; i < 11; i += 1) {\r\n      const groove = createBox(\r\n        0.008,\r\n        0.112,\r\n        1.66,\r\n        matGroove\r\n      );\r\n\r\n      groove.position.set(\r\n        -0.19 + i * 0.038,\r\n        0.118,\r\n        0\r\n      );\r\n\r\n      group.add(groove);\r\n    }\r\n\r\n    return group;\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Comb plate\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function createCombPlate(\r\n    materialDark,\r\n    materialLight\r\n  ) {\r\n    const group = new THREE.Group();\r\n\r\n    const base = createBox(\r\n      0.95,\r\n      0.065,\r\n      1.88,\r\n      materialDark\r\n    );\r\n\r\n    group.add(base);\r\n\r\n    for (let i = 0; i < 16; i += 1) {\r\n      const tooth = createBox(\r\n        0.020,\r\n        0.042,\r\n        1.82,\r\n        materialLight\r\n      );\r\n\r\n      tooth.position.x =\r\n        -0.39 +\r\n        i * 0.052;\r\n\r\n      tooth.position.y =\r\n        0.052;\r\n\r\n      group.add(tooth);\r\n    }\r\n\r\n    return group;\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Build escalator\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function buildEscalatorModel() {\r\n    const matMetal = createMaterial(\r\n      0xa8a8a8,\r\n      0.32,\r\n      0.76,\r\n      1\r\n    );\r\n\r\n    const matDarkMetal = createMaterial(\r\n      0x1a1a1a,\r\n      0.42,\r\n      0.55,\r\n      1\r\n    );\r\n\r\n    const matBlack = createMaterial(\r\n      0x050505,\r\n      0.48,\r\n      0.40,\r\n      1\r\n    );\r\n\r\n    const matStepTread = createMaterial(\r\n      0xd8d8d8,\r\n      0.24,\r\n      0.84,\r\n      1\r\n    );\r\n\r\n    const matStepRiser = createMaterial(\r\n      0x2f2f2f,\r\n      0.48,\r\n      0.48,\r\n      1\r\n    );\r\n\r\n    const matGroove = createMaterial(\r\n      0x111111,\r\n      0.55,\r\n      0.35,\r\n      1\r\n    );\r\n\r\n    const matStepEdge = createMaterial(\r\n      0xffffff,\r\n      0.18,\r\n      0.22,\r\n      1,\r\n      0xffffff,\r\n      0.18\r\n    );\r\n\r\n    const matGlass = createMaterial(\r\n      0xcbefff,\r\n      0.04,\r\n      0.02,\r\n      0.18\r\n    );\r\n\r\n    const matLight = createMaterial(\r\n      0xffffff,\r\n      0.10,\r\n      0.05,\r\n      1,\r\n      0xffffff,\r\n      0.42\r\n    );\r\n\r\n    const matSoftLight = createMaterial(\r\n      0xffffff,\r\n      0.18,\r\n      0.04,\r\n      1,\r\n      0xffffff,\r\n      0.25\r\n    );\r\n\r\n    const matFloor = createMaterial(\r\n      0x181818,\r\n      0.62,\r\n      0.18,\r\n      1\r\n    );\r\n\r\n    const matTile = createMaterial(\r\n      0x2a2a2a,\r\n      0.64,\r\n      0.12,\r\n      1\r\n    );\r\n\r\n    const matReturn = createMaterial(\r\n      0x151515,\r\n      0.54,\r\n      0.36,\r\n      1\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Main group\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    escalatorGroup = new THREE.Group();\r\n\r\n    scene.add(escalatorGroup);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Platforms\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const lowerPlatform = createBox(\r\n      4.4,\r\n      0.18,\r\n      3.9,\r\n      matFloor\r\n    );\r\n\r\n    lowerPlatform.position.set(\r\n      -4.15,\r\n      -1.30,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(lowerPlatform);\r\n\r\n\r\n    const upperPlatform = createBox(\r\n      4.4,\r\n      0.18,\r\n      3.9,\r\n      matFloor\r\n    );\r\n\r\n    upperPlatform.position.set(\r\n      4.15,\r\n      1.32,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(upperPlatform);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Floor details\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (let i = 0; i < 10; i += 1) {\r\n      const tileLow = createBox(\r\n        0.018,\r\n        0.012,\r\n        3.86,\r\n        matTile\r\n      );\r\n\r\n      tileLow.position.set(\r\n        -5.95 + i * 0.42,\r\n        -1.20,\r\n        0\r\n      );\r\n\r\n      escalatorGroup.add(tileLow);\r\n\r\n\r\n      const tileHigh = createBox(\r\n        0.018,\r\n        0.012,\r\n        3.86,\r\n        matTile\r\n      );\r\n\r\n      tileHigh.position.set(\r\n        2.35 + i * 0.42,\r\n        1.43,\r\n        0\r\n      );\r\n\r\n      escalatorGroup.add(tileHigh);\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Chassis\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const chassis = createBox(\r\n      8.15,\r\n      0.46,\r\n      2.72,\r\n      matDarkMetal\r\n    );\r\n\r\n    chassis.position.set(\r\n      0,\r\n      -0.07,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(chassis);\r\n\r\n\r\n    const innerBed = createBox(\r\n      7.45,\r\n      0.20,\r\n      1.86,\r\n      matBlack\r\n    );\r\n\r\n    innerBed.position.set(\r\n      0,\r\n      0.015,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(innerBed);\r\n\r\n\r\n    const returnBed = createBox(\r\n      7.35,\r\n      0.12,\r\n      1.58,\r\n      matReturn\r\n    );\r\n\r\n    returnBed.position.set(\r\n      0,\r\n      -0.34,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(returnBed);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Side structures\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const leftSide = createBox(\r\n      8.1,\r\n      0.62,\r\n      0.18,\r\n      matMetal\r\n    );\r\n\r\n    leftSide.position.set(\r\n      0,\r\n      0.22,\r\n      -1.42\r\n    );\r\n\r\n    escalatorGroup.add(leftSide);\r\n\r\n\r\n    const rightSide = createBox(\r\n      8.1,\r\n      0.62,\r\n      0.18,\r\n      matMetal\r\n    );\r\n\r\n    rightSide.position.set(\r\n      0,\r\n      0.22,\r\n      1.42\r\n    );\r\n\r\n    escalatorGroup.add(rightSide);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Glass\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const glassLeft = createBox(\r\n      7.8,\r\n      1.22,\r\n      0.05,\r\n      matGlass\r\n    );\r\n\r\n    glassLeft.position.set(\r\n      0,\r\n      0.94,\r\n      -1.22\r\n    );\r\n\r\n    escalatorGroup.add(glassLeft);\r\n\r\n\r\n    const glassRight = createBox(\r\n      7.8,\r\n      1.22,\r\n      0.05,\r\n      matGlass\r\n    );\r\n\r\n    glassRight.position.set(\r\n      0,\r\n      0.94,\r\n      1.22\r\n    );\r\n\r\n    escalatorGroup.add(glassRight);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Handrails\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const railLeft = createCylinderBetween(\r\n      new THREE.Vector3(\r\n        -3.98,\r\n        1.60,\r\n        -1.28\r\n      ),\r\n      new THREE.Vector3(\r\n        3.98,\r\n        1.60,\r\n        -1.28\r\n      ),\r\n      0.068,\r\n      matBlack,\r\n      32\r\n    );\r\n\r\n    const railRight = createCylinderBetween(\r\n      new THREE.Vector3(\r\n        -3.98,\r\n        1.60,\r\n        1.28\r\n      ),\r\n      new THREE.Vector3(\r\n        3.98,\r\n        1.60,\r\n        1.28\r\n      ),\r\n      0.068,\r\n      matBlack,\r\n      32\r\n    );\r\n\r\n    escalatorGroup.add(railLeft);\r\n    escalatorGroup.add(railRight);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Handrail markers\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (let i = 0; i < 10; i += 1) {\r\n      const markerLeft = createBox(\r\n        0.18,\r\n        0.018,\r\n        0.035,\r\n        matSoftLight\r\n      );\r\n\r\n      markerLeft.position.set(\r\n        -3.45 + i * 0.76,\r\n        1.68,\r\n        -1.28\r\n      );\r\n\r\n      escalatorGroup.add(markerLeft);\r\n      handrailMarkers.push(markerLeft);\r\n\r\n\r\n      const markerRight = createBox(\r\n        0.18,\r\n        0.018,\r\n        0.035,\r\n        matSoftLight\r\n      );\r\n\r\n      markerRight.position.set(\r\n        -3.45 + i * 0.76,\r\n        1.68,\r\n        1.28\r\n      );\r\n\r\n      escalatorGroup.add(markerRight);\r\n      handrailMarkers.push(markerRight);\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Lighting\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const lightLeftLine = createCylinderBetween(\r\n      new THREE.Vector3(\r\n        -3.55,\r\n        0.34,\r\n        -1.02\r\n      ),\r\n      new THREE.Vector3(\r\n        3.55,\r\n        0.34,\r\n        -1.02\r\n      ),\r\n      0.018,\r\n      matLight,\r\n      16\r\n    );\r\n\r\n    const lightRightLine = createCylinderBetween(\r\n      new THREE.Vector3(\r\n        -3.55,\r\n        0.34,\r\n        1.02\r\n      ),\r\n      new THREE.Vector3(\r\n        3.55,\r\n        0.34,\r\n        1.02\r\n      ),\r\n      0.018,\r\n      matLight,\r\n      16\r\n    );\r\n\r\n    escalatorGroup.add(lightLeftLine);\r\n    escalatorGroup.add(lightRightLine);\r\n\r\n\r\n    for (let i = 0; i < 8; i += 1) {\r\n      const l1 = createBox(\r\n        0.22,\r\n        0.024,\r\n        0.024,\r\n        matLight\r\n      );\r\n\r\n      l1.position.set(\r\n        -3 + i * 0.86,\r\n        0.40,\r\n        -1.02\r\n      );\r\n\r\n      escalatorGroup.add(l1);\r\n      lightMarkers.push(l1);\r\n\r\n\r\n      const l2 = createBox(\r\n        0.22,\r\n        0.024,\r\n        0.024,\r\n        matLight\r\n      );\r\n\r\n      l2.position.set(\r\n        -3 + i * 0.86,\r\n        0.40,\r\n        1.02\r\n      );\r\n\r\n      escalatorGroup.add(l2);\r\n      lightMarkers.push(l2);\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Comb plates\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const combLow = createCombPlate(\r\n      matDarkMetal,\r\n      matLight\r\n    );\r\n\r\n    combLow.position.set(\r\n      -3.63,\r\n      0.18,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(combLow);\r\n\r\n\r\n    const combHigh = createCombPlate(\r\n      matDarkMetal,\r\n      matLight\r\n    );\r\n\r\n    combHigh.position.set(\r\n      3.63,\r\n      0.18,\r\n      0\r\n    );\r\n\r\n    escalatorGroup.add(combHigh);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Steps\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const stepCount = 24;\r\n\r\n    for (let i = 0; i < stepCount; i += 1) {\r\n      const step = createStepGroup(\r\n        matStepTread,\r\n        matStepRiser,\r\n        matGroove,\r\n        matStepEdge\r\n      );\r\n\r\n      step.userData.progress =\r\n        i \/ stepCount;\r\n\r\n      escalatorGroup.add(step);\r\n\r\n      steps.push(step);\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Return steps\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    for (let i = 0; i < 14; i += 1) {\r\n      const returnStep = createBox(\r\n        0.42,\r\n        0.045,\r\n        1.54,\r\n        matReturn\r\n      );\r\n\r\n      returnStep.userData.progress =\r\n        i \/ 14;\r\n\r\n      escalatorGroup.add(returnStep);\r\n\r\n      returnSteps.push(returnStep);\r\n    }\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Model transform\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    escalatorGroup.rotation.y =\r\n      modelState.rotationY;\r\n\r\n    escalatorGroup.rotation.x =\r\n      0.12;\r\n\r\n    escalatorGroup.position.set(\r\n      1.10,\r\n      -0.18,\r\n      0\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Set model by solution\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function setModelBySolution(solutionKey) {\r\n    const solution = solutions[solutionKey];\r\n\r\n    if (!solution) return;\r\n\r\n    currentSolutionKey = solutionKey;\r\n\r\n    modelState.targetAngle =\r\n      solution.angle;\r\n\r\n    modelState.targetSpeed =\r\n      solution.speed;\r\n\r\n    modelState.targetWalkway =\r\n      solution.isWalkway;\r\n\r\n    modelState.targetRotationY =\r\n      solution.rotationY;\r\n\r\n    cameraTarget.x =\r\n      solution.camera.x;\r\n\r\n    cameraTarget.y =\r\n      solution.camera.y;\r\n\r\n    cameraTarget.z =\r\n      solution.camera.z;\r\n\r\n    setTextContent(solutionKey);\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Scroll progress\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function updateScrollProgress() {\r\n    const section =\r\n      document.querySelector(\".mp-3d-section\");\r\n\r\n    if (!section) return;\r\n\r\n    const rect =\r\n      section.getBoundingClientRect();\r\n\r\n    const viewport =\r\n      window.innerHeight ||\r\n      document.documentElement.clientHeight;\r\n\r\n    const total =\r\n      rect.height +\r\n      viewport;\r\n\r\n    const visible =\r\n      viewport -\r\n      rect.top;\r\n\r\n    scrollProgress =\r\n      Math.max(\r\n        0,\r\n        Math.min(\r\n          1,\r\n          visible \/ total\r\n        )\r\n      );\r\n  }\r\n\r\n  window.addEventListener(\r\n    \"scroll\",\r\n    updateScrollProgress,\r\n    {\r\n      passive: true\r\n    }\r\n  );\r\n\r\n  updateScrollProgress();\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Update step positions\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function updateStepPositions(delta) {\r\n    const modeMultiplier =\r\n      modes[currentModeKey]\r\n        ? modes[currentModeKey].multiplier\r\n        : 1;\r\n\r\n    modelState.angle +=\r\n      (\r\n        modelState.targetAngle -\r\n        modelState.angle\r\n      ) *\r\n      0.045;\r\n\r\n    modelState.speed +=\r\n      (\r\n        modelState.targetSpeed -\r\n        modelState.speed\r\n      ) *\r\n      0.045;\r\n\r\n    modelState.rotationY +=\r\n      (\r\n        modelState.targetRotationY -\r\n        modelState.rotationY\r\n      ) *\r\n      0.045;\r\n\r\n    modelState.isWalkway =\r\n      modelState.targetWalkway;\r\n\r\n    const lowerX = -3.22;\r\n    const upperX = 3.22;\r\n    const lowerY = -0.22;\r\n\r\n    const travelHeight =\r\n      modelState.isWalkway\r\n        ? 0.55\r\n        : 1.34;\r\n\r\n    const velocity =\r\n      delta *\r\n      0.000075 *\r\n      modelState.speed *\r\n      modeMultiplier;\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Visible steps\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    steps.forEach(function (step, index) {\r\n      step.userData.progress =\r\n        (\r\n          step.userData.progress +\r\n          velocity\r\n        ) %\r\n        1;\r\n\r\n      const p =\r\n        step.userData.progress;\r\n\r\n      const x =\r\n        lowerX +\r\n        (\r\n          upperX -\r\n          lowerX\r\n        ) *\r\n        p;\r\n\r\n      const y =\r\n        lowerY +\r\n        travelHeight *\r\n        p;\r\n\r\n      step.position.set(\r\n        x,\r\n        y,\r\n        0\r\n      );\r\n\r\n      const tread =\r\n        step.children[0];\r\n\r\n      const riser =\r\n        step.children[1];\r\n\r\n      const frontEdge =\r\n        step.children[2];\r\n\r\n      const backEdge =\r\n        step.children[3];\r\n\r\n\r\n      \/*\r\n      |--------------------------------------------------------------------------\r\n      | Walkway\r\n      |--------------------------------------------------------------------------\r\n      *\/\r\n\r\n      if (modelState.isWalkway) {\r\n        if (tread) {\r\n          tread.scale.x = 1.55;\r\n          tread.scale.y = 0.58;\r\n          tread.position.y = 0.035;\r\n        }\r\n\r\n        if (riser) {\r\n          riser.visible = false;\r\n        }\r\n\r\n        if (frontEdge) {\r\n          frontEdge.scale.x = 1.25;\r\n          frontEdge.position.y = 0.082;\r\n        }\r\n\r\n        if (backEdge) {\r\n          backEdge.scale.x = 1.25;\r\n          backEdge.position.y = 0.082;\r\n        }\r\n      }\r\n\r\n\r\n      \/*\r\n      |--------------------------------------------------------------------------\r\n      | Escalator\r\n      |--------------------------------------------------------------------------\r\n      *\/\r\n\r\n      else {\r\n        if (tread) {\r\n          tread.scale.x = 1;\r\n          tread.scale.y = 1;\r\n          tread.position.y = 0.058;\r\n        }\r\n\r\n        if (riser) {\r\n          riser.visible = true;\r\n          riser.scale.y = 1;\r\n        }\r\n\r\n        if (frontEdge) {\r\n          frontEdge.scale.x = 1;\r\n          frontEdge.position.y = 0.125;\r\n        }\r\n\r\n        if (backEdge) {\r\n          backEdge.scale.x = 1;\r\n          backEdge.position.y = 0.122;\r\n        }\r\n      }\r\n\r\n\r\n      \/*\r\n      |--------------------------------------------------------------------------\r\n      | Step grooves\r\n      |--------------------------------------------------------------------------\r\n      *\/\r\n\r\n      for (\r\n        let i = 4;\r\n        i < step.children.length;\r\n        i += 1\r\n      ) {\r\n        step.children[i].scale.x =\r\n          modelState.isWalkway\r\n            ? 1.45\r\n            : 1;\r\n\r\n        step.children[i].visible = true;\r\n      }\r\n\r\n      step.rotation.z = 0;\r\n\r\n      const mechanicalShift =\r\n        Math.sin(\r\n          (\r\n            p *\r\n            Math.PI *\r\n            2\r\n          ) +\r\n          index *\r\n          0.42\r\n        ) *\r\n        0.004;\r\n\r\n      step.position.z =\r\n        mechanicalShift;\r\n    });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Return steps\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    returnSteps.forEach(function (step) {\r\n      step.userData.progress =\r\n        (\r\n          step.userData.progress -\r\n          velocity *\r\n          0.75 +\r\n          1\r\n        ) %\r\n        1;\r\n\r\n      const p =\r\n        step.userData.progress;\r\n\r\n      const x =\r\n        lowerX +\r\n        (\r\n          upperX -\r\n          lowerX\r\n        ) *\r\n        p;\r\n\r\n      const y =\r\n        -0.47 +\r\n        (\r\n          modelState.isWalkway\r\n            ? 0.12\r\n            : 0.22\r\n        ) *\r\n        p;\r\n\r\n      step.position.set(\r\n        x,\r\n        y,\r\n        0\r\n      );\r\n\r\n      step.scale.x =\r\n        modelState.isWalkway\r\n          ? 1.45\r\n          : 1;\r\n\r\n      step.visible =\r\n        !modelState.isWalkway;\r\n    });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Handrail markers\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    handrailMarkers.forEach(function (marker, index) {\r\n      const offset =\r\n        (\r\n          (\r\n            performance.now() *\r\n            0.000013 *\r\n            modelState.speed *\r\n            modeMultiplier\r\n          ) +\r\n          index *\r\n          0.10\r\n        ) %\r\n        1;\r\n\r\n      marker.position.x =\r\n        -3.55 +\r\n        offset *\r\n        7.1;\r\n    });\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Lighting animation\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    lightMarkers.forEach(function (light, index) {\r\n      const pulse =\r\n        0.8 +\r\n        Math.sin(\r\n          performance.now() *\r\n          0.00075 +\r\n          index\r\n        ) *\r\n        0.12;\r\n\r\n      light.scale.x =\r\n        pulse;\r\n    });\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Init Three Scene\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function initThreeScene() {\r\n    if (\r\n      !canvas ||\r\n      !window.THREE\r\n    ) {\r\n      showFallback();\r\n      return;\r\n    }\r\n\r\n    scene = new THREE.Scene();\r\n\r\n    scene.fog = new THREE.FogExp2(\r\n      0x050505,\r\n      0.048\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Camera\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    camera = new THREE.PerspectiveCamera(\r\n      36,\r\n      1,\r\n      0.1,\r\n      100\r\n    );\r\n\r\n    camera.position.set(\r\n      cameraTarget.x,\r\n      cameraTarget.y,\r\n      cameraTarget.z\r\n    );\r\n\r\n    camera.lookAt(\r\n      0,\r\n      0.2,\r\n      0\r\n    );\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Renderer\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    renderer = new THREE.WebGLRenderer({\r\n      canvas: canvas,\r\n      antialias: true,\r\n      alpha: true,\r\n      powerPreference: \"high-performance\"\r\n    });\r\n\r\n    renderer.setPixelRatio(\r\n      Math.min(\r\n        window.devicePixelRatio || 1,\r\n        2\r\n      )\r\n    );\r\n\r\n    renderer.setClearColor(\r\n      0x000000,\r\n      0\r\n    );\r\n\r\n    renderer.shadowMap.enabled =\r\n      true;\r\n\r\n    renderer.shadowMap.type =\r\n      THREE.PCFSoftShadowMap;\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Lights\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const ambient =\r\n      new THREE.AmbientLight(\r\n        0xffffff,\r\n        0.58\r\n      );\r\n\r\n    scene.add(ambient);\r\n\r\n\r\n    const keyLight =\r\n      new THREE.DirectionalLight(\r\n        0xffffff,\r\n        1.45\r\n      );\r\n\r\n    keyLight.position.set(\r\n      4.5,\r\n      6.8,\r\n      5.5\r\n    );\r\n\r\n    keyLight.castShadow = true;\r\n\r\n    keyLight.shadow.mapSize.width =\r\n      2048;\r\n\r\n    keyLight.shadow.mapSize.height =\r\n      2048;\r\n\r\n    scene.add(keyLight);\r\n\r\n\r\n    const fillLight =\r\n      new THREE.PointLight(\r\n        0xffffff,\r\n        0.9,\r\n        14\r\n      );\r\n\r\n    fillLight.position.set(\r\n      -4.6,\r\n      2.5,\r\n      -3.6\r\n    );\r\n\r\n    scene.add(fillLight);\r\n\r\n\r\n    const rimLight =\r\n      new THREE.PointLight(\r\n        0xffffff,\r\n        1.25,\r\n        10\r\n      );\r\n\r\n    rimLight.position.set(\r\n      3.5,\r\n      2.8,\r\n      -4.2\r\n    );\r\n\r\n    scene.add(rimLight);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Shadow floor\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    const shadowFloor =\r\n      new THREE.Mesh(\r\n        new THREE.PlaneGeometry(\r\n          15,\r\n          12\r\n        ),\r\n        new THREE.ShadowMaterial({\r\n          opacity: 0.20\r\n        })\r\n      );\r\n\r\n    shadowFloor.rotation.x =\r\n      -Math.PI \/ 2;\r\n\r\n    shadowFloor.position.y =\r\n      -1.45;\r\n\r\n    shadowFloor.receiveShadow =\r\n      true;\r\n\r\n    scene.add(shadowFloor);\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Build\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    buildEscalatorModel();\r\n    resizeThree();\r\n\r\n    let lastTime =\r\n      performance.now();\r\n\r\n\r\n    \/*\r\n    |--------------------------------------------------------------------------\r\n    | Animation loop\r\n    |--------------------------------------------------------------------------\r\n    *\/\r\n\r\n    function animate(now) {\r\n      const delta =\r\n        Math.min(\r\n          33,\r\n          now - lastTime\r\n        );\r\n\r\n      lastTime = now;\r\n\r\n      updateScrollProgress();\r\n      updateStepPositions(delta);\r\n\r\n      const scrollCameraLift =\r\n        scrollProgress *\r\n        0.75;\r\n\r\n      const scrollCameraSide =\r\n        (\r\n          scrollProgress -\r\n          0.5\r\n        ) *\r\n        0.55;\r\n\r\n\r\n      \/*\r\n      |--------------------------------------------------------------------------\r\n      | Camera movement\r\n      |--------------------------------------------------------------------------\r\n      *\/\r\n\r\n      if (camera) {\r\n        camera.position.x +=\r\n          (\r\n            (\r\n              cameraTarget.x +\r\n              mouse.x *\r\n              0.22 +\r\n              scrollCameraSide\r\n            ) -\r\n            camera.position.x\r\n          ) *\r\n          0.035;\r\n\r\n        camera.position.y +=\r\n          (\r\n            (\r\n              cameraTarget.y +\r\n              mouse.y *\r\n              0.12 +\r\n              scrollCameraLift\r\n            ) -\r\n            camera.position.y\r\n          ) *\r\n          0.035;\r\n\r\n        camera.position.z +=\r\n          (\r\n            (\r\n              cameraTarget.z -\r\n              scrollProgress *\r\n              0.75\r\n            ) -\r\n            camera.position.z\r\n          ) *\r\n          0.035;\r\n\r\n        camera.lookAt(\r\n          0,\r\n          0.25 +\r\n          scrollProgress *\r\n          0.25,\r\n          0\r\n        );\r\n      }\r\n\r\n\r\n      \/*\r\n      |--------------------------------------------------------------------------\r\n      | Model movement\r\n      |--------------------------------------------------------------------------\r\n      *\/\r\n\r\n      if (escalatorGroup) {\r\n        escalatorGroup.rotation.y +=\r\n          (\r\n            (\r\n              modelState.rotationY +\r\n              mouse.x *\r\n              0.065 +\r\n              scrollProgress *\r\n              0.10\r\n            ) -\r\n            escalatorGroup.rotation.y\r\n          ) *\r\n          0.035;\r\n\r\n        escalatorGroup.rotation.x +=\r\n          (\r\n            (\r\n              0.12 +\r\n              mouse.y *\r\n              0.03\r\n            ) -\r\n            escalatorGroup.rotation.x\r\n          ) *\r\n          0.035;\r\n      }\r\n\r\n      renderer.render(\r\n        scene,\r\n        camera\r\n      );\r\n\r\n      requestAnimationFrame(\r\n        animate\r\n      );\r\n    }\r\n\r\n    requestAnimationFrame(\r\n      animate\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Resize Three\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  function resizeThree() {\r\n    if (\r\n      !canvas ||\r\n      !renderer ||\r\n      !camera\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    const rect =\r\n      canvas.getBoundingClientRect();\r\n\r\n    if (\r\n      !rect.width ||\r\n      !rect.height\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    renderer.setSize(\r\n      rect.width,\r\n      rect.height,\r\n      false\r\n    );\r\n\r\n    camera.aspect =\r\n      rect.width \/\r\n      rect.height;\r\n\r\n    camera.updateProjectionMatrix();\r\n  }\r\n\r\n  window.addEventListener(\r\n    \"resize\",\r\n    resizeThree\r\n  );\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Mouse movement\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  const canvasWrap =\r\n    document.querySelector(\r\n      \".mp-3d-canvas-wrap\"\r\n    );\r\n\r\n  if (canvasWrap) {\r\n    canvasWrap.addEventListener(\r\n      \"mousemove\",\r\n      function (event) {\r\n        const rect =\r\n          canvasWrap.getBoundingClientRect();\r\n\r\n        mouse.x =\r\n          (\r\n            (\r\n              event.clientX -\r\n              rect.left\r\n            ) \/\r\n            rect.width -\r\n            0.5\r\n          ) *\r\n          2;\r\n\r\n        mouse.y =\r\n          (\r\n            (\r\n              event.clientY -\r\n              rect.top\r\n            ) \/\r\n            rect.height -\r\n            0.5\r\n          ) *\r\n          -2;\r\n      }\r\n    );\r\n\r\n    canvasWrap.addEventListener(\r\n      \"mouseleave\",\r\n      function () {\r\n        mouse.x = 0;\r\n        mouse.y = 0;\r\n      }\r\n    );\r\n  }\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Start Three.js\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  initThreeScene();\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Controlli 3D\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  solutionButtons.forEach(function (button) {\r\n    button.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        setModelBySolution(\r\n          button.getAttribute(\r\n            \"data-solution\"\r\n          )\r\n        );\r\n      }\r\n    );\r\n  });\r\n\r\n\r\n  modeButtons.forEach(function (button) {\r\n    button.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        setMode(\r\n          button.getAttribute(\r\n            \"data-mode\"\r\n          )\r\n        );\r\n      }\r\n    );\r\n  });\r\n\r\n\r\n  hotspotButtons.forEach(function (button) {\r\n    button.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        setPoint(\r\n          button.getAttribute(\r\n            \"data-point\"\r\n          )\r\n        );\r\n      }\r\n    );\r\n  });\r\n\r\n\r\n  \/*\r\n  |--------------------------------------------------------------------------\r\n  | Initial state\r\n  |--------------------------------------------------------------------------\r\n  *\/\r\n\r\n  setModelBySolution(\"s\");\r\n  setPoint(\"safety\");\r\n  setMode(\"continuo\");\r\n\r\n});<\/script><\/div>\n\t\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>\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u0430\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438\u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u0411\u0435\u0441\u0448\u0443\u043c\u043d\u044b\u0435, \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u044b\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u043b\u044e\u0434\u0435\u0439 \u0432 \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u043e\u0442\u0435\u043b\u044f\u0445, \u043e\u0444\u0438\u0441\u0430\u0445, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430\u0445, \u043d\u0430 \u0432\u043e\u043a\u0437\u0430\u043b\u0430\u0445, \u0432 \u043c\u0435\u0442\u0440\u043e \u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u0421\u0438\u0441\u0442\u0435\u043c\u044b, \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442 \u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430\u0441 \u042d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044bMillepiani \u0421\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0410\u0441\u0441\u043e\u0440\u0442\u0438\u043c\u0435\u043d\u0442 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2540","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ru_RU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"millepiani.com -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-23T15:30:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-15T17:51:32+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani\" \/>\n\t\t<meta name=\"twitter:description\" content=\"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/#listItem\",\"name\":\"\\u0414\\u0412\\u0418\\u0416\\u0423\\u0429\\u0418\\u0415\\u0421\\u042f \\u0414\\u041e\\u0420\\u041e\\u0416\\u041a\\u0418 \\u0418 \\u042d\\u0421\\u041a\\u0410\\u041b\\u0410\\u0422\\u041e\\u0420\\u042b\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/#listItem\",\"position\":2,\"name\":\"\\u0414\\u0412\\u0418\\u0416\\u0423\\u0429\\u0418\\u0415\\u0421\\u042f \\u0414\\u041e\\u0420\\u041e\\u0416\\u041a\\u0418 \\u0418 \\u042d\\u0421\\u041a\\u0410\\u041b\\u0410\\u0422\\u041e\\u0420\\u042b\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#organization\",\"name\":\"millepiani.com\",\"url\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/#webpage\",\"url\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/\",\"name\":\"\\u0422\\u0440\\u0430\\u0432\\u043e\\u043b\\u0430\\u0442\\u043e\\u0440\\u044b \\u0438 \\u044d\\u0441\\u043a\\u0430\\u043b\\u0430\\u0442\\u043e\\u0440\\u044b \\u043d\\u0430 \\u0437\\u0430\\u043a\\u0430\\u0437 | Millepiani\",\"description\":\"\\u041e\\u0442\\u043a\\u0440\\u043e\\u0439\\u0442\\u0435 \\u0434\\u043b\\u044f \\u0441\\u0435\\u0431\\u044f \\u0442\\u0440\\u0430\\u0432\\u043e\\u043b\\u0430\\u0442\\u043e\\u0440\\u044b \\u0438 \\u044d\\u0441\\u043a\\u0430\\u043b\\u0430\\u0442\\u043e\\u0440\\u044b Millepiani \\u0434\\u043b\\u044f \\u0442\\u043e\\u0440\\u0433\\u043e\\u0432\\u044b\\u0445 \\u0446\\u0435\\u043d\\u0442\\u0440\\u043e\\u0432, \\u043e\\u0442\\u0435\\u043b\\u0435\\u0439, \\u043e\\u0444\\u0438\\u0441\\u043e\\u0432, \\u0430\\u044d\\u0440\\u043e\\u043f\\u043e\\u0440\\u0442\\u043e\\u0432 \\u0438 \\u0432\\u043e\\u043a\\u0437\\u0430\\u043b\\u043e\\u0432: \\u0431\\u0435\\u0437\\u043e\\u043f\\u0430\\u0441\\u043d\\u044b\\u0435, \\u0442\\u0438\\u0445\\u0438\\u0435 \\u0438 \\u044d\\u0444\\u0444\\u0435\\u043a\\u0442\\u0438\\u0432\\u043d\\u044b\\u0435 \\u0440\\u0435\\u0448\\u0435\\u043d\\u0438\\u044f.\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\\\/#breadcrumblist\"},\"datePublished\":\"2026-05-23T15:30:15+00:00\",\"dateModified\":\"2026-09-15T17:51:32+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#website\",\"url\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/\",\"name\":\"millepiani.com\",\"inLanguage\":\"ru-RU\",\"publisher\":{\"@id\":\"https:\\\/\\\/millepiani.com\\\/ru\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani","description":"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","canonical_url":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/millepiani.com\/ru\/#listItem","position":1,"name":"Home","item":"https:\/\/millepiani.com\/ru\/","nextItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/#listItem","name":"\u0414\u0412\u0418\u0416\u0423\u0429\u0418\u0415\u0421\u042f \u0414\u041e\u0420\u041e\u0416\u041a\u0418 \u0418 \u042d\u0421\u041a\u0410\u041b\u0410\u0422\u041e\u0420\u042b"}},{"@type":"ListItem","@id":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/#listItem","position":2,"name":"\u0414\u0412\u0418\u0416\u0423\u0429\u0418\u0415\u0421\u042f \u0414\u041e\u0420\u041e\u0416\u041a\u0418 \u0418 \u042d\u0421\u041a\u0410\u041b\u0410\u0422\u041e\u0420\u042b","previousItem":{"@type":"ListItem","@id":"https:\/\/millepiani.com\/ru\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/millepiani.com\/ru\/#organization","name":"millepiani.com","url":"https:\/\/millepiani.com\/ru\/"},{"@type":"WebPage","@id":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/#webpage","url":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/","name":"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani","description":"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/millepiani.com\/ru\/#website"},"breadcrumb":{"@id":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/#breadcrumblist"},"datePublished":"2026-05-23T15:30:15+00:00","dateModified":"2026-09-15T17:51:32+00:00"},{"@type":"WebSite","@id":"https:\/\/millepiani.com\/ru\/#website","url":"https:\/\/millepiani.com\/ru\/","name":"millepiani.com","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/millepiani.com\/ru\/#organization"}}]},"og:locale":"ru_RU","og:site_name":"millepiani.com -","og:type":"article","og:title":"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani","og:description":"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","og:url":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/","article:published_time":"2026-05-23T15:30:15+00:00","article:modified_time":"2026-09-15T17:51:32+00:00","twitter:card":"summary_large_image","twitter:title":"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani","twitter:description":"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f."},"aioseo_meta_data":{"post_id":"2540","title":"\u0422\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b \u043d\u0430 \u0437\u0430\u043a\u0430\u0437 | Millepiani","description":"\u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0442\u0440\u0430\u0432\u043e\u043b\u0430\u0442\u043e\u0440\u044b \u0438 \u044d\u0441\u043a\u0430\u043b\u0430\u0442\u043e\u0440\u044b Millepiani \u0434\u043b\u044f \u0442\u043e\u0440\u0433\u043e\u0432\u044b\u0445 \u0446\u0435\u043d\u0442\u0440\u043e\u0432, \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u0438\u0441\u043e\u0432, \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0432\u043e\u043a\u0437\u0430\u043b\u043e\u0432: \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435, \u0442\u0438\u0445\u0438\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-14 20:24:17","updated":"2026-09-15 18:48:12","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/millepiani.com\/ru\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t\u0414\u0412\u0418\u0416\u0423\u0429\u0418\u0415\u0421\u042f \u0414\u041e\u0420\u041e\u0416\u041a\u0418 \u0418 \u042d\u0421\u041a\u0410\u041b\u0410\u0422\u041e\u0420\u042b\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/millepiani.com\/ru\/"},{"label":"\u0414\u0412\u0418\u0416\u0423\u0429\u0418\u0415\u0421\u042f \u0414\u041e\u0420\u041e\u0416\u041a\u0418 \u0418 \u042d\u0421\u041a\u0410\u041b\u0410\u0422\u041e\u0420\u042b","link":"https:\/\/millepiani.com\/ru\/%d0%b4%d0%b2%d0%b8%d0%b6%d1%83%d1%89%d0%b8%d0%b5%d1%81%d1%8f-%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%ba%d0%b8-%d0%b8-%d1%8d%d1%81%d0%ba%d0%b0%d0%bb%d0%b0%d1%82%d0%be%d1%80%d1%8b\/"}],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/pages\/2540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/comments?post=2540"}],"version-history":[{"count":4,"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/pages\/2540\/revisions"}],"predecessor-version":[{"id":2557,"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/pages\/2540\/revisions\/2557"}],"wp:attachment":[{"href":"https:\/\/millepiani.com\/ru\/wp-json\/wp\/v2\/media?parent=2540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}