<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa dobór mocy pompy ciepła - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/dobor-mocy-pompy-ciepla/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/dobor-mocy-pompy-ciepla/</link>
	<description>Ogrzewanie podłogowe i systemy HVAC oparte na obliczeniach.</description>
	<lastBuildDate>Wed, 16 Sep 2026 06:20:53 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2026/10/Projekt-Ogrzewania-favicon-512-100x100.webp</url>
	<title>Archiwa dobór mocy pompy ciepła - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/dobor-mocy-pompy-ciepla/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Strefy klimatyczne w Polsce – wyszukiwarka miejscowości, temperatura projektowa i OZC.</title>
		<link>https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 01 Aug 2026 10:12:32 +0000</pubDate>
				<category><![CDATA[Bilans energetyczny budynku]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZC]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Strefy klimatyczne]]></category>
		<category><![CDATA[dobór mocy pompy ciepła]]></category>
		<category><![CDATA[norma pn-en 12831]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc budynku]]></category>
		<category><![CDATA[projektowa temperatura zewnętrzna]]></category>
		<category><![CDATA[przepływ masowy czynnika]]></category>
		<category><![CDATA[rozstaw rur podłogówki]]></category>
		<category><![CDATA[straty ciepła przez przenikanie]]></category>
		<category><![CDATA[strefa brzegowa podłogówki]]></category>
		<category><![CDATA[strefy klimatyczne w polsce]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6932</guid>

					<description><![CDATA[<p>Planujesz budowę domu lub wymianę instalacji grzewczej i rozważasz zakup uniwersalnego projektu z internetu? Uważaj na pułapki techniczne, które mogą zrujnować Twój budżet eksploatacyjny. Prawidłowo skalkulowane strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC to absolutny fundament, od którego zależy nie tylko komfort cieplny w czasie siarczystych mrozów, ale także sprawność i żywotność Twojej pompy ciepła. W tym kompleksowym opracowaniu inżynierskim poddajemy szczegółowej analizie wszystkie normy budowlane (PN-EN 12831 oraz PN-82/B-02403), pokazujemy bezlitosne wyliczenia hydrauliczne, algorytmy przepływu masowego oraz udostępniamy interaktywne kalkulatory, które uchronią Cię przed koszmarnymi błędami wykonawczymi.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">Strefy klimatyczne w Polsce – wyszukiwarka miejscowości, temperatura projektowa i OZC.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-climate-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #078fb3;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #e44f31;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #168267;
    --rk-red: #d7504a;
    --rk-purple: #6963ce;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #6b8191;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-climate-guide,
  #rk-climate-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-climate-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-climate-guide a:hover,
  #rk-climate-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-climate-guide button,
  #rk-climate-guide input,
  #rk-climate-guide select {
    font: inherit;
  }

  #rk-climate-guide button:focus-visible,
  #rk-climate-guide a:focus-visible,
  #rk-climate-guide summary:focus-visible,
  #rk-climate-guide input:focus-visible,
  #rk-climate-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-climate-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-climate-guide .rk-climate-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  /* Kolejność rozdziałów jest ustalona także po przetworzeniu bloku przez WordPress. */
  #rk-climate-guide .rk-climate-hero { order: 1; }
  #rk-climate-guide .rk-climate-shortcuts { order: 2; }
  #rk-climate-guide #rk-climate-answer { order: 3; }
  #rk-climate-guide #rk-climate-locator-section { order: 4; }
  #rk-climate-guide #rk-climate-interpretation { order: 5; }
  #rk-climate-guide #rk-climate-zones { order: 6; }
  #rk-climate-guide #rk-climate-ozc { order: 7; }
  #rk-climate-guide #rk-climate-floor { order: 8; }
  #rk-climate-guide #rk-climate-energy { order: 9; }
  #rk-climate-guide #rk-climate-cost-claim { order: 10; }
  #rk-climate-guide #rk-climate-boundaries { order: 11; }
  #rk-climate-guide #rk-climate-heat-pump { order: 12; }
  #rk-climate-guide #rk-climate-errors { order: 13; }
  #rk-climate-guide #rk-climate-data { order: 14; }
  #rk-climate-guide #rk-climate-final { order: 15; }
  #rk-climate-guide #rk-climate-sources { order: 16; }
  #rk-climate-guide #rk-climate-faq { order: 17; }
  #rk-climate-guide #rk-climate-author { order: 18; }

  #rk-climate-guide .rk-climate-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: var(--rk-white);
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-climate-guide .rk-climate-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-climate-guide .rk-climate-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-hero-title,
  #rk-climate-guide .rk-climate-section-title,
  #rk-climate-guide .rk-climate-cta-title,
  #rk-climate-guide .rk-climate-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-climate-guide .rk-climate-hero-title {
    font-size: clamp(2.4rem, 6vw, 5.25rem);
    margin: 0;
    max-width: 1220px;
  }

  #rk-climate-guide .rk-climate-hero-title span {
    color: #69e7f2;
  }

  #rk-climate-guide .rk-climate-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.43rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1100px;
  }

  #rk-climate-guide .rk-climate-hero-tags,
  #rk-climate-guide .rk-climate-meta,
  #rk-climate-guide .rk-climate-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-climate-guide .rk-climate-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-climate-guide .rk-climate-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-climate-guide .rk-climate-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-climate-guide .rk-climate-meta strong {
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-climate-guide .rk-climate-shortcuts-label {
    color: var(--rk-ink);
    flex: 1 0 100%;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 2px;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-climate-guide .rk-climate-shortcuts a:hover,
  #rk-climate-guide .rk-climate-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-climate-guide .rk-climate-section {
    padding: 64px 58px;
  }

  #rk-climate-guide .rk-climate-section + .rk-climate-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-climate-guide .rk-climate-section-soft {
    background: var(--rk-bg);
  }

  #rk-climate-guide .rk-climate-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-section-dark .rk-climate-eyebrow {
    color: #68e6ef;
  }

  #rk-climate-guide .rk-climate-section-title,
  #rk-climate-guide .rk-climate-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.65rem);
    margin: 0;
    max-width: 1120px;
  }

  #rk-climate-guide .rk-climate-section-dark .rk-climate-section-title {
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1140px;
  }

  #rk-climate-guide .rk-climate-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-climate-guide .rk-climate-copy strong,
  #rk-climate-guide .rk-climate-lead strong {
    color: var(--rk-ink);
  }

  #rk-climate-guide .rk-climate-section-dark .rk-climate-lead,
  #rk-climate-guide .rk-climate-section-dark .rk-climate-copy {
    color: #c8dbe2;
  }

  #rk-climate-guide .rk-climate-section-dark .rk-climate-lead strong,
  #rk-climate-guide .rk-climate-section-dark .rk-climate-copy strong {
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-climate-guide .rk-climate-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

  #rk-climate-guide .rk-climate-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-climate-guide .rk-climate-grid-2,
  #rk-climate-guide .rk-climate-grid-3,
  #rk-climate-guide .rk-climate-grid-4,
  #rk-climate-guide .rk-climate-source-grid,
  #rk-climate-guide .rk-climate-author-facts {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-climate-guide .rk-climate-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-climate-guide .rk-climate-section-soft .rk-climate-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-climate-guide .rk-climate-card-number,
  #rk-climate-guide .rk-climate-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-climate-guide .rk-climate-card h3,
  #rk-climate-guide .rk-climate-card h4 {
    color: var(--rk-ink);
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-climate-guide .rk-climate-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-climate-guide .rk-climate-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-climate-guide .rk-climate-bullets li + li {
    margin-top: 9px;
  }

  #rk-climate-guide .rk-climate-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-climate-guide .rk-climate-note p {
    margin: 0;
  }

  #rk-climate-guide .rk-climate-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-climate-guide .rk-climate-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-climate-guide .rk-climate-formula {
    background: #edf8fa;
    border: 1px solid #b4e1e7;
    border-radius: 13px;
    color: #086b82;
    font-family: Consolas, Monaco, monospace;
    font-size: 1rem;
    font-weight: 700;
    margin-top: 20px;
    padding: 15px 18px;
  }

  #rk-climate-guide .rk-climate-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-climate-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 780px;
    width: 100%;
  }

  #rk-climate-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-climate-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-climate-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-climate-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-climate-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-climate-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-climate-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-climate-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-climate-guide td strong {
    color: var(--rk-ink);
  }

  /* Lokalizator — narzędzie tylko dla tego artykułu */
  #rk-climate-guide .rk-climate-locator {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 24px;
    margin-top: 32px;
    overflow: hidden;
  }

  #rk-climate-guide .rk-climate-locator-head {
    border-bottom: 1px solid #315a70;
    padding: 29px;
  }

  #rk-climate-guide .rk-climate-locator-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-climate-guide .rk-climate-locator-head p {
    color: #bad3dc;
    margin: 10px 0 0;
    max-width: 1000px;
  }

  #rk-climate-guide .rk-climate-tool-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    padding: 28px;
  }

  #rk-climate-guide .rk-climate-controls,
  #rk-climate-guide .rk-climate-output {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    padding: 23px;
  }

  #rk-climate-guide .rk-climate-controls h4,
  #rk-climate-guide .rk-climate-output h4 {
    color: #ffffff;
    font-size: 1.1rem;
    line-height: 1.35;
    margin: 0 0 17px;
  }

  #rk-climate-guide .rk-climate-field {
    display: block;
    margin-top: 16px;
  }

  #rk-climate-guide .rk-climate-field:first-of-type {
    margin-top: 0;
  }

  #rk-climate-guide .rk-climate-field > span,
  #rk-climate-guide .rk-climate-control-label {
    color: #eaf6f8;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-climate-guide .rk-climate-input-wrap {
    position: relative;
  }

  #rk-climate-guide .rk-climate-field input,
  #rk-climate-guide .rk-climate-field select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 49px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-climate-guide .rk-climate-suggestions {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    box-shadow: 0 15px 30px rgba(7, 27, 39, 0.23);
    display: none;
    left: 0;
    margin: 6px 0 0;
    max-height: 318px;
    overflow-y: auto;
    padding: 5px;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 20;
  }

  #rk-climate-guide .rk-climate-suggestions.is-open {
    display: block;
  }

  #rk-climate-guide .rk-climate-suggestion {
    background: transparent;
    border: 0;
    border-radius: 8px;
    color: var(--rk-ink);
    cursor: pointer;
    display: block;
    padding: 10px 11px;
    text-align: left;
    width: 100%;
  }

  #rk-climate-guide .rk-climate-suggestion:hover,
  #rk-climate-guide .rk-climate-suggestion.is-active {
    background: var(--rk-cyan-soft);
    color: #075f78;
  }

  #rk-climate-guide .rk-climate-suggestion strong {
    display: block;
    font-size: 0.91rem;
  }

  #rk-climate-guide .rk-climate-suggestion small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.72rem;
    margin-top: 2px;
  }

  #rk-climate-guide .rk-climate-no-result {
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 12px;
  }

  #rk-climate-guide .rk-climate-two-fields {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-tool-help {
    color: #9fbdc8;
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 9px 0 0;
  }

  #rk-climate-guide .rk-climate-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 19px;
  }

  #rk-climate-guide .rk-climate-button,
  #rk-climate-guide .rk-climate-button-secondary {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 17px;
  }

  #rk-climate-guide .rk-climate-button {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-button:hover {
    background: var(--rk-orange-dark);
  }

  #rk-climate-guide .rk-climate-button-secondary {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-climate-guide .rk-climate-manual {
    border-top: 1px solid #315a70;
    margin-top: 20px;
    padding-top: 19px;
  }

  #rk-climate-guide .rk-climate-manual summary {
    color: #8debf2;
    cursor: pointer;
    font-size: 0.83rem;
    font-weight: 900;
  }

  #rk-climate-guide .rk-climate-manual-inner {
    margin-top: 13px;
  }

  #rk-climate-guide .rk-climate-placeholder {
    align-items: center;
    color: #b9d0d9;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 260px;
    text-align: center;
  }

  #rk-climate-guide .rk-climate-placeholder-mark {
    align-items: center;
    background: #21536a;
    border: 1px solid #467186;
    border-radius: 50%;
    color: #74e8ef;
    display: inline-flex;
    font-size: 1.65rem;
    font-weight: 900;
    height: 70px;
    justify-content: center;
    margin-bottom: 16px;
    width: 70px;
  }

  #rk-climate-guide .rk-climate-result {
    display: none;
  }

  #rk-climate-guide .rk-climate-result.is-visible {
    display: block;
  }

  #rk-climate-guide .rk-climate-result-place {
    color: #ffffff;
    font-size: clamp(1.35rem, 2.7vw, 2rem);
    font-weight: 900;
    line-height: 1.2;
    margin: 0;
  }

  #rk-climate-guide .rk-climate-result-region {
    color: #aecaD5;
    font-size: 0.83rem;
    margin: 5px 0 0;
  }

  #rk-climate-guide .rk-climate-result-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-climate-guide .rk-climate-result-tile {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-climate-guide .rk-climate-result-tile span {
    color: #9fc0cb;
    display: block;
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-result-tile strong {
    color: #ffffff;
    display: block;
    font-size: 1.32rem;
    line-height: 1.25;
    margin-top: 5px;
  }

  #rk-climate-guide .rk-climate-result-tile.is-highlight {
    background: rgba(41, 196, 215, 0.14);
    border-color: rgba(105, 231, 242, 0.45);
  }

  #rk-climate-guide .rk-climate-result-tile.is-highlight strong {
    color: #73e8f1;
  }

  #rk-climate-guide .rk-climate-result-note {
    background: #fff8e8;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 12px;
    color: #654f18;
    margin-top: 16px;
    padding: 15px 17px;
  }

  #rk-climate-guide .rk-climate-result-note p {
    margin: 0;
  }

  #rk-climate-guide .rk-climate-result-scope {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 16px;
  }

  #rk-climate-guide .rk-climate-scope-card {
    background: #ffffff;
    border-radius: 12px;
    padding: 15px;
  }

  #rk-climate-guide .rk-climate-scope-card strong {
    display: block;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-scope-card p {
    color: var(--rk-copy);
    font-size: 0.83rem;
    line-height: 1.55;
    margin: 0;
  }

  #rk-climate-guide .rk-climate-scope-card.is-use strong {
    color: var(--rk-green-dark);
  }

  #rk-climate-guide .rk-climate-scope-card.is-limit strong {
    color: #a83d2d;
  }

  #rk-climate-guide .rk-climate-scenario {
    background: #0d293a;
    border-top: 1px solid #315a70;
    padding: 28px;
  }

  #rk-climate-guide .rk-climate-scenario-head h3 {
    color: #ffffff;
    font-size: clamp(1.35rem, 2.7vw, 2rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-climate-guide .rk-climate-scenario-head p {
    color: #b8d0d9;
    margin: 8px 0 0;
  }

  #rk-climate-guide .rk-climate-scenario-controls {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-climate-guide .rk-climate-scenario-controls label span {
    color: #eaf6f8;
    display: block;
    font-size: 0.75rem;
    font-weight: 800;
    margin-bottom: 7px;
  }

  #rk-climate-guide .rk-climate-scenario-controls input,
  #rk-climate-guide .rk-climate-scenario-controls select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-climate-guide .rk-climate-scenario-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 15px;
    margin-top: 20px;
    padding: 20px;
  }

  #rk-climate-guide .rk-climate-scenario-result strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.12rem;
  }

  #rk-climate-guide .rk-climate-scenario-result p {
    color: var(--rk-copy);
    margin: 7px 0 0;
  }

  #rk-climate-guide .rk-climate-chart-wrap {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    margin-top: 24px;
    padding: 23px;
  }

  #rk-climate-guide .rk-climate-chart-title {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 900;
    margin: 0;
  }

  #rk-climate-guide .rk-climate-chart-subtitle {
    color: #aac6d0;
    font-size: 0.8rem;
    margin: 4px 0 0;
  }

  #rk-climate-guide .rk-climate-chart {
    align-items: end;
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: 24px;
    min-height: 280px;
  }

  #rk-climate-guide .rk-climate-bar-item {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: flex-end;
    text-align: center;
  }

  #rk-climate-guide .rk-climate-bar-value {
    color: #dff8fa;
    font-size: 0.78rem;
    font-weight: 900;
    margin-bottom: 7px;
  }

  #rk-climate-guide .rk-climate-bar-track {
    align-items: flex-end;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 11px 11px 5px 5px;
    display: flex;
    height: 205px;
    overflow: hidden;
  }

  #rk-climate-guide .rk-climate-bar-fill {
    background: linear-gradient(180deg, #69e7f2 0%, #1199b5 100%);
    border-radius: 9px 9px 3px 3px;
    height: var(--rk-desktop-height, 50%);
    min-height: 24px;
    width: 100%;
  }

  #rk-climate-guide .rk-climate-bar-item.is-selected .rk-climate-bar-fill {
    background: linear-gradient(180deg, #ffad50 0%, #ff6846 100%);
  }

  #rk-climate-guide .rk-climate-bar-item.is-reference .rk-climate-bar-track {
    border-color: #77e8ef;
  }

  #rk-climate-guide .rk-climate-bar-label {
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    line-height: 1.35;
    margin-top: 9px;
  }

  #rk-climate-guide .rk-climate-bar-label small {
    color: #aecaD5;
    display: block;
    font-size: 0.69rem;
    font-weight: 700;
    margin-top: 2px;
  }

  #rk-climate-guide .rk-climate-tool-disclaimer {
    color: #90adb9;
    font-size: 0.75rem;
    line-height: 1.55;
    margin: 17px 0 0;
  }

  #rk-climate-guide .rk-climate-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-climate-guide .rk-climate-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 1000px;
  }

  #rk-climate-guide .rk-climate-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 1000px;
  }

  #rk-climate-guide .rk-climate-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-climate-guide .rk-climate-cta-button:hover,
  #rk-climate-guide .rk-climate-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-climate-guide .rk-climate-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-climate-guide .rk-climate-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

  #rk-climate-guide .rk-climate-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-climate-guide .rk-climate-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-climate-guide .rk-climate-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-climate-guide .rk-climate-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-climate-guide .rk-climate-responsibility p {
    margin: 0;
  }

  #rk-climate-guide .rk-climate-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-climate-guide .rk-climate-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-climate-guide .rk-climate-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-climate-guide .rk-climate-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-climate-guide .rk-climate-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-climate-guide .rk-climate-faq details[open] summary::after {
    content: "−";
  }

  #rk-climate-guide .rk-climate-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-climate-guide .rk-climate-faq-answer p {
    margin: 0;
  }

  #rk-climate-guide .rk-climate-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-climate-guide .rk-climate-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    overflow: hidden;
  }

  #rk-climate-guide .rk-climate-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-climate-guide .rk-climate-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-climate-guide .rk-climate-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-climate-guide .rk-climate-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-climate-guide .rk-climate-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-climate-guide .rk-climate-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-climate-guide .rk-climate-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-climate-guide .rk-climate-author-main {
    padding: 37px;
  }

  #rk-climate-guide .rk-climate-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-climate-guide .rk-climate-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 24px;
    padding: 20px 22px;
  }

  #rk-climate-guide .rk-climate-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-climate-guide .rk-climate-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-climate-guide .rk-climate-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-climate-guide .rk-climate-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  #rk-climate-guide .rk-climate-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-climate-guide .rk-climate-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-climate-guide .rk-climate-result-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-climate-guide .rk-climate-scenario-controls {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 860px) {
    #rk-climate-guide .rk-climate-hero,
    #rk-climate-guide .rk-climate-section,
    #rk-climate-guide .rk-climate-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-climate-guide .rk-climate-hero::before {
      left: 28px;
    }

    #rk-climate-guide .rk-climate-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-climate-guide .rk-climate-tool-grid {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-climate-guide .rk-climate-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-climate-guide .rk-climate-author-side {
      padding-bottom: 28px;
    }
  }

  @media (max-width: 660px) {
    #rk-climate-guide .rk-climate-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-climate-guide .rk-climate-section,
    #rk-climate-guide .rk-climate-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-climate-guide .rk-climate-grid-2,
    #rk-climate-guide .rk-climate-grid-3,
    #rk-climate-guide .rk-climate-grid-4,
    #rk-climate-guide .rk-climate-source-grid,
    #rk-climate-guide .rk-climate-author-facts,
    #rk-climate-guide .rk-climate-two-fields,
    #rk-climate-guide .rk-climate-result-grid,
    #rk-climate-guide .rk-climate-result-scope,
    #rk-climate-guide .rk-climate-scenario-controls {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-climate-guide .rk-climate-locator,
    #rk-climate-guide .rk-climate-cta {
      border-radius: 17px;
    }

    #rk-climate-guide .rk-climate-locator-head,
    #rk-climate-guide .rk-climate-tool-grid,
    #rk-climate-guide .rk-climate-scenario,
    #rk-climate-guide .rk-climate-cta {
      padding: 20px;
    }

    #rk-climate-guide .rk-climate-controls,
    #rk-climate-guide .rk-climate-output,
    #rk-climate-guide .rk-climate-chart-wrap {
      padding: 18px;
    }

    #rk-climate-guide .rk-climate-tool-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-climate-guide .rk-climate-button,
    #rk-climate-guide .rk-climate-button-secondary,
    #rk-climate-guide .rk-climate-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-climate-guide .rk-climate-chart {
      display: block;
      min-height: 0;
    }

    #rk-climate-guide .rk-climate-bar-item {
      display: grid;
      gap: 8px;
      grid-template-columns: 66px minmax(0, 1fr) 88px;
      margin-top: 13px;
      text-align: left;
    }

    #rk-climate-guide .rk-climate-bar-value {
      align-self: center;
      margin: 0;
      order: 3;
      text-align: right;
    }

    #rk-climate-guide .rk-climate-bar-track {
      align-items: stretch;
      align-self: center;
      height: 25px;
      order: 2;
    }

    #rk-climate-guide .rk-climate-bar-fill {
      border-radius: 4px;
      height: 100%;
      min-height: 0;
      width: var(--rk-mobile-width, 50%);
    }

    #rk-climate-guide .rk-climate-bar-label {
      align-self: center;
      margin: 0;
      order: 1;
    }

    #rk-climate-guide .rk-climate-bar-label small {
      display: none;
    }

    #rk-climate-guide .rk-climate-table-wrap {
      overflow: visible;
    }

    #rk-climate-guide table,
    #rk-climate-guide thead,
    #rk-climate-guide tbody,
    #rk-climate-guide tr,
    #rk-climate-guide th,
    #rk-climate-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-climate-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-climate-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-climate-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-climate-guide td,
    #rk-climate-guide tbody tr td:first-child,
    #rk-climate-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-climate-guide td:last-child {
      border-bottom: 0;
    }

    #rk-climate-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-climate-guide .rk-climate-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-climate-guide .rk-climate-hero,
    #rk-climate-guide .rk-climate-section,
    #rk-climate-guide .rk-climate-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-climate-guide .rk-climate-hero::before {
      left: 18px;
    }

    #rk-climate-guide .rk-climate-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-climate-guide .rk-climate-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-climate-guide .rk-climate-hero-title {
      font-size: 2.2rem;
    }

    #rk-climate-guide .rk-climate-section-title {
      font-size: 1.9rem;
    }

    #rk-climate-guide .rk-climate-bar-item {
      grid-template-columns: 54px minmax(0, 1fr) 74px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-climate-guide *,
    #rk-climate-guide *::before,
    #rk-climate-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-climate-guide" aria-labelledby="rk-climate-visual-title">
  <div class="rk-climate-shell">
    <header class="rk-climate-hero">
      <span class="rk-climate-kicker">Lokalizacja · temperatura projektowa · OZC</span>
      <div class="rk-climate-hero-title" id="rk-climate-visual-title">Strefy klimatyczne w Polsce: <span>sprawdź miejscowość, zanim policzysz ogrzewanie</span></div>
      <p class="rk-climate-hero-lead">Strefa określa projektową temperaturę zewnętrzną, ale nie podaje gotowej mocy domu, rozstawu rur ani kosztu ogrzewania. Wyszukaj miejscowość, porównaj pięć stref i zobacz, jak lokalizacja staje się jedną z danych wejściowych do OZC.</p>
      <div class="rk-climate-hero-tags" aria-label="Zakres poradnika">
        <span>291 miejscowości</span>
        <span>strefy I–V</span>
        <span>−16°C do −24°C</span>
        <span>projektowe obciążenie cieplne</span>
        <span>podłogówka i pompa ciepła</span>
      </div>
      <div class="rk-climate-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 22 minuty</strong></span>
        <span>Aktualizacja techniczna: <strong>15 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-climate-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-climate-shortcuts-label">Na skróty</span>
      <a href="#rk-climate-answer">Szybka odpowiedź</a>
      <a href="#rk-climate-locator-section">Wyszukiwarka</a>
      <a href="#rk-climate-interpretation">Interpretacja wyniku</a>
      <a href="#rk-climate-zones">Pięć stref</a>
      <a href="#rk-climate-ozc">Strefa a OZC</a>
      <a href="#rk-climate-floor">Strefa a podłogówka</a>
      <a href="#rk-climate-energy">Moc, energia i koszt</a>
      <a href="#rk-climate-cost-claim">Czy naprawdę 6000 zł?</a>
      <a href="#rk-climate-boundaries">Granice i góry</a>
      <a href="#rk-climate-heat-pump">Pompa ciepła</a>
      <a href="#rk-climate-errors">Najczęstsze błędy</a>
      <a href="#rk-climate-data">Dane dla projektanta</a>
      <a href="#rk-climate-final">Podsumowanie</a>
      <a href="#rk-climate-sources">Źródła</a>
      <a href="#rk-climate-faq">FAQ</a>
      <a href="#rk-climate-author">Autor</a>
    </nav>

    <section class="rk-climate-section" id="rk-climate-answer">
      <span class="rk-climate-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-climate-section-title">Co naprawdę mówi strefa klimatyczna?</h2>
      <p class="rk-climate-lead"><strong>Strefa klimatyczna wskazuje projektową temperaturę zewnętrzną przyjmowaną do obliczeń obciążenia cieplnego.</strong> Jest ważna, ponieważ wpływa na różnicę temperatur między wnętrzem a otoczeniem, ale pozostaje tylko jednym z parametrów całego modelu budynku.</p>
      <div class="rk-climate-answer">
        <strong>Polski podział stosowany w obliczeniach ogrzewania obejmuje pięć stref z temperaturami od −16°C do −24°C.</strong>
        <p>Metoda obliczeniowa musi następnie uwzględnić przegrody, mostki cieplne, wentylację, straty do gruntu, temperatury pomieszczeń i sposób użytkowania. Dopiero z obciążenia każdego pomieszczenia projektuje się ogrzewanie podłogowe.</p>
      </div>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card">
          <span class="rk-climate-icon">1</span>
          <h3>Strefa daje temperaturę</h3>
          <p>Dla stref I–V przyjmuje się odpowiednio −16, −18, −20, −22 i −24°C jako warunki projektowe ogrzewania.</p>
        </article>
        <article class="rk-climate-card">
          <span class="rk-climate-icon">2</span>
          <h3>OZC daje moc</h3>
          <p>Projektowe obciążenie cieplne powstaje po połączeniu klimatu z rzeczywistą konstrukcją i wentylacją budynku.</p>
        </article>
        <article class="rk-climate-card">
          <span class="rk-climate-icon">3</span>
          <h3>Projekt daje instalację</h3>
          <p>Rozstawy, pętle, przepływy i temperaturę zasilania ustala się dla pomieszczeń, a nie dla samego numeru strefy.</p>
        </article>
      </div>
      <p class="rk-climate-copy">Jeżeli chcesz poznać pełny ciąg obliczeń, zacznij od poradników o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a> oraz o tym, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła w budynku</a>.</p>
    </section>

    <section class="rk-climate-section rk-climate-section-dark" id="rk-climate-locator-section">
      <span class="rk-climate-eyebrow">Narzędzie przygotowane dla tego poradnika</span>
      <h2 class="rk-climate-section-title">Wyszukiwarka strefy klimatycznej dla miejscowości</h2>
      <p class="rk-climate-lead">Baza obejmuje 291 miejscowości. Wpisz nazwę z polskimi znakami lub bez nich. Wynik pokaże strefę, projektową temperaturę zewnętrzną i różnicę temperatur. Dodatkowy moduł porówna ten sam budynek między strefami, ale nie będzie udawał pełnego OZC.</p>

      <div class="rk-climate-locator" id="rk-climate-locator">
        <div class="rk-climate-locator-head">
          <h3>Sprawdź warunki obliczeniowe lokalizacji</h3>
          <p>Wybierz miejscowość z listy. Dla terenów granicznych i górskich wynik otrzyma dodatkowe ostrzeżenie o konieczności sprawdzenia dokładnego położenia.</p>
        </div>

        <div class="rk-climate-tool-grid">
          <div class="rk-climate-controls">
            <h4>Dane lokalizacji i wnętrza</h4>
            <div class="rk-climate-field">
              <label class="rk-climate-control-label" for="rk-climate-city-input">Miejscowość</label>
              <div class="rk-climate-input-wrap">
                <input id="rk-climate-city-input" type="text" inputmode="search" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="rk-climate-suggestions" placeholder="np. Łódź, lodz, Suwałki">
                <div class="rk-climate-suggestions" id="rk-climate-suggestions" role="listbox" aria-label="Pasujące miejscowości"></div>
              </div>
            </div>
            <p class="rk-climate-tool-help">Wybierz pozycję z podpowiedzi. Samo wpisanie tekstu nie przypisuje strefy.</p>

            <div class="rk-climate-two-fields">
              <label class="rk-climate-field" for="rk-climate-indoor-temp">
                <span>Projektowa temperatura wnętrza</span>
                <select id="rk-climate-indoor-temp">
                  <option value="18">18°C</option>
                  <option value="19">19°C</option>
                  <option value="20" selected="">20°C</option>
                  <option value="21">21°C</option>
                  <option value="22">22°C</option>
                  <option value="23">23°C</option>
                  <option value="24">24°C</option>
                </select>
              </label>
              <label class="rk-climate-field" for="rk-climate-reference-zone">
                <span>Strefa odniesienia</span>
                <select id="rk-climate-reference-zone">
                  <option value="1">I / −16°C</option>
                  <option value="2">II / −18°C</option>
                  <option value="3" selected="">III / −20°C</option>
                  <option value="4">IV / −22°C</option>
                  <option value="5">V / −24°C</option>
                </select>
              </label>
            </div>

            <div class="rk-climate-tool-actions">
              <button class="rk-climate-button" id="rk-climate-show-result" type="button">Pokaż wynik</button>
              <button class="rk-climate-button-secondary" id="rk-climate-reset" type="button">Wyczyść</button>
            </div>

            <details class="rk-climate-manual">
              <summary>Nie ma miejscowości? Wybierz strefę ręcznie</summary>
              <div class="rk-climate-manual-inner">
                <label class="rk-climate-field" for="rk-climate-manual-zone">
                  <span>Strefa potwierdzona w dokumentacji projektu</span>
                  <select id="rk-climate-manual-zone">
                    <option value="">Wybierz</option>
                    <option value="1">Strefa I / −16°C</option>
                    <option value="2">Strefa II / −18°C</option>
                    <option value="3">Strefa III / −20°C</option>
                    <option value="4">Strefa IV / −22°C</option>
                    <option value="5">Strefa V / −24°C</option>
                  </select>
                </label>
                <button class="rk-climate-button-secondary" id="rk-climate-use-manual" type="button">Użyj wybranej strefy</button>
              </div>
            </details>
          </div>

          <div class="rk-climate-output">
            <div class="rk-climate-placeholder" id="rk-climate-placeholder">
              <span class="rk-climate-placeholder-mark" aria-hidden="true">I–V</span>
              <h4>Wybierz miejscowość</h4>
              <p>Wynik nie poda gotowej mocy domu. Pokaże właściwy punkt startowy do obliczeń.</p>
            </div>

            <div class="rk-climate-result" id="rk-climate-result" aria-live="polite">
              <p class="rk-climate-result-place" id="rk-climate-result-place">—</p>
              <p class="rk-climate-result-region" id="rk-climate-result-region">—</p>
              <div class="rk-climate-result-grid">
                <div class="rk-climate-result-tile is-highlight"><span>Strefa</span><strong id="rk-climate-result-zone">—</strong></div>
                <div class="rk-climate-result-tile"><span>Temperatura zewnętrzna</span><strong id="rk-climate-result-outdoor">—</strong></div>
                <div class="rk-climate-result-tile"><span>Temperatura wnętrza</span><strong id="rk-climate-result-indoor">—</strong></div>
                <div class="rk-climate-result-tile"><span>Różnica ΔT</span><strong id="rk-climate-result-delta">—</strong></div>
                <div class="rk-climate-result-tile"><span>Względem strefy odniesienia</span><strong id="rk-climate-result-relative">—</strong></div>
                <div class="rk-climate-result-tile"><span>Status lokalizacji</span><strong id="rk-climate-result-status">—</strong></div>
              </div>
              <div class="rk-climate-result-note" id="rk-climate-location-note"><p>—</p></div>
              <div class="rk-climate-result-scope">
                <div class="rk-climate-scope-card is-use"><strong>Do czego użyć wyniku</strong><p>Jako projektowej temperatury zewnętrznej i punktu wejścia do obliczeń obciążenia cieplnego.</p></div>
                <div class="rk-climate-scope-card is-limit"><strong>Czego wynik nie wyznacza</strong><p>Rozstawu rur, temperatury zasilania, długości pętli, mocy źródła ani rocznego rachunku.</p></div>
              </div>
            </div>
          </div>
        </div>

        <div class="rk-climate-scenario">
          <div class="rk-climate-scenario-head">
            <h3>Porównaj ten sam budynek między strefami</h3>
            <p>Jeżeli masz prawdziwy wynik OZC dla strefy odniesienia, wpisz go opcjonalnie. Narzędzie pokaże prosty scenariusz oparty na stosunku ΔT — nie nowe obliczenie OZC.</p>
          </div>
          <div class="rk-climate-scenario-controls">
            <label for="rk-climate-reference-load"><span>Znane obciążenie w strefie odniesienia [kW]</span><input id="rk-climate-reference-load" type="number" min="0.1" max="100" step="0.1" inputmode="decimal" placeholder="np. 6,0"></label>
            <label for="rk-climate-scenario-reference"><span>Strefa znanego wyniku</span><select id="rk-climate-scenario-reference"><option value="1">I / −16°C</option><option value="2">II / −18°C</option><option value="3" selected="">III / −20°C</option><option value="4">IV / −22°C</option><option value="5">V / −24°C</option></select></label>
            <label for="rk-climate-scenario-target"><span>Strefa porównywana</span><select id="rk-climate-scenario-target"><option value="1">I / −16°C</option><option value="2">II / −18°C</option><option value="3">III / −20°C</option><option value="4">IV / −22°C</option><option value="5" selected="">V / −24°C</option></select></label>
          </div>
          <div class="rk-climate-scenario-result" id="rk-climate-scenario-result" aria-live="polite">
            <strong id="rk-climate-scenario-title">Wybierz miejscowość albo ustaw strefy porównania</strong>
            <p id="rk-climate-scenario-copy">Porównanie pokaże zmianę ΔT. Moc pojawi się tylko po podaniu wyniku z rzeczywistych obliczeń.</p>
          </div>

          <div class="rk-climate-chart-wrap">
            <p class="rk-climate-chart-title">Pięć stref przy wybranej temperaturze wnętrza</p>
            <p class="rk-climate-chart-subtitle">Wysokość słupka pokazuje ΔT, nie roczne zużycie energii.</p>
            <div class="rk-climate-chart" id="rk-climate-chart" role="img" aria-label="Porównanie różnicy temperatur dla pięciu stref klimatycznych">
              <div class="rk-climate-bar-item" data-zone="1"><span class="rk-climate-bar-value">—</span><div class="rk-climate-bar-track"><div class="rk-climate-bar-fill"></div></div><span class="rk-climate-bar-label">Strefa I<small>−16°C</small></span></div>
              <div class="rk-climate-bar-item" data-zone="2"><span class="rk-climate-bar-value">—</span><div class="rk-climate-bar-track"><div class="rk-climate-bar-fill"></div></div><span class="rk-climate-bar-label">Strefa II<small>−18°C</small></span></div>
              <div class="rk-climate-bar-item" data-zone="3"><span class="rk-climate-bar-value">—</span><div class="rk-climate-bar-track"><div class="rk-climate-bar-fill"></div></div><span class="rk-climate-bar-label">Strefa III<small>−20°C</small></span></div>
              <div class="rk-climate-bar-item" data-zone="4"><span class="rk-climate-bar-value">—</span><div class="rk-climate-bar-track"><div class="rk-climate-bar-fill"></div></div><span class="rk-climate-bar-label">Strefa IV<small>−22°C</small></span></div>
              <div class="rk-climate-bar-item" data-zone="5"><span class="rk-climate-bar-value">—</span><div class="rk-climate-bar-track"><div class="rk-climate-bar-fill"></div></div><span class="rk-climate-bar-label">Strefa V<small>−24°C</small></span></div>
            </div>
          </div>
          <p class="rk-climate-tool-disclaimer">Założenie scenariusza: ten sam budynek, ta sama temperatura wewnętrzna i proporcjonalna zmiana składników zależnych od różnicy temperatur. Pełne OZC uwzględnia osobno m.in. wentylację, grunt, mostki cieplne, odzysk ciepła i warunki pomieszczeń.</p>
        </div>
      </div>

      <aside class="rk-climate-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <div class="rk-climate-cta-title">Znasz już temperaturę projektową. Teraz trzeba policzyć każde pomieszczenie</div>
        <p>Strefa nie określa strat pomieszczeń, rozstawu rur, długości pętli, przepływów ani temperatury zasilania. W indywidualnym projekcie łączymy lokalizację z konstrukcją budynku, wentylacją, przeszkleniami i okładzinami podłogowymi.</p>
        <a class="rk-climate-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres indywidualnego projektu podłogówki</a>
        <small class="rk-climate-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-climate-section" id="rk-climate-interpretation">
      <span class="rk-climate-eyebrow">Od wyniku narzędzia do projektu</span>
      <h2 class="rk-climate-section-title">Jak interpretować wynik wyszukiwarki?</h2>
      <p class="rk-climate-lead">Wynik odpowiada na jedno konkretne pytanie: <strong>jaką projektową temperaturę zewnętrzną przyjąć jako punkt wyjścia dla wskazanej lokalizacji?</strong> Nie jest oceną energetyczną domu i nie zastępuje obliczeń pomieszczenie po pomieszczeniu.</p>
      <div class="rk-climate-grid-4">
        <article class="rk-climate-card"><span class="rk-climate-card-number">KROK 1</span><h3>Lokalizacja</h3><p>Wybór miejscowości przypisuje orientacyjną strefę i temperaturę zewnętrzną. Granice i obszary górskie wymagają dokładniejszej kontroli.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">KROK 2</span><h3>Temperatura wnętrza</h3><p>Inną temperaturę projektową przyjmuje się dla salonu, inną można przyjąć dla łazienki, garażu lub pomieszczenia technicznego.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">KROK 3</span><h3>Różnica ΔT</h3><p>Różnica między temperaturą pomieszczenia a temperaturą zewnętrzną wpływa na straty przez przegrody i wentylację.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">KROK 4</span><h3>Pełne OZC</h3><p>Dopiero geometria, współczynniki U, mostki, grunt i wentylacja zamieniają warunki klimatyczne w wynik wyrażony w watach.</p></article>
      </div>
      <div class="rk-climate-formula">idea zależności: Φ<sub>projekt</sub> ≈ H × (θ<sub>wew</sub> − θ<sub>zew</sub>)</div>
      <p class="rk-climate-copy">Wzór pokazuje kierunek wpływu temperatury, gdzie H jest łączną charakterystyką strat w W/K. Nie jest kompletnym algorytmem OZC. W prawidłowych obliczeniach różne drogi przepływu ciepła i wentylację analizuje się zgodnie z ich własnymi warunkami.</p>
      <div class="rk-climate-note rk-climate-note-good"><p><strong>Najważniejsza interpretacja:</strong> wynik −20°C nie znaczy, że dom „potrzebuje określonej mocy”. Znaczy, że jego moc projektową trzeba policzyć dla właściwych warunków zewnętrznych.</p></div>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-zones">
      <span class="rk-climate-eyebrow">Podstawowe dane porównawcze</span>
      <h2 class="rk-climate-section-title">Pięć stref klimatycznych i temperatury projektowe</h2>
      <p class="rk-climate-lead">W stosowanym w Polsce podziale do obliczeń ogrzewania kolejne strefy różnią się o 2 K. Poniższe porównanie pokazuje również ΔT przy temperaturze pomieszczenia 20°C.</p>
      <div class="rk-climate-table-wrap">
        <table>
          <thead><tr><th>Strefa</th><th>Temperatura zewnętrzna</th><th>ΔT przy 20°C</th><th>Zmiana ΔT względem poprzedniej</th><th>Znaczenie</th></tr></thead>
          <tbody>
            <tr><td data-label="Strefa"><strong>I</strong></td><td data-label="Temperatura zewnętrzna">−16°C</td><td data-label="ΔT przy 20°C">36 K</td><td data-label="Zmiana">punkt odniesienia</td><td data-label="Znaczenie">Najłagodniejszy zestaw warunków projektowych spośród pięciu stref.</td></tr>
            <tr><td data-label="Strefa"><strong>II</strong></td><td data-label="Temperatura zewnętrzna">−18°C</td><td data-label="ΔT przy 20°C">38 K</td><td data-label="Zmiana">około +5,6%</td><td data-label="Znaczenie">O 2 K większa różnica temperatur niż w strefie I.</td></tr>
            <tr><td data-label="Strefa"><strong>III</strong></td><td data-label="Temperatura zewnętrzna">−20°C</td><td data-label="ΔT przy 20°C">40 K</td><td data-label="Zmiana">około +5,3%</td><td data-label="Znaczenie">Częsty punkt odniesienia dla dużej części kraju, ale nie wartość domyślna dla każdej lokalizacji.</td></tr>
            <tr><td data-label="Strefa"><strong>IV</strong></td><td data-label="Temperatura zewnętrzna">−22°C</td><td data-label="ΔT przy 20°C">42 K</td><td data-label="Zmiana">około +5,0%</td><td data-label="Znaczenie">Surowsze warunki projektowe, spotykane m.in. na części obszarów wschodnich i północno-wschodnich.</td></tr>
            <tr><td data-label="Strefa"><strong>V</strong></td><td data-label="Temperatura zewnętrzna">−24°C</td><td data-label="ΔT przy 20°C">44 K</td><td data-label="Zmiana">około +4,8%</td><td data-label="Znaczenie">Najniższa temperatura projektowa; dotyczy wybranych obszarów północno-wschodnich i górskich.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-climate-copy">Procenty opisują zmianę samej różnicy temperatur względem poprzedniej strefy. Nie są gotowym procentem wzrostu całkowitego OZC, zużycia energii ani rachunku. Więcej o podstawie obliczeniowej znajdziesz w poradniku o <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normie PN-EN 12831</a>.</p>
    </section>

    <section class="rk-climate-section" id="rk-climate-ozc">
      <span class="rk-climate-eyebrow">Temperatura jest wejściem, nie wynikiem</span>
      <h2 class="rk-climate-section-title">Jak strefa klimatyczna wpływa na projektowe obciążenie cieplne OZC?</h2>
      <p class="rk-climate-lead">Przy niezmienionym budynku niższa projektowa temperatura zewnętrzna zwiększa część strat zależną od różnicy temperatur. Skala zmiany zależy jednak od konstrukcji domu i udziału poszczególnych dróg strat.</p>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card"><span class="rk-climate-card-number">PRZENIKANIE</span><h3>Ściany, dach i okna</h3><p>Powierzchnia, współczynnik U i różnica temperatur decydują o stratach przez przegrody zewnętrzne. Każda przegroda jest liczona osobno.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">POWIETRZE</span><h3>Wentylacja i infiltracja</h3><p>Strumień powietrza, szczelność, odzysk ciepła i warunki pracy wentylacji wpływają na obciążenie wentylacyjne.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">POZOSTAŁE</span><h3>Grunt i mostki cieplne</h3><p>Podłogi na gruncie nie są zwykłą ścianą zewnętrzną, a mostki powinny wynikać z geometrii i współczynników liniowych.</p></article>
      </div>
      <p class="rk-climate-copy">Dlatego uproszczone mnożenie jednej powierzchni przez średni współczynnik U i ΔT może być przykładem edukacyjnym, lecz nie powinno być nazywane pełnym OZC. Rzetelny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a> rozdziela elementy oraz pokazuje wynik całego budynku i poszczególnych pomieszczeń.</p>
      <div class="rk-climate-note rk-climate-note-bad"><p><strong>Nie dodajemy automatycznego „normowego zapasu 10%”.</strong> Dodatkowa moc na ponowne nagrzewanie lub inne warunki powinna wynikać z przyjętej metody, sposobu użytkowania i jawnego założenia, a nie ze stałego narzutu w każdym domu.</p></div>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-floor">
      <span class="rk-climate-eyebrow">Od pomieszczenia do pętli</span>
      <h2 class="rk-climate-section-title">Czy strefa klimatyczna wyznacza rozstaw rur podłogówki?</h2>
      <p class="rk-climate-lead"><strong>Nie bezpośrednio.</strong> Strefa wpływa na warunki obliczeniowe budynku. Rozstaw rur wynika dopiero z wymaganej mocy konkretnego pomieszczenia, powierzchni czynnej, okładziny i parametrów wody.</p>
      <div class="rk-climate-grid-4">
        <article class="rk-climate-card"><span class="rk-climate-card-number">W/m²</span><h3>Obciążenie pomieszczenia</h3><p>Ten sam dom może mieć salon o małym obciążeniu i łazienkę wymagającą większej mocy jednostkowej.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">A</span><h3>Powierzchnia czynna</h3><p>Zabudowa stała i wyłączone pola zmniejszają powierzchnię, z której podłoga może oddać potrzebne ciepło.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">Rλ,B</span><h3>Opór wykończenia</h3><p>Płytki, winyl, panele i drewno stawiają różny opór, więc przy tych samych rurach dają inną moc powierzchniową.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">θm</span><h3>Temperatura wody</h3><p>Wydajność zależy od średniej temperatury czynnika względem temperatury pomieszczenia, a nie od numeru strefy.</p></article>
      </div>
      <p class="rk-climate-copy">Z tego powodu nie wpisujemy w wyszukiwarce reguł „strefa I = 15 cm” i „strefa V = 10 cm”. Zasady doboru pokazuje osobny poradnik o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur 10 czy 15 cm</a>, natomiast ograniczenia wydajności i temperatur powierzchni opisuje <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 w ogrzewaniu podłogowym</a>.</p>
      <div class="rk-climate-note"><p><strong>Przykład:</strong> dobrze izolowany dom w strefie V może potrzebować mniejszej mocy z podłogi niż słabo izolowany dom w strefie II. Numer strefy nie zastępuje danych budynku.</p></div>
    </section>

    <section class="rk-climate-section" id="rk-climate-energy">
      <span class="rk-climate-eyebrow">Trzy wyniki, trzy zastosowania</span>
      <h2 class="rk-climate-section-title">Moc w kW, energia w kWh i koszt w złotych to nie to samo</h2>
      <p class="rk-climate-lead">Projektowa temperatura zewnętrzna służy przede wszystkim do wyznaczenia mocy potrzebnej w warunkach obliczeniowych. Roczne zużycie i koszt wymagają osobnej analizy sezonu.</p>
      <div class="rk-climate-table-wrap">
        <table>
          <thead><tr><th>Wielkość</th><th>Jednostka</th><th>Na jakie pytanie odpowiada?</th><th>Czego nie wolno z niej wyciągać?</th></tr></thead>
          <tbody>
            <tr><td data-label="Wielkość"><strong>Projektowe obciążenie</strong></td><td data-label="Jednostka">W lub kW</td><td data-label="Pytanie">Ile mocy potrzeba w określonych warunkach projektowych?</td><td data-label="Ograniczenie">Nie jest liczbą kilowatogodzin zużywanych przez cały sezon.</td></tr>
            <tr><td data-label="Wielkość"><strong>Energia użytkowa</strong></td><td data-label="Jednostka">kWh/rok</td><td data-label="Pytanie">Ile ciepła budynek potrzebuje w analizowanym roku lub roku standardowym?</td><td data-label="Ograniczenie">Nie jest automatycznie energią kupioną przez pompę, kocioł lub grzałkę.</td></tr>
            <tr><td data-label="Wielkość"><strong>Energia kupiona</strong></td><td data-label="Jednostka">kWh prądu, gazu lub paliwa</td><td data-label="Pytanie">Ile nośnika potrzebuje źródło przy określonej sprawności lub SCOP?</td><td data-label="Ograniczenie">Nie określa kosztu bez ceny, taryfy i opłat stałych.</td></tr>
            <tr><td data-label="Wielkość"><strong>Koszt eksploatacji</strong></td><td data-label="Jednostka">zł/rok</td><td data-label="Pytanie">Ile kosztuje energia, opłaty stałe, serwis i ewentualna praca źródła szczytowego?</td><td data-label="Ograniczenie">Nie może wynikać wyłącznie z numeru strefy.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-climate-copy">Jeżeli chcesz sprawdzić roczne warianty, użyj narzędzia, które rozdziela moc od energii i kosztu. Nie przeliczaj mocy projektowej przez arbitralną liczbę godzin sezonu. Temat ten rozwija <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">porównanie kosztów ogrzewania domu</a>.</p>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-cost-claim">
      <span class="rk-climate-eyebrow">Weryfikacja mocnej obietnicy</span>
      <h2 class="rk-climate-section-title">Czy błąd o jedną strefę naprawdę kosztuje 6000 zł rocznie?</h2>
      <p class="rk-climate-lead"><strong>Nie istnieje jedna kwota przypisana do pomyłki strefy.</strong> Skutek może być mały, istotny albo bardzo kosztowny — zależnie od budynku, źródła, punktu biwalentnego, taryfy, sterowania i faktycznego przebiegu zimy.</p>
      <div class="rk-climate-grid-2">
        <article class="rk-climate-card">
          <span class="rk-climate-card-number">1 STREFA</span>
          <h3>Sąsiednie strefy różnią się o 2 K</h3>
          <p>Przy 20°C wewnątrz przejście o jeden stopień podziału zmienia ΔT w pokazanych parach o około 4,8–5,6%. Nie oznacza automatycznie identycznej zmiany całego OZC ani rachunku.</p>
        </article>
        <article class="rk-climate-card">
          <span class="rk-climate-card-number">II → V</span>
          <h3>To przeskok o trzy strefy</h3>
          <p>ΔT rośnie z 38 K do 44 K, czyli o około 15,8%. To nadal porównanie warunków projektowych, a nie rocznego zużycia energii.</p>
        </article>
      </div>
      <div class="rk-climate-answer">
        <strong>Przykład edukacyjny: 6,0 kW w strefie II nie staje się automatycznie 9,0 kW w strefie V.</strong>
        <p>Przy prostym skalowaniu proporcjonalnym do ΔT otrzymalibyśmy 6,0 × 44/38 ≈ 6,95 kW. Pełny wynik może być inny, ponieważ nie wszystkie składniki obciążenia zachowują się jak jeden wspólny współczynnik.</p>
      </div>
      <p class="rk-climate-copy">Kwota 6000 zł może wystąpić w określonym scenariuszu, np. przy długiej pracy grzałki elektrycznej i niekorzystnej taryfie, ale wymaga pokazania czasu pracy, mocy grzałki, cen energii i warunków sezonu. Bez tych założeń byłaby reklamową liczbą, a nie wynikiem technicznym.</p>
    </section>

    <section class="rk-climate-section" id="rk-climate-boundaries">
      <span class="rk-climate-eyebrow">Gdzie prosta wyszukiwarka ma granice</span>
      <h2 class="rk-climate-section-title">Miejscowości graniczne, tereny górskie i lokalny mikroklimat</h2>
      <p class="rk-climate-lead">Nazwa miasta nie zawsze wystarcza do odpowiedzialnego przypisania warunków. W rozległych gminach znaczenie mogą mieć dokładne położenie, wysokość, ekspozycja terenu i sąsiedztwo granicy stref.</p>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card"><span class="rk-climate-icon">↔</span><h3>Granica stref</h3><p>Dwie pobliskie miejscowości mogą leżeć po przeciwnych stronach linii podziału. Nie należy przenosić wyniku tylko dlatego, że odległość wydaje się mała.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-icon">▲</span><h3>Wysokość i ukształtowanie</h3><p>W górach różnica wysokości między centrum miejscowości a działką może być istotniejsza niż sama nazwa pocztowa.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-icon">✓</span><h3>Dokumentacja projektu</h3><p>Przy wątpliwości pierwszeństwo ma zweryfikowana lokalizacja budynku i krajowe dane przyjęte przez projektanta, nie podpowiedź internetowa.</p></article>
      </div>
      <div class="rk-climate-note"><p><strong>Dlatego baza nie zgaduje wyniku dla każdej polskiej wsi.</strong> Jeżeli miejscowości nie ma na liście albo wynik oznaczono jako wymagający kontroli, wybierz strefę ręcznie dopiero po sprawdzeniu dokumentacji.</p></div>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-heat-pump">
      <span class="rk-climate-eyebrow">Źródło ciepła pracuje w konkretnych warunkach</span>
      <h2 class="rk-climate-section-title">Strefa klimatyczna, pompa ciepła i punkt biwalentny</h2>
      <p class="rk-climate-lead">Niższa temperatura projektowa może jednocześnie zwiększać obciążenie budynku i zmniejszać dostępną moc powietrznej pompy ciepła. Dlatego nie dobiera się urządzenia wyłącznie z jednego wyniku „moc domu”.</p>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card"><span class="rk-climate-card-number">A</span><h3>Krzywa obciążenia budynku</h3><p>Pokazuje, jak rośnie zapotrzebowanie na moc wraz ze spadkiem temperatury zewnętrznej.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">B</span><h3>Charakterystyka pompy</h3><p>Dostępna moc i COP zależą od temperatury powietrza oraz wymaganej temperatury wody grzewczej.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">A × B</span><h3>Punkt biwalentny</h3><p>Miejsce przecięcia charakterystyk pomaga ocenić, kiedy i w jakim zakresie może być potrzebne źródło szczytowe.</p></article>
      </div>
      <p class="rk-climate-copy">Dopiero to zestawienie pozwala ocenić wpływ grzałki na koszty. Zobacz także, jak wygląda <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a> oraz dlaczego <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania</a> pomaga utrzymać korzystne warunki pracy źródła.</p>
      <div class="rk-climate-note rk-climate-note-bad"><p><strong>Strefa nie wybiera typoszeregu urządzenia.</strong> Przejście z 6 kW bezpośrednio na 9 kW tylko na podstawie numeru strefy pomija charakterystykę budynku i konkretnego modelu pompy.</p></div>
    </section>

    <section class="rk-climate-section" id="rk-climate-errors">
      <span class="rk-climate-eyebrow">Błędy, które zmieniają wynik albo jego znaczenie</span>
      <h2 class="rk-climate-section-title">Najczęstsze błędy przy korzystaniu ze stref klimatycznych</h2>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 1</span><h3>Domyślna strefa III</h3><p>Przyjmowanie −20°C bez sprawdzenia działki może zawyżyć albo zaniżyć warunki wejściowe.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 2</span><h3>Moc z samej lokalizacji</h3><p>Dwa domy stojące obok siebie mogą mieć radykalnie różne obciążenie przez powierzchnię, izolację i wentylację.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 3</span><h3>Rozstaw przypisany do strefy</h3><p>Numer strefy nie zna powierzchni czynnej, okładziny ani strat konkretnej łazienki, salonu czy sypialni.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 4</span><h3>Stały zapas procentowy</h3><p>Uniwersalny narzut bez opisania powodu zaciemnia wynik i może prowadzić do przewymiarowania.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 5</span><h3>Moc pomnożona przez sezon</h3><p>Projektowe kW nie działają przez wszystkie godziny zimy. Takie mnożenie nie daje rocznego zużycia.</p></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">BŁĄD 6</span><h3>Brak kontroli działki</h3><p>W górach i przy granicach stref ogólne przypisanie do miasta może nie opisywać dokładnego położenia budynku.</p></article>
      </div>
      <p class="rk-climate-copy">Do wstępnej edukacji można wykorzystać <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła budynku</a>, ale wyniki do projektu podłogówki powinny uwzględniać pomieszczenia, powierzchnie i warunki rzeczywistego budynku.</p>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-data">
      <span class="rk-climate-eyebrow">Od adresu inwestycji do obliczeń</span>
      <h2 class="rk-climate-section-title">Jakie dane są potrzebne projektantowi oprócz strefy?</h2>
      <p class="rk-climate-lead">Adres i strefa rozpoczynają obliczenia. Wiarygodny projekt wymaga jednak kompletnego opisu bryły, przegród, wentylacji, pomieszczeń i planowanego wykończenia podłóg.</p>
      <div class="rk-climate-grid-3">
        <article class="rk-climate-card"><span class="rk-climate-card-number">BUDYNEK</span><h3>Geometria i przegrody</h3><ul class="rk-climate-bullets"><li>rzuty, przekroje i wymiary,</li><li>warstwy ścian, dachu i podłogi,</li><li>okna, drzwi i przeszklenia,</li><li>strefy ogrzewane i nieogrzewane.</li></ul></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">POWIETRZE</span><h3>Wentylacja i temperatury</h3><ul class="rk-climate-bullets"><li>rodzaj wentylacji,</li><li>strumienie powietrza,</li><li>odzysk ciepła i bilans nawiewu,</li><li>temperatury projektowe pomieszczeń.</li></ul></article>
        <article class="rk-climate-card"><span class="rk-climate-card-number">PODŁOGA</span><h3>Układ instalacji</h3><ul class="rk-climate-bullets"><li>powierzchnie wyłączone z grzania,</li><li>rodzaj i opór okładzin,</li><li>lokalizacja rozdzielaczy,</li><li>źródło i zakładane parametry wody.</li></ul></article>
      </div>
      <p class="rk-climate-copy">Na tej podstawie można ocenić, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">czy podłogówka może być jedynym źródłem ciepła</a>, dobrać <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> oraz sprawdzić wpływ <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładziny podłogowej na wydajność</a>.</p>
    </section>

    <section class="rk-climate-section rk-climate-final" id="rk-climate-final">
      <span class="rk-climate-eyebrow">Najważniejszy wniosek</span>
      <h2 class="rk-climate-section-title">Sprawdź strefę, ale projektuj cały budynek</h2>
      <p class="rk-climate-lead">Prawidłowa temperatura projektowa chroni obliczenia przed błędem wejściowym. Nie zastępuje jednak modelu strat, bilansu pomieszczeń ani hydrauliki ogrzewania podłogowego.</p>
      <div class="rk-climate-cta">
        <div class="rk-climate-cta-title">Od temperatury zewnętrznej do rozstawów, pętli i przepływów</div>
        <p>Indywidualny projekt łączy OZC pomieszczeń z powierzchnią czynną, okładzinami, temperaturą zasilania i oporami hydraulicznymi. Wykonawca otrzymuje dane potrzebne do ułożenia oraz wyregulowania instalacji.</p>
        <a class="rk-climate-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-climate-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-climate-section" id="rk-climate-sources">
      <span class="rk-climate-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-climate-section-title">Oficjalne źródła i zakres obliczeń</h2>
      <p class="rk-climate-lead">Źródła porządkują metodę obliczania projektowego obciążenia, wymagania budowlane i zasady projektowania systemów płaszczyznowych. Pełne normy należy stosować w aktualnym wydaniu wraz z właściwymi danymi krajowymi.</p>
      <div class="rk-climate-source-grid">
        <article class="rk-climate-source-card"><a href="https://www.pkn.pl/" target="_blank" rel="nofollow noopener noreferrer">Polski Komitet Normalizacyjny</a><p>Oficjalny portal do wyszukiwania aktualnych Polskich Norm i informacji o ich statusie.</p></article>
        <article class="rk-climate-source-card"><a href="https://repo.pw.edu.pl/info/article/WUT7c194b7443134803a9d035c593eba8a2/Norma%2BPN-EN%2B12831-1%3A2017-08.%2BKluczowe%2Bzmiany%2Bw%2Bmetodyce%2Bobliczania%2Bobci%C4%85%C5%BCenia%2Bcieplnego%2Bbudynk%C3%B3w%2B" target="_blank" rel="nofollow noopener noreferrer">Politechnika Warszawska — PN-EN 12831-1</a><p>Opracowanie dotyczące zmian w metodyce obliczania projektowego obciążenia cieplnego budynków.</p></article>
        <article class="rk-climate-source-card"><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Dziennik Ustaw — Warunki Techniczne</a><p>Oficjalny tekst przepisów określających wymagania techniczne dla budynków i ich usytuowania.</p></article>
        <article class="rk-climate-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021</a><p>Oficjalna karta normy dotyczącej określania projektowej mocy systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-climate-source-card"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1:2017</a><p>Oficjalna karta metody obliczania potrzeb energetycznych budynku oraz temperatur wewnętrznych.</p></article>
        <article class="rk-climate-source-card"><a href="https://energy.ec.europa.eu/topics/energy-efficiency/energy-efficient-buildings/energy-performance-buildings-directive_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — charakterystyka energetyczna budynków</a><p>Oficjalne informacje o ramach oceny charakterystyki energetycznej budynków w Unii Europejskiej.</p></article>
      </div>
      <div class="rk-climate-responsibility"><p><strong>Zakres narzędzia:</strong> wyszukiwarka jest pomocą edukacyjną opartą na pięciostrefowym podziale stosowanym w obliczeniach ogrzewania. Nie stanowi dokumentu normowego, mapy geodezyjnej, pełnego OZC, doboru pompy ciepła ani projektu instalacji. Dla działek przy granicy stref i na terenach górskich należy potwierdzić dokładne warunki lokalizacji.</p></div>
    </section>

    <section class="rk-climate-section rk-climate-section-soft" id="rk-climate-faq">
      <span class="rk-climate-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2 class="rk-climate-section-title">FAQ — strefy klimatyczne, OZC i ogrzewanie podłogowe</h2>
      <div class="rk-climate-faq">
        <details><summary>Ile stref klimatycznych stosuje się w Polsce do obliczeń ogrzewania?</summary><div class="rk-climate-faq-answer"><p>Stosowany podział obejmuje pięć stref oznaczonych od I do V. Odpowiadają im projektowe temperatury zewnętrzne od −16°C do −24°C, zmieniające się co 2 K.</p></div></details>
        <details><summary>Jakie temperatury odpowiadają strefom I–V?</summary><div class="rk-climate-faq-answer"><p>Strefa I to −16°C, II −18°C, III −20°C, IV −22°C, a V −24°C. Są to temperatury projektowe używane jako dane wejściowe, a nie średnie temperatury zimy.</p></div></details>
        <details><summary>Czy wyszukiwarka działa bez polskich znaków?</summary><div class="rk-climate-faq-answer"><p>Tak. Można wpisać na przykład „lodz”, „swinoujscie” lub „bialystok”. Skrypt normalizuje znaki i wyświetla poprawną nazwę miejscowości w podpowiedziach.</p></div></details>
        <details><summary>Co zrobić, jeśli miejscowości nie ma w bazie?</summary><div class="rk-climate-faq-answer"><p>Nie należy wybierać przypadkowego pobliskiego miasta. Sprawdź strefę w dokumentacji lokalizacji lub u projektanta, a następnie użyj ręcznego wyboru strefy w narzędziu.</p></div></details>
        <details><summary>Czy strefa klimatyczna określa dokładne OZC domu?</summary><div class="rk-climate-faq-answer"><p>Nie. Strefa podaje projektową temperaturę zewnętrzną. OZC zależy dodatkowo od powierzchni i parametrów przegród, mostków cieplnych, wentylacji, gruntu oraz temperatur poszczególnych pomieszczeń.</p></div></details>
        <details><summary>Czy w strefie V rury zawsze trzeba układać co 10 cm?</summary><div class="rk-climate-faq-answer"><p>Nie. Rozstaw wynika z obciążenia danego pomieszczenia, powierzchni czynnej, oporu okładziny i temperatury wody. Dobrze izolowany dom w strefie V nie musi mieć wszędzie mniejszego rozstawu niż słabo izolowany dom w strefie II.</p></div></details>
        <details><summary>Czy strefa określa temperaturę zasilania podłogówki?</summary><div class="rk-climate-faq-answer"><p>Nie. Temperatura zasilania wynika z potrzebnej mocy, konstrukcji podłogi, rozstawu, okładziny i ograniczeń temperatury powierzchni. Strefa wpływa na obciążenie, ale nie daje gotowej nastawy.</p></div></details>
        <details><summary>Czy błąd o jedną strefę zawsze kosztuje 6000 zł rocznie?</summary><div class="rk-climate-faq-answer"><p>Nie. Nie istnieje stała kwota. Koszt zależy od skali błędu w obciążeniu, charakterystyki źródła, pracy grzałki, taryfy, cen energii, regulacji i rzeczywistej pogody w sezonie.</p></div></details>
        <details><summary>Jaka jest różnica między strefą II a V?</summary><div class="rk-climate-faq-answer"><p>Temperatura projektowa zmienia się z −18°C na −24°C, czyli o 6 K. Przy 20°C wewnątrz ΔT rośnie z 38 do 44 K, co oznacza wzrost o około 15,8% dla składnika proporcjonalnego do ΔT.</p></div></details>
        <details><summary>Czy projektowa temperatura zewnętrzna to najniższa temperatura w historii?</summary><div class="rk-climate-faq-answer"><p>Nie. To parametr obliczeniowy przyjmowany według danych klimatycznych i metody projektowej. Nie musi być równy rekordowi meteorologicznemu ani średniej minimalnej temperaturze sezonu.</p></div></details>
        <details><summary>Jak strefa wpływa na dobór pompy ciepła?</summary><div class="rk-climate-faq-answer"><p>Wpływa na obciążenie budynku przy niskiej temperaturze, ale urządzenie dobiera się także z jego charakterystyki mocy, COP, temperatury zasilania, punktu biwalentnego i przyjętej strategii źródła szczytowego.</p></div></details>
        <details><summary>Czy wynik dla centrum miasta pasuje do działki w górach?</summary><div class="rk-climate-faq-answer"><p>Nie zawsze. Wysokość, ekspozycja i położenie względem granicy stref mogą wymagać dokładniejszej weryfikacji. Dlatego lokalizacje górskie w bazie otrzymują ostrzeżenie.</p></div></details>
        <details><summary>Czy projektową temperaturę wnętrza ustala się jednakowo dla całego domu?</summary><div class="rk-climate-faq-answer"><p>Nie musi tak być. Łazienka może mieć wyższą temperaturę projektową niż sypialnia, a garaż niższą niż część mieszkalna. Pełne OZC uwzględnia warunki każdego pomieszczenia.</p></div></details>
        <details><summary>Czy ze strefy można obliczyć roczne zużycie energii?</summary><div class="rk-climate-faq-answer"><p>Nie z samej strefy. Roczna energia wymaga danych godzinowych lub miesięcznych, charakterystyki budynku, zysków, wentylacji, regulacji i warunków całego sezonu. Projektowe kW nie są rocznymi kWh.</p></div></details>
      </div>
    </section>

    <section class="rk-climate-author" id="rk-climate-author">
      <span class="rk-climate-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-climate-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-climate-author-layout">
        <aside class="rk-climate-author-side">
          <div class="rk-climate-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-climate-author-name">Robert Kucharski</div>
          <p class="rk-climate-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-climate-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-b8b906199/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-climate-author-main">
          <div class="rk-climate-author-quote">„Moim zdaniem strefa klimatyczna jest ważną daną wejściową, ale sama nie dobiera pompy ciepła ani rozstawu rur. O jakości projektu decyduje dopiero połączenie lokalizacji z obciążeniem każdego pomieszczenia i hydrauliką instalacji.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W publikacjach rozdziela projektową moc w kW, roczne zapotrzebowanie w kWh i rzeczywisty koszt eksploatacji.</p>
          <p>W tym poradniku zweryfikował zależność między temperaturą projektową, OZC, wydajnością podłogi i charakterystyką źródła. Wyszukiwarka została celowo ograniczona do parametru, który można uczciwie wyprowadzić z przypisania strefy; pozostałe wartości wymagają danych budynku.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-climate-author-facts">
            <div class="rk-climate-author-fact"><strong>Praktyka projektowa</strong>OZC pomieszczeń, podłogówka, przepływy i opory hydrauliczne</div>
            <div class="rk-climate-author-fact"><strong>Metoda</strong>Jawne dane wejściowe, rozdzielenie mocy od energii i kontrola ograniczeń</div>
            <div class="rk-climate-author-fact"><strong>Zakres aktualizacji</strong>Treść, narzędzie, źródła i FAQ sprawdzone 15 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "projektowe obciążenie cieplne OZC",
        "strefy klimatyczne w Polsce",
        "ogrzewanie podłogowe",
        "pompy ciepła",
        "hydraulika instalacji grzewczych",
        "PN-EN 12831"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-b8b906199/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.webp",
      "width": 1050,
      "height": 1050,
      "caption": "Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Strefy klimatyczne w Polsce", "item": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webpage",
      "url": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/",
      "name": "Strefy klimatyczne w Polsce – wyszukiwarka miejscowości, temperatura projektowa i OZC",
      "description": "Wyszukiwarka stref klimatycznych i wyjaśnienie wpływu projektowej temperatury zewnętrznej na OZC, ogrzewanie podłogowe i pompę ciepła.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#primaryimage" },
      "datePublished": "2026-08-01T10:12:32+00:00",
      "dateModified": "2026-09-15T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webpage" },
      "headline": "Strefy klimatyczne w Polsce – wyszukiwarka miejscowości, temperatura projektowa i OZC",
      "description": "Techniczny przewodnik po pięciu strefach klimatycznych, temperaturach projektowych i ich prawidłowym wykorzystaniu w OZC oraz projekcie podłogówki.",
      "image": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-08-01T10:12:32+00:00",
      "dateModified": "2026-09-15T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "strefy klimatyczne w Polsce",
        "projektowa temperatura zewnętrzna",
        "projektowe obciążenie cieplne OZC",
        "ogrzewanie podłogowe",
        "dobór pompy ciepła"
      ],
      "keywords": "strefy klimatyczne w Polsce, wyszukiwarka stref klimatycznych, temperatura projektowa, temperatura zewnętrzna do OZC, strefa klimatyczna a ogrzewanie podłogowe",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#locator" },
        { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#zones-list" },
        { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#locator",
      "name": "Wyszukiwarka strefy klimatycznej dla miejscowości",
      "url": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#rk-climate-locator-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie edukacyjne wyszukujące strefę i projektową temperaturę zewnętrzną oraz porównujące ΔT między pięcioma strefami."
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#locality-dataset",
      "name": "Baza miejscowości i stref obliczeniowych ogrzewania",
      "description": "Pomocniczy zbiór miejscowości wykorzystywany przez wyszukiwarkę edukacyjną. Lokalizacje graniczne i górskie wymagają kontroli dokładnego położenia.",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#locator" },
      "inLanguage": "pl-PL",
      "license": "https://projekt-ogrzewania.pl/"
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#zones-list",
      "name": "Pięć stref klimatycznych do obliczeń ogrzewania w Polsce",
      "numberOfItems": 5,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strefa I — projektowa temperatura zewnętrzna −16°C" },
        { "@type": "ListItem", "position": 2, "name": "Strefa II — projektowa temperatura zewnętrzna −18°C" },
        { "@type": "ListItem", "position": 3, "name": "Strefa III — projektowa temperatura zewnętrzna −20°C" },
        { "@type": "ListItem", "position": 4, "name": "Strefa IV — projektowa temperatura zewnętrzna −22°C" },
        { "@type": "ListItem", "position": 5, "name": "Strefa V — projektowa temperatura zewnętrzna −24°C" }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#howto",
      "name": "Jak wykorzystać strefę klimatyczną w projekcie ogrzewania",
      "description": "Procedura od ustalenia lokalizacji do obliczenia obciążenia pomieszczeń i projektu instalacji.",
      "totalTime": "PT15M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal lokalizację", "text": "Wyszukaj miejscowość i sprawdź, czy działka nie leży przy granicy strefy lub na terenie górskim." },
        { "@type": "HowToStep", "position": 2, "name": "Potwierdź temperaturę zewnętrzną", "text": "Przyjmij projektową temperaturę zewnętrzną zgodną z właściwymi danymi krajowymi i dokładną lokalizacją." },
        { "@type": "HowToStep", "position": 3, "name": "Ustal temperatury pomieszczeń", "text": "Określ projektowe temperatury dla salonu, sypialni, łazienki, garażu i pozostałych stref." },
        { "@type": "HowToStep", "position": 4, "name": "Oblicz obciążenie cieplne", "text": "Uwzględnij przegrody, mostki, wentylację, grunt oraz warunki każdego pomieszczenia." },
        { "@type": "HowToStep", "position": 5, "name": "Sprawdź wydajność podłogi", "text": "Porównaj straty pomieszczenia z powierzchnią czynną, okładziną i możliwą mocą ogrzewania podłogowego." },
        { "@type": "HowToStep", "position": 6, "name": "Zaprojektuj hydraulikę", "text": "Wyznacz rozstawy, długości pętli, przepływy, opory i nastawy rozdzielacza." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Ile stref klimatycznych stosuje się w Polsce do obliczeń ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Stosowany podział obejmuje pięć stref oznaczonych od I do V. Odpowiadają im projektowe temperatury zewnętrzne od −16°C do −24°C, zmieniające się co 2 K." } },
        { "@type": "Question", "name": "Jakie temperatury odpowiadają strefom I–V?", "acceptedAnswer": { "@type": "Answer", "text": "Strefa I to −16°C, II −18°C, III −20°C, IV −22°C, a V −24°C. Są to temperatury projektowe używane jako dane wejściowe, a nie średnie temperatury zimy." } },
        { "@type": "Question", "name": "Czy wyszukiwarka działa bez polskich znaków?", "acceptedAnswer": { "@type": "Answer", "text": "Tak. Skrypt normalizuje znaki i wyświetla poprawną nazwę miejscowości w podpowiedziach." } },
        { "@type": "Question", "name": "Co zrobić, jeśli miejscowości nie ma w bazie?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź strefę w dokumentacji lokalizacji lub u projektanta, a następnie użyj ręcznego wyboru strefy w narzędziu." } },
        { "@type": "Question", "name": "Czy strefa klimatyczna określa dokładne OZC domu?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Strefa podaje projektową temperaturę zewnętrzną. OZC zależy dodatkowo od parametrów przegród, mostków, wentylacji, gruntu i temperatur pomieszczeń." } },
        { "@type": "Question", "name": "Czy w strefie V rury zawsze trzeba układać co 10 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw wynika z obciążenia pomieszczenia, powierzchni czynnej, oporu okładziny i temperatury wody." } },
        { "@type": "Question", "name": "Czy strefa określa temperaturę zasilania podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Temperatura zasilania wynika z potrzebnej mocy, konstrukcji podłogi, rozstawu, okładziny i ograniczeń temperatury powierzchni." } },
        { "@type": "Question", "name": "Czy błąd o jedną strefę zawsze kosztuje 6000 zł rocznie?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Koszt zależy od skali błędu, źródła ciepła, pracy grzałki, taryfy, cen energii, regulacji i rzeczywistej pogody." } },
        { "@type": "Question", "name": "Jaka jest różnica między strefą II a V?", "acceptedAnswer": { "@type": "Answer", "text": "Temperatura projektowa zmienia się z −18°C na −24°C. Przy 20°C wewnątrz ΔT rośnie z 38 do 44 K, czyli o około 15,8% dla składnika proporcjonalnego do ΔT." } },
        { "@type": "Question", "name": "Czy projektowa temperatura zewnętrzna to najniższa temperatura w historii?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. To parametr obliczeniowy i nie musi być równy rekordowi meteorologicznemu ani średniej minimalnej temperaturze sezonu." } },
        { "@type": "Question", "name": "Jak strefa wpływa na dobór pompy ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Wpływa na obciążenie budynku, ale urządzenie dobiera się także z charakterystyki mocy, COP, temperatury zasilania i punktu biwalentnego." } },
        { "@type": "Question", "name": "Czy wynik dla centrum miasta pasuje do działki w górach?", "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Wysokość, ekspozycja i położenie względem granicy stref mogą wymagać dokładniejszej weryfikacji." } },
        { "@type": "Question", "name": "Czy projektową temperaturę wnętrza ustala się jednakowo dla całego domu?", "acceptedAnswer": { "@type": "Answer", "text": "Nie musi tak być. Pełne OZC uwzględnia temperatury projektowe poszczególnych pomieszczeń." } },
        { "@type": "Question", "name": "Czy ze strefy można obliczyć roczne zużycie energii?", "acceptedAnswer": { "@type": "Answer", "text": "Nie z samej strefy. Roczna energia wymaga modelu całego sezonu, charakterystyki budynku, zysków, wentylacji i regulacji." } }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego z obliczeniami cieplnymi i hydraulicznymi"
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-climate-guide");
  if (!guide) {
    return;
  }

  /* WordPress potrafi przebudować kolejność dużych bloków. Ustalamy ją jawnie. */
  var shell = guide.querySelector(".rk-climate-shell");
  var orderedSections = [
    "rk-climate-answer",
    "rk-climate-locator-section",
    "rk-climate-interpretation",
    "rk-climate-zones",
    "rk-climate-ozc",
    "rk-climate-floor",
    "rk-climate-energy",
    "rk-climate-cost-claim",
    "rk-climate-boundaries",
    "rk-climate-heat-pump",
    "rk-climate-errors",
    "rk-climate-data",
    "rk-climate-final",
    "rk-climate-sources",
    "rk-climate-faq",
    "rk-climate-author"
  ];

  orderedSections.forEach(function (sectionId) {
    var section = document.getElementById(sectionId);
    if (section) {
      shell.appendChild(section);
    }
  });

  var zones = {
    1: { roman: "I", temp: -16, label: "Strefa I" },
    2: { roman: "II", temp: -18, label: "Strefa II" },
    3: { roman: "III", temp: -20, label: "Strefa III" },
    4: { roman: "IV", temp: -22, label: "Strefa IV" },
    5: { roman: "V", temp: -24, label: "Strefa V" }
  };

  var cities = [];

  function addGroup(zone, region, names, caution) {
    names.forEach(function (name) {
      cities.push({
        name: name,
        region: region,
        zone: zone,
        caution: caution === true
      });
    });
  }

  addGroup(1, "woj. zachodniopomorskie", [
    "Szczecin", "Świnoujście", "Police", "Goleniów", "Gryfice", "Kołobrzeg",
    "Koszalin", "Białogard", "Darłowo", "Kamień Pomorski", "Międzyzdroje", "Nowogard"
  ], false);
  addGroup(1, "woj. pomorskie", [
    "Gdańsk", "Gdynia", "Sopot", "Słupsk", "Ustka", "Wejherowo", "Rumia",
    "Reda", "Puck", "Hel", "Władysławowo", "Lębork", "Łeba", "Tczew", "Starogard Gdański"
  ], false);
  addGroup(1, "woj. pomorskie — lokalizacja do kontroli", ["Kartuzy", "Kościerzyna"], true);

  addGroup(2, "woj. zachodniopomorskie", [
    "Stargard", "Gryfino", "Choszczno", "Myślibórz", "Wałcz", "Szczecinek", "Drawsko Pomorskie"
  ], false);
  addGroup(2, "woj. lubuskie", [
    "Gorzów Wielkopolski", "Zielona Góra", "Nowa Sól", "Żary", "Żagań", "Świebodzin",
    "Międzyrzecz", "Sulechów", "Kostrzyn nad Odrą", "Słubice", "Krosno Odrzańskie"
  ], false);
  addGroup(2, "woj. wielkopolskie", [
    "Poznań", "Leszno", "Piła", "Gniezno", "Kalisz", "Konin", "Ostrów Wielkopolski",
    "Krotoszyn", "Rawicz", "Gostyń", "Kościan", "Nowy Tomyśl", "Szamotuły", "Września",
    "Śrem", "Jarocin", "Wągrowiec", "Chodzież", "Czarnków", "Złotów"
  ], false);
  addGroup(2, "woj. dolnośląskie", [
    "Wrocław", "Legnica", "Lubin", "Głogów", "Bolesławiec", "Oława", "Oleśnica",
    "Polkowice", "Środa Śląska", "Wołów", "Milicz", "Trzebnica", "Dzierżoniów", "Świdnica"
  ], false);
  addGroup(2, "woj. dolnośląskie — lokalizacja do kontroli", [
    "Wałbrzych", "Jelenia Góra", "Zgorzelec", "Kłodzko"
  ], true);
  addGroup(2, "woj. opolskie", [
    "Opole", "Brzeg", "Nysa", "Kędzierzyn-Koźle", "Kluczbork", "Prudnik", "Krapkowice",
    "Strzelce Opolskie", "Olesno", "Namysłów"
  ], false);

  addGroup(3, "woj. mazowieckie", [
    "Warszawa", "Radom", "Płock", "Ciechanów", "Mława", "Pruszków", "Piaseczno",
    "Legionowo", "Grodzisk Mazowiecki", "Żyrardów", "Sochaczew", "Grójec", "Garwolin",
    "Mińsk Mazowiecki", "Wołomin", "Otwock", "Nowy Dwór Mazowiecki", "Płońsk", "Sierpc",
    "Gostynin", "Kozienice", "Przysucha", "Szydłowiec", "Warka"
  ], false);
  addGroup(3, "woj. łódzkie", [
    "Łódź", "Piotrków Trybunalski", "Skierniewice", "Pabianice", "Zgierz", "Sieradz",
    "Zduńska Wola", "Bełchatów", "Kutno", "Łowicz", "Tomaszów Mazowiecki", "Opoczno",
    "Wieluń", "Radomsko", "Łęczyca", "Rawa Mazowiecka"
  ], false);
  addGroup(3, "woj. małopolskie", [
    "Kraków", "Tarnów", "Oświęcim", "Chrzanów", "Olkusz", "Wadowice", "Bochnia",
    "Brzesko", "Dąbrowa Tarnowska", "Wieliczka", "Niepołomice", "Skawina", "Miechów"
  ], false);
  addGroup(3, "woj. małopolskie — lokalizacja do kontroli", ["Myślenice"], true);
  addGroup(3, "woj. śląskie", [
    "Katowice", "Częstochowa", "Bielsko-Biała", "Gliwice", "Zabrze", "Bytom", "Sosnowiec",
    "Tychy", "Rybnik", "Dąbrowa Górnicza", "Chorzów", "Jaworzno", "Mysłowice", "Ruda Śląska",
    "Siemianowice Śląskie", "Świętochłowice", "Piekary Śląskie", "Jastrzębie-Zdrój", "Żory",
    "Mikołów", "Tarnowskie Góry", "Racibórz", "Wodzisław Śląski", "Lubliniec", "Zawiercie"
  ], false);
  addGroup(3, "woj. świętokrzyskie", [
    "Kielce", "Ostrowiec Świętokrzyski", "Starachowice", "Skarżysko-Kamienna", "Sandomierz",
    "Busko-Zdrój", "Jędrzejów", "Końskie", "Staszów", "Włoszczowa"
  ], false);
  addGroup(3, "woj. kujawsko-pomorskie", [
    "Bydgoszcz", "Toruń", "Włocławek", "Grudziądz", "Inowrocław", "Brodnica", "Chełmno",
    "Świecie", "Nakło nad Notecią", "Żnin", "Mogilno", "Aleksandrów Kujawski", "Lipno"
  ], false);
  addGroup(3, "woj. lubelskie", [
    "Lublin", "Puławy", "Świdnik", "Kraśnik", "Łuków", "Lubartów", "Opole Lubelskie", "Ryki"
  ], false);
  addGroup(3, "woj. podkarpackie", [
    "Rzeszów", "Tarnobrzeg", "Mielec", "Stalowa Wola", "Dębica", "Jarosław", "Przemyśl",
    "Krosno", "Sanok", "Jasło", "Łańcut", "Leżajsk", "Przeworsk", "Ropczyce", "Kolbuszowa"
  ], false);
  addGroup(3, "woj. warmińsko-mazurskie — lokalizacja do kontroli", ["Iława", "Ostróda"], true);

  addGroup(4, "woj. podlaskie", [
    "Białystok", "Łomża", "Bielsk Podlaski", "Hajnówka", "Sokółka", "Augustów", "Grajewo",
    "Zambrów", "Siemiatycze", "Mońki", "Kolno", "Wysokie Mazowieckie"
  ], false);
  addGroup(4, "woj. warmińsko-mazurskie", [
    "Olsztyn", "Elbląg", "Ełk", "Giżycko", "Kętrzyn", "Mrągowo", "Szczytno", "Bartoszyce",
    "Braniewo", "Lidzbark Warmiński", "Nidzica", "Pisz", "Działdowo", "Morąg"
  ], false);
  addGroup(4, "woj. mazowieckie", ["Ostrołęka", "Siedlce", "Maków Mazowiecki", "Przasnysz", "Węgrów", "Sokołów Podlaski"], false);
  addGroup(4, "woj. lubelskie", [
    "Biała Podlaska", "Chełm", "Zamość", "Hrubieszów", "Tomaszów Lubelski", "Włodawa",
    "Biłgoraj", "Krasnystaw", "Janów Lubelski", "Parczew", "Radzyń Podlaski"
  ], false);
  addGroup(4, "woj. podkarpackie — lokalizacja do kontroli", ["Ustrzyki Dolne", "Lesko", "Brzozów"], true);

  addGroup(5, "woj. podlaskie — lokalizacja do kontroli", ["Suwałki", "Sejny"], true);
  addGroup(5, "woj. warmińsko-mazurskie — lokalizacja do kontroli", ["Olecko", "Gołdap"], true);
  addGroup(5, "woj. małopolskie — teren górski", [
    "Zakopane", "Nowy Targ", "Krynica-Zdrój", "Rabka-Zdrój", "Limanowa", "Sucha Beskidzka",
    "Gorlice", "Nowy Sącz", "Muszyna", "Piwniczna-Zdrój", "Szczawnica", "Bukowina Tatrzańska",
    "Białka Tatrzańska"
  ], true);
  addGroup(5, "woj. śląskie — teren górski", ["Żywiec", "Wisła", "Ustroń", "Szczyrk"], true);
  addGroup(5, "woj. dolnośląskie — teren górski", ["Karpacz", "Szklarska Poręba"], true);

  function normalizeText(value) {
    var output = String(value).toLowerCase();
    output = output.replace(/ł/g, "l");
    if (typeof output.normalize === "function") {
      output = output.normalize("NFD");
      output = output.replace(/[\u0300-\u036f]/g, "");
    }
    output = output.replace(/[^a-z0-9]+/g, " ");
    output = output.replace(/^\s+|\s+$/g, "");
    return output;
  }

  cities.forEach(function (city, index) {
    city.id = "rk-climate-option-" + index;
    city.search = normalizeText(city.name + " " + city.region);
  });

  cities.sort(function (a, b) {
    return a.name.localeCompare(b.name, "pl");
  });

  cities.forEach(function (city, index) {
    city.id = "rk-climate-option-" + index;
  });

  var cityInput = document.getElementById("rk-climate-city-input");
  var suggestions = document.getElementById("rk-climate-suggestions");
  var indoorInput = document.getElementById("rk-climate-indoor-temp");
  var referenceZoneInput = document.getElementById("rk-climate-reference-zone");
  var showButton = document.getElementById("rk-climate-show-result");
  var resetButton = document.getElementById("rk-climate-reset");
  var manualZoneInput = document.getElementById("rk-climate-manual-zone");
  var manualButton = document.getElementById("rk-climate-use-manual");
  var placeholder = document.getElementById("rk-climate-placeholder");
  var result = document.getElementById("rk-climate-result");
  var scenarioReference = document.getElementById("rk-climate-scenario-reference");
  var scenarioTarget = document.getElementById("rk-climate-scenario-target");
  var referenceLoad = document.getElementById("rk-climate-reference-load");
  var currentMatches = [];
  var activeIndex = -1;
  var selectedCity = null;
  var selectedZone = null;

  function formatNumber(value, digits) {
    return Number(value).toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  }

  function closeSuggestions() {
    suggestions.classList.remove("is-open");
    cityInput.setAttribute("aria-expanded", "false");
    cityInput.removeAttribute("aria-activedescendant");
    activeIndex = -1;
  }

  function openSuggestions() {
    suggestions.classList.add("is-open");
    cityInput.setAttribute("aria-expanded", "true");
  }

  function scoreCity(city, query) {
    var name = normalizeText(city.name);
    if (name === query) {
      return 0;
    }
    if (name.indexOf(query) === 0) {
      return 1;
    }
    if (city.search.indexOf(query) > -1) {
      return 2;
    }
    return 99;
  }

  function findMatches(query) {
    var matches = [];
    cities.forEach(function (city) {
      var score = scoreCity(city, query);
      if (score < 99) {
        matches.push({ city: city, score: score });
      }
    });
    matches.sort(function (a, b) {
      if (a.score !== b.score) {
        return a.score - b.score;
      }
      return a.city.name.localeCompare(b.city.name, "pl");
    });
    return matches.slice(0, 9).map(function (item) {
      return item.city;
    });
  }

  function updateActiveSuggestion() {
    var buttons = suggestions.querySelectorAll(".rk-climate-suggestion");
    buttons.forEach(function (button, index) {
      if (index === activeIndex) {
        button.classList.add("is-active");
        button.setAttribute("aria-selected", "true");
        cityInput.setAttribute("aria-activedescendant", button.id);
        button.scrollIntoView({ block: "nearest" });
      } else {
        button.classList.remove("is-active");
        button.setAttribute("aria-selected", "false");
      }
    });
  }

  function selectCity(city) {
    selectedCity = city;
    selectedZone = city.zone;
    cityInput.value = city.name;
    closeSuggestions();
    scenarioTarget.value = String(city.zone);
    renderResult();
  }

  function renderSuggestions(query) {
    suggestions.textContent = "";
    currentMatches = findMatches(query);
    activeIndex = -1;

    if (currentMatches.length === 0) {
      var noResult = document.createElement("div");
      noResult.className = "rk-climate-no-result";
      noResult.textContent = "Brak miejscowości w bazie. Skorzystaj z ręcznego wyboru po zweryfikowaniu strefy.";
      suggestions.appendChild(noResult);
      openSuggestions();
      return;
    }

    currentMatches.forEach(function (city, index) {
      var button = document.createElement("button");
      var strong = document.createElement("strong");
      var small = document.createElement("small");
      button.type = "button";
      button.className = "rk-climate-suggestion";
      button.id = city.id;
      button.setAttribute("role", "option");
      button.setAttribute("data-index", String(index));
      strong.textContent = city.name;
      small.textContent = city.region + " · strefa " + zones[city.zone].roman;
      button.appendChild(strong);
      button.appendChild(small);
      button.addEventListener("click", function () {
        selectCity(city);
      });
      suggestions.appendChild(button);
    });
    openSuggestions();
  }

  cityInput.addEventListener("input", function () {
    selectedCity = null;
    selectedZone = null;
    var query = normalizeText(cityInput.value);
    if (query === "") {
      closeSuggestions();
      return;
    }
    renderSuggestions(query);
  });

  cityInput.addEventListener("keydown", function (event) {
    if (event.key === "ArrowDown") {
      event.preventDefault();
      if (currentMatches.length > 0) {
        activeIndex += 1;
        if (activeIndex >= currentMatches.length) {
          activeIndex = 0;
        }
        updateActiveSuggestion();
      }
      return;
    }
    if (event.key === "ArrowUp") {
      event.preventDefault();
      if (currentMatches.length > 0) {
        activeIndex -= 1;
        if (activeIndex < 0) {
          activeIndex = currentMatches.length - 1;
        }
        updateActiveSuggestion();
      }
      return;
    }
    if (event.key === "Enter") {
      if (activeIndex > -1) {
        event.preventDefault();
        selectCity(currentMatches[activeIndex]);
      }
      return;
    }
    if (event.key === "Escape") {
      closeSuggestions();
    }
  });

  document.addEventListener("click", function (event) {
    var inputWrap = cityInput.parentNode;
    if (inputWrap.contains(event.target) === false) {
      closeSuggestions();
    }
  });

  function findExactCity(value) {
    var query = normalizeText(value);
    var found = null;
    cities.forEach(function (city) {
      if (found === null) {
        if (normalizeText(city.name) === query) {
          found = city;
        }
      }
    });
    return found;
  }

  function percentageChange(targetDelta, referenceDelta) {
    return ((targetDelta / referenceDelta) - 1) * 100;
  }

  function formatPercentage(value) {
    if (Math.abs(value) < 0.05) {
      return "0,0%";
    }
    var sign = "";
    if (value > 0) {
      sign = "+";
    }
    return sign + formatNumber(value, 1) + "%";
  }

  function renderResult() {
    if (selectedZone === null) {
      return;
    }
    var zone = zones[selectedZone];
    var indoor = Number(indoorInput.value);
    var referenceZone = zones[Number(referenceZoneInput.value)];
    var delta = indoor - zone.temp;
    var referenceDelta = indoor - referenceZone.temp;
    var relative = percentageChange(delta, referenceDelta);
    var placeName = "Strefa wybrana ręcznie";
    var regionName = "Wynik na podstawie strefy potwierdzonej poza wyszukiwarką";
    var statusName = "Wymaga źródła";
    var noteText = "Ręczny wybór powinien wynikać z dokumentacji lokalizacji albo weryfikacji projektanta.";

    if (selectedCity !== null) {
      placeName = selectedCity.name;
      regionName = selectedCity.region;
      if (selectedCity.caution === true) {
        statusName = "Sprawdź dokładnie";
        noteText = "Lokalizacja leży na obszarze, na którym granica strefy, wysokość lub ukształtowanie terenu mogą wymagać dokładniejszej weryfikacji działki.";
      } else {
        statusName = "Wstępnie przypisana";
        noteText = "Wynik jest pomocą edukacyjną. Przed wykonaniem obliczeń projektowych potwierdź strefę dla dokładnego adresu inwestycji.";
      }
    }

    document.getElementById("rk-climate-result-place").textContent = placeName;
    document.getElementById("rk-climate-result-region").textContent = regionName;
    document.getElementById("rk-climate-result-zone").textContent = "Strefa " + zone.roman;
    document.getElementById("rk-climate-result-outdoor").textContent = zone.temp + "°C";
    document.getElementById("rk-climate-result-indoor").textContent = indoor + "°C";
    document.getElementById("rk-climate-result-delta").textContent = delta + " K";
    document.getElementById("rk-climate-result-relative").textContent = formatPercentage(relative);
    document.getElementById("rk-climate-result-status").textContent = statusName;
    document.getElementById("rk-climate-location-note").querySelector("p").textContent = noteText;
    placeholder.style.display = "none";
    result.classList.add("is-visible");
    updateScenario();
    updateChart();
  }

  function renderInputError() {
    placeholder.style.display = "flex";
    placeholder.querySelector("h4").textContent = "Wybierz miejscowość z listy";
    placeholder.querySelector("p").textContent = "Jeżeli miejscowości nie ma w bazie, użyj ręcznego wyboru dopiero po potwierdzeniu strefy.";
    result.classList.remove("is-visible");
  }

  showButton.addEventListener("click", function () {
    if (selectedCity === null) {
      var exact = findExactCity(cityInput.value);
      if (exact !== null) {
        selectCity(exact);
      } else {
        renderInputError();
      }
    } else {
      renderResult();
    }
  });

  manualButton.addEventListener("click", function () {
    var value = Number(manualZoneInput.value);
    if (zones[value]) {
      selectedCity = null;
      selectedZone = value;
      cityInput.value = "";
      scenarioTarget.value = String(value);
      renderResult();
    }
  });

  function parseLoad() {
    var raw = String(referenceLoad.value).replace(",", ".");
    var value = Number(raw);
    if (Number.isFinite(value) === false) {
      return null;
    }
    if (value <= 0) {
      return null;
    }
    return value;
  }

  function updateScenario() {
    var indoor = Number(indoorInput.value);
    var referenceId = Number(scenarioReference.value);
    var targetId = Number(scenarioTarget.value);
    var reference = zones[referenceId];
    var target = zones[targetId];
    var referenceDelta = indoor - reference.temp;
    var targetDelta = indoor - target.temp;
    var change = percentageChange(targetDelta, referenceDelta);
    var load = parseLoad();
    var title = "Strefa " + reference.roman + " → strefa " + target.roman + ": " + formatPercentage(change) + " zmiany ΔT";
    var copy = "Przy " + indoor + "°C wewnątrz różnica temperatur zmienia się z " + referenceDelta + " K na " + targetDelta + " K.";

    if (load !== null) {
      var targetLoad = load * targetDelta / referenceDelta;
      copy += " Uproszczone przeskalowanie wyniku " + formatNumber(load, 1) + " kW daje około " + formatNumber(targetLoad, 2) + " kW. To scenariusz edukacyjny, nie nowe OZC.";
    } else {
      copy += " Wpisz rzeczywisty wynik OZC, jeżeli chcesz zobaczyć orientacyjne przeskalowanie dla tego samego budynku.";
    }

    document.getElementById("rk-climate-scenario-title").textContent = title;
    document.getElementById("rk-climate-scenario-copy").textContent = copy;
  }

  function updateChart() {
    var indoor = Number(indoorInput.value);
    var selected = selectedZone;
    var reference = Number(scenarioReference.value);
    var maxDelta = indoor - zones[5].temp;
    var chartItems = document.querySelectorAll(".rk-climate-bar-item");

    chartItems.forEach(function (item) {
      var zoneId = Number(item.getAttribute("data-zone"));
      var delta = indoor - zones[zoneId].temp;
      var size = delta / maxDelta * 100;
      var fill = item.querySelector(".rk-climate-bar-fill");
      item.querySelector(".rk-climate-bar-value").textContent = delta + " K";
      fill.style.setProperty("--rk-desktop-height", size + "%");
      fill.style.setProperty("--rk-mobile-width", size + "%");
      item.classList.remove("is-selected");
      item.classList.remove("is-reference");
      if (selected !== null) {
        if (zoneId === selected) {
          item.classList.add("is-selected");
        }
      }
      if (zoneId === reference) {
        item.classList.add("is-reference");
      }
    });

    document.getElementById("rk-climate-chart").setAttribute("aria-label", "Porównanie ΔT dla temperatury wewnętrznej " + indoor + " stopni Celsjusza. Zakres od " + (indoor + 16) + " K w strefie I do " + (indoor + 24) + " K w strefie V.");
  }

  indoorInput.addEventListener("change", function () {
    if (selectedZone !== null) {
      renderResult();
    } else {
      updateScenario();
      updateChart();
    }
  });

  referenceZoneInput.addEventListener("change", function () {
    if (selectedZone !== null) {
      renderResult();
    }
  });

  scenarioReference.addEventListener("change", function () {
    updateScenario();
    updateChart();
  });
  scenarioTarget.addEventListener("change", function () {
    updateScenario();
  });
  referenceLoad.addEventListener("input", function () {
    updateScenario();
  });

  resetButton.addEventListener("click", function () {
    selectedCity = null;
    selectedZone = null;
    cityInput.value = "";
    indoorInput.value = "20";
    referenceZoneInput.value = "3";
    manualZoneInput.value = "";
    scenarioReference.value = "3";
    scenarioTarget.value = "5";
    referenceLoad.value = "";
    result.classList.remove("is-visible");
    placeholder.style.display = "flex";
    placeholder.querySelector("h4").textContent = "Wybierz miejscowość";
    placeholder.querySelector("p").textContent = "Wynik nie poda gotowej mocy domu. Pokaże właściwy punkt startowy do obliczeń.";
    closeSuggestions();
    updateScenario();
    updateChart();
  });

  updateScenario();
  updateChart();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">Strefy klimatyczne w Polsce – wyszukiwarka miejscowości, temperatura projektowa i OZC.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
