{"id":538,"date":"2026-04-24T13:32:36","date_gmt":"2026-04-24T11:32:36","guid":{"rendered":"http:\/\/192.168.2.11\/?page_id=538"},"modified":"2026-05-13T15:05:46","modified_gmt":"2026-05-13T13:05:46","slug":"inwestycje","status":"publish","type":"page","link":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/inwestycje\/","title":{"rendered":"Inwestycje"},"content":{"rendered":"    <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;\">Warto\u015b\u0107 zrealizowanych wydatk\u00f3w maj\u0105tkowych w 2025 r.<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"31443098\"\n                                  data-suffix=\",52 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<h3 class=\"wp-block-heading has-text-align-center has-white-color has-text-color has-background has-link-color wp-elements-4a64b680ed0decdf77d6bc8ca1c6d8dc\" style=\"background-color:#14357a\"><strong>INWESTYCJE W TRANSPORT I \u0141\u0104CZNO\u015a\u0106<\/strong><\/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-38e9eed2e0236ab1c40ac7e010a24d35\" style=\"color:#14357a\"><strong>1. Rozbudowa drogi powiatowej nr 4729W Wiskitki &#8211; Dzia\u0142ki &#8211; \u017byrard\u00f3w &#8211; Etap II<\/strong><\/h4>\n\n\n\n<p>W 2025 r. Starostwo Powiatowe wraz z Powiatowym Zarz\u0105dem Dr\u00f3g&nbsp;w \u017byrardowie realizowa\u0142o przedsi\u0119wzi\u0119cie polegaj\u0105ce na:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dostosowaniu odcinka o d\u0142ugo\u015bci 1810 m do warunk\u00f3w technicznych dla drogi klasy Z i kategorii ruchu KR-4 oraz budow\u0119 infrastruktury towarzysz\u0105cej,<\/li>\n\n\n\n<li>budow\u0119 chodnika, budow\u0119 ci\u0105gu pieszo \u2013 rowerowego,<\/li>\n\n\n\n<li>budow\u0119 wyniesionego skrzy\u017cowania,<\/li>\n\n\n\n<li>budow\u0119 o\u015bwietlenia,<\/li>\n\n\n\n<li>dostaw\u0119 i monta\u017c urz\u0105dzenia foto &#8211; radarowego ograniczaj\u0105cego pr\u0119dko\u015b\u0107 ruchu u\u017cytkownik\u00f3w\/pojazd\u00f3w, kt\u00f3re b\u0119dzie zasilane odnawialn\u0105 energi\u0105 pochodz\u0105c\u0105 z paneli fotowoltaicznych,<\/li>\n\n\n\n<li>nowe oznakowanie poziome i pionowe.<\/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>Warto\u015b\u0107 projektu:<\/strong> 29 547 394,03 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>28 999 999,98 z\u0142, w tym: 24 999 999,98 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego), 4 000&nbsp;000,00 z\u0142 \u2013 Urz\u0105d Marsza\u0142kowski Wojew\u00f3dztwa Mazowieckiego<br><strong>Okres realizacji zadania: <\/strong>2024-2026<br><strong>Stan zaawansowania:<\/strong> zadanie b\u0119dzie kontynuowane w 2026 r.<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 2&nbsp;540 632,08 z\u0142.<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83c98f3 has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rozbudowa-drogi-powiatowej-nr-4729W-Wiskitki-Dzialki-Zyrardow-Etap-II-2.jpg&quot;,&quot;caption&quot;:&quot;Rozbudowa drogi powiatowej nr 4729W Wiskitki - Dzia\\u0142ki - \\u017byrard\\u00f3w - Etap II&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rozbudowa-drogi-powiatowej-nr-4729W-Wiskitki-Dzialki-Zyrardow-Etap-II-scaled.jpg&quot;,&quot;caption&quot;:&quot;Rozbudowa drogi powiatowej nr 4729W Wiskitki - Dzia\\u0142ki - \\u017byrard\\u00f3w - Etap II&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid\" style=\"grid-template-columns: repeat(2, 1fr); gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rozbudowa-drogi-powiatowej-nr-4729W-Wiskitki-Dzialki-Zyrardow-Etap-II-2.jpg\" alt=\"Rozbudowa drogi powiatowej nr 4729W Wiskitki - Dzia\u0142ki - \u017byrard\u00f3w - Etap II\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rozbudowa drogi powiatowej nr 4729W Wiskitki &#8211; Dzia\u0142ki &#8211; \u017byrard\u00f3w &#8211; Etap II<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"1\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rozbudowa-drogi-powiatowej-nr-4729W-Wiskitki-Dzialki-Zyrardow-Etap-II-scaled.jpg\" alt=\"Rozbudowa drogi powiatowej nr 4729W Wiskitki - Dzia\u0142ki - \u017byrard\u00f3w - Etap II\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rozbudowa drogi powiatowej nr 4729W Wiskitki &#8211; Dzia\u0142ki &#8211; \u017byrard\u00f3w &#8211; Etap II<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83c98f3');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-26300a9f382fbeee12032d754e171a24\" style=\"color:#14357a\"><strong>2. Modernizacja drogi 4703W Miedniewice-Franciszk\u00f3w w m. Franciszk\u00f3w<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 modernizacj\u0119 drogi w zakresie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>wyr\u00f3wnania podbudowy kruszywem \u0142amanym,<\/li>\n\n\n\n<li>oczyszczenia mechanicznego nawierzchni drogowych,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych,<\/li>\n\n\n\n<li>wykonania warstwy wyr\u00f3wnawczo-wzmacniaj\u0105cej (wi\u0105\u017c\u0105cej) z mieszanki mineralno-bitumicznej asfaltowej dla kat. ruchu KR-3 z transportem do miejsca wbudowania,<\/li>\n\n\n\n<li>wyr\u00f3wnanie poboczy z uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/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>Warto\u015b\u0107 projektu: <\/strong>199 142,41 z\u0142<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>161&nbsp;120,65 z\u0142 &#8211; Sp\u00f3\u0142ka Centralny Port Komunikacyjny Sp. z o.o.<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:&nbsp;<\/strong> 199 142,41 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83c9b13 has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Modernizacja-drogi-4703W-Miedniewice-Franciszkow-w-m.-Franciszkow-1.jpg&quot;,&quot;caption&quot;:&quot; Modernizacja drogi 4703W Miedniewice-Franciszk\\u00f3w w m. Franciszk\\u00f3w&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Modernizacja-drogi-4703W-Miedniewice-Franciszkow-w-m.-Franciszkow-1.jpg\" alt=\" Modernizacja drogi 4703W Miedniewice-Franciszk\u00f3w w m. Franciszk\u00f3w\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\"> Modernizacja drogi 4703W Miedniewice-Franciszk\u00f3w w m. Franciszk\u00f3w<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83c9b13');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\n        });\n    })();\n    <\/script>\n        \n    \n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><\/figure>\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-51d6fda4a3a5aff2920bfd1637f79a3f\" style=\"color:#14357a\"><strong>3. Poprawa przejezdno\u015bci i bezpiecze\u0144stwa ruchu na drodze powiatowej nr 4719W Puszcza Maria\u0144ska-Mszczon\u00f3w<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 modernizacj\u0119 drogi w nast\u0119puj\u0105cym zakresie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>wyr\u00f3wnanie podbudowy kruszywem \u0142amanym,<\/li>\n\n\n\n<li>oczyszczenia mechanicznego nawierzchni drogowych,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych,<\/li>\n\n\n\n<li>wykopania, profilowania i zag\u0119szczenia koryta pod konstrukcyjne poszerzenia jezdni, wyw\u00f3z urobku na sk\u0142adowisko,<\/li>\n\n\n\n<li>wykonania podbudowy zasadniczej z kruszywa \u0142amanego, stabilizowanego mechanicznie w konstrukcji poszerzenia jezdni,<\/li>\n\n\n\n<li>wykonanie warstwy wyr\u00f3wnawczo-wzmacniaj\u0105cej (wi\u0105\u017c\u0105cej) z mieszanki mineralno-bitumicznej asfaltowej dla kat. ruchu KR-3 z transportem,<\/li>\n\n\n\n<li>wyr\u00f3wnania poboczy z uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.<\/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>Warto\u015b\u0107 projektu: <\/strong>356 340,10 z\u0142<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 356&nbsp;340,10 z\u0142, w tym: &nbsp;178 170,05 z\u0142 &#8211; Sp\u00f3\u0142ka Centralny Port Komunikacyjny Sp. z o.o. i 178 170,05 z\u0142 &nbsp;&#8211; Gmina Puszcza Maria\u0144ska<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>356 340,10 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83ca8ae has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Poprawa-przejezdnosci-i-bezpieczenstwa-ruchu-na-drodze-powiatowej-nr-4719W-Puszcza-Marianska-Mszczonow.jpg&quot;,&quot;caption&quot;:&quot;Poprawa przejezdno\\u015bci i bezpiecze\\u0144stwa ruchu na drodze powiatowej nr 4719W Puszcza Maria\\u0144ska-Mszczon\\u00f3w&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Poprawa-przejezdnosci-i-bezpieczenstwa-ruchu-na-drodze-powiatowej-nr-4719W-Puszcza-Marianska-Mszczonow.jpg\" alt=\"Poprawa przejezdno\u015bci i bezpiecze\u0144stwa ruchu na drodze powiatowej nr 4719W Puszcza Maria\u0144ska-Mszczon\u00f3w\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Poprawa przejezdno\u015bci i bezpiecze\u0144stwa ruchu na drodze powiatowej nr 4719W Puszcza Maria\u0144ska-Mszczon\u00f3w<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83ca8ae');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-d01e898b47e113907697eed3e086116e\" style=\"color:#14357a\"><strong>4. Poprawa bezpiecze\u0144stwa i remont drogi powiatowej nr 4726W w gm. Mszczon\u00f3w<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 remont drogi w zakresie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>oczyszczenia mechanicznego nawierzchni drogowych,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych,<\/li>\n\n\n\n<li>wykonania warstwy \u015bcieralnej z mieszanki mineralno-bitumicznej asfaltowej,<\/li>\n\n\n\n<li>\u015bci\u0119cia i wyr\u00f3wnania poboczy z uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/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>Warto\u015b\u0107 projektu: <\/strong>1&nbsp;444 013,60 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>1&nbsp;417&nbsp;841,17 z\u0142, w tym : 717.841,17 z\u0142 &nbsp;&#8211; Sp\u00f3\u0142ka Centralny Port Komunikacyjny Sp. z o.o. i 700&nbsp;000,00 z\u0142 &#8211; &nbsp;Gmina Mszczon\u00f3w<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>1&nbsp;444 013,60 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83caa9f has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Poprawa-bezpieczenstwa-i-remont-drogi-powiatowej-nr-4726W-w-gm.-Mszczonow.jpg&quot;,&quot;caption&quot;:&quot;Poprawa bezpiecze\\u0144stwa i remont drogi powiatowej nr 4726W w gm. Mszczon\\u00f3w&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Poprawa-bezpieczenstwa-i-remont-drogi-powiatowej-nr-4726W-w-gm.-Mszczonow.jpg\" alt=\"Poprawa bezpiecze\u0144stwa i remont drogi powiatowej nr 4726W w gm. Mszczon\u00f3w\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Poprawa bezpiecze\u0144stwa i remont drogi powiatowej nr 4726W w gm. Mszczon\u00f3w<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83caa9f');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-0c836047b0472b69b8db288dc4a7f8ea\" style=\"color:#14357a\"><strong>5. Poprawa dost\u0119pno\u015bci transportowej zachodniej cz\u0119\u015bci Mazowsza na obszarze otoczenia CPK<\/strong><\/h4>\n\n\n\n<p>Zadanie realizowa\u0142 Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie. Zadanie podzielono na pi\u0119\u0107 cz\u0119\u015bci. W <strong>&nbsp;<\/strong>2025 r. wydatkowano 68 000,00 z\u0142 na &nbsp;przygotowanie projektu wykonawczego dla zadania pn.: Poprawa dost\u0119pno\u015bci transportowej zachodniej cz\u0119\u015bci Mazowsza na obszarze otoczenia CPK Cz\u0119\u015b\u0107 I: Przebudowa odcinka drogi powiatowej nr 4726W przebiegaj\u0105cej przez miejscowo\u015b\u0107 Osuch\u00f3w, w gminie Mszczon\u00f3w&#8221;. Pozosta\u0142e zadania zostan\u0105 zrealizowane w 2026 r. \u015arodki w wysoko\u015bci \u2013 3&nbsp;880 633,15 z\u0142 zosta\u0142y uj\u0119te jako wydatki niewygasaj\u0105ce z up\u0142ywem roku bud\u017cetowego 2025. Zawarto umowy na wykonanie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Przebudowy odcinka drogi powiatowej nr 4729W przebiegaj\u0105cej przez miejscowo\u015b\u0107 Osuch\u00f3w, w gminie Mszczon\u00f3w, &#8211; 1 798 183,08 z\u0142,<\/li>\n\n\n\n<li>Przebudowy drogi powiatowej nr 4718W od km 1+495 do km 1+720 (dojazd\u00f3w do&nbsp;mostu w m. Bartniki) &#8211; 702 970,20 z\u0142,<\/li>\n\n\n\n<li>Przebudowy drogi powiatowej nr 4701W na d\u0142. 880 mb. w m. Nowy Drzewicz \u2013 498&nbsp;154,43 z\u0142,<\/li>\n\n\n\n<li>Przebudowy drogi powiatowej nr 4701W na d\u0142. 850 mb.w m. Stary Drzewicz i&nbsp;Oryszew Osada &#8211; 469 136,76 z\u0142,<\/li>\n\n\n\n<li>Przebudowy DP 4718W na d\u0142. 895 mb w m. Budy Zaklasztorne m- 412 188,68 z\u0142.<\/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>Warto\u015b\u0107 projektu:<\/strong> 3&nbsp;948 633,15 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>2&nbsp;417 597,00 z\u0142 \u2013 Ministerstwo Infrastruktury (\u015brodki z rezerwy subwencji og\u00f3lnej)<br><strong>Okres realizacji zadania: <\/strong>2025 &#8211; 2026<br><strong>Stan zaawansowania:<\/strong> zako\u0144czenie zadania w 2026 r.<br><strong>Wydatki poniesione w 2025 r.: <\/strong>68 000,00 z\u0142 oraz wydatki niewygasaj\u0105ce z up\u0142ywem roku bud\u017cetowego 2025 r. \u2013 3&nbsp;880 633,15 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cac4a has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Przebudowa-drogi-powiatowej-nr-4718W-Bartniki-\\u2013-Puszcza-Marianska-w-m.-Bartniki.jpg&quot;,&quot;caption&quot;:&quot;Przebudowa drogi powiatowej nr 4718W Bartniki \\u2013 Puszcza Maria\\u0144ska w m. Bartniki\\u201d&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Przebudowa-drogi-powiatowej-nr-4718W-Bartniki-\u2013-Puszcza-Marianska-w-m.-Bartniki.jpg\" alt=\"Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki\u201d\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki\u201d<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cac4a');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\n        });\n    })();\n    <\/script>\n        \n    \n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-7e75351787249440dcfd2bd47db61c09\" style=\"color:#14357a\"><strong>6. Modernizacja (ulepszenie) dr\u00f3g powiatowych<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie przeprowadzi\u0142 wykonanie nawierzchni z destruktu asfaltowego na drodze powiatowej nr 4709W (Skierniewice) gr. woj. \u2013 Bartniki \u2013 Miedniewice w m. Bartniki.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>139 954,32 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>139 954,32 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-d726fd6c1927172bfa183c947439bf13\" style=\"color:#14357a\"><strong>7. Modernizacja drogi powiatowej nr 4709W (Skierniewice) gr. woj. Bartniki-Miedniewice<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 zakres rzeczowy inwestycji&nbsp;w postaci:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>profilowania i zag\u0119szczenia pod\u0142o\u017ca mechanicznie pod warstwy konstrukcyjne,<\/li>\n\n\n\n<li>profilowania i zag\u0119szczenia nawierzchni z gruzu betonowo \u2013 ceglanego.<\/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>Warto\u015b\u0107 projektu: <\/strong>69 881,22 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>69 881,22 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-82fa06c69f1cab76efe1515294c4885e\" style=\"color:#14357a\"><strong>8. Przebudowa drogi powiatowej nr 4721W (Raducz-Jeruzal) gr. woj.-Wola Polska<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 przebudow\u0119 drogi w zakresie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>karczowania krzak\u00f3w,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych<\/li>\n\n\n\n<li>wykonania warstwy wyr\u00f3wnawczo-wzmacniaj\u0105cej (wi\u0105\u017c\u0105cej) z mieszanki mineralno-bitumicznej asfaltowej dla kat. ruchu KR-2 z transportem do miejsca wbudowania,<\/li>\n\n\n\n<li>\u015bcinania zawy\u017conych poboczy wraz z wyr\u00f3wnaniem poboczy i uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.<\/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>Warto\u015b\u0107 projektu:<\/strong> 195 205,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 167\u00a0269,84 z\u0142, w tym: 97\u00a0602,50 z\u0142 \u2013 Urz\u0105d Marsza\u0142kowski Wojew\u00f3dztwa Mazowieckiego (FOGR) i 69\u00a0667,34 z\u0142 \u2013 Gmina Puszcza Maria\u0144ska<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 195 205,00 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83caf51 has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Przebudowa-drogi-powiatowej-nr-4721W-Raducz-Jeruzal-gr.-woj.-Wola-Polska.jpg&quot;,&quot;caption&quot;:&quot;Przebudowa drogi powiatowej nr 4721W (Raducz-Jeruzal) gr. woj.-Wola Polska&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Przebudowa-drogi-powiatowej-nr-4721W-Raducz-Jeruzal-gr.-woj.-Wola-Polska.jpg\" alt=\"Przebudowa drogi powiatowej nr 4721W (Raducz-Jeruzal) gr. woj.-Wola Polska\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Przebudowa drogi powiatowej nr 4721W (Raducz-Jeruzal) gr. woj.-Wola Polska<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83caf51');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-3e029209ffec26c46bded94ff417624e\" style=\"color:#14357a\"><strong>9. Przebudowa drogi powiatowej 4725W Mszczon\u00f3w-Piekary-Wygnanka-granica <\/strong><strong>wojew\u00f3dztwa-(Cychry)<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 przebudow\u0119 drogi w zakresie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>oczyszczenia mechanicznego nawierzchni drogowych,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych,<\/li>\n\n\n\n<li>wykonania warstwy wyr\u00f3wnawczo-wzmacniaj\u0105cej (wi\u0105\u017c\u0105cej) z mieszanki mineralno-bitumicznej asfaltowej dla kat. ruchu KR-2 z transportem do miejsca wbudowania,<\/li>\n\n\n\n<li>\u015bci\u0119cia i wyr\u00f3wnanie poboczy z uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/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>Warto\u015b\u0107 projektu: <\/strong>447 601,92 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 322 397,50 z\u0142, w tym : 222&nbsp;397,50 z\u0142 \u2013&nbsp; Urz\u0105d Marsza\u0142kowski Wojew\u00f3dztwa Mazowieckiego (FOGR) i 100&nbsp;000,00 z\u0142 &#8211; Gmina Mszczon\u00f3w<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>&nbsp;447 601,92 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cb0fa has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Przebudowa-drogi-powiatowej-4725W-Mszczonow-Piekary-Wygnanka-granica-wojewodztwa-Cychry.jpg&quot;,&quot;caption&quot;:&quot;Przebudowa drogi powiatowej 4725W Mszczon\\u00f3w-Piekary-Wygnanka-granica wojew\\u00f3dztwa-(Cychry)&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Przebudowa-drogi-powiatowej-4725W-Mszczonow-Piekary-Wygnanka-granica-wojewodztwa-Cychry.jpg\" alt=\"Przebudowa drogi powiatowej 4725W Mszczon\u00f3w-Piekary-Wygnanka-granica wojew\u00f3dztwa-(Cychry)\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Przebudowa drogi powiatowej 4725W Mszczon\u00f3w-Piekary-Wygnanka-granica wojew\u00f3dztwa-(Cychry)<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cb0fa');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-c4edaf56a3064beaee47aaa337cdd55f\" style=\"color:#14357a\"><strong>10. Przebudowa drogi powiatowej 4725W Mszczon\u00f3w-Piekary-Wygnanka-granica wojew\u00f3dztwa-(Cychry) w m. Piekary<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie zrealizowa\u0142 zakres rzeczowy inwestycji&nbsp;w postaci:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>odtworzenia trasy i punkt\u00f3w wysoko\u015bciowych przy liniowych robotach (drogi) w terenie r\u00f3wninnym,<\/li>\n\n\n\n<li>oczyszczenia mechanicznego nawierzchni drogowych,<\/li>\n\n\n\n<li>mechanicznego skropienia emulsj\u0105 asfaltow\u0105 nawierzchni drogowych,<\/li>\n\n\n\n<li>wykonania warstwy wyr\u00f3wnawczo \u2013 wzmacniaj\u0105cej (wi\u0105\u017c\u0105cej) z mieszanki mineralno \u2013 bitumicznej asfaltowej dla kat. ruchu KR-3 z transportem,<\/li>\n\n\n\n<li>\u015bci\u0119cia i wyr\u00f3wnania poboczy z uzupe\u0142nieniem mieszank\u0105 optymaln\u0105 z kruszywa \u0142amanego.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/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>Warto\u015b\u0107 projektu:<\/strong> 62 944,02 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 62 944,02 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-04ef1580161e80482b8661e3f74e5598\" style=\"color:#14357a\"><strong>11. Wykonanie dokumentacji projektowej na rozbudow\u0119 drogi powiatowej nr 3834W Szyman\u00f3w-Oryszew-Miedniewice na odcinku od Starowiskitek do Miedniewic\u201d<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g&nbsp;w \u017byrardowie zleci\u0142 wykonanie dokumentacji projektowej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>146 999,99 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2020-2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>146 999,99 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-9cd0eb860f35cfa119ef72816672df58\" style=\"color:#14357a\"><strong>12. Modernizacja wiaduktu w ci\u0105gu drogi powiatowej nr 4724W &#8211; ulica Rawska w Mszczonowie nad lini\u0105 kolejow\u0105 Skierniewice-\u0141uk\u00f3w (etap I &#8211; sporz\u0105dzenie dokumentacji)<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe zleci\u0142o przygotowanie dokumentacji projektowej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>81 241,50 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2024-2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>81 241,50 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cb3bb has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Modernizacja-wiaduktu-w-ciagu-drogi-powiatowej-nr-4724W-ulica-Rawska-w-Mszczonowie-nad-linia-kolejowa-Skierniewice-Lukow-etap-I-sporzadzenie-dokumentacji.jpg&quot;,&quot;caption&quot;:&quot;Przebudowa drogi powiatowej nr 4718W Bartniki \\u2013 Puszcza Maria\\u0144ska w m. Bartniki\\u201d&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Modernizacja-wiaduktu-w-ciagu-drogi-powiatowej-nr-4724W-ulica-Rawska-w-Mszczonowie-nad-linia-kolejowa-Skierniewice-Lukow-etap-I-sporzadzenie-dokumentacji.jpg\" alt=\"Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki\u201d\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki\u201d<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cb3bb');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-29314cc79790adb8f6038421f5b5f255\" style=\"color:#14357a\"><strong>13. Przebudowa drogi powiatowej nr 4718W Bartniki \u2013 Puszcza Maria\u0144ska w m. Bartniki\u201d<\/strong><\/h4>\n\n\n\n<p>Zadanie zostanie zrealizowane w 2026 r. przez Powiatowy Zarz\u0105d Dr\u00f3g&nbsp;w \u017byrardowie&nbsp; \u015arodki w wysoko\u015bci \u2013 4.132.030,91 z\u0142 zosta\u0142y uj\u0119te jako wydatki niewygasaj\u0105ce z up\u0142ywem roku bud\u017cetowego 2025.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>4\u00a0132 030,91 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 2\u00a0304\u00a0005,00 z\u0142 \u2013 Ministerstwo Infrastruktury (\u015brodki z rezerwy subwencji og\u00f3lnej)<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie kontynuowane w 2026 r.<br><strong>Okres realizacji zadania: <\/strong>2025 &#8211; 2026<br><strong>Wydatki poniesione w 2025 r.: <\/strong>4 132 030,91 z\u0142 jako wydatki niewygasaj\u0105ce z up\u0142ywem roku bud\u017cetowego 2025<\/p>\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-f58c139501aba7d74290bedbcb3457b4\" style=\"color:#14357a\"><strong>14. Wykup gruntu pod budow\u0119 drogi w m. Jesionka\u201d<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie dokona\u0142o zakupu gruntu pod budow\u0119 drogi.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>131 286,70 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 131 286,70 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-2a75aa90da899d193e456fb478b93034\" style=\"color:#14357a\"><strong>15. Budowa \u015bcie\u017cki pieszo-rowerowej na odcinku \u017byrard\u00f3w-Radziejowice<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie rozpocz\u0119\u0142o w 2025 r. budow\u0119 \u015bcie\u017cki pieszo-rowerowej zlokalizowanej na terenach le\u015bnych \u2013 pomi\u0119dzy miastem \u017byrard\u00f3w a Radziejowicami (planowane przedsi\u0119wzi\u0119cie na zak\u0142adanym etapie b\u0119dzie obejmowa\u0142o cze\u015b\u0107 szlaku mi\u0119dzy tymi miejscowo\u015bciami).<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 2&nbsp;776 991,13 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>2&nbsp;696 991,13 z\u0142 \u2013 Sp\u00f3\u0142ka Centralny Port Komunikacyjny Sp. z o.o.<br><strong>Okres realizacji zadania: <\/strong>2025-2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie zrealizowane w 2026 r.<br><strong>Wydatki poniesione w 2025 r.: <\/strong>80 000,00 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cb5fe has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Budowa-sciezki-pieszo-rowerowej-na-odcinku-Zyrardow-Radziejowice-scaled.jpg&quot;,&quot;caption&quot;:&quot;Budowa \\u015bcie\\u017cki pieszo-rowerowej na odcinku \\u017byrard\\u00f3w-Radziejowice&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Budowa-sciezki-pieszo-rowerowej-na-odcinku-Zyrardow-Radziejowice-scaled.jpg\" alt=\"Budowa \u015bcie\u017cki pieszo-rowerowej na odcinku \u017byrard\u00f3w-Radziejowice\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Budowa \u015bcie\u017cki pieszo-rowerowej na odcinku \u017byrard\u00f3w-Radziejowice<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cb5fe');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-d8512335ef926adcfec6ec652d35b910\" style=\"color:#14357a\"><strong>16. Zakup pojazd\u00f3w i sprz\u0119tu na potrzeby PZD<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g&nbsp;w \u017byrardowie&nbsp;dokona\u0142 zakup\u00f3w inwestycyjnych w postaci pojazd\u00f3w i sprz\u0119tu na potrzeby utrzymania dr\u00f3g, w tym:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>samochodu dostawczego do 3,5 t.,<\/li>\n\n\n\n<li>ci\u0105gnika wraz z oprzyrz\u0105dowaniem dodatkowym (p\u0142ug \u015bnie\u017cny, rozsiewacz, kosiarka, zamiatarka, r\u0119bak),<\/li>\n\n\n\n<li>przyczepy jednoosiowej,<\/li>\n\n\n\n<li>koparko-\u0142adowarki,<\/li>\n\n\n\n<li>trzypunktowego uk\u0142adu zawieszenia (TUZ) wraz z p\u0142ugiem od\u015bnie\u017cnym do ci\u0105gnika.<\/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>Warto\u015b\u0107 projektu:<\/strong> 1 444 182,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadania zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 1 444 182,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-3d685c88d2c999d102682664a15a413c\" style=\"color:#14357a\"><strong>17. Instalacja sieci monitoringu wizyjnego na terenie Powiatowego Zarz\u0105du Dr\u00f3g w \u017byrardowie<\/strong><\/h4>\n\n\n\n<p>Powiatowy Zarz\u0105d Dr\u00f3g w \u017byrardowie wykona\u0142 instalacj\u0119 sieci monitoringu wizyjnego polegaj\u0105c\u0105 na monta\u017cu kamer wraz z oprzyrz\u0105dowaniem w celu poprawy bezpiecze\u0144stwa na terenie jednostki.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>29 964,65 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 29 964,65 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-bc4d932829c2ddb02b51aca2ff35bd5e\" style=\"background-color:#14357a\"><strong>INWESTYCJE W ZAS\u00d3B LOKALOWY STAROSTWA<\/strong><\/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-605f2d2530587c7c428999de633ff830\" style=\"color:#14357a\"><strong>Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych&nbsp;<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie dokona\u0142o zakupu cz\u0119\u015bci budynku wraz z gruntem po dawnych zak\u0142adach \u201eStella\u201d. &nbsp;<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 10&nbsp;299 291,92 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 10&nbsp;299 291,92 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cb938 has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rozszerzenie-bazy-lokalowej-Powiatu-na-potrzeby-realizacji-uslug-publicznych-II-scaled.jpg&quot;,&quot;caption&quot;:&quot;Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\\u0142ug publicznych\\u00a0&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rozszerzenie-bazy-lokalowej-Powiatu-na-potrzeby-realizacji-uslug-publicznych2-scaled.jpg&quot;,&quot;caption&quot;:&quot;Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\\u0142ug publicznych\\u00a0&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rewitalizacja-obszarow-zdegradowanych-scaled.jpg&quot;,&quot;caption&quot;:&quot;Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\\u0142ug publicznych\\u00a0&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid\" style=\"grid-template-columns: repeat(3, 1fr); gap: 30px;\" data-columns=\"3\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rozszerzenie-bazy-lokalowej-Powiatu-na-potrzeby-realizacji-uslug-publicznych-II-scaled.jpg\" alt=\"Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"1\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rozszerzenie-bazy-lokalowej-Powiatu-na-potrzeby-realizacji-uslug-publicznych2-scaled.jpg\" alt=\"Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"2\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rewitalizacja-obszarow-zdegradowanych-scaled.jpg\" alt=\"Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rozszerzenie bazy lokalowej Powiatu na potrzeby realizacji us\u0142ug publicznych\u00a0<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cb938');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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<h3 class=\"wp-block-heading has-text-align-center has-white-color has-text-color has-background has-link-color wp-elements-a6ff712338197256765b8f19a68c9d05\" style=\"background-color:#14357a\"><strong>INWESTYCJE W DZIA\u0141ALNO\u015a\u0106 US\u0141UGOW\u0104 (GEODEZJA)<\/strong><\/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-c6916590ab68355429bbc0cb5f925bed\" style=\"color:#14357a\"><strong>1. Projekt Cyfryzacji Powiatowego Zespo\u0142u Geodezyjnego i Kartograficznego &#8211; &nbsp;Podniesienie stanu cyfryzacji Powiatowego Zasobu Geodezyjnego i Kartograficznego<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Starostwo Powiatowe w \u017byrardowie dokona\u0142o za\u0142o\u017cenia bazy geodezyjnej sieci uzbrojenia terenu.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>1&nbsp;876&nbsp;727,33 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>200&nbsp;000,00 z\u0142 \u2013 Wojewoda Mazowiecki<br><strong>Okres realizacji zadania: <\/strong>2023- 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>345 986,70 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-c498104be6b151e49798000e0d00baaf\" style=\"color:#14357a\"><strong>2. Rozszerzenie funkcjonalno\u015bci Systemu Informacji Przestrzennej GEO-INFO<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Starostwo Powiatowe w \u017byrardowie zleci\u0142o rozszerzenie wdro\u017conego kompleksowego systemu informatycznego do obs\u0142ugi i prowadzenia powiatowego zasobu geodezyjnego i kartograficznego o nowy modu\u0142 funkcyjny GEO-INFO Administrator.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>21 586,50 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 21 586,50 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-5db33b20c68cfa957897445fc2596e82\" style=\"background-color:#14357a\"><strong>INWESTYCJE W ADMINISTRACJ\u0118 PUBLICZN\u0104<\/strong><\/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-87b1297b0edda3d61f1e98f8d46ed7c4\" style=\"color:#14357a\"><strong>1. Podniesienie poziomu cyberbezpiecze\u0144stwa w\u00a0Starostwie Powiatowym w \u017byrardowie<\/strong><\/h4>\n\n\n\n<p>W ramach zadania realizowanego przez Starostwo Powiatowe w \u017byrardowie \u015brodki pieni\u0119\u017cne zosta\u0142y przeznaczone na zakup sprz\u0119tu informatycznego i oprogramowania, w szczeg\u00f3lno\u015bci: serwer\u00f3w, urz\u0105dze\u0144 typu UTM, UPS-\u00f3w, macierzy dyskowej i biblioteki ta\u015bmowej oraz oprogramowania XDR.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 944 325,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 849\u00a0892,89 z\u0142 &#8211; Fundusze Europejskie na Rozw\u00f3j Cyfrowy 2021-2027 oraz Bud\u017cet Pa\u0144stwa<br><strong>Okres realizacji zadania: <\/strong>2024-2026<br><strong>Stan zaawansowania:<\/strong> zadanie b\u0119dzie kontynuowane w 2026 r.<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 530 549,43 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-83ee8a88598f40c2adab868fcc9b4eb0\" style=\"color:#14357a\"><strong>2. Zakup sprz\u0119tu komputerowego oraz urz\u0105dze\u0144 sieciowych i drukuj\u0105cych<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie dokona\u0142o zakupu sprz\u0119tu komputerowego wraz z&nbsp;oprogramowaniem oraz urz\u0105dze\u0144 sieciowych i drukuj\u0105cych celem wymiany lub wyposa\u017cenia stanowisk pracy.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>262 766,38 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>262 766,38 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-72fc3e091a9b0ef0f6077c84c35824b1\" style=\"color:#14357a\"><strong>3. Zakup i monta\u017c systemu klimatyzacji serwerowni Starostwa Powiatowego<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie dokona\u0142o wymiany systemu klimatyzacji w serwerowni w celu podniesienia poziomu bezpiecze\u0144stwa u\u017cytkowania urz\u0105dze\u0144 sieciowych.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>12 177,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>12 177,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-87eb3aa63a19e16b8dfd3dc713283e57\" style=\"color:#14357a\">4. <strong>Zakup i monta\u017c modu\u0142owego systemu rega\u0142\u00f3w przesuwnych do archiwum zak\u0142adowego starostwa<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie dokona\u0142o zakupu systemu rega\u0142\u00f3w do archiwum zak\u0142adowego w ramach powi\u0119kszenia powierzchni archiwalnej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>24 502,88 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 24 502,88 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-97e7f2c2c0c85ca81ebbd90661b8b7dd\" style=\"color:#14357a\">5. <strong>Zakup sprz\u0119tu komputerowego na potrzeby CUW Powiatu \u017byrardowskiego<\/strong><\/h4>\n\n\n\n<p>Centrum Us\u0142ug Wsp\u00f3lnych Powiatu \u017byrardowskiego zakupi\u0142o 4 komputery wraz z oprogramowaniem.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 16 336,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 16 336,00 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-30d951bda99061f7fc01aac90f2e7d8f\" style=\"background-color:#14357a\"><a><\/a><a><strong>INWESTYCJE W OBRON\u0118 NARODOW<\/strong><\/a><strong>\u0104<\/strong><\/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-7045ef3036593fe48a06ec62cc37d989\" style=\"color:#14357a\"><strong>Uzupe\u0142nienie zasob\u00f3w infrastruktury niezb\u0119dnej do realizacji zada\u0144 ochrony ludno\u015bci cywilnej w Powiecie \u017byrardowskim<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie zrealizowa\u0142o zadanie polegaj\u0105ce na zakupie magazynu z przeznaczeniem na miejsce sk\u0142adowania materia\u0142\u00f3w zakupionych w\u00a0ramach programu Ochrony Ludno\u015bci i Obrony Cywilnej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>960 660,80 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>954 570,00 z\u0142 &#8211; Wojewoda Mazowiecki<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>960 660,80 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-8a9701320aa96e14baf5ff207a11f522\" style=\"background-color:#14357a\"><strong>INWESTYCJE W BEZPIECZE\u0143STWO PUBLICZNE I OCHRON\u0118 PRZECIWPO\u017bAROW\u0104<\/strong><\/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-ced18489636725210e4063f96d0e7602\" style=\"color:#14357a\"><strong>Zakup zestawu fantom\u00f3w wraz z osprz\u0119tem<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie przekaza\u0142o \u015brodki jako wp\u0142at\u0119 na Fundusz Wsparcia Pa\u0144stwowej Stra\u017cy Po\u017carnej na zakup fantom\u00f3w wraz z osprz\u0119tem na potrzeby Komedy Powiatowej Pa\u0144stwowej Stra\u017cy Po\u017carnej w \u017byrardowie.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>28 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>28 000,00 z\u0142 &#8211; Fundusz Wsparcia Pa\u0144stwowej Stra\u017cy Po\u017carnej<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>28 000,00 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-96989eb41ff80748060809afd838468d\" style=\"background-color:#14357a\"><strong>INWESTYCJE W O\u015aWIAT\u0118 I EDUKACYJN\u0104 OPIEK\u0118 WYCHOWAWCZ\u0104<\/strong><\/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-e31624aad8d75766c2121cf22aabb621\" style=\"color:#14357a\"><strong>1. Przebudowa cz\u0119\u015bci dachu z wad\u0105 konstrukcyjn\u0105 nad oran\u017ceri\u0105 w ZS w Mszczonowie<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie zleci\u0142o wykonanie nowego zadaszenia \u015bwietlikowego nad \u0142\u0105cznikiem w Zespole Szk\u00f3\u0142\u00a0w Mszczonowie.\u00a0<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>51 465,48 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015arodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2024-2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 51 465,48 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cc1de has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Przebudowa-czesci-dachu-z-wada-konstrukcyjna-nad-oranzeria-w-ZS-w-Mszczonowie.jpg&quot;,&quot;caption&quot;:&quot;Przebudowa cz\\u0119\\u015bci dachu z wad\\u0105 konstrukcyjn\\u0105 nad oran\\u017ceri\\u0105 w ZS w Mszczonowie&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Przebudowa-czesci-dachu-z-wada-konstrukcyjna-nad-oranzeria-w-ZS-w-Mszczonowie.jpg\" alt=\"Przebudowa cz\u0119\u015bci dachu z wad\u0105 konstrukcyjn\u0105 nad oran\u017ceri\u0105 w ZS w Mszczonowie\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Przebudowa cz\u0119\u015bci dachu z wad\u0105 konstrukcyjn\u0105 nad oran\u017ceri\u0105 w ZS w Mszczonowie<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cc1de');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-780e44477f2cb026d61d60b164a88bfe\" style=\"color:#14357a\"><strong>2. Zakup i monta\u017c bramy przy Zespole Szk\u00f3\u0142 w Mszczonowie<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Zesp\u00f3\u0142 Szk\u00f3\u0142 w Mszczonowie dokona\u0142 zakupu i monta\u017cu bramy wjazdowej przesuwnej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>13 530,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>13 530,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-765c2d2d959a5b0f5b8ef3f0c2c13531\" style=\"color:#14357a\"><strong>3. Zagospodarowanie terenu przed budynkiem Zespo\u0142u Szk\u00f3\u0142 w Mszczonowie poprzez utworzenie nowej przestrzeni rekreacyjno-edukacyjnej<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Zesp\u00f3\u0142 Szk\u00f3\u0142 w Mszczonowie zagospodarowa\u0142 teren wok\u00f3\u0142 szko\u0142y i wykona\u0142 now\u0105 przestrze\u0144 rekreacyjno-edukacyjn\u0105. W ramach zadania wykonano: przy\u0142\u0105cze elektryczne i o\u015bwietlenie, zakup \u0142awek ogrodowych, monta\u017c kamer, nawadnianie terenu, wymian\u0119 ogrodzenia cz\u0119\u015bci zachodniej, u\u0142o\u017cenie kostki brukowej, kompleksowy zakup oraz aran\u017cacj\u0119 zieleni na terenie szko\u0142y.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>125 500,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>125 500,00 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cc36d has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Zagospodarowanie-terenu-przed-budynkiem-Zespolu-Szkol-w-Mszczonowie-poprzez-utworzenie-nowej-przestrzeni-rekreacyjno-edukacyjnej.jpg&quot;,&quot;caption&quot;:&quot;Zagospodarowanie terenu przed budynkiem Zespo\\u0142u Szk\\u00f3\\u0142 w Mszczonowie poprzez utworzenie nowej przestrzeni rekreacyjno-edukacyjnej&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Zagospodarowanie-terenu-przed-budynkiem-Zespolu-Szkol-w-Mszczonowie-poprzez-utworzenie-nowej-przestrzeni-rekreacyjno-edukacyjnej.jpg\" alt=\"Zagospodarowanie terenu przed budynkiem Zespo\u0142u Szk\u00f3\u0142 w Mszczonowie poprzez utworzenie nowej przestrzeni rekreacyjno-edukacyjnej\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Zagospodarowanie terenu przed budynkiem Zespo\u0142u Szk\u00f3\u0142 w Mszczonowie poprzez utworzenie nowej przestrzeni rekreacyjno-edukacyjnej<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cc36d');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-854f7ffc328d7782083648909c9d1fb9\" style=\"color:#14357a\"><strong>4. Modernizacja sali gimnastycznej w Zespole Szk\u00f3\u0142 w Mszczonowie &#8211; wymiana drzwi na zgodne z&nbsp;wymogami bezpiecze\u0144stwa i ochrony p.po\u017c<\/strong><\/h4>\n\n\n\n<p>Zesp\u00f3\u0142 Szk\u00f3\u0142 w Mszczonowie w ramach realizacji zadania dokona\u0142 wymiany drzwi o parametrach zgodnych z wymogami BHP i p.po\u017c.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>15 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>15 000,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-09804ea527ff94d18a7fefbac19b0f8c\" style=\"color:#14357a\"><strong>5. Zakup sprz\u0119tu komputerowego oraz urz\u0105dze\u0144 sieciowych i drukuj\u0105cych dla ZS w Mszczonowie<\/strong><\/h4>\n\n\n\n<p>Zesp\u00f3\u0142 Szk\u00f3\u0142 w Mszczonowie dokona\u0142 zakupu sprz\u0119tu komputerowego w postaci 21 sztuk komputer\u00f3w wraz z oprogramowaniem oraz s\u0142uchawkami nausznymi.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 100 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>100 000,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-cd4772c8a437642e29f40050ecaac88f\" style=\"color:#14357a\"><strong>6. Wykonanie monitoringu wizyjnego w ZS nr 1 w \u017byrardowie<\/strong><\/h4>\n\n\n\n<p>Zesp\u00f3\u0142 Szk\u00f3\u0142 nr 1 w \u017byrardowie wykona\u0142 instalacje monitoringu wizyjnego celem poprawy bezpiecze\u0144stwa w plac\u00f3wce.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>55 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>55 000,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-d19cf1721e209cf82bb6b69e78638d2c\" style=\"color:#14357a\"><strong>7. Poprawa kondycji fizycznej m\u0142odych mieszka\u0144c\u00f3w Powiatu \u017byrardowskiego poprzez doposa\u017cenie si\u0142owni w ZS nr 3 w Wiskitkach<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie zakupi\u0142o sprz\u0119t do si\u0142owni znajduj\u0105cej si\u0119 w Zespole Szk\u00f3\u0142 nr 3 w Wiskitkach w celu rozbudowy zaplecza zwi\u0105zanego z popraw\u0105 kondycji fizycznej uczni\u00f3w.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>49 916,70 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>49 916,70 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-396fd04a308425fa60e6d0b7b4bbd72f\" style=\"color:#14357a\"><strong>8. Utworzenie nowej pracowni komputerowej w Zespole Szk\u00f3\u0142 nr 2 w \u017byrardowie<\/strong><\/h4>\n\n\n\n<p>Zesp\u00f3\u0142 Szk\u00f3\u0142 nr 2 w \u017byrardowie utworzy\u0142 now\u0105 pracowni\u0119 komputerow\u0105 dla uczni\u00f3w plac\u00f3wki. W ramach zadania wykonano wymian\u0119 pod\u0142ogi w pracowni komputerowej, przygotowanie 24 stanowisk komputerowych dla uczni\u00f3w i stanowiska dla nauczyciela, zakupiono 24 laptopy, zlecono us\u0142ug\u0119 monta\u017cu, konfiguracji sprz\u0119tu i oprogramowania.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>134 100,72 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 134 100,72 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-fb954b4a58b221aae7bac5ecd566d66d\" style=\"color:#14357a\"><strong>9. Modernizacja sanitariat\u00f3w w Liceum Og\u00f3lnokszta\u0142c\u0105cym w Puszczy Maria\u0144skiej<\/strong><\/h4>\n\n\n\n<p>Liceum Og\u00f3lnokszta\u0142c\u0105ce w Puszczy Maria\u0144skiej dokona\u0142o modernizacji sanitariat\u00f3w w budynku szko\u0142y celem poprawy ich funkcjonalno\u015bci i dost\u0119pno\u015bci dla uczni\u00f3w.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>19 998,40 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>19 998,40 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-0829cb244abfb2d51c23be681742876e\" style=\"color:#14357a\"><strong>10. Zakup sprz\u0119tu komputerowego wraz z oprogramowaniem na potrzeby realizacji zada\u0144 MDK<\/strong><\/h4>\n\n\n\n<p>M\u0142odzie\u017cowy Dom Kultury w \u017byrardowie zakupi\u0142 sprz\u0119t komputerowy wraz z oprogramowaniem do realizacji zada\u0144 dydaktycznych oraz administracyjnych.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>13 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>13 000,00\u00a0z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-b4c2adf32b4ad5917c4d6849d2998d0c\" style=\"color:#14357a\"><strong>11. Rozw\u00f3j nowoczesnej infrastruktury w&nbsp;zakresie edukacji zawodowej w szko\u0142ach prowadzonych przez Powiat \u017byrardowski<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie realizuje przedsi\u0119wzi\u0119cie maj\u0105ce na celu wzmocnienie jako\u015bci i konkurencyjno\u015bci kszta\u0142cenia zawodowego Powiatu \u017byrardowskiego poprzez modernizacj\u0119 oraz uzupe\u0142nienie sprz\u0119tu i wyposa\u017cenia do\u00a0praktycznej nauki zawodu w nast\u0119puj\u0105cych plac\u00f3wkach szkolnictwa zawodowego w\u00a0Powiecie \u017byrardowskim tj.:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zespole Szk\u00f3\u0142 nr 1 w \u017byrardowie,<\/li>\n\n\n\n<li>Zespole Szk\u00f3\u0142 nr 2\u00a0w \u017byrardowie,<\/li>\n\n\n\n<li>Zespole Szk\u00f3\u0142 nr 3\u00a0w Wiskitkach,<\/li>\n\n\n\n<li>Zespole Szk\u00f3\u0142 w Mszczonowie,<\/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>Warto\u015b\u0107 projektu: <\/strong>6&nbsp;462&nbsp;267,81 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>5&nbsp;201&nbsp;201,91 z\u0142 \u2013 Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego)<br><strong>Okres realizacji zadania: <\/strong>2025 &#8211; 2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie realizowane w 2026 roku. Og\u0142oszenie post\u0119powania oraz realizacja zadania planowane s\u0105 po zako\u0144czeniu prac przygotowawczych<br><strong>Wydatki poniesione w 2025 r.: <\/strong>93 740,92 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-71a9e4f3e3a821552cd5f15a1f5e943d\" style=\"color:#14357a\"><strong>12. Poprawa dost\u0119pno\u015bci szk\u00f3\u0142 Powiatu \u017byrardowskiego dla os\u00f3b ze&nbsp;specjalnymi potrzebami<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie wykona\u0142o studium wykonalno\u015bci inwestycji i programy funkcjonalno-u\u017cytkowe do wniosku o Fundusze Europejskie. Projekt b\u0119dzie obejmowa\u0142 wykonanie nowych wind w szko\u0142ach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Liceum Og\u00f3lnokszta\u0142c\u0105cym w Puszczy Maria\u0144skiej,<\/li>\n\n\n\n<li>Liceum Og\u00f3lnokszta\u0142c\u0105cym w Mszczonowie,<\/li>\n\n\n\n<li>Zespole Szk\u00f3\u0142 nr 1 w \u017byrardowie,<\/li>\n\n\n\n<li>Zespole Szk\u00f3\u0142\u00a0nr 3 w Wiskitkach.<\/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>Warto\u015b\u0107 projektu: <\/strong>4\u00a0089\u00a0298,50 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>3\u00a0169\u00a0903,72 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego)<br><strong>Okres realizacji zadania: <\/strong>2024-2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie kontynuowane w 2026 r.<br><strong>Wydatki poniesione w 2025 r.: <\/strong>34 355,05 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-cecd7d652e4904778d7c5d302139cdc3\" style=\"background-color:#14357a\"><strong>INWESTYCJE W OCHRON\u0118 ZDROWIA<\/strong><\/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-d3455aa6a63089c826539d2022f9737c\" style=\"color:#14357a\"><strong>Dosprz\u0119towienie i modernizacja wielospecjalistycznej przychodni ambulatoryjnej oraz nowopowstaj\u0105cego POZ<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie realizowa\u0142o zadanie w podziale na 4 cz\u0119\u015bci tj.:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>doposa\u017cenie przestrzeni pacjenta i lekarza POZ,\u00a0<\/li>\n\n\n\n<li>dostawa infrastruktury IT (zestaw\u00f3w komputerowych z oprogramowaniem i urz\u0105dze\u0144 drukuj\u0105cych),\u00a0\u00a0\u00a0<\/li>\n\n\n\n<li>dostawa trzech aparat\u00f3w USG,\u00a0<\/li>\n\n\n\n<li>dostawa podstawowego sprz\u0119tu, instrument\u00f3w i fotela medycznego.<\/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>Warto\u015b\u0107 projektu: <\/strong>2\u00a0322 761,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 2\u00a0245 877,00 z\u0142 &#8211; Sp\u00f3\u0142ka Centralny Port Komunikacyjny Sp. z o.o.<br><strong>Okres realizacji zadania: <\/strong>2025 &#8211; 2026<br><strong>Stan zaawansowania: <\/strong>zadanie cz\u0119\u015bciowo zrealizowane. Drugi etap zadania b\u0119dzie realizowany w 2026 r.<br><strong>Wydatki poniesione w 2025 r.: <\/strong>1\u00a0957 000,85 z\u0142<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-f96a8cf023264e96df31ec8a04b1b2ab\" style=\"background-color:#14357a\"><strong>INWESTYCJE W ZAKRESIE POMOCY SPO\u0141ECZNEJ<\/strong><\/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-efc6ce17940479d0ee66c86c24a33f81\" style=\"color:#14357a\"><strong>1. Zakup samochodu osobowego (u\u017cywanego) na potrzeby DPS w \u017byrardowie, ul. Sosabowskiego 23<\/strong><\/h4>\n\n\n\n<p>Dom Pomocy Spo\u0142ecznej w&nbsp;\u017byrardowie im.&nbsp;ks.&nbsp;Jerzego Popie\u0142uszki dokona\u0142 zakupu u\u017cywanego samochodu osobowego (FORD FOCUS) na potrzeby jednostki.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>31 980,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>31 980,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-246213f9e6a0d5c0a517165f0699c905\" style=\"color:#14357a\"><strong>2. Poprawa izolacji zadaszenia i \u015bcian zewn\u0119trznych w budynku DPS w \u017byrardowie, ul. Sosabowskiego 23<\/strong><\/h4>\n\n\n\n<p>&nbsp;W ramach realizacji zadania Dom Pomocy Spo\u0142ecznej w \u017byrardowie im. ks. Jerzego Popie\u0142uszki wykona\u0142: demonta\u017c i monta\u017c zadaszenia nad schodami wej\u015bciowymi do DPS.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>71 931,27 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 71 931,27 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-b126c38aec7f809195f2f73ef4495a94\" style=\"color:#14357a\"><strong>3. Poprawa dost\u0119pno\u015bci zaplecza sanitarnego DPS w \u017byrardowie, ul. Sosabowskiego 23<\/strong><\/h4>\n\n\n\n<p>Dom Pomocy Spo\u0142ecznej w \u017byrardowie im. ks. Jerzego Popie\u0142uszki wykona\u0142 modernizacj\u0119 \u0142azienki na III pi\u0119trze budynku dostosowuj\u0105c j\u0105 do potrzeb os\u00f3b z niepe\u0142nosprawno\u015bciami.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>10 457,50 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>10 457,50 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-cc042b438c7e8255ba3dbc704f13d3ee\" style=\"color:#14357a\"><strong>4. Zakup i dostawa samochodu 9-osobowego przystosowanego do przewozu os\u00f3b niepe\u0142nosprawnych, w tym z mo\u017cliwo\u015bci\u0105 przewozu 1 osoby na w\u00f3zku inwalidzkim dotacja dla Gminy Puszcza Maria\u0144ska<\/strong><\/h4>\n\n\n\n<p>W 2025 Powiat \u017byrardowski otrzyma\u0142 od Pa\u0144stwowego Funduszu Rehabilitacji Os\u00f3b Niepe\u0142nosprawnych \u015brodki na dotacj\u0119 celow\u0105 dla Gminy Puszcza Maria\u0144ska. Dotacja zosta\u0142a przekazana na poczet zakupu samochodu (TOYOTA PROACE VERSO).<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>151 000,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>151 000,00 z\u0142 \u00a0&#8211; Pa\u0144stwowy Fundusz Rehabilitacji Os\u00f3b Niepe\u0142nosprawnych<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>151 000,00 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-e630d2a09568b2a4d01b4dca4554f57a\" style=\"color:#14357a\"><strong>5. Zakup i dostawa samochodu 9-osobowego przystosowanego do przewozu os\u00f3b niepe\u0142nosprawnych, w tym z mo\u017cliwo\u015bci\u0105 przewozu 1 osoby na w\u00f3zku inwalidzkim, na potrzeby DPS<\/strong><\/h4>\n\n\n\n<p>W 2025 roku Powiat \u017byrardowski otrzyma\u0142 z Pa\u0144stwowego Funduszu Rehabilitacji Os\u00f3b Niepe\u0142nosprawnych \u015brodki finansowe w kwocie 453&nbsp;000,00 z\u0142 z przeznaczeniem na zakup trzech 9-osobowych samochod\u00f3w. W wyniku rozstrzygni\u0119tego post\u0119powania przetargowego podpisano umow\u0119 kupna samochod\u00f3w z dat\u0105 dostawy na 2026 r.<\/p>\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-align-center has-white-color has-text-color has-background has-link-color wp-elements-940feaf077897c3c47acc59db5c0e1f4\" style=\"background-color:#14357a\"><strong>INWESTYCJE W GOSPODARK\u0118 KOMUNALN\u0104 I OCHRON\u0118 \u015aRODOWISKA<\/strong><\/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-e6c89a76d847fc5e4c0c1e1394b7a56b\" style=\"color:#14357a\"><strong>1. Poprawa efektywno\u015bci energetycznej obiekt\u00f3w u\u017cyteczno\u015bci publicznej Powiatu \u017byrardowskiego<\/strong><\/h4>\n\n\n\n<p>W ramach zadania Starostwo Powiatowe w \u017byrardowie przewidzia\u0142o do realizacji termomodernizacj\u0119 dw\u00f3ch budynk\u00f3w u\u017cyteczno\u015bci publicznej tj.:<\/p>\n\n\n\n<p>1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; budynku (siedziby) Starostwa Powiatowego w \u017byrardowie, ul. Limanowskiego 45,<\/p>\n\n\n\n<p>2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; budynku (siedziby) Zespo\u0142u Szk\u00f3\u0142 nr 2 w \u017byrardowie, ul. Legion\u00f3w Polskich 54\/56.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>12\u00a0087\u00a0552,94 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>4 999 999,99 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego), 3\u00a0910\u00a0200,00 Z\u0141 \u2013 Rz\u0105dowy Fundusz Polski \u0141ad<br><strong>Okres realizacji zadania: <\/strong>2024 &#8211; 2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie kontynuowane w 2026<br><strong>Wydatki poniesione w 2025 r.: <\/strong>38 201,95 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-2e39d1914abf94d5d5ec1ea14f144060\" style=\"color:#14357a\"><strong>2. W\u0142\u0105czenie Starostwa Powiatowego w \u017byrardowie do miejskiej sieci kanalizacji sanitarnej<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie wykona\u0142o przy\u0142\u0105cze do miejskiej sieci kanalizacji sanitarnej budynku przy ul. Limanowskiego 45.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 142 581,12 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania:<\/strong> 2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 142 581,12 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-047bfa40c5bf0906ad232280c822391c\" style=\"color:#14357a\"><strong>3. Termomodernizacja poprzez przebudow\u0119 Liceum Og\u00f3lnokszta\u0142c\u0105cego im. Szarych Szereg\u00f3w w&nbsp;Mszczonowie, ul. Jana Maklakiewicza 18<\/strong><\/h4>\n\n\n\n<p>W ramach realizacji zadania Starostwo Powiatowe \u017byrardowie wykona\u0142o opracowanie audyt\u00f3w energetycznych oraz dokumentacji projektowej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>144 935,00 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>\u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Stan zaawansowania:<\/strong> zadanie zrealizowane<br><strong>Wydatki poniesione w 2025 r.: <\/strong>144 935,00 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cd0df has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Termomodernizacja-poprzez-przebudowe-Liceum-Ogolnoksztalcacego-im.-Szarych-Szeregow-w-Mszczonowie-ul.-Jana-Maklakiewicza-18.jpg&quot;,&quot;caption&quot;:&quot;Termomodernizacja poprzez przebudow\\u0119 Liceum Og\\u00f3lnokszta\\u0142c\\u0105cego im. Szarych Szereg\\u00f3w w\\u00a0Mszczonowie, ul. Jana Maklakiewicza 18&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Termomodernizacja-poprzez-przebudowe-Liceum-Ogolnoksztalcacego-im.-Szarych-Szeregow-w-Mszczonowie-ul.-Jana-Maklakiewicza-18.jpg\" alt=\"Termomodernizacja poprzez przebudow\u0119 Liceum Og\u00f3lnokszta\u0142c\u0105cego im. Szarych Szereg\u00f3w w\u00a0Mszczonowie, ul. Jana Maklakiewicza 18\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Termomodernizacja poprzez przebudow\u0119 Liceum Og\u00f3lnokszta\u0142c\u0105cego im. Szarych Szereg\u00f3w w\u00a0Mszczonowie, ul. Jana Maklakiewicza 18<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cd0df');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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-4e7577bef84d5e81692f102ba2b178a6\" style=\"color:#14357a\"><strong>4. Termomodernizacja poprzez przebudow\u0119 budynku szkolnego przy ul. Tadeusza Ko\u015bciuszki 25 w&nbsp;Wiskitkach<\/strong><\/h4>\n\n\n\n<p>W ramach realizacji zadania Starostwo Powiatowe \u017byrardowie wykona\u0142o opracowanie audyt\u00f3w energetycznych oraz dokumentacji projektowej.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 185 577,28 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> \u015brodki w\u0142asne Powiatu \u017byrardowskiego<br><strong>Stan zaawansowania: <\/strong>zadanie zrealizowane<br><strong>Okres realizacji zadania: <\/strong>2025<br><strong>Wydatki poniesione w 2025 r.: <\/strong>185 577,28 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cd1eb has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Termomodernizacja-poprzez-przebudowe-budynku-szkolnego-przy-ul.-Tadeusza-Kosciuszki-25-w-Wiskitkach.jpg&quot;,&quot;caption&quot;:&quot;Termomodernizacja poprzez przebudow\\u0119 budynku szkolnego przy ul. Tadeusza Ko\\u015bciuszki 25 w\\u00a0Wiskitkach&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Termomodernizacja-poprzez-przebudowe-budynku-szkolnego-przy-ul.-Tadeusza-Kosciuszki-25-w-Wiskitkach.jpg\" alt=\"Termomodernizacja poprzez przebudow\u0119 budynku szkolnego przy ul. Tadeusza Ko\u015bciuszki 25 w\u00a0Wiskitkach\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Termomodernizacja poprzez przebudow\u0119 budynku szkolnego przy ul. Tadeusza Ko\u015bciuszki 25 w\u00a0Wiskitkach<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cd1eb');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\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<h3 class=\"wp-block-heading has-text-align-center has-white-color has-text-color has-background has-link-color wp-elements-ebc4c83374a7bef2b1015d3b8879ffed\" style=\"background-color:#14357a\"><strong>INWESTYCJE W KULTUR\u0118 I OCHRON\u0118 DZIEDZICTWA NARODOWEGO<\/strong><\/h3>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie realizuje przedsi\u0119wzi\u0119cie, kt\u00f3re zak\u0142ada wykonanie prac remontowo-konserwatorskich w dw\u00f3ch zabytkowych budynkach, tj.:<\/p>\n\n\n\n<p>1) budynku Starostwa Powiatu \u017byrardowskiego, przy ul. Limanowskiego 45,<\/p>\n\n\n\n<p>2) budynku Stelli (dawnej po\u0144czoszarni) znajduj\u0105cym si\u0119 przy ul. Limanowskiego 47, a tak\u017ce wykonanie \u0142\u0105cznika mi\u0119dzy budynkami, oraz zagospodarowanie terenu i utworzenie nowej oferty kulturalno-edukacyjnej.<\/p>\n\n\n\n<p>Przedsi\u0119wzi\u0119cie w 2025 roku by\u0142o realizowane w ramach trzech zada\u0144 inwestycyjnych:<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-d1a65bcb91271bc0de2b215e17a82767\" style=\"color:#14357a\"><strong>1. Ochrona, rozw\u00f3j i promowanie dziedzictwa kulturowego poprzez rewitalizacj\u0119 budynk\u00f3w poprzemys\u0142owych \u017byrardowa &#8211; XIX-wiecznej Osady Fabrycznej (w zakresie odnowienia i termomodernizacji budynk\u00f3w u\u017cyteczno\u015bci publicznej) oraz odtworzenia pomostu-\u0142\u0105cznika nad wjazdem na teren fabryki<\/strong><\/h4>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu:<\/strong> 6\u00a0152\u00a0352,94 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania:<\/strong> 4 999 999,99 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego)<br><strong>Okres realizacji zadania: <\/strong>2024 &#8211; 2026<br><strong>Stan zaawansowania:<\/strong> zadanie b\u0119dzie kontynuowane w 2026<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 25 244,65 z\u0142<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-2708ebf09741a2545f4fe544a0395fbc\" style=\"color:#14357a\"><strong>2. Rewitalizacja obszar\u00f3w zdegradowanych poprzez rewaloryzacj\u0119 i termomodernizacj\u0119 budynku u\u017cyteczno\u015bci publicznej &#8211; dawniej po\u0144czoszarni XIX-wiecznej Osady Fabrycznej &#8211; z adaptacj\u0105 na obs\u0142ug\u0119 mieszka\u0144c\u00f3w Powiatu \u017byrardowskiego<\/strong><\/h4>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>9\u00a0082\u00a0352,95 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>5\u00a0000\u00a0000,00 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego)<br><strong>Okres realizacji zadania: <\/strong>2024 &#8211; 2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie kontynuowane w 2026<br><strong>Wydatki poniesione w 2025 r.:<\/strong> 24 170,45 z\u0142<\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a062f83cd423 has-lightbox\" \n             style=\"background-color: #f5f7fa;\"\n             data-lightbox-items='[{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Rewitalizacja-obszarow-zdegradowanych-scaled.jpg&quot;,&quot;caption&quot;:&quot;Rewitalizacja obszar\\u00f3w zdegradowanych poprzez rewaloryzacj\\u0119 i termomodernizacj\\u0119 budynku u\\u017cyteczno\\u015bci publicznej - dawniej po\\u0144czoszarni XIX-wiecznej Osady Fabrycznej - z adaptacj\\u0105 na obs\\u0142ug\\u0119 mieszka\\u0144c\\u00f3w Powiatu \\u017byrardowskiego&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        \n            <div class=\"photo-gallery-grid gallery-centered\" style=\"display: flex; flex-wrap: wrap; justify-content: center; gap: 30px;\" data-columns=\"2\" data-spacing=\"30\">\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                         style=\"width: calc((100% - 30px) \/ 2);\"                         data-lightbox-index=\"0\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/Rewitalizacja-obszarow-zdegradowanych-scaled.jpg\" alt=\"Rewitalizacja obszar\u00f3w zdegradowanych poprzez rewaloryzacj\u0119 i termomodernizacj\u0119 budynku u\u017cyteczno\u015bci publicznej - dawniej po\u0144czoszarni XIX-wiecznej Osady Fabrycznej - z adaptacj\u0105 na obs\u0142ug\u0119 mieszka\u0144c\u00f3w Powiatu \u017byrardowskiego\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                                    <div class=\"gallery-overlay\">\n                                        <span class=\"gallery-caption\" style=\"color: #0a5d7d;\">Rewitalizacja obszar\u00f3w zdegradowanych poprzez rewaloryzacj\u0119 i termomodernizacj\u0119 budynku u\u017cyteczno\u015bci publicznej &#8211; dawniej po\u0144czoszarni XIX-wiecznej Osady Fabrycznej &#8211; z adaptacj\u0105 na obs\u0142ug\u0119 mieszka\u0144c\u00f3w Powiatu \u017byrardowskiego<\/span>\n                                                                                <span class=\"gallery-arrow\">\u2192<\/span>\n                                    <\/div>\n                                                            <\/div>\n                                                                        <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    .gallery-block-custom .gallery-container {\n        max-width: 1400px;\n        margin: 0 auto;\n        padding: 80px 20px;\n    }\n    \n    .gallery-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .gallery-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .gallery-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .gallery-block-custom .photo-gallery-grid {\n        display: grid;\n    }\n    \n    .gallery-block-custom .gallery-item {\n        position: relative;\n        overflow: hidden;\n        border-radius: 12px;\n        box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover {\n        transform: translateY(-5px);\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper {\n        position: relative;\n        width: 100%;\n        overflow: hidden;\n    }\n    \n    .gallery-block-custom .gallery-image-wrapper img {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .gallery-block-custom .gallery-caption-below {\n        padding: 12px 16px;\n        background: #fff;\n        font-size: 0.95rem;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-caption-below .gallery-caption,\n    .gallery-block-custom .gallery-overlay .gallery-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    \n    .gallery-block-custom .gallery-sub-caption {\n        display: block;\n        text-align: center;\n        width: 100%;\n        font-size: 0.85rem;\n        font-weight: 400;\n        text-transform: none !important;\n        margin-top: 4px;\n    }\n    \n    .gallery-block-custom .gallery-overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(30, 60, 114, 0.9);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    \n    .gallery-block-custom .gallery-item:hover .gallery-overlay {\n        opacity: 1;\n    }\n    \n    .gallery-block-custom .gallery-caption {\n        color: white;\n        font-size: 1.1rem;\n        font-weight: 600;\n        padding: 0 20px;\n        text-align: center;\n    }\n    \n    .gallery-block-custom .gallery-arrow {\n        color: white;\n        font-size: 2rem;\n        margin-top: 15px;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-block-custom .photo-gallery-grid {\n            display: block !important;\n            grid-template-columns: 1fr !important;\n        }\n        \n        .gallery-block-custom .gallery-item {\n            width: 100% !important;\n            margin-bottom: 20px;\n        }\n        \n        .gallery-block-custom .gallery-item:last-child {\n            margin-bottom: 0;\n        }\n        \n        .gallery-block-custom .gallery-container {\n            padding-left: 10px !important;\n            padding-right: 10px !important;\n        }\n        \n        .gallery-block-custom.photo-gallery-section {\n            padding: 30px 0 !important;\n        }\n    }\n    <\/style>\n    \n        <style>\n    \/* Lightbox styles - only applied when enabled *\/\n    .gallery-block-custom.has-lightbox .gallery-item-lightbox {\n        cursor: zoom-in;\n    }\n    \n    .gallery-lightbox-overlay {\n        display: none;\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100vw;\n        height: 100vh;\n        background: rgba(0, 0, 0, 0.92);\n        z-index: 999999;\n        align-items: center;\n        justify-content: center;\n        opacity: 0;\n        transition: opacity 0.25s ease;\n    }\n    \n    .gallery-lightbox-overlay.active {\n        display: flex;\n        opacity: 1;\n    }\n    \n    .gallery-lightbox-content {\n        position: relative;\n        max-width: 92vw;\n        max-height: 88vh;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image-wrapper {\n        max-width: 92vw;\n        max-height: 80vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    \n    .gallery-lightbox-image {\n        max-width: 92vw;\n        max-height: 80vh;\n        width: auto;\n        height: auto;\n        object-fit: contain;\n        box-shadow: 0 8px 40px rgba(0,0,0,0.5);\n        border-radius: 4px;\n        opacity: 0;\n        transform: scale(0.96);\n        transition: opacity 0.25s ease, transform 0.25s ease;\n    }\n    \n    .gallery-lightbox-image.visible {\n        opacity: 1;\n        transform: scale(1);\n    }\n    \n    .gallery-lightbox-caption {\n        margin-top: 18px;\n        text-align: center;\n        color: #fff;\n        max-width: 92vw;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-main {\n        display: block;\n        font-size: 1.15rem;\n        font-weight: 600;\n    }\n    \n    .gallery-lightbox-caption .lb-caption-sub {\n        display: block;\n        font-size: 0.9rem;\n        font-weight: 400;\n        opacity: 0.85;\n        margin-top: 4px;\n    }\n    \n    .gallery-lightbox-close,\n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        position: absolute;\n        background: rgba(255, 255, 255, 0.12);\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: background 0.2s ease, transform 0.2s ease;\n        z-index: 2;\n    }\n    \n    .gallery-lightbox-close:hover,\n    .gallery-lightbox-prev:hover,\n    .gallery-lightbox-next:hover {\n        background: rgba(255, 255, 255, 0.28);\n    }\n    \n    .gallery-lightbox-close {\n        top: -50px;\n        right: 0;\n        width: 44px;\n        height: 44px;\n        border-radius: 50%;\n        font-size: 1.5rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev,\n    .gallery-lightbox-next {\n        top: 50%;\n        transform: translateY(-50%);\n        width: 50px;\n        height: 50px;\n        border-radius: 50%;\n        font-size: 1.8rem;\n        line-height: 1;\n    }\n    \n    .gallery-lightbox-prev {\n        left: -70px;\n    }\n    \n    .gallery-lightbox-next {\n        right: -70px;\n    }\n    \n    .gallery-lightbox-prev:hover {\n        transform: translateY(-50%) translateX(-2px);\n    }\n    \n    .gallery-lightbox-next:hover {\n        transform: translateY(-50%) translateX(2px);\n    }\n    \n    .gallery-lightbox-counter {\n        position: absolute;\n        top: -50px;\n        left: 0;\n        color: rgba(255, 255, 255, 0.7);\n        font-size: 0.9rem;\n    }\n    \n    \/* Hide nav buttons when there's only one image *\/\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-prev,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-next,\n    .gallery-lightbox-overlay.single-image .gallery-lightbox-counter {\n        display: none;\n    }\n    \n    @media (max-width: 768px) {\n        .gallery-lightbox-prev {\n            left: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-next {\n            right: 8px;\n            width: 42px;\n            height: 42px;\n            font-size: 1.4rem;\n        }\n        .gallery-lightbox-close {\n            top: 8px;\n            right: 8px;\n        }\n        .gallery-lightbox-counter {\n            top: 18px;\n            left: 14px;\n        }\n    }\n    <\/style>\n    \n    <script>\n    (function() {\n        const section = document.querySelector('.gallery-6a062f83cd423');\n        if (!section || !section.classList.contains('has-lightbox')) return;\n        \n        let items = [];\n        try {\n            items = JSON.parse(section.getAttribute('data-lightbox-items') || '[]');\n        } catch(e) {\n            return;\n        }\n        if (items.length === 0) return;\n        \n        \/\/ Build lightbox overlay (single instance per gallery)\n        const overlay = document.createElement('div');\n        overlay.className = 'gallery-lightbox-overlay';\n        if (items.length === 1) overlay.classList.add('single-image');\n        overlay.innerHTML = '' +\n            '<div class=\"gallery-lightbox-content\">' +\n                '<button type=\"button\" class=\"gallery-lightbox-close\" aria-label=\"Close\">\u00d7<\/button>' +\n                '<div class=\"gallery-lightbox-counter\"><\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-prev\" aria-label=\"Previous\">\u2039<\/button>' +\n                '<div class=\"gallery-lightbox-image-wrapper\">' +\n                    '<img class=\"gallery-lightbox-image\" alt=\"\">' +\n                '<\/div>' +\n                '<button type=\"button\" class=\"gallery-lightbox-next\" aria-label=\"Next\">\u203a<\/button>' +\n                '<div class=\"gallery-lightbox-caption\"><\/div>' +\n            '<\/div>';\n        document.body.appendChild(overlay);\n        \n        const imgEl = overlay.querySelector('.gallery-lightbox-image');\n        const captionEl = overlay.querySelector('.gallery-lightbox-caption');\n        const counterEl = overlay.querySelector('.gallery-lightbox-counter');\n        \n        let currentIndex = 0;\n        \n        function showImage(newIndex, direction) {\n            if (newIndex < 0) newIndex = items.length - 1;\n            if (newIndex >= items.length) newIndex = 0;\n            currentIndex = newIndex;\n            const item = items[currentIndex];\n            \n            \/\/ Brief fade animation when changing\n            imgEl.classList.remove('visible');\n            \n            setTimeout(function() {\n                imgEl.src = item.image;\n                imgEl.alt = item.caption || '';\n                \n                let captionHtml = '';\n                if (item.caption) {\n                    captionHtml += '<span class=\"lb-caption-main\"><\/span>';\n                }\n                if (item.subCaption) {\n                    captionHtml += '<span class=\"lb-caption-sub\"><\/span>';\n                }\n                captionEl.innerHTML = captionHtml;\n                if (item.caption) {\n                    captionEl.querySelector('.lb-caption-main').textContent = item.caption;\n                }\n                if (item.subCaption) {\n                    captionEl.querySelector('.lb-caption-sub').textContent = item.subCaption;\n                }\n                \n                counterEl.textContent = (currentIndex + 1) + ' \/ ' + items.length;\n                \n                \/\/ Wait for image load before fading in\n                if (imgEl.complete) {\n                    requestAnimationFrame(function() {\n                        imgEl.classList.add('visible');\n                    });\n                } else {\n                    imgEl.onload = function() {\n                        imgEl.classList.add('visible');\n                    };\n                }\n            }, 150);\n        }\n        \n        function openLightbox(index) {\n            currentIndex = index;\n            overlay.classList.add('active');\n            document.body.style.overflow = 'hidden';\n            showImage(index);\n        }\n        \n        function closeLightbox() {\n            overlay.classList.remove('active');\n            document.body.style.overflow = '';\n            imgEl.classList.remove('visible');\n        }\n        \n        \/\/ Click handlers on gallery items\n        section.querySelectorAll('.gallery-item-lightbox').forEach(function(el) {\n            el.addEventListener('click', function(e) {\n                e.preventDefault();\n                e.stopPropagation();\n                const idx = parseInt(el.getAttribute('data-lightbox-index'), 10);\n                if (!isNaN(idx)) openLightbox(idx);\n            });\n        });\n        \n        \/\/ Lightbox controls\n        overlay.querySelector('.gallery-lightbox-close').addEventListener('click', closeLightbox);\n        overlay.querySelector('.gallery-lightbox-prev').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex - 1);\n        });\n        overlay.querySelector('.gallery-lightbox-next').addEventListener('click', function(e) {\n            e.stopPropagation();\n            showImage(currentIndex + 1);\n        });\n        \n        \/\/ Click outside image to close\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) closeLightbox();\n        });\n        \n        \/\/ Keyboard navigation\n        document.addEventListener('keydown', function(e) {\n            if (!overlay.classList.contains('active')) return;\n            if (e.key === 'Escape') closeLightbox();\n            else if (e.key === 'ArrowLeft') showImage(currentIndex - 1);\n            else if (e.key === 'ArrowRight') showImage(currentIndex + 1);\n        });\n    })();\n    <\/script>\n        \n    \n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-b56a5de4193d987482af5f8ec97788be\" style=\"color:#14357a\"><strong>3. Rewitalizacja obszar\u00f3w zdegradowanych poprzez kolejny etap odnowienia i termomodernizacji budynk\u00f3w u\u017cyteczno\u015bci publicznej na obszarze \u017byrardowa \u2013 XIX-wiecznej Osady Fabrycznej<\/strong><\/h4>\n\n\n\n<p>Starostwo Powiatowe w \u017byrardowie w roku 2025 wykona\u0142o dokumentacj\u0119 do wniosku o\u00a0dofinansowanie (studium wykonalno\u015bci, audyt energetyczny, PFU). Nab\u00f3r wniosk\u00f3w trwa\u0142 do 29.12.2025\u00a0r.\u00a0 Zadanie b\u0119dzie kontynuowane w 2026 r.<\/p>\n\n\n\n<p><strong>Warto\u015b\u0107 projektu: <\/strong>14 608 111,29 z\u0142<br><strong>Warto\u015b\u0107 dofinansowania: <\/strong>12 416 894,59 z\u0142 &#8211; Fundusze Europejskie dla Mazowsza 2021-2027 (Program Regionalny Wspieraj\u0105cy Rozw\u00f3j Wojew\u00f3dztwa Mazowieckiego)<br><strong>Okres realizacji zadania:<\/strong> 2025 &#8211; 2026<br><strong>Stan zaawansowania: <\/strong>zadanie b\u0119dzie kontynuowane w 2026 r.<br><strong>Wydatki poniesione w 2025 r.: <\/strong>2\u00a0500 z\u0142<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>INWESTYCJE W TRANSPORT I \u0141\u0104CZNO\u015a\u0106 1. Rozbudowa drogi powiatowej nr 4729W Wiskitki &#8211; Dzia\u0142ki &#8211; \u017byrard\u00f3w &#8211; Etap II W 2025 r. Starostwo Powiatowe wraz z Powiatowym Zarz\u0105dem Dr\u00f3g&nbsp;w \u017byrardowie&#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-538","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/538","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=538"}],"version-history":[{"count":154,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/538\/revisions"}],"predecessor-version":[{"id":3219,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/538\/revisions\/3219"}],"wp:attachment":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/media?parent=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}