{"id":573,"date":"2026-04-24T13:36:18","date_gmt":"2026-04-24T11:36:18","guid":{"rendered":"http:\/\/192.168.2.11\/?page_id=573"},"modified":"2026-05-11T14:53:10","modified_gmt":"2026-05-11T12:53:10","slug":"kultura-fizyczna-i-turystyka","status":"publish","type":"page","link":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/kultura-fizyczna-i-turystyka\/","title":{"rendered":"Kultura fizyczna i turystyka"},"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;\">Wydatki zrealizowane w ramach kultury fizycznej i sportu w 2025 r.<\/h3>\n                        <div class=\"stat-number-wrapper\">\n                            <span class=\"stat-number\" \n                                  data-target=\"307254\"\n                                  data-suffix=\",25 z\u0142\"\n                                  data-separator=\"space\"\n                                  data-decimal-separator=\"comma\"\n                                  style=\"color: #1e3c72;\">0<\/span>\n                        <\/div>\n                        <p class=\"stat-description\" style=\"color: #666666;\"><\/p>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/section>\n    \n    <style>\n    \/* Statistics Block Styles - matches homepage layout *\/\n    .statistics-block-custom {\n        padding: 80px 20px;\n        position: relative;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stats-container {\n        max-width: 1400px;\n        margin: 0 auto;\n    }\n    \n    .statistics-block-custom .section-header {\n        text-align: center;\n        margin-bottom: 60px;\n    }\n    \n    .statistics-block-custom .section-header h2 {\n        font-size: 2.5rem;\n        color: #1e3c72;\n        margin-bottom: 15px;\n    }\n    \n    .statistics-block-custom .section-header p {\n        font-size: 1.2rem;\n        color: #666;\n    }\n    \n    .statistics-block-custom .stats-grid {\n        display: grid;\n        gap: 40px;\n        margin: 0 auto;\n    }\n    \n    \/* 2 blocks *\/\n    .statistics-block-custom .stats-grid-2 {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        max-width: 900px;\n    }\n    \n    \/* 3 blocks *\/\n    .statistics-block-custom .stats-grid-3 {\n        grid-template-columns: repeat(3, minmax(0, 1fr));\n        max-width: 1200px;\n    }\n    \n    \/* 4 blocks *\/\n    .statistics-block-custom .stats-grid-4 {\n        grid-template-columns: repeat(4, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    \/* 5 blocks *\/\n    .statistics-block-custom .stats-grid-5 {\n        grid-template-columns: repeat(5, minmax(0, 1fr));\n        max-width: 1400px;\n    }\n    \n    .statistics-block-custom .stat-box {\n        text-align: center;\n        padding: 40px 20px;\n        background: rgba(255, 255, 255, 0.95);\n        border-radius: 12px;\n        box-shadow: 0 4px 20px rgba(0,0,0,0.1);\n        transition: transform 0.3s ease, box-shadow 0.3s ease;\n        min-width: 0;\n        max-width: 100%;\n        overflow: hidden;\n    }\n    \n    .statistics-block-custom .stat-box:hover {\n        transform: translateY(-10px);\n        box-shadow: 0 8px 30px rgba(0,0,0,0.15);\n    }\n    \n    .statistics-block-custom .stat-title {\n        font-size: 1.3rem;\n        color: #1e3c72;\n        font-weight: 600;\n        margin-bottom: 20px;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        overflow: hidden;\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n    \n    .statistics-block-custom .stat-number-wrapper {\n        margin: 20px 0;\n        overflow: hidden;\n        max-width: 100%;\n    }\n    \n    .statistics-block-custom .stat-number {\n        font-size: 4rem;\n        font-weight: 700;\n        color: #2a5298;\n        display: inline-block;\n        line-height: 1;\n    }\n    \n    .statistics-block-custom .stat-description {\n        font-size: 1rem;\n        color: #666;\n        line-height: 1.6;\n        margin-top: 20px;\n    }\n    \n    \/* Responsive for statistics block *\/\n    @media (max-width: 1200px) {\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(3, minmax(0, 1fr));\n        }\n    }\n    \n    @media (max-width: 968px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            gap: 30px;\n        }\n    }\n    \n    @media (max-width: 640px) {\n        .statistics-block-custom .stats-grid-2,\n        .statistics-block-custom .stats-grid-3,\n        .statistics-block-custom .stats-grid-4,\n        .statistics-block-custom .stats-grid-5 {\n            grid-template-columns: minmax(0, 1fr);\n        }\n        \n        .statistics-block-custom .stat-number {\n            font-size: 3rem;\n        }\n        \n        .statistics-block-custom .stat-title {\n            font-size: 1.1rem;\n        }\n        \n        .statistics-block-custom .section-header h2 {\n            font-size: 2rem;\n        }\n    }\n    <\/style>\n    \n        <script>\n    if (!window.statsAnimationLoaded) {\n        window.statsAnimationLoaded = true;\n        \n        \/\/ Calculate the best fitting font size for a number (without applying it)\n        \/\/ Returns the size that makes the number fit, or null if no scaling needed\n        function calculateBestFontSize(element) {\n            const statBox = element.closest('.stat-box');\n            if (!statBox) return null;\n            \n            \/\/ Reset to default size to measure naturally\n            element.style.fontSize = '';\n            element.style.whiteSpace = 'nowrap';\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ Get available width from stat-box\n            const boxStyle = window.getComputedStyle(statBox);\n            const paddingLeft = parseFloat(boxStyle.paddingLeft) || 0;\n            const paddingRight = parseFloat(boxStyle.paddingRight) || 0;\n            const availableWidth = statBox.clientWidth - paddingLeft - paddingRight - 20;\n            \n            if (availableWidth <= 0) return null;\n            \n            \/\/ Current computed font size\n            const computedSize = parseFloat(window.getComputedStyle(element).fontSize);\n            \n            \/\/ Force reflow\n            void element.offsetHeight;\n            \n            \/\/ If fits at default size, return null (no scaling needed)\n            if (element.scrollWidth <= availableWidth) return null;\n            \n            \/\/ Binary search for best size\n            let minSize = 10;\n            let maxSize = computedSize;\n            let bestSize = minSize;\n            \n            while (maxSize - minSize > 0.5) {\n                const testSize = (minSize + maxSize) \/ 2;\n                element.style.fontSize = testSize + 'px';\n                void element.offsetHeight;\n                \n                if (element.scrollWidth <= availableWidth) {\n                    bestSize = testSize;\n                    minSize = testSize;\n                } else {\n                    maxSize = testSize;\n                }\n            }\n            \n            \/\/ Reset to default - we'll apply the synchronized size separately\n            element.style.fontSize = '';\n            void element.offsetHeight;\n            \n            return bestSize;\n        }\n        \n        \/\/ Fit all numbers in a module to the same (smallest needed) font size\n        function fitNumbersInModule(moduleSection) {\n            if (!moduleSection) return;\n            const numbers = moduleSection.querySelectorAll('.stat-number');\n            if (numbers.length === 0) return;\n            \n            \/\/ Calculate required size for each number\n            let smallestSize = null;\n            numbers.forEach(function(numEl) {\n                const size = calculateBestFontSize(numEl);\n                if (size !== null) {\n                    if (smallestSize === null || size < smallestSize) {\n                        smallestSize = size;\n                    }\n                }\n            });\n            \n            \/\/ Apply the smallest size to ALL numbers in this module (or reset if all fit)\n            numbers.forEach(function(numEl) {\n                if (smallestSize !== null) {\n                    numEl.style.fontSize = smallestSize + 'px';\n                } else {\n                    numEl.style.fontSize = '';\n                }\n            });\n        }\n        \n        \/\/ Backward compatible single-element fit function (operates on whole module)\n        function fitNumberToBox(element) {\n            const moduleSection = element.closest('.animated-stats-section');\n            if (moduleSection) {\n                fitNumbersInModule(moduleSection);\n            }\n        }\n        \n        function animateCounter(element, start, end, duration) {\n            const suffix = element.getAttribute('data-suffix') || '';\n            const separator = element.getAttribute('data-separator') || 'space';\n            const decimalSep = element.getAttribute('data-decimal-separator') || 'comma';\n            const decChar = (decimalSep === 'period') ? '.' : ',';\n            const hasDecimal = end.toString().includes('.');\n            const decimalPlaces = hasDecimal ? end.toString().split('.')[1].length : 0;\n            let startTime = null;\n            \n            function formatNumber(num, sep) {\n                const roundedNum = hasDecimal ? num.toFixed(decimalPlaces) : Math.floor(num);\n                const str = roundedNum.toString();\n                \n                \/\/ Rozdziel cz\u0119\u015b\u0107 ca\u0142kowit\u0105 i dziesi\u0119tn\u0105 (\u017ar\u00f3d\u0142o zawsze u\u017cywa kropki)\n                const parts = str.split('.');\n                const intPart = parts[0];\n                const decPart = parts[1] ? decChar + parts[1] : '';\n                \n                if (sep === 'none') {\n                    return intPart + decPart;\n                }\n                \n                \/\/ Wyb\u00f3r separatora tysi\u0119cy - musi by\u0107 r\u00f3\u017cny od separatora dziesi\u0119tnego\n                let thousandsChar = '';\n                if (sep === 'space') thousandsChar = ' ';\n                else if (sep === 'period') thousandsChar = (decChar === '.') ? ' ' : '.';\n                else if (sep === 'comma') thousandsChar = (decChar === ',') ? ' ' : ',';\n                \n                let formatted = '';\n                let count = 0;\n                \n                for (let i = intPart.length - 1; i >= 0; i--) {\n                    if (count === 3) {\n                        formatted = thousandsChar + formatted;\n                        count = 0;\n                    }\n                    formatted = intPart[i] + formatted;\n                    count++;\n                }\n                \n                return formatted + decPart;\n            }\n            \n            function easeOutCubic(t) {\n                return 1 - Math.pow(1 - t, 3);\n            }\n            \n            function animate(currentTime) {\n                if (!startTime) startTime = currentTime;\n                const elapsed = currentTime - startTime;\n                const progress = Math.min(elapsed \/ duration, 1);\n                const easedProgress = easeOutCubic(progress);\n                const current = start + (end - start) * easedProgress;\n                \n                const displayValue = formatNumber(current, separator);\n                element.textContent = displayValue + suffix;\n                \n                if (progress < 1) {\n                    requestAnimationFrame(animate);\n                } else {\n                    \/\/ Final value set - now fit it to the box\n                    fitNumberToBox(element);\n                }\n            }\n            \n            \/\/ Pre-set final value to measure, then start animation\n            element.textContent = formatNumber(end, separator) + suffix;\n            fitNumberToBox(element);\n            element.textContent = formatNumber(start, separator) + suffix;\n            \n            requestAnimationFrame(animate);\n        }\n        \n        function initStatsObserver() {\n            const observerOptions = {\n                threshold: 0.5,\n                rootMargin: '0px'\n            };\n            \n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach(entry => {\n                    if (entry.isIntersecting) {\n                        const statBoxes = entry.target.querySelectorAll('.stat-box');\n                        statBoxes.forEach((box, index) => {\n                            setTimeout(() => {\n                                const numberElement = box.querySelector('.stat-number');\n                                if (numberElement) {\n                                    if (!numberElement.classList.contains(\"animated\")) {\n                                        const targetValue = parseFloat(numberElement.getAttribute('data-target'));\n                                        animateCounter(numberElement, 0, targetValue, 3000);\n                                        numberElement.classList.add('animated');\n                                    }\n                                }\n                            }, index * 200);\n                        });\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, observerOptions);\n            \n            const statsSections = document.querySelectorAll('.animated-stats-section .stats-grid');\n            statsSections.forEach(section => {\n                observer.observe(section);\n            });\n        }\n        \n        \/\/ Refit all stat numbers (used on resize) - per module so each scales together\n        function refitAllStatNumbers() {\n            const sections = document.querySelectorAll('.animated-stats-section');\n            sections.forEach(function(section) {\n                \/\/ Only refit if at least one number has been animated\n                if (section.querySelector('.stat-number.animated')) {\n                    fitNumbersInModule(section);\n                }\n            });\n        }\n        \n        \/\/ Handle resize events (debounced)\n        let statsResizeTimer;\n        window.addEventListener('resize', function() {\n            clearTimeout(statsResizeTimer);\n            statsResizeTimer = setTimeout(refitAllStatNumbers, 150);\n        });\n        \n        \/\/ Also refit after orientation change (mobile)\n        window.addEventListener('orientationchange', function() {\n            setTimeout(refitAllStatNumbers, 300);\n        });\n        \n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initStatsObserver);\n        } else {\n            initStatsObserver();\n        }\n    }\n    <\/script>\n        \n    \n\n\n<h2 class=\"wp-block-heading has-text-align-center has-text-color has-link-color wp-elements-cbfbfa8e32d34ef7c98f8e37ff1799e3\" style=\"color:#14357a\"><strong>Mi\u0119dzyszkolne Igrzyska Powiatu \u017byrardowskiego&nbsp;2025<br>(II semestr roku szkolnego 2024\/25 oraz I semestr roku szkolnego 2025\/26)<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-87fca99a854b2713b308cdfb2d1850fa\" style=\"color:#14357a\"><strong>II semestr roku szkolnego 2024\/25<\/strong><strong><\/strong><\/h4>\n\n\n\n<ul start=\"1\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>15.01.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Mini Siatk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ul start=\"2\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>16.01.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Mini Siatk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ul start=\"3\" class=\"wp-block-list\">\n<li>Radziejowice <strong>29.01.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Mini Pi\u0142ka R\u0119czna Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Radziejowice <strong>30.01.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Mini Pi\u0142ka R\u0119czna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>20.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Siatk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>21.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Siatk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"7\" class=\"wp-block-list\">\n<li>Wiskitki <strong>26.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"8\" class=\"wp-block-list\">\n<li>Wiskitki <strong>26.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"9\" class=\"wp-block-list\">\n<li>Wiskitki <strong>28.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"10\" class=\"wp-block-list\">\n<li>Wiskitki <strong>28.02.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"11\" class=\"wp-block-list\">\n<li>Wiskitki <strong>04.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"12\" class=\"wp-block-list\">\n<li>Wiskitki <strong>05.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tenis Sto\u0142owy Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"13\" class=\"wp-block-list\">\n<li>Mszczon\u00f3w <strong>11.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka R\u0119czna Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"14\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>12.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka R\u0119czna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"15\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>18.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Siatk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"16\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>20.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Siatk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"17\" class=\"wp-block-list\">\n<li>Mszczon\u00f3w <strong>26.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka R\u0119czna Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"18\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>27.03.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka R\u0119czna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"19\" class=\"wp-block-list\">\n<li>Osuch\u00f3w <strong>04.04.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<p>Indywidualne Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"20\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>29.04.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Mini Pi\u0142ka No\u017cna Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"21\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>29.04.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Mini Pi\u0142ka No\u017cna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"22\" class=\"wp-block-list\">\n<li>Wiskitki <strong>16.05.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Czw\u00f3rb\u00f3j Lekkoatletyczny Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"23\" class=\"wp-block-list\">\n<li>Wiskitki <strong>19.05.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Tr\u00f3jb\u00f3j Lekkoatletyczny Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"24\" class=\"wp-block-list\">\n<li>Osuch\u00f3w <strong>28.05.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Lekkoatletyka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<p>Lekkoatletyka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ul start=\"25\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>09.06.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Mityng Lekkoatletyczny Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<p><\/p>\n\n\n    <section class=\"photo-gallery-section gallery-block-custom caption-overlay gallery-6a0630aa343d9 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\\\/3-1-scaled.jpg&quot;,&quot;caption&quot;:&quot;&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/6-scaled.jpg&quot;,&quot;caption&quot;:&quot;&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/5-scaled.jpg&quot;,&quot;caption&quot;:&quot;&quot;,&quot;subCaption&quot;:&quot;&quot;},{&quot;image&quot;:&quot;https:\\\/\\\/raport2025.powiat-zyrardowski.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/20251119-IMG_8027-scaled.jpg&quot;,&quot;caption&quot;:&quot;&quot;,&quot;subCaption&quot;:&quot;&quot;}]'>\n        <div class=\"gallery-container\">\n                        <div class=\"section-header\">\n                                    <h2 style=\"color: #1e3c72;\">GALA SPORTU<\/h2>\n                                                    <p>odby\u0142a si\u0119 19 listopada 2025 r.<\/p>\n                            <\/div>\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\/3-1-scaled.jpg\" alt=\"\" loading=\"lazy\" style=\"object-fit: cover;\">\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\/6-scaled.jpg\" alt=\"\" loading=\"lazy\" style=\"object-fit: cover;\">\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\/5-scaled.jpg\" alt=\"\" loading=\"lazy\" style=\"object-fit: cover;\">\n                                                            <\/div>\n                                                                        <\/div>\n                                    <div class=\"gallery-item gallery-item-lightbox\" \n                                                  data-lightbox-index=\"3\">\n                                                    <div class=\"gallery-image-wrapper\" style=\"height: 250px;\">\n                                <img decoding=\"async\" src=\"https:\/\/raport2025.powiat-zyrardowski.pl\/wp-content\/uploads\/2026\/05\/20251119-IMG_8027-scaled.jpg\" alt=\"\" loading=\"lazy\" style=\"object-fit: cover;\">\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-6a0630aa343d9');\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-7eeeb1d8c3450ed1d0a88efe33a5c8a3\" style=\"color:#14357a\"><strong>I semestr roku szkolnego 2025\/26<\/strong><strong><\/strong><\/h4>\n\n\n\n<ul start=\"26\" class=\"wp-block-list\">\n<li>Osuch\u00f3w <strong>08.10.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<p>Sztafetowe Biegi Prze\u0142ajowe Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ul start=\"27\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>17.10.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Pi\u0142ka No\u017cna Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"28\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>17.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka No\u017cna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"29\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>21.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka No\u017cna Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"30\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>21.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Pi\u0142ka No\u017cna Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ul start=\"31\" class=\"wp-block-list\">\n<li>Radziejowice <strong>22.10.2024 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Badminton Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"32\" class=\"wp-block-list\">\n<li>Radziejowice <strong>22.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Badminton Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"33\" class=\"wp-block-list\">\n<li>Radziejowice <strong>30.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Badminton Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"34\" class=\"wp-block-list\">\n<li>Radziejowice <strong>30.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Badminton Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"35\" class=\"wp-block-list\">\n<li>Wiskitki <strong>27.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Badminton Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"36\" class=\"wp-block-list\">\n<li>Wiskitki <strong>29.10.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Badminton Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"37\" class=\"wp-block-list\">\n<li>Radziejowice <strong>05.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Unihokej Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"38\" class=\"wp-block-list\">\n<li>Radziejowice <strong>05.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Unihokej Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"39\" class=\"wp-block-list\">\n<li>&nbsp;Radziejowice <strong>06.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Unihokej Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"40\" class=\"wp-block-list\">\n<li>Radziejowice <strong>06.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Unihokej Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"41\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>12.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Mini Koszyk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci<\/p>\n\n\n\n<ol start=\"42\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>14.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Mini Koszyk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategorii Dzieci<\/p>\n\n\n\n<ol start=\"43\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>17.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Koszyk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"44\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>21.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Koszyk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ol start=\"45\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>26.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Koszyk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<ol start=\"46\" class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>27.11.2025 <\/strong>r.<\/li>\n<\/ol>\n\n\n\n<p>Koszyk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych \u2013 Kategoria M\u0142odzie\u017c<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-color has-link-color wp-elements-0c098f80862a300df86d30988a6c60ba\" style=\"color:#14357a\"><strong>FINA\u0141Y MI\u0118DZYPOWIATOWE (4 jednostki zawod\u00f3w)<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>04.12.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Koszyk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>05.12.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Koszyk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Ponadpodstawowych<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>08.12.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Koszyk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych (M\u0142odzie\u017c)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u017byrard\u00f3w <strong>09.12.2025 <\/strong>r.<\/li>\n<\/ul>\n\n\n\n<p>Koszyk\u00f3wka Ch\u0142opc\u00f3w Szk\u00f3\u0142 Podstawowych (M\u0142odzie\u017c)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi\u0119dzyszkolne Igrzyska Powiatu \u017byrardowskiego&nbsp;2025(II semestr roku szkolnego 2024\/25 oraz I semestr roku szkolnego 2025\/26) II semestr roku szkolnego 2024\/25 Mini Siatk\u00f3wka Dziewcz\u0105t Szk\u00f3\u0142 Podstawowych \u2013 Kategoria Dzieci Mini Siatk\u00f3wka Ch\u0142opc\u00f3w&#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-573","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/573","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=573"}],"version-history":[{"count":29,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/573\/revisions"}],"predecessor-version":[{"id":2963,"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/pages\/573\/revisions\/2963"}],"wp:attachment":[{"href":"https:\/\/raport2025.powiat-zyrardowski.pl\/index.php\/wp-json\/wp\/v2\/media?parent=573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}