{"id":87,"date":"2026-07-18T09:19:10","date_gmt":"2026-07-18T09:19:10","guid":{"rendered":"https:\/\/km-mentoring.uk\/?page_id=87"},"modified":"2026-09-04T14:35:46","modified_gmt":"2026-09-04T14:35:46","slug":"blog-2","status":"publish","type":"page","link":"https:\/\/km-mentoring.uk\/en\/blog-2\/","title":{"rendered":"Blog"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"87\" class=\"elementor elementor-87\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2b8abff e-flex e-con-boxed e-con e-parent\" data-id=\"2b8abff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b30d356 elementor-widget elementor-widget-html\" data-id=\"b30d356\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"km-blog-index-2026\" class=\"km-blog-index-2026\" data-site-url=\"\">\n  <span id=\"blog\" class=\"km-blog-anchor\" aria-hidden=\"true\"><\/span>\n  <style>\n    \/* km-clean-guard: WordPress\/Elementor theme isolation *\/\n    body:has(#km-blog-index-2026) .entry-header,\n    body:has(#km-blog-index-2026) .entry-title,\n    body:has(#km-blog-index-2026) .page-title,\n    body:has(#km-blog-index-2026) .wp-block-post-title,\n    body:has(#km-blog-index-2026) .ast-article-single > .entry-header {\n      display: none !important;\n    }\n\n    body:has(#km-blog-index-2026) #primary,\n    body:has(#km-blog-index-2026) .site-main,\n    body:has(#km-blog-index-2026) .entry-content,\n    body:has(#km-blog-index-2026) .ast-container,\n    body:has(#km-blog-index-2026) .ast-article-single {\n      width: 100% !important;\n      max-width: 100% !important;\n      margin: 0 !important;\n      padding: 0 !important;\n    }\n\n    #km-blog-index-2026,\n    #km-blog-index-2026 * {\n      box-sizing: border-box !important;\n      letter-spacing: 0 !important;\n    }\n\n    #km-blog-index-2026 {\n      width: 100vw !important;\n      max-width: 100vw !important;\n      margin: 0 calc(50% - 50vw) !important;\n      padding: clamp(74px, 9vw, 132px) clamp(18px, 4vw, 64px) !important;\n      color: #15080a !important;\n      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif !important;\n      background:\n        radial-gradient(circle at 14% 8%, rgba(122, 8, 36, 0.1), transparent 32%),\n        radial-gradient(circle at 88% 20%, rgba(216, 173, 88, 0.18), transparent 30%),\n        linear-gradient(180deg, #fffefa 0%, #f6f2ea 100%) !important;\n      position: relative !important;\n      overflow: hidden !important;\n      isolation: isolate !important;\n      container-type: inline-size !important;\n    }\n\n    #km-blog-index-2026 .km-blog-anchor {\n      position: absolute !important;\n      top: 0 !important;\n      left: 0 !important;\n      width: 1px !important;\n      height: 1px !important;\n      pointer-events: none !important;\n    }\n\n    #km-blog-index-2026::before {\n      content: \"BLOG\" !important;\n      position: absolute !important;\n      top: -0.18em !important;\n      right: 4vw !important;\n      z-index: -1 !important;\n      color: rgba(122, 8, 36, 0.045) !important;\n      font-family: Georgia, \"Times New Roman\", serif !important;\n      font-size: clamp(170px, 27vw, 420px) !important;\n      line-height: 1 !important;\n      letter-spacing: 0 !important;\n      pointer-events: none !important;\n    }\n\n    #km-blog-index-2026 .km-blog-wrap {\n      width: min(1180px, 100%) !important;\n      margin: 0 auto !important;\n    }\n\n    #km-blog-index-2026 .km-blog-head {\n      display: grid !important;\n      grid-template-columns: minmax(0, 820px) !important;\n      gap: clamp(28px, 6vw, 74px) !important;\n      align-items: end !important;\n      margin-bottom: clamp(34px, 5vw, 58px) !important;\n    }\n\n    #km-blog-index-2026 .km-eyebrow {\n      margin: 0 0 16px !important;\n      color: #7a0824 !important;\n      font-size: 13px !important;\n      font-weight: 950 !important;\n      letter-spacing: 0.16em !important;\n      text-transform: uppercase !important;\n    }\n\n    #km-blog-index-2026 h1 {\n      margin: 0 !important;\n      max-width: 760px !important;\n      color: #13080a !important;\n      font-family: Georgia, \"Times New Roman\", serif !important;\n      font-size: clamp(46px, 7vw, 96px) !important;\n      line-height: 0.96 !important;\n      font-weight: 500 !important;\n      letter-spacing: 0 !important;\n      text-wrap: balance !important;\n    }\n\n    #km-blog-index-2026 h1 span {\n      display: block !important;\n    }\n\n    #km-blog-index-2026 .km-blog-lead {\n      margin: 0 !important;\n      color: rgba(21, 8, 10, 0.62) !important;\n      font-size: clamp(16px, 1.35vw, 19px) !important;\n      line-height: 1.78 !important;\n      font-weight: 560 !important;\n    }\n\n    #km-blog-index-2026 .km-filter-panel {\n      margin-bottom: clamp(28px, 4vw, 46px) !important;\n      padding: 18px !important;\n      border: 1px solid rgba(122, 8, 36, 0.12) !important;\n      border-radius: 28px !important;\n      background: rgba(255, 255, 255, 0.7) !important;\n      box-shadow: 0 20px 60px rgba(28, 10, 10, 0.07) !important;\n      display: grid !important;\n      gap: 14px !important;\n      backdrop-filter: blur(16px) !important;\n      -webkit-backdrop-filter: blur(16px) !important;\n    }\n\n    #km-blog-index-2026 .km-filter-row {\n      display: flex !important;\n      flex-wrap: wrap !important;\n      align-items: center !important;\n      gap: 10px !important;\n    }\n\n    #km-blog-index-2026 .km-filter-label {\n      margin-right: 6px !important;\n      color: rgba(21, 8, 10, 0.58) !important;\n      font-size: 12px !important;\n      font-weight: 950 !important;\n      letter-spacing: 0.12em !important;\n      text-transform: uppercase !important;\n    }\n\n    #km-blog-index-2026 .km-filter-btn {\n      min-height: 40px !important;\n      padding: 0 14px !important;\n      border: 1px solid rgba(122, 8, 36, 0.12) !important;\n      border-radius: 999px !important;\n      color: rgba(21, 8, 10, 0.7) !important;\n      background: rgba(255, 255, 255, 0.74) !important;\n      cursor: pointer !important;\n      font: inherit !important;\n      font-size: 13px !important;\n      font-weight: 850 !important;\n      transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease !important;\n    }\n\n    #km-blog-index-2026 .km-filter-btn:hover,\n    #km-blog-index-2026 .km-filter-btn.is-active {\n      color: #16080a !important;\n      border-color: rgba(122, 8, 36, 0.22) !important;\n      background: linear-gradient(135deg, #d2a647, #f4d985 56%, #d4a248) !important;\n      transform: translateY(-1px) !important;\n    }\n\n    #km-blog-index-2026 .km-blog-count {\n      margin: 0 !important;\n      color: rgba(21, 8, 10, 0.56) !important;\n      font-size: 13px !important;\n      line-height: 1.45 !important;\n      font-weight: 760 !important;\n    }\n\n    #km-blog-index-2026 .km-blog-status {\n      display: none !important;\n      margin: 0 !important;\n      padding: 18px !important;\n      border-radius: 22px !important;\n      color: rgba(21, 8, 10, 0.68) !important;\n      background: rgba(255, 255, 255, 0.72) !important;\n      font-size: 15px !important;\n      line-height: 1.55 !important;\n      font-weight: 720 !important;\n    }\n\n    #km-blog-index-2026 .km-blog-status.is-visible {\n      display: block !important;\n    }\n\n    #km-blog-index-2026 .km-blog-grid {\n      display: grid !important;\n      grid-template-columns: 1fr !important;\n      gap: 12px !important;\n      max-width: 980px !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card {\n      min-width: 0 !important;\n      min-height: auto !important;\n      padding: clamp(18px, 2vw, 24px) !important;\n      border: 1px solid rgba(84, 29, 28, 0.11) !important;\n      border-radius: 20px !important;\n      background: rgba(255, 255, 255, 0.72) !important;\n      box-shadow: 0 14px 42px rgba(28, 10, 10, 0.055) !important;\n      display: grid !important;\n      grid-template-columns: 64px minmax(0, 1fr) auto !important;\n      gap: clamp(16px, 2.4vw, 30px) !important;\n      align-items: center !important;\n      position: relative !important;\n      overflow: hidden !important;\n      opacity: 1 !important;\n      transform: none !important;\n      backdrop-filter: blur(14px) !important;\n      -webkit-backdrop-filter: blur(14px) !important;\n      transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card:hover {\n      transform: translateY(-2px) !important;\n      border-color: rgba(122, 8, 36, 0.24) !important;\n      box-shadow: 0 22px 60px rgba(28, 10, 10, 0.09) !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card.is-hidden {\n      display: none !important;\n    }\n\n    #km-blog-index-2026 .km-card-index {\n      display: inline-flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      width: 54px !important;\n      height: 54px !important;\n      border: 1px solid rgba(122, 8, 36, 0.12) !important;\n      border-radius: 50% !important;\n      color: #7a0824 !important;\n      background: rgba(255, 250, 240, 0.92) !important;\n      font-family: Georgia, \"Times New Roman\", serif !important;\n      font-size: 20px !important;\n      font-weight: 500 !important;\n      line-height: 1 !important;\n      box-shadow: inset 0 0 0 1px rgba(244, 217, 133, 0.2) !important;\n    }\n\n    #km-blog-index-2026 .km-card-meta {\n      display: flex !important;\n      flex-wrap: wrap !important;\n      gap: 7px !important;\n      margin-bottom: 10px !important;\n    }\n\n    #km-blog-index-2026 .km-card-meta span {\n      padding: 6px 9px !important;\n      border-radius: 999px !important;\n      color: #7a0824 !important;\n      background: rgba(122, 8, 36, 0.065) !important;\n      font-size: 11px !important;\n      font-weight: 850 !important;\n      line-height: 1 !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card h2 {\n      margin: 0 !important;\n      color: #13080a !important;\n      font-size: clamp(21px, 2vw, 30px) !important;\n      line-height: 1.16 !important;\n      font-weight: 920 !important;\n      letter-spacing: 0 !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card p {\n      margin: 10px 0 0 !important;\n      color: rgba(21, 8, 10, 0.62) !important;\n      font-size: 15px !important;\n      line-height: 1.6 !important;\n      font-weight: 600 !important;\n    }\n\n    #km-blog-index-2026 .km-card-action {\n      display: grid !important;\n      gap: 12px !important;\n      justify-items: end !important;\n      min-width: 128px !important;\n    }\n\n    #km-blog-index-2026 .km-read-time {\n      color: rgba(21, 8, 10, 0.46) !important;\n      font-size: 12px !important;\n      font-weight: 900 !important;\n      letter-spacing: 0.1em !important;\n      text-transform: uppercase !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card a {\n      min-height: 40px !important;\n      padding: 0 16px !important;\n      border: 1px solid rgba(122, 8, 36, 0.12) !important;\n      border-radius: 999px !important;\n      display: inline-flex !important;\n      align-items: center !important;\n      justify-content: center !important;\n      color: #7a0824 !important;\n      background: rgba(255, 255, 255, 0.72) !important;\n      text-decoration: none !important;\n      font-size: 14px !important;\n      font-weight: 950 !important;\n      white-space: nowrap !important;\n      transition: background 0.22s ease, color 0.22s ease, border-color 0.22s ease !important;\n    }\n\n    #km-blog-index-2026 .km-blog-card a:hover {\n      color: #16080a !important;\n      border-color: rgba(122, 8, 36, 0.22) !important;\n      background: linear-gradient(135deg, #d2a647, #f4d985 56%, #d4a248) !important;\n    }\n\n    #km-blog-index-2026 .km-empty-state {\n      display: none !important;\n      margin-top: 18px !important;\n      padding: 22px !important;\n      border-radius: 22px !important;\n      color: rgba(21, 8, 10, 0.68) !important;\n      background: rgba(255, 255, 255, 0.72) !important;\n      font-size: 15px !important;\n      font-weight: 720 !important;\n    }\n\n    #km-blog-index-2026 .km-empty-state.is-visible {\n      display: block !important;\n    }\n\n    @media (max-width: 980px) {\n      #km-blog-index-2026 .km-blog-head {\n        grid-template-columns: 1fr !important;\n      }\n\n      #km-blog-index-2026 .km-blog-card {\n        grid-template-columns: 52px minmax(0, 1fr) !important;\n      }\n\n      #km-blog-index-2026 .km-card-action {\n        grid-column: 2 !important;\n        display: flex !important;\n        justify-content: space-between !important;\n        justify-items: stretch !important;\n        align-items: center !important;\n        min-width: 0 !important;\n      }\n    }\n\n    @media (max-width: 640px) {\n      #km-blog-index-2026 {\n        padding: 66px 18px !important;\n      }\n\n      #km-blog-index-2026 h1 {\n        max-width: 430px !important;\n        font-size: clamp(34px, 10.2vw, 48px) !important;\n        line-height: 1.04 !important;\n      }\n\n      #km-blog-index-2026 .km-filter-panel {\n        border-radius: 22px !important;\n      }\n\n      #km-blog-index-2026 .km-filter-label {\n        width: 100% !important;\n      }\n\n      #km-blog-index-2026 .km-filter-btn {\n        flex: 1 1 auto !important;\n      }\n\n      #km-blog-index-2026 .km-blog-grid {\n        gap: 10px !important;\n      }\n\n      #km-blog-index-2026 .km-blog-card {\n        grid-template-columns: 1fr !important;\n        gap: 14px !important;\n        padding: 18px !important;\n        border-radius: 18px !important;\n      }\n\n      #km-blog-index-2026 .km-card-index {\n        width: 42px !important;\n        height: 42px !important;\n        font-size: 17px !important;\n      }\n\n      #km-blog-index-2026 .km-card-action {\n        grid-column: auto !important;\n        align-items: center !important;\n      }\n    }\n  <\/style>\n\n  <div class=\"km-blog-wrap\">\n    <header class=\"km-blog-head\">\n      <div>\n        <p class=\"km-eyebrow\">Blog<\/p>\n        <h1><span>Praktyczne teksty<\/span><span>o zarz\u0105dzaniu, awansie<\/span><span>i odpowiedzialno\u015bci.<\/span><\/h1>\n      <\/div>\n    <\/header>\n\n    <div class=\"km-filter-panel\" aria-label=\"Filtrowanie artyku\u0142\u00f3w\">\n      <div class=\"km-filter-row\" data-category-filters>\n        <span class=\"km-filter-label\">Kategorie<\/span>\n        <button class=\"km-filter-btn is-active\" type=\"button\" data-filter-type=\"category\" data-filter-value=\"all\">Wszystkie<\/button>\n      <\/div>\n\n      <div class=\"km-filter-row\" data-tag-filters>\n        <span class=\"km-filter-label\">Tagi<\/span>\n        <button class=\"km-filter-btn is-active\" type=\"button\" data-filter-type=\"tag\" data-filter-value=\"all\">Wszystkie<\/button>\n      <\/div>\n\n      <p class=\"km-blog-count\">Widoczne artyku\u0142y: <strong data-count>0<\/strong><\/p>\n    <\/div>\n\n    <p class=\"km-blog-status is-visible\" data-status>\u0141aduj\u0119 aktualne wpisy z WordPressa...<\/p>\n    <div class=\"km-blog-grid\" data-post-grid><\/div>\n    <div class=\"km-empty-state\" data-empty>Brak artyku\u0142\u00f3w dla wybranego zestawu filtr\u00f3w.<\/div>\n  <\/div>\n\n  <script>\n    (function () {\n      var root = document.getElementById(\"km-blog-index-2026\");\n      if (!root) return;\n\n      var grid = root.querySelector(\"[data-post-grid]\");\n      var status = root.querySelector(\"[data-status]\");\n      var empty = root.querySelector(\"[data-empty]\");\n      var count = root.querySelector(\"[data-count]\");\n      var categoryFilters = root.querySelector(\"[data-category-filters]\");\n      var tagFilters = root.querySelector(\"[data-tag-filters]\");\n      var active = { category: \"all\", tag: \"all\" };\n      var posts = [];\n      var categoriesById = {};\n      var tagsById = {};\n      var apiMode = \"pretty\";\n\n      function siteBase() {\n        var configured = (root.getAttribute(\"data-site-url\") || \"\").trim().replace(\/\\\/$\/, \"\");\n        if (configured) return configured;\n        if (window.location.protocol === \"file:\") return \"https:\/\/km-mentoring.uk\";\n        return window.location.origin;\n      }\n\n      function apiUrl(route, params) {\n        var base = siteBase();\n        var search = new URLSearchParams(params || {});\n        if (apiMode === \"pretty\") {\n          return base + \"\/wp-json\/wp\/v2\/\" + route.replace(\/^\\\/\/, \"\") + (search.toString() ? \"?\" + search.toString() : \"\");\n        }\n        search.set(\"rest_route\", \"\/wp\/v2\/\" + route.replace(\/^\\\/\/, \"\"));\n        return base + \"\/?\" + search.toString();\n      }\n\n      function fetchJson(route, params) {\n        var attemptedMode = apiMode;\n        return fetch(apiUrl(route, params), { credentials: \"same-origin\" }).then(function (response) {\n          if (!response.ok && attemptedMode === \"pretty\") {\n            apiMode = \"route\";\n            return fetch(apiUrl(route, params), { credentials: \"same-origin\" });\n          }\n          return response;\n        }).then(function (response) {\n          if (!response.ok) throw new Error(\"REST API error: \" + response.status);\n          return response.json();\n        });\n      }\n\n      function decodeHtml(value) {\n        var element = document.createElement(\"textarea\");\n        element.innerHTML = value || \"\";\n        return element.value;\n      }\n\n      function textFromHtml(value) {\n        var element = document.createElement(\"div\");\n        element.innerHTML = value || \"\";\n        return (element.textContent || element.innerText || \"\").replace(\/\\s+\/g, \" \").trim();\n      }\n\n      function escapeHtml(value) {\n        return String(value || \"\").replace(\/[&<>\"']\/g, function (char) {\n          return {\n            \"&\": \"&amp;\",\n            \"<\": \"&lt;\",\n            \">\": \"&gt;\",\n            '\"': \"&quot;\",\n            \"'\": \"&#039;\"\n          }[char];\n        });\n      }\n\n      function readingTime(post) {\n        var text = textFromHtml((post.content && post.content.rendered) || (post.excerpt && post.excerpt.rendered) || \"\");\n        var words = text ? text.split(\/\\s+\/).length : 400;\n        return Math.max(1, Math.ceil(words \/ 220)) + \" min czytania\";\n      }\n\n      function formatDate(post) {\n        if (!post || !post.date) return \"\";\n        try {\n          return new Intl.DateTimeFormat(\"pl-PL\", {\n            day: \"2-digit\",\n            month: \"long\",\n            year: \"numeric\"\n          }).format(new Date(post.date));\n        } catch (error) {\n          return \"\";\n        }\n      }\n\n      function categoryNames(post) {\n        return (post.categories || []).map(function (id) {\n          return categoriesById[id] && categoriesById[id].name;\n        }).filter(Boolean).filter(function (name, index, list) {\n          return shouldShowTermName(name, list);\n        });\n      }\n\n      function normalizeTermName(value) {\n        return String(value || \"\")\n          .toLowerCase()\n          .normalize(\"NFD\")\n          .replace(\/[\\u0300-\\u036f]\/g, \"\")\n          .replace(\/\u0142\/g, \"l\")\n          .replace(\/[^a-z0-9]+\/g, \"\");\n      }\n\n      function isLeadershipTerm(term) {\n        var key = normalizeTermName(term && term.name ? term.name : term);\n        return key === \"leadership\" || key === \"lidership\";\n      }\n\n      function isTeamTerm(term) {\n        return normalizeTermName(term && term.name ? term.name : term) === \"zespol\";\n      }\n\n      function shouldShowTermName(name, allNames) {\n        var hasLeadership = (allNames || []).some(isLeadershipTerm);\n        return !(hasLeadership && isTeamTerm(name));\n      }\n\n      function cleanDuplicateTerms(terms, pairedTerms) {\n        var allTerms = (terms || []).concat(pairedTerms || []);\n        var hasLeadership = allTerms.some(isLeadershipTerm);\n        var seen = {};\n\n        return (terms || []).filter(function (term) {\n          var key = normalizeTermName(term.name);\n          if (!key || seen[key]) return false;\n          seen[key] = true;\n\n          if (hasLeadership && isTeamTerm(term)) return false;\n          return true;\n        });\n      }\n\n      function renderFilterButtons(container, type, terms) {\n        var keep = container.querySelector(\".km-filter-label\").outerHTML +\n          '<button class=\"km-filter-btn is-active\" type=\"button\" data-filter-type=\"' + type + '\" data-filter-value=\"all\">Wszystkie<\/button>';\n        container.innerHTML = keep;\n\n        terms.forEach(function (term) {\n          var button = document.createElement(\"button\");\n          button.className = \"km-filter-btn\";\n          button.type = \"button\";\n          button.setAttribute(\"data-filter-type\", type);\n          button.setAttribute(\"data-filter-value\", String(term.id));\n          button.textContent = term.name;\n          container.appendChild(button);\n        });\n      }\n\n      function renderPosts() {\n        grid.innerHTML = \"\";\n\n        posts.forEach(function (post, index) {\n          var card = document.createElement(\"article\");\n          card.className = \"km-blog-card\";\n          card.setAttribute(\"data-category-ids\", (post.categories || []).join(\" \"));\n          card.setAttribute(\"data-tag-ids\", (post.tags || []).join(\" \"));\n\n          var title = decodeHtml(post.title && post.title.rendered);\n          var excerpt = textFromHtml(post.excerpt && post.excerpt.rendered);\n          var cats = categoryNames(post).slice(0, 2);\n          var date = formatDate(post);\n          if (!cats.length) cats = [\"Blog\"];\n\n          card.innerHTML =\n            '<span class=\"km-card-index\">' + String(index + 1).padStart(2, \"0\") + \"<\/span>\" +\n            '<div class=\"km-card-main\">' +\n              '<div class=\"km-card-meta\">' +\n                cats.map(function (name) { return \"<span>\" + escapeHtml(name) + \"<\/span>\"; }).join(\"\") +\n                (date ? \"<span>\" + escapeHtml(date) + \"<\/span>\" : \"\") +\n              \"<\/div>\" +\n              \"<h2>\" + escapeHtml(title) + \"<\/h2>\" +\n              \"<p>\" + escapeHtml(excerpt || \"Kliknij, aby przeczyta\u0107 aktualny wpis z bloga.\") + \"<\/p>\" +\n            \"<\/div>\" +\n            '<div class=\"km-card-action\">' +\n              '<span class=\"km-read-time\">' + escapeHtml(readingTime(post)) + \"<\/span>\" +\n              '<a href=\"' + escapeHtml(post.link) + '\">Czytaj artyku\u0142<\/a>' +\n            \"<\/div>\";\n\n          grid.appendChild(card);\n        });\n      }\n\n      function setActiveButton(clicked) {\n        var type = clicked.getAttribute(\"data-filter-type\");\n        root.querySelectorAll('.km-filter-btn[data-filter-type=\"' + type + '\"]').forEach(function (button) {\n          button.classList.toggle(\"is-active\", button === clicked);\n        });\n      }\n\n      function applyFilters() {\n        var visibleCards = [];\n        var cards = Array.prototype.slice.call(root.querySelectorAll(\".km-blog-card\"));\n\n        cards.forEach(function (card) {\n          var categoryIds = (card.getAttribute(\"data-category-ids\") || \"\").split(\" \");\n          var tagIds = (card.getAttribute(\"data-tag-ids\") || \"\").split(\" \");\n          var categoryMatch = active.category === \"all\" || categoryIds.indexOf(active.category) !== -1;\n          var tagMatch = active.tag === \"all\" || tagIds.indexOf(active.tag) !== -1;\n          var show = categoryMatch && tagMatch;\n\n          card.classList.toggle(\"is-hidden\", !show);\n          if (show) visibleCards.push(card);\n        });\n\n        if (count) count.textContent = String(visibleCards.length);\n        if (empty) empty.classList.toggle(\"is-visible\", posts.length > 0 && visibleCards.length === 0);\n      }\n\n      function bindFilters() {\n        root.querySelectorAll(\".km-filter-btn\").forEach(function (button) {\n          button.addEventListener(\"click\", function () {\n            var type = button.getAttribute(\"data-filter-type\");\n            active[type] = button.getAttribute(\"data-filter-value\");\n            setActiveButton(button);\n            applyFilters();\n          });\n        });\n      }\n\n      function termsUsedByPosts(type) {\n        var ids = {};\n        posts.forEach(function (post) {\n          (post[type] || []).forEach(function (id) {\n            ids[id] = true;\n          });\n        });\n        return ids;\n      }\n\n      Promise.all([\n        fetchJson(\"posts\", { per_page: \"100\", _embed: \"1\", orderby: \"date\", order: \"desc\" }),\n        fetchJson(\"categories\", { per_page: \"100\", hide_empty: \"true\" }),\n        fetchJson(\"tags\", { per_page: \"100\", hide_empty: \"true\" })\n      ]).then(function (result) {\n        posts = result[0] || [];\n        var categories = result[1] || [];\n        var tags = result[2] || [];\n        var usedCategories = termsUsedByPosts(\"categories\");\n        var usedTags = termsUsedByPosts(\"tags\");\n\n        categories.forEach(function (category) {\n          categoriesById[category.id] = category;\n        });\n        tags.forEach(function (tag) {\n          tagsById[tag.id] = tag;\n        });\n\n        var visibleCategories = categories.filter(function (category) {\n          return usedCategories[category.id];\n        });\n        var visibleTags = tags.filter(function (tag) {\n          return usedTags[tag.id];\n        });\n\n        renderFilterButtons(categoryFilters, \"category\", cleanDuplicateTerms(visibleCategories, visibleTags));\n        renderFilterButtons(tagFilters, \"tag\", cleanDuplicateTerms(visibleTags, visibleCategories));\n\n        renderPosts();\n        bindFilters();\n        applyFilters();\n\n        if (status) {\n          status.textContent = posts.length ? \"\" : \"Na blogu nie ma jeszcze opublikowanych wpis\u00f3w. Po dodaniu wpisu w WordPressie pojawi si\u0119 tutaj automatycznie.\";\n          status.classList.toggle(\"is-visible\", posts.length === 0);\n        }\n      }).catch(function () {\n        if (status) {\n          status.textContent = \"Nie uda\u0142o si\u0119 pobra\u0107 wpis\u00f3w z WordPressa. Sprawd\u017a, czy REST API jest dost\u0119pne oraz czy wpisy s\u0105 opublikowane.\";\n          status.classList.add(\"is-visible\");\n        }\n      });\n    })();\n  <\/script>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Blog KM Mentoring: praktyczne artyku\u0142y o zarz\u0105dzaniu, awansie, komunikacji, autorytecie lidera i rozwoju manager\u00f3w.<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-87","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/pages\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/comments?post=87"}],"version-history":[{"count":18,"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/pages\/87\/revisions"}],"predecessor-version":[{"id":314,"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/pages\/87\/revisions\/314"}],"wp:attachment":[{"href":"https:\/\/km-mentoring.uk\/en\/wp-json\/wp\/v2\/media?parent=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}