{"id":1269,"date":"2025-05-13T09:50:55","date_gmt":"2025-05-13T09:50:55","guid":{"rendered":"https:\/\/ege.orgo.ee\/ravetti\/"},"modified":"2025-08-15T13:16:21","modified_gmt":"2025-08-15T13:16:21","slug":"ravetti","status":"publish","type":"page","link":"https:\/\/ege.orgo.ee\/en\/ravetti\/","title":{"rendered":"Ravetti"},"content":{"rendered":"<section class=\"relative flex items-end text-left h-24 alignfull wp-block-page-header\"\n    id=\"page-header-69dcf1bc385f2\" style=\"background-color: var(--primary-color);\">\n    <div class=\"container mx-auto px-4 max-w-7xl\">\n        <h1 class=\"text-6xl md:text-7xl  font-walsheim font-bold m-0 -mb-[13px] leading-none\"\n             style=\"color: #ffffff;\" >\n            RAVETTI\n        <\/h1>\n    <\/div>\n<\/section>\n\n\n<style>\n    \/* Scope all styles to this specific block to prevent conflicts *\/\n    #page-header-69dcf1bc385f2 {\n        position: relative;\n        display: flex;\n        align-items: flex-end;\n    }\n\n    \/* Frontend text styling classes *\/\n    #page-header-69dcf1bc385f2 h1.uppercase {\n        text-transform: uppercase;\n    }\n\n    #page-header-69dcf1bc385f2 h1.page-header-outline {\n        -webkit-text-stroke-color: white;\n        text-stroke-color: white;\n        color: transparent;\n        -webkit-text-fill-color: transparent;\n    }\n\n    #page-header-69dcf1bc385f2 h1.page-header-outline-sm {\n        -webkit-text-stroke-width: 1px;\n        text-stroke-width: 1px;\n    }\n\n    #page-header-69dcf1bc385f2 h1.page-header-outline-md {\n        -webkit-text-stroke-width: 2px;\n        text-stroke-width: 2px;\n    }\n\n    #page-header-69dcf1bc385f2 h1.page-header-outline-lg {\n        -webkit-text-stroke-width: 4px;\n        text-stroke-width: 4px;\n    }\n\n    #page-header-69dcf1bc385f2 h1.page-header-transparent {\n        color: transparent !important;\n        -webkit-text-fill-color: transparent !important;\n    }\n\n    \/* Editor-specific styling to match frontend exactly *\/\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 {\n        position: relative !important;\n        display: flex !important;\n        align-items: flex-end !important;\n        background-color: var(--primary-color) !important;\n        min-height: 6rem !important;\n\n                    justify-content: flex-start !important;\n            }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 .container {\n        max-width: 80rem !important;\n        \/* max-w-7xl equivalent *\/\n        margin-left: auto !important;\n        margin-right: auto !important;\n        padding-left: 1rem !important;\n        \/* px-4 equivalent *\/\n        padding-right: 1rem !important;\n        \/* px-4 equivalent *\/\n        width: 100% !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1 {\n        font-family: var(--font-heading, 'GT Walsheim Pro', sans-serif) !important;\n        font-weight: 700 !important;\n        line-height: 1 !important;\n        margin: 0 !important;\n        margin-bottom: -13px !important;\n\n                    color: #ffffff !important;\n        \n                    text-align: left !important;\n            }\n\n    \/* Editor text styling classes *\/\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.uppercase {\n        text-transform: uppercase !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.page-header-outline {\n        -webkit-text-stroke-color: white !important;\n        text-stroke-color: white !important;\n        color: transparent !important;\n        -webkit-text-fill-color: transparent !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.page-header-outline-sm {\n        -webkit-text-stroke-width: 1px !important;\n        text-stroke-width: 1px !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.page-header-outline-md {\n        -webkit-text-stroke-width: 2px !important;\n        text-stroke-width: 2px !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.page-header-outline-lg {\n        -webkit-text-stroke-width: 4px !important;\n        text-stroke-width: 4px !important;\n    }\n\n    .editor-styles-wrapper #page-header-69dcf1bc385f2 h1.page-header-transparent {\n        color: transparent !important;\n        -webkit-text-fill-color: transparent !important;\n    }\n\n    \/* Size-specific editor styling - exact Tailwind equivalents *\/\n            .editor-styles-wrapper #page-header-69dcf1bc385f2 h1 {\n            font-size: 4.5rem !important;\n            \/* text-6xl: 72px *\/\n        }\n\n        @media (min-width: 768px) {\n            .editor-styles-wrapper #page-header-69dcf1bc385f2 h1 {\n                font-size: 5.25rem !important;\n                \/* md:text-7xl: 84px *\/\n            }\n        }\n    \n    \/* Subtitle section editor styling *\/\n    .editor-styles-wrapper .page-header-subtitle {\n        position: relative !important;\n        background-color: transparent !important;\n\n                    text-align: left !important;\n            }\n\n    .editor-styles-wrapper .page-header-subtitle .container {\n        max-width: 80rem !important;\n        \/* max-w-7xl equivalent *\/\n        margin-left: auto !important;\n        margin-right: auto !important;\n        padding-left: 1rem !important;\n        \/* px-4 equivalent *\/\n        padding-right: 1rem !important;\n        \/* px-4 equivalent *\/\n        width: 100% !important;\n    }\n\n    .editor-styles-wrapper .page-header-subtitle .subtitle-content {\n        font-family: var(--font-heading, 'GT Walsheim Pro', sans-serif) !important;\n        max-width: 48rem !important;\n        \/* max-w-3xl equivalent *\/\n        color: #ffffff !important;\n\n            }\n\n    \/* Size-specific subtitle styling - exact Tailwind equivalents *\/\n            .editor-styles-wrapper .page-header-subtitle .subtitle-content {\n            font-size: 1.5rem !important;\n            \/* text-2xl: 24px *\/\n            padding-top: 1.25rem !important;\n            \/* py-5: 20px *\/\n            padding-bottom: 1.25rem !important;\n        }\n\n        @media (min-width: 768px) {\n            .editor-styles-wrapper .page-header-subtitle .subtitle-content {\n                font-size: 1.875rem !important;\n                \/* md:text-3xl: 30px *\/\n            }\n        }\n    <\/style>\n\n\n\n\n<div id=\"content-with-image-69dcf1bc3ae95\"\n    class=\"wp-block-content-with-image py-16 md:py-24 bg-light \">\n    <div class=\"container mx-auto px-4 max-w-7xl\">\n        <div class=\"grid grid-cols-1 lg:grid-cols-2 gap-8 items-center lg:grid-flow-dense\">\n\n            <div\n                class=\"lg:col-start-1 lg:col-span-1 mb-8 lg:mb-0\">\n                                    <h2 class=\"text-3xl font-bold text-gray-800 mb-6\">Ravetti<\/h2>\n                \n                                    <div class=\"prose max-w-none text-gray-600\">\n                        <p><strong>AS INF Ehitus<\/strong> is the exclusive distributor of the stop\/shut-off technology for Dn 8\u201d (DN 200) to Dn 24\u201d (DN600) pipelines of Stop\/System equipment of the Italian manufacturer <strong>Ravetti s.r.l.<\/strong> We provide shut-off, construction and repair services for steel gas, water and district heating pipelines.<\/p>\n<p>The advantages of Ravetti closing devices are:<\/p>\n<ul>\n<li>The heat demand of customers will be maintained during pipeline repairs and reconnections.<\/li>\n<li>No drop in pressure and temperature during the renovation work.<\/li>\n<li>Emptying of the pipeline along the entire route is not necessary.<\/li>\n<li>Mobile and compact execution of works<\/li>\n<li>Pipe sizes DN25 (1\u201d) to DN500 (20\u201d)<\/li>\n<\/ul>\n\n                    <\/div>\n                \n                \n                            <\/div>\n\n\n            <div\n                class=\"lg:col-start-2 lg:col-span-1\">\n                                                            \n                        <div class=\"overflow-hidden shadow-lg relative\">\n                                                            \n                                <div class=\"swiper-container auto-height-slider\" data-slider=\"content-with-image-69dcf1bc3ae95\"\n                                    data-auto-height=\"true\">\n                                    <div class=\"swiper-wrapper\">\n                                                                                    <div class=\"swiper-slide\">\n                                                <img decoding=\"async\" src=\"https:\/\/ege.orgo.ee\/app\/uploads\/2025\/05\/Ravetti.jpg\" alt=\"\"\n                                                    class=\"w-full h-auto object-contain block\" loading=\"lazy\">\n                                            <\/div>\n                                                                                    <div class=\"swiper-slide\">\n                                                <img decoding=\"async\" src=\"https:\/\/ege.orgo.ee\/app\/uploads\/2025\/05\/Ravetti3.jpg\" alt=\"\"\n                                                    class=\"w-full h-auto object-contain block\" loading=\"lazy\">\n                                            <\/div>\n                                                                                    <div class=\"swiper-slide\">\n                                                <img decoding=\"async\" src=\"https:\/\/ege.orgo.ee\/app\/uploads\/2025\/05\/Ravetti2.jpg\" alt=\"\"\n                                                    class=\"w-full h-auto object-contain block\" loading=\"lazy\">\n                                            <\/div>\n                                                                            <\/div>\n                                    <!-- Custom navigation and pagination positioned absolutely -->\n                                    <div class=\"absolute bottom-4 right-4 flex items-center z-10\">\n                                        <div\n                                            class=\"swiper-button-prev custom-prev-btn !static !mt-0 !h-10 !w-10 bg-black bg-opacity-50 flex items-center justify-center rounded-none transition-all hover:bg-opacity-70\">\n                                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\"\n                                                viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\"\n                                                stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                                <path d=\"M15 18l-6-6 6-6\"><\/path>\n                                            <\/svg>\n                                        <\/div>\n                                        <div\n                                            class=\"swiper-pagination !static !w-auto !h-10 bg-black bg-opacity-50 text-white px-3 inline-flex items-center justify-center\">\n                                        <\/div>\n                                        <div\n                                            class=\"swiper-button-next custom-next-btn !static !mt-0 !h-10 !w-10 bg-black bg-opacity-50 flex items-center justify-center rounded-none transition-all hover:bg-opacity-70\">\n                                            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\"\n                                                viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" stroke-width=\"2\"\n                                                stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                                <path d=\"M9 18l6-6-6-6\"><\/path>\n                                            <\/svg>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n\n                        <script>\n                            document.addEventListener('DOMContentLoaded', function() {\n                                \/\/ Initialize Swiper slider\n                                if (typeof Swiper === 'undefined') {\n                                    \/\/ Load Swiper JS and CSS if not already loaded\n                                    loadSwiper().then(() => {\n                                        initSlider('content-with-image-69dcf1bc3ae95');\n                                    });\n                                } else {\n                                    initSlider('content-with-image-69dcf1bc3ae95');\n                                }\n                            });\n\n                            function loadSwiper() {\n                                return new Promise((resolve, reject) => {\n                                    \/\/ Check if Swiper is already loaded\n                                    if (typeof Swiper !== 'undefined') {\n                                        resolve();\n                                        return;\n                                    }\n\n                                    \/\/ Load CSS\n                                    const swiperCss = document.createElement('link');\n                                    swiperCss.rel = 'stylesheet';\n                                    swiperCss.href = 'https:\/\/unpkg.com\/swiper@8\/swiper-bundle.min.css';\n                                    document.head.appendChild(swiperCss);\n\n                                    \/\/ Load JS\n                                    const swiperJs = document.createElement('script');\n                                    swiperJs.src = 'https:\/\/unpkg.com\/swiper@8\/swiper-bundle.min.js';\n                                    swiperJs.onload = () => resolve();\n                                    swiperJs.onerror = () => reject(new Error('Failed to load Swiper'));\n                                    document.head.appendChild(swiperJs);\n                                });\n                            }\n\n                            function initSlider(blockId) {\n                                const sliderElement = document.querySelector(`[data-slider=\"${blockId}\"]`);\n                                const isAutoHeight = sliderElement && sliderElement.dataset.autoHeight === 'true';\n\n                                const swiperConfig = {\n                                    loop: true,\n                                    pagination: {\n                                        el: '.swiper-pagination',\n                                        type: 'fraction',\n                                        formatFractionCurrent: function(number) {\n                                            return number;\n                                        },\n                                        formatFractionTotal: function(number) {\n                                            return number;\n                                        },\n                                        renderFraction: function(currentClass, totalClass) {\n                                            return '<span class=\"' + currentClass + '\"><\/span>' +\n                                                '\/' +\n                                                '<span class=\"' + totalClass + '\"><\/span>';\n                                        }\n                                    },\n                                    navigation: {\n                                        nextEl: '.swiper-button-next',\n                                        prevEl: '.swiper-button-prev',\n                                    },\n                                    autoplay: {\n                                        delay: 5000,\n                                        disableOnInteraction: false,\n                                    }\n                                };\n\n                                \/\/ Add auto-height configuration for original aspect ratio\n                                if (isAutoHeight) {\n                                    swiperConfig.autoHeight = true;\n                                    swiperConfig.spaceBetween = 0;\n\n                                    \/\/ Add transition for smooth height changes\n                                    swiperConfig.on = {\n                                        slideChangeTransitionStart: function() {\n                                            \/\/ Smooth transition for height changes\n                                            this.el.style.transition = 'height 0.3s ease';\n                                        },\n                                        slideChangeTransitionEnd: function() {\n                                            \/\/ Remove transition after slide change\n                                            setTimeout(() => {\n                                                this.el.style.transition = '';\n                                            }, 300);\n                                        }\n                                    };\n                                }\n\n                                new Swiper(`[data-slider=\"${blockId}\"]`, swiperConfig);\n                            }\n                        <\/script>\n                                                <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<style>\n    \/* Editor-specific title styling *\/\n    .editor-styles-wrapper #content-with-image-69dcf1bc3ae95 h2 {\n        font-size: 1.875rem !important;\n        \/* text-3xl equivalent *\/\n        font-weight: 700 !important;\n        line-height: 1.1 !important;\n        font-family: var(--font-heading, 'GT Walsheim Pro', sans-serif) !important;\n    }\n\n    \/* Button styles - keep original styling, only fix arrow hover *\/\n    #content-with-image-69dcf1bc3ae95 .btn-primary svg {\n        margin-left: 10px;\n        width: 20px;\n        height: 20px;\n        transition: all 0.3s ease;\n    }\n\n    \/* Fix arrow color on button hover *\/\n    #content-with-image-69dcf1bc3ae95 .btn-primary:hover svg {\n        stroke: currentColor !important;\n    }\n\n    \/* Editor-specific button styling *\/\n    .editor-styles-wrapper #content-with-image-69dcf1bc3ae95 .btn-primary {\n        font-weight: 600 !important;\n        font-family: var(--font-heading, 'GT Walsheim Pro', sans-serif) !important;\n    }\n\n    \/* Auto-height slider specific styles *\/\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider {\n        height: auto !important;\n        min-height: 200px;\n        \/* Minimum height to prevent layout shift *\/\n    }\n\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider .swiper-wrapper {\n        align-items: flex-start;\n        \/* Align slides to top *\/\n    }\n\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider .swiper-slide {\n        height: auto !important;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider .swiper-slide img {\n        max-width: 100%;\n        height: auto;\n        object-fit: contain;\n    }\n\n    \/* Ensure navigation controls are properly positioned for auto-height *\/\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider .absolute {\n        position: absolute !important;\n    }\n\n    \/* Smooth height transitions *\/\n    #content-with-image-69dcf1bc3ae95 .auto-height-slider.swiper-container-autoheight {\n        transition: height 0.3s ease;\n    }\n<\/style>\n\n\n<div id=\"video-display-69dcf1bc3cb1c\" class=\"video-display mx-auto max-w-5xl  pb-16 overflow-hidden\">\n            <h3 class=\"video-title text-xl font-bold mb-2\">Introduction to Ravetti<\/h3>\n    \n            <div class=\"video-description mb-4\">\n            <p>The following video provides more detailed information on the Ravetti technology. If you\u2019re interested in this service, please contact us and we\u2019ll respond as soon as possible. <\/p>\n        <\/div>\n    \n    <div class=\"video-container relative overflow-hidden aspect-w-16 aspect-h-9 shadow-lg\"\n        style=\"padding-bottom: 56.25%;\">\n                    <video class=\"absolute top-0 left-0 w-full h-full object-cover\" controls\n                  \n                playsinline poster=\"https:\/\/ege.orgo.ee\/app\/uploads\/2025\/05\/407718340_831436055657246_6800159688350838335_n.jpg\">\n                <source src=\"https:\/\/ege.orgo.ee\/app\/uploads\/2025\/05\/RAVETTI_VIDEO_water.mp4\" type=\"video\/mp4\">\n                Your browser does not support the video tag.\n            <\/video>\n            <\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1269","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/pages\/1269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/comments?post=1269"}],"version-history":[{"count":4,"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/pages\/1269\/revisions"}],"predecessor-version":[{"id":2193,"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/pages\/1269\/revisions\/2193"}],"wp:attachment":[{"href":"https:\/\/ege.orgo.ee\/en\/wp-json\/wp\/v2\/media?parent=1269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}