{"id":539,"date":"2026-04-24T13:32:36","date_gmt":"2026-04-24T11:32:36","guid":{"rendered":"http:\/\/192.168.2.11\/?page_id=539"},"modified":"2026-05-11T12:41:26","modified_gmt":"2026-05-11T10:41:26","slug":"transport-i-lacznosc","status":"publish","type":"page","link":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/transport-i-lacznosc\/","title":{"rendered":"Transport i \u0142\u0105czno\u015b\u0107"},"content":{"rendered":"    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">WYDATKI NA TRANSPORT I \u0141\u0104CZNO\u015a\u0106<\/h2>\n                                            <\/div>\n                        \n            <div class=\"stats-grid stats-grid-1\">\n                                    <div class=\"stat-box\" style=\"background-color: #ffffff;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">W 2025 R.<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"19358839\"\n                                  data-suffix=\",25  z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-dd279044091aa92ab54c46b67a6f47b9\" style=\"color:#14357a\">ZWI\u0104ZEK POWIATOWO-GMINNY <br>\u201e\u017bYRARDOWSKIE PRZEWOZY AUTOBUSOWE\u201d<\/h2>\n\n\n\n<p>Od 1 stycznia 2025 roku w Powiecie \u017byrardowskim nast\u0105pi\u0142a istotna zmiana w organizacji publicznego transportu zbiorowego. Dotychczasowy model, w kt\u00f3rym funkcj\u0119 organizatora pe\u0142ni\u0142 powiat, zosta\u0142 zast\u0105piony now\u0105 struktur\u0105 \u2013 Zwi\u0105zkiem Powiatowo-Gminnym \u201e\u017byrardowskie Przewozy Autobusowe\u201d. Decyzja ta by\u0142a konsekwencj\u0105 obwieszczenia Wojewody Mazowieckiego z dnia 28 listopada 2024 roku, w kt\u00f3rym opublikowano statut nowego zwi\u0105zku.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-30b2dd59fffdb51230e8a2fc631accfc\" style=\"color:#14357a\"><strong>Nowy organizator i zakres dzia\u0142ania<\/strong><\/h4>\n\n\n\n<p>Zwi\u0105zek Powiatowo-Gminny \u201e\u017byrardowskie Przewozy Autobusowe\u201d przej\u0105\u0142 odpowiedzialno\u015b\u0107 za organizacj\u0119 przewoz\u00f3w autobusowych o charakterze u\u017cyteczno\u015bci publicznej na terenie powiatu. Obszar jego dzia\u0142ania obejmuje Powiat \u017byrardowski, Miasto \u017byrard\u00f3w oraz gminy: Mszczon\u00f3w, Radziejowice, Wiskitki i Puszcza Maria\u0144ska.<\/p>\n\n\n\n<p>Cz\u0142onkami zwi\u0105zku s\u0105 jednostki samorz\u0105du terytorialnego z tego obszaru, co pozwala na lepsz\u0105 koordynacj\u0119 dzia\u0142a\u0144 oraz dostosowanie siatki po\u0142\u0105cze\u0144 do lokalnych potrzeb mieszka\u0144c\u00f3w.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-15bb5636d2a032c682079db00b83aa38\" style=\"color:#14357a\"><strong>Operatorzy i realizacja us\u0142ug<\/strong><\/h4>\n\n\n\n<p>W celu zapewnienia ci\u0105g\u0142o\u015bci transportu publicznego, Zwi\u0105zek zawar\u0142 w dniu 31 grudnia 2024 roku umowy na \u015bwiadczenie us\u0142ug przewozowych na rok 2025. Operatorami zosta\u0142y:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Przedsi\u0119biorstwo Komunikacji Samochodowej w Gostyninie Sp. z o.o.<\/strong><\/li>\n\n\n\n<li><strong>Us\u0142ugi Transportowe Jerzy Wi\u015bniewski<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Umowy obowi\u0105zywa\u0142y w okresie od 1 stycznia do 31 grudnia 2025 roku i obejmowa\u0142y realizacj\u0119 przewoz\u00f3w na 62 liniach komunikacyjnych funkcjonuj\u0105cych na terenie powiatu.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-1fe326747a6c00b105002d22ff50cedf\" style=\"color:#14357a\"><strong>Siatka po\u0142\u0105cze\u0144 i znaczenie transportu<\/strong><\/h4>\n\n\n\n<p>Nowo zorganizowany system obejmuje szerok\u0105 sie\u0107 po\u0142\u0105cze\u0144, \u0142\u0105cz\u0105c\u0105 zar\u00f3wno wi\u0119ksze miejscowo\u015bci, jak i mniejsze wsie. Linie komunikacyjne zapewniaj\u0105 dojazd do szk\u00f3\u0142, miejsc pracy oraz instytucji publicznych, co ma kluczowe znaczenie dla mieszka\u0144c\u00f3w obszar\u00f3w o ograniczonej dost\u0119pno\u015bci transportowej.<\/p>\n\n\n\n<p>Utrzymanie tak rozbudowanej siatki po\u0142\u0105cze\u0144 pozwala przeciwdzia\u0142a\u0107 wykluczeniu komunikacyjnemu oraz wspiera rozw\u00f3j spo\u0142eczno-gospodarczy regionu.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-c3d52dba8f5d05fb564f54e7fcebd088\" style=\"color:#14357a\"><strong>Finansowanie transportu w 2025 roku<\/strong><\/h4>\n\n\n\n<p>Koszt funkcjonowania <strong>62 linii komunikacyjnych <\/strong>w 2025 roku wyni\u00f3s\u0142 <strong>13&nbsp;125&nbsp;929,09 z\u0142.<\/strong> <\/p>\n\n\n    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">Finansowanie zadania opiera\u0142o si\u0119 na dw\u00f3ch g\u0142\u00f3wnych \u017ar\u00f3d\u0142ach:<\/h2>\n                                            <\/div>\n                        \n            <div class=\"stats-grid stats-grid-2\">\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">\u015arodki z Funduszu Rozwoju Przewoz\u00f3w Autobusowych przyznane przez Wojewod\u0119 Mazowieckiego<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"5494215\"\n                                  data-suffix=\",30 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\">co pokazuje istotn\u0105 rol\u0119 wsparcia rz\u0105dowego w utrzymaniu lokalnych po\u0142\u0105cze\u0144 autobusowych<\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">\u015arodki w\u0142asne uczestnik\u00f3w zwi\u0105zku POWIATOWO-GMINNEGO  \u201e\u017bYRARDOWSKIE PRZEWOZY AUTOBUSOWE\u201d<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"7631713\"\n                                  data-suffix=\",79 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-f8303a473d386f9801bf51c7ea8898b1\" style=\"color:#14357a\"><strong>Dodatkowe po\u0142\u0105czenia<\/strong><\/h4>\n\n\n\n<p>Opr\u00f3cz linii organizowanych przez Zwi\u0105zek, na terenie powiatu funkcjonuj\u0105 r\u00f3wnie\u017c:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cztery linie autobusowe realizowane na podstawie zezwole\u0144 na wykonywanie regularnego przewozu os\u00f3b, s\u0105 to linie relacji \u017byrard\u00f3w \u2013 Mszczon\u00f3w, \u017byrard\u00f3w -Wiskitki&nbsp;Guz\u00f3w &#8211; R\u00f3\u017can\u00f3w, \u017byrard\u00f3w \u2013 Puszcza Maria\u0144ska p. Waleriany obs\u0142ugiwanych przez 3 przewo\u017anik\u00f3w.<\/li>\n\n\n\n<li>jedna linia mi\u0119dzy powiatami: Gr\u00f3jec \u2013 Pniewy \u2013 Mszczon\u00f3w, organizowana przez powiat gr\u00f3jecki na mocy zawartego porozumienia mi\u0119dzy powiatami w sprawie powierzenia organizacji publicznego transportu zbiorowego.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-059e37601b03095e8749c62ba1017f5e\" style=\"color:#14357a\"><strong>Nowi cz\u0142onkowie i rozszerzenie obszaru dzia\u0142ania<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 55%\"><div class=\"wp-block-media-text__content\">\n<p>Zwi\u0105zek Powiatowo-Gminny \u201e\u017byrardowskie Przewozy Autobusowe\u201d rozszerzy\u0142 sw\u00f3j obszar dzia\u0142ania o kolejne jednostki samorz\u0105du terytorialnego. W listopadzie 2025 r. do Zwi\u0105zku przyst\u0105pili: <strong>Powiat Sochaczewski, Gmina Sochaczew, Gmina Teresin, Gmina Nowa Sucha oraz Gmina \u017babia Wola.<\/strong><\/p>\n\n\n\n<p>Rozszerzenie zasi\u0119gu funkcjonowania Zwi\u0105zku jest efektem wsp\u00f3\u0142pracy i zaanga\u017cowania Starosty Powiatu Sochaczewskiego Jolanty Gont, W\u00f3jta Gminy Sochaczew Dariusza Krupy, W\u00f3jta Gminy Nowa Sucha Macieja Szymona Mo\u0144ki, W\u00f3jta Gminy Teresin Marka Olechowskiego oraz W\u00f3jt Gminy \u017babia Wola Marii Wiktorii K\u0142osiewicz.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/ZPA-mapka-1024x1024.png\" alt=\"\u017bPA-mapka\" class=\"wp-image-2904 size-full\"\/><\/figure><\/div>\n\n\n\n<p>Dzi\u0119ki przyst\u0105pieniu nowych samorz\u0105d\u00f3w, transport zbiorowy organizowany przez Zwi\u0105zek realizowany b\u0119dzie na obszarze od granic Sochaczewa a\u017c po Gmin\u0119 \u017babia Wola. Nowe po\u0142\u0105czenia umo\u017cliwi\u0105 w szczeg\u00f3lno\u015bci sprawny i bezpieczny dojazd uczni\u00f3w do szk\u00f3\u0142 ponadpodstawowych, w tym m.in. do plac\u00f3wek edukacyjnych zlokalizowanych w Puszczy Maria\u0144skiej, Mszczonowie i \u017byrardowie.<\/p>\n\n\n\n<p>Rozszerzona oferta przewozowa zwi\u0119kszy r\u00f3wnie\u017c dost\u0119pno\u015b\u0107 komunikacyjn\u0105 wa\u017cnych miejsc o charakterze rekreacyjnym i turystycznym. Transport publiczny zapewni m.in. dojazd do Parku Rozrywki Suntago, co stanowi istotne udogodnienie zar\u00f3wno dla mieszka\u0144c\u00f3w regionu, jak i os\u00f3b odwiedzaj\u0105cych ten obiekt.<\/p>\n\n\n\n<p>Rozw\u00f3j sieci po\u0142\u0105cze\u0144 autobusowych wpisuje si\u0119 w dzia\u0142ania samorz\u0105d\u00f3w na rzecz poprawy dost\u0119pno\u015bci transportowej, ograniczania wykluczenia komunikacyjnego oraz wspierania mobilno\u015bci mieszka\u0144c\u00f3w obszaru obj\u0119tego dzia\u0142alno\u015bci\u0105 Zwi\u0105zku.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-6b760c787424219cf4dcce55cb334f16\" style=\"color:#14357a\"><strong>Dofinansowanie przewoz\u00f3w autobusowych na lata 2026\u20132028<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:35% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/podpisanie-umowy-na-dofinansowanie-grudzien-2025-768x1024.jpg\" alt=\"Podpisanie umowy - Wojewoda Mazowiecki, Starosta Powiatu \u017byrardowskiego\" class=\"wp-image-1733 size-full\" srcset=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/podpisanie-umowy-na-dofinansowanie-grudzien-2025-768x1024.jpg 768w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/podpisanie-umowy-na-dofinansowanie-grudzien-2025-225x300.jpg 225w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/podpisanie-umowy-na-dofinansowanie-grudzien-2025-1152x1536.jpg 1152w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/podpisanie-umowy-na-dofinansowanie-grudzien-2025.jpg 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p style=\"font-size:15px\">W dniu 22 grudnia 2025 r. Zarz\u0105d Zwi\u0105zku Powiatowo-Gminnego \u201e\u017byrardowskie Przewozy Autobusowe\u201d podpisa\u0142 umow\u0119 z Wojewod\u0105 Mazowieckim o dofinansowanie przewoz\u00f3w autobusowych o charakterze u\u017cyteczno\u015bci publicznej na lata 2026\u20132028 w ramach rz\u0105dowego programu Fundusz Rozwoju Przewoz\u00f3w Autobusowych.<\/p>\n\n\n\n<p style=\"font-size:15px\"><strong>Zwi\u0105zek reprezentowali:<\/strong> Prezes Zarz\u0105du Andrzej Wilk, Cz\u0142onek Zarz\u0105du Krzysztof Boryna oraz Skarbnik Zwi\u0105zku Bo\u017cena Kot.<\/p>\n<\/div><\/div>\n\n\n    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">Kwota przyznanego dofinansowania wynosi:<\/h2>\n                                            <\/div>\n                        \n            <div class=\"stats-grid stats-grid-3\">\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">2026<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"10022189\"\n                                  data-suffix=\",40 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">2027<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"9989886\"\n                                  data-suffix=\",90 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">2028<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"9982976\"\n                                  data-suffix=\",40 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        \n            <div class=\"stats-grid stats-grid-1\">\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">Blisko<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"30000000\"\n                                  data-suffix=\",00 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\">dofinansowania na rozw\u00f3j transportu publicznego<\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<p>Pozyskane \u015brodki stanowi\u0105 istotne wsparcie dla dalszego funkcjonowania i rozwoju regionalnego transportu publicznego. Dofinansowanie zapewni stabilno\u015b\u0107 realizowanych przewoz\u00f3w autobusowych w kolejnych latach oraz umo\u017cliwi utrzymanie i rozw\u00f3j oferty komunikacyjnej odpowiadaj\u0105cej na potrzeby mieszka\u0144c\u00f3w.<\/p>\n\n\n\n<p>Wsparcie finansowe obejmuje obszar wszystkich cz\u0142onk\u00f3w Zwi\u0105zku, tj. Powiatu \u017byrardowskiego wraz ze wszystkimi gminami wchodz\u0105cymi w jego sk\u0142ad, a tak\u017ce Powiatu Sochaczewskiego oraz gmin: Sochaczew, Nowa Sucha, Teresin i \u017babia Wola. Dzi\u0119ki temu zapewniona zostanie sp\u00f3jna i skoordynowana sie\u0107 po\u0142\u0105cze\u0144 autobusowych na rozleg\u0142ym obszarze regionu, w tym pomi\u0119dzy gminami oraz powiatami.<\/p>\n\n\n\n<p>Uzyskane dofinansowanie znacz\u0105co wzmacnia potencja\u0142 organizacyjny Zwi\u0105zku Powiatowo-Gminnego \u201e\u017byrardowskie Przewozy Autobusowe\u201d oraz potwierdza zasadno\u015b\u0107 modelu wsp\u00f3\u0142pracy samorz\u0105d\u00f3w przy organizacji publicznego transportu zbiorowego. Wsp\u00f3lne dzia\u0142ania umo\u017cliwiaj\u0105 efektywniejsze wykorzystanie \u015brodk\u00f3w publicznych, popraw\u0119 dost\u0119pno\u015bci komunikacyjnej oraz podniesienie jako\u015bci \u015bwiadczonych us\u0142ug przewozowych.<\/p>\n\n\n\n<p>Realizacja przewoz\u00f3w w ramach dofinansowania przyczyni si\u0119 do zwi\u0119kszenia dost\u0119pno\u015bci transportu publicznego dla mieszka\u0144c\u00f3w, u\u0142atwi codzienne dojazdy do pracy, szk\u00f3\u0142, plac\u00f3wek ochrony zdrowia oraz instytucji publicznych, a tak\u017ce wesprze rozw\u00f3j spo\u0142eczno-gospodarczy regionu.<\/p>\n\n\n\n<p>Od stycznia autobusy realizuj\u0105ce po\u0142\u0105czenia na terenie Powiatu \u017byrardowskiego, w tym gmin: \u017byrard\u00f3w, Mszczon\u00f3w, Wiskitki, Radziejowice i Puszcza Maria\u0144ska, a tak\u017ce na obszarze Powiatu Sochaczewskiego oraz gmin: Sochaczew, Nowa Sucha, Teresin i \u017babia Wola, b\u0119d\u0105 oznakowane logo Zwi\u0105zku, co podkre\u015bli wsp\u00f3lny charakter przedsi\u0119wzi\u0119cia oraz rol\u0119 samorz\u0105d\u00f3w w zapewnianiu mieszka\u0144com nowoczesnego i dost\u0119pnego transportu publicznego.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-70a7ff8e0eb3570e39a3056ac5b04553\" style=\"color:#1e3c72\"><strong>Podsumowanie<\/strong><\/h4>\n\n\n\n<p>Wprowadzenie Zwi\u0105zku Powiatowo-Gminnego \u201e\u017byrardowskie Przewozy Autobusowe\u201d stanowi wa\u017cny krok w kierunku modernizacji i usprawnienia systemu transportu publicznego w Powiecie \u017byrardowskim. Nowy model organizacyjny sprzyja lepszej wsp\u00f3\u0142pracy samorz\u0105d\u00f3w oraz efektywniejszemu wykorzystaniu dost\u0119pnych \u015brodk\u00f3w finansowych.<\/p>\n\n\n\n<p>Utrzymanie szerokiej sieci po\u0142\u0105cze\u0144 autobusowych oraz stabilne finansowanie pozwalaj\u0105 na zapewnienie mieszka\u0144com dost\u0119pu do transportu publicznego, co pozostaje jednym z kluczowych element\u00f3w rozwoju lokalnego i poprawy jako\u015bci \u017cycia.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-55371a6c638704cc907efe64aad1557c\" style=\"color:#14357a\">Wykaz linii komunikacyjnych obs\u0142ugiwanych przez <br>ZWI\u0104ZEK POWIATOWO-GMINNY <br>\u201e\u017bYRARDOWSKIE PRZEWOZY AUTOBUSOWE&#8221;<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Lp<\/strong><\/td><td><strong>Nazwa linii komunikacyjnej<\/strong><\/td><td><strong>Miejscowo\u015bci na linii komunikacyjnej<\/strong><\/td><td><strong>Gminy<\/strong><\/td><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">1.<\/td><td>Koryt\u00f3w A Szko\u0142a &#8211; Podlasie Kwiatowa<\/td><td>Koryt\u00f3w, Podlasie<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">2.<\/td><td>Radziejowice Szko\u0142a &#8211; S\u0142abomierz Wiadukt &#8211; Kukl\u00f3wka Radziejowicka Szko\u0142a p. Budy<br>J\u00f3zefowskie, Nowe Budy<\/td><td>Radziejowice, Budy Mszczonowskie,<br>S\u0142abomierz, Tartak Brz\u00f3zki, Nowe Budy,<br>Stare Budy, Budy J\u00f3zefowskie,<br>Kukl\u00f3wka Radziejowicka<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3.<\/td><td>Radziejowice Kubickiego &#8211; Radziejowice Szko\u0142a p. Zboiska, Krze<\/td><td>Radziejowice, Zboiska, Kamionka, Krze Du\u017ce, Krze<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">4.<\/td><td>Radziejowice Kubickiego &#8211; Kukl\u00f3wka Zarzeczna Babie Lato p. Krze, Adam\u00f3w<\/td><td>Radziejowice, Krze, Adam\u00f3w Parcel,<br>Adam\u00f3w, Adam\u00f3w Wie\u015b, Kukl\u00f3wka<br>Radziejowicka, Kukl\u00f3wka Zarzeczna<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">5.<\/td><td>Koryt\u00f3w Polna &#8211; Koryt\u00f3w Polna p. Zazdro\u015b\u0107, Benenard<\/td><td>Koryt\u00f3w, Koryt\u00f3w A, Benenard, Zazdro\u015b\u0107, Pie\u0144ki Towarzystawo, Krzy\u017c\u00f3wka<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">6.<\/td><td>Radziejowice Kubickiego &#8211; Radziejowice Kubickiego p. Zboiska, Kuran\u00f3w<\/td><td>Radziejowice, Zboiska, Kuran\u00f3w,<\/td><td>Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">7.<\/td><td>Wiskitki &#8211; Stare Koz\u0142owice<\/td><td>Wiskitki, Stare Koz\u0142owice<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">8.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; Wiskitki Pl. Wolno\u015bci p. Jesionk\u0119, Sokule<\/td><td>Wiskitki, Tomaszew, \u0141ubno, Jesionka, Sokule, Dzia\u0142ki<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">9.<\/td><td>Wiskitki Szko\u0142a &#8211; Wiskitki Szko\u0142a p. Jan\u00f3wek, Feliks\u00f3w<\/td><td>Wiskitki, Zagr\u00f3d\u017a, Koz\u0142owice Stare, Nowe Koz\u0142owice, Feliks\u00f3w, Nowy Drzewicz, Stary Drzewicz, Oryszew Osada, Duninopol, Nowy Oryszew, Janowek, Cyganka, Satrowiskitki<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">10.<\/td><td>Wiskitki &#8211; Stre Koz\u0142owice p. Miedniewice, Nowa Wie\u015b<\/td><td>Wiskitki, Jesionka, Nowa Wie\u015b, Miedniewice, Guz\u00f3w, Stare Koz\u0142owice, Pro\u015bcieniec<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">11.<\/td><td>Wiskitki Szko\u0142a &#8211; Wiskitki Szko\u0142a p. Roztropna, R\u00f3\u017can\u00f3w<\/td><td>Wiskitki, Cyganka, Starowiskitki, Wola Miedniewska, R\u00f3\u017can\u00f3w, Czerwona Niwa, Roztropna, Aleksandr\u00f3w, Guz\u00f3w, Oryszew Osada, Nowy Oryszew,<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">12.<\/td><td>Wiskitki Szko\u0142a &#8211; Wiskitki Szko\u0142a p. Koz\u0142owice Stare, Duninopol<\/td><td>Wiskitki, Zagr\u00f3d\u017a, Koz\u0142owice Stare, Nowe Koz\u0142owice, Feliks\u00f3w, Nowy Drzewicz, Stary Drzewicz, Oryszew Osada, Duninopol, Nowy Oryszew, Janowek, Cyganka, Satrowiskitki<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">13.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; Wiskitki Pl. Wolno\u015bci p. Tomaszew, \u0141ubno<\/td><td>Wiskitki, Dzia\u0142ki, Sokule, Tomaszew, \u0141ubno, Jesionka<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">14.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; Franciszk\u00f3w II<\/td><td>Wiskitki, Sokule, Tomaszew, \u0141ubno, Sucha \u017byrardowska, Jesionka, Franciszk\u00f3w<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">15.<\/td><td>Franciszk\u00f3w II &#8211; Franciszk\u00f3w II p. Pro\u015bcieniec<\/td><td>Franciszk\u00f3w, Pro\u015bcieniec, Antoniew, Smolarnia<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">16.<\/td><td>Franciszk\u00f3w II &#8211; Franciszk\u00f3w II p. Such\u0105 \u017byrardowsk\u0105<\/td><td>Franciszk\u00f3w, Jesionka, Sucha \u017byrardowska,<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">17.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; Wiskitki Pl. Wolno\u015bci p. Dzia\u0142ki, Jesionk\u0119<\/td><td>Wiskitki, Tomaszew, \u0141ubno, Jesionka, Sokule, Dzia\u0142ki<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">18.<\/td><td>Wiskitki Szko\u0142a &#8211; Wiskitki Szko\u0142a P. Oryszew<\/td><td>Wiskitki, Zagr\u00f3d\u017a, Koz\u0142owice Stare, Nowe Koz\u0142owice, Feliks\u00f3w, Nowy Drzewicz, Stary Drzewicz, Oryszew Osada, Duninopol, Nowy Oryszew, Janowek, Cyganka, Satrowiskitki<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">19.<\/td><td>Wiskitki Szko\u0142a &#8211; Wiskitki Szko\u0142a p. Guz\u00f3w, Aleksandr\u00f3w<\/td><td>Wiskitki, Cyganka, Starowiskitki, Wola Miedniewska, R\u00f3\u017can\u00f3w, Czerwona Niwa, Roztropna, Aleksandr\u00f3w, Guz\u00f3w, Oryszew Osada, Nowy Oryszew,<\/td><td>Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">20.<\/td><td>Mszczon\u00f3w Rynek &#8211; Osuch\u00f3w p. Adam\u00f3wek Kapliczka<\/td><td>Mszczon\u00f3w, Kamionka, Badowo Da\u0144ki, Adam\u00f3wek, Bad\u00f3w, Piekary, Zimnice, Osuch\u00f3w<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">21.<\/td><td>Mszczon\u00f3w Rynek &#8211; Bobrowce p. Zimnice<\/td><td>Mszczon\u00f3w, Wymys\u0142\u00f3w, Bad\u00f3w, Piekary, Zimnice, Osuch\u00f3w, Suszeniec, Bobrowce<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">22.<\/td><td>Mszczon\u00f3w Rynek &#8211; Mszczon\u00f3w Szko\u0142a p. Gurba, G\u0105ba<\/td><td>Mszczon\u00f3w, Gurba, Szeligi, Pow\u0105zki, Adamowice, G\u0105ba, Bad\u00f3w, Adam\u00f3wek , Badowo Da\u0144ki, Sosnowica,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">23.<\/td><td>Mszczon\u00f3w Szko\u0142a &#8211; Mszczon\u00f3w Szko\u0142a p. Kaczk\u00f3w<\/td><td>Mszczon\u00f3w, Kaczk\u00f3w<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">24.<\/td><td>Mszczon\u00f3w Szko\u0142a &#8211; Piekary Szko\u0142a p. Strzy\u017ce<\/td><td>Mszczon\u00f3w, Kamionka, Adam\u00f3wek, Badowo Da\u0144ki, Strzy\u017ce, Piekary<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">25.<\/td><td>Mszczon\u00f3w Rynek &#8211; Mszczon\u00f3w Szko\u0142a p. Grabce<\/td><td>Mszczon\u00f3w, Mark\u00f3w Towarzystwo, Zdzieszyn, Grabce Wr\u0119ckie, Grabce Towarzystwo, Nowy Dworek, Olsz\u00f3wka, Wr\u0119cza, \u015awinice<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">26.<\/td><td>Lutk\u00f3wka Szko\u0142a &#8211; Lutk\u00f3wka Szko\u0142a p. Nosy Poniatki, Zbiro\u017ca<\/td><td>Lutk\u00f3wka, Nosy Poniatki, Bronis\u0142awka, Chudolipie, Zimna Woda, Zbiro\u017ca, Marianka, Bronis\u0142aw\u00f3w, Badowo M\u015bciska, Osuch\u00f3w<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">27.<\/td><td>Piekary &#8211; Kowiesowo &#8211; Piekary<\/td><td>Piekary, Michalin, Budy Zas\u0142ona, Lind\u00f3w, Kowiesowo, Kowiesy,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">28.<\/td><td>Badowo M\u015bciska Pekabeks &#8211; Osuch\u00f3w Szko\u0142a p. Bobrowce, Lutk\u00f3wka Szko\u0142a<\/td><td>Badowo M\u015bciska, Bronis\u0142aw\u00f3w, Marianka, Zbiro\u017ca, Zimna Woda, Chudolipie, Lutk\u00f3wka, Nosy Poniatki, Bronis\u0142awka, Osuch\u00f3w, Suszeniec, Bobrowce<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">29.<\/td><td>Osuch\u00f3w Szko\u0142a &#8211; Mszczon\u00f3w Rynek p. Nowe Por\u0119by, Jan\u00f3wek<\/td><td>Osuch\u00f3w, Suszeniec, Bobrowce, Nowe Por\u0119by, Jan\u00f3wek, Olszewek, Ma\u0142achowszczyzna,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">30.<\/td><td>Piekary Szko\u0142a &#8211; Piekary Szko\u0142a p. Zimnice<\/td><td>Piekary, Zimnice, Strzy\u017ce, Badowo Da\u0144ki<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">31.<\/td><td>Piekary Szko\u0142a &#8211; Piekary Szko\u0142a p. Zimnice, Osuch\u00f3w Szko\u0142a<\/td><td>Piekary, Zimnice, Osuch\u00f3w, Bobrowce, Strzy\u017ce,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">32.<\/td><td>Piekary Szko\u0142a &#8211; Piekary Szko\u0142a p. Michalin, Kowiesy, Zimnice<\/td><td>Piekary, Michalin, Budy Zas\u0142ona, Lind\u00f3w, Kowiesowo, Kowiesy, Zimnice, Strzy\u017ce, Badowo Da\u0144ki<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">33.<\/td><td>Piekary Szko\u0142a &#8211; Mszczon\u00f3w Szko\u0142a p. Bad\u00f3w<\/td><td>Piekary, Bad\u00f3w, Wymys\u0142\u00f3w, Mszczon\u00f3w<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">34.<\/td><td>Mszczon\u00f3w Rynek &#8211; Bobrowce p. Badowo-M\u015bciska<\/td><td>Mszczon\u00f3w,&nbsp;Badowo-M\u015bciska, Badowo Da\u0144ki, Budy Strzy\u017ce, Strzy\u017ce, Osuch\u00f3w, Bobrowce<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">35.<\/td><td>Mszczon\u00f3w Szko\u0142a &#8211; Mszczon\u00f3w Szko\u0142a p. Gurba, Adamowice, G\u0105ba<\/td><td>Mszczon\u00f3w, Gurba, Szeligi, Pow\u0105zki, Adamowice, G\u0105ba, Bad\u00f3w, Piekary, Adam\u00f3wek Kapliczka, Badowo Da\u0144ki, Kamionka,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">36.<\/td><td>Mszczon\u00f3w Rynek &#8211; Lutk\u00f3wka p. Badowo Da\u0144ki, Zimna Woda<\/td><td>Mszczon\u00f3w, Badowo-M\u015bciska, Badowo Da\u0144ki, Zimna Woda, Lutk\u00f3wka, Chudolipie, Lutk\u00f3wka<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">37.<\/td><td>Osuch\u00f3w Szko\u0142a &#8211; Lutk\u00f3wka Szko\u0142a p. Bobrowce, Ma\u0142achowszczyzn\u0119<\/td><td>Osuch\u00f3w, Suszeniec, Bobrowce, Ma\u0142achowszczyzna, Lutk\u00f3wka<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">38.<\/td><td>Mszczon\u00f3w Rynek &#8211; Mszczon\u00f3w Rynek p. Warszawska Termy, Mondi, Badowo M\u015bciska, Sosnowica<\/td><td>Mszczon\u00f3w, Ciemno-Gnojna, Badowo M\u015bciska, Badowo Da\u0144ki, Sosnowica,<\/td><td>Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">39.<\/td><td>Dzia\u0142ki OSP &#8211; \u017byrard\u00f3w &#8211; \u017beromskiego &#8211; Pozna\u0144ska &#8211; Jaktorowska<\/td><td>Dzia\u0142ki, \u017byrard\u00f3w<\/td><td>&nbsp;\u017byrard\u00f3w, Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">40.<\/td><td>\u017byrard\u00f3w Mostowa &#8211; Koryt\u00f3w Las p. Ossowskiego, Parkingowa<\/td><td>\u017byrard\u00f3w, Koryt\u00f3w<\/td><td>\u017byrard\u00f3w, Radziejowice,<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">41.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; Sp\u00f3\u0142dzielcza p. Dzia\u0142ki<\/td><td>Wiskitki, Dzia\u0142ki, \u017byrard\u00f3w<\/td><td>Wiskitki, \u017byrard\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">42.<\/td><td>\u017byr. \u017beromksiego &#8211; Pozna\u0144ska &#8211; Parkingowa &#8211; Nowe Koz\u0142owice &#8211; Stare Koz\u0142owice &#8211; \u017byrard\u00f3w Sp\u00f3\u0142dzielcza<\/td><td>\u017byrard\u00f3w, Nowe Koz\u0142owice, Stare Koz\u0142owice,<\/td><td>Wiskitki, \u017byrard\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">43.<\/td><td>Wiskitki Pl. Wolno\u015bci &#8211; \u017byrard\u00f3w \u017beromskiego &#8211; Parkingowa &#8211; Sp\u00f3\u0142dzielcza<\/td><td>Wiskitki, \u017byrard\u00f3w<\/td><td>Wiskitki, \u017byrard\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">44.<\/td><td>\u017byrard\u00f3w Mostowa &#8211; Koryt\u00f3w&nbsp;p. Okrzei, PKP<\/td><td>\u017byrard\u00f3w, Koryt\u00f3w<\/td><td>\u017byrard\u00f3w, Radziejowice,<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">45.<\/td><td>\u017byrard\u00f3w F. de Girarda &#8211; Adamowice &#8211; Osuch\u00f3w &#8211; Bobrowce<\/td><td>\u017byrard\u00f3w, Koryt\u00f3w, Zazdro\u015b\u0107, Wr\u0119cza, \u015awinice, Mszczon\u00f3w, Adamowice, G\u0105ba, Bad\u00f3w, Piekary, Zimnice, Osuch\u00f3w, Suszeniec, Bobrowce<\/td><td>\u017byrard\u00f3w, Radziejowice, Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">46.<\/td><td>\u017byrard\u00f3w F.de Girarda &#8211; Wymys\u0142\u00f3w &#8211; Osuch\u00f3w &#8211; Bobrowce<\/td><td>\u017byrard\u00f3w, Koryt\u00f3w, Zazdro\u015b\u0107, Wr\u0119cza, \u015awinice, Mszczon\u00f3w, Wymys\u0142\u00f3w, Bad\u00f3w, Piekary, Zimnice, Osuch\u00f3w, Suszeniec, Bobrowce<\/td><td>\u017byrard\u00f3w, Radziejowice, Mszczon\u00f3w<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">47.<\/td><td>\u017byrard\u00f3w &#8211; Popielarnia p. Starowiskitki<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Starowiskitki,&nbsp;Wola Miedniewska, Kolonia Miedniewska, Miedniewice, Siarkowiec, Kamionka, Popielarnia<\/td><td>\u017byrard\u00f3w, Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">48.<\/td><td>Popielarnia &#8211; \u017byrard\u00f3w p. Starowiskitki<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Starowiskitki,&nbsp;Wola Miedniewska, Kolonia Miedniewska, Miedniewice, Siarkowiec, Kamionka, Popielarnia<\/td><td>\u017byrard\u00f3w, Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">49.<\/td><td>\u017byrard\u00f3w &#8211; Puszcza Maria\u0144ska &#8211; Kamion<\/td><td>\u017byrard\u00f3w, J\u00f3zef\u00f3w, Bednary, Waleriany, Studzieniec, Puszcza Maria\u0144ska, Wygoda, Kamion<\/td><td>\u017byrard\u00f3w, Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">50.<\/td><td>Kamion- Puszcza Maria\u0144ska- \u017byrard\u00f3w<\/td><td>\u017byrard\u00f3w, J\u00f3zef\u00f3w, Bednary, Waleriany, Studzieniec, Puszcza Maria\u0144ska, Wygoda, Kamion<\/td><td>\u017byrard\u00f3w, Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">51.<\/td><td>\u017byrard\u00f3w &#8211; Bartniki p. Puszcza Maria\u0144ska<\/td><td>\u017byrard\u00f3w, J\u00f3zef\u00f3w, Bednary, Waleriany, Studzieniec, Puszcza Maria\u0144ska, Budy Zaklasztorne, Radziwi\u0142\u0142\u00f3w, Bartniki<\/td><td>\u017byrard\u00f3w, Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">52.<\/td><td>Bartnik- \u017byrard\u00f3w p. Puszcza Maria\u0144ska<\/td><td>\u017byrard\u00f3w, J\u00f3zef\u00f3w, Bednary, Waleriany, Studzieniec, Puszcza Maria\u0144ska, Budy Zaklasztorne, Radziwi\u0142\u0142\u00f3w, Bartniki<\/td><td>\u017byrard\u00f3w, Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">53.<\/td><td>\u017byrard\u00f3w &#8211; R\u00f3\u017can\u00f3w- Sochaczew p. Guz\u00f3w<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Czerwona Niwa Parcel, R\u00f3\u017can\u00f3w, Sochaczew<\/td><td>\u017byrard\u00f3w, Wiskitki, Nowa Sucha, Sochaczew <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">54.<\/td><td>Sochaczew- R\u00f3\u017can\u00f3w &#8211; \u017byrard\u00f3w p. Guz\u00f3w<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Czerwona Niwa Parcel, R\u00f3\u017can\u00f3w, Sochaczew<\/td><td>\u017byrard\u00f3w, Wiskitki, Nowa Sucha, Sochaczew <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">55.<\/td><td>Mszczon\u00f3w- Kukl\u00f3wka p. Radziejowice<\/td><td>Mszczon\u00f3w, Kuran\u00f3w, Radziejowice, Adam\u00f3w, Kukl\u00f3wka<br><br>\ufeff<\/td><td>Mszczon\u00f3w, Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">56.<\/td><td>\u017byrard\u00f3w- R\u00f3\u017can\u00f3w p. Guz\u00f3w<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Czerwona Niwa Parcel, R\u00f3\u017can\u00f3w,<\/td><td>\u017byrard\u00f3w, Wiskitki,<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">57.<\/td><td>R\u00f3\u017can\u00f3w- \u017byrard\u00f3w p. Guz\u00f3w<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Czerwona Niwa Parcel, R\u00f3\u017can\u00f3w,<\/td><td>\u017byrard\u00f3w, Wiskitki,<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">58.<\/td><td>Kukl\u00f3wka &#8211; Suntago p. Radziejowice<\/td><td>Mszczon\u00f3w, Kuran\u00f3w, Radziejowice, Adam\u00f3w, Kukl\u00f3wka<\/td><td>Mszczon\u00f3w, Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">59.<\/td><td>\u017byrard\u00f3w- Sochaczew p. Wiskitki<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Sochaczew<\/td><td>\u017byrard\u00f3w, Wiskitki, Sochaczew <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">60.<\/td><td>Sochaczew &#8211; \u017byrard\u00f3w p. Wiskitki<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Guz\u00f3w, Aleksandr\u00f3w, Sochaczew<\/td><td>\u017byrard\u00f3w, Wiskitki, Sochaczew <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">61.<\/td><td>\u017byrard\u00f3w &#8211; Teresin p. Oryszew<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Oryszew, Podoryszew, Skrzelew, Paw\u0142\u00f3wek, Herman\u00f3w, Szyman\u00f3w Wie\u015b, El\u017cbiet\u00f3w, Zielonka, Teresin<\/td><td>\u017byrard\u00f3w, Wiskitki, Teresin <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">62.<\/td><td>Teresin &#8211; \u017byrard\u00f3w p. Oryszew<\/td><td>\u017byrard\u00f3w, Stare Koz\u0142owice, Zagr\u00f3d\u017a, Wiskitki, Cyganka, Oryszew, Podoryszew, Skrzelew, Paw\u0142\u00f3wek, Herman\u00f3w, Szyman\u00f3w Wie\u015b, El\u017cbiet\u00f3w, Zielonka, Teresin<\/td><td>\u017byrard\u00f3w, Wiskitki, Teresin<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">63.<\/td><td>Puszcza Maria\u0144ska &#8211; Kamion p. Micha\u0142\u00f3w<\/td><td>Puszcza Maria\u0144ska, D\u0142ugok\u0105ty, Micha\u0142\u00f3w, Wygoda, Kamion<\/td><td>Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">64.<\/td><td>Kamion- Puszcza Maria\u0144ska p. Wygoda<\/td><td>Kamion, Wygoda, Puszcza Maria\u0144ska<\/td><td>Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">65.<\/td><td>Puszcza Maria\u0144ska- G\u00f3rki p. Korabiewice<\/td><td>Puszcza Maria\u0144ska, Wola Polska, Korabiewice, G\u00f3rki<\/td><td>Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">66.<\/td><td>Puszcza Maria\u0144ska- Studzieniec<\/td><td>Puszcza Maria\u0144ska, Studzieniec&nbsp;<\/td><td>Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">67.<\/td><td>Puszcza Maria\u0144ska- Puszcza Maria\u0144ska p. Zator, Wycze\u015bniak<\/td><td>Puszcza Maria\u0144ska, Zator, Huta Partycka, Budy Wolskie, Stary \u0141ajszczew, Lisowola, Wycze\u015bniak<\/td><td>Puszcza Maria\u0144ska<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">68.<\/td><td>Koz\u0142\u00f3w Biskupi Szko\u0142a-Koz\u0142\u00f3w Biskupi Szko\u0142a przez Antoniew<\/td><td>Koz\u0142\u00f3w Biskupi-Antoniew<\/td><td>Nowa Sucha<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">69.<\/td><td>Koz\u0142\u00f3w Biskupi Szko\u0142a-Koz\u0142\u00f3w Biskupi Szko\u0142a przez Or\u0142\u00f3w<\/td><td>Koz\u0142\u00f3w Biskupi, Kornelin, Leon\u00f3w, Or\u0142\u00f3w, Rokot\u00f3w<\/td><td>Nowa Sucha<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">70.<\/td><td>Koz\u0142\u00f3w Szlachecki Szko\u0142a- Koz\u0142\u00f3w Szlachecki Szko\u0142a przez Nowa Sucha Gmina<\/td><td>Koz\u0142\u00f3w Szlachecki, Nowa Sucha, Nowy Koz\u0142\u00f3w, Nowy D\u0119bsk, Braki, Stary D\u0119bsk<\/td><td>Nowa Sucha<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">71.<\/td><td>Kurdwan\u00f3w- Kurdwan\u00f3w p. Wykcinek<\/td><td>Kurdwan\u00f3w, Wikcinek, Mizerka, Borzym\u00f3wka, Okopy, Roztropna, Ka\u017amier\u00f3w, Aleksandr\u00f3w, Czerwona Niwa, R\u00f3\u017can\u00f3w, Glinki<\/td><td>Nowa Sucha, Wiskitki<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">72.<\/td><td>Koz\u0142\u00f3w Szlachecki -Sochaczew PKP<\/td><td>Koz\u0142\u00f3w Szlachecki, Nowa Sucha, Mizerka, Okopy, Borzym\u00f3wka, Kurdwan\u00f3w, Wikcinek, Or\u0142\u00f3w, Rokot\u00f3w, Sochaczew<\/td><td>Nowa Sucha, Wiskitki, Sochaczew <\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">73.<\/td><td>Sochaczew Bojownik\u00f3w- Wycz\u00f3\u0142ki p. Bielice<\/td><td>Sochaczew, Jan\u00f3wek Duranowski, Andrzej\u00f3w Duranowski, Bielice, Sielice, Roztropna, Je\u017c\u00f3wka, Marysinek, Bia\u0142ynin, Wycz\u00f3\u0142ki<\/td><td>Sochaczew, Nowa Sucha<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">74.<\/td><td>K\u0105ty Szko\u0142a &#8211; \u017bd\u017car\u00f3w II &#8211; K\u0105ty Szko\u0142a<\/td><td>K\u0105ty, \u017bd\u017car\u00f3w <\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">75.<\/td><td>Mokas- \u017belazowa Wola p. Dzi\u0119glewo<\/td><td>Mokas, Dzi\u0119glewo, \u017belazowa Wola<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">76.<\/td><td>Mokas &#8211; Wymys\u0142\u00f3w Szko\u0142a p. Zosin<\/td><td>Mokas, Dzi\u0119glewo, \u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, Janasz\u00f3wek, Wymys\u0142\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">77.<\/td><td>K\u0105ty Szko\u0142a &#8211; K\u0105ty Szko\u0142a p. Kuznocin<\/td><td>K\u0105ty, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">78.<\/td><td>K\u0105ty Szko\u0142a &#8211; K\u0105ty Szko\u0142a p. W\u0142adys\u0142aw\u00f3w<\/td><td>K\u0105ty, Rozlaz\u0142\u00f3w, Kuznocin, Dachowa, Lubiejew, W\u0142adys\u0142aw\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">79.<\/td><td>K\u0105ty Szko\u0142a &#8211; K\u0105ty Szko\u0142a p. Lubiejew<\/td><td>K\u0105ty, Rozlaz\u0142\u00f3w, Kuznocin, Dachowa, Lubiejew, W\u0142adys\u0142aw\u00f3w<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">80.<\/td><td>Feliks\u00f3w &#8211; Wymys\u0142\u00f3w &#8211; Felisk\u00f3w<\/td><td>Feliks\u00f3w, Nowe Mostki, Pilawice, Wymys\u0142\u00f3w, Janasz\u00f3wek, Zosin, Chrzczany, <\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">81.<\/td><td>K\u0105ty Szko\u0142a &#8211; Kuznocin 72 p. Rozlaz\u0142\u00f3w<\/td><td>Katy, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">82.<\/td><td>Kuznocin Bar Ma\u0142gosia- K\u0105ty Szko\u0142a<\/td><td>Kuznocin, Rozlaz\u0142\u00f3w, K\u0105ty<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">83.<\/td><td>Kazimier\u00f3w &#8211; Sochaczew Chodak\u00f3w LE p. Bielice<\/td><td>Katy, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">84.<\/td><td>Kazimier\u00f3w &#8211; Sochaczew p. Je\u017c\u00f3wka<\/td><td>Katy, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">85.<\/td><td>Kazimier\u00f3w &#8211; Sochaczew Traugutta Amfiteatr p. Czerwonka Las<\/td><td>Katy, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">86.<\/td><td>Sochaczew Traugutta Amfiteatr -n Kazimier\u00f3w p. Czerwonka Las<\/td><td>Katy, Rozlaz\u0142\u00f3w, Kuznocin,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">87.<\/td><td>Sochaczew Chodak\u00f3w LE- \u017buk\u00f3w &#8222;Pod Lasem&#8221;<\/td><td>Sochaczew, \u017buk\u00f3w<\/td><td> Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">88.<\/td><td>\u017belazowa Wola &#8211; Sochaczew Szpital p. Zosin<\/td><td>\u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, Janasz\u00f3wek, Wymys\u0142\u00f3w, Chrzczany, W\u00f3jt\u00f3wka, Sochaczew, Czyste, Czerwonka,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">89.<\/td><td>Sochaczew Szpital &#8211; \u017belazowa Wola p. Czyste<\/td><td> \u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, Janasz\u00f3wek, Wymys\u0142\u00f3w, Chrzczany, W\u00f3jt\u00f3wka, Sochaczew, Czyste, Czerwonka,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">90.<\/td><td>Sohaczew Centrum Handlowe &#8211; Sochaczew Szpital p. Czerwonk\u0119<\/td><td>\u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, Janasz\u00f3wek, Wymys\u0142\u00f3w, Chrzczany, W\u00f3jt\u00f3wka, Sochaczew, Czyste, Czerwonka,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">91.<\/td><td>\u017belazowa Wola- Sochaczew Szpital p. Nowe Mostki<\/td><td>\u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, Wymys\u0142\u00f3w,  W\u00f3jt\u00f3wka, Sochaczew, Czyste, Czerwonka,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">92.<\/td><td>Sochaczew Szpital- \u017belazowa Wola p. Feliks\u00f3w<\/td><td>\u017belazowa Wola, Nowe Mostki, Feliks\u00f3w, Zosin, W\u00f3jt\u00f3wka, Sochaczew, Czyste, Czerwonka,<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">93.<\/td><td>Sochaczew Szpital &#8211; \u017buk\u00f3w &#8221; Pod Lasem&#8221; p. Gaw\u0142\u00f3w<\/td><td>Sochaczew, Gaw\u0142\u00f3w, \u017buk\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">94.<\/td><td>Mokas &#8211; Sochaczew PKP p. Chodak\u00f3wek<\/td><td>Mokas, Dzi\u0119glewo, \u017belazowa Wola, Chodak\u00f3wek, Chodak\u00f3w, Kistki Rejtana, Kistki Poniatowskiego, Trojan\u00f3w, Sochaczew<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">95.<\/td><td>Mokas &#8211; Energop p. \u017belazowa Wola, PKP<\/td><td>Mokas, Dzi\u0119glewo, \u017belazowa Wola, Chodak\u00f3wek, Chodak\u00f3w, Kistki Rejtana, Kistki Poniatowskiego, Trojan\u00f3w, Sochaczew, Malesin, Energop<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">96.<\/td><td>\u017belazowa Wola &#8211; Sochaczew PKP p. Trojan\u00f3w<\/td><td>\u017belazowa Wola, Chodak\u00f3wek, Chodak\u00f3w, Kistki Rejtana, Kistki Poniatowskiego, Trojan\u00f3w, Sochaczew<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">97.<\/td><td>Energop &#8211; \u017belazowa Wola p. Malesin<\/td><td>\u017belazowa Wola, Chodak\u00f3wek, Chodak\u00f3w, Kistki Rejtana, Kistki Poniatowskiego, Trojan\u00f3w, Sochaczew, Malesin, Energop<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">98.<\/td><td>Sochaczew Szpital &#8211; Sochaczew Szpital przez Altanka<\/td><td>Sochaczew, Altanka, Gaw\u0142\u00f3w, Karwowo<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">99.<\/td><td>Sochaczew PKP &#8211; Halin\u00f3w p. Rozlaz\u0142\u00f3w<\/td><td>Sochaczew, Kuznocin, Rozlaz\u0142\u00f3w, K\u0105ty, \u017bd\u017car\u00f3w, Halin\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">100.<\/td><td>Halin\u00f3w &#8211; Sochaczew PKP p. K\u0105ty<\/td><td>Sochaczew, Kuznocin, Rozlaz\u0142\u00f3w, K\u0105ty, \u017bd\u017car\u00f3w, Halin\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">101.<\/td><td>Sochaczew Centrum Handlowe &#8211; Halin\u00f3w p. PKP<\/td><td>Sochaczew, Kuznocin, Rozlaz\u0142\u00f3w, K\u0105ty, \u017bd\u017car\u00f3w, Halin\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">102.<\/td><td>Halin\u00f3w &#8211; Sochaczew Centrum Handlowe p. \u017bd\u017car\u00f3w<\/td><td>Sochaczew, Kuznocin, Rozlaz\u0142\u00f3w, K\u0105ty, \u017bd\u017car\u00f3w, Halin\u00f3w<\/td><td>Sochaczew<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">103.<\/td><td>Teresin &#8211; Nowy Teresin<\/td><td>Teresin<\/td><td>Teresin<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">104.<\/td><td>Nowy Teresin &#8211; Teresin<\/td><td>Teresin<\/td><td>Teresin<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">105.<\/td><td>Nowy Teresin &#8211; Paprotnia &#8211; Maszna<\/td><td>Teresin, Niepokalan\u00f3w, Paprotnia, Maszna<\/td><td>Teresin<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">106.<\/td><td>Maszna &#8211; Paprotnia &#8211; Nowy Teresin<\/td><td>Teresin, Niepokalan\u00f3w, Paprotnia, Maszna<\/td><td>Teresin<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">107.<\/td><td>\u017byrard\u00f3w &#8211; Koryt\u00f3w &#8211; Radziejowice &#8211; Adam\u00f3w<\/td><td>\u017byrard\u00f3w, Koryt\u00f3w, Tartak Brzozki, Radziejowice, Krze, Adam\u00f3w<\/td><td>\u017byrard\u00f3w, Radziejowice<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">108.<\/td><td>\u017babia Wola-Krze &#8211; Radziejowice &#8211; Mszczon\u00f3w &#8211; Puszcza Maria\u0144ska<\/td><td>Krze, Radziejowice, Mszczon\u00f3w, Czekaj, \u015awinice, Wr\u0119cza, Grabce Towarzystwo, G\u00f3rki, Korabiewice, Wola Polska, Puszcza Maria\u0144ska<\/td><td>Radziejowice, Mszczon\u00f3w, Puszcza Maria\u0144ska,&nbsp;\u017babia Wola<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">109.<\/td><td>Mszczon\u00f3w-Ciemno Gnojna-Grzegorzewice-Piotrkowice-Bartosz\u00f3wka-Sku\u0142y-Mszczon\u00f3w<\/td><td>Mszczon\u00f3w &#8211; Ciemno Gnojna &#8211; Grzegorzewice &#8211; Piotrkowice &#8211; Bartosz\u00f3wka &#8211; Sku\u0142y &#8211; Bartosz\u00f3wka<\/td><td>Mszczon\u00f3w, \u017babia Wola<br><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">110.<\/td><td>Mszczon\u00f3w &#8211; \u017babia Wola<\/td><td>Mszczon\u00f3w &#8211; Radziejowice &#8211; Krze &#8211; \u017babia Wola<\/td><td>Mszczon\u00f3w, Radziejowice, Zabia Wola<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">111.<\/td><td>Mszczon\u00f3w Brzoskwiniowa- Mszczon\u00f3w Brzoskwiniowa p. \u0141ugowa, Gr\u00f3jecka, Lublin\u00f3w, Suntago, Mszczon\u00f3w Fabryczna<\/td><td>Mszczon\u00f3w, Lublin\u00f3w, Czekaj, \u015awinice, Wr\u0119cza<\/td><td>Mszczon\u00f3w<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-0aed991f070abc04c0f2a3676392c062\" style=\"color:#14357a\">STATYSTYKI KOMUNIKACYJNE<\/h2>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-1fb205ffc007648e4fdd637778cfce0e\" style=\"color:#14357a\">Wydzia\u0142 Komunikacji, Transportu i Dr\u00f3g Publicznych dane za 2025 r.:<\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-8e023a4b54cd32886a0995debef17122\" style=\"color:#14357a\">Pojazdy zarejestrowane: 10&nbsp;811 sztuk <\/h4>\n\n\n\n<p><strong>w tym:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sprowadzone <strong>2367<\/strong> sztuk,<\/li>\n\n\n\n<li>nowe <strong>703<\/strong> sztuki,<\/li>\n\n\n\n<li>u\u017cywane zakupione w kraju <strong>7741 <\/strong>sztuk.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-1ac2d022563b1492e887c361558d8ebe\" style=\"color:#14357a\">Pojazdy przerejestrowane w obr\u0119bie organu 1574 sztuk, dla 4688 sztuk pozostawiono dotychczasowe tablice.<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zarejestrowane <strong>50 pojazd\u00f3w<\/strong> zasilanych energi\u0105 elektryczn\u0105 EE.<\/li>\n<\/ul>\n\n\n\n<p>Na terenie Powiatu znajduje si\u0119 <strong>226 pojazd\u00f3w<\/strong> zasilanych energi\u0105 elektryczn\u0105 EE.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-c2eac089fbbff17bfcf254a5e3797b50\" style=\"color:#14357a\">Wyrejestrowania:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ubycie pojazdu do innego organu, <strong>5286,<\/strong><\/li>\n\n\n\n<li>wyrejestrowano <strong>1052 <\/strong>pojazd\u00f3w po przekazaniu do stacji demonta\u017cu,<\/li>\n\n\n\n<li>wpisano do ewidencji pojazd\u00f3w <strong>1060<\/strong> za\u015bwiadcze\u0144 o demonta\u017cu pojazd\u00f3w przekazanych przez przedsi\u0119biorc\u00f3w (stacje demonta\u017ce),<\/li>\n\n\n\n<li><strong>25<\/strong> wyrejestrowa\u0144 na podstawie informacji o zarejestrowaniu w innych krajach cz\u0142onkowskich,<\/li>\n\n\n\n<li><strong>15<\/strong> wyrejestrowa\u0144 z powodu kradzie\u017cy,<\/li>\n\n\n\n<li><strong>28<\/strong> decyzji o wycofaniu czasowym,<\/li>\n\n\n\n<li><strong>10<\/strong> decyzji o przywr\u00f3ceniu do ruchu po wycofaniu czasowym,<\/li>\n\n\n\n<li><strong>105 <\/strong>oznacze\u0144 (tablic rejestracyjnych) przyj\u0119tych do depozytu z uwagi na wydanie tablic czasowych w celu wykonania badania technicznego.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>w tym:<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-a123639fef8d527255da210716760fec\" style=\"color:#14357a\">Delegatura &#8211; Wiskitki dane za 2025 rok:<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-1024x683.jpg\" alt=\"Delegatura Wydzia\u0142u Komunikacji, Transportu i Dr\u00f3g Publicznych w Wiskitkach\" class=\"wp-image-1834\" style=\"width:400px\" srcset=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-1024x683.jpg 1024w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-300x200.jpg 300w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-768x512.jpg 768w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-1536x1024.jpg 1536w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-2048x1365.jpg 2048w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura_Wiskitki-600x400.jpg 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<ol class=\"wp-block-list\">\n<li>Rejestracja pojazdu z wydaniem tablicy WZY, <strong>935 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazdu z pozostawienie tablic zarejestrowanych wcze\u015bniej na terenie Powiatu \u017byrardowskiego, <strong>655 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazdu z pozostawienie tablic nie zarejestrowanych wcze\u015bniej na terenie Powiatu \u017byrardowskiego, <strong>575<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja przyczepy, <strong>50<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja motorower, <strong>26 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazdu ze zmniejszon\u0105 tablic\u0105, <strong>15<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja motoroweru elektrycznego, <strong>5<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja motoru elektrycznego, <strong>5<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja samochodu elektrycznego, <strong>10<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja ci\u0105gniki, <strong>50<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja zabytek motor, <strong>3<\/strong> sztuki,<\/li>\n\n\n\n<li>Rejestracja zabytek samoch\u00f3d, <strong>2<\/strong> sztuki,<\/li>\n\n\n\n<li>Tymczasowa rejestracja, <strong>101<\/strong> sztuk,<\/li>\n\n\n\n<li>Demonta\u017c, <strong>98 <\/strong>sztuk,<\/li>\n\n\n\n<li>Pozosta\u0142e sprawy zwi\u0105zane z pojazdem (gaz, hak, dodatkowa tablica, duplikat dowodu rejestracyjnego), <strong>110 <\/strong>sztuk,<\/li>\n\n\n\n<li>Zbycia pojazd\u00f3w zarejestrowanych na WZY, <strong>2797<\/strong> sztuk,<\/li>\n\n\n\n<li>Wydanie mi\u0119dzynarodowych praw jazdy, <strong>11<\/strong> sztuk,<\/li>\n\n\n\n<li>Wydanie kart kierowc\u00f3w zawodowych, <strong>114<\/strong> sztuk,<\/li>\n\n\n\n<li>Sprawy zwi\u0105zane w prawem jazdy (wydanie, wymiana), <strong>511<\/strong> sztuk.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-ad2cd972747b536d3241aa5cb4c23edf\" style=\"color:#14357a\">Delegatura &#8211; Mszczon\u00f3w dane za 2025 rok:<\/h4>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow-1024x576.jpg\" alt=\"Delegatura Wydzia\u0142u Komunikacji, Transportu i Dr\u00f3g Publicznych w Mszczonowie\" class=\"wp-image-1528\" style=\"width:400px\" srcset=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow-1024x576.jpg 1024w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow-300x169.jpg 300w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow-768x432.jpg 768w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow-1536x864.jpg 1536w, https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Delegatura-Mszczonow.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Rejestracja pojazdu z wydawaniem tablicy WZY, <strong>1166 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazdu z pozostawieniem tablic zarejestrowanych wcze\u015bniej na terenie Powiatu \u017byrardowskiego, <strong>913<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazdu z pozostawieniem tablic nie zarejestrowanych wcze\u015bniej na terenie Powiatu \u017byrardowskiego, <strong>717 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja przyczep, <strong>170<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja motorower, <strong>20 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja pojazd\u00f3w ze zmniejszon\u0105 tablic\u0105, <strong>8 <\/strong>sztuk,<\/li>\n\n\n\n<li>Rejestracja motoroweru elektrycznego, <strong>6<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja ci\u0105gnik\u00f3w, <strong>50<\/strong> sztuk,<\/li>\n\n\n\n<li>Rejestracja zabytek motor, <strong>1<\/strong> sztuka,<\/li>\n\n\n\n<li>Rejestracja zabytek samoch\u00f3d,&nbsp;<strong>1 <\/strong>sztuka,<\/li>\n\n\n\n<li>Tymczasowa rejestracja, <strong>190<\/strong> sztuk,<\/li>\n\n\n\n<li>Demonta\u017c, <strong>113<\/strong> sztuk,<\/li>\n\n\n\n<li>Pozostawienie spraw zwi\u0105zanych z pojazdem (gaz, Hak, dodatkowa tablica, duplikat dowodu rejestracyjnego), <strong>179<\/strong> sztuk,<\/li>\n\n\n\n<li>Zbycia pojazd\u00f3w zarejestrowanych na WZY, <strong>3248<\/strong> sztuk,<\/li>\n\n\n\n<li>Wydanie mi\u0119dzynarodowych praw jazdy<strong>, 14<\/strong> sztuk,<\/li>\n\n\n\n<li>Wydanie karty kierowc\u00f3w zawodowych, <strong>79<\/strong> sztuk,<\/li>\n\n\n\n<li>Sprawy zwi\u0105zane z prawem jazdy (wydanie, wymiana), <strong>552 <\/strong>sztuki,<\/li>\n<\/ol>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-03e9323ab6fbf50e2a898812db09e7b6\" style=\"color:#14357a\"><strong>Sprawy z zakresu usuwania pojazd\u00f3w (art. 130a Prawo o ruchu drogowym)<\/strong><\/h4>\n\n\n\n<p>Dnia 23.12.2024 r. zawarto umow\u0119 z przedsi\u0119biorc\u0105 dotycz\u0105c\u0105 usuwania pojazd\u00f3w z dr\u00f3g oraz prowadzenia parkingu strze\u017conego dla pojazd\u00f3w usuni\u0119tych na podstawie art. 130a ustawy Prawo o ruchu drogowym. <\/p>\n\n\n    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">W ramach zadania:<\/h2>\n                                            <\/div>\n                        \n            <div class=\"stats-grid stats-grid-3\">\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">usuni\u0119to <\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"131\"\n                                  data-suffix=\" pojazd\u00f3w\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\">w tym 41 pojazd\u00f3w nie zosta\u0142o odebranych z parkingu przez w\u0142a\u015bcicieli<\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">z\u0142o\u017cono<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"95\"\n                                  data-suffix=\" wniosk\u00f3w\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\">o przepadek pojazdu na rzecz powiatu \u017cyrardowskiego<\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">zdemontowano<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"64\"\n                                  data-suffix=\" pojazdy\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-d7f7aa50797c187ebd5ddfdbb52d7f0c\" style=\"color:#14357a\"><strong>Liczby instruktor\u00f3w nauki jazdy, wyk\u0142adowc\u00f3w oraz o\u015brodk\u00f3w szkolenia kierowc\u00f3w wpisanych do rejestru prowadzonego przez Starost\u0119 Powiatu \u017byrardowskiego<\/strong>:<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>instruktor\u00f3w wpisanych do ewidencji instruktor\u00f3w, 61,<\/li>\n\n\n\n<li>wyk\u0142adowc\u00f3w wpisanych do ewidencji wyk\u0142adowc\u00f3w, 61,<\/li>\n\n\n\n<li>o\u015brodk\u00f3w szkolenia kierowc\u00f3w wpisanych do rejestru przedsi\u0119biorc\u00f3w prowadz\u0105cych o\u015brodek szkolenia kierowc\u00f3w, 13.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:46px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-ae05ed2f14d5add3b49f6eb47e0a2bab\" style=\"color:#14357a\">INFRASTRUKTURA DROGOWA<\/h2>\n\n\n\n<p>Jednostki organizacyjne powiatu\/kom\u00f3rki organizacyjne w jednostkach realizuj\u0105ce zadanie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Starostwo Powiatowe w \u017byrardowie:\n<ul class=\"wp-block-list\">\n<li>Wydzia\u0142 Komunikacji, Transportu i Dr\u00f3g Publicznych<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Powiatowy Zarz\u0105d Dr\u00f3g<\/li>\n<\/ul>\n\n\n\n<p>Zadania zwi\u0105zane z utrzymaniem dr\u00f3g powiatowych realizuj\u0105 ponadto: Prezydent Miasta \u017byrardowa oraz Burmistrz Mszczonowa.<\/p>\n\n\n    <section class=\"animated-stats-section statistics-block-custom\" \n             style=\"background-color: #ffffff; \n                    \">\n        <div class=\"stats-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">D\u0142ugo\u015b\u0107 dr\u00f3g powiatowych na terenie Powiatu \u017byrardowskiego wed\u0142ug stanu na dzie\u0144 31.12.2025 r. wynosi\u0142a 198,86 km, w tym:<\/h2>\n                                            <\/div>\n                        \n            <div class=\"stats-grid stats-grid-3\">\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">drogi powiatowe po\u0142o\u017cone poza granicami administracyjnymi miast<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"186\"\n                                  data-suffix=\",35 km\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">drogi powiatowe po\u0142o\u017cone w granicach administracyjnych miasta \u017byrardowa<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"6\"\n                                  data-suffix=\",43 km\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                                    <div class=\"stat-box\" style=\"background-color: #f5f7fa;\">\n                        <h3 class=\"stat-title\" style=\"color: #1e3c72;\">drogi powiatowe po\u0142o\u017cone w granicach administracyjnych miasta Mszczonowa<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"6\"\n                                  data-suffix=\",08 km\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-d91ab37534b4bcb4d3ccad63153b35ac\" style=\"color:#14357a\"><strong>Do zarz\u0105dcy dr\u00f3g powiatowych, nale\u017c\u0105 w szczeg\u00f3lno\u015bci nast\u0119puj\u0105ce zadania:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>opracowywanie projekt\u00f3w plan\u00f3w rozwoju sieci drogowej,<\/li>\n\n\n\n<li>opracowywanie projekt\u00f3w plan\u00f3w finansowania budowy, przebudowy, remontu, utrzymania i ochrony dr\u00f3g oraz drogowych obiekt\u00f3w in\u017cynierskich,<\/li>\n\n\n\n<li>pe\u0142nienie funkcji inwestora,<\/li>\n\n\n\n<li>utrzymanie nawierzchni drogi, chodnik\u00f3w, drogowych obiekt\u00f3w in\u017cynierskich, urz\u0105dze\u0144 zabezpieczaj\u0105cych ruch i innych urz\u0105dze\u0144 zwi\u0105zanych z drog\u0105,<\/li>\n\n\n\n<li>realizacja zada\u0144 w zakresie in\u017cynierii ruchu,<\/li>\n\n\n\n<li>koordynacja rob\u00f3t w pasie drogowym,<\/li>\n\n\n\n<li>wydawanie zezwole\u0144 na zaj\u0119cie pasa drogowego i zjazdy z dr\u00f3g oraz pobieranie op\u0142at i&nbsp;kar pieni\u0119\u017cnych,<\/li>\n\n\n\n<li>prowadzenie ewidencji dr\u00f3g, obiekt\u00f3w mostowych, tuneli, przepust\u00f3w i prom\u00f3w,<\/li>\n\n\n\n<li>przeprowadzanie okresowych kontroli stanu dr\u00f3g i drogowych obiekt\u00f3w in\u017cynierskich, ze szczeg\u00f3lnym uwzgl\u0119dnieniem ich wp\u0142ywu na stan bezpiecze\u0144stwa ruchu drogowego, w tym weryfikacj\u0119 cech i wskazanie usterek, kt\u00f3re wymagaj\u0105 prac konserwacyjnych lub naprawczych ze wzgl\u0119du na bezpiecze\u0144stwo ruchu drogowego,<\/li>\n\n\n\n<li>badanie wp\u0142ywu rob\u00f3t drogowych na bezpiecze\u0144stwo ruchu drogowego,<\/li>\n\n\n\n<li>przeciwdzia\u0142anie niszczeniu dr\u00f3g przez ich u\u017cytkownik\u00f3w,<\/li>\n\n\n\n<li>dokonywanie okresowych pomiar\u00f3w ruchu drogowego,<\/li>\n\n\n\n<li>utrzymywanie zieleni przydro\u017cnej, w tym sadzenie i usuwanie drzew oraz krzew\u00f3w.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zgodnie z porozumieniem zawartym w dniu 04.05.2000 r. pomi\u0119dzy Zarz\u0105dem Powiatu \u017byrardowskiego a Zarz\u0105dem Miasta Mszczonowa w sprawie powierzenia prowadzenia niekt\u00f3rych spraw w tym wydawania decyzji administracyjnych w pierwszej instancji nale\u017c\u0105cych do w\u0142a\u015bciwo\u015bci Powiatu \u017byrardowskiego oraz aneksem nr 1 z dnia 17.04.2007 r. do&nbsp;porozumienia, Burmistrz Miasta Mszczonowa pe\u0142ni funkcj\u0119 zarz\u0105dcy drogi, w odniesieniu do dr\u00f3g powiatowych, po\u0142o\u017conych w granicach administracyjnych miasta Mszczonowa.<\/p>\n\n\n\n<p>Zgodnie z porozumieniem zawartym w dniu 11.12.2025 r. pomi\u0119dzy Zarz\u0105dem Powiatu \u017byrardowskiego a Prezydentem Miasta \u017byrardowa w sprawie powierzenia prowadzenia niekt\u00f3rych zada\u0144 publicznych nale\u017c\u0105cych do w\u0142a\u015bciwo\u015bci Powiatu \u017byrardowskiego, Prezydent Miasta \u017byrardowa pe\u0142ni funkcj\u0119 zarz\u0105dcy drogi, w odniesieniu do dr\u00f3g powiatowych, po\u0142o\u017conych w granicach administracyjnych miasta \u017byrardowa.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-332ce7535a14d15cbe31ad49487c2900\" style=\"color:#14357a\"><strong>Roboty wykonane w ramach bie\u017c\u0105cego utrzymania dr\u00f3g w 2025 r. przez pracownik\u00f3w drogowej s\u0142u\u017cby liniowej Powiatowego Zarz\u0105du Dr\u00f3g w ramach obowi\u0105zk\u00f3w s\u0142u\u017cbowych:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>remont nawierzchni dr\u00f3g powiatowych na terenie powiatu \u017cyrardowskiego (mas\u0105 na zimno i kruszywem),<\/li>\n\n\n\n<li>uzupe\u0142nianie zani\u017conych poboczy, remont wyboi w poboczu,<\/li>\n\n\n\n<li>usuwanie nadmiaru gruntu z pobocza,<\/li>\n\n\n\n<li>wykonanie rowk\u00f3w poprzecznych odprowadzaj\u0105cych wod\u0119 z pobocza,<\/li>\n\n\n\n<li>wymiana i ustawienie znak\u00f3w pionowych i s\u0142upk\u00f3w,<\/li>\n\n\n\n<li>mycie znak\u00f3w pionowych,<\/li>\n\n\n\n<li>malowanie s\u0142upk\u00f3w do znak\u00f3w, skrajni, barier ochronnych, mostowych,<\/li>\n\n\n\n<li>uzupe\u0142nienie brakuj\u0105cych pacho\u0142k\u00f3w drogowych,<\/li>\n\n\n\n<li>monta\u017c barier ochronnych,<\/li>\n\n\n\n<li>renowacja row\u00f3w przydro\u017cnych,<\/li>\n\n\n\n<li>udro\u017cnienie przepust\u00f3w,<\/li>\n\n\n\n<li>naprawa i czyszczenie studzienek odwadniaj\u0105cych,<\/li>\n\n\n\n<li>wycinka drzew przydro\u017cnych,<\/li>\n\n\n\n<li>podcinanie drzew \u2013 usuwanie ga\u0142\u0119zi,<\/li>\n\n\n\n<li>sadzenie drzew,<\/li>\n\n\n\n<li>wycinka odrost\u00f3w,<\/li>\n\n\n\n<li>chemiczne zwalczanie odrost\u00f3w,<\/li>\n\n\n\n<li>rozdrabnianie ga\u0142\u0119zi i odrost\u00f3w r\u0119bakiem,<\/li>\n\n\n\n<li>wyw\u00f3z ga\u0142\u0119zi z pasa drogowego,<\/li>\n\n\n\n<li>koszenie traw, chwast\u00f3w i odrost\u00f3w na poboczach i skarpie rowu kosiark\u0105 bijakow\u0105,<\/li>\n\n\n\n<li>czyszczenie nawierzchni jezdni, chodnik\u00f3w, wiadukt\u00f3w i most\u00f3w,<\/li>\n\n\n\n<li>sprz\u0105tanie pasa drogowego.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-57957b5153ca2864cc2567f98d4f9c71\" style=\"color:#14357a\"><strong>Zadania w zakresie zimowego utrzymania dr\u00f3g wykonane w 2025 roku przez pracownik\u00f3w Powiatowego Zarz\u0105du Dr\u00f3g w ramach obowi\u0105zk\u00f3w s\u0142u\u017cbowych:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>przygotowanie post\u0119powania przetargowego na dostaw\u0119 soli drogowej i piasku do zimowego utrzymania dr\u00f3g,<\/li>\n\n\n\n<li>pe\u0142nienie dy\u017cur\u00f3w przy zimowym utrzymaniu dr\u00f3g,<\/li>\n\n\n\n<li>od\u015bnie\u017canie i zwalczanie \u015blisko\u015bci na chodnikach.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-6ce29fc2e9fbabad7fe549d1dbddfc0b\" style=\"color:#14357a\"><strong>Roboty wykonane w 2025 r. przez wykonawc\u00f3w zewn\u0119trznych:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>poprawa przejezdno\u015bci i bezpiecze\u0144stwa ruchu na drodze powiatowej nr 4719W Puszcza Maria\u0144ska \u2013 Mszczon\u00f3w \u2013 <strong>356 340,10 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont drogi powiatowej nr 4726W Mszczon\u00f3w \u2013 Strzy\u017ce \u2013 Bobrowce \u2013 granica powiatu w gm. Mszczon\u00f3w na odcinku: od km 0+018 do km 2+887 \u2013 <strong>1<\/strong>&nbsp;<strong>444<\/strong>&nbsp;<strong>013,60 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont drogi powiatowej nr 1517W Baran\u00f3w \u2013 Stare Koz\u0142owice \u2013 <strong>108<\/strong>&nbsp;<strong>126,23 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont miejsc postojowych na drodze powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Puszcza Maria\u0144ska \u2013 <strong>93<\/strong>&nbsp;<strong>523,04 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont chodnika w ci\u0105gu drogi powiatowej nr 4713W w m. Radziejowice i Tartak Brz\u00f3zki \u2013 <strong>46 600,15 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont poboczy przekruszem betonowym na drodze powiatowej nr 4709W (Skierniewice) gr. woj. Bartniki \u2013 Miedniewice w m. Bartniki \u2013 <strong>100 617,08 z\u0142<\/strong>,<\/li>\n\n\n\n<li>modernizacja drogi 4703W Miedniewice \u2013 Franciszk\u00f3w w m. Franciszk\u00f3w \u2013 <strong>199 142,41 z\u0142<\/strong>,<\/li>\n\n\n\n<li>modernizacja drogi powiatowej nr 4709W (Skierniewice) gr. woj. Bartniki \u2013 Miedniewice \u2013 <strong>144 338,04 z\u0142<\/strong>,<\/li>\n\n\n\n<li>przebudowa drogi powiatowej nr 4721W (Raducz \u2013 Jeruzal) gr. woj. \u2013 Wola Polska \u2013 <strong>195 205,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>przebudowa drogi powiatowej nr 4725W Mszczon\u00f3w \u2013 Piekary \u2013 Wygnanka \u2013 granica wojew\u00f3dztwa \u2013 (Cychry) \u2013 <strong>510 545,94 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont cz\u0105stkowy nawierzchni bitumicznych grysami bazaltowymi i emulsj\u0105 asfaltow\u0105 przy u\u017cyciu remontera na drogach powiatowych na terenie Powiatu \u017byrardowskiego \u2013&nbsp;<strong>141 696,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>pojedyncze powierzchniowe utrwalenie na drogach powiatowych na terenie Powiatu \u017byrardowskiego \u2013&nbsp;<strong>525 072,24 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wykonanie i odnowa oznakowania poziomego na drogach powiatowych na terenie Powiatu \u017byrardowskiego \u2013 <strong>63 079,63 z\u0142<\/strong>,<\/li>\n\n\n\n<li>monitorowanie wiaduktu nad lini\u0105 PKP CMK w m. Koryt\u00f3w w ci\u0105gu drogi powiatowej nr 4713W \u2013 <strong>2 460,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>remont wiaduktu nad lini\u0105 PKP CMK w m. Koryt\u00f3w w ci\u0105gu drogi powiatowej nr 4713W \u2013 <strong>522 954,87 z\u0142<\/strong>,<\/li>\n\n\n\n<li>monitorowanie wiaduktu nad lini\u0105 PKP CMK w m. Lublin\u00f3w w ci\u0105gu drogi powiatowej nr 4719W \u2013 <strong>29 520,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>profilowanie dr\u00f3g powiatowych gruntowych oraz poboczy na terenie Powiatu \u017byrardowskiego r\u00f3wniark\u0105 drogow\u0105 \u2013 <strong>35 587,50 z\u0142<\/strong>,<\/li>\n\n\n\n<li>naprawa o\u015bwietlenia w Nowych Koz\u0142owicach na drodze nr 1517W \u2013 <strong>9 175,69 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wymiana (dostawa + monta\u017c) 1 s\u0142upa o\u015bwietlenia drogowego w m. Czekaj w ci\u0105gu drogi powiatowej nr 4715W Olsz\u00f3wka \u2013 Mszczon\u00f3w \u2013 <strong>12 546,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>zakup i monta\u017c urz\u0105dze\u0144 wskazuj\u0105cych pr\u0119dko\u015bci 2 sztuk radarowych wy\u015bwietlaczy pr\u0119dko\u015bci w ci\u0105gu drogi powiatowej nr 4729W \u2013 <strong>23 370,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>przegl\u0105d i czyszczenie osadnik\u00f3w oraz inspekcja dro\u017cno\u015bci kr\u00f3\u0107ca dop\u0142ywowego na drodze powiatowej nr 4715W Olsz\u00f3wka \u2013 Mszczon\u00f3w w m. Wr\u0119cza \u2013 <strong>35 298,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>przegl\u0105d i czyszczenie separator\u00f3w na drodze powiatowej nr 4722W Wola Polska \u2013 Karnice \u2013 Mszczon\u00f3w w m. Korabiewice \u2013 <strong>9 750,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>przepompownia wraz z kanalizacj\u0105 deszczow\u0105 w m. Miedniewice w ci\u0105gu drogi powiatowej nr 3834W i 4704W:<\/li>\n\n\n\n<li>wykonanie przegl\u0105du i czyszczenia separator\u00f3w, studzienek rewizyjnych z przykanalikami, wpust\u00f3w ulicznych, pompowni \u2013&nbsp;<strong>16 140,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wykonanie bada\u0144 w zakresie stopnia oczyszczenia w\u00f3d opadowych i roztopowych w czasie trwania opadu &#8211;&nbsp;<strong>1 230,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wykonanie przegl\u0105du rocznego obiektu budowlanego &#8211; przepompowni wraz z&nbsp;kanalizacj\u0105 deszczow\u0105 \u2013 <strong>1 107,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wykonanie okresowego przegl\u0105du elektrycznego przepompowni w\u00f3d deszczowych \u2013 <strong>984,00 z\u0142<\/strong>,<\/li>\n\n\n\n<li>wykonanie rocznych przegl\u0105d\u00f3w stanu technicznego dr\u00f3g powiatowych i obiekt\u00f3w in\u017cynierskich \u2013 <strong>35 239,50&nbsp;z\u0142<\/strong>,<\/li>\n\n\n\n<li>dostawa soli drogowej \u2013 371,30 Mg \u2013 <strong>127 765,47 z\u0142<\/strong>,<\/li>\n\n\n\n<li>dostawa kruszyw uszorstniaj\u0105cych \u2013 1027,92 Mg \u2013 <strong>48 778,49 z\u0142.<\/strong><\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><span style=\"text-decoration: underline;\">Ilo\u015b\u0107 pracownik\u00f3w zatrudnionych w PZD na dzie\u0144 31.12.2025 r. &#8211; 17 os\u00f3b.<\/span><\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-11639a0c4b77b30c0720368b59fb835b\" style=\"color:#14357a\"><strong>Wykaz pojazd\u00f3w i sprz\u0119t\u00f3w b\u0119d\u0105cych na wyposa\u017ceniu PZD na dzie\u0144 31.12.2025 r.:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Opel Astra,<\/li>\n\n\n\n<li>Opel Insignia,<\/li>\n\n\n\n<li>Mercedes,<\/li>\n\n\n\n<li>Volkswagen Crafter,<\/li>\n\n\n\n<li>koparko-\u0142adowarka JCB,<\/li>\n\n\n\n<li>koparko-\u0142adowarka CAT,<\/li>\n\n\n\n<li>ci\u0105gnik New Holland,<\/li>\n\n\n\n<li>ci\u0105gnik C-360,<\/li>\n\n\n\n<li>ci\u0105gnik iseki,<\/li>\n\n\n\n<li>przyczepy rolnicze \u2013 2 szt.,<\/li>\n\n\n\n<li>przyczepki samochodowe \u2013 3 szt.,<\/li>\n\n\n\n<li>kosiarka bijakowa \u2013 2 szt.,<\/li>\n\n\n\n<li>r\u0119bak do ga\u0142\u0119zi \u2013 3 szt.,<\/li>\n\n\n\n<li>przecinarka nawierzchni,<\/li>\n\n\n\n<li>m\u0142ot spalinowy,<\/li>\n\n\n\n<li>od\u015bnie\u017carka \u2013 3 szt.,<\/li>\n\n\n\n<li>karczownik,<\/li>\n\n\n\n<li>zamiatarka \u2013 2 szt.,<\/li>\n\n\n\n<li>kosy spalinowe \u2013 5 szt.,<\/li>\n\n\n\n<li>podkaszarka \u2013 2 szt.,<\/li>\n\n\n\n<li>pilarki \u2013 4 szt.,<\/li>\n\n\n\n<li>zag\u0119szczarka \u2013 3 szt.,<\/li>\n\n\n\n<li>agregat pr\u0105dotw\u00f3rczy \u2013 2 szt.,<\/li>\n\n\n\n<li>rozsiewacz ci\u0105gnikowy \u2013 2 szt.,<\/li>\n\n\n\n<li>opryskiwacz ci\u0105gnikowy,<\/li>\n\n\n\n<li>p\u0142ug od\u015bnie\u017cny do koparki,<\/li>\n\n\n\n<li>p\u0142ug od\u015bnie\u017cny do ci\u0105gnika \u2013 2 szt.,<\/li>\n\n\n\n<li>p\u0142ugi od\u015bnie\u017cne \u2013 5 szt.,<\/li>\n\n\n\n<li>piaskarki \u2013 3 szt.,<\/li>\n\n\n\n<li>odkurzacz ogrodowy \u2013 2 szt.,<\/li>\n\n\n\n<li>wiertnica \u2013 1 szt.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-3bd7e1741135e11a02241ee9a83ed4fd\" style=\"color:#14357a\"><strong>Dzia\u0142ania podj\u0119te w ramach nowych inwestycji oraz kontynuacji inwestycji rozpocz\u0119tych w&nbsp;latach poprzednich:<\/strong><\/h4>\n\n\n\n<ol style=\"list-style-type:upper-alpha\" class=\"wp-block-list\">\n<li>Rozbudowa i przebudowa dr\u00f3g powiatowych <em>w trakcie realizacji na dzie\u0144 31.12.2025 r.:<\/em><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rozbudowa drogi powiatowej nr 4729W Wiskitki \u2013 Dzia\u0142ki \u2013 \u017byrard\u00f3w \u2013 Etap II<\/li>\n\n\n\n<li>15.430.188,73 z\u0142 (w tym: 15.357.003,73 z\u0142 &#8211; roboty budowlane, 73.185,00 z\u0142 \u2013 nadz\u00f3r inwestorski),<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki \u2013&nbsp;4.132.030,91 z\u0142 (w tym: 4.112.473,91 z\u0142 &#8211; roboty budowlane, 19.557,00 z\u0142 \u2013 nadz\u00f3r inwestorski),<\/li>\n\n\n\n<li>Poprawa dost\u0119pno\u015bci transportowej zachodniej cz\u0119\u015bci Mazowsza na obszarze otoczenia CPK z podzia\u0142em na cz\u0119\u015bci:\n<ul class=\"wp-block-list\">\n<li>Cz\u0119\u015b\u0107 I:&nbsp;Przebudowa odcinka drogi powiatowej nr 4726W przebiegaj\u0105cej przez&nbsp;miejscowo\u015b\u0107 Osuch\u00f3w, w gminie Mszczon\u00f3w \u2013 1.798.183,08 z\u0142 (warto\u015b\u0107 rob\u00f3t budowlanych),<\/li>\n\n\n\n<li>Cz\u0119\u015b\u0107 II: Przebudowa drogi powiatowej nr 4718W od km 1+495 do km 1+720 (dojazd do mostu w m. Bartniki) \u2013 702.970,20 z\u0142 (warto\u015b\u0107 rob\u00f3t budowlanych),<\/li>\n\n\n\n<li>Cz\u0119\u015b\u0107 III: Przebudowa drogi powiatowej nr 4701W na d\u0142. 880 mb w m. Nowy Drzewicz \u2013 498.154,43 z\u0142 (warto\u015b\u0107 rob\u00f3t budowlanych),<\/li>\n\n\n\n<li>Cz\u0119\u015b\u0107 IV: Przebudowa drogi powiatowej nr 4701W na d\u0142. 850 mb w m. Stary Drzewicz i Oryszew Osada \u2013 469.136,76 z\u0142 (warto\u015b\u0107 rob\u00f3t budowlanych),<\/li>\n\n\n\n<li>Cz\u0119\u015b\u0107 V: Przebudowa drogi powiatowej nr 4718W na d\u0142. 895 mb w m. Budy Zaklasztorne \u2013 412.188,68 z\u0142 (warto\u015b\u0107 rob\u00f3t budowlanych),<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" style=\"list-style-type:upper-alpha\" class=\"wp-block-list\">\n<li>Wykonanie dokumentacji projektowych:<\/li>\n<\/ol>\n\n\n\n<p>B.1) <em>dokumentacje wykonane w 2025 roku:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dokumentacja projektowa na rozbudow\u0119 drogi powiatowej nr 3834W Szyman\u00f3w \u2013 Oryszew \u2013 Miedniewice na odcinku od Starowiskitek do Miedniewic \u2013&nbsp;146.999,99 z\u0142,<\/li>\n\n\n\n<li>projekt wykonawczy dla zadania pn.: \u201e Poprawa dost\u0119pno\u015bci transportowej zachodniej cz\u0119\u015bci Mazowsza na obszarze otoczenia CPK\u201d: Cz\u0119\u015b\u0107 I: \u201ePrzebudowa odcinka drogi powiatowej nr 4726W przebiegaj\u0105cej przez miejscowo\u015b\u0107 Osuch\u00f3w, w gminie Mszczon\u00f3w\u201d \u2013 68.000,00 z\u0142,<\/li>\n<\/ul>\n\n\n\n<p>B.2) <em>dokumentacje w trakcie opracowywania na dzie\u0144 31.12.2025 r.:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dokumentacja projektowa na rozbudow\u0119 drogi powiatowej nr 4702W Wiskitki \u2013 \u0141ubno \u2013 Franciszk\u00f3w \u2013 148.830,00 z\u0142,<\/li>\n\n\n\n<li>dokumentacja projektowa na zadanie pn.: \u201ePrzebudowa drogi powiatowej nr 4718W od km 1+495 do km 1+720 (dojazdy do mostu w m. Bartniki) \u2013 50.000,00 z\u0142,<\/li>\n\n\n\n<li>dokumentacja projektowa na zadanie pn.: \u201ePrzebudowa fragmentu drogi 4715W na odcinku od ronda na skrzy\u017cowaniu z ul. Nowy \u015awiat do zabudowa\u0144 w m. Wr\u0119cza\u201d\u2013 44.999,99 z\u0142,<\/li>\n<\/ul>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g jest zarz\u0105dc\u0105 trwa\u0142ym nieruchomo\u015bci zlokalizowanej na dzia\u0142ce nr ew. 6284 o powierzchni 0,6320 ha po\u0142o\u017conej w \u017byrardowie przy ul. Jaktorowskiej 53. Nieruchomo\u015b\u0107 zabudowana jest budynkami: mieszkalno-administracyjnym, socjalno-gara\u017cowym, portierni\u0105, przeznaczonymi na cele zwi\u0105zane z utrzymaniem dr\u00f3g publicznych jako baza administracyjno- gospodarcza. Teren nieruchomo\u015bci jest w pe\u0142ni ogrodzony, ochron\u0119 mienia Powiatu \u017byrardowskiego b\u0119d\u0105cego w trwa\u0142ym zarz\u0105dzie PZD pe\u0142ni zewn\u0119trzna firma ochroniarska.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-21fcd95613ca0c8d9887318f8203ee76\" style=\"color:#14357a\">UTRZYMANIE POWIATOWYCH OBIEKT\u00d3W I URZ\u0104DZE\u0143 U\u017bYTECZNO\u015aCI PUBLICZNEJ ORAZ OBIEKT\u00d3W ADMINISTRACYJNYCH<\/h2>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-63196286fa9048e57d8408a2ac423b0d\" style=\"color:#14357a\"><strong>Jednostki organizacyjne powiatu\/kom\u00f3rki organizacyjne w jednostkach realizuj\u0105ce zadanie:<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Starostwo Powiatowe w \u017byrardowie:\n<ul class=\"wp-block-list\">\n<li>Wydzia\u0142 Organizacyjny,<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Zesp\u00f3\u0142 Szk\u00f3\u0142 Nr 1 w \u017byrardowie,<\/li>\n\n\n\n<li>Zesp\u00f3\u0142 Szk\u00f3\u0142 Nr 2 w \u017byrardowie,<\/li>\n\n\n\n<li>Zesp\u00f3\u0142 Szk\u00f3\u0142 Nr 3 w Wiskitkach,<\/li>\n\n\n\n<li>Zesp\u00f3\u0142 Szk\u00f3\u0142 w Mszczonowie,<\/li>\n\n\n\n<li>Liceum Og\u00f3lnokszta\u0142c\u0105ce w Mszczonowie,<\/li>\n\n\n\n<li>Liceum Og\u00f3lnokszta\u0142c\u0105ce w Puszczy Maria\u0144skiej,<\/li>\n\n\n\n<li>Liceum Og\u00f3lnokszta\u0142c\u0105ce Szko\u0142y Mistrzostwa Sportowego w \u017byrardowie,<\/li>\n\n\n\n<li>Specjalny O\u015brodek Szkolno-Wychowawczy w \u017byrardowie,<\/li>\n\n\n\n<li>M\u0142odzie\u017cowy Dom Kultury w \u017byrardowie,<\/li>\n\n\n\n<li>Poradnia Psychologiczno-Pedagogiczna w \u017byrardowie,<\/li>\n\n\n\n<li>Muzeum Mazowsza Zachodniego w \u017byrardowie,<\/li>\n\n\n\n<li>Powiatowe Centrum Pomocy Rodzinie,<\/li>\n\n\n\n<li>Dom Pomocy Spo\u0142ecznej w \u017byrardowie dla os\u00f3b przewlekle chorych somatycznie,<\/li>\n\n\n\n<li>Dom Pomocy Spo\u0142ecznej w \u017byrardowie im. ks. Jerzego Popie\u0142uszki,<\/li>\n\n\n\n<li>Dom Pomocy Spo\u0142ecznej w Hamerni,<\/li>\n\n\n\n<li>\u015arodowiskowy Dom Samopomocy w \u017byrardowie,<\/li>\n\n\n\n<li>Centrum Zdrowia Mazowsza Zachodniego sp. z o. o.,<\/li>\n\n\n\n<li>Powiatowy Zarz\u0105d Dr\u00f3g.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Jednostki organizacyjne Powiatu samodzielnie realizuj\u0105 zadania zwi\u0105zane z bie\u017c\u0105cym utrzymaniem swoich obiekt\u00f3w. Na bie\u017c\u0105co podejmowane s\u0105 dzia\u0142ania remontowe wewn\u0105trz obiektu i na zewn\u0105trz obiekt\u00f3w. W spos\u00f3b ustawiczny przeprowadzane s\u0105 bie\u017c\u0105ce prace remontowo-naprawcze metod\u0105 gospodarcz\u0105 przez zatrudnionych do tego pracownik\u00f3w. S\u0105 to konieczne naprawy, malowanie \u015bcian, podnoszenie standardu estetyki pomieszcze\u0144 w&nbsp;miejscach uszkodze\u0144, utrzymanie czysto\u015bci otoczenia obiekt\u00f3w oraz wszelkie naprawy niewymagaj\u0105ce szczeg\u00f3lnych uprawnie\u0144. W budynkach Powiatu przeprowadzane s\u0105 obowi\u0105zkowe okresowe przegl\u0105dy techniczne (m.in.: og\u00f3lnobudowlany, elektryczny, kominiarski).<\/p>\n\n\n\n<p><strong>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie jest zarz\u0105dc\u0105 trwa\u0142ym nieruchomo\u015bci zlokalizowanej na dzia\u0142ce nr ew. 6284 o powierzchni 0,6320 ha po\u0142o\u017conej w \u017byrardowie przy ul. Jaktorowskiej 53.&nbsp;<\/strong>Nieruchomo\u015b\u0107 zabudowana jest budynkami: mieszkalno-administracyjnym, socjalno-gara\u017cowym, portierni\u0105, przeznaczonymi na cele zwi\u0105zane z utrzymaniem dr\u00f3g publicznych jako baza administracyjno- gospodarcza. Teren nieruchomo\u015bci jest w pe\u0142ni ogrodzony, ochron\u0119 mienia Powiatu \u017byrardowskiego b\u0119d\u0105cego w trwa\u0142ym zarz\u0105dzie PZD pe\u0142ni zewn\u0119trzna firma ochroniarska.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ZWI\u0104ZEK POWIATOWO-GMINNY \u201e\u017bYRARDOWSKIE PRZEWOZY AUTOBUSOWE\u201d Od 1 stycznia 2025 roku w Powiecie \u017byrardowskim nast\u0105pi\u0142a istotna zmiana w organizacji publicznego transportu zbiorowego. Dotychczasowy model, w kt\u00f3rym funkcj\u0119 organizatora pe\u0142ni\u0142 powiat, zosta\u0142&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-539","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/comments?post=539"}],"version-history":[{"count":162,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/539\/revisions"}],"predecessor-version":[{"id":2909,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/539\/revisions\/2909"}],"wp:attachment":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/media?parent=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}