<?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 Rekuperacja - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/rekuperacja/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/rekuperacja/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 01 Oct 2026 09:07:29 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Rekuperacja - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/rekuperacja/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</title>
		<link>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/</link>
					<comments>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 01 Oct 2026 09:07:27 +0000</pubDate>
				<category><![CDATA[Analizy rynkowe]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Budownictwo]]></category>
		<category><![CDATA[Dane GUS]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kotły gazowe]]></category>
		<category><![CDATA[Kotły na paliwa stałe]]></category>
		<category><![CDATA[Kotły na pellet]]></category>
		<category><![CDATA[Ogrzewanie]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Prognozy rynku]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[branża instalacyjna]]></category>
		<category><![CDATA[budowa domu 2027]]></category>
		<category><![CDATA[budownictwo jednorodzinne]]></category>
		<category><![CDATA[dane gus budownictwo]]></category>
		<category><![CDATA[domy jednorodzinne 2027]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kotły gazowe 2027]]></category>
		<category><![CDATA[liczba domów w polsce]]></category>
		<category><![CDATA[nowe budynki jednorodzinne]]></category>
		<category><![CDATA[nowe domy w polsce]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompy ciepła 2027]]></category>
		<category><![CDATA[prognoza budownictwa 2027]]></category>
		<category><![CDATA[prognoza rynku ogrzewania]]></category>
		<category><![CDATA[rekuperacja]]></category>
		<category><![CDATA[rynek hvac]]></category>
		<category><![CDATA[rynek kotłów gazowych]]></category>
		<category><![CDATA[rynek ogrzewania 2027]]></category>
		<category><![CDATA[rynek pomp ciepła]]></category>
		<category><![CDATA[sprzedaż urządzeń hvac]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7782</guid>

					<description><![CDATA[<p>Ile nowych domów może zostać oddanych w Polsce w najbliższych latach i co oznacza to dla rynku ogrzewania? Analizujemy dane GUS, dotychczasową skalę budownictwa oraz trzy możliwe scenariusze rozwoju sytuacji. Domy jednorodzinne 2027 to nie tylko liczba zakończonych inwestycji, ale również potencjalny rynek dla pomp ciepła, kotłów, ogrzewania podłogowego, rekuperacji, rur, rozdzielaczy i automatyki. W artykule pokazujemy wariant ostrożny, bazowy i wysoki, wyjaśniamy ograniczenia takich prognoz oraz wskazujemy, dlaczego liczby oddanych domów nie mogą być bezpośrednio utożsamiane ze sprzedażą urządzeń HVAC.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/">Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-forecast{--navy:#0b2536;--navy2:#173c51;--cyan:#29c4d7;--orange:#ff6846;--ink:#102a3b;--copy:#355365;--muted:#587281;--line:#d1e0e7;--soft:#f1f7f9;--white:#fff;--green:#0e795e;color:var(--ink);font:16px/1.62 Arial,Helvetica,sans-serif;max-width:1360px;margin:0 auto;overflow-wrap:anywhere}
#rk-forecast,#rk-forecast *{box-sizing:border-box;min-width:0}
#rk-forecast [hidden]{display:none!important}
#rk-forecast a{color:#087d99;text-underline-offset:3px}
#rk-forecast a:focus-visible,#rk-forecast button:focus-visible,#rk-forecast summary:focus-visible,#rk-forecast .rkf-chart-point:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
#rk-forecast .rkf-shell{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 18px 50px rgba(10,40,55,.11);overflow:hidden}
#rk-forecast .rkf-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 99% 105%,rgba(41,196,215,.19) 0 15%,transparent 15.1%),radial-gradient(circle at 0% 100%,rgba(255,104,70,.12),transparent 38%),linear-gradient(118deg,#0b2536 0%,#153b4d 56%,#0e6572 100%);padding:60px 58px 48px;color:#fff}
#rk-forecast .rkf-hero:after{content:"";position:absolute;z-index:-1;width:410px;aspect-ratio:1;border:60px solid rgba(113,227,233,.075);border-radius:50%;right:-125px;bottom:-245px}
#rk-forecast .rkf-kicker,#rk-forecast .rkf-eyebrow{font-size:.76rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
#rk-forecast .rkf-kicker{display:flex;align-items:center;gap:12px;color:#75e6f0}
#rk-forecast .rkf-kicker:before{content:"";flex:0 0 13px;width:13px;height:13px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 8px rgba(255,104,70,.13)}
#rk-forecast .rkf-hero-title{color:#fff;font-size:clamp(2.4rem,5.7vw,5.25rem);font-weight:900;line-height:1.06;letter-spacing:-.043em;max-width:1200px;margin:29px 0 0}
#rk-forecast .rkf-hero-title span{color:#78ebf3}
#rk-forecast .rkf-hero-lead{max-width:1060px;color:#dcecf1;font-size:clamp(1.05rem,1.8vw,1.38rem);line-height:1.58;margin:25px 0 0}
#rk-forecast .rkf-hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
#rk-forecast .rkf-hero-tags span{background:rgba(255,255,255,.09);border:1px solid rgba(211,238,243,.25);border-radius:999px;color:#fff;font-size:.81rem;font-weight:800;padding:8px 13px;line-height:1.3}
#rk-forecast .rkf-meta{display:flex;gap:8px 23px;flex-wrap:wrap;border-top:1px solid rgba(208,239,244,.25);padding-top:22px;margin-top:34px;color:#c9e0e7;font-size:.84rem;font-weight:700}
#rk-forecast .rkf-meta strong{color:#fff}
#rk-forecast .rkf-hero-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:29px}
#rk-forecast .rkf-hero-card{background:rgba(9,34,49,.47);border:1px solid rgba(212,240,246,.16);border-radius:17px;padding:20px 21px}
#rk-forecast .rkf-hero-card strong{color:#7bebf1;display:block;line-height:1.3;font-size:1rem}
#rk-forecast .rkf-hero-card p{color:#e2f1f4;font-size:.9rem;line-height:1.5;margin:7px 0 0}
#rk-forecast .rkf-nav{display:flex;flex-wrap:wrap;gap:8px;background:#fff;padding:18px 32px;border-bottom:1px solid var(--line)}
#rk-forecast .rkf-nav a{display:inline-block;background:#edf5f7;border-radius:30px;padding:8px 12px;text-decoration:none;color:var(--ink);font-size:.79rem;font-weight:800}
#rk-forecast .rkf-nav a:hover{background:#d5f4f7}
#rk-forecast .rkf-section{padding:58px 54px;border-top:1px solid var(--line)}
#rk-forecast .rkf-section.rkf-soft{background:var(--soft)}
#rk-forecast .rkf-eyebrow{color:#087d99;display:block;margin-bottom:12px}
#rk-forecast h2,#rk-forecast h3,#rk-forecast h4{line-height:1.2;letter-spacing:-.02em}
#rk-forecast .rkf-section>h2{font-size:clamp(1.9rem,3.8vw,3.2rem);margin:0;max-width:1040px}
#rk-forecast .rkf-lead{font-size:1.14rem;color:var(--copy);max-width:1100px;margin:19px 0 0}
#rk-forecast .rkf-copy{color:var(--copy);margin:20px 0 0}
#rk-forecast .rkf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
#rk-forecast .rkf-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
#rk-forecast .rkf-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:22px}
#rk-forecast .rkf-card h3{font-size:1.14rem;margin:0 0 9px;color:var(--ink)}
#rk-forecast .rkf-card p{margin:0;color:var(--copy)}
#rk-forecast .rkf-number{display:inline-block;border-radius:9px;background:#dff6f8;color:#06627a;font-weight:900;font-size:.8rem;padding:6px 10px;margin-bottom:13px}
#rk-forecast .rkf-answer{margin-top:28px;background:#e8f9fb;border:1px solid #a4dfe7;border-left:6px solid var(--cyan);border-radius:15px;padding:23px;color:var(--ink)}
#rk-forecast .rkf-answer p{margin:8px 0 0;color:var(--copy)}
#rk-forecast .rkf-note{background:#fff5df;border-left:5px solid #e9ae26;border-radius:12px;padding:17px 20px;margin-top:22px;color:#584520}
#rk-forecast .rkf-note p{margin:0}
#rk-forecast .rkf-note.green{background:#e9f8f1;border-left-color:#28bd89;color:#155f49}
#rk-forecast .rkf-table-wrap{overflow-x:auto;margin-top:24px}
#rk-forecast table{border-collapse:collapse;min-width:680px;width:100%;font-size:.93rem}
#rk-forecast th{background:var(--navy);color:#fff;text-align:left;padding:13px}
#rk-forecast td{background:#fff;border:1px solid var(--line);color:var(--copy);padding:13px;vertical-align:top}
#rk-forecast td strong{color:var(--ink)}
#rk-forecast .rkf-list{color:var(--copy);padding-left:22px;margin:18px 0 0}
#rk-forecast .rkf-list li+li{margin-top:8px}
#rk-forecast .rkf-tool{background:var(--navy);border-radius:19px;color:#fff;margin-top:29px;padding:27px}
#rk-forecast .rkf-tool h3{color:#fff;font-size:1.65rem;margin:0}
#rk-forecast .rkf-tool>p{color:#d1e4eb;margin:8px 0 0}
#rk-forecast .rkf-tabs,#rk-forecast .rkf-scenario-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}
#rk-forecast button{cursor:pointer;font:inherit}
#rk-forecast .rkf-tab,#rk-forecast .rkf-scenario-button{padding:10px 15px;border-radius:10px;background:#21495c;color:#fff;border:1px solid #678a99;font-weight:800;line-height:1.3}
#rk-forecast .rkf-tab[aria-pressed=true],#rk-forecast .rkf-scenario-button[aria-pressed=true]{background:var(--cyan);border-color:var(--cyan);color:#082838}
#rk-forecast .rkf-scenario-button[data-rkf-scenario="low"][aria-pressed=true]{background:#ffd6be;border-color:#ffd6be}
#rk-forecast .rkf-scenario-button[data-rkf-scenario="high"][aria-pressed=true]{background:#c6f5db;border-color:#c6f5db}
#rk-forecast .rkf-scenario-buttons{margin:16px 0 13px}
#rk-forecast .rkf-plot{background:#fff;border-radius:14px;border:1px solid #bdcfd7;padding:16px;color:var(--ink);overflow-x:auto}
#rk-forecast .rkf-plot svg{width:100%;height:auto;display:block;min-height:180px}
#rk-forecast .rkf-plot-desc{font-size:.85rem;color:var(--copy);margin:8px 4px 0}
#rk-forecast .rkf-chart-point{cursor:pointer;outline:none}
#rk-forecast .rkf-chart-point:focus-visible circle:first-child{stroke:#0b2536;stroke-width:3}
#rk-forecast .rkf-chart-readout{background:#e7f8fa;border-left:5px solid var(--cyan);color:var(--ink);border-radius:12px;padding:17px 19px;margin-top:14px}
#rk-forecast .rkf-chart-readout strong{display:block;font-size:1.12rem;line-height:1.35}
#rk-forecast .rkf-chart-readout p{color:var(--copy);margin:5px 0 0;font-size:.91rem}
#rk-forecast .rkf-chart-key{display:flex;flex-wrap:wrap;gap:9px 16px;margin:18px 0 2px;color:#d6edf2;font-size:.84rem;font-weight:700}
#rk-forecast .rkf-chart-key span{display:inline-flex;align-items:center;gap:7px}
#rk-forecast .rkf-chart-key i{width:22px;height:3px;display:inline-block;background:#29c4d7;border-radius:4px}
#rk-forecast .rkf-chart-key i.rkf-key-forecast{background:#ff6846;border-top:1px dashed #fff}
#rk-forecast .rkf-disclosure{color:#c4e0e8!important;font-size:.82rem!important;margin-top:16px!important}
#rk-forecast .rkf-cta{border-radius:18px;background:linear-gradient(120deg,#102c3e,#176072);padding:29px;color:#fff;margin-top:28px}
#rk-forecast .rkf-cta h3{color:#fff;font-size:1.65rem;margin:0}
#rk-forecast .rkf-cta p{color:#d5e8eb;margin:10px 0 0}
#rk-forecast .rkf-cta a.rkf-button{display:inline-block;margin-top:19px;background:var(--orange);border-radius:10px;color:#fff;padding:12px 17px;text-decoration:none;font-weight:900}
#rk-forecast .rkf-cta a.rkf-button:hover{background:#fff;color:#bb3e24}
#rk-forecast .rkf-cta small{display:block;color:#c5dfe4;margin-top:10px}
#rk-forecast .rkf-cta .rkf-cta-kicker{color:#80e7f0;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;margin:0 0 9px}
#rk-forecast .rkf-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:23px}
#rk-forecast .rkf-source{background:#f3f8fa;border:1px solid var(--line);border-radius:12px;padding:17px}
#rk-forecast .rkf-source a{font-weight:900}
#rk-forecast .rkf-source p{font-size:.88rem;color:var(--copy);margin:7px 0 0}
#rk-forecast .rkf-faq{display:grid;gap:10px;margin-top:25px}
#rk-forecast .rkf-faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 17px}
#rk-forecast .rkf-faq summary{cursor:pointer;font-weight:900;padding:16px 0;color:var(--ink)}
#rk-forecast .rkf-faq p{margin:0 0 17px;color:var(--copy)}
#rk-forecast .rkf-author-section{background:#edf6f8!important}
#rk-forecast .rkf-author{display:grid;grid-template-columns:280px minmax(0,1fr);background:#fff;border:1px solid #d2e1e7;border-radius:20px;overflow:hidden;margin-top:27px}
#rk-forecast .rkf-author-side{background:#0b2536;color:#fff;padding:32px 23px;text-align:center;display:flex;align-items:center;flex-direction:column}
#rk-forecast .rkf-author-side img{width:158px;height:158px;object-fit:cover;border:6px solid rgba(255,255,255,.22);background:#fff;border-radius:50%}
#rk-forecast .rkf-author-side h3{color:#fff;margin:17px 0 0;font-size:1.35rem}
#rk-forecast .rkf-author-side p{color:#c6dbe3;font-size:.85rem;margin:6px 0 0}
#rk-forecast .rkf-author-links{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:18px}
#rk-forecast .rkf-author-links a{display:inline-flex;justify-content:center;align-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #54788a;color:#fff;font-size:.9rem;font-weight:900;text-decoration:none}
#rk-forecast .rkf-author-links a:hover{background:var(--cyan);color:var(--navy)}
#rk-forecast .rkf-author-main{padding:34px 37px}
#rk-forecast .rkf-author-main p{color:var(--copy);margin:16px 0 0}
#rk-forecast .rkf-author-thesis{font-size:1.1rem;line-height:1.65;font-style:italic;font-weight:700;color:var(--ink);background:#f1f8fa;border-left:6px solid var(--cyan);border-radius:13px;padding:19px 22px}
#rk-forecast .rkf-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:950px){#rk-forecast .rkf-grid,#rk-forecast .rkf-hero-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#rk-forecast .rkf-hero,#rk-forecast .rkf-section{padding:42px 25px}#rk-forecast .rkf-author{grid-template-columns:1fr}#rk-forecast .rkf-author-side{padding:25px}#rk-forecast .rkf-grid,#rk-forecast .rkf-grid.two,#rk-forecast .rkf-hero-cards,#rk-forecast .rkf-sources{grid-template-columns:1fr}#rk-forecast .rkf-plot svg{min-width:620px;min-height:0}#rk-forecast .rkf-nav{padding:15px}#rk-forecast .rkf-author-main{padding:25px}#rk-forecast .rkf-hero-title{font-size:clamp(2.15rem,9vw,3.8rem)}}
@media(max-width:520px){#rk-forecast .rkf-hero,#rk-forecast .rkf-section{padding-left:17px;padding-right:17px}#rk-forecast .rkf-hero-title{font-size:clamp(2.05rem,9vw,2.65rem)}#rk-forecast .rkf-meta{display:grid;gap:4px}#rk-forecast .rkf-tab,#rk-forecast .rkf-scenario-button{flex:1 1 100%}#rk-forecast .rkf-tool{padding:18px}#rk-forecast .rkf-nav{padding:13px}#rk-forecast .rkf-table-wrap{overflow:visible}#rk-forecast table,#rk-forecast thead,#rk-forecast tbody,#rk-forecast tr,#rk-forecast td{display:block;min-width:0;width:100%}#rk-forecast thead{position:absolute;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}#rk-forecast tbody{display:grid;gap:13px}#rk-forecast tbody tr{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}#rk-forecast td{border:0;border-bottom:1px solid var(--line)}#rk-forecast td:last-child{border-bottom:0}#rk-forecast td:before{content:attr(data-label);display:block;color:#087d99;font-size:.73rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px}}
@media(prefers-reduced-motion:reduce){#rk-forecast *,#rk-forecast *:before,#rk-forecast *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

</style>
<article id="rk-forecast" aria-label="Domy jednorodzinne 2027 – dane i prognoza rynku ogrzewania">
<div class="rkf-shell">
  <header class="rkf-hero">
    <span class="rkf-kicker">Rynek budowy domów · dane GUS · scenariusze na 2027</span>
    <div class="rkf-hero-title">Ile domów zostanie oddanych w 2027 roku? <span>Prognoza rynku ogrzewania</span></div>
    <p class="rkf-hero-lead">Liczba nowych domów daje punkt wyjścia do rozmowy o rynku pomp ciepła, kotłów, rur i rozdzielaczy. Pokazujemy dane GUS, zakres możliwych wyników na 2027 rok oraz granice tego, co można z nich uczciwie wyliczyć.</p>
    <div class="rkf-hero-tags" aria-label="Tematy artykułu"><span>20 lat kontekstu mieszkaniowego</span><span>oddane budynki jednorodzinne</span><span>trzy warianty na 2027</span><span>rynek urządzeń HVAC</span></div>
    <div class="rkf-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Aktualizacja: <strong>28 września 2026 r.</strong></span><span>Czas czytania: <strong>około 19 minut</strong></span></div>
    <div class="rkf-hero-cards">
      <div class="rkf-hero-card"><strong>Co potwierdza GUS?</strong><p>Oddane domy z lat 2023–2025 i osobny, dłuższy szereg mieszkań ogółem.</p></div>
      <div class="rkf-hero-card"><strong>Co zakładamy na 2027 rok?</strong><p>Trzy warunkowe scenariusze pokazane na interaktywnym wykresie.</p></div>
      <div class="rkf-hero-card"><strong>Co to znaczy dla branży?</strong><p>Skalę inwestycji, której nie należy utożsamiać z roczną sprzedażą urządzeń.</p></div>
    </div>
  </header>
  <nav class="rkf-nav" aria-label="Spis treści"><a href="#rkf-answer">Odpowiedź</a><a href="#rkf-definitions">Definicje</a><a href="#rkf-long-series">20 lat mieszkań</a><a href="#rkf-history">Prognoza domów</a><a href="#rkf-current">Sygnały 2026</a><a href="#rkf-lag">Od budowy do oddania</a><a href="#rkf-method">Metoda</a><a href="#rkf-scenarios">Scenariusze</a><a href="#rkf-market">Potencjał rynku</a><a href="#rkf-equipment">Urządzenia</a><a href="#rkf-timing">Moment zakupu</a><a href="#rkf-update">Aktualizacja prognozy</a><a href="#rkf-limits">Ograniczenia</a><a href="#rkf-sources">Źródła</a><a href="#rkf-faq">FAQ</a><a href="#rkf-author">Autor</a></nav>

  <section class="rkf-section" id="rkf-answer">
    <span class="rkf-eyebrow">Odpowiedź w skrócie</span>
    <h2>Ile domów jednorodzinnych może zostać oddanych w 2027 roku?</h2>
    <p class="rkf-lead">W 2025 r. oddano <strong>86 042 nowe budynki jednorodzinne</strong>. Liczba za rok 2027 jeszcze nie istnieje w statystyce: możemy rozważyć scenariusze, a nie podać pewny wynik. W tym artykule przyjmujemy orientacyjnie <strong>73 tys., 86 tys. lub 99 tys.</strong> budynków przy odmiennych warunkach realizacji inwestycji.</p>
    <div class="rkf-answer"><strong>Najważniejsze rozróżnienie:</strong> Około 208,4 tys. mieszkań oddanych ogółem w 2025 r. nie oznacza 208,4 tys. domów. Jeden budynek jednorodzinny może mieścić do dwóch lokali, a liczba mieszkań obejmuje również budownictwo wielorodzinne.<p>Przykłady potencjału dla rur, rozdzielaczy, pomp ciepła i kotłów wymagają dodatkowych danych o udziale technologii. Liczba ukończonych budynków nie jest oficjalną statystyką sprzedaży urządzeń w roku 2027.</p></div>
    <div class="rkf-grid"><div class="rkf-card"><span class="rkf-number">GUS · 2023</span><h3>96 170</h3><p>Nowych budynków jednorodzinnych oddanych do użytkowania.</p></div><div class="rkf-card"><span class="rkf-number">GUS · 2024</span><h3>85 416</h3><p>Ten sam miernik, spadek wobec 2023 r.</p></div><div class="rkf-card"><span class="rkf-number">GUS · 2025</span><h3>86 042</h3><p>Ten sam miernik, baza trzech scenariuszy na rok 2027.</p></div></div>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-definitions">
    <span class="rkf-eyebrow">Zanim porównasz liczby</span><h2>Budynki, mieszkania, pozwolenia i sprzedaż to różne miary</h2>
    <div class="rkf-table-wrap"><table><thead><tr><th>Wskaźnik</th><th>Co pokazuje</th><th>Czy to liczba nowych domów?</th></tr></thead><tbody>
    <tr><td><strong>Oddane budynki jednorodzinne</strong></td><td>Obiekty ujęte w statystyce budynków oddanych; właściwy punkt wyjścia dla analizy domów.</td><td>Tak, z uwzględnieniem definicji GUS.</td></tr>
    <tr><td><strong>Oddane mieszkania ogółem</strong></td><td>Lokale mieszkalne we wszystkich rodzajach budynków i formach budownictwa.</td><td>Nie.</td></tr>
    <tr><td><strong>Rozpoczęte mieszkania i pozwolenia</strong></td><td>Etapy procesu inwestycyjnego, obejmujące również budynki wielorodzinne.</td><td>Nie. Zmiany wpływają na oddania z opóźnieniem.</td></tr>
    <tr><td><strong>Sprzedane pompy, kotły, rury</strong></td><td>Dostawy do nowych i modernizowanych obiektów, kupowane w różnych momentach.</td><td>Nie. To odrębna statystyka rynku.</td></tr>
    </tbody></table></div>
    <p class="rkf-copy">W tabelach GUS dla 2025 r. do 86 042 budynków jednorodzinnych przypisano 98 014 mieszkań. Dla obliczeń rynku pojedynczych inwestycji konsekwentnie używamy <strong>budynków</strong>, a nie sumy lokali. Dotyczy to też budynków bliźniaczych i szeregowych ujętych w przyjętej klasyfikacji, a nie wyłącznie domów wolnostojących.</p>
  </section>

  <section class="rkf-section" id="rkf-long-series">
    <span class="rkf-eyebrow">Osobny wykres historyczny</span><h2>Ile mieszkań oddawano w Polsce w ostatnich 20 latach?</h2>
    <p class="rkf-lead">Wykres przedstawia <strong>mieszkania oddane ogółem w latach 2006–2025</strong>. Daje kontekst dla zmian w budownictwie mieszkaniowym, lecz obejmuje także mieszkania w budynkach wielorodzinnych. Każdy punkt pokazuje konkretny rok i zmianę względem poprzedniego.</p>
    <div class="rkf-tool" id="rkf-long-series-tool"><h3>Wykres historyczny GUS · 2006–2025</h3><p>Najedź na punkt, wybierz go dotykiem lub przejdź do niego klawiaturą. Odczytasz wartość oraz zmianę rok do roku.</p>
      <div class="rkf-plot" role="group" aria-label="Historyczny wykres mieszkań oddanych ogółem"><svg id="rkf-historical-svg" viewBox="0 0 960 380" role="img" aria-label="Mieszkania oddane ogółem w latach 2006–2025. Dane liczbowe są w tabeli pod wykresem"><text x="35" y="45" fill="#102a3b">Dane liczbowe znajdują się pod wykresem.</text></svg><p class="rkf-plot-desc">Oś pionowa: tysiące mieszkań ogółem, od zera. Seria 2006–2024 pochodzi z BDL GUS; punkt 2025 z rocznej publikacji GUS.</p></div>
      <div class="rkf-chart-readout" role="status" aria-live="polite"><strong id="rkf-historical-title">Dwadzieścia lat danych o mieszkaniach</strong><p id="rkf-historical-text">Wybierz rok na wykresie albo rozwiń tabelę poniżej. Mieszkania ogółem nie oznaczają liczby domów jednorodzinnych.</p></div>
      <p class="rkf-disclosure">Na telefonie wykres można przewinąć poziomo. Punkty są opisane również w tabeli tekstowej, więc dane pozostają dostępne bez korzystania z wykresu.</p>
    </div>
    <details class="rkf-note"><summary><strong>Tabela 2006–2025: mieszkania oddane ogółem, tys.</strong></summary><p>2006: 115,4 · 2007: 133,7 · 2008: 165,2 · 2009: 160,0 · 2010: 135,8 · 2011: 131,0 · 2012: 152,9 · 2013: 145,1 · 2014: 143,2 · 2015: 147,7 · 2016: 163,3 · 2017: 178,3 · 2018: 185,1 · 2019: 207,4 · 2020: 220,8 · 2021: 234,7 · 2022: 238,5 · 2023: 221,3 · 2024: 200,1 · 2025: 208,4. Te liczby nie są liczbą domów.</p></details>
    <p class="rkf-copy">Seria mieszkań pokazuje kontekst cyklu mieszkaniowego, ale nie może służyć jako dwudziestoletni szereg domów. GUS udostępnia dane o budynkach z opisami definicji zmienianych w czasie; bez sprawdzenia porównywalności nie łączymy starszych i nowszych zbiorów w jedną prognozę. Z wykresu nie wynika także, jaka część nowych domów ma podłogówkę albo pompę ciepła.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-history">
    <span class="rkf-eyebrow">Drugi, niezależny wykres</span><h2>Ile domów może zostać oddanych w 2027 roku?</h2>
    <p class="rkf-lead">Tu jednostką są <strong>nowe budynki jednorodzinne</strong>, a nie mieszkania. Punkty z lat 2023–2025 to dane GUS; trzy zakończenia linii na rok 2027 pokazują warunkowe warianty autora. Rok 2026 pozostaje bez wyniku rocznego.</p>
    <div class="rkf-tool" id="rkf-history-tool"><h3>Interaktywny wykres prognozy domów</h3><p>Wskaż wariant, a następnie wybierz punkt na wykresie. Warianty są założeniami autora, nie wynikiem GUS.</p>
      <div class="rkf-scenario-buttons" id="rkf-scenario-buttons" role="group" aria-label="Wariant liczby budynków jednorodzinnych w 2027 roku"><button class="rkf-scenario-button" type="button" data-rkf-scenario="low" aria-pressed="false">Ostrożny · 73 tys.</button><button class="rkf-scenario-button" type="button" data-rkf-scenario="base" aria-pressed="true">Bazowy · 86 tys.</button><button class="rkf-scenario-button" type="button" data-rkf-scenario="high" aria-pressed="false">Wysoki · 99 tys.</button></div>
      <div class="rkf-plot" id="rkf-history-plot" role="group" aria-label="Wykres i objaśnienia danych"><svg id="rkf-svg" viewBox="0 0 960 380" role="img" aria-label="Budynki jednorodzinne 2023–2025 i trzy scenariusze na 2027 rok. Dane liczbowe znajdują się w tabeli poniżej"><text x="35" y="45" fill="#102a3b">Dane liczbowe znajdziesz w tabeli pod wykresem.</text></svg><p class="rkf-plot-desc" id="rkf-plot-desc">Budynki jednorodzinne, tysiące; rok 2026 bez punktu, ponieważ wynik roczny nie jest jeszcze znany.</p></div>
      <div class="rkf-chart-readout" id="rkf-chart-readout" role="status" aria-live="polite"><strong id="rkf-chart-readout-title">2027: 86 000 domów — scenariusz bazowy</strong><p id="rkf-chart-readout-text">Wariant autora bliski wynikowi 2025 r. To założenie, nie liczba ogłoszona przez GUS.</p></div>
      <div class="rkf-chart-key" aria-label="Legenda"><span><i></i>linia ciągła: dane GUS</span><span><i class="rkf-key-forecast"></i>linie przerywane: scenariusze autora</span></div>
      <p class="rkf-disclosure">2026 r. jest na osi czasu, ale nie ma punktu z liczbą domów. Przerywane odcinki łączą ostatni potwierdzony rok z wariantami na 2027 r. i nie są szacunkiem dla 2026 r. Rozpiętość wariantów nie jest przedziałem ufności. Na małym ekranie przewiń wykres poziomo; wartości pozostają dostępne w tabeli.</p>
    </div>
    <details class="rkf-note"><summary><strong>Tabela liczb: budynki jednorodzinne i warianty na 2027 r.</strong></summary><div class="rkf-table-wrap"><table><thead><tr><th>Rok</th><th>Liczba budynków</th><th>Status danych</th></tr></thead><tbody><tr><td>2023</td><td>96 170</td><td>Dane GUS</td></tr><tr><td>2024</td><td>85 416</td><td>Dane GUS</td></tr><tr><td>2025</td><td>86 042</td><td>Dane GUS</td></tr><tr><td>2026</td><td>—</td><td>Brak wyniku rocznego w dacie aktualizacji</td></tr><tr><td>2027</td><td>73 000 / 86 000 / 99 000</td><td>Ostrożny / bazowy / wysoki scenariusz autora</td></tr></tbody></table></div></details>
    <p class="rkf-copy">Historyczny wykres mieszkań umieszczony powyżej korzysta z innej jednostki. Jego wartości nie są wykorzystywane do mnożenia liczby domów ani urządzeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-current">
    <span class="rkf-eyebrow">Co już wiadomo w 2026 r.?</span><h2>Sygnały bieżące nie są wynikiem za cały rok</h2>
    <p class="rkf-lead">Według GUS w styczniu–sierpniu 2026 r. oddano <strong>132,2 tys. mieszkań ogółem</strong>, o 4,5% więcej rok do roku. Rozpoczęto budowę <strong>153,5 tys. mieszkań</strong> (wzrost o 4,8%), a pozwolenia i zgłoszenia obejmowały <strong>193,3 tys. mieszkań</strong> (wzrost o 14,9%). Żadna z tych liczb nie mówi wprost, ile budynków jednorodzinnych będzie oddanych w 2027 r.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Popyt i finanse</span><h3>Koszt kredytu</h3><p>Zmiana raty i dostępności finansowania wpływa na nowe decyzje; opóźnienie do oddania zależy od czasu budowy.</p></article><article class="rkf-card"><span class="rkf-number">Podaż</span><h3>Materiały i wykonawcy</h3><p>Terminy prac i ceny mogą przyspieszyć lub odsunąć odbiór domu bez zmiany liczby wcześniejszych pozwoleń.</p></article><article class="rkf-card"><span class="rkf-number">Reguły i decyzje</span><h3>Technologia ogrzewania</h3><p>Koszt energii, warunki lokalne i wymagania inwestora zmieniają wybór źródła i udział ogrzewania płaszczyznowego.</p></article></div>
    <p class="rkf-copy">Przeciętny czas wznoszenia budynku jednorodzinnego oddanego w 2025 r. wyniósł według GUS <strong>51 miesięcy</strong>. Jest to średnia historyczna ukończonych inwestycji, a nie stałe opóźnienie, którym można mechanicznie przesunąć liczbę wydanych pozwoleń na rok 2027.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-lag"><span class="rkf-eyebrow">Od sygnału do oddania</span><h2>Od rozpoczęcia budowy do oddania domu: skąd bierze się opóźnienie?</h2>
    <p class="rkf-lead">Decyzja o budowie, rozpoczęcie prac, zamówienie instalacji i oddanie domu do użytkowania przypadają na różne momenty. Wskaźniki z 2026 r. są więc wskazówką o aktywności rynku, lecz bez podziału na budynki i kontroli czasu realizacji nie określają liczby nowych domów w 2027 r.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">01 · zamiar</span><h3>Pozwolenie lub zgłoszenie</h3><p>Potwierdza etap formalny. Część inwestycji ruszy później, część zmieni zakres, a zbiorczy wskaźnik mieszkań obejmuje także zabudowę wielorodzinną.</p></article><article class="rkf-card"><span class="rkf-number">02 · realizacja</span><h3>Rozpoczęcie i wykonanie</h3><p>Prace zależą od finansowania, ekip, działki i harmonogramu. Tempo poszczególnych domów jest różne; średni czas budowy nie jest terminem dla każdego pozwolenia.</p></article><article class="rkf-card"><span class="rkf-number">03 · statystyka</span><h3>Oddanie do użytkowania</h3><p>Dopiero tu budynek trafia do rocznego wyniku. Instalacje i źródło ciepła mogły zostać kupione wcześniej, dlatego odbiór nie jest datą sprzedaży urządzenia.</p></article></div>
    <div class="rkf-note"><p><strong>Jak czytać wskaźniki:</strong> obserwuj ten sam rodzaj obiektu na kolejnych etapach i aktualizuj prognozę po rocznych danych o oddanych budynkach. Zmiana liczby pozwoleń na wszystkie mieszkania nie jest gotowym przelicznikiem domów na kolejny rok.</p></div>
  </section>

  <section class="rkf-section" id="rkf-method">
    <span class="rkf-eyebrow">Metoda i uczciwe granice</span><h2>Jak powstały scenariusze na 2027 rok?</h2>
    <p class="rkf-lead">Podstawą jest potwierdzona wartość 86 042 budynków w 2025 r. Zamiast dopasowywać krzywą do liczby wszystkich mieszkań, budujemy trzy <strong>warunkowe warianty</strong> dla liczby budynków jednorodzinnych: 85%, 100% i 115% tej wartości. Po zaokrągleniu daje to odpowiednio około 73, 86 i 99 tys. budynków.</p>
    <div class="rkf-table-wrap"><table><thead><tr><th>Wariant autorski</th><th>Założona liczba domów 2027</th><th>Co musiałoby sprzyjać temu wynikowi?</th></tr></thead><tbody>
      <tr><td><strong>Ostrożny</strong></td><td>73 000</td><td>Słabsza dostępność kredytów i presja na budżety gospodarstw domowych, wyższe lub bardziej nieprzewidywalne koszty energii i materiałów oraz opóźnienia wykonawcze mogłyby przesunąć część odbiorów. Napięcia geopolityczne mogłyby nasilić te czynniki.</td></tr>
      <tr><td><strong>Bazowy</strong></td><td>86 000</td><td>Względnie stabilne warunki finansowania i pracy wykonawców oraz brak silnego impulsu cenowego na rynku paliw i energii pozwoliłyby utrzymać skalę oddań zbliżoną do 2025 r. Wahania lokalne nadal będą występować.</td></tr>
      <tr><td><strong>Wysoki</strong></td><td>99 000</td><td>Poprawa dostępności finansowania, stabilniejsze koszty energii i sprawniejsza realizacja budów mogłyby zwiększyć liczbę domów ukończonych w danym roku. Wymagałoby to również korzystnego otoczenia gospodarczego i braku istotnych zakłóceń dostaw.</td></tr>
    </tbody></table></div>
    <p class="rkf-copy">Warunki w tabeli są <strong>opisem scenariuszy, a nie prognozą stóp procentowych, cen paliw czy rozwoju sytuacji geopolitycznej</strong>. Gospodarka, decyzje pojedynczych inwestorów i terminy odbiorów mogą działać jednocześnie w różnych kierunkach. Sam wzrost liczby domów nie przesądza też o udziale pomp ciepła lub kotłów gazowych.</p>
    <div class="rkf-note"><p><strong>To nie jest 85-procentowy przedział ufności.</strong> Wybrane mnożniki służą do pokazania wrażliwości wyników. Zmienna liczba budynków w 2026 r. oraz udział domów z poszczególnymi instalacjami nie są obecnie ustalone przez te dane. Po publikacji pełnych wyników 2026 r. należy scenariusze przeliczyć.</p></div>
    <p class="rkf-copy">Przygotowując założenia ogrzewania dla pojedynczego domu, punkt wyjścia stanowią <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty ciepła pomieszczeń</a> i warunki budynku, a nie udział danej technologii w ogólnopolskim scenariuszu. Dlatego dalsza analiza rynku nie dobiera wyposażenia do konkretnej inwestycji.</p>


  </section>

  <section class="rkf-section rkf-soft" id="rkf-scenarios">
    <span class="rkf-eyebrow">Czytanie prognozy</span><h2>Czego zmiana jednej przesłanki nie wyjaśni?</h2>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Niepewność gospodarcza</span><h3>Otoczenie makro</h3><p>Wzrost gospodarczy, dochody, stopy procentowe, ceny energii i dostępność kredytów mają znaczenie dla decyzji inwestycyjnych. Nie podstawiamy tu prognozy pojedynczej stopy do nieudokumentowanego wzoru na liczbę domów.</p></article><article class="rkf-card"><span class="rkf-number">Niepewność lokalna</span><h3>Realizacja i technologia</h3><p>Region, plan miejscowy, gotowość działki, tempo ekip, konstrukcja budynku i preferencje użytkowników wpływają na wynik. Odłożenie odbioru o kilka miesięcy może przenieść dom między latami statystycznymi.</p></article></div>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Kredyt</span><h3>Koszt i dostępność finansowania</h3><p>Zmiana warunków kredytowych może wpłynąć na decyzję o rozpoczęciu inwestycji i tempo jej domknięcia. Wpływ na oddania w 2027 r. zależy od etapu, na którym znajdują się już prowadzone budowy.</p></article><article class="rkf-card"><span class="rkf-number">Energia</span><h3>Paliwa, energia i materiały</h3><p>Ceny energii i paliw wpływają na koszty eksploatacji oraz wybór źródła ciepła. Koszty materiałów i usług mogą dodatkowo zmieniać budżet budowy, niezależnie od wyboru ogrzewania.</p></article><article class="rkf-card"><span class="rkf-number">Makro i mikro</span><h3>Gospodarka i sytuacja gospodarstw</h3><p>Dochody, zatrudnienie i nastroje wpływają na popyt krajowy, a decyzja pojedynczej rodziny zależy także od działki, oszczędności, projektu i dostępności ekip.</p></article><article class="rkf-card"><span class="rkf-number">Geopolityka</span><h3>Ryzyko zakłóceń</h3><p>Zdarzenia międzynarodowe mogą zmieniać ceny paliw, warunki dostaw i oczekiwania inwestorów. Nie przypisujemy im jednej liczby domów ani prawdopodobieństwa każdego wariantu.</p></article></div>
    <p class="rkf-copy">Dla producentów i wykonawców najważniejsze jest rozróżnienie <strong>liczby oddanych domów</strong> od <strong>momentu zakupu urządzenia</strong>. Źródło ciepła i rury bywają kupowane na długo przed odbiorem, a dostawy obejmują również modernizacje. Rachunek poniżej szacuje wyposażenie przypisane do kohorty budynków, nie obroty firm w konkretnym roku.</p>
  </section>

  <section class="rkf-section" id="rkf-market">
    <span class="rkf-eyebrow">Od liczby domów do skali rynku</span><h2>Jak przejść od liczby domów do szacunku dla branży?</h2>
    <p class="rkf-lead">Liczba oddanych budynków jest jedynie bazą. Aby oszacować liczbę domów z daną technologią, potrzeba wiarygodnego udziału tej technologii w nowych domach. Przytoczone tablice GUS <strong>nie podają</strong> udziału pomp ciepła, kotłów gazowych ani ogrzewania podłogowego w tej kohorcie.</p>
    <div class="rkf-answer"><strong>Przykład pokazujący skalę, a nie sprzedaż:</strong><p>Gdyby jakaś technologia wystąpiła w dodatkowych 10% nowych domów, oznaczałoby to około <strong>7 300 domów</strong> w wariancie ostrożnym, <strong>8 600</strong> w bazowym lub <strong>9 900</strong> w wysokim. Jest to wyłącznie iloczyn liczby domów i hipotetycznego udziału 10%; nie oznacza liczby urządzeń kupionych w 2027 r.</p></div>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Źródła ciepła</span><h3>Pompy i kotły</h3><p>Osobne badania udziałów technologii są konieczne do oszacowania domów korzystających z danego źródła. Modernizacje budynków istniejących tworzą dodatkowy rynek poza tym szacunkiem.</p></article><article class="rkf-card"><span class="rkf-number">Dystrybucja</span><h3>Rury i rozdzielacze</h3><p>Liczba domów z podłogówką nie określa metrażu rur ani liczby rozdzielaczy. Zależą one od powierzchni czynnej, rozstawu, pętli i kondygnacji.</p></article><article class="rkf-card"><span class="rkf-number">Sprzedaż</span><h3>Terminy i kanały</h3><p>Dostawy do hurtowni, zakupy instalatorów i montaż w nowym domu nie muszą wystąpić w tym samym roku, w którym dom zostanie oddany.</p></article></div>
    <p class="rkf-copy">Potrzebne parametry dla pojedynczej budowy wyjaśniają poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur</a>, <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a> i <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">współpracy podłogówki z pompą ciepła</a>. Prognoza ogólnopolska nie zastępuje tych obliczeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-equipment">
    <span class="rkf-eyebrow">Potencjał kilku kategorii HVAC</span><h2>Ile urządzeń mogłoby trafić do domów oddanych w 2027 roku?</h2>
    <p class="rkf-lead">Warianty 73, 86 i 99 tys. opisują liczbę budynków. Poniżej przeliczamy je na <strong>warunkowy potencjał instalacji w tych domach</strong>. Udziały technologii przyjęto wyłącznie jako jawne przykłady rachunkowe: <strong>nie są zmierzonymi udziałami nowych domów ani prognozą sprzedaży w 2027 r.</strong></p>
    <div class="rkf-table-wrap"><table>
      <thead><tr><th>Kategoria</th><th>Hipotetyczne założenie do przykładu</th><th>73 tys. domów</th><th>86 tys. domów</th><th>99 tys. domów</th></tr></thead>
      <tbody>
        <tr><td><strong>Pompy ciepła</strong></td><td>W 50% domów po jednej pompie.</td><td>36 500</td><td>43 000</td><td>49 500</td></tr>
        <tr><td><strong>Kotły gazowe</strong></td><td>W 20% domów po jednym kotle.</td><td>14 600</td><td>17 200</td><td>19 800</td></tr>
        <tr><td><strong>Centralne rekuperatory</strong></td><td>W 40% domów po jednej centrali z odzyskiem ciepła.</td><td>29 200</td><td>34 400</td><td>39 600</td></tr>
        <tr><td><strong>Osobne zasobniki c.w.u.</strong></td><td>W 60% domów po jednym zewnętrznym zasobniku; bez zbiorników zintegrowanych.</td><td>43 800</td><td>51 600</td><td>59 400</td></tr>
        <tr><td><strong>Osobne bufory</strong></td><td>W 25% domów z przykładowo założoną pompą ciepła po jednym buforze.</td><td>około 9 100</td><td>około 10 800</td><td>około 12 400</td></tr>
      </tbody>
    </table></div>
    <p class="rkf-copy"><strong>Jak powstały liczby?</strong> Mnożymy liczbę domów przez udział założony dla danej kategorii; bufor liczymy jako liczbę domów z pompą × 25%. Przykładowo 86 000 × 50% daje 43 000 domów z pompą, a 43 000 × 25% daje 10 750 potencjalnych osobnych buforów, czyli około 10 800 po zaokrągleniu do setek. Odsetki 50%, 20%, 40%, 60% i 25% służą <strong>tylko pokazaniu mechanizmu</strong> i należy je zastąpić reprezentatywnymi danymi, zanim liczby posłużą do planowania produkcji.</p>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Źródło i wentylacja</span><h3>Udziały mierzą różne rzeczy</h3><p>Dom z kotłem lub pompą ciepła może mieć również rekuperator. Udział wentylacji liczymy osobno, a źródła ciepła mogą występować w układach mieszanych; procentów z różnych kategorii nie należy sumować.</p></article><article class="rkf-card"><span class="rkf-number">Magazynowanie i c.w.u.</span><h3>Nie każde źródło oznacza osobny zbiornik</h3><p>Część rozwiązań ma zintegrowany zasobnik, inne przygotowują ciepłą wodę bez osobnego zbiornika. Potrzeba osobnego bufora wynika z hydrauliki, wymaganych przepływów, pojemności instalacji i dokumentacji urządzenia.</p></article></div>
    <div class="rkf-note"><p><strong>Dlaczego nie podajemy metrażu rur?</strong> Nie znamy udziału domów z podłogówką ani powierzchni czynnych, rozstawów, długości dobiegów i liczby pętli. Tak samo z liczby domów nie wynika liczba rozdzielaczy. Przeliczenie bez tych informacji dałoby liczbę wyglądającą precyzyjnie, lecz pozbawioną wiarygodnej podstawy.</p></div>
    <p class="rkf-copy">Dane CEEB o źródłach ciepła dotyczą <strong>zasobu domów istniejących</strong>, a nie wyłącznie budynków oddanych w jednym roku. Nie przenosimy ich udziałów na nowych inwestorów. Nawet gdy poznamy lepsze udziały technologii w nowych domach, do prognozy <strong>sprzedaży w samym 2027 r.</strong> potrzebna będzie jeszcze informacja o czasie zakupu, modernizacjach, wymianach oraz zapasach w kanale dystrybucji.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-timing"><span class="rkf-eyebrow">Z perspektywy producenta</span><h2>Kiedy nowy dom tworzy popyt na pompę, rury i rozdzielacz?</h2>
    <p class="rkf-lead">Statystyka oddań pokazuje zakończenie inwestycji. Popyt na poszczególne elementy powstaje wcześniej i w różnym czasie. Prognozę budynków warto więc połączyć z harmonogramem zakupów, a nie traktować jako gotową prognozę faktur branży HVAC.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Projekt i dobór</span><h3>Parametry instalacji</h3><p>Na podstawie obciążeń cieplnych, podziału obwodów i źródła ciepła powstaje lista potrzebnych rozwiązań. To etap ważny dla przyszłego wyboru technologii.</p></article><article class="rkf-card"><span class="rkf-number">Zakup i montaż</span><h3>Materiały oraz urządzenia</h3><p>Rury, rozdzielacze, armatura i źródła ciepła mogą zostać zamówione w różnym terminie. Terminy zależą od prac na budowie i kanału sprzedaży.</p></article><article class="rkf-card"><span class="rkf-number">Odbiór</span><h3>Ujęcie domu w GUS</h3><p>Ukończony budynek zostaje zaliczony do wyniku rocznego, nawet jeżeli część instalacji kupiono lub zamontowano w poprzednim roku.</p></article></div>
    <div class="rkf-cta" aria-label="Współpraca z producentami i dystrybutorami HVAC"><p class="rkf-cta-kicker">Dla producentów i dystrybutorów HVAC</p><h3>Wielkość rynku to punkt wyjścia. Ważny jest także moment wyboru technologii.</h3><p>Prognoza 2027 pomaga ocenić skalę nowych inwestycji. Jeżeli rozwijasz rury, rozdzielacze, automatykę, źródła ciepła, rekuperatory lub urządzenia do przygotowania c.w.u., zobacz, jak Projekt-Ogrzewania.pl dociera do inwestorów na etapie poznawania wymagań i porównywania rozwiązań.</p><a class="rkf-button" href="https://projekt-ogrzewania.pl/wspolpraca/">Zobacz możliwości współpracy dla producentów</a></div>
  </section>

  <section class="rkf-section" id="rkf-update"><span class="rkf-eyebrow">Prognoza, do której można wrócić</span><h2>Jak sprawdzić prognozę, gdy pojawią się nowe dane?</h2>
    <p class="rkf-lead">Scenariusze odnoszą się do informacji dostępnych w dniu aktualizacji tekstu. Po ogłoszeniu kolejnych wyników trzeba porównać te same jednostki i zdecydować, czy założenia 73, 86 i 99 tys. domów nadal mają sens.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Krok 1</span><h3>Pełny rok 2026</h3><p>Sprawdź roczną liczbę <strong>budynków jednorodzinnych</strong> oddanych do użytkowania. Miesięczne dane o wszystkich mieszkaniach nie zastępują tego wyniku.</p></article><article class="rkf-card"><span class="rkf-number">Krok 2</span><h3>Przyszły strumień budów</h3><p>Porównaj rozpoczęcia i pozwolenia w adekwatnym przekroju wraz z informacjami o czasie realizacji; unikaj prostego przesuwania całej serii o jeden rok.</p></article><article class="rkf-card"><span class="rkf-number">Krok 3</span><h3>Udziały technologii</h3><p>Gdy pojawią się reprezentatywne dane o źródłach ciepła i podłogówce w nowych domach, można ostrożniej przeliczyć potencjał kategorii produktów.</p></article></div>
    <div class="rkf-note green"><p><strong>Zasada aktualizacji:</strong> nowe dane GUS służą do zmiany scenariusza domów, a dane o technologiach do zmiany szacunków wyposażenia. Każde źródło musi opisywać tę samą grupę budynków i porównywalny okres.</p></div>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-limits">
    <span class="rkf-eyebrow">Jak interpretować wyniki</span><h2>Pięć ograniczeń, które zmieniają znaczenie liczb</h2>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">01</span><h3>Odbiór to nie zakup</h3><p>Elementy instalacji można zamówić rok wcześniej; statystyka oddań nie opisuje sprzedaży w 2027 r.</p></article><article class="rkf-card"><span class="rkf-number">02</span><h3>Udziały technologii są nieustalone</h3><p>Przytoczone dane nie podają udziału podłogówki, pomp i kotłów w nowo oddanych domach.</p></article><article class="rkf-card"><span class="rkf-number">03</span><h3>Nowe domy to część rynku</h3><p>Modernizacje, wymiany źródeł i instalacje w mieszkaniach wielorodzinnych są poza tym rachunkiem.</p></article><article class="rkf-card"><span class="rkf-number">04</span><h3>Rura zależy od projektu</h3><p>Metrażu rur nie można policzyć z samej liczby domów: potrzebne są powierzchnie czynne, rozstawy i podział obwodów.</p></article><article class="rkf-card"><span class="rkf-number">05</span><h3>Źródła mogą się łączyć</h3><p>Dom może wykorzystywać więcej niż jedno źródło. Liczby oddań budynków nie wystarczą do ustalenia liczby urządzeń.</p></article></div>
    <div class="rkf-note green"><p><strong>Wniosek dla producenta:</strong> do planowania sprzedaży połącz wariant liczby nowych domów z rzeczywistymi udziałami technologii, momentem zakupu, modernizacjami, kanałem dystrybucji i danymi zamówień.</p></div>
    <p class="rkf-copy">Dla inwestora w pojedynczym domu statystyczny udział instalacji nie odpowiada na pytanie, czy <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">podłogówka pokryje obciążenie cieplne</a>, ile pętli potrzeba ani jak zrównoważyć obieg. To rozstrzyga projekt z obliczeniami.</p>
    <div class="rkf-cta"><h3>Statystyka pomaga planować rynek. Projekt pozwala zbudować konkretną instalację.</h3><p>Przed zamówieniem rur i rozdzielacza sprawdź obciążenie cieplne pomieszczeń, powierzchnię aktywną, temperatury, rozstawy, przepływy i opory. Dokumentacja wykonawcza łączy te wyniki w jeden układ.</p><a class="rkf-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt podłogówki dla swojego domu</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora.</small></div>
  </section>

  <section class="rkf-section" id="rkf-sources"><span class="rkf-eyebrow">Weryfikacja i możliwość aktualizacji</span><h2>Źródła danych i sposób wyznaczania wariantów</h2>
    <p class="rkf-lead">Liczby oficjalne pochodzą z GUS. Serię mieszkań ogółem 2006–2024 przedstawiono po zaokrągleniu do 100 mieszkań na podstawie rocznej zmiennej 748601 w BDL; punkt za 2025 r. (208,4 tys.) pochodzi z późniejszej publikacji rocznej GUS. Tabele nowych budynków jednorodzinnych za 2023, 2024 i 2025 pochodzą z trzech publikacji GUS. Scenariusze są obliczeniami autora.</p>
    <div class="rkf-sources">
      <div class="rkf-source"><a href="https://bdl.stat.gov.pl/bdl/dane/podgrup/wymiary/12/603/3824" target="_blank" rel="nofollow noopener noreferrer">GUS BDL – mieszkania oddane do użytkowania</a><p>Roczny szereg wszystkich mieszkań 2006–2024; nie utożsamiać go z liczbą domów. Dane zaokrąglono do 0,1 tys.</p></div>
      <div class="rkf-source"><a href="https://stat.gov.pl/download/gfx/portalinformacyjny/pl/defaultaktualnosci/5478/13/21/1/budownictwo_w_2023_r..pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2023 r., tablica 2</a><p>96 170 nowych budynków jednorodzinnych oddanych w 2023 r.</p></div>
      <div class="rkf-source"><a href="https://stat.gov.pl/files/gfx/portalinformacyjny/pl/defaultaktualnosci/5478/13/25/1/budownictwo_w_2024_roku_2.pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2024 r., tablica 2</a><p>85 416 nowych budynków jednorodzinnych oddanych w 2024 r.</p></div>
      <div class="rkf-source"><a href="https://lublin.stat.gov.pl/files/gfx/lublin/pl/defaultstronaopisowa/1055/1/1/opracowanie_sygnalne_2025_4_budownictwo.pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2025 r., tablica 2</a><p>86 042 nowych budynków jednorodzinnych, 98 014 mieszkań w nich; 208,4 tys. oddanych mieszkań ogółem; średni czas budowy domu 51,0 miesięcy.</p></div>
      <div class="rkf-source"><a href="https://ssgk.stat.gov.pl/Budownictwo_mieszkaniowe.html" target="_blank" rel="nofollow noopener noreferrer">GUS – budownictwo mieszkaniowe, sierpień 2026</a><p>Wstępne liczby mieszkań ogółem, rozpoczynanych i objętych pozwoleniami od stycznia do sierpnia.</p></div>
      <div class="rkf-source"><a href="https://zone.gunb.gov.pl/pl/raporty/struktura_budynkow_zrodla_co" target="_blank" rel="nofollow noopener noreferrer">GUNB / CEEB – struktura źródeł w istniejących domach</a><p>Oficjalny raport o zasobie budynków jednorodzinnych; jego udziałów nie przeniesiono na domy oddane w 2027 r.</p></div>
      <div class="rkf-source"><a href="https://bdl.stat.gov.pl/bdl/dane/podgrup/temat/12/573/1735" target="_blank" rel="nofollow noopener noreferrer">GUS BDL – metadane i zmiana definicji</a><p>W archiwum osobno opisano stare i nowe definicje budynków; przed łączeniem szeregów konieczna jest kontrola.</p></div>
    </div><p class="rkf-copy">Dla odtworzenia wariantów przyjmij: budynki 2027 = 86 042 × wybrany mnożnik (0,85 / 1,00 / 1,15), po czym zaokrąglij do pełnych tysięcy. Przykład dodatkowych 10% domów z technologią jest jedynie mnożeniem przez 0,10. Tabela urządzeń przedstawia niezależne założenia przykładowe, a nie zmierzone udziały rynku; bufor liczony jest warunkowo tylko dla części domów z pompą. Sprzedaż urządzeń wymaga odrębnych danych i czasu zakupu. Wynik nie ma dokładności większej od przyjętych założeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-faq"><span class="rkf-eyebrow">Najczęstsze pytania</span><h2>FAQ: nowe domy i rynek ogrzewania w 2027 roku</h2><div class="rkf-faq">
    <details><summary>Czy 86 tys. domów w 2027 r. jest prognozą GUS?</summary><p>Nie. To bazowy scenariusz autora, celowo zbliżony do potwierdzonych 86 042 domów oddanych w 2025 r. GUS nie podał jeszcze wyniku za 2027 r.</p></details>
    <details><summary>Dlaczego 20-letni wykres pokazuje mieszkania, a nie domy?</summary><p>Pełna dostępna tutaj seria 2006–2025 dotyczy mieszkań ogółem. Pokazujemy osobno potwierdzone liczby budynków jednorodzinnych za 2023–2025. Łączenie różnych mierników pod jednym podpisem wprowadzałoby w błąd.</p></details>
    <details><summary>Czy mieszkania oddane przez inwestorów indywidualnych to liczba domów?</summary><p>Nie. Forma budownictwa opisuje inwestora i lokale, a nie jest równoważna liczbie budynków jednorodzinnych. Klasyfikacja form zmieniała się również w czasie.</p></details>
    <details><summary>Czy pozwolenia wydane w 2026 r. wskazują liczbę domów oddanych w 2027 r.?</summary><p>Nie wprost. Pozwolenia odnoszą się do przyszłych budów, dane bieżące GUS dotyczą wielu rodzajów mieszkań, a czas realizacji inwestycji jest zróżnicowany.</p></details>
    <details><summary>Ile pomp ciepła sprzeda się w 2027 r. do nowych domów?</summary><p>Nie ma wiarygodnej liczby sprzedaży wyliczalnej z samych oddań. Potrzebne są dane o udziale pomp w nowych domach i terminie ich zakupu; także wymiany urządzeń w istniejących budynkach wpływają na roczną sprzedaż.</p></details>
    <details><summary>Czy wykres podaje udział pomp ciepła i kotłów gazowych?</summary><p>Nie. Wykres przedstawia potwierdzoną liczbę domów i trzy warianty liczby oddanych budynków. Udziały technologii wymagają osobnego badania dla tej samej grupy domów.</p></details>
    <details><summary>A co z domami z podłogówką i grzejnikami?</summary><p>Układ mieszany jest możliwy. Bez osobnych danych o udziałach takich układów nie można przypisać mu ogólnopolskiej liczby domów na podstawie samych oddań.</p></details>
    <details><summary>Czy z prognozy domów można obliczyć metraż rur do zakupu?</summary><p>Nie. Dla konkretnego domu potrzebny jest rzut, bilans cieplny, podział pętli, rozstawy, dobiegi i obliczenia hydrauliczne. W skali kraju dochodzi nieznany udział domów z podłogówką.</p></details>
    <details><summary>Czy jeden dom z podłogówką zawsze oznacza jeden rozdzielacz?</summary><p>Nie. Liczba rozdzielaczy zależy od kondygnacji, geometrii i układu obwodów. Z liczby oddanych domów nie wynika liczba rozdzielaczy kupionych w roku ich oddania.</p></details>
    <details><summary>Kiedy należy zaktualizować prognozę?</summary><p>Po publikacji rocznego wyniku GUS za 2026 r. dla budynków jednorodzinnych, a także po uzyskaniu porównywalnych danych o technologiach w nowych domach.</p></details>
  </div></section>

  <section class="rkf-section rkf-author-section" id="rkf-author"><span class="rkf-eyebrow">Opracowanie i weryfikacja</span><h2>Autor: Robert Kucharski</h2>
    <div class="rkf-author">
      <aside class="rkf-author-side"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC" width="400" height="400" loading="lazy" decoding="async"><h3>Robert Kucharski</h3><p>CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</p><div class="rkf-author-links" aria-label="Profile autora"><a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" 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="rkf-author-main"><div class="rkf-author-thesis">Liczba oddanych domów jest punktem wyjścia do analizy rynku. Sama nie mówi jeszcze, ile pomp, kotłów i rozdzielaczy sprzedano w tym samym roku.</div><p>Robert Kucharski projektuje instalacje ogrzewania podłogowego i prowadzi analizy cieplne oraz hydrauliczne budynków. W tym opracowaniu oddziela dane GUS o oddanych budynkach od warunkowych scenariuszy na 2027 r. i od szacunków dotyczących wyposażenia.</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</a>.</p></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"}},
    {"@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/"},
    {"@type":"Organization","@id":"https://sobir.pl/#organization","name":"Sobir.pl","url":"https://sobir.pl/"},
    {"@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, specjalista HVAC","worksFor":{"@id":"https://projekt-ogrzewania.pl/#organization"},"sameAs":["https://www.linkedin.com/in/robert-kucharski-38069b48/","https://www.facebook.com/projektogrzewaniapl","https://x.com/Projekt_HVAC"]},
    {"@type":"BreadcrumbList","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rk-forecast-breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona główna","item":"https://projekt-ogrzewania.pl/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://projekt-ogrzewania.pl/blog/"},{"@type":"ListItem","position":3,"name":"Domy jednorodzinne 2027 – prognoza rynku ogrzewania","item":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/"}]},
    {"@type":"WebPage","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#webpage","url":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/","name":"Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania","inLanguage":"pl-PL","isPartOf":{"@id":"https://projekt-ogrzewania.pl/#website"},"breadcrumb":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rk-forecast-breadcrumb"},"mainEntity":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#article"}},
    {"@type":"TechArticle","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#article","headline":"Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania","description":"Dane GUS o oddanych domach, dwadzieścia lat danych o mieszkaniach i autorskie scenariusze dla rynku ogrzewania w 2027 roku.","inLanguage":"pl-PL","author":{"@id":"https://projekt-ogrzewania.pl/#robert-kucharski"},"publisher":{"@id":"https://projekt-ogrzewania.pl/#organization"},"mainEntityOfPage":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#webpage"},"isAccessibleForFree":true,"about":["budynki jednorodzinne oddane do użytkowania","rynek ogrzewania w Polsce","ogrzewanie podłogowe","prognoza scenariuszowa 2027"]},
    {"@type":"WebApplication","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#chart","name":"Interaktywny wykres domów jednorodzinnych i scenariuszy na 2027 rok","url":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rkf-history","applicationCategory":"EducationalApplication","operatingSystem":"Przeglądarka internetowa","inLanguage":"pl-PL","isAccessibleForFree":true,"description":"Wykres danych GUS o domach jednorodzinnych oraz trzech scenariuszy autorskich na 2027 rok. Dwudziestoletni szereg mieszkań ogółem przedstawia drugi, oddzielny wykres."}
  ]
}
</script>
<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-forecast");
  if (!root) { return; }
  if (root.getAttribute("data-rkf-ready") === "true") { return; }
  root.setAttribute("data-rkf-ready", "true");

  var flats = [[2006,115.4],[2007,133.7],[2008,165.2],[2009,160.0],[2010,135.8],[2011,131.0],[2012,152.9],[2013,145.1],[2014,143.2],[2015,147.7],[2016,163.3],[2017,178.3],[2018,185.1],[2019,207.4],[2020,220.8],[2021,234.7],[2022,238.5],[2023,221.3],[2024,200.1],[2025,208.4]];
  var houses = [[2023,96.170],[2024,85.416],[2025,86.042]];
  var scenarios = {
    low: {name:"ostrożny", value:73, color:"#db613e", note:"Wariant odpowiadający około 85% poziomu z 2025 r. Zakłada słabsze tempo oddawania domów; nie jest wynikiem GUS."},
    base: {name:"bazowy", value:86, color:"#078eac", note:"Wariant bliski liczbie budynków z 2025 r. Jest autorskim punktem odniesienia, a nie prognozą GUS."},
    high: {name:"wysoki", value:99, color:"#168267", note:"Wariant odpowiadający około 115% poziomu z 2025 r. Wymagałby większej liczby zakończonych inwestycji."}
  };
  var selected = "base";
  var ns = "http://www.w3.org/2000/svg";
  var svg = root.querySelector("#rkf-svg");
  var historicalSvg = root.querySelector("#rkf-historical-svg");
  var format = new Intl.NumberFormat("pl-PL", {maximumFractionDigits:0});
  var oneDecimal = new Intl.NumberFormat("pl-PL", {minimumFractionDigits:1,maximumFractionDigits:1});

  function create(name, attrs, value) {
    var node = document.createElementNS(ns, name);
    Object.keys(attrs).forEach(function (key) { node.setAttribute(key, attrs[key]); });
    if (value !== undefined) { node.textContent = value; }
    return node;
  }

  function append(name, attrs, value, parent) {
    var node = create(name, attrs, value);
    (parent || svg).appendChild(node);
    return node;
  }

  function readout(title, body) {
    root.querySelector("#rkf-chart-readout-title").textContent = title;
    root.querySelector("#rkf-chart-readout-text").textContent = body;
  }

  function selectedReadout() {
    var value = scenarios[selected];
    readout("2027: " + format.format(value.value * 1000) + " domów — scenariusz " + value.name, value.note);
  }

  function interactivePoint(x, y, color, label, title, message, radius, scenarioKey) {
    var group = append("g", {"class":"rkf-chart-point",tabindex:"0",role:"button","aria-label":label});
    append("circle", {cx:x,cy:y,r:radius,fill:"#ffffff",stroke:color,"stroke-width":"3"},undefined,group);
    append("circle", {cx:x,cy:y,r:Math.max(radius + 11, 17),fill:"transparent"},undefined,group);
    append("title",{},label,group);
    group.addEventListener("focus",function () { readout(title,message); });
    group.addEventListener("pointerenter",function () { readout(title,message); });
    group.addEventListener("pointerleave",selectedReadout);
    group.addEventListener("click",function () {
      if (scenarioKey) { selected = scenarioKey; render(); }
      else { readout(title,message); }
    });
    group.addEventListener("keydown",function (event) {
      if (event.key === "Enter" || event.key === " ") {
        event.preventDefault();
        if (scenarioKey) { selected = scenarioKey; render(); }
        else { readout(title,message); }
      }
    });
  }

  function axes(min, max, ticks, xPositions, title) {
    var yTop = 75, yBottom = 298, left = 76, right = 892;
    append("text",{x:28,y:27,fill:"#102a3b","font-size":"18","font-weight":"800"},title);
    function y(value) { return yBottom - (value - min) * (yBottom - yTop) / (max - min); }
    ticks.forEach(function (tick) {
      var pos = y(tick);
      append("line",{x1:left,y1:pos,x2:right,y2:pos,stroke:"#dce7ec","stroke-width":"1"});
      append("text",{x:61,y:pos+5,fill:"#466170","text-anchor":"end","font-size":"13"},String(tick));
    });
    xPositions.forEach(function (item) {
      append("text",{x:item.x,y:330,fill:item.muted ? "#7f949f" : "#355365","text-anchor":"middle","font-size":"14","font-weight":item.muted ? "400" : "700"},String(item.label));
    });
    return y;
  }

  function renderHouses() {
    var xActual = [130,305,480], x2027 = 815;
    var y = axes(60,110,[60,70,80,90,100,110],[{x:130,label:2023},{x:305,label:2024},{x:480,label:2025},{x:648,label:2026,muted:true},{x:815,label:2027}],"Oddane budynki jednorodzinne · tys.");
    append("rect",{x:563,y:45,width:167,height:267,rx:12,fill:"#f1f5f6"});
    append("text",{x:646,y:68,fill:"#526b78","text-anchor":"middle","font-size":"12","font-weight":"800"},"2026: brak wyniku rocznego");
    append("path",{d:"M " + xActual[2] + " " + y(houses[2][1]) + " L " + x2027 + " " + y(99) + " L " + x2027 + " " + y(73) + " Z",fill:"#1caec1","fill-opacity":".075"});
    var historyPath = houses.map(function (row,index) { return (index ? "L " : "M ") + xActual[index] + " " + y(row[1]); }).join(" ");
    append("path",{d:historyPath,fill:"none",stroke:"#087f9e","stroke-width":"5","stroke-linecap":"round","stroke-linejoin":"round"});
    ["low","base","high"].forEach(function (key) {
      var item = scenarios[key];
      var active = key === selected;
      var path = "M " + xActual[2] + " " + y(86.042) + " C 603 " + y(86.042) + " 709 " + y(item.value) + " " + x2027 + " " + y(item.value);
      append("path",{d:path,fill:"none",stroke:item.color,"stroke-width":active ? "5" : "3","stroke-dasharray":"10 8","stroke-linecap":"round",opacity:active ? "1" : ".55"});
    });
    houses.forEach(function (row,index) {
      interactivePoint(xActual[index],y(row[1]),"#087f9e","GUS, " + row[0] + ": " + format.format(Math.round(row[1]*1000)) + " oddanych domów",row[0] + ": " + format.format(Math.round(row[1]*1000)) + " budynków","Potwierdzony wynik GUS dla budynków jednorodzinnych oddanych w " + row[0] + " r.",8);
    });
    ["low","base","high"].forEach(function (key) {
      var item = scenarios[key];
      var pointY = y(item.value);
      if (key === selected) {
        append("circle",{cx:x2027,cy:pointY,r:19,fill:item.color,"fill-opacity":".17"});
      }
      interactivePoint(x2027,pointY,item.color,"2027, scenariusz " + item.name + ": " + format.format(item.value*1000) + " domów","2027: " + format.format(item.value*1000) + " domów — " + item.name,item.note,key === selected ? 10 : 8,key);
      append("text",{x:834,y:pointY+5,fill:item.color,"font-size":"15","font-weight":key === selected ? "900" : "700"},String(item.value) + " tys.");
    });
    root.querySelector("#rkf-plot-desc").textContent = "Oś pionowa: tysiące budynków; wykres ma skróconą skalę 60–110 tys. Rozpiętość i dane dokładne są podane w tabeli. Rok 2026 nie ma punktu.";
    svg.setAttribute("aria-label","GUS: 2023 – 96 170, 2024 – 85 416, 2025 – 86 042 budynki jednorodzinne. Brak wyniku rocznego dla 2026. Warianty autora na 2027: 73 000, 86 000 lub 99 000. Tabela znajduje się niżej.");
    selectedReadout();
  }

  function renderHistorical() {
    var chosenYear = -1;
    var x = function (index) { return 105 + index * 750 / (flats.length - 1); };
    var y = function (value) { return 298 - value * 223 / 260; };
    function historyAppend(name, attrs, value, parent) {
      var node = create(name, attrs, value);
      (parent || historicalSvg).appendChild(node);
      return node;
    }
    function historyReadout(index) {
      var row = flats[index];
      var previous = flats[index - 1];
      var difference = previous ? row[1] - previous[1] : 0;
      var comparison = previous ? "Zmiana względem " + previous[0] + " r.: " + (difference >= 0 ? "+" : "−") + oneDecimal.format(Math.abs(difference)) + " tys. mieszkań (wartości zaokrąglone)." : "Początek pokazanego szeregu; nie ma wcześniejszego punktu na wykresie.";
      root.querySelector("#rkf-historical-title").textContent = row[0] + ": " + oneDecimal.format(row[1]) + " tys. mieszkań oddanych ogółem";
      root.querySelector("#rkf-historical-text").textContent = comparison + " To liczba mieszkań, nie domów.";
    }
    historicalSvg.textContent = "";
    historyAppend("text",{x:28,y:27,fill:"#102a3b","font-size":"18","font-weight":"800"},"Mieszkania oddane ogółem · tys.");
    [0,50,100,150,200,250].forEach(function (tick) {
      historyAppend("line",{x1:76,y1:y(tick),x2:892,y2:y(tick),stroke:"#dce7ec","stroke-width":"1"});
      historyAppend("text",{x:61,y:y(tick)+5,fill:"#466170","text-anchor":"end","font-size":"13"},String(tick));
    });
    [[0,2006],[3,2009],[6,2012],[9,2015],[12,2018],[15,2021],[19,2025]].forEach(function (mark) {
      historyAppend("text",{x:x(mark[0]),y:330,fill:"#355365","text-anchor":"middle","font-size":"14","font-weight":"700"},String(mark[1]));
    });
    var path = flats.map(function (row,index) { return (index ? "L " : "M ") + x(index) + " " + y(row[1]); }).join(" ");
    var defs = historyAppend("defs",{});
    var gradient = historyAppend("linearGradient",{id:"rkf-historical-fill",x1:"0",y1:"0",x2:"0",y2:"1"},undefined,defs);
    historyAppend("stop",{offset:"0%","stop-color":"#29c4d7","stop-opacity":".34"},undefined,gradient);
    historyAppend("stop",{offset:"100%","stop-color":"#29c4d7","stop-opacity":".015"},undefined,gradient);
    historyAppend("path",{d:path + " L " + x(flats.length - 1) + " " + y(0) + " L " + x(0) + " " + y(0) + " Z",fill:"url(#rkf-historical-fill)"});
    historyAppend("path",{d:path,fill:"none",stroke:"#087f9e","stroke-width":"4","stroke-linecap":"round","stroke-linejoin":"round"});
    flats.forEach(function (row,index) {
      var label = "GUS, " + row[0] + ": " + oneDecimal.format(row[1]) + " tys. mieszkań";
      var group = historyAppend("g",{"class":"rkf-chart-point",tabindex:"0",role:"button","aria-label":label});
      historyAppend("circle",{cx:x(index),cy:y(row[1]),r:4,fill:"#ffffff",stroke:"#087f9e","stroke-width":"3"},undefined,group);
      historyAppend("circle",{cx:x(index),cy:y(row[1]),r:17,fill:"transparent"},undefined,group);
      historyAppend("title",{},label,group);
      group.addEventListener("focus",function () { historyReadout(index); });
      group.addEventListener("pointerenter",function () { historyReadout(index); });
      group.addEventListener("pointerleave",function () { if (chosenYear >= 0) { historyReadout(chosenYear); } });
      group.addEventListener("click",function () { chosenYear = index; historyReadout(index); });
      group.addEventListener("keydown",function (event) {
        if (event.key === "Enter" || event.key === " ") { event.preventDefault(); chosenYear = index; historyReadout(index); }
      });
    });
  }

  function render() {
    svg.textContent = "";
    root.querySelectorAll("[data-rkf-scenario]").forEach(function (button) {
      button.setAttribute("aria-pressed",button.getAttribute("data-rkf-scenario") === selected ? "true" : "false");
    });
    renderHouses();
  }

  root.querySelectorAll("[data-rkf-scenario]").forEach(function (button) {
    button.addEventListener("click",function () { selected = button.getAttribute("data-rkf-scenario"); render(); });
  });
  root.querySelectorAll("table").forEach(function (table) {
    var heads = Array.prototype.map.call(table.querySelectorAll("thead th"),function (th) { return th.textContent.trim(); });
    table.querySelectorAll("tbody tr").forEach(function (tr) {
      tr.querySelectorAll("td").forEach(function (td,index) { td.setAttribute("data-label",heads[index] || "Dane"); });
    });
  });
  renderHistorical();
  render();
}());

</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/">Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</title>
		<link>https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Feb 2026 11:29:11 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Dom energooszczędny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędny dom]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[Wentylacja mechaniczna]]></category>
		<category><![CDATA[cop pompy ciepła]]></category>
		<category><![CDATA[dom energooszczędny]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie domu]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka i rekuperacja]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rekuperacja]]></category>
		<category><![CDATA[wentylacja mechaniczna]]></category>
		<category><![CDATA[wentylacja z odzyskiem ciepła]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3448</guid>

					<description><![CDATA[<p>Czy połączenie, jakim jest rekuperacja i ogrzewanie podłogowe – czy to się opłaca, faktycznie przynosi realne korzyści, czy to tylko marketingowy slogan? Coraz więcej inwestorów wybiera ten duet, ponieważ zapewnia nie tylko niższe rachunki, ale przede wszystkim stabilną temperaturę, wyższy komfort życia i maksymalną efektywność pompy ciepła. Dzięki odzyskowi ciepła z wentylacji i pracy systemu niskotemperaturowego budynek zużywa mniej energii, a instalacja działa bardziej przewidywalnie. W artykule pokazujemy konkretne wyliczenia, fakty techniczne i realne oszczędności, które mają znaczenie przez kolejne dekady użytkowania domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-reku-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d69a16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-reku-guide,
  #rk-reku-guide * { box-sizing: border-box; }
  #rk-reku-guide img,
  #rk-reku-guide svg { max-width: 100%; }
  #rk-reku-guide button,
  #rk-reku-guide input,
  #rk-reku-guide select,
  #rk-reku-guide label,
  #rk-reku-guide summary,
  #rk-reku-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-reku-guide button,
  #rk-reku-guide input,
  #rk-reku-guide select { max-width: 100%; }
  #rk-reku-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-reku-guide a:hover,
  #rk-reku-guide a:focus-visible { color: var(--rk-red); }
  #rk-reku-guide p,
  #rk-reku-guide ul,
  #rk-reku-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-reku-guide h2,
  #rk-reku-guide h3,
  #rk-reku-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  #rk-reku-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-reku-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-reku-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-reku-guide strong { color: var(--rk-dark); }
  #rk-reku-guide [hidden] { display: none !important; }

  #rk-reku-guide .rk-rv-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-reku-guide .rk-rv-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-reku-guide .rk-rv-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-reku-guide .rk-rv-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-reku-guide .rk-rv-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-reku-guide .rk-rv-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1030px;
    margin: 0 0 21px;
    color: var(--rk-white);
    font-size: clamp(2.25rem, 7.5vw, 5.15rem);
    font-weight: 950;
    letter-spacing: -.065em;
    line-height: .98;
  }
  #rk-reku-guide .rk-rv-hero-title span { color: #67e7f5; }
  #rk-reku-guide .rk-rv-lead {
    position: relative;
    z-index: 1;
    max-width: 960px;
    margin-bottom: 24px;
    color: #e2f2f5;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
  }
  #rk-reku-guide .rk-rv-hero-tags,
  #rk-reku-guide .rk-rv-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }
  #rk-reku-guide .rk-rv-hero-tag {
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, .07);
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.2;
  }
  #rk-reku-guide .rk-rv-byline {
    margin-top: 27px;
    color: #cae0e6;
    font-size: .68rem;
    font-weight: 720;
  }
  #rk-reku-guide .rk-rv-byline strong { color: var(--rk-white); }
  #rk-reku-guide .rk-rv-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 28px;
  }
  #rk-reku-guide .rk-rv-hero-metric {
    min-width: 0;
    padding: 17px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 14px;
    background: rgba(255, 255, 255, .065);
  }
  #rk-reku-guide .rk-rv-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-white);
    font-size: .73rem;
  }
  #rk-reku-guide .rk-rv-hero-metric span {
    display: block;
    color: #c8e0e6;
    font-size: .64rem;
    line-height: 1.48;
  }

  #rk-reku-guide .rk-rv-nav {
    display: block;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-reku-guide .rk-rv-nav-label {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-dark);
    font-size: .67rem;
    font-weight: 950;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-reku-guide .rk-rv-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
  }
  #rk-reku-guide .rk-rv-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 39px;
    padding: 8px 13px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: .67rem;
    font-weight: 880;
    line-height: 1.15;
    text-decoration: none;
    white-space: normal;
  }
  #rk-reku-guide .rk-rv-nav a:hover,
  #rk-reku-guide .rk-rv-nav a:focus-visible {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
  }

  #rk-reku-guide .rk-rv-content { padding: 0 clamp(22px, 5vw, 70px) 58px; }
  #rk-reku-guide .rk-rv-section {
    scroll-margin-top: 24px;
    padding: clamp(46px, 7vw, 78px) 0;
    border-bottom: 1px solid var(--rk-line);
  }
  #rk-reku-guide .rk-rv-section:last-child { border-bottom: 0; }
  #rk-reku-guide .rk-rv-section > :last-child { margin-bottom: 0; }
  #rk-reku-guide .rk-rv-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
    color: var(--rk-blue);
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  #rk-reku-guide .rk-rv-eyebrow::before {
    width: 24px;
    height: 3px;
    border-radius: 99px;
    background: var(--rk-cyan);
    content: "";
  }
  #rk-reku-guide .rk-rv-intro { max-width: 900px; color: var(--rk-text); font-size: 1.03rem; }
  #rk-reku-guide .rk-rv-small { color: var(--rk-muted); font-size: .76rem; line-height: 1.58; }
  #rk-reku-guide .rk-rv-grid-2,
  #rk-reku-guide .rk-rv-grid-3,
  #rk-reku-guide .rk-rv-grid-4 {
    display: grid;
    gap: 18px;
    margin-top: 24px;
  }
  #rk-reku-guide .rk-rv-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-reku-guide .rk-rv-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-reku-guide .rk-rv-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-reku-guide .rk-rv-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, .055);
  }
  #rk-reku-guide .rk-rv-card > :last-child { margin-bottom: 0; }
  #rk-reku-guide .rk-rv-card-accent { border-top: 5px solid var(--rk-cyan); }
  #rk-reku-guide .rk-rv-card-warm { border-top: 5px solid var(--rk-orange); }
  #rk-reku-guide .rk-rv-card-green { border-top: 5px solid #3ecf9f; }
  #rk-reku-guide .rk-rv-card-number {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 14px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .82rem;
    font-weight: 950;
  }
  #rk-reku-guide .rk-rv-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr);
    gap: 18px;
    margin-top: 25px;
  }
  #rk-reku-guide .rk-rv-answer-main {
    padding: clamp(25px, 4vw, 38px);
    border-radius: 20px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #155269);
  }
  #rk-reku-guide .rk-rv-answer-main h3,
  #rk-reku-guide .rk-rv-answer-main strong { color: var(--rk-white); }
  #rk-reku-guide .rk-rv-answer-main p { color: #dbeef2; }
  #rk-reku-guide .rk-rv-answer-side {
    padding: 25px;
    border: 1px solid #f1c8b9;
    border-radius: 20px;
    background: var(--rk-orange-soft);
  }

  #rk-reku-guide .rk-rv-callout {
    margin: 24px 0;
    padding: 20px 22px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 12px;
    color: #263b48;
    background: var(--rk-cyan-soft);
  }
  #rk-reku-guide .rk-rv-callout > :last-child { margin-bottom: 0; }
  #rk-reku-guide .rk-rv-callout strong { color: var(--rk-dark); }
  #rk-reku-guide .rk-rv-callout-warn {
    border-left-color: var(--rk-yellow);
    color: #3f3825;
    background: var(--rk-yellow-soft);
  }
  #rk-reku-guide .rk-rv-callout-danger {
    border-left-color: var(--rk-orange);
    color: #442e29;
    background: var(--rk-orange-soft);
  }
  #rk-reku-guide .rk-rv-formula {
    overflow-wrap: anywhere;
    margin: 22px 0;
    padding: 20px;
    border: 1px solid #b9dde7;
    border-radius: 14px;
    color: var(--rk-dark);
    background: #eefbfe;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(.8rem, 2vw, 1rem);
    font-weight: 800;
    text-align: center;
  }
  #rk-reku-guide .rk-rv-list-check,
  #rk-reku-guide .rk-rv-list-cross { padding-left: 0; list-style: none; }
  #rk-reku-guide .rk-rv-list-check li,
  #rk-reku-guide .rk-rv-list-cross li {
    position: relative;
    padding-left: 31px;
    margin-bottom: 10px;
  }
  #rk-reku-guide .rk-rv-list-check li::before,
  #rk-reku-guide .rk-rv-list-cross li::before {
    position: absolute;
    left: 0;
    top: .16em;
    display: grid;
    place-items: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    font-size: .62rem;
    font-weight: 950;
  }
  #rk-reku-guide .rk-rv-list-check li::before { color: #0b604f; background: #d6f4e9; content: "✓"; }
  #rk-reku-guide .rk-rv-list-cross li::before { color: #8f2d22; background: #ffe1dc; content: "×"; }

  #rk-reku-guide .rk-rv-table-wrap { margin: 25px 0; }
  #rk-reku-guide .rk-rv-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    overflow: hidden;
    font-size: .82rem;
  }
  #rk-reku-guide .rk-rv-table th,
  #rk-reku-guide .rk-rv-table td {
    padding: 14px 15px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }
  #rk-reku-guide .rk-rv-table th:last-child,
  #rk-reku-guide .rk-rv-table td:last-child { border-right: 0; }
  #rk-reku-guide .rk-rv-table tr:last-child td { border-bottom: 0; }
  #rk-reku-guide .rk-rv-table thead th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: .71rem;
    font-weight: 900;
  }
  #rk-reku-guide .rk-rv-table tbody tr:nth-child(even) { background: var(--rk-soft); }
  #rk-reku-guide .rk-rv-table td strong { display: block; }

  #rk-reku-guide .rk-rv-system-map {
    margin: 28px 0;
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: linear-gradient(145deg, #f7fbfc, #edf7fa);
  }
  #rk-reku-guide .rk-rv-system-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr) 40px minmax(0, 1fr);
    align-items: stretch;
    gap: 9px;
    margin-top: 13px;
  }
  #rk-reku-guide .rk-rv-system-node {
    display: flex;
    min-height: 92px;
    flex-direction: column;
    justify-content: center;
    padding: 16px;
    border: 1px solid #bdd8e1;
    border-radius: 14px;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-align: center;
  }
  #rk-reku-guide .rk-rv-system-node b { font-size: .82rem; }
  #rk-reku-guide .rk-rv-system-node span { margin-top: 4px; color: var(--rk-muted); font-size: .65rem; line-height: 1.42; }
  #rk-reku-guide .rk-rv-system-node-end { border-color: var(--rk-cyan); background: var(--rk-cyan-soft); }
  #rk-reku-guide .rk-rv-system-arrow {
    display: grid;
    place-items: center;
    color: var(--rk-blue);
    font-size: 1.5rem;
    font-weight: 950;
  }
  #rk-reku-guide .rk-rv-system-note { margin: 18px 0 0; color: var(--rk-text); font-size: .78rem; text-align: center; }

  #rk-reku-guide .rk-rv-analyzer {
    overflow: hidden;
    margin-top: 28px;
    border-radius: 24px;
    color: #e9f5f7;
    background: #102a3b;
    box-shadow: 0 22px 55px rgba(16, 37, 54, .2);
  }
  #rk-reku-guide .rk-rv-analyzer-head {
    padding: clamp(26px, 5vw, 42px);
    background:
      radial-gradient(circle at 92% 0%, rgba(37, 199, 216, .2), transparent 31%),
      linear-gradient(130deg, #123044, #15556a);
  }
  #rk-reku-guide .rk-rv-analyzer-head h3 { margin-bottom: 10px; color: var(--rk-white); font-size: clamp(1.45rem, 3.5vw, 2.15rem); }
  #rk-reku-guide .rk-rv-analyzer-head p { max-width: 900px; margin-bottom: 0; color: #d7edf1; }
  #rk-reku-guide .rk-rv-analyzer-body { padding: clamp(20px, 4vw, 36px); }
  #rk-reku-guide .rk-rv-tool-panel {
    min-width: 0;
    margin-bottom: 20px;
    padding: clamp(20px, 3vw, 28px);
    border: 1px solid #33566a;
    border-radius: 18px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-reku-guide .rk-rv-tool-panel:last-child { margin-bottom: 0; }
  #rk-reku-guide .rk-rv-tool-panel h3,
  #rk-reku-guide .rk-rv-tool-panel h4,
  #rk-reku-guide .rk-rv-tool-panel strong { color: var(--rk-white); }
  #rk-reku-guide .rk-rv-tool-panel p { color: #bfd4db; }
  #rk-reku-guide .rk-rv-input-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }
  #rk-reku-guide .rk-rv-field { min-width: 0; }
  #rk-reku-guide .rk-rv-field label {
    display: block;
    margin-bottom: 7px;
    color: #ecf7f9;
    font-size: .68rem;
    font-weight: 860;
    line-height: 1.35;
  }
  #rk-reku-guide .rk-rv-field input,
  #rk-reku-guide .rk-rv-field select {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #9eb7c1;
    border-radius: 10px;
    color: #132735;
    background: var(--rk-white);
    font-size: .8rem;
    font-weight: 720;
    line-height: 1.2;
  }
  #rk-reku-guide .rk-rv-field input:focus,
  #rk-reku-guide .rk-rv-field select:focus {
    border-color: var(--rk-cyan);
    outline: 3px solid rgba(37, 199, 216, .2);
  }
  #rk-reku-guide .rk-rv-field small {
    display: block;
    margin-top: 6px;
    color: #91aeb8;
    font-size: .59rem;
    line-height: 1.45;
  }
  #rk-reku-guide .rk-rv-tool-note {
    margin: 20px 0 0;
    padding: 14px 16px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 9px;
    color: #fff2bd;
    background: rgba(214, 154, 22, .13);
    font-size: .7rem;
  }
  #rk-reku-guide .rk-rv-run {
    width: 100%;
    min-height: 54px;
    margin-top: 22px;
    padding: 13px 20px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-dark);
    background: linear-gradient(135deg, #63ebf6, var(--rk-cyan));
    box-shadow: 0 9px 24px rgba(37, 199, 216, .2);
    cursor: pointer;
    font-size: .81rem;
    font-weight: 950;
  }
  #rk-reku-guide .rk-rv-run:hover,
  #rk-reku-guide .rk-rv-run:focus-visible { transform: translateY(-1px); filter: brightness(1.05); }
  #rk-reku-guide .rk-rv-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
  }
  #rk-reku-guide .rk-rv-result {
    min-width: 0;
    padding: 18px;
    border: 1px solid #33566a;
    border-radius: 14px;
    background: #153548;
  }
  #rk-reku-guide .rk-rv-result span {
    display: block;
    margin-bottom: 6px;
    color: #9fc0ca;
    font-size: .59rem;
    font-weight: 850;
    letter-spacing: .045em;
    line-height: 1.35;
    text-transform: uppercase;
  }
  #rk-reku-guide .rk-rv-result strong {
    display: block;
    color: var(--rk-white);
    font-size: clamp(1.12rem, 3vw, 1.55rem);
    line-height: 1.15;
  }
  #rk-reku-guide .rk-rv-result small { display: block; margin-top: 6px; color: #8fb0ba; font-size: .57rem; line-height: 1.4; }
  #rk-reku-guide .rk-rv-result-highlight { border-color: var(--rk-cyan); background: #154255; }
  #rk-reku-guide .rk-rv-verdict {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid #3b7e75;
    border-radius: 14px;
    background: rgba(62, 207, 159, .1);
  }
  #rk-reku-guide .rk-rv-verdict b { display: block; margin-bottom: 5px; color: #7ff0cc; font-size: .78rem; }
  #rk-reku-guide .rk-rv-verdict p { margin-bottom: 0; color: #d9f1eb; font-size: .75rem; }
  #rk-reku-guide .rk-rv-diagnostics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
  #rk-reku-guide .rk-rv-diagnostic {
    min-width: 0;
    padding: 15px 16px;
    border-radius: 11px;
    color: #e9f5f7;
    background: rgba(37, 199, 216, .09);
    font-size: .68rem;
    line-height: 1.55;
  }
  #rk-reku-guide .rk-rv-diagnostic-warn { color: #fff0c0; background: rgba(214, 154, 22, .13); }
  #rk-reku-guide .rk-rv-chart-wrap {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #33566a;
    border-radius: 14px;
    background: #f7fbfc;
  }
  #rk-reku-guide .rk-rv-chart-wrap svg { display: block; width: 100%; height: auto; overflow: visible; }
  #rk-reku-guide .rk-rv-chart-legend { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 11px; color: #304b5b; font-size: .62rem; font-weight: 800; }
  #rk-reku-guide .rk-rv-legend-item { display: inline-flex; align-items: center; gap: 7px; }
  #rk-reku-guide .rk-rv-legend-line { width: 28px; height: 4px; border-radius: 999px; background: var(--rk-orange); }
  #rk-reku-guide .rk-rv-legend-line-cyan { background: var(--rk-cyan); }
  #rk-reku-guide .rk-rv-chart-caption { margin: 10px 0 0; color: #607582 !important; font-size: .63rem; line-height: 1.55; }

  #rk-reku-guide .rk-rv-cta {
    position: relative;
    overflow: hidden;
    margin: 34px 0;
    padding: clamp(28px, 5vw, 44px);
    border-radius: 22px;
    color: var(--rk-white);
    background: linear-gradient(135deg, #102536, #174c61);
    box-shadow: 0 18px 45px rgba(16, 37, 54, .16);
  }
  #rk-reku-guide .rk-rv-cta::after {
    position: absolute;
    right: -70px;
    bottom: -95px;
    width: 240px;
    height: 240px;
    border: 34px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-reku-guide .rk-rv-cta h3,
  #rk-reku-guide .rk-rv-cta strong { position: relative; z-index: 1; color: var(--rk-white); }
  #rk-reku-guide .rk-rv-cta p { position: relative; z-index: 1; max-width: 900px; color: #dceef2; }
  #rk-reku-guide .rk-rv-cta-button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 53px;
    margin-top: 8px;
    padding: 13px 22px;
    border-radius: 11px;
    color: var(--rk-white) !important;
    background: var(--rk-orange);
    box-shadow: 0 10px 25px rgba(255, 106, 61, .25);
    font-size: .79rem;
    font-weight: 950;
    text-align: center;
    text-decoration: none !important;
  }
  #rk-reku-guide .rk-rv-cta-button:hover,
  #rk-reku-guide .rk-rv-cta-button:focus-visible { color: var(--rk-white) !important; background: #ef5530; }

  #rk-reku-guide .rk-rv-steps { counter-reset: rk-rv-step; padding: 0; list-style: none; }
  #rk-reku-guide .rk-rv-steps li {
    position: relative;
    min-height: 55px;
    margin-bottom: 15px;
    padding: 13px 15px 13px 63px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-white);
  }
  #rk-reku-guide .rk-rv-steps li::before {
    position: absolute;
    left: 13px;
    top: 12px;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    content: counter(rk-rv-step);
    counter-increment: rk-rv-step;
    font-size: .72rem;
    font-weight: 950;
  }
  #rk-reku-guide .rk-rv-faq { display: grid; gap: 12px; }
  #rk-reku-guide .rk-rv-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-reku-guide .rk-rv-faq summary {
    position: relative;
    padding: 18px 54px 18px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-size: .82rem;
    font-weight: 900;
    line-height: 1.4;
    list-style: none;
  }
  #rk-reku-guide .rk-rv-faq summary::-webkit-details-marker { display: none; }
  #rk-reku-guide .rk-rv-faq summary::after {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rk-blue);
    content: "+";
    font-size: 1.3rem;
    font-weight: 700;
  }
  #rk-reku-guide .rk-rv-faq details[open] summary::after { content: "−"; }
  #rk-reku-guide .rk-rv-faq-answer { padding: 0 20px 19px; color: var(--rk-text); font-size: .82rem; }
  #rk-reku-guide .rk-rv-faq-answer p:last-child { margin-bottom: 0; }
  #rk-reku-guide .rk-rv-source-list { padding-left: 22px; }
  #rk-reku-guide .rk-rv-source-list li { margin-bottom: 12px; color: var(--rk-text); }

  #rk-reku-guide .rk-rv-author {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
  }
  #rk-reku-guide .rk-rv-author-side {
    padding: 31px 24px;
    color: var(--rk-white);
    background: var(--rk-dark);
    text-align: center;
  }
  #rk-reku-guide .rk-rv-author-photo {
    display: block;
    width: 150px;
    height: 150px;
    margin: 0 auto 18px;
    border: 6px solid rgba(255, 255, 255, .14);
    border-radius: 50%;
    object-fit: cover;
  }
  #rk-reku-guide .rk-rv-author-side h3 { margin-bottom: 7px; color: var(--rk-white); }
  #rk-reku-guide .rk-rv-author-side p { color: #c3dae1; font-size: .71rem; line-height: 1.55; }
  #rk-reku-guide .rk-rv-social-label { display: block; margin: 20px 0 10px; color: #89a8b3; font-size: .58rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
  #rk-reku-guide .rk-rv-socials { display: flex; justify-content: center; gap: 10px; }
  #rk-reku-guide .rk-rv-socials a {
    display: grid;
    place-items: center;
    width: 45px;
    height: 45px;
    border: 1px solid #476779;
    border-radius: 50%;
    color: #d8e9ed;
    background: transparent;
    font-size: .72rem;
    font-weight: 950;
    text-decoration: none;
  }
  #rk-reku-guide .rk-rv-socials a:hover,
  #rk-reku-guide .rk-rv-socials a:focus-visible { border-color: var(--rk-cyan); color: var(--rk-dark); background: var(--rk-cyan); }
  #rk-reku-guide .rk-rv-author-main { min-width: 0; padding: clamp(27px, 5vw, 45px); }
  #rk-reku-guide .rk-rv-author-quote {
    position: relative;
    margin-bottom: 24px;
    padding: 19px 21px 19px 50px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .82rem;
    font-weight: 760;
  }
  #rk-reku-guide .rk-rv-author-quote::before {
    position: absolute;
    left: 17px;
    top: 7px;
    color: var(--rk-cyan);
    content: "“";
    font-size: 2.7rem;
    font-weight: 950;
    line-height: 1;
  }
  #rk-reku-guide .rk-rv-author-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
  #rk-reku-guide .rk-rv-author-tabs span {
    padding: 7px 12px;
    border-radius: 999px;
    color: #58707e;
    background: #e7f0f4;
    font-size: .61rem;
    font-weight: 900;
  }
  #rk-reku-guide .rk-rv-author-tabs span:first-child { color: var(--rk-white); background: var(--rk-blue); }
  #rk-reku-guide .rk-rv-author-main p { color: var(--rk-text); font-size: .82rem; }
  #rk-reku-guide .rk-rv-author-portals {
    margin-top: 17px;
    padding-top: 16px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-muted);
    font-size: .68rem;
  }

  @media (max-width: 940px) {
    #rk-reku-guide .rk-rv-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-reku-guide .rk-rv-grid-3,
    #rk-reku-guide .rk-rv-input-grid,
    #rk-reku-guide .rk-rv-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-reku-guide .rk-rv-answer { grid-template-columns: 1fr; }
  }
  @media (max-width: 720px) {
    #rk-reku-guide { margin: 15px auto 45px; font-size: 16px; }
    #rk-reku-guide .rk-rv-shell { border-radius: 18px; }
    #rk-reku-guide .rk-rv-hero { padding: 35px 21px 31px; }
    #rk-reku-guide .rk-rv-hero-title { font-size: clamp(2rem, 12vw, 3.2rem); }
    #rk-reku-guide .rk-rv-hero-metrics,
    #rk-reku-guide .rk-rv-grid-2,
    #rk-reku-guide .rk-rv-grid-3,
    #rk-reku-guide .rk-rv-grid-4,
    #rk-reku-guide .rk-rv-input-grid,
    #rk-reku-guide .rk-rv-result-grid,
    #rk-reku-guide .rk-rv-diagnostics { grid-template-columns: minmax(0, 1fr); }
    #rk-reku-guide .rk-rv-nav { padding: 16px; }
    #rk-reku-guide .rk-rv-nav-links { gap: 7px; }
    #rk-reku-guide .rk-rv-nav a { flex: 1 1 145px; justify-content: center; min-width: 0; text-align: center; }
    #rk-reku-guide .rk-rv-content { padding: 0 18px 38px; }
    #rk-reku-guide .rk-rv-section { padding: 43px 0; }
    #rk-reku-guide .rk-rv-card { padding: 20px; }
    #rk-reku-guide .rk-rv-system-row { grid-template-columns: minmax(0, 1fr); }
    #rk-reku-guide .rk-rv-system-arrow { min-height: 27px; transform: rotate(90deg); }
    #rk-reku-guide .rk-rv-analyzer { border-radius: 17px; }
    #rk-reku-guide .rk-rv-tool-panel { padding: 18px; }
    #rk-reku-guide .rk-rv-chart-wrap { padding: 8px; }
    #rk-reku-guide .rk-rv-chart-wrap svg { min-height: 270px; }
    #rk-reku-guide .rk-rv-author { grid-template-columns: minmax(0, 1fr); }
    #rk-reku-guide .rk-rv-table,
    #rk-reku-guide .rk-rv-table tbody,
    #rk-reku-guide .rk-rv-table tr,
    #rk-reku-guide .rk-rv-table td { display: block; width: 100%; }
    #rk-reku-guide .rk-rv-table thead { display: none; }
    #rk-reku-guide .rk-rv-table { border: 0; overflow: visible; background: transparent; }
    #rk-reku-guide .rk-rv-table tbody { display: grid; gap: 14px; }
    #rk-reku-guide .rk-rv-table tr {
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white) !important;
      box-shadow: 0 8px 20px rgba(16, 37, 54, .055);
    }
    #rk-reku-guide .rk-rv-table td {
      min-width: 0;
      padding: 12px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      overflow-wrap: anywhere;
    }
    #rk-reku-guide .rk-rv-table td:last-child { border-bottom: 0; }
    #rk-reku-guide .rk-rv-table td::before {
      display: block;
      margin-bottom: 4px;
      color: var(--rk-blue);
      content: attr(data-label);
      font-size: .61rem;
      font-weight: 900;
      letter-spacing: .045em;
      text-transform: uppercase;
    }
  }
  @media (max-width: 430px) {
    #rk-reku-guide .rk-rv-nav a { flex-basis: 100%; }
    #rk-reku-guide .rk-rv-byline { flex-direction: column; gap: 5px; }
    #rk-reku-guide .rk-rv-hero-tag { width: 100%; text-align: center; }
    #rk-reku-guide .rk-rv-cta-button { width: 100%; }
    #rk-reku-guide .rk-rv-author-quote { padding-left: 44px; }
  }
</style>

<article id="rk-reku-guide" itemscope="" itemtype="https://schema.org/TechArticle">
  <div class="rk-rv-shell">
    <header class="rk-rv-hero">
      <div class="rk-rv-kicker">Bilans cieplny domu · aktualizacja 2026</div>
      <div class="rk-rv-hero-title">Rekuperacja i podłogówka — <span>co naprawdę się opłaca?</span></div>
      <p class="rk-rv-lead">Rekuperator nie ogrzewa podłogi i nie dobiera rozstawu rur. Ogranicza natomiast wentylacyjną część strat ciepła, dlatego może zmienić obciążenie budynku, moc źródła oraz ilość ciepła, którą musi oddać instalacja podłogowa.</p>
      <div class="rk-rv-hero-tags" aria-label="Najważniejsze zagadnienia artykułu">
        <span class="rk-rv-hero-tag">odzysk ciepła</span>
        <span class="rk-rv-hero-tag">OZC i moc projektowa</span>
        <span class="rk-rv-hero-tag">podłogówka i pompa ciepła</span>
        <span class="rk-rv-hero-tag">koszty eksploatacji</span>
        <span class="rk-rv-hero-tag">analizator bilansu</span>
      </div>
      <div class="rk-rv-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 25 minut</span>
        <span>Aktualizacja techniczna: 7 września 2026 r.</span>
      </div>
      <div class="rk-rv-hero-metrics" aria-label="Trzy zasady oceny układu">
        <div class="rk-rv-hero-metric"><b>Dwa niezależne systemy</b><span>Wentylacja transportuje powietrze, a podłogówka ciepło przez wodę i powierzchnię podłogi.</span></div>
        <div class="rk-rv-hero-metric"><b>Jeden wspólny bilans</b><span>Łączą się przez zapotrzebowanie cieplne budynku i poszczególnych pomieszczeń.</span></div>
        <div class="rk-rv-hero-metric"><b>Bez uniwersalnego procentu</b><span>Oszczędność zależy od przepływów, odzysku, szczelności, klimatu i sposobu użytkowania.</span></div>
      </div>
    </header>

    <nav class="rk-rv-nav" aria-label="Nawigacja po artykule">
      <span class="rk-rv-nav-label">Na skróty</span>
      <div class="rk-rv-nav-links">
        <a href="#rk-rv-szybka">Szybka odpowiedź</a>
        <a href="#rk-rv-czy-ogrzewa">Czy rekuperacja ogrzewa?</a>
        <a href="#rk-rv-wspolpraca">Gdzie systemy się łączą?</a>
        <a href="#rk-rv-moc-energia">Moc a energia</a>
        <a href="#rk-rv-odzysk">Jak działa odzysk?</a>
        <a href="#rk-rv-analizator">Analizator bilansu</a>
        <a href="#rk-rv-wykres">Jak czytać wykres?</a>
        <a href="#rk-rv-porownanie">Uczciwe porównanie</a>
        <a href="#rk-rv-ozc">Rekuperacja a OZC</a>
        <a href="#rk-rv-sprawnosc">Sprawność rzeczywista</a>
        <a href="#rk-rv-bilans">Nawiew, wywiew i infiltracja</a>
        <a href="#rk-rv-podlogowka">Wpływ na podłogówkę</a>
        <a href="#rk-rv-rozstaw">Rozstaw rur</a>
        <a href="#rk-rv-zasilanie">Temperatura zasilania</a>
        <a href="#rk-rv-pompa-ciepla">Pompa ciepła</a>
        <a href="#rk-rv-koszty">Koszty pracy</a>
        <a href="#rk-rv-zwrot">Okres zwrotu</a>
        <a href="#rk-rv-wilgotnosc">Wilgotność i powietrze</a>
        <a href="#rk-rv-wymiennik">Wymiennik entalpiczny</a>
        <a href="#rk-rv-okna">Okna, okap i kominek</a>
        <a href="#rk-rv-zima">Mróz, kondensat i bypass</a>
        <a href="#rk-rv-uruchomienie">Uruchomienie i pomiary</a>
        <a href="#rk-rv-bledy">Najczęstsze błędy</a>
        <a href="#rk-rv-checklista">Checklista inwestora</a>
        <a href="#rk-rv-faq">FAQ</a>
        <a href="#rk-rv-zrodla">Źródła</a>
        <a href="#rk-rv-author">O autorze</a>
      </div>
    </nav>

    <div class="rk-rv-content">
      <section id="rk-rv-szybka" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Odpowiedź w 30 sekund</div>
        <h2>Rekuperacja i ogrzewanie podłogowe — czy to się opłaca?</h2>
        <p class="rk-rv-intro"><strong>Najczęściej jest to technicznie sensowne połączenie, ale nie dlatego, że rekuperator „napędza” podłogówkę.</strong> Wentylacja mechaniczna z odzyskiem ciepła ogranicza część strat wynikającą z wymiany powietrza. Podłogówka pokrywa obciążenie, które pozostaje po uwzględnieniu przegród, mostków, infiltracji, wentylacji oraz zysków ciepła.</p>
        <div class="rk-rv-answer">
          <div class="rk-rv-answer-main">
            <h3>Kiedy zestaw ma najwięcej sensu?</h3>
            <p>W szczelnym, dobrze zaizolowanym budynku, dla którego wykonano bilans powietrza i obliczenia strat pomieszczeń. Wtedy niższe obciążenie może pomóc utrzymać niską temperaturę wody i stabilną pracę źródła ciepła.</p>
            <p>Punktem wyjścia powinno być <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">prawidłowe obliczenie strat cieplnych budynku</a>, a nie procent oszczędności przepisany z innego domu.</p>
          </div>
          <aside class="rk-rv-answer-side">
            <h3>Czego nie wolno założyć?</h3>
            <ul class="rk-rv-list-cross">
              <li>stałej oszczędności 30–45%,</li>
              <li>automatycznego rozstawu rur 10 cm,</li>
              <li>stałej sprawności odzysku przez cały rok,</li>
              <li>krótszego okresu zwrotu bez danych o kosztach.</li>
            </ul>
          </aside>
        </div>
      </section>

      <section id="rk-rv-czy-ogrzewa" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Najważniejsze rozróżnienie</div>
        <h2>Czy rekuperacja ogrzewa dom?</h2>
        <p><strong>Rekuperacja odzyskuje część ciepła z powietrza usuwanego, ale nie zastępuje systemu grzewczego.</strong> Wymiennik przekazuje energię między strumieniami powietrza bez ich mieszania w prawidłowo działającej centrali. Temperatura nawiewu jest dzięki temu wyższa niż temperatura powietrza zewnętrznego, lecz zazwyczaj niższa niż temperatura w pomieszczeniu.</p>
        <div class="rk-rv-grid-3">
          <div class="rk-rv-card rk-rv-card-accent"><h3>Rekuperator</h3><p>Zmniejsza moc potrzebną do ogrzania świeżego powietrza i zapewnia kontrolowaną wymianę powietrza.</p></div>
          <div class="rk-rv-card rk-rv-card-warm"><h3>Źródło ciepła</h3><p>Wytwarza ciepło potrzebne do pokrycia bieżących strat budynku.</p></div>
          <div class="rk-rv-card rk-rv-card-green"><h3>Podłogówka</h3><p>Przekazuje ciepło do pomieszczeń przez powierzchnię podłogi.</p></div>
        </div>
        <p>To, czy podłogówka może być jedynym odbiornikiem ciepła, rozstrzyga bilans każdego pomieszczenia. Osobno wyjaśniam, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">kiedy ogrzewanie podłogowe może samodzielnie ogrzać dom</a>.</p>
      </section>

      <section id="rk-rv-wspolpraca" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Dwa obiegi, jeden budynek</div>
        <h2>Gdzie rekuperacja i podłogówka naprawdę się łączą?</h2>
        <p>Nie łączy ich rura, rozdzielacz ani wspólny regulator hydrauliczny. Ich zależność przebiega przez bilans cieplny: im mniej energii ucieka z powietrzem wentylacyjnym, tym mniejszą moc musi w danej chwili dostarczyć ogrzewanie.</p>
        <div class="rk-rv-system-map" role="img" aria-label="Schemat dwóch niezależnych dróg: wentylacyjnej i grzewczej, które spotykają się w bilansie cieplnym pomieszczeń">
          <h3>Droga powietrza</h3>
          <div class="rk-rv-system-row">
            <div class="rk-rv-system-node"><b>Powietrze zewnętrzne</b><span>temperatura i wilgotność zależne od pogody</span></div>
            <div class="rk-rv-system-arrow" aria-hidden="true">→</div>
            <div class="rk-rv-system-node"><b>Wymiennik odzysku</b><span>część ciepła z wywiewu trafia do nawiewu</span></div>
            <div class="rk-rv-system-arrow" aria-hidden="true">→</div>
            <div class="rk-rv-system-node rk-rv-system-node-end"><b>Pomieszczenia</b><span>kontrolowany nawiew i wywiew</span></div>
          </div>
          <h3 style="margin-top:24px">Droga ciepła</h3>
          <div class="rk-rv-system-row">
            <div class="rk-rv-system-node"><b>Źródło ciepła</b><span>pompa ciepła, kocioł lub inne urządzenie</span></div>
            <div class="rk-rv-system-arrow" aria-hidden="true">→</div>
            <div class="rk-rv-system-node"><b>Woda i podłoga</b><span>rury, jastrych i okładzina przekazują energię</span></div>
            <div class="rk-rv-system-arrow" aria-hidden="true">→</div>
            <div class="rk-rv-system-node rk-rv-system-node-end"><b>Pomieszczenia</b><span>pokrycie obciążenia cieplnego</span></div>
          </div>
          <p class="rk-rv-system-note"><strong>Punkt wspólny:</strong> temperatura pomieszczeń i ich obciążenie cieplne. Zobacz też, <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa wodne ogrzewanie podłogowe</a>.</p>
        </div>
      </section>

      <section id="rk-rv-moc-energia" class="rk-rv-section">
        <div class="rk-rv-eyebrow">kW, kWh i zł to nie to samo</div>
        <h2>Strata wentylacyjna: moc projektowa a energia w sezonie</h2>
        <p>Bardzo częsty błąd polega na policzeniu mocy przy temperaturze obliczeniowej, a następnie pomnożeniu jej przez wszystkie godziny sezonu. Temperatura projektowa występuje rzadko, przepływy mogą się zmieniać, a odzysk i praca wentylatorów zależą od punktu pracy.</p>
        <div class="rk-rv-table-wrap">
          <table class="rk-rv-table">
            <thead><tr><th>Wielkość</th><th>Jednostka</th><th>Co opisuje?</th><th>Do czego służy?</th></tr></thead>
            <tbody>
              <tr><td data-label="Wielkość"><strong>Moc cieplna</strong></td><td data-label="Jednostka">W lub kW</td><td data-label="Co opisuje?">Chwilowe obciążenie przy konkretnych warunkach.</td><td data-label="Zastosowanie">Dobór źródła i powierzchni grzewczych.</td></tr>
              <tr><td data-label="Wielkość"><strong>Energia</strong></td><td data-label="Jednostka">kWh</td><td data-label="Co opisuje?">Sumę energii w godzinie, miesiącu lub sezonie.</td><td data-label="Zastosowanie">Analiza zużycia i kosztów eksploatacji.</td></tr>
              <tr><td data-label="Wielkość"><strong>Koszt</strong></td><td data-label="Jednostka">zł</td><td data-label="Co opisuje?">Energię pomnożoną przez rzeczywistą cenę oraz koszty stałe.</td><td data-label="Zastosowanie">Budżet i analiza opłacalności.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Pełny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a> obejmuje więcej niż samą wentylację: przegrody, mostki, grunt, infiltrację oraz zyski wewnętrzne i słoneczne.</p>
      </section>

      <section id="rk-rv-odzysk" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Model referencyjny</div>
        <h2>Jak obliczyć wpływ odzysku ciepła z wentylacji?</h2>
        <p>Do szybkiego porównania można użyć przybliżenia opartego na strumieniu powietrza, różnicy temperatur oraz temperaturowej sprawności odzysku w wybranym punkcie pracy.</p>
        <div class="rk-rv-formula">Q̇<sub>v,0</sub> = 0,34 × V̇ × (t<sub>i</sub> − t<sub>e</sub>)</div>
        <div class="rk-rv-formula">Q̇<sub>v,HR</sub> ≈ 0,34 × V̇ × (t<sub>i</sub> − t<sub>e</sub>) × (1 − η<sub>t</sub>)</div>
        <p>Wynik jest w watach, gdy strumień <em>V̇</em> podamy w m³/h. Współczynnik 0,34 jest przybliżoną objętościową pojemnością cieplną powietrza. Model trzeba rozszerzyć o niezbilansowanie nawiewu i wywiewu oraz niekontrolowaną infiltrację.</p>
        <div class="rk-rv-callout rk-rv-callout-warn"><strong>To nie jest obliczenie rocznego zużycia.</strong> Model opisuje chwilowy punkt temperaturowy. Nie uwzględnia pogody godzina po godzinie, odszraniania, zmiennego biegu centrali, bypassu, przerw pracy ani ciepła wentylatorów.</div>
      </section>

      <section id="rk-rv-analizator" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Interaktywne narzędzie techniczne</div>
        <h2>Analizator współpracy rekuperacji z podłogówką</h2>
        <p class="rk-rv-intro">Wpisz dane jednego budynku. Narzędzie porówna wentylacyjną część obciążenia bez odzysku i z odzyskiem przy tych samych temperaturach oraz przepływach. Osobno pokaże infiltrację i moc elektryczną wentylatorów.</p>

        <div id="rk-rv-analyzer-tool" class="rk-rv-analyzer">
          <div class="rk-rv-analyzer-head">
            <h3>Porównaj wariant bez odzysku i z rekuperacją</h3>
            <p>Obliczenie dotyczy straty związanej z wymianą powietrza. Nie wyznacza pełnej mocy budynku ani wymaganej mocy podłogi w poszczególnych pomieszczeniach.</p>
          </div>
          <div class="rk-rv-analyzer-body">
            <div class="rk-rv-tool-panel">
              <h3>1. Dane budynku i wentylacji</h3>
              <div class="rk-rv-input-grid">
                <div class="rk-rv-field"><label for="rk-rv-volume">Kubatura ogrzewana [m³]</label><input id="rk-rv-volume" type="number" min="20" max="3000" step="1" value="405"><small>Informacja kontrolna; główne obliczenie wykorzystuje podane strumienie.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-supply">Projektowy nawiew [m³/h]</label><input id="rk-rv-supply" type="number" min="10" max="2000" step="1" value="200"><small>Najlepiej wartość z projektu lub protokołu pomiarowego.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-extract">Projektowy wywiew [m³/h]</label><input id="rk-rv-extract" type="number" min="10" max="2000" step="1" value="200"><small>Nie zakładaj automatycznie, że jest identyczny z nawiewem.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-indoor">Temperatura wewnętrzna [°C]</label><input id="rk-rv-indoor" type="number" min="10" max="28" step="0.5" value="20"></div>
                <div class="rk-rv-field"><label for="rk-rv-outdoor">Temperatura zewnętrzna [°C]</label><input id="rk-rv-outdoor" type="number" min="-40" max="10" step="0.5" value="-20"><small>Dla doboru mocy użyj właściwej temperatury projektowej lokalizacji.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-efficiency">Sprawność temperaturowa w tym punkcie [%]</label><input id="rk-rv-efficiency" type="number" min="0" max="95" step="1" value="80"><small>Nie musi być równa maksymalnej wartości katalogowej.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-infiltration">Dodatkowa infiltracja [m³/h]</label><input id="rk-rv-infiltration" type="number" min="0" max="1000" step="1" value="25"><small>Niekontrolowany przepływ poza odzyskiem; nie obejmuje tu niezbilansowania centrali.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-fan-power">Łączna moc wentylatorów [W]</label><input id="rk-rv-fan-power" type="number" min="0" max="2500" step="1" value="90"><small>Pokazujemy ją oddzielnie — to pobór elektryczny, nie automatyczna korekta OZC.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-active-area">Czynna powierzchnia podłogi [m²]</label><input id="rk-rv-active-area" type="number" min="1" max="1000" step="0.5" value="120"><small>Do orientacyjnego przeliczenia odzyskanej mocy na W/m².</small></div>
                <div class="rk-rv-field"><label for="rk-rv-source">Źródło ciepła</label><select id="rk-rv-source"><option value="heatpump">Pompa ciepła</option><option value="gas">Kocioł kondensacyjny</option><option value="electric">Ogrzewanie elektryczne</option><option value="other">Inne źródło</option></select><small>Nie zmienia fizycznej straty; wpływa na interpretację kosztu energii.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-commissioned">Jakość danych o przepływach</label><select id="rk-rv-commissioned"><option value="measured">Pomiary po uruchomieniu</option><option value="design" selected="">Dane projektowe</option><option value="unknown">Wartości szacunkowe</option></select><small>Zmienia poziom zaufania do wniosku, nie sam wzór.</small></div>
                <div class="rk-rv-field"><label for="rk-rv-mode">Cel sprawdzenia</label><select id="rk-rv-mode"><option value="design">Punkt projektowy mocy</option><option value="comparison">Porównanie wariantów</option></select><small>Narzędzie nie oblicza rocznych kWh ani okresu zwrotu.</small></div>
              </div>
              <div class="rk-rv-tool-note">Dla niezbilansowanego układu obliczenie konserwatywnie przyjmuje większy z podanych strumieni jako przepływ wymagający ogrzania, a odzysk liczy wyłącznie dla części zbilansowanej. Dodatkową infiltrację dodaje osobno.</div>
              <button id="rk-rv-run" class="rk-rv-run" type="button">Przelicz bilans wentylacji</button>
            </div>

            <div class="rk-rv-tool-panel" aria-live="polite">
              <h3>2. Wynik dla wpisanych danych</h3>
              <div class="rk-rv-result-grid">
                <div class="rk-rv-result"><span>Bez odzysku</span><strong id="rk-rv-q-no">2,72 kW</strong><small>mechaniczna wymiana powietrza</small></div>
                <div class="rk-rv-result"><span>Odzyskana moc</span><strong id="rk-rv-q-recovered">2,18 kW</strong><small>w rozpatrywanym punkcie</small></div>
                <div class="rk-rv-result"><span>Po wymienniku</span><strong id="rk-rv-q-remain">0,54 kW</strong><small>pozostała część mechaniczna</small></div>
                <div class="rk-rv-result"><span>Infiltracja</span><strong id="rk-rv-q-infiltration">0,34 kW</strong><small>poza odzyskiem ciepła</small></div>
                <div class="rk-rv-result rk-rv-result-highlight"><span>Razem z rekuperacją</span><strong id="rk-rv-q-total">0,88 kW</strong><small>wentylacja i podana infiltracja</small></div>
                <div class="rk-rv-result"><span>Różnica na powierzchnię</span><strong id="rk-rv-q-area">18,1 W/m²</strong><small>średnio dla podanej czynnej podłogi</small></div>
              </div>
              <div class="rk-rv-grid-2">
                <div class="rk-rv-result"><span>Moc elektryczna wentylatorów</span><strong id="rk-rv-fan-output">90 W</strong><small>pokazana osobno od obciążenia cieplnego</small></div>
                <div class="rk-rv-result"><span>Różnica nawiew / wywiew</span><strong id="rk-rv-balance-output">0,0%</strong><small>udział względem większego strumienia</small></div>
              </div>
              <div id="rk-rv-verdict" class="rk-rv-verdict">
                <b id="rk-rv-verdict-title">Wynik warunkowy — dane nadają się do porównania</b>
                <p id="rk-rv-verdict-text">Dane projektowe pozwalają ocenić kierunek zmiany. Przed regulacją podłogówki warto potwierdzić rzeczywiste strumienie po uruchomieniu centrali.</p>
              </div>
              <div id="rk-rv-diagnostics" class="rk-rv-diagnostics">
                <div class="rk-rv-diagnostic">Odzysk ciepła zmniejsza wentylacyjną część obciążenia, ale nie usuwa strat przez ściany, okna, dach, podłogę i mostki.</div>
                <div class="rk-rv-diagnostic rk-rv-diagnostic-warn">Podana sprawność jest założeniem dla wybranego punktu. Nie traktuj jej jako stałej wartości całorocznej.</div>
              </div>
            </div>

            <div class="rk-rv-tool-panel">
              <h3>3. Dynamiczny wykres obciążenia wentylacyjnego</h3>
              <p>Linie pokazują ten sam budynek i te same przepływy. Zmienia się jedynie temperatura zewnętrzna oraz obecność odzysku ciepła.</p>
              <div class="rk-rv-chart-wrap">
                <svg id="rk-rv-chart" viewBox="0 0 820 360" role="img" aria-labelledby="rk-rv-chart-title rk-rv-chart-desc">
                  <title id="rk-rv-chart-title">Porównanie wentylacyjnej straty ciepła bez odzysku i z rekuperacją</title>
                  <desc id="rk-rv-chart-desc">Wykres liniowy zależności obciążenia w kilowatach od temperatury zewnętrznej.</desc>
                  <rect x="0" y="0" width="820" height="360" rx="14" fill="#f7fbfc"></rect>
                  <g stroke="#d7e5ea" stroke-width="1">
                    <line x1="70" y1="30" x2="780" y2="30"></line>
                    <line x1="70" y1="97.5" x2="780" y2="97.5"></line>
                    <line x1="70" y1="165" x2="780" y2="165"></line>
                    <line x1="70" y1="232.5" x2="780" y2="232.5"></line>
                    <line x1="70" y1="300" x2="780" y2="300"></line>
                    <line x1="70" y1="30" x2="70" y2="300"></line>
                    <line x1="247.5" y1="30" x2="247.5" y2="300"></line>
                    <line x1="425" y1="30" x2="425" y2="300"></line>
                    <line x1="602.5" y1="30" x2="602.5" y2="300"></line>
                    <line x1="780" y1="30" x2="780" y2="300"></line>
                  </g>
                  <g fill="#597180" font-size="13" font-family="Inter, sans-serif">
                    <text id="rk-rv-y4" x="61" y="35" text-anchor="end">3,4</text>
                    <text id="rk-rv-y3" x="61" y="102" text-anchor="end">2,6</text>
                    <text id="rk-rv-y2" x="61" y="170" text-anchor="end">1,7</text>
                    <text id="rk-rv-y1" x="61" y="237" text-anchor="end">0,9</text>
                    <text x="61" y="305" text-anchor="end">0</text>
                    <text id="rk-rv-x0" x="70" y="324" text-anchor="middle">−25°C</text>
                    <text id="rk-rv-x1" x="425" y="324" text-anchor="middle">−7,5°C</text>
                    <text id="rk-rv-x2" x="780" y="324" text-anchor="middle">10°C</text>
                    <text x="425" y="348" text-anchor="middle" font-weight="700">temperatura zewnętrzna</text>
                    <text transform="translate(19 170) rotate(-90)" text-anchor="middle" font-weight="700">obciążenie [kW]</text>
                  </g>
                  <line id="rk-rv-design-marker" x1="171" y1="30" x2="171" y2="300" stroke="#102536" stroke-width="2" stroke-dasharray="6 6"></line>
                  <text id="rk-rv-design-label" x="178" y="48" fill="#102536" font-size="12" font-weight="800">punkt −20°C</text>
                  <polyline id="rk-rv-line-no" fill="none" stroke="#ff6a3d" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" points=""></polyline>
                  <polyline id="rk-rv-line-hr" fill="none" stroke="#25c7d8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" points=""></polyline>
                </svg>
                <div class="rk-rv-chart-legend">
                  <span class="rk-rv-legend-item"><span class="rk-rv-legend-line"></span>bez odzysku i z podaną infiltracją</span>
                  <span class="rk-rv-legend-item"><span class="rk-rv-legend-line rk-rv-legend-line-cyan"></span>z odzyskiem i podaną infiltracją</span>
                  <span class="rk-rv-legend-item">linia przerywana: wybrana temperatura</span>
                </div>
                <p class="rk-rv-chart-caption">Wykres nie przedstawia rocznego zużycia energii. Wartości wynikają z uproszczonego modelu 0,34 × przepływ × różnica temperatur.</p>
              </div>
            </div>
          </div>
        </div>
        <p class="rk-rv-small">Chcesz niezależnie sprawdzić pozostałe składniki? Użyj także <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła budynku</a>, pamiętając, że narzędzie internetowe nadal nie zastępuje kompletnego projektu.</p>
      </section>

      <aside class="rk-rv-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <h3>Analizator pokazuje bilans budynku, ale podłogówkę dobiera się pomieszczenie po pomieszczeniu</h3>
        <p>Analizator pokazuje, jak odzysk ciepła może zmienić wentylacyjną część obciążenia całego budynku, ale nie wie, ile tej mocy przypada na salon, łazienkę, sypialnie i pomieszczenia z dużymi przeszkleniami.</p>
        <p>To właśnie obciążenie każdego pomieszczenia oraz jego powierzchnia czynna decydują o rozstawie rur, liczbie pętli, przepływach i temperaturze zasilania. Jeżeli rekuperacja ma zostać prawidłowo uwzględniona w podłogówce, potrzebny jest indywidualny projekt.</p>
        <a class="rk-rv-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki uwzględniający rekuperację</a>
      </aside>

      <section id="rk-rv-wykres" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Interpretacja bez skrótów</div>
        <h2>Jak czytać dynamiczny wykres rekuperacji?</h2>
        <p>Im niższa temperatura zewnętrzna, tym większa różnica temperatur i chwilowa strata wentylacyjna. Pomarańczowa linia pokazuje wariant bez odzysku. Linia turkusowa uwzględnia odzysk dla zbilansowanej części przepływu oraz wpisaną infiltrację.</p>
        <div class="rk-rv-grid-3">
          <div class="rk-rv-card"><span class="rk-rv-card-number">1</span><h3>Odległość między liniami</h3><p>To orientacyjna odzyskana moc w danym punkcie, a nie gwarantowana oszczędność na rachunku.</p></div>
          <div class="rk-rv-card"><span class="rk-rv-card-number">2</span><h3>Nachylenie linii</h3><p>Wynika z przepływu powietrza i różnicy temperatur. Większy przepływ daje większe obciążenie.</p></div>
          <div class="rk-rv-card"><span class="rk-rv-card-number">3</span><h3>Linia projektowa</h3><p>Pomaga odczytać chwilową moc przy wybranej temperaturze, nie energię całego sezonu.</p></div>
        </div>
        <p>W rzeczywistym sezonie wpływ mają także zmienne <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła</a>, harmonogram wentylacji, wiatr, nasłonecznienie i zachowanie mieszkańców.</p>
      </section>

      <section id="rk-rv-porownanie" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Ta sama baza danych</div>
        <h2>Jak uczciwie porównać dom z rekuperacją i bez niej?</h2>
        <p>Porównanie ma sens tylko wtedy, gdy oba warianty dotyczą tego samego budynku i tych samych warunków. Zmieniamy sposób wentylacji, a pozostałe parametry pozostawiamy wspólne.</p>
        <div class="rk-rv-table-wrap">
          <table class="rk-rv-table">
            <thead><tr><th>Parametr</th><th>W obu wariantach</th><th>Co może się zmienić?</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>Przegrody i mostki</strong></td><td data-label="W obu wariantach">Te same współczynniki U, powierzchnie i geometria.</td><td data-label="Zmiana">Nic — rekuperacja nie poprawia izolacyjności ścian.</td></tr>
              <tr><td data-label="Parametr"><strong>Temperatura wewnętrzna i klimat</strong></td><td data-label="W obu wariantach">Te same temperatury projektowe i ten sam przebieg pogody.</td><td data-label="Zmiana">Sposób przygotowania powietrza wentylacyjnego.</td></tr>
              <tr><td data-label="Parametr"><strong>Wymagana wymiana powietrza</strong></td><td data-label="W obu wariantach">Porównywalny poziom wentylacji i sposób użytkowania.</td><td data-label="Zmiana">Kontrola przepływu oraz odzysk części ciepła.</td></tr>
              <tr><td data-label="Parametr"><strong>Źródło ciepła</strong></td><td data-label="W obu wariantach">Ta sama technologia, taryfa i sprawność przy porównaniu kosztów.</td><td data-label="Zmiana">Może zmienić się wymagana moc projektowa, jeśli OZC to potwierdzi.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-rv-callout"><strong>Nie porównuj wentylacji grawitacyjnej, która faktycznie działa słabo, z rekuperacją przy pełnym strumieniu i nie nazywaj różnicy czystą oszczędnością.</strong> Najpierw trzeba zapewnić porównywalną jakość powietrza.</div>
      </section>

      <section id="rk-rv-ozc" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Obliczenia projektowe</div>
        <h2>Rekuperacja a OZC — gdzie wpisuje się odzysk ciepła?</h2>
        <p>W obliczeniach trzeba rozdzielić przenikanie przez przegrody od strat związanych z powietrzem. Projektowy strumień wentylacji, odzysk i infiltracja wpływają na część wentylacyjną, ale nie kasują strat przez ściany, dach, podłogę, okna i mostki.</p>
        <div class="rk-rv-grid-2">
          <div class="rk-rv-card rk-rv-card-accent"><h3>Obciążenie całego budynku</h3><p>Pomaga dobrać źródło ciepła, lecz nie wystarcza do zaprojektowania pętli w pokojach.</p></div>
          <div class="rk-rv-card rk-rv-card-warm"><h3>Obciążenie pomieszczenia</h3><p>Decyduje, czy czynna powierzchnia podłogi odda potrzebną moc i przy jakich parametrach.</p></div>
        </div>
        <p>Więcej o różnicy między mocą domu i mocą poszczególnych pokoi znajdziesz w poradniku o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.</p>
      </section>

      <section id="rk-rv-sprawnosc" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Katalog to nie cały sezon</div>
        <h2>Sprawność rekuperatora zimą: wartość deklarowana i rzeczywista</h2>
        <p>Temperaturowa sprawność odzysku jest cechą konkretnego punktu pracy, a nie jedną stałą przypisaną do urządzenia na cały rok. Wpływają na nią między innymi strumienie, ich zbilansowanie, temperatury, przecieki, stan filtrów, oszronienie oraz algorytm ochrony wymiennika.</p>
        <div class="rk-rv-grid-4">
          <div class="rk-rv-card"><h3>Przepływ</h3><p>Inny bieg wentylatorów oznacza inny punkt pracy wymiennika.</p></div>
          <div class="rk-rv-card"><h3>Bilans</h3><p>Niezgodność nawiewu i wywiewu ogranicza część strumienia objętą odzyskiem.</p></div>
          <div class="rk-rv-card"><h3>Szronienie</h3><p>Strategia ochrony może okresowo zmieniać strumień lub zużycie energii.</p></div>
          <div class="rk-rv-card"><h3>Filtry</h3><p>Rosnący opór zmienia warunki pracy i może zwiększyć pobór wentylatorów.</p></div>
        </div>
        <p>Unijne zasady ekoprojektu definiują między innymi temperaturową sprawność odzysku i warunki jej pomiaru. Dlatego do obliczeń używaj danych dla konkretnego punktu, a nie samego hasła „do 95%”.</p>
      </section>

      <section id="rk-rv-bilans" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Powietrze musi się zgadzać</div>
        <h2>Nawiew, wywiew, szczelność i infiltracja</h2>
        <p>W idealnym modelu strumień nawiewany i usuwany są zbliżone. W budynku występują jednak nieszczelności, okresowe podciśnienie lub nadciśnienie, otwieranie drzwi oraz urządzenia wyrzucające powietrze poza centralą. Powietrze brakujące do bilansu napływa przez obudowę albo inne otwory — bez odzysku w wymienniku.</p>
        <div class="rk-rv-callout rk-rv-callout-danger"><strong>Szczelność budynku nie oznacza braku wentylacji.</strong> Oznacza, że wymiana odbywa się kontrolowaną drogą, a nie przez przypadkowe szczeliny. Dopiero wtedy łatwiej utrzymać projektowe przepływy i wykorzystać odzysk ciepła.</div>
        <p>Kubatura i umowna liczba wymian mogą pomóc w kontroli wyniku, ale projekt powinien wynikać z potrzeb pomieszczeń i wymagań higienicznych. Uniwersalne „0,5 wymiany na godzinę” nie zastępuje bilansu nawiewu i wywiewu.</p>
      </section>

      <section id="rk-rv-podlogowka" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Wpływ pośredni</div>
        <h2>Jak rekuperacja wpływa na wymaganą moc podłogówki?</h2>
        <p>Jeżeli OZC wykaże mniejszą stratę wentylacyjną, maleje suma mocy do dostarczenia. Nie oznacza to jednak, że odzyskaną moc można równo podzielić przez metry kwadratowe całego domu i z takiej średniej dobrać każde pomieszczenie.</p>
        <div class="rk-rv-grid-3">
          <div class="rk-rv-card"><h3>Salon</h3><p>Duże przeszklenia i mała powierzchnia czynna mogą nadal tworzyć wymagający przypadek.</p></div>
          <div class="rk-rv-card"><h3>Łazienka</h3><p>Wyższa temperatura obliczeniowa i zabudowa ograniczająca podłogę zmieniają wynik.</p></div>
          <div class="rk-rv-card"><h3>Sypialnia</h3><p>Inna temperatura zadana, nawiew i udział przegród dają inne obciążenie niż średnia domu.</p></div>
        </div>
        <p>To jeden z powodów, dla których warto sprawdzić, <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>, zamiast dobierać pętle z powierzchni całkowitej.</p>
      </section>

      <section id="rk-rv-rozstaw" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Brak automatycznej reguły</div>
        <h2>Jaki rozstaw rur podłogówki przy rekuperacji?</h2>
        <p><strong>Rekuperacja nie narzuca rozstawu 10, 15 ani 20 cm.</strong> Rozstaw dobiera się do wymaganej mocy jednostkowej pomieszczenia, czynnej powierzchni, temperatury wody, konstrukcji podłogi, oporu okładziny i ograniczeń temperatury powierzchni.</p>
        <div class="rk-rv-formula">q<sub>wym</sub> = Q̇<sub>pomieszczenia</sub> ÷ A<sub>czynna</sub></div>
        <p>Dopiero po obliczeniu <em>q<sub>wym</sub></em> można porównać <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 i 15 cm</a>. Gdy źródłem jest pompa ciepła, pomocne jest osobne opracowanie o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie podłogówki przy pompie ciepła</a>.</p>
      </section>

      <section id="rk-rv-zasilanie" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Wynik, nie założenie</div>
        <h2>Temperatura zasilania podłogówki przy rekuperacji</h2>
        <p>Mniejsze obciążenie może pozwolić uzyskać wymaganą moc przy niższej średniej temperaturze wody, ale trzeba to sprawdzić na charakterystyce konkretnej konstrukcji podłogi. Nie ma jednej temperatury „dla domu z rekuperacją”.</p>
        <ul class="rk-rv-list-check">
          <li>Najpierw oblicz moc każdego pomieszczenia po uwzględnieniu wentylacji.</li>
          <li>Określ czynną powierzchnię, rozstaw, jastrych i opór okładziny.</li>
          <li>Sprawdź temperaturę powierzchni oraz wymagany przepływ.</li>
          <li>Dopiero potem ustal wspólną temperaturę zasilania i krzywą grzewczą.</li>
        </ul>
        <p>Granice i zależności wyjaśnia artykuł o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>. Późniejszą pracę źródła porządkuje prawidłowo ustawiona <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza</a>.</p>
      </section>

      <section id="rk-rv-pompa-ciepla" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Popularny zestaw trzech instalacji</div>
        <h2>Rekuperacja, pompa ciepła i podłogówka</h2>
        <p>To logiczne połączenie w budynku o niewielkich stratach: rekuperacja ogranicza część obciążenia wentylacyjnego, pompa ciepła wytwarza energię, a podłogówka może pracować z niską temperaturą wody. Każdy element trzeba jednak dobrać osobno do wspólnych danych budynku.</p>
        <div class="rk-rv-grid-3">
          <div class="rk-rv-card rk-rv-card-accent"><h3>Rekuperacja</h3><p>Bilans powietrza, spręż dyspozycyjny, odzysk, akustyka i pobór wentylatorów.</p></div>
          <div class="rk-rv-card rk-rv-card-warm"><h3>Pompa ciepła</h3><p>Moc i modulacja przy temperaturze obliczeniowej, defrost, punkt biwalentny i parametry wody.</p></div>
          <div class="rk-rv-card rk-rv-card-green"><h3>Podłogówka</h3><p>Moc pomieszczeń, powierzchnie czynne, pętle, przepływy i opory hydrauliczne.</p></div>
        </div>
        <p>Zacznij od poznania zasad działania <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>, następnie sprawdź, <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">czy pompa ciepła ogrzeje konkretny dom z podłogówką</a>. Cały proces projektowy opisuje poradnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>.</p>
      </section>

      <section id="rk-rv-koszty" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Pełny koszt użytkowania</div>
        <h2>Ile kosztuje praca rekuperacji z ogrzewaniem podłogowym?</h2>
        <p>Rachunek nie sprowadza się do odzyskanej energii. Trzeba zestawić wartość unikniętego zużycia ciepła z energią elektryczną wentylatorów, filtrami, czyszczeniem, przeglądami oraz ewentualnymi naprawami. W nowym domu osobno porównuje się także koszt inwestycyjny różnych sposobów wentylacji.</p>
        <div class="rk-rv-grid-4">
          <div class="rk-rv-card rk-rv-card-green"><h3>Energia odzyskana</h3><p>Jej wartość zależy od źródła ciepła, jego sprawności lub COP oraz ceny energii.</p></div>
          <div class="rk-rv-card rk-rv-card-accent"><h3>Wentylatory</h3><p>Pobór zależy od przepływu, oporów instalacji, zabrudzenia filtrów i sprawności napędów.</p></div>
          <div class="rk-rv-card rk-rv-card-warm"><h3>Materiały eksploatacyjne</h3><p>Częstotliwość wymiany filtrów zależy między innymi od otoczenia i intensywności pracy.</p></div>
          <div class="rk-rv-card"><h3>Serwis</h3><p>Dostęp do centrali, czyszczenie, odpływ kondensatu i kontrola przepływów mają realny koszt.</p></div>
        </div>
        <div class="rk-rv-callout"><strong>Moc wentylatorów nie jest prostym „ujemnym obciążeniem cieplnym”.</strong> Część energii może ostatecznie trafić do strumienia powietrza, ale sposób jej uwzględnienia zależy od położenia wentylatorów i metody obliczeń. W analizatorze pokazujemy ją osobno.</div>
        <p>Na całkowity rachunek wpływa również to, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">czy ogrzewanie podłogowe jest energooszczędne w konkretnym budynku</a>, a nie sama nazwa zastosowanych instalacji.</p>
      </section>

      <section id="rk-rv-zwrot" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Bez obiecywania jednej liczby</div>
        <h2>Jak policzyć okres zwrotu rekuperacji?</h2>
        <p>Prosty okres zwrotu można policzyć dopiero po ustaleniu porównywalnych wariantów kosztowych. Dla modernizacji będzie to zwykle koszt wykonania rekuperacji pomniejszony o koszty elementów wentylacji, których dzięki niej nie trzeba wykonać. W nowym budynku baza porównawcza może wyglądać inaczej.</p>
        <ol class="rk-rv-steps">
          <li><strong>Zdefiniuj wariant bazowy.</strong> Opisz sposób wentylacji, jakość powietrza i wymagane prace budowlane bez rekuperacji.</li>
          <li><strong>Policz energię w obu wariantach.</strong> Użyj danych pogodowych i zmiennego obciążenia, a nie jednego mroźnego punktu.</li>
          <li><strong>Przelicz energię na koszt.</strong> Uwzględnij źródło ciepła, sprawność, taryfę oraz ceny w przyjętym scenariuszu.</li>
          <li><strong>Dodaj koszty własne rekuperacji.</strong> Energia wentylatorów, filtry, przeglądy i odtworzenie elementów.</li>
          <li><strong>Wykonaj analizę wrażliwości.</strong> Sprawdź kilka cen energii, sprawności, przepływów i kosztów serwisu.</li>
        </ol>
        <div class="rk-rv-formula">prosty okres zwrotu = dodatkowy nakład inwestycyjny ÷ roczna korzyść netto</div>
        <p>To dopiero metoda uproszczona — nie uwzględnia wartości pieniądza w czasie ani wymiany urządzeń. Podobne pułapki opisuje analiza <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrotu z inwestycji w ogrzewanie podłogowe</a>.</p>
      </section>

      <section id="rk-rv-wilgotnosc" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Komfort nie wynika z jednego urządzenia</div>
        <h2>Rekuperacja, podłogówka i wilgotność powietrza</h2>
        <p>Zimą powietrze zewnętrzne po ogrzaniu ma niską wilgotność względną. Wentylacja usuwa wilgoć produkowaną w domu, więc zbyt duży strumień w stosunku do emisji wilgoci może sprzyjać przesuszeniu. Podłogówka nie usuwa pary wodnej z budynku — podnosi temperaturę powietrza i powierzchni, co zmienia wilgotność względną.</p>
        <div class="rk-rv-grid-3">
          <div class="rk-rv-card"><h3>Źródła wilgoci</h3><p>Liczba mieszkańców, kąpiele, gotowanie, pranie, rośliny i wilgoć technologiczna.</p></div>
          <div class="rk-rv-card"><h3>Strumień wentylacji</h3><p>Powinien zapewniać jakość powietrza, ale nie być bez potrzeby utrzymywany na najwyższym biegu.</p></div>
          <div class="rk-rv-card"><h3>Temperatura</h3><p>Ta sama zawartość wilgoci daje inną wilgotność względną przy innej temperaturze powietrza.</p></div>
        </div>
        <p>Osobno omawiam <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">wpływ podłogówki na wilgotność</a> oraz pytanie, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">czy ogrzewanie podłogowe wysusza powietrze</a>.</p>
        <div class="rk-rv-callout rk-rv-callout-warn"><strong>Nie obiecuj stałych 40–50% wilgotności.</strong> Wynik zależy od pogody, emisji wilgoci, strumienia powietrza, szczelności i ewentualnego odzysku wilgoci.</div>
      </section>

      <section id="rk-rv-wymiennik" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Ciepło jawne i część wilgoci</div>
        <h2>Wymiennik standardowy czy entalpiczny?</h2>
        <p>Standardowy wymiennik odzyskuje przede wszystkim ciepło jawne. Wymiennik entalpiczny może w określonych warunkach przekazywać także część wilgoci między strumieniami. Nie oznacza to automatycznego utrzymania zadanej wilgotności ani braku potrzeby kontroli wentylacji.</p>
        <div class="rk-rv-table-wrap">
          <table class="rk-rv-table">
            <thead><tr><th>Cecha</th><th>Wymiennik standardowy</th><th>Wymiennik entalpiczny</th></tr></thead>
            <tbody>
              <tr><td data-label="Cecha"><strong>Odzysk temperatury</strong></td><td data-label="Standardowy">Tak, zależnie od konstrukcji i punktu pracy.</td><td data-label="Entalpiczny">Tak, również zależnie od warunków i punktu pracy.</td></tr>
              <tr><td data-label="Cecha"><strong>Transfer wilgoci</strong></td><td data-label="Standardowy">Zwykle nie jest jego podstawową funkcją.</td><td data-label="Entalpiczny">Możliwy częściowy transfer pary wodnej.</td></tr>
              <tr><td data-label="Cecha"><strong>Dobór</strong></td><td data-label="Standardowy">Klimat, przepływy, odszranianie, kondensat i serwis.</td><td data-label="Entalpiczny">Dodatkowo oczekiwany bilans wilgoci i wymagania producenta urządzenia.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Jeżeli instalacja ma również chłodzić przez podłogę, wilgotność trzeba analizować razem z <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktem rosy i ryzykiem kondensacji</a>.</p>
      </section>

      <section id="rk-rv-okna" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Przepływy poza centralą</div>
        <h2>Czy przy rekuperacji można otwierać okna? Co z okapem i kominkiem?</h2>
        <h3>Co okresowo zmienia bilans przepływów?</h3>
        <h4>Otwieranie okien</h4>
        <p>Można otwierać okna. W tym czasie część wymiany powietrza odbywa się poza wymiennikiem, dlatego odzysk ciepła spada, a centrala nie kontroluje całego przepływu. Krótkie otwarcie okna nie „psuje” instalacji, lecz długotrwałe rozszczelnienie zwiększa straty.</p>
        <h4>Okap kuchenny</h4>
        <p>Okap wyrzucający powietrze bezpośrednio na zewnątrz może wytworzyć znaczne podciśnienie. Trzeba przewidzieć drogę powietrza kompensacyjnego i nie włączać jego dużego przepływu do standardowego bilansu centrali bez sprawdzenia.</p>
        <h4>Kominek i urządzenia spalające paliwo</h4>
        <p>Wymagają doprowadzenia powietrza do spalania oraz weryfikacji bezpieczeństwa i warunków ciągu. Nie wolno zakładać, że sama regulacja rekuperatora rozwiąże każdy przypadek podciśnienia.</p>
        <p>Pomieszczenia z dużymi oknami nadal trzeba obliczać lokalnie. Rekuperacja nie usuwa potrzeby analizy <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówki przy dużych przeszkleniach</a>.</p>
      </section>

      <section id="rk-rv-zima" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Tryby poza punktem katalogowym</div>
        <h2>Mróz, kondensat, odszranianie i bypass</h2>
        <p>W niskiej temperaturze w wymienniku może wykraplać się wilgoć, a w określonych warunkach powstawać szron. Centrala musi chronić wymiennik, na przykład zmieniając przepływy, uruchamiając nagrzewnicę lub realizując sekwencję odszraniania. Każda strategia może zmienić chwilowy odzysk i pobór energii.</p>
        <div class="rk-rv-grid-2">
          <div class="rk-rv-card rk-rv-card-warm"><h3>Zimą</h3><ul class="rk-rv-list-check"><li>sprawdź drożność odpływu kondensatu,</li><li>poznaj logikę ochrony przeciwzamrożeniowej,</li><li>kontroluj opory filtrów i bilans przepływów.</li></ul></div>
          <div class="rk-rv-card rk-rv-card-accent"><h3>Latem i w okresach przejściowych</h3><ul class="rk-rv-list-check"><li>bypass może omijać odzysk temperatury,</li><li>nocne chłodzenie zależy od temperatur i przepływu,</li><li>rekuperator nie zastępuje aktywnej klimatyzacji.</li></ul></div>
        </div>
        <div class="rk-rv-callout"><strong>Wartość odzysku z etykiety nie opisuje wszystkich trybów centrali.</strong> Do analizy sezonowej potrzebny jest przebieg pracy, dane klimatyczne i sposób sterowania.</div>
      </section>

      <section id="rk-rv-uruchomienie" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Projekt trzeba potwierdzić pomiarem</div>
        <h2>Uruchomienie rekuperacji i regulacja podłogówki</h2>
        <p>Dobrze zaprojektowane instalacje mogą działać słabo, jeśli nie zostaną uruchomione i zrównoważone. Po stronie wentylacji potrzebny jest pomiar nawiewów i wywiewów. Po stronie ogrzewania — odpowietrzenie, ustawienie przepływów i sprawdzenie pracy źródła przy rzeczywistym obciążeniu.</p>
        <div class="rk-rv-table-wrap">
          <table class="rk-rv-table">
            <thead><tr><th>Instalacja</th><th>Co mierzyć lub sprawdzać?</th><th>Dokument końcowy</th></tr></thead>
            <tbody>
              <tr><td data-label="Instalacja"><strong>Rekuperacja</strong></td><td data-label="Kontrola">Strumienie na nawiewnikach i wywiewnikach, spręż, hałas, sterowanie, kondensat.</td><td data-label="Dokument">Protokół uruchomienia i regulacji przepływów.</td></tr>
              <tr><td data-label="Instalacja"><strong>Podłogówka</strong></td><td data-label="Kontrola">Przepływy pętli, ciśnienie, odpowietrzenie, temperatury zasilania i powrotu, działanie automatyki.</td><td data-label="Dokument">Nastawy rozdzielaczy i parametry uruchomienia.</td></tr>
              <tr><td data-label="Instalacja"><strong>Cały budynek</strong></td><td data-label="Kontrola">Temperatury pomieszczeń, reakcja na pogodę, rzeczywiste harmonogramy i zużycie energii.</td><td data-label="Dokument">Korekty eksploatacyjne bez zmiany założeń bezpieczeństwa.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Po stronie wodnej przepływy odczytuje się na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach rozdzielacza</a>, a wymagany spręż zapewnia prawidłowo dobrana <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a>.</p>
      </section>

      <section id="rk-rv-bledy" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Mity, które zmieniają decyzje</div>
        <h2>Najczęstsze błędy przy łączeniu rekuperacji i podłogówki</h2>
        <div class="rk-rv-grid-2">
          <div class="rk-rv-card rk-rv-card-warm"><h3>Błędy obliczeniowe</h3><ul class="rk-rv-list-cross"><li>pomnożenie mocy projektowej przez cały sezon,</li><li>pominięcie infiltracji i niezbilansowania,</li><li>użycie maksymalnej sprawności jako stałej,</li><li>przypisanie jednej oszczędności każdemu domowi.</li></ul></div>
          <div class="rk-rv-card rk-rv-card-accent"><h3>Błędy projektowe</h3><ul class="rk-rv-list-cross"><li>dobór rozstawu rur wyłącznie z faktu posiadania rekuperacji,</li><li>podział mocy domu proporcjonalnie do powierzchni pokoi,</li><li>brak koordynacji tras kanałów, rozdzielaczy i sufitów,</li><li>brak dostępu do filtrów, syfonu i elementów regulacyjnych.</li></ul></div>
        </div>
        <div class="rk-rv-callout rk-rv-callout-danger"><strong>Nie myl mocy z efektywnością.</strong> Urządzenie może dostarczyć wymaganą moc dzięki grzałce lub źródłu szczytowemu, ale nie oznacza to, że cała energia została wytworzona z wysoką sprawnością sezonową.</div>
      </section>

      <section id="rk-rv-checklista" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Przed zamówieniem i przed odbiorem</div>
        <h2>Checklista inwestora: nowy dom i modernizacja</h2>
        <div class="rk-rv-grid-2">
          <div class="rk-rv-card rk-rv-card-green">
            <h3>Nowy budynek</h3>
            <ul class="rk-rv-list-check">
              <li>ustal układ funkcjonalny i temperatury pomieszczeń,</li>
              <li>wykonaj OZC ze spójnym modelem wentylacji,</li>
              <li>zaprojektuj nawiew, wywiew i drogi transferu,</li>
              <li>oblicz podłogówkę dla każdego pomieszczenia,</li>
              <li>skoordynuj kanały, stropy, sufity i szafki rozdzielaczy,</li>
              <li>zapewnij dostęp serwisowy i odpływ kondensatu.</li>
            </ul>
          </div>
          <div class="rk-rv-card rk-rv-card-accent">
            <h3>Modernizacja</h3>
            <ul class="rk-rv-list-check">
              <li>oceń szczelność i istniejące drogi napływu powietrza,</li>
              <li>sprawdź miejsce na centralę, kanały i tłumiki,</li>
              <li>zweryfikuj kominy, okap i urządzenia spalające paliwo,</li>
              <li>przelicz nowe obciążenie oraz moc istniejącego źródła,</li>
              <li>sprawdź, czy hydraulika podłogówki pozwala na regulację,</li>
              <li>porównaj pełne koszty obu wariantów.</li>
            </ul>
          </div>
        </div>
        <p>Zakres rysunków, obliczeń i zestawień opisuję w poradniku <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>
      </section>

      <section id="rk-rv-faq" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Pytania inwestorów</div>
        <h2>Rekuperacja i ogrzewanie podłogowe — FAQ</h2>
        <div class="rk-rv-faq">
          <details><summary>Czy rekuperacja ogrzewa dom?</summary><div class="rk-rv-faq-answer"><p>Nie zastępuje źródła ciepła. Odzyskuje część energii z powietrza usuwanego i dzięki temu ogranicza wentylacyjną część strat. Pozostałe straty musi pokryć instalacja grzewcza.</p></div></details>
          <details><summary>Czy rekuperacja obniża koszty ogrzewania?</summary><div class="rk-rv-faq-answer"><p>Może je obniżyć, ale wielkość korzyści zależy od przepływów, rzeczywistego odzysku, szczelności, klimatu, źródła ciepła i ceny energii. Od korzyści trzeba odjąć energię wentylatorów, filtry i serwis.</p></div></details>
          <details><summary>Czy rekuperacja wymaga ogrzewania podłogowego?</summary><div class="rk-rv-faq-answer"><p>Nie. Rekuperacja może współpracować z podłogówką, grzejnikami lub innym systemem ogrzewania. Łączy je bilans cieplny budynku, a nie bezpośrednie połączenie instalacyjne.</p></div></details>
          <details><summary>Czy ogrzewanie podłogowe wymaga rekuperacji?</summary><div class="rk-rv-faq-answer"><p>Nie. Podłogówka może pracować także w budynku z innym prawidłowo zaprojektowanym sposobem wentylacji. Rekuperacja może jednak zmniejszyć część obciążenia cieplnego.</p></div></details>
          <details><summary>Czy przy rekuperacji można otwierać okna?</summary><div class="rk-rv-faq-answer"><p>Tak. W czasie otwarcia okna wymiana powietrza częściowo omija wymiennik, więc odzysk spada i rosną straty. Krótkie wietrzenie nie uszkadza systemu.</p></div></details>
          <details><summary>Jaki rozstaw rur podłogówki stosuje się przy rekuperacji?</summary><div class="rk-rv-faq-answer"><p>Nie istnieje rozstaw przypisany do rekuperacji. Dobiera się go z mocy pomieszczenia, powierzchni czynnej, temperatury wody, konstrukcji podłogi i oporu okładziny.</p></div></details>
          <details><summary>Czy rekuperacja automatycznie obniża temperaturę zasilania podłogówki?</summary><div class="rk-rv-faq-answer"><p>Nie automatycznie. Mniejsze obciążenie może umożliwić niższą temperaturę, lecz trzeba to potwierdzić obliczeniem wydajności podłogi w każdym pomieszczeniu.</p></div></details>
          <details><summary>Czy sprawność rekuperatora 85% jest stała przez całą zimę?</summary><div class="rk-rv-faq-answer"><p>Nie. To wartość odnosząca się do określonych warunków. Rzeczywisty odzysk zmieniają przepływy, bilans, temperatury, filtry, przecieki, szronienie i strategia odszraniania.</p></div></details>
          <details><summary>Ile prądu zużywa rekuperator?</summary><div class="rk-rv-faq-answer"><p>Zużycie wynika z mocy wentylatorów i czasu pracy na poszczególnych biegach. Należy korzystać z danych konkretnej centrali dla projektowego sprężu i mierzyć zużycie w rzeczywistej instalacji.</p></div></details>
          <details><summary>Czy wymiennik entalpiczny rozwiązuje problem suchego powietrza?</summary><div class="rk-rv-faq-answer"><p>Może odzyskiwać część wilgoci, ale nie gwarantuje stałej wilgotności. Bilans nadal zależy od pogody, emisji wilgoci w domu, przepływu wentylacji i szczelności.</p></div></details>
          <details><summary>Czy dzięki rekuperacji można kupić mniejszą pompę ciepła?</summary><div class="rk-rv-faq-answer"><p>Tylko wtedy, gdy kompletne OZC wykaże niższe projektowe obciążenie. Nie odejmuje się z góry uniwersalnych 2–3 kW i nie dobiera urządzenia wyłącznie z deklarowanej sprawności centrali.</p></div></details>
          <details><summary>Czy analizator oblicza roczne oszczędności i okres zwrotu?</summary><div class="rk-rv-faq-answer"><p>Nie. Pokazuje chwilową wentylacyjną część obciążenia dla wpisanych temperatur i przepływów. Analiza roczna wymaga danych pogodowych, profilu pracy, cen energii i kosztów eksploatacyjnych.</p></div></details>
        </div>
      </section>

      <section id="rk-rv-zrodla" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Podstawa techniczna</div>
        <h2>Źródła i dokumenty wykorzystane przy aktualizacji</h2>
        <p>Linki prowadzą wyłącznie do instytucji publicznych i organizacji normalizacyjnej. Dokumenty trzeba zawsze stosować w aktualnym wydaniu i w zakresie właściwym dla danego projektu.</p>
        <ol class="rk-rv-source-list">
          <li><a href="https://eur-lex.europa.eu/legal-content/PL/TXT/HTML/?uri=CELEX%3A32014R1253" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — rozporządzenie (UE) nr 1253/2014 dotyczące urządzeń wentylacyjnych</a>: definicje odzysku ciepła, sprawności temperaturowej, przecieków i poboru mocy.</li>
          <li><a href="https://single-market-economy.ec.europa.eu/single-market/goods/european-standards/harmonised-standards/ecodesign-and-energy-labelling-ventilation_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — ekoprojekt i etykietowanie energetyczne urządzeń wentylacyjnych</a>.</li>
          <li><a href="https://www.gov.uk/government/publications/ventilation-approved-document-f" target="_blank" rel="nofollow noopener noreferrer">GOV.UK — Approved Document F: Ventilation</a>: wymagania dotyczące wentylacji, uruchomienia, pomiarów i przekazania informacji użytkownikowi.</li>
          <li><a href="https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20220001225" target="_blank" rel="nofollow noopener noreferrer">ISAP — Warunki techniczne, jakim powinny odpowiadać budynki i ich usytuowanie</a>.</li>
          <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — systemy ogrzewania i chłodzenia płaszczyznowego</a>: metody wyznaczania wydajności powierzchni grzewczych.</li>
        </ol>
        <div class="rk-rv-callout"><strong>Zakres odpowiedzialności:</strong> wzory i analizator służą do edukacyjnego porównania wariantów. Nie zastępują obliczeń wykonanych według właściwych norm, projektu wentylacji, charakterystyk urządzeń ani sprawdzenia wymagań krajowych.</div>
      </section>

      <section id="rk-rv-author" class="rk-rv-section">
        <div class="rk-rv-eyebrow">Autor i odpowiedzialność merytoryczna</div>
        <h2>O autorze opracowania</h2>
        <div class="rk-rv-author">
          <aside class="rk-rv-author-side">
            <img decoding="async" class="rk-rv-author-photo" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="300" height="300" loading="lazy">
            <h3>Robert Kucharski</h3>
            <p>Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
            <span class="rk-rv-social-label">Profile autora</span>
            <div class="rk-rv-socials" aria-label="Profile społecznościowe Roberta Kucharskiego">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="Robert Kucharski na LinkedIn">in</a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt Ogrzewania na Facebooku">f</a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Projekt HVAC w serwisie X">X</a>
            </div>
          </aside>
          <div class="rk-rv-author-main">
            <div class="rk-rv-author-quote">Rekuperacja może zmniejszyć obciążenie cieplne budynku, ale nie zwalnia projektanta z obliczenia każdego pomieszczenia, czynnej podłogi i hydrauliki pętli.</div>
            <div class="rk-rv-author-tabs" aria-label="Zakres kompetencji autora"><span>O autorze</span><span>Obliczenia cieplne</span><span>Hydraulika</span><span>Materiały edukacyjne</span></div>
            <p><strong>Robert Kucharski</strong> opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W publikacjach rozdziela dane wejściowe, model obliczeniowy, wynik i ograniczenia — tak, aby czytelnik wiedział, co można ocenić orientacyjnie, a czego nie wolno rozstrzygać bez projektu.</p>
            <p>Artykuł został zaktualizowany pod kątem współpracy rekuperacji z instalacją grzewczą, interpretacji mocy i energii, bilansu przepływów oraz wpływu odzysku ciepła na projektowe obciążenie pomieszczeń. Autor nie przypisuje uniwersalnych oszczędności konkretnemu urządzeniu i opiera wnioski na jawnych założeniach, dokumentach technicznych oraz aktualnych wymaganiach.</p>
            <p>Wszystkie wpisy autora znajdziesz na stronie <a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski — publikacje</a>.</p>
            <div class="rk-rv-author-portals">Autor publikuje również w serwisach <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>.</div>
          </div>
        </div>
      </section>

      <aside class="rk-rv-cta" aria-label="Końcowe zaproszenie do zamówienia projektu">
        <h3>Zaprojektuj podłogówkę na podstawie rzeczywistych strat po uwzględnieniu rekuperacji</h3>
        <p>Projekt łączy obciążenie cieplne pomieszczeń z ich powierzchnią czynną, konstrukcją podłogi, rozstawem rur, długościami pętli, przepływami i nastawami rozdzielaczy. Dzięki temu instalacja nie opiera się na średniej mocy całego domu ani na założeniu, że sama rekuperacja rozwiązuje dobór ogrzewania.</p>
        <a class="rk-rv-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article",
      "url": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/",
      "headline": "Rekuperacja i ogrzewanie podłogowe – czy to się opłaca? Koszty i obliczenia",
      "description": "Techniczne porównanie wpływu rekuperacji na straty ciepła budynku, moc ogrzewania podłogowego i koszty eksploatacji wraz z interaktywnym analizatorem bilansu.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-07",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webpage" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "about": [
        "rekuperacja i ogrzewanie podłogowe",
        "odzysk ciepła z wentylacji",
        "projektowe obciążenie cieplne",
        "temperatura zasilania podłogówki",
        "koszty eksploatacji rekuperacji"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#webpage",
      "url": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/",
      "name": "Rekuperacja i ogrzewanie podłogowe – czy to się opłaca? Koszty i obliczenia",
      "description": "Sprawdź, jak rekuperacja wpływa na straty ciepła budynku, moc podłogówki i koszty ogrzewania.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-07",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#breadcrumb" },
      "mainEntity": [
        { "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#article" },
        { "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#faq" }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Rekuperacja i ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#analyzer",
      "name": "Interaktywny analizator współpracy rekuperacji z podłogówką",
      "url": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#rk-rv-analizator",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Web",
      "inLanguage": "pl-PL",
      "description": "Narzędzie porównuje wentylacyjną część obciążenia budynku bez odzysku i z odzyskiem ciepła dla wpisanych przepływów, temperatur, sprawności i infiltracji.",
      "isAccessibleForFree": true,
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#howto",
      "name": "Jak ocenić współpracę rekuperacji z ogrzewaniem podłogowym",
      "description": "Sześć kroków do technicznej oceny wpływu odzysku ciepła na bilans i projekt podłogówki.",
      "inLanguage": "pl-PL",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal warunki projektowe", "text": "Określ temperatury wewnętrzne, temperaturę zewnętrzną właściwą dla lokalizacji i geometrię budynku." },
        { "@type": "HowToStep", "position": 2, "name": "Zbilansuj wentylację", "text": "Ustal projektowe strumienie nawiewu i wywiewu dla poszczególnych pomieszczeń." },
        { "@type": "HowToStep", "position": 3, "name": "Przyjmij odzysk i infiltrację", "text": "Użyj sprawności dla właściwego punktu pracy oraz osobno uwzględnij niekontrolowany przepływ powietrza." },
        { "@type": "HowToStep", "position": 4, "name": "Wykonaj OZC pomieszczeń", "text": "Policz przenikanie, mostki, wentylację, infiltrację i właściwe zyski dla każdego pomieszczenia." },
        { "@type": "HowToStep", "position": 5, "name": "Dobierz podłogówkę", "text": "Do obciążenia pomieszczeń dobierz czynną powierzchnię, rozstaw rur, temperaturę wody, pętle i przepływy." },
        { "@type": "HowToStep", "position": 6, "name": "Uruchom i zmierz", "text": "Zmierz strumienie wentylacji, ustaw przepływy pętli i skoryguj sterowanie na podstawie rzeczywistej pracy instalacji." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy rekuperacja ogrzewa dom?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie zastępuje źródła ciepła. Odzyskuje część energii z powietrza usuwanego i dzięki temu ogranicza wentylacyjną część strat. Pozostałe straty musi pokryć instalacja grzewcza." }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperacja obniża koszty ogrzewania?",
          "acceptedAnswer": { "@type": "Answer", "text": "Może je obniżyć, ale wielkość korzyści zależy od przepływów, rzeczywistego odzysku, szczelności, klimatu, źródła ciepła i ceny energii. Od korzyści trzeba odjąć energię wentylatorów, filtry i serwis." }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperacja wymaga ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rekuperacja może współpracować z podłogówką, grzejnikami lub innym systemem ogrzewania. Łączy je bilans cieplny budynku, a nie bezpośrednie połączenie instalacyjne." }
        },
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe wymaga rekuperacji?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Podłogówka może pracować także w budynku z innym prawidłowo zaprojektowanym sposobem wentylacji. Rekuperacja może jednak zmniejszyć część obciążenia cieplnego." }
        },
        {
          "@type": "Question",
          "name": "Czy przy rekuperacji można otwierać okna?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak. W czasie otwarcia okna wymiana powietrza częściowo omija wymiennik, więc odzysk spada i rosną straty. Krótkie wietrzenie nie uszkadza systemu." }
        },
        {
          "@type": "Question",
          "name": "Jaki rozstaw rur podłogówki stosuje się przy rekuperacji?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie istnieje rozstaw przypisany do rekuperacji. Dobiera się go z mocy pomieszczenia, powierzchni czynnej, temperatury wody, konstrukcji podłogi i oporu okładziny." }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperacja automatycznie obniża temperaturę zasilania podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie automatycznie. Mniejsze obciążenie może umożliwić niższą temperaturę, lecz trzeba to potwierdzić obliczeniem wydajności podłogi w każdym pomieszczeniu." }
        },
        {
          "@type": "Question",
          "name": "Czy sprawność rekuperatora 85% jest stała przez całą zimę?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. To wartość odnosząca się do określonych warunków. Rzeczywisty odzysk zmieniają przepływy, bilans, temperatury, filtry, przecieki, szronienie i strategia odszraniania." }
        },
        {
          "@type": "Question",
          "name": "Ile prądu zużywa rekuperator?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zużycie wynika z mocy wentylatorów i czasu pracy na poszczególnych biegach. Należy korzystać z danych konkretnej centrali dla projektowego sprężu i mierzyć zużycie w rzeczywistej instalacji." }
        },
        {
          "@type": "Question",
          "name": "Czy wymiennik entalpiczny rozwiązuje problem suchego powietrza?",
          "acceptedAnswer": { "@type": "Answer", "text": "Może odzyskiwać część wilgoci, ale nie gwarantuje stałej wilgotności. Bilans nadal zależy od pogody, emisji wilgoci w domu, przepływu wentylacji i szczelności." }
        },
        {
          "@type": "Question",
          "name": "Czy dzięki rekuperacji można kupić mniejszą pompę ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tylko wtedy, gdy kompletne OZC wykaże niższe projektowe obciążenie. Nie odejmuje się z góry uniwersalnych 2–3 kW i nie dobiera urządzenia wyłącznie z deklarowanej sprawności centrali." }
        },
        {
          "@type": "Question",
          "name": "Czy analizator oblicza roczne oszczędności i okres zwrotu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Pokazuje chwilową wentylacyjną część obciążenia dla wpisanych temperatur i przepływów. Analiza roczna wymaga danych pogodowych, profilu pracy, cen energii i kosztów eksploatacyjnych." }
        }
      ]
    },
    {
      "@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",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia cieplne",
        "hydraulika instalacji grzewczych",
        "wentylacja mechaniczna z odzyskiem ciepła",
        "dobór pomp ciepła"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.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" }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" }
    }
  ]
}
</script>

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

    function startRekuAnalyzer() {
      var root = document.getElementById("rk-rv-analyzer-tool");
      if (!root) { return; }

      function element(id) {
        return document.getElementById(id);
      }

      function numberValue(id, fallback) {
        var field = element(id);
        if (!field) { return fallback; }
        var parsed = parseFloat(String(field.value).replace(",", "."));
        if (!Number.isFinite(parsed)) { return fallback; }
        return parsed;
      }

      function clamp(value, minimum, maximum) {
        return Math.min(maximum, Math.max(minimum, value));
      }

      function setText(id, value) {
        var target = element(id);
        if (target) { target.textContent = value; }
      }

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

      function formatKw(value) {
        return formatNumber(value, 2) + " kW";
      }

      function clearDiagnostics(container) {
        while (container.firstChild) {
          container.removeChild(container.firstChild);
        }
      }

      function addDiagnostic(container, message, warning) {
        var box = document.createElement("div");
        box.className = "rk-rv-diagnostic";
        if (warning) { box.className += " rk-rv-diagnostic-warn"; }
        box.textContent = message;
        container.appendChild(box);
      }

      function drawChart(data) {
        var left = 70;
        var right = 780;
        var top = 30;
        var bottom = 300;
        var xMin = Math.min(-25, data.outdoor - 3);
        var xMax = 10;
        var deltaRange = xMax - xMin;
        if (deltaRange <= 0) { deltaRange = 1; }

        var maxDelta = Math.max(0, data.indoor - xMin);
        var maximumNoRecovery = 0.34 * (data.baseFlow + data.infiltration) * maxDelta / 1000;
        var remainingFlow = data.baseFlow - data.balancedFlow * data.efficiency;
        var maximumWithRecovery = 0.34 * (remainingFlow + data.infiltration) * maxDelta / 1000;
        var rawMaximum = Math.max(maximumNoRecovery, maximumWithRecovery, 0.5) * 1.12;
        var yMaximum = Math.ceil(rawMaximum * 2) / 2;

        function xPosition(temperature) {
          return left + (temperature - xMin) / deltaRange * (right - left);
        }

        function yPosition(load) {
          return bottom - load / yMaximum * (bottom - top);
        }

        function coordinate(value) {
          return value.toFixed(1);
        }

        var noRecoveryPoints = [];
        var recoveryPoints = [];
        var pointCount = 30;
        var index;
        for (index = 0; index <= pointCount; index += 1) {
          var temperature = xMin + deltaRange * index / pointCount;
          var deltaTemperature = Math.max(0, data.indoor - temperature);
          var noRecovery = 0.34 * (data.baseFlow + data.infiltration) * deltaTemperature / 1000;
          var withRecovery = 0.34 * (remainingFlow + data.infiltration) * deltaTemperature / 1000;
          noRecoveryPoints.push(coordinate(xPosition(temperature)) + "," + coordinate(yPosition(noRecovery)));
          recoveryPoints.push(coordinate(xPosition(temperature)) + "," + coordinate(yPosition(withRecovery)));
        }

        var noLine = element("rk-rv-line-no");
        var recoveryLine = element("rk-rv-line-hr");
        if (noLine) { noLine.setAttribute("points", noRecoveryPoints.join(" ")); }
        if (recoveryLine) { recoveryLine.setAttribute("points", recoveryPoints.join(" ")); }

        var markerX = clamp(xPosition(data.outdoor), left, right);
        var marker = element("rk-rv-design-marker");
        if (marker) {
          marker.setAttribute("x1", coordinate(markerX));
          marker.setAttribute("x2", coordinate(markerX));
        }

        var markerLabel = element("rk-rv-design-label");
        if (markerLabel) {
          markerLabel.textContent = "punkt " + formatNumber(data.outdoor, 1) + "°C";
          if (markerX > 650) {
            markerLabel.setAttribute("x", coordinate(markerX - 7));
            markerLabel.setAttribute("text-anchor", "end");
          } else {
            markerLabel.setAttribute("x", coordinate(markerX + 7));
            markerLabel.setAttribute("text-anchor", "start");
          }
        }

        setText("rk-rv-x0", formatNumber(xMin, 1) + "°C");
        setText("rk-rv-x1", formatNumber((xMin + xMax) / 2, 1) + "°C");
        setText("rk-rv-x2", formatNumber(xMax, 0) + "°C");
        setText("rk-rv-y1", formatNumber(yMaximum * 0.25, 1));
        setText("rk-rv-y2", formatNumber(yMaximum * 0.5, 1));
        setText("rk-rv-y3", formatNumber(yMaximum * 0.75, 1));
        setText("rk-rv-y4", formatNumber(yMaximum, 1));

        var description = element("rk-rv-chart-desc");
        if (description) {
          var noRecoveryTotal = data.qNo + 0.34 * data.infiltration * (data.indoor - data.outdoor) / 1000;
          description.textContent = "Przy temperaturze " + formatNumber(data.outdoor, 1) + " stopnia Celsjusza obciążenie bez odzysku wraz z podaną infiltracją wynosi " + formatNumber(noRecoveryTotal, 2) + " kilowata, a po uwzględnieniu odzysku " + formatNumber(data.qTotal, 2) + " kilowata.";
        }
      }

      function calculate() {
        var volume = numberValue("rk-rv-volume", 405);
        var supply = numberValue("rk-rv-supply", 200);
        var extract = numberValue("rk-rv-extract", 200);
        var indoor = numberValue("rk-rv-indoor", 20);
        var outdoor = numberValue("rk-rv-outdoor", -20);
        var efficiencyPercent = numberValue("rk-rv-efficiency", 80);
        var infiltration = numberValue("rk-rv-infiltration", 25);
        var fanPower = numberValue("rk-rv-fan-power", 90);
        var activeArea = numberValue("rk-rv-active-area", 120);
        var sourceField = element("rk-rv-source");
        var qualityField = element("rk-rv-commissioned");
        var modeField = element("rk-rv-mode");
        var source = sourceField ? sourceField.value : "heatpump";
        var quality = qualityField ? qualityField.value : "design";
        var mode = modeField ? modeField.value : "design";

        var invalid = false;
        if (volume <= 0) { invalid = true; }
        if (supply <= 0) { invalid = true; }
        if (extract <= 0) { invalid = true; }
        if (activeArea <= 0) { invalid = true; }
        if (indoor <= outdoor) { invalid = true; }

        var diagnostics = element("rk-rv-diagnostics");
        if (!diagnostics) { return; }
        clearDiagnostics(diagnostics);

        if (invalid) {
          setText("rk-rv-q-no", "—");
          setText("rk-rv-q-recovered", "—");
          setText("rk-rv-q-remain", "—");
          setText("rk-rv-q-infiltration", "—");
          setText("rk-rv-q-total", "—");
          setText("rk-rv-q-area", "—");
          setText("rk-rv-balance-output", "—");
          setText("rk-rv-fan-output", "—");
          setText("rk-rv-verdict-title", "Uzupełnij prawidłowe dane wejściowe");
          setText("rk-rv-verdict-text", "Przepływy, kubatura i powierzchnia muszą być większe od zera, a temperatura wewnętrzna wyższa od zewnętrznej.");
          addDiagnostic(diagnostics, "Obliczenie zostało zatrzymane, aby nie pokazywać pozornie precyzyjnego wyniku z błędnych danych.", true);
          return;
        }

        var efficiency = clamp(efficiencyPercent, 0, 95) / 100;
        var cleanInfiltration = Math.max(0, infiltration);
        var cleanFanPower = Math.max(0, fanPower);
        var deltaTemperature = indoor - outdoor;
        var baseFlow = Math.max(supply, extract);
        var balancedFlow = Math.min(supply, extract);
        var imbalancePercent = Math.abs(supply - extract) / baseFlow * 100;
        var qNo = 0.34 * baseFlow * deltaTemperature / 1000;
        var qRecovered = 0.34 * balancedFlow * deltaTemperature * efficiency / 1000;
        var qRemain = Math.max(0, qNo - qRecovered);
        var qInfiltration = 0.34 * cleanInfiltration * deltaTemperature / 1000;
        var qTotal = qRemain + qInfiltration;
        var qArea = qRecovered * 1000 / activeArea;
        var airChange = baseFlow / volume;

        setText("rk-rv-q-no", formatKw(qNo));
        setText("rk-rv-q-recovered", formatKw(qRecovered));
        setText("rk-rv-q-remain", formatKw(qRemain));
        setText("rk-rv-q-infiltration", formatKw(qInfiltration));
        setText("rk-rv-q-total", formatKw(qTotal));
        setText("rk-rv-q-area", formatNumber(qArea, 1) + " W/m²");
        setText("rk-rv-fan-output", formatNumber(cleanFanPower, 0) + " W");
        setText("rk-rv-balance-output", formatNumber(imbalancePercent, 1) + "%");

        if (quality === "measured") {
          setText("rk-rv-verdict-title", "Dane wystarczające do modelu orientacyjnego");
          setText("rk-rv-verdict-text", "Przepływy pochodzą z pomiarów, więc porównanie ma lepszą podstawę. Nadal nie jest to pełne OZC ani analiza rocznych kosztów.");
        } else if (quality === "unknown") {
          setText("rk-rv-verdict-title", "Najpierw potwierdź przepływy wentylacji");
          setText("rk-rv-verdict-text", "Wartości szacunkowe pokazują jedynie skalę zjawiska. Pomiar nawiewu i wywiewu może istotnie zmienić wynik.");
        } else {
          setText("rk-rv-verdict-title", "Wynik warunkowy — dane nadają się do porównania");
          setText("rk-rv-verdict-text", "Dane projektowe pozwalają ocenić kierunek zmiany. Przed regulacją podłogówki warto potwierdzić rzeczywiste strumienie po uruchomieniu centrali.");
        }

        if (imbalancePercent > 10) {
          setText("rk-rv-verdict-title", "Wynik wymaga sprawdzenia bilansu nawiewu i wywiewu");
          setText("rk-rv-verdict-text", "Różnica przepływów przekracza 10%. Część powietrza może przemieszczać się przez nieszczelności lub inne drogi poza wymiennikiem.");
          addDiagnostic(diagnostics, "Nawiew i wywiew różnią się o " + formatNumber(imbalancePercent, 1) + "%. Sprawdź projekt, nastawy i protokół pomiarowy.", true);
        } else {
          addDiagnostic(diagnostics, "Bilans nawiewu i wywiewu jest zbliżony: różnica wynosi " + formatNumber(imbalancePercent, 1) + "%.", false);
        }

        addDiagnostic(diagnostics, "Większy strumień odpowiada orientacyjnie " + formatNumber(airChange, 2) + " wymiany kubatury na godzinę. To kontrola, nie kryterium projektowe.", false);

        if (efficiencyPercent > 85) {
          addDiagnostic(diagnostics, "Wpisano wysoką sprawność " + formatNumber(efficiencyPercent, 0) + "%. Potwierdź ją dla konkretnego przepływu, temperatury i trybu odszraniania.", true);
        } else {
          addDiagnostic(diagnostics, "Sprawność " + formatNumber(efficiencyPercent, 0) + "% jest założeniem dla wybranego punktu, a nie gwarancją całoroczną.", true);
        }

        if (cleanInfiltration > 0) {
          addDiagnostic(diagnostics, "Dodatkowa infiltracja zwiększa wynik o " + formatNumber(qInfiltration, 2) + " kW i nie korzysta z odzysku w wymienniku.", true);
        }

        if (source === "heatpump") {
          addDiagnostic(diagnostics, "Dla pompy ciepła mniejsze obciążenie może zmienić dobór mocy, ale nie wolno odejmować odzyskanej mocy od urządzenia bez pełnego OZC i sprawdzenia punktu biwalentnego.", false);
        } else if (source === "gas") {
          addDiagnostic(diagnostics, "Dla kotła koszt unikniętej energii zależy od jego sprawności sezonowej, ceny paliwa i opłat — sama moc w kW nie jest oszczędnością w złotych.", false);
        } else if (source === "electric") {
          addDiagnostic(diagnostics, "Dla ogrzewania elektrycznego koszt zależy od taryfy i godzin pracy. Do wyniku trzeba doliczyć energię wentylatorów.", false);
        } else {
          addDiagnostic(diagnostics, "Wartość odzyskanej energii trzeba przeliczyć z użyciem sprawności i ceny właściwych dla konkretnego źródła ciepła.", false);
        }

        if (mode === "comparison") {
          addDiagnostic(diagnostics, "Tryb porównawczy pokazuje różnicę wariantów w tym samym punkcie. Nie przelicza jej na sezonowe kWh.", false);
        }

        drawChart({
          outdoor: outdoor,
          indoor: indoor,
          baseFlow: baseFlow,
          balancedFlow: balancedFlow,
          efficiency: efficiency,
          infiltration: cleanInfiltration,
          qNo: qNo,
          qTotal: qTotal
        });
      }

      var runButton = element("rk-rv-run");
      if (runButton) { runButton.addEventListener("click", calculate); }

      var fields = root.querySelectorAll("input, select");
      Array.prototype.forEach.call(fields, function (field) {
        field.addEventListener("change", calculate);
        field.addEventListener("input", calculate);
      });

      calculate();
    }

    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", startRekuAnalyzer);
    } else {
      startRekuAnalyzer();
    }
  }());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja i ogrzewanie podłogowe – czy to się opłaca?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jak oblicza się straty cieplne w budynkach?</title>
		<link>https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 20 Feb 2025 10:31:35 +0000</pubDate>
				<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Mostki termiczne]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[Zarządzanie energią]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[mostki termiczne]]></category>
		<category><![CDATA[obliczenia strat cieplnych]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędzanie energii]]></category>
		<category><![CDATA[straty cieplne]]></category>
		<category><![CDATA[termomodernizacja]]></category>
		<category><![CDATA[wentylacja]]></category>
		<category><![CDATA[współczynnik przenikania ciepła]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2260</guid>

					<description><![CDATA[<p>Zastanawiasz się, dlaczego rachunki za ogrzewanie są tak wysokie? Kluczem do odpowiedzi jest zrozumienie, jak oblicza się straty cieplne w budynkach. To proces, który pozwala określić, ile energii „ucieka” przez ściany, dachy, okna czy podłogi. W tym artykule znajdziesz szczegółowe wyjaśnienia, praktyczne wzory i przykłady obliczeniowe. Dowiesz się, jak współczynnik przenikania ciepła, mostki termiczne i wentylacja wpływają na utratę energii. Poznasz też sposoby na minimalizację strat, które pomogą Ci zaoszczędzić pieniądze i zwiększyć komfort termiczny w domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Jak oblicza się straty cieplne w budynkach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heat-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d69a16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-heat-guide,
  #rk-heat-guide * { box-sizing: border-box; }
  #rk-heat-guide img,
  #rk-heat-guide svg { max-width: 100%; }
  #rk-heat-guide button,
  #rk-heat-guide input,
  #rk-heat-guide select,
  #rk-heat-guide label,
  #rk-heat-guide summary,
  #rk-heat-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-heat-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-heat-guide a:hover,
  #rk-heat-guide a:focus-visible { color: var(--rk-red); }
  #rk-heat-guide p,
  #rk-heat-guide ul,
  #rk-heat-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-heat-guide h2,
  #rk-heat-guide h3,
  #rk-heat-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-heat-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-heat-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-heat-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-heat-guide strong { color: var(--rk-dark); }
  #rk-heat-guide [hidden] { display: none !important; }

  #rk-heat-guide .rk-heat-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-heat-guide .rk-heat-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-heat-guide .rk-heat-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-heat-guide .rk-heat-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-heat-guide .rk-heat-hero-title {
    position: relative;
    z-index: 1;
    max-width: 980px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.35rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.01;
  }
  #rk-heat-guide .rk-heat-hero-title span { color: #78efff; }
  #rk-heat-guide .rk-heat-lead {
    position: relative;
    z-index: 1;
    max-width: 920px;
    margin-bottom: 25px;
    color: #d5e9f1;
    font-size: clamp(1rem, 2.15vw, 1.24rem);
    line-height: 1.65;
  }
  #rk-heat-guide .rk-heat-hero-tags,
  #rk-heat-guide .rk-heat-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }
  #rk-heat-guide .rk-heat-hero-tags { margin-bottom: 22px; }
  #rk-heat-guide .rk-heat-hero-tag {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: #e8f7fb;
    background: rgba(255, 255, 255, .07);
    font-size: .68rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-byline {
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: #bdd6df;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-byline strong { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 27px;
  }
  #rk-heat-guide .rk-heat-hero-metric {
    padding: 16px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 15px;
    background: rgba(7, 27, 40, .34);
  }
  #rk-heat-guide .rk-heat-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #78efff;
    font-size: .78rem;
  }
  #rk-heat-guide .rk-heat-hero-metric span {
    display: block;
    color: #d5e9f1;
    font-size: .68rem;
    line-height: 1.5;
  }

  #rk-heat-guide .rk-heat-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-nav-label {
    padding-top: 8px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
  }
  #rk-heat-guide .rk-heat-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
  }
  #rk-heat-guide .rk-heat-nav a:hover,
  #rk-heat-guide .rk-heat-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-heat-guide .rk-heat-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-heat-guide .rk-heat-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-section:last-of-type { border-bottom: 0; }
  #rk-heat-guide .rk-heat-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-intro {
    max-width: 940px;
    color: var(--rk-text);
    font-size: 1.08rem;
  }
  #rk-heat-guide .rk-heat-answer,
  #rk-heat-guide .rk-heat-note,
  #rk-heat-guide .rk-heat-warning,
  #rk-heat-guide .rk-heat-success {
    margin: 25px 0;
    padding: 22px 23px;
    border-radius: 16px;
  }
  #rk-heat-guide .rk-heat-answer {
    border-left: 5px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }
  #rk-heat-guide .rk-heat-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-warning {
    border-left: 5px solid var(--rk-orange);
    background: var(--rk-orange-soft);
  }
  #rk-heat-guide .rk-heat-success {
    border-left: 5px solid var(--rk-green);
    background: var(--rk-green-soft);
  }
  #rk-heat-guide .rk-heat-answer p:last-child,
  #rk-heat-guide .rk-heat-note p:last-child,
  #rk-heat-guide .rk-heat-warning p:last-child,
  #rk-heat-guide .rk-heat-success p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-grid-2,
  #rk-heat-guide .rk-heat-grid-3,
  #rk-heat-guide .rk-heat-grid-4 {
    display: grid;
    gap: 15px;
    margin: 25px 0;
  }
  #rk-heat-guide .rk-heat-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
    box-shadow: 0 10px 30px rgba(16, 37, 54, .055);
  }
  #rk-heat-guide .rk-heat-card p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-card-icon,
  #rk-heat-guide .rk-heat-number {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 14px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: .82rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-card.is-orange .rk-heat-card-icon { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-card.is-green .rk-heat-card-icon { background: var(--rk-green); }
  #rk-heat-guide .rk-heat-card.is-purple .rk-heat-card-icon { background: var(--rk-purple); }
  #rk-heat-guide .rk-heat-formula {
    margin: 25px 0;
    padding: 24px;
    border: 1px solid #b9e4ec;
    border-radius: 17px;
    text-align: center;
    background: linear-gradient(135deg, #f7fdff, #ecfafc);
  }
  #rk-heat-guide .rk-heat-formula strong {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 3vw, 1.8rem);
  }
  #rk-heat-guide .rk-heat-formula span { color: var(--rk-muted); font-size: .78rem; }
  #rk-heat-guide .rk-heat-list {
    display: grid;
    gap: 10px;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-list li {
    position: relative;
    margin: 0;
    padding: 12px 14px 12px 43px;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-list li::before {
    position: absolute;
    top: 13px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: .62rem;
    font-weight: 950;
  }

  #rk-heat-guide .rk-heat-table-wrap {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }
  #rk-heat-guide table {
    width: 100%;
    border-collapse: collapse;
    color: var(--rk-text);
    font-size: .82rem;
  }
  #rk-heat-guide th,
  #rk-heat-guide td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }
  #rk-heat-guide th:last-child,
  #rk-heat-guide td:last-child { border-right: 0; }
  #rk-heat-guide tr:last-child td { border-bottom: 0; }
  #rk-heat-guide th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .025em;
  }

  #rk-heat-guide .rk-heat-tool {
    overflow: hidden;
    margin: 29px 0;
    border-radius: 22px;
    color: #e7f4f8;
    background: var(--rk-dark);
    box-shadow: 0 20px 55px rgba(16, 37, 54, .2);
  }
  #rk-heat-guide .rk-heat-tool-head {
    padding: clamp(25px, 5vw, 42px);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .2), transparent 32%),
      linear-gradient(135deg, #15384d, #173344);
  }
  #rk-heat-guide .rk-heat-tool-head h3 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.8vw, 2.45rem);
  }
  #rk-heat-guide .rk-heat-tool-head p { margin-bottom: 0; color: #c9e0e8; }
  #rk-heat-guide .rk-heat-tool-body { padding: clamp(20px, 4vw, 34px); }
  #rk-heat-guide .rk-heat-step {
    margin-bottom: 23px;
    padding: 22px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 17px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-step:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-step-title {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-step-title b {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-step-title h4 { margin: 0; color: var(--rk-white); font-size: 1.16rem; }
  #rk-heat-guide .rk-heat-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  #rk-heat-guide .rk-heat-candidates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  #rk-heat-guide .rk-heat-candidate {
    min-width: 0;
    padding: 20px;
    border: 1px solid rgba(37, 199, 216, .32);
    border-radius: 16px;
    background: rgba(10, 34, 48, .56);
  }
  #rk-heat-guide .rk-heat-candidate.is-b { border-color: rgba(255, 106, 61, .38); }
  #rk-heat-guide .rk-heat-candidate h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-candidate-legend {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0 7px;
    color: var(--rk-white);
    font-size: 1.02rem;
    font-weight: 920;
  }
  #rk-heat-guide .rk-heat-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--rk-cyan);
    box-shadow: 0 0 0 5px rgba(37, 199, 216, .12);
  }
  #rk-heat-guide .rk-heat-candidate.is-b .rk-heat-dot {
    background: var(--rk-orange);
    box-shadow: 0 0 0 5px rgba(255, 106, 61, .12);
  }
  #rk-heat-guide .rk-heat-candidate-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-field { min-width: 0; }
  #rk-heat-guide .rk-heat-field.is-wide { grid-column: 1 / -1; }
  #rk-heat-guide .rk-heat-field label {
    display: block;
    margin-bottom: 5px;
    color: #dff3f8;
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-heat-guide .rk-heat-field input,
  #rk-heat-guide .rk-heat-field select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .77rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-field small {
    display: block;
    margin-top: 5px;
    color: #8fb6c5;
    font-size: .59rem;
    line-height: 1.42;
  }
  #rk-heat-guide .rk-heat-field input:focus,
  #rk-heat-guide .rk-heat-field select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-tool-button {
    width: 100%;
    margin-top: 18px;
    padding: 14px 18px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-dark);
    background: linear-gradient(135deg, #61e7f3, #25c7d8);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-tool-button:hover,
  #rk-heat-guide .rk-heat-tool-button:focus-visible { filter: brightness(1.06); }
  #rk-heat-guide .rk-heat-result-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-result-head p { margin-bottom: 0; color: #bcd7e1; font-size: .74rem; }
  #rk-heat-guide .rk-heat-result-badge {
    display: inline-flex;
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .62rem;
    font-weight: 950;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-result-badge.is-warning { color: #4f3300; background: #ffd568; }
  #rk-heat-guide .rk-heat-result-badge.is-bad { color: #59150f; background: #ff9f91; }
  #rk-heat-guide .rk-heat-result-badge.is-neutral { color: #29205d; background: #c8c1ff; }
  #rk-heat-guide .rk-heat-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  #rk-heat-guide .rk-heat-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-result-card h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 15px 0;
  }
  #rk-heat-guide .rk-heat-metric {
    padding: 12px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .06);
  }
  #rk-heat-guide .rk-heat-metric span {
    display: block;
    color: #93bac7;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-metric strong {
    display: block;
    margin-top: 3px;
    color: var(--rk-white);
    font-size: .96rem;
  }
  #rk-heat-guide .rk-heat-bar {
    position: relative;
    overflow: hidden;
    height: 15px;
    margin: 10px 0 7px;
    border-radius: 999px;
    background: #264b5e;
  }
  #rk-heat-guide .rk-heat-bar span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #66e5ef);
    transition: width .3s ease;
  }
  #rk-heat-guide .rk-heat-result-card.is-b .rk-heat-bar span {
    background: linear-gradient(90deg, var(--rk-orange), #ff9b78);
  }
  #rk-heat-guide .rk-heat-layer-stack {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-layer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .65rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-layer.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-layer.is-screed { color: #eef8fb; background: #466575; }
  #rk-heat-guide .rk-heat-diagnostics {
    display: grid;
    gap: 8px;
    margin-top: 14px;
  }
  #rk-heat-guide .rk-heat-diagnostic {
    padding: 10px 12px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 8px;
    color: #f5e9c5;
    background: rgba(214, 154, 22, .12);
    font-size: .67rem;
    line-height: 1.48;
  }
  #rk-heat-guide .rk-heat-diagnostic.is-good {
    border-color: #4cd7ac;
    color: #d8fff1;
    background: rgba(22, 131, 107, .16);
  }
  #rk-heat-guide .rk-heat-diagnostic.is-bad {
    border-color: #ff786b;
    color: #ffe1dc;
    background: rgba(217, 75, 61, .15);
  }
  #rk-heat-guide .rk-heat-questions {
    margin: 14px 0 0;
    padding-left: 19px;
    color: #d9eaf0;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-questions li { margin-bottom: 6px; }

  #rk-heat-guide .rk-heat-chart-card {
    margin-top: 16px;
    padding: 20px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-chart-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 13px;
  }
  #rk-heat-guide .rk-heat-chart-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-chart-head p { margin: 0; color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    justify-content: flex-end;
    color: #d9eaf0;
    font-size: .62rem;
    font-weight: 800;
  }
  #rk-heat-guide .rk-heat-chart-key {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  #rk-heat-guide .rk-heat-chart-key::before {
    width: 18px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-cyan);
    content: "";
  }
  #rk-heat-guide .rk-heat-chart-key.is-b::before { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-chart-key.is-demand::before {
    height: 2px;
    background: #ffd568;
  }
  #rk-heat-guide .rk-heat-chart-wrap {
    overflow: hidden;
    width: 100%;
    min-height: 350px;
    border-radius: 13px;
    background: #f8fcfd;
  }
  #rk-heat-guide .rk-heat-chart-wrap canvas {
    display: block;
    width: 100%;
    height: 350px;
  }
  #rk-heat-guide .rk-heat-chart-summary {
    margin: 11px 0 0;
    color: #a9c8d3;
    font-size: .63rem;
    line-height: 1.55;
  }
  #rk-heat-guide .rk-heat-result-status {
    display: inline-flex;
    margin-top: 8px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .22);
    font-size: .61rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-result-status.is-warning {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-result-status.is-bad {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .22);
  }
  #rk-heat-guide .rk-heat-stack-scale {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stack-segment {
    position: relative;
    overflow: hidden;
    min-height: 34px;
    padding: 8px 11px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .63rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-stack-segment.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-stack-segment.is-extra { background: #e9e5ff; }
  #rk-heat-guide .rk-heat-stack-segment span { float: right; }
  #rk-heat-guide .rk-heat-data-note {
    margin-top: 12px;
    padding: 11px 13px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #d8eef4;
    background: rgba(37, 199, 216, .08);
    font-size: .64rem;
  }

  #rk-heat-guide .rk-heat-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-question {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 13px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-question.is-critical {
    border-left: 4px solid var(--rk-orange);
  }
  #rk-heat-guide .rk-heat-question label {
    display: block;
    min-height: 45px;
    margin-bottom: 8px;
    color: #dff3f8;
    font-size: .68rem;
    font-weight: 850;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-question select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .76rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-question select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-critical-note {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-left: 4px solid var(--rk-orange);
    border-radius: 10px;
    color: #ffe8dc;
    background: rgba(255, 106, 61, .1);
    font-size: .65rem;
  }
  #rk-heat-guide .rk-heat-stage-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stage-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 13px;
    background: rgba(255, 255, 255, .04);
  }
  #rk-heat-guide .rk-heat-stage-card.is-ready { border-color: rgba(76, 215, 172, .46); }
  #rk-heat-guide .rk-heat-stage-card.is-warning { border-color: rgba(255, 213, 104, .55); }
  #rk-heat-guide .rk-heat-stage-card.is-blocked { border-color: rgba(255, 120, 107, .58); }
  #rk-heat-guide .rk-heat-stage-number {
    display: inline-grid;
    place-items: center;
    width: 31px;
    height: 31px;
    margin-bottom: 10px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .67rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-number { background: #ffd568; }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-number { background: #ff9f91; }
  #rk-heat-guide .rk-heat-stage-card h4 { margin-bottom: 6px; color: var(--rk-white); font-size: .84rem; }
  #rk-heat-guide .rk-heat-stage-card p { margin-bottom: 10px; color: #bcd7e1; font-size: .64rem; line-height: 1.5; }
  #rk-heat-guide .rk-heat-stage-status {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .24);
    font-size: .57rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-status {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-status {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .24);
  }
  #rk-heat-guide .rk-heat-output-stack {
    display: grid;
    gap: 12px;
    margin-top: 16px;
  }
  #rk-heat-guide .rk-heat-output-card {
    padding: 17px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 14px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-output-card h4 { margin-bottom: 10px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-output-card.is-warning { border-left: 4px solid #ffd568; }
  #rk-heat-guide .rk-heat-output-card.is-blocked { border-left: 4px solid #ff786b; }
  #rk-heat-guide .rk-heat-output-card.is-ready { border-left: 4px solid #4cd7ac; }
  #rk-heat-guide .rk-heat-output-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-output-list li {
    position: relative;
    margin: 0;
    padding: 10px 11px 10px 34px;
    border-radius: 9px;
    color: #d9eaf0;
    background: rgba(255, 255, 255, .045);
    font-size: .65rem;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-output-list li::before {
    position: absolute;
    top: 10px;
    left: 11px;
    color: var(--rk-cyan);
    content: "✓";
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-output-card.is-warning .rk-heat-output-list li::before { color: #ffd568; content: "!"; }
  #rk-heat-guide .rk-heat-output-card.is-blocked .rk-heat-output-list li::before { color: #ff8b7f; content: "×"; }
  #rk-heat-guide .rk-heat-empty-result {
    margin: 0;
    color: #a9c8d3;
    font-size: .66rem;
  }

  #rk-heat-guide .rk-heat-sales-cta {
    margin: 36px 0;
    padding: clamp(25px, 5vw, 42px);
    border-radius: 20px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .22), transparent 30%),
      linear-gradient(135deg, #102536, #17445a);
  }
  #rk-heat-guide .rk-heat-sales-cta h3 { color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-heat-guide .rk-heat-sales-cta p { max-width: 920px; color: #d0e4eb; }
  #rk-heat-guide .rk-heat-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 12px;
    color: var(--rk-dark) !important;
    background: linear-gradient(135deg, #63e6f1, #28c9d9);
    font-size: .79rem;
    font-weight: 950 !important;
    text-decoration: none !important;
  }
  #rk-heat-guide .rk-heat-cta-button:hover,
  #rk-heat-guide .rk-heat-cta-button:focus-visible { filter: brightness(1.07); }

  #rk-heat-guide .rk-heat-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-checklist li {
    position: relative;
    margin: 0;
    padding: 14px 14px 14px 45px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-checklist li::before {
    position: absolute;
    top: 14px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 2px solid var(--rk-cyan);
    border-radius: 7px;
    color: var(--rk-blue);
    content: "✓";
    font-size: .65rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-faq summary {
    position: relative;
    padding: 17px 48px 17px 18px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 880;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-faq summary::-webkit-details-marker { display: none; }
  #rk-heat-guide .rk-heat-faq summary::after {
    position: absolute;
    top: 15px;
    right: 16px;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    content: "+";
  }
  #rk-heat-guide .rk-heat-faq details[open] summary::after { content: "−"; }
  #rk-heat-guide .rk-heat-faq-answer {
    padding: 0 18px 17px;
    color: var(--rk-text);
  }
  #rk-heat-guide .rk-heat-faq-answer p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-sources {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-source {
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-source p { margin: 6px 0 0; color: var(--rk-muted); font-size: .77rem; }

  #rk-heat-guide .rk-heat-author {
    overflow: hidden;
    margin-top: 48px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  #rk-heat-guide .rk-heat-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: end;
    padding: 28px 32px 22px;
    border-bottom: 1px solid var(--rk-line);
  }
  #rk-heat-guide .rk-heat-author-head h2 { margin-bottom: 6px; font-size: clamp(1.55rem, 3vw, 2.2rem); }
  #rk-heat-guide .rk-heat-author-head p { margin: 0; color: var(--rk-muted); }
  #rk-heat-guide .rk-heat-author-mark {
    max-width: 380px;
    color: var(--rk-blue);
    font-size: .61rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-align: right;
  }
  #rk-heat-guide .rk-heat-author-layout {
    display: grid;
    grid-template-columns: 255px minmax(0, 1fr);
  }
  #rk-heat-guide .rk-heat-author-side {
    padding: 30px 24px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }
  #rk-heat-guide .rk-heat-author-photo {
    overflow: hidden;
    width: 145px;
    height: 145px;
    margin: 0 auto 18px;
    border: 6px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #rk-heat-guide .rk-heat-author-name { margin-bottom: 5px; font-size: 1.08rem; font-weight: 950; }
  #rk-heat-guide .rk-heat-author-role { color: #bdd4de; font-size: .68rem; line-height: 1.55; }
  #rk-heat-guide .rk-heat-author-social-label {
    margin-top: 24px;
    color: #8ca8b5;
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }
  #rk-heat-guide .rk-heat-author-social a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #507080;
    border-radius: 50%;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-social a:hover { border-color: var(--rk-cyan); color: var(--rk-cyan); }
  #rk-heat-guide .rk-heat-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-heat-guide .rk-heat-author-main { padding: 30px 34px; }
  #rk-heat-guide .rk-heat-author-quote {
    position: relative;
    margin: 0 0 23px;
    padding: 22px 22px 22px 64px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-quote::before {
    position: absolute;
    top: 12px;
    left: 23px;
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 3.7rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-heat-guide .rk-heat-author-quote p { margin: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-heat-guide .rk-heat-author-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 20px; }
  #rk-heat-guide .rk-heat-author-tab {
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e2edf1;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-author-panel { display: none; color: var(--rk-text); }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout .rk-heat-author-panel-about,
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout .rk-heat-author-panel-exp,
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout .rk-heat-author-panel-method { display: block; }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout label[for="rk-heat-author-about"],
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout label[for="rk-heat-author-exp"],
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout label[for="rk-heat-author-method"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }
  #rk-heat-guide .rk-heat-mini-label {
    margin: 21px 0 8px;
    color: var(--rk-muted);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-portals { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-heat-guide .rk-heat-portals a {
    padding: 7px 11px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    background: var(--rk-white);
    font-size: .65rem;
    text-decoration: none;
  }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
    #rk-heat-guide .rk-heat-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 720px) {
    #rk-heat-guide { margin-top: 18px; font-size: 16px; }
    #rk-heat-guide .rk-heat-shell { border-radius: 18px; }
    #rk-heat-guide .rk-heat-nav { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-nav-label { padding: 0 0 4px 2px; }
    #rk-heat-guide .rk-heat-nav-track { width: 100%; }
    #rk-heat-guide .rk-heat-candidates,
    #rk-heat-guide .rk-heat-result-grid,
    #rk-heat-guide .rk-heat-grid-2,
    #rk-heat-guide .rk-heat-checklist { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-result-head { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-head { display: block; }
    #rk-heat-guide .rk-heat-chart-legend { justify-content: flex-start; margin-top: 10px; }
    #rk-heat-guide .rk-heat-author-head { display: block; }
    #rk-heat-guide .rk-heat-author-mark { margin-top: 12px; text-align: left; }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-question-grid,
    #rk-heat-guide .rk-heat-stage-grid,
    #rk-heat-guide .rk-heat-output-list { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-table-wrap { overflow: visible; border: 0; }
    #rk-heat-guide table,
    #rk-heat-guide thead,
    #rk-heat-guide tbody,
    #rk-heat-guide tr,
    #rk-heat-guide th,
    #rk-heat-guide td { display: block; width: 100%; }
    #rk-heat-guide thead {
      position: absolute;
      overflow: hidden;
      width: 1px;
      height: 1px;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    #rk-heat-guide tr {
      overflow: hidden;
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
    }
    #rk-heat-guide td {
      position: relative;
      padding: 39px 15px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
    #rk-heat-guide td::before {
      position: absolute;
      top: 11px;
      left: 15px;
      color: var(--rk-blue);
      content: attr(data-label);
      font-size: .58rem;
      font-weight: 950;
      letter-spacing: .045em;
      text-transform: uppercase;
    }
  }
  @media (max-width: 500px) {
    #rk-heat-guide .rk-heat-hero { padding-left: 21px; padding-right: 21px; }
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4,
    #rk-heat-guide .rk-heat-fields,
    #rk-heat-guide .rk-heat-candidate-fields,
    #rk-heat-guide .rk-heat-metrics { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-content { padding-left: 16px; padding-right: 16px; }
    #rk-heat-guide .rk-heat-nav { padding-left: 15px; padding-right: 15px; }
    #rk-heat-guide .rk-heat-nav a { font-size: .61rem; }
    #rk-heat-guide .rk-heat-author-main { padding: 24px 18px; }
    #rk-heat-guide .rk-heat-author-quote { padding-left: 58px; }
    #rk-heat-guide .rk-heat-chart-wrap,
    #rk-heat-guide .rk-heat-chart-wrap canvas { min-height: 300px; height: 300px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-heat-guide *,
    #rk-heat-guide *::before,
    #rk-heat-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }

  /* Laboratorium jednego pomieszczenia: pełna szerokość i układ sekwencyjny. */
  #rk-heat-guide .rk-heat-lab-group {
    margin-bottom: 17px;
    padding: 19px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-lab-group:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-lab-group h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-lab-group > p { color: #bcd7e1; font-size: .7rem; }
  #rk-heat-guide .rk-heat-lab-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-result-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-tile {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 12px;
    background: rgba(255, 255, 255, .055);
  }
  #rk-heat-guide .rk-heat-result-tile span {
    display: block;
    color: #96bdca;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-result-tile strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-white);
    font-size: 1.12rem;
    line-height: 1.22;
  }
  #rk-heat-guide .rk-heat-chart-list {
    display: grid;
    gap: 11px;
    margin: 18px 0 0;
  }
  #rk-heat-guide .rk-heat-chart-row {
    display: grid;
    grid-template-columns: minmax(110px, 1.05fr) minmax(170px, 3fr) minmax(92px, .85fr);
    gap: 11px;
    align-items: center;
  }
  #rk-heat-guide .rk-heat-chart-label { color: #d8edf3; font-size: .66rem; font-weight: 850; }
  #rk-heat-guide .rk-heat-chart-track {
    overflow: hidden;
    height: 16px;
    border-radius: 999px;
    background: #27495a;
  }
  #rk-heat-guide .rk-heat-chart-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #64e4ef);
    transition: width .28s ease;
  }
  #rk-heat-guide .rk-heat-chart-row:nth-child(2) .rk-heat-chart-fill { background: linear-gradient(90deg, #ff6a3d, #ff9b76); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(3) .rk-heat-chart-fill { background: linear-gradient(90deg, #16836b, #43c69f); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(4) .rk-heat-chart-fill { background: linear-gradient(90deg, #695ac9, #9c8ff3); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(5) .rk-heat-chart-fill { background: linear-gradient(90deg, #d69a16, #ffd062); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(6) .rk-heat-chart-fill { background: linear-gradient(90deg, #078fbe, #43caef); }
  #rk-heat-guide .rk-heat-chart-value { color: var(--rk-white); font-size: .66rem; font-weight: 900; text-align: right; }
  #rk-heat-guide .rk-heat-formula-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 19px 0 13px;
  }
  #rk-heat-guide .rk-heat-formula-tab {
    padding: 8px 11px;
    border: 1px solid rgba(136, 202, 220, .31);
    border-radius: 999px;
    color: #d9edf3;
    background: rgba(255, 255, 255, .045);
    cursor: pointer;
    font-size: .63rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-formula-tab[aria-pressed="true"] {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-live-formula {
    padding: 18px;
    border: 1px solid rgba(37, 199, 216, .28);
    border-radius: 13px;
    background: rgba(7, 143, 190, .1);
  }
  #rk-heat-guide .rk-heat-live-formula strong { display: block; color: var(--rk-white); font-size: 1rem; }
  #rk-heat-guide .rk-heat-live-formula code {
    display: block;
    overflow-wrap: anywhere;
    margin: 8px 0;
    padding: 11px 13px;
    border: 1px solid rgba(126, 239, 255, .38);
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #f2fdff !important;
    background: #0b2d3f !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .73rem;
    font-weight: 800;
    line-height: 1.55;
    white-space: normal;
  }
  #rk-heat-guide .rk-heat-live-formula span { color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-example-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
  }
  #rk-heat-guide .rk-heat-example-step {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-example-step b { display: block; margin-bottom: 5px; color: var(--rk-blue); }
  #rk-heat-guide .rk-heat-example-step p { margin: 0; font-size: .78rem; }
  #rk-heat-guide .rk-heat-inline-code {
    padding: .12em .35em;
    border-radius: 5px;
    color: var(--rk-dark);
    background: #e9f1f4;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .88em;
  }
  #rk-heat-guide .rk-heat-source a { overflow-wrap: anywhere; }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-lab-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-result-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 620px) {
    #rk-heat-guide .rk-heat-lab-fields,
    #rk-heat-guide .rk-heat-result-strip,
    #rk-heat-guide .rk-heat-example-flow { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-row { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-chart-value { text-align: left; }
  }
</style>

<div id="rk-heat-guide">
  <article class="rk-heat-shell">
    <header class="rk-heat-hero">
      <span class="rk-heat-kicker">Bilans cieplny budynku • wzory i przykład • aktualizacja 2026</span>
      <p class="rk-heat-hero-title">Jak oblicza się straty ciepła w budynku: <span>od W/K do mocy pomieszczenia</span></p>
      <p class="rk-heat-lead">Nie wystarczy pomnożyć powierzchni domu przez przypadkowy wskaźnik W/m². Rzetelne obliczenie rozdziela przenikanie przez przegrody, mostki cieplne oraz wymianę powietrza, a wynik określa osobno dla każdego pomieszczenia i warunków projektowych.</p>
      <div class="rk-heat-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-heat-hero-tag">U × A × Δθ</span>
        <span class="rk-heat-hero-tag">mostki liniowe ψ</span>
        <span class="rk-heat-hero-tag">wentylacja i infiltracja</span>
        <span class="rk-heat-hero-tag">wynik W oraz W/m²</span>
        <span class="rk-heat-hero-tag">laboratorium jednego pokoju</span>
      </div>
      <div class="rk-heat-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 24 minuty</span>
        <span>Aktualizacja techniczna: 2 września 2026 r.</span>
      </div>
      <div class="rk-heat-hero-metrics" aria-label="Najważniejsze reguły obliczeń">
        <div class="rk-heat-hero-metric"><b>W to nie kWh</b><span>Strata projektowa jest mocą w określonych warunkach, a nie miesięcznym zużyciem energii.</span></div>
        <div class="rk-heat-hero-metric"><b>Pomieszczenia liczymy osobno</b><span>Suma obciążeń pokojów tworzy wynik budynku, lecz nie zastępuje doboru mocy w każdym wnętrzu.</span></div>
        <div class="rk-heat-hero-metric"><b>Granice mają znaczenie</b><span>Ściana zewnętrzna, grunt i strefa nieogrzewana wymagają różnych warunków brzegowych.</span></div>
      </div>
    </header>

    <nav class="rk-heat-nav" aria-label="Nawigacja po wszystkich rozdziałach artykułu">
      <span class="rk-heat-nav-label">Na skróty</span>
      <div class="rk-heat-nav-track">
        <a href="#rk-heat-szybka">Szybka odpowiedź</a>
        <a href="#rk-heat-wynik">Jaki wynik liczymy?</a>
        <a href="#rk-heat-moc-energia">W, kW i kWh</a>
        <a href="#rk-heat-skladniki">Składniki bilansu</a>
        <a href="#rk-heat-dane">Dane wejściowe</a>
        <a href="#rk-heat-temperatury">Temperatury</a>
        <a href="#rk-heat-przenikanie">Ściany i dach</a>
        <a href="#rk-heat-okna">Okna Uw i Ug</a>
        <a href="#rk-heat-grunt">Podłoga i grunt</a>
        <a href="#rk-heat-mostki">Mostki cieplne</a>
        <a href="#rk-heat-wentylacja">Wentylacja</a>
        <a href="#rk-heat-laboratorium">Laboratorium</a>
        <a href="#rk-heat-wykres">Wykres wyniku</a>
        <a href="#rk-heat-wm2">Wynik W/m²</a>
        <a href="#rk-heat-pomieszczenie-budynek">Pokój a budynek</a>
        <a href="#rk-heat-zyski">Zyski ciepła</a>
        <a href="#rk-heat-nagrzewanie">Nagrzewanie</a>
        <a href="#rk-heat-podlogowka">Straty a podłogówka</a>
        <a href="#rk-heat-zrodlo">Dobór źródła</a>
        <a href="#rk-heat-koszt">Moc a koszt</a>
        <a href="#rk-heat-bledy">Najczęstsze błędy</a>
        <a href="#rk-heat-checklista">Checklista</a>
        <a href="#rk-heat-faq">FAQ</a>
        <a href="#rk-heat-zrodla">Źródła</a>
        <a href="#rk-heat-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-heat-content">
      <section class="rk-heat-section" id="rk-heat-szybka">
        <span class="rk-heat-eyebrow">Odpowiedź w 30 sekund</span>
        <h2>Jak oblicza się straty ciepła w budynku?</h2>
        <div class="rk-heat-answer">
          <p><strong>Najpierw wyznacza się projektową stratę ciepła każdego pomieszczenia.</strong> Sumuje się strumienie przez przegrody, liniowe mostki cieplne oraz wentylację i infiltrację przy przyjętych temperaturach obliczeniowych. Dopiero suma pomieszczeń opisuje obciążenie całego budynku.</p>
        </div>
        <div class="rk-heat-formula">
          <strong>Φ<sub>HL</sub> ≈ Φ<sub>op</sub> + Φ<sub>TB</sub> + Φ<sub>V</sub></strong>
          <span>przenikanie przez przegrody + mostki cieplne + wymiana powietrza</span>
        </div>
        <p>Dla zwykłej jednorodnej przegrody punktem wyjścia jest zależność <strong>Φ = U · A · Δθ</strong>. Nie wolno jednak zastosować jej bezrefleksyjnie do każdego elementu budynku: podłoga na gruncie ma inną metodykę, okno opisuje się współczynnikiem całego wyrobu <strong>Uw</strong>, a mostki liniowe wymagają wartości <strong>ψ</strong> i długości połączeń.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Współczynnik H</h3><p>Mówi, ile watów budynek lub jego składnik traci przy różnicy temperatur 1 K. Jednostka: W/K.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Różnica temperatur</h3><p>Wynika z projektowej temperatury wewnętrznej i odpowiedniej temperatury po drugiej stronie przegrody.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Moc Φ</h3><p>Iloczyn współczynnika strat i różnicy temperatur daje chwilową moc potrzebną do utrzymania warunków.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wynik">
        <span class="rk-heat-eyebrow">Najpierw właściwa wielkość fizyczna</span>
        <h2>Jaki wynik naprawdę obliczamy?</h2>
        <p class="rk-heat-intro">W obliczeniach projektowych szukamy <strong>projektowego obciążenia cieplnego</strong>, czyli mocy potrzebnej do utrzymania zadanej temperatury wewnętrznej przy określonych warunkach zewnętrznych. To właśnie ta wielkość pomaga później projektować ogrzewanie.</p>
        <p>Oficjalny opis metody BS EN 12831-1 odnosi wynik do pojedynczych pomieszczeń, części budynku oraz całych budynków. Szczegółowy kontekst definicji i norm znajdziesz także w naszym opracowaniu o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.</p>
        <div class="rk-heat-note"><p><strong>Termin „straty ciepła” bywa używany potocznie w dwóch znaczeniach.</strong> Może oznaczać moc w W albo energię w kWh. W tym artykule, jeśli nie zaznaczono inaczej, mówimy o projektowej mocy cieplnej.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-moc-energia">
        <span class="rk-heat-eyebrow">Jednostki bez skrótów myślowych</span>
        <h2>W, kW, W/K i kWh — dlaczego nie wolno ich mieszać?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Wielkość</th><th>Jednostka</th><th>Co opisuje?</th><th>Przykład interpretacji</th></tr></thead>
            <tbody>
              <tr><td data-label="Wielkość">Moc cieplna Φ</td><td data-label="Jednostka">W lub kW</td><td data-label="Co opisuje?">Tempo przekazywania energii w danej chwili.</td><td data-label="Przykład interpretacji">Pomieszczenie potrzebuje 1016 W przy warunkach projektowych.</td></tr>
              <tr><td data-label="Wielkość">Współczynnik strat H</td><td data-label="Jednostka">W/K</td><td data-label="Co opisuje?">Zmianę straty mocy na każdy 1 K różnicy temperatur.</td><td data-label="Przykład interpretacji">H = 25,4 W/K oznacza 25,4 W na każdy kelwin różnicy.</td></tr>
              <tr><td data-label="Wielkość">Energia Q</td><td data-label="Jednostka">Wh lub kWh</td><td data-label="Co opisuje?">Moc działającą przez czas i zmieniającą się wraz z warunkami.</td><td data-label="Przykład interpretacji">Roczne kWh wymagają profilu temperatur, pracy instalacji i okresu.</td></tr>
              <tr><td data-label="Wielkość">Wskaźnik powierzchniowy</td><td data-label="Jednostka">W/m²</td><td data-label="Co opisuje?">Obciążenie odniesione do określonej powierzchni.</td><td data-label="Przykład interpretacji">Trzeba podać, czy dzielimy przez podłogę, powierzchnię użytkową czy powierzchnię czynną.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-formula">
          <strong>Q = ∫ Φ(t) dt</strong>
          <span>energia jest całką zmiennej mocy w czasie; samo „moc × 720 godzin” nie opisuje realnego miesiąca</span>
        </div>
        <div class="rk-heat-warning"><p><strong>Zapis „W/godz.” jest błędny jako jednostka straty ciepła.</strong> Wat już określa tempo przepływu energii. Jeżeli obliczasz energię, używaj Wh lub kWh i jawnie uwzględnij czas oraz zmienność warunków.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-skladniki">
        <span class="rk-heat-eyebrow">Bilans rozłożony na elementy</span>
        <h2>Z jakich składników składa się projektowa strata ciepła?</h2>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">A</span><h3>Przegrody płaskie</h3><p>Ściany, okna, drzwi, dach, strop oraz podłoga. Każdy element ma powierzchnię, właściwości cieplne i warunki po obu stronach.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">B</span><h3>Mostki cieplne</h3><p>Połączenia ściany ze stropem, nadproża, ościeża, wieńce i inne detale opisane liniowym współczynnikiem ψ.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">C</span><h3>Wymiana powietrza</h3><p>Wentylacja i infiltracja powodują konieczność ogrzania napływającego powietrza do warunków wewnętrznych.</p></div>
        </div>
        <p>W praktycznym modelu występują też współczynniki korekcyjne, przepływy między strefami, straty do pomieszczeń nieogrzewanych oraz — zależnie od celu — dodatkowa moc na nagrzewanie po obniżeniu temperatury. Pełny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a> jest więc czymś więcej niż jedną regułą W/m².</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-dane">
        <span class="rk-heat-eyebrow">Jakość wyniku zaczyna się na rzucie</span>
        <h2>Jakie dane są potrzebne do obliczenia strat ciepła?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Grupa danych</th><th>Co zebrać?</th><th>Dlaczego to ważne?</th></tr></thead>
            <tbody>
              <tr><td data-label="Grupa danych">Geometria</td><td data-label="Co zebrać?">Wymiary wewnętrzne i zewnętrzne, wysokości, powierzchnie brutto i netto, długości połączeń.</td><td data-label="Dlaczego to ważne?">Błąd w polu albo długości mostka przechodzi bezpośrednio do wyniku.</td></tr>
              <tr><td data-label="Grupa danych">Przegrody</td><td data-label="Co zebrać?">Warstwy, grubości, przewodności lub wiarygodne współczynniki U.</td><td data-label="Dlaczego to ważne?">Nie wolno przypisywać jednego U wszystkim ścianom tylko na podstawie wieku domu.</td></tr>
              <tr><td data-label="Grupa danych">Stolarka</td><td data-label="Co zebrać?">Wymiary, Uw okien, Ud drzwi, sposób montażu i detale ościeży.</td><td data-label="Dlaczego to ważne?">Ug szyby nie jest współczynnikiem całego okna.</td></tr>
              <tr><td data-label="Grupa danych">Warunki brzegowe</td><td data-label="Co zebrać?">Temperatury pomieszczeń, klimat zewnętrzny, sąsiednie strefy i grunt.</td><td data-label="Dlaczego to ważne?">Nie każda przegroda ma po drugiej stronie powietrze zewnętrzne.</td></tr>
              <tr><td data-label="Grupa danych">Powietrze</td><td data-label="Co zebrać?">Projektowe strumienie wentylacji, infiltrację, odzysk i sposób pracy instalacji.</td><td data-label="Dlaczego to ważne?">Przypadkowa liczba wymian na godzinę może zawyżyć albo zaniżyć wynik.</td></tr>
              <tr><td data-label="Grupa danych">Mostki</td><td data-label="Co zebrać?">Typy połączeń, wartości ψ, długości oraz zgodny system wymiarowania.</td><td data-label="Dlaczego to ważne?">Stały procent „na mostki” nie odzwierciedla rzeczywistych detali.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Jeżeli współczynnik U trzeba dopiero wyznaczyć z warstw, pomocny jest oficjalny <a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="nofollow noopener noreferrer">kalkulator współczynnika przenikania ciepła na portalu Budowlane ABC</a>. Wynik zawsze porównaj z dokumentacją konkretnej przegrody.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-temperatury">
        <span class="rk-heat-eyebrow">Różnica temperatur nie zawsze jest taka sama</span>
        <h2>Jak przyjąć temperaturę wewnętrzną i zewnętrzną?</h2>
        <p>Temperaturę wewnętrzną ustala się dla funkcji pomieszczenia i założeń projektu. Temperatury zewnętrznej nie wybiera się jedną wartością „dla całej Polski”; zależy ona od lokalizacji i przyjętej metody. Zależność lokalizacji i parametrów obliczeniowych rozwijamy w artykule o <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/">strefach klimatycznych w Polsce</a>.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Z</span><h3>Do powietrza zewnętrznego</h3><p>Różnica wynika z temperatury pomieszczenia i projektowej temperatury zewnętrznej właściwej dla lokalizacji.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">N</span><h3>Do strefy nieogrzewanej</h3><p>Po drugiej stronie może występować temperatura pośrednia, zależna od bilansu tej strefy lub współczynnika korekcyjnego.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">G</span><h3>Do gruntu</h3><p>Temperatura i przepływ nie zachowują się jak przy zwykłej ścianie zewnętrznej; znaczenie ma geometria i kontakt z gruntem.</p></div>
        </div>
        <div class="rk-heat-note"><p><strong>Kelwin i stopień Celsjusza mają tę samą wartość liczbową dla różnicy temperatur.</strong> Jeżeli wewnątrz jest 20°C, a na zewnątrz −20°C, różnica wynosi 40 K.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-przenikanie">
        <span class="rk-heat-eyebrow">Ściana, dach i strop</span>
        <h2>Jak obliczyć straty ciepła przez zwykłą przegrodę?</h2>
        <p>Dla jednorodnego fragmentu przegrody o znanym współczynniku U można najpierw wyznaczyć współczynnik strat, a następnie moc:</p>
        <div class="rk-heat-formula">
          <strong>H<sub>T,i</sub> = U<sub>i</sub> · A<sub>i</sub> &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>T,i</sub> = H<sub>T,i</sub> · Δθ</strong>
          <span>U [W/(m²K)] · A [m²] = H [W/K], a następnie H [W/K] · Δθ [K] = Φ [W]</span>
        </div>
        <div class="rk-heat-example-flow">
          <div class="rk-heat-example-step"><b>1. Pole netto</b><p>Ściana ma 22 m² brutto, lecz okno zajmuje 4 m². Do ściany nieprzezroczystej przyjmujemy 18 m².</p></div>
          <div class="rk-heat-example-step"><b>2. Współczynnik H</b><p><span class="rk-heat-inline-code">0,20 × 18 = 3,60 W/K</span></p></div>
          <div class="rk-heat-example-step"><b>3. Moc</b><p>Przy Δθ = 40 K otrzymujemy <span class="rk-heat-inline-code">3,60 × 40 = 144 W</span>.</p></div>
        </div>
        <p>Wartość U dotyczy konkretnego układu warstw i kierunku przepływu ciepła. Zakres metody obliczania oporu i współczynnika przenikania dla elementów budowlanych opisuje <a href="https://www.iso.org/standard/65708.html" target="_blank" rel="nofollow noopener noreferrer">ISO 6946</a>; norma ta nie jest metodą dla okien ani elementów stykających się z gruntem.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-okna">
        <span class="rk-heat-eyebrow">Najczęstsza pomyłka przy stolarce</span>
        <h2>Jak liczyć straty przez okna i czym różni się Uw od Ug?</h2>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Uw</span><h3>Uw — całe okno</h3><p>Obejmuje wpływ szyby, ramy i ich połączenia w deklarowanym układzie. To właściwy punkt wyjścia do obliczania straty przez cały wyrób.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">Ug</span><h3>Ug — samo oszklenie</h3><p>Opisuje środkową część szyby. Zastąpienie nim Uw zwykle przedstawia okno korzystniej, niż wynika z parametrów całego elementu.</p></div>
        </div>
        <div class="rk-heat-formula">
          <strong>A<sub>ściany,netto</sub> = A<sub>ściany,brutto</sub> − A<sub>okien</sub> − A<sub>drzwi</sub></strong>
          <span>otworów nie wolno policzyć drugi raz jako fragmentu ściany</span>
        </div>
        <p>Stratę samego okna w uproszczonym zapisie liczymy jako <strong>Φ<sub>w</sub> = Uw · A<sub>w</sub> · Δθ</strong>. Osobno trzeba uwzględnić liniowy wpływ montażu i ościeży, jeżeli nie został już ujęty w przyjętym modelu mostków.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-grunt">
        <span class="rk-heat-eyebrow">Inna droga przepływu ciepła</span>
        <h2>Dlaczego podłogi na gruncie nie liczymy jak ściany?</h2>
        <p>Przepływ ciepła do gruntu zależy nie tylko od warstw podłogi. Znaczenie mają również geometria podłogi, obwód zewnętrzny, zagłębienie, warunki gruntu oraz rozwiązanie krawędzi. Dlatego proste <strong>U · A · (temperatura pokoju − temperatura powietrza zewnętrznego)</strong> nie jest pełną metodą.</p>
        <p>Obliczenia wymiany ciepła przez elementy w kontakcie z gruntem opisuje <a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370</a>. Wstępną ocenę układu izolacji możesz połączyć z naszymi materiałami o <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacji pod ogrzewanie podłogowe</a> oraz o tym, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">jak wyznaczać grubość izolacji</a>.</p>
        <div class="rk-heat-warning"><p><strong>W laboratorium poniżej stosujemy jawny współczynnik warunków brzegowych b dla podłogi.</strong> To celowe uproszczenie dydaktyczne, które pokazuje strukturę równania. Nie zastępuje obliczenia podłogi na gruncie właściwą metodą.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-mostki">
        <span class="rk-heat-eyebrow">Detale zamiast procentu</span>
        <h2>Jak uwzględnić liniowe mostki cieplne?</h2>
        <div class="rk-heat-formula">
          <strong>H<sub>TB</sub> = Σ(ψ<sub>j</sub> · l<sub>j</sub>) &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>TB</sub> = H<sub>TB</sub> · Δθ</strong>
          <span>ψ [W/(mK)] · długość l [m] = H [W/K]</span>
        </div>
        <p>Każdy typ połączenia ma własną długość oraz wartość ψ zgodną z geometrią, materiałami i przyjętym systemem wymiarowania. Metody uproszczone i wartości orientacyjne dla mostków liniowych opisuje <a href="https://www.iso.org/standard/65706.html" target="_blank" rel="nofollow noopener noreferrer">ISO 14683</a>.</p>
        <div class="rk-heat-warning"><p><strong>Nie dodawaj automatycznie 10%, 20% albo 30% „na mostki”.</strong> Taki procent może przypadkiem pasować do jednego budynku, ale nie opisuje jakości konkretnych detali i może ukryć zarówno dobre, jak i bardzo słabe rozwiązanie.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wentylacja">
        <span class="rk-heat-eyebrow">Powietrze też trzeba ogrzać</span>
        <h2>Jak obliczyć straty przez wentylację i infiltrację?</h2>
        <p>W uproszczonym modelu dla powietrza można posłużyć się efektywnym strumieniem objętości:</p>
        <div class="rk-heat-formula">
          <strong>H<sub>V</sub> ≈ 0,34 · V̇<sub>eff</sub> &nbsp;&nbsp; oraz &nbsp;&nbsp; Φ<sub>V</sub> ≈ 0,34 · V̇<sub>eff</sub> · Δθ</strong>
          <span>V̇<sub>eff</sub> [m³/h], H<sub>V</sub> [W/K], Φ<sub>V</sub> [W]</span>
        </div>
        <p>Wartość <strong>V̇<sub>eff</sub></strong> powinna wynikać z projektu wentylacji i przyjętej metody. W systemie mechanicznym trzeba prawidłowo uwzględnić pracę odzysku, niezbilansowanie oraz infiltrację; nie wystarczy pomnożyć całego strumienia przez katalogową sprawność centrali. Więcej o współpracy systemów opisujemy w artykule <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a>.</p>
        <div class="rk-heat-note"><p><strong>Wymiana powietrza n = 1 h<sup>−1</sup> nie jest uniwersalnym założeniem.</strong> Jeżeli używasz przeliczenia z liczby wymian, najpierw musisz znać kubaturę i uzasadnić przepływ dla konkretnego pomieszczenia oraz systemu.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-laboratorium">
        <span class="rk-heat-eyebrow">Narzędzie edukacyjne, nie drugi kalkulator całego domu</span>
        <h2>Interaktywne laboratorium strat ciepła jednego pomieszczenia</h2>
        <p class="rk-heat-intro">Zmień dane referencyjnego pokoju i obserwuj drogę od współczynników <strong>H [W/K]</strong> do mocy <strong>Φ [W]</strong>. Wszystkie składniki korzystają z tej samej różnicy temperatur, z wyjątkiem podłogi, dla której jawnie podajemy uproszczony współczynnik warunków brzegowych.</p>

        <div class="rk-heat-tool" id="rk-heat-tool">
          <div class="rk-heat-tool-head">
            <h3>Rozłóż wynik na sześć składowych</h3>
            <p>Model na żywo pokazuje przegrody, mostki i wentylację. Wpisane wartości są przykładem dydaktycznym — zastąp je danymi właściwymi dla rozpatrywanego pokoju.</p>
          </div>
          <div class="rk-heat-tool-body">
            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>1</b><h4>Warunki projektowe i powierzchnia pokoju</h4></div>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-ti">Temperatura wewnętrzna [°C]</label><input id="rk-heat-ti" type="number" value="20" min="5" max="35" step="0.5"><small>Założenie dla rozpatrywanego pomieszczenia.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-te">Temperatura zewnętrzna [°C]</label><input id="rk-heat-te" type="number" value="-20" min="-40" max="20" step="0.5"><small>W przykładzie; w projekcie dobierz ją do lokalizacji.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-room-area">Powierzchnia podłogi [m²]</label><input id="rk-heat-room-area" type="number" value="20" min="0" max="500" step="0.1"><small>Służy wyłącznie do obliczenia wskaźnika W/m².</small></div>
                <div class="rk-heat-field"><label for="rk-heat-room-name">Nazwa robocza</label><input id="rk-heat-room-name" type="text" value="Pokój referencyjny" maxlength="50"><small>Nie wpływa na wynik liczbowy.</small></div>
              </div>
            </div>

            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>2</b><h4>Przenikanie przez przegrody</h4></div>
              <p>Powierzchnie ściany i okna muszą być rozdzielone. Dla podłogi współczynnik b jest jedynie uproszczeniem warunków po drugiej stronie.</p>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-wall-a">Ściana netto A [m²]</label><input id="rk-heat-wall-a" type="number" value="18" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-wall-u">Ściana U [W/(m²K)]</label><input id="rk-heat-wall-u" type="number" value="0.20" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-window-a">Okno A [m²]</label><input id="rk-heat-window-a" type="number" value="4" min="0" max="100" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-window-u">Okno Uw [W/(m²K)]</label><input id="rk-heat-window-u" type="number" value="0.90" min="0" max="8" step="0.01"><small>Uw całego okna, nie Ug szyby.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-ceiling-a">Dach lub strop A [m²]</label><input id="rk-heat-ceiling-a" type="number" value="20" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-ceiling-u">Dach lub strop U [W/(m²K)]</label><input id="rk-heat-ceiling-u" type="number" value="0.15" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-a">Podłoga A [m²]</label><input id="rk-heat-floor-a" type="number" value="20" min="0" max="500" step="0.1"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-u">Podłoga U [W/(m²K)]</label><input id="rk-heat-floor-u" type="number" value="0.20" min="0" max="5" step="0.01"></div>
                <div class="rk-heat-field"><label for="rk-heat-floor-b">Uproszczony współczynnik b [–]</label><input id="rk-heat-floor-b" type="number" value="0.50" min="0" max="1" step="0.05"><small>Model dydaktyczny; nie zastępuje ISO 13370.</small></div>
              </div>
            </div>

            <div class="rk-heat-lab-group">
              <div class="rk-heat-step-title"><b>3</b><h4>Mostki oraz efektywny strumień powietrza</h4></div>
              <div class="rk-heat-lab-fields">
                <div class="rk-heat-field"><label for="rk-heat-bridge-h">Suma H mostków [W/K]</label><input id="rk-heat-bridge-h" type="number" value="3" min="0" max="200" step="0.1"><small>H<sub>TB</sub> = Σ(ψ · l) dla przypisanych detali.</small></div>
                <div class="rk-heat-field"><label for="rk-heat-airflow">Efektywny strumień V̇ [m³/h]</label><input id="rk-heat-airflow" type="number" value="30" min="0" max="2000" step="1"><small>Po prawidłowym uwzględnieniu systemu i infiltracji.</small></div>
              </div>
              <button class="rk-heat-tool-button" id="rk-heat-calculate" type="button">Przelicz model referencyjny</button>
            </div>

            <div class="rk-heat-lab-group" aria-live="polite">
              <div class="rk-heat-step-title"><b>4</b><h4>Wynik: H, Δθ, Φ i udziały składowych</h4></div>
              <div class="rk-heat-result-strip">
                <div class="rk-heat-result-tile"><span>Różnica Δθ</span><strong id="rk-heat-out-delta">—</strong></div>
                <div class="rk-heat-result-tile"><span>Suma H</span><strong id="rk-heat-out-h">—</strong></div>
                <div class="rk-heat-result-tile"><span>Moc Φ</span><strong id="rk-heat-out-w">—</strong></div>
                <div class="rk-heat-result-tile"><span>Moc w kW</span><strong id="rk-heat-out-kw">—</strong></div>
                <div class="rk-heat-result-tile"><span>Wskaźnik</span><strong id="rk-heat-out-wm2">—</strong></div>
              </div>

              <h4 id="rk-heat-chart-title">Dynamiczny wykres mocy składowych</h4>
              <div class="rk-heat-chart-list" role="img" aria-labelledby="rk-heat-chart-title" id="rk-heat-live-chart">
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Ściana netto</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-wall"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-wall">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Okno</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-window"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-window">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Dach lub strop</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-ceiling"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-ceiling">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Podłoga — model</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-floor"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-floor">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Mostki liniowe</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-bridge"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-bridge">—</span></div>
                <div class="rk-heat-chart-row"><span class="rk-heat-chart-label">Wentylacja</span><span class="rk-heat-chart-track"><span class="rk-heat-chart-fill" id="rk-heat-bar-vent"></span></span><span class="rk-heat-chart-value" id="rk-heat-val-vent">—</span></div>
              </div>

              <div class="rk-heat-formula-tabs" aria-label="Wybierz składnik równania">
                <button class="rk-heat-formula-tab" type="button" data-part="wall" aria-pressed="true">Ściana</button>
                <button class="rk-heat-formula-tab" type="button" data-part="window" aria-pressed="false">Okno</button>
                <button class="rk-heat-formula-tab" type="button" data-part="ceiling" aria-pressed="false">Dach / strop</button>
                <button class="rk-heat-formula-tab" type="button" data-part="floor" aria-pressed="false">Podłoga</button>
                <button class="rk-heat-formula-tab" type="button" data-part="bridge" aria-pressed="false">Mostki</button>
                <button class="rk-heat-formula-tab" type="button" data-part="vent" aria-pressed="false">Wentylacja</button>
              </div>
              <div class="rk-heat-live-formula">
                <strong id="rk-heat-formula-name">Ściana netto</strong>
                <code id="rk-heat-formula-equation">—</code>
                <span id="rk-heat-formula-note">—</span>
              </div>
              <div class="rk-heat-diagnostics" id="rk-heat-diagnostics"></div>
            </div>
          </div>
        </div>

        <div class="rk-heat-note"><p><strong>Potrzebujesz rozbudowanych obliczeń całego budynku?</strong> Skorzystaj z osobnego <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła budynku</a>. To odrębne narzędzie; laboratorium powyżej celowo skupia się na zrozumieniu jednego pokoju i pojedynczych składników.</p></div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <h3>Od modelu jednego pokoju do rzeczywistego projektu</h3>
        <p>W przykładzie znamy powierzchnie, współczynniki U, długości mostków i strumień powietrza. W rzeczywistym domu dane trzeba zebrać osobno dla każdego pomieszczenia, a następnie powiązać wynik z powierzchnią czynną i możliwościami ogrzewania podłogowego.</p>
        <p>Jeżeli potrzebujesz obliczeń dla własnego budynku oraz tras, rozstawów, długości i przepływów pętli, potrzebny jest indywidualny projekt.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami cieplnymi pomieszczeń</a>
      </aside>

      <section class="rk-heat-section" id="rk-heat-wykres">
        <span class="rk-heat-eyebrow">Nie tylko suma</span>
        <h2>Jak czytać dynamiczny wykres strat ciepła?</h2>
        <p>Każdy pasek w laboratorium odpowiada mocy jednego składnika. Długość paska jest liczona względem największej składowej, a obok widzisz zarówno moc w W, jak i procentowy udział w wyniku pokoju. Dzięki temu można rozróżnić dwie sytuacje:</p>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Δθ</span><h3>Zmiana temperatury zewnętrznej</h3><p>Jeżeli wszystkie składniki korzystają z tego samego Δθ, ich moce zmieniają się proporcjonalnie, natomiast udziały procentowe pozostają zbliżone.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">U·A</span><h3>Zmiana konkretnej przegrody</h3><p>Zmiana U albo pola jednej przegrody wpływa bezpośrednio na jej H, moc, udział w sumie i kształt całego wykresu.</p></div>
        </div>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Składowa w modelu domyślnym</th><th>H [W/K]</th><th>Φ przy Δθ = 40 K [W]</th><th>Co kontrolować?</th></tr></thead>
            <tbody>
              <tr><td data-label="Składowa">Ściana netto</td><td data-label="H [W/K]">3,60</td><td data-label="Φ [W]">144</td><td data-label="Co kontrolować?">Pole po odjęciu okna oraz U przegrody.</td></tr>
              <tr><td data-label="Składowa">Okno</td><td data-label="H [W/K]">3,60</td><td data-label="Φ [W]">144</td><td data-label="Co kontrolować?">Uw całego okna i rzeczywisty wymiar.</td></tr>
              <tr><td data-label="Składowa">Dach lub strop</td><td data-label="H [W/K]">3,00</td><td data-label="Φ [W]">120</td><td data-label="Co kontrolować?">Rodzaj granicy oraz U układu warstw.</td></tr>
              <tr><td data-label="Składowa">Podłoga — uproszczenie</td><td data-label="H [W/K]">2,00</td><td data-label="Φ [W]">80</td><td data-label="Co kontrolować?">Metodę dla gruntu i geometrię; b nie jest pełnym obliczeniem.</td></tr>
              <tr><td data-label="Składowa">Mostki cieplne</td><td data-label="H [W/K]">3,00</td><td data-label="Φ [W]">120</td><td data-label="Co kontrolować?">Wartości ψ, długości i system wymiarowania.</td></tr>
              <tr><td data-label="Składowa">Wentylacja</td><td data-label="H [W/K]">10,20</td><td data-label="Φ [W]">408</td><td data-label="Co kontrolować?">Efektywny strumień, odzysk, niezbilansowanie i infiltrację.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-note"><p><strong>Najdłuższy pasek nie oznacza automatycznie „błędu”.</strong> W pomieszczeniu wymagającym dużego strumienia świeżego powietrza wentylacja może naturalnie dominować. Wniosek wymaga porównania z funkcją pokoju i projektem systemu.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-wm2">
        <span class="rk-heat-eyebrow">Wskaźnik pomocniczy, nie metoda obliczeń</span>
        <h2>Co mówi wynik w W/m²?</h2>
        <p>Wskaźnik W/m² powstaje dopiero po obliczeniu mocy. Pomaga porównywać pomieszczenia i kontrolować skalę wyniku, ale sam nie wyznacza strat ciepła. Trzeba też podać mianownik:</p>
        <div class="rk-heat-formula">
          <strong>q = Φ<sub>pomieszczenia</sub> / A</strong>
          <span>ta sama moc da inny wskaźnik dla powierzchni podłogi i inny dla powierzchni rzeczywiście grzewczej</span>
        </div>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">20</span><h3>Cała podłoga: 20 m²</h3><p>Dla 1016 W wskaźnik wynosi 50,8 W/m². To opis obciążenia odniesionego do powierzchni pokoju.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">14</span><h3>Powierzchnia czynna: 14 m²</h3><p>Jeśli tylko 14 m² może oddawać ciepło, wymagana moc jednostkowa podłogi rośnie do około 72,6 W/m².</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">?</span><h3>Bez informacji o A</h3><p>Sam zapis „dom ma 45 W/m²” nie mówi, według jakiej powierzchni i w jakich warunkach uzyskano wartość.</p></div>
        </div>
        <div class="rk-heat-warning"><p><strong>Nie przypisuj automatycznie klasy energetycznej budynku do pojedynczego przedziału W/m².</strong> Wynik zależy między innymi od klimatu, temperatur pomieszczeń, geometrii, wentylacji i definicji powierzchni.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-pomieszczenie-budynek">
        <span class="rk-heat-eyebrow">Dwa wyniki, dwa zastosowania</span>
        <h2>Czym różnią się straty pomieszczenia od strat całego budynku?</h2>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Poziom obliczeń</th><th>Co trzeba zachować?</th><th>Do czego służy wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Poziom">Pomieszczenie</td><td data-label="Co zachować?">Własne przegrody zewnętrzne, wentylację, temperaturę, mostki i warunki sąsiednich stref.</td><td data-label="Zastosowanie">Dobór powierzchni grzewczej, rozstawu, przepływu i mocy emitera.</td></tr>
              <tr><td data-label="Poziom">Strefa lub kondygnacja</td><td data-label="Co zachować?">Równoczesność warunków oraz przepływy między strefami.</td><td data-label="Zastosowanie">Podział hydrauliczny, gałęzie instalacji i ocena pracy strefy.</td></tr>
              <tr><td data-label="Poziom">Cały budynek</td><td data-label="Co zachować?">Spójne warunki projektowe i prawidłowe sumowanie bez podwójnego liczenia przegród wewnętrznych.</td><td data-label="Zastosowanie">Punkt wyjścia do doboru źródła, głównej instalacji i strategii pracy.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Nie należy najpierw obliczyć jednej wartości dla domu i rozdzielić jej na pokoje proporcjonalnie do metrażu. Narożna łazienka, salon z przeszkleniami i sypialnia pomiędzy ogrzewanymi wnętrzami mają inne obciążenia nawet przy podobnej powierzchni.</p>
      </section>

      <section class="rk-heat-section" id="rk-heat-zyski">
        <span class="rk-heat-eyebrow">Bilans chwilowy i energetyczny</span>
        <h2>Czy od strat odejmuje się zyski od ludzi, słońca i urządzeń?</h2>
        <p>Zyski wewnętrzne i słoneczne są ważne w analizie zapotrzebowania na energię, temperatury operacyjnej oraz obciążeń zmiennych. Nie należy jednak odejmować od projektowej mocy grzewczej przypadkowo przyjętej liczby watów od mieszkańców albo słońca, które w krytycznym momencie mogą nie występować.</p>
        <p>Norma <a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1</a> rozróżnia obliczenia potrzeb energetycznych oraz obciążeń cieplnych. To ważne, ponieważ model rocznego zużycia i model mocy potrzebnej w warunkach projektowych odpowiadają na inne pytania.</p>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Φ</span><h3>Projektowa moc grzewcza</h3><p>Ma zapewnić warunki w uzgodnionym stanie projektowym. Założenia dotyczące zysków muszą wynikać z właściwej metody, a nie z optymistycznego scenariusza.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">Q</span><h3>Energia w sezonie</h3><p>Uwzględnia zmienność pogody, harmonogramy, zyski, sterowanie i zachowanie budynku w czasie.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-nagrzewanie">
        <span class="rk-heat-eyebrow">Powrót po obniżeniu temperatury</span>
        <h2>Czy trzeba doliczyć moc na ponowne nagrzanie budynku?</h2>
        <p>Jeżeli instalacja pracuje z planowanym obniżeniem temperatury, może być potrzebna dodatkowa moc umożliwiająca powrót do warunków komfortu w założonym czasie. Wielkość ta zależy od pojemności cieplnej budynku, czasu przerwy, głębokości obniżenia, mocy emiterów i strategii sterowania.</p>
        <div class="rk-heat-warning"><p><strong>Nie dodawaj automatycznego zapasu 10% lub 20% do każdego wyniku.</strong> W ciężkim budynku z podłogówką i stałą temperaturą duży zapas może pogorszyć dobór źródła, a w obiekcie okresowo ogrzewanym znaczenie czasu nagrzewania może być istotne. To trzeba zdefiniować w założeniach.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-podlogowka">
        <span class="rk-heat-eyebrow">Most między OZC i projektem podłogi</span>
        <h2>Jak straty ciepła wpływają na projekt ogrzewania podłogowego?</h2>
        <p>Dla każdego pomieszczenia moc obliczeniową odnosimy do powierzchni, która rzeczywiście może ogrzewać wnętrze. Nie wliczamy bezrefleksyjnie stałej zabudowy, wyłączonych stref i fragmentów, na których nie wolno ułożyć rur.</p>
        <div class="rk-heat-formula">
          <strong>q<sub>wym</sub> = Φ<sub>pomieszczenia</sub> / A<sub>czynna</sub></strong>
          <span>wymagana jednostkowa moc podłogi [W/m²]</span>
        </div>
        <p>Dopiero tę wartość porównuje się z wydajnością wybranej konstrukcji podłogi przy określonym rozstawie, temperaturze wody, oporze okładziny i dopuszczalnej temperaturze powierzchni. Dlatego z samego wyniku strat nie wynika automatycznie rozstaw 10 albo 15 cm. Praktyczne konsekwencje opisujemy w poradnikach <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a> i <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p>
        <div class="rk-heat-note"><p><strong>Jeżeli powierzchnia czynna jest za mała, problemu nie rozwiązuje samo zagęszczanie rur.</strong> Trzeba sprawdzić temperaturę powierzchni, możliwą moc systemu, opór posadzki oraz ewentualne dodatkowe źródło ciepła.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-zrodlo">
        <span class="rk-heat-eyebrow">Moc budynku to początek doboru</span>
        <h2>Czy wynik strat wystarcza do doboru pompy ciepła lub kotła?</h2>
        <p>Obciążenie cieplne budynku jest kluczowym wejściem do doboru źródła, ale nie jedynym. Trzeba uwzględnić charakterystykę urządzenia w punkcie obliczeniowym, minimalną modulację, sposób przygotowania ciepłej wody, ewentualne grzałki lub źródło szczytowe, wymagane temperatury zasilania oraz logikę sterowania.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Punkt obliczeniowy</h3><p>Moc urządzenia trzeba odczytywać dla konkretnej temperatury zewnętrznej i wymaganej temperatury wody, nie tylko z nazwy modelu.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Praca częściowa</h3><p>Przez większość sezonu zapotrzebowanie jest niższe od projektowego, dlatego znaczenie ma modulacja i współpraca z instalacją.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Ciepła woda</h3><p>Potrzeby c.w.u. analizuje się osobno; nie sumuje się ich mechanicznie ze stratami pomieszczeń jako stałej mocy całodobowej.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-koszt">
        <span class="rk-heat-eyebrow">Od mocy projektowej do energii</span>
        <h2>Dlaczego z jednej straty w kW nie policzymy rachunku za miesiąc?</h2>
        <p>Projektowa strata występuje dla określonego zestawu warunków. W rzeczywistości temperatura zewnętrzna zmienia się, występują zyski, budynek akumuluje ciepło, a instalacja pracuje z różną sprawnością i temperaturą. Pomnożenie mocy projektowej przez 720 godzin zakładałoby, że przez cały miesiąc stale panują najtrudniejsze warunki i urządzenie pracuje bez przerwy z tą samą mocą.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Aby oszacować energię i koszt</th><th>Potrzebna informacja</th></tr></thead>
            <tbody>
              <tr><td data-label="Element">Pogoda</td><td data-label="Potrzebna informacja">Zmienne temperatury lub dane klimatyczne dla analizowanego okresu.</td></tr>
              <tr><td data-label="Element">Budynek</td><td data-label="Potrzebna informacja">Pojemność cieplna, zyski, harmonogram temperatur i wymiana powietrza.</td></tr>
              <tr><td data-label="Element">System</td><td data-label="Potrzebna informacja">Sprawność albo COP zależne od warunków, straty dystrybucji i sterowanie.</td></tr>
              <tr><td data-label="Element">Taryfa lub paliwo</td><td data-label="Potrzebna informacja">Cena właściwej jednostki energii i koszty stałe rozpatrywane osobno.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-heat-warning"><p><strong>Obciążenie 8 kW nie oznacza zużycia 8 kWh w każdej godzinie sezonu.</strong> Moc źródła, energia dostarczona do budynku i energia kupiona z sieci albo paliwa to trzy różne wielkości.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-bledy">
        <span class="rk-heat-eyebrow">Kontrola jakości obliczeń</span>
        <h2>Najczęstsze błędy przy liczeniu strat ciepła</h2>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Jedna liczba W/m² dla wszystkich pokojów</h3><p>Pomija geometrię, przeszklenia, narożniki, wentylację i różne temperatury wewnętrzne.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Podwójne pole okien</h3><p>Okno zostaje policzone osobno, ale jego powierzchni nie odjęto od ściany nieprzezroczystej.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Ug zamiast Uw</h3><p>Parametr samej szyby zostaje przypisany do całego okna, co pomija gorszy wpływ ramy i połączeń.</p></div>
          <div class="rk-heat-card is-purple"><span class="rk-heat-card-icon">4</span><h3>Grunt traktowany jak powietrze</h3><p>Podłogę liczy się z pełną różnicą do temperatury zewnętrznej bez właściwej metody i geometrii.</p></div>
          <div class="rk-heat-card"><span class="rk-heat-card-icon">5</span><h3>Stały procent mostków</h3><p>Detale zastępuje arbitralny dodatek, który nie mówi, gdzie i dlaczego ciepło ucieka.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">6</span><h3>Katalogowa sprawność odzysku</h3><p>Jedna wartość z urządzenia redukuje całą wentylację bez sprawdzenia przepływów i infiltracji.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">7</span><h3>W pomylone z kWh</h3><p>Moc projektową mnoży się przez liczbę godzin i przedstawia jako przewidywany rachunek.</p></div>
          <div class="rk-heat-card is-purple"><span class="rk-heat-card-icon">8</span><h3>Zaokrąglenia ukrywające dane</h3><p>Końcowy „zapas” zastępuje brak wymiarów, brak U, brak mostków albo nieznany strumień powietrza.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-checklista">
        <span class="rk-heat-eyebrow">Przed zaakceptowaniem wyniku</span>
        <h2>Checklista obliczeń strat ciepła</h2>
        <ul class="rk-heat-checklist">
          <li>Czy każde pomieszczenie ma osobny wynik i temperaturę wewnętrzną?</li>
          <li>Czy projektowa temperatura zewnętrzna odpowiada lokalizacji i metodzie?</li>
          <li>Czy powierzchnie przegród mają spójny system wymiarowania?</li>
          <li>Czy pola okien i drzwi odjęto od powierzchni ścian?</li>
          <li>Czy dla okien użyto Uw, a nie wyłącznie Ug?</li>
          <li>Czy U przegród wynika z dokumentacji albo obliczenia warstw?</li>
          <li>Czy podłogę na gruncie policzono właściwą metodą?</li>
          <li>Czy strefy nieogrzewane mają odpowiednie warunki brzegowe?</li>
          <li>Czy mostki mają wartości ψ i rzeczywiste długości?</li>
          <li>Czy wentylacja i infiltracja wynikają z uzasadnionych przepływów?</li>
          <li>Czy wynik odróżnia W, W/K, W/m² i kWh?</li>
          <li>Czy powierzchnia czynna podłogi jest oddzielona od całej powierzchni pokoju?</li>
          <li>Czy ewentualną moc na nagrzewanie uzasadniono harmonogramem?</li>
          <li>Czy założenia, źródła danych i uproszczenia są zapisane obok wyniku?</li>
        </ul>
        <div class="rk-heat-success"><p><strong>Dobry arkusz obliczeniowy pozwala przejść od wyniku wstecz do danych.</strong> Jeżeli widzisz tylko końcowe kW, ale nie potrafisz sprawdzić powierzchni, U, ψ, przepływów i temperatur, nie możesz rzetelnie ocenić obliczenia.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-heat-faq">
        <span class="rk-heat-eyebrow">Najczęstsze pytania</span>
        <h2>FAQ — obliczanie strat ciepła w budynku</h2>
        <div class="rk-heat-faq">
          <details>
            <summary>Co oznacza wynik strat ciepła podany w W?</summary>
            <div class="rk-heat-faq-answer"><p>Wynik w W oznacza moc cieplną potrzebną w zdefiniowanych warunkach obliczeniowych. Nie jest to miesięczne ani roczne zużycie energii. Aby otrzymać kWh, trzeba uwzględnić zmienną moc w czasie.</p></div>
          </details>
          <details>
            <summary>Czy jednostka W/godz. jest poprawna dla strat ciepła?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Wat jest już jednostką mocy, czyli tempa przekazywania energii. Projektową stratę ciepła podaje się w W lub kW, współczynnik strat w W/K, a energię zużytą w czasie w Wh lub kWh.</p></div>
          </details>
          <details>
            <summary>Jak obliczyć stratę ciepła przez ścianę?</summary>
            <div class="rk-heat-faq-answer"><p>Dla prostego fragmentu ściany można obliczyć H = U · A, a następnie Φ = H · Δθ. Powierzchnia A powinna być polem netto po odjęciu okien i drzwi, U musi dotyczyć rzeczywistej przegrody, a Δθ właściwych warunków po obu jej stronach.</p></div>
          </details>
          <details>
            <summary>Czy dla każdej przegrody stosuje się tę samą różnicę temperatur?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Ściana zewnętrzna, przegroda do strefy nieogrzewanej i podłoga na gruncie mają różne warunki brzegowe. Dla gruntu stosuje się osobną metodykę, a dla sąsiednich stref trzeba określić ich temperaturę lub właściwy współczynnik korekcyjny.</p></div>
          </details>
          <details>
            <summary>Do obliczeń okna przyjąć Uw czy Ug?</summary>
            <div class="rk-heat-faq-answer"><p>Do uproszczonego obliczenia straty przez całe okno należy przyjąć Uw całego wyrobu. Ug opisuje oszklenie i nie uwzględnia w pełni wpływu ramy oraz połączenia szyby z ramą.</p></div>
          </details>
          <details>
            <summary>Jak obliczyć straty przez podłogę na gruncie?</summary>
            <div class="rk-heat-faq-answer"><p>Podłogi na gruncie nie należy liczyć jak zwykłej ściany z pełną różnicą temperatur do powietrza zewnętrznego. Trzeba uwzględnić właściwości podłogi, geometrię, obwód, rozwiązanie krawędzi i kontakt z gruntem zgodnie z odpowiednią metodą, na przykład zakresem ISO 13370.</p></div>
          </details>
          <details>
            <summary>Czy mostki cieplne można dodać jako stały procent?</summary>
            <div class="rk-heat-faq-answer"><p>Stały procent może służyć co najwyżej do bardzo wstępnej kontroli, ale nie zastępuje obliczeń. Właściwe podejście przypisuje liniowy współczynnik ψ do konkretnego detalu, mnoży go przez długość połączenia i zachowuje spójny system wymiarowania.</p></div>
          </details>
          <details>
            <summary>Jak w uproszczeniu policzyć stratę przez wentylację?</summary>
            <div class="rk-heat-faq-answer"><p>Dla powietrza można użyć zależności ΦV ≈ 0,34 · V̇eff · Δθ, gdzie efektywny strumień V̇eff podaje się w m³/h. Strumień musi jednak wynikać z projektu i prawidłowo uwzględniać sposób wentylacji, odzysk, niezbilansowanie oraz infiltrację.</p></div>
          </details>
          <details>
            <summary>Czy rekuperator całkowicie usuwa straty wentylacyjne?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Rzeczywisty odzysk zależy od warunków pracy, strumieni i charakterystyki systemu, a ponadto pozostają infiltracja, niezbilansowanie oraz energia pomocnicza. Nie należy więc zerować straty wentylacyjnej ani redukować całego przepływu jedną katalogową sprawnością.</p></div>
          </details>
          <details>
            <summary>Czy moc projektową można pomnożyć przez 720 godzin, aby policzyć miesiąc?</summary>
            <div class="rk-heat-faq-answer"><p>Nie jako prognozę rzeczywistego zużycia. Takie działanie zakładałoby stałą moc projektową przez cały miesiąc. Do obliczenia energii potrzebny jest przebieg temperatur, zyski, harmonogramy, zachowanie budynku oraz sprawność systemu w zmiennych warunkach.</p></div>
          </details>
          <details>
            <summary>Czy wynik W/m² wystarcza do projektu ogrzewania podłogowego?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Trzeba znać moc każdego pomieszczenia, powierzchnię rzeczywiście ogrzewaną, konstrukcję podłogi, opór okładziny, dopuszczalną temperaturę powierzchni, parametry wody, rozstawy, długości pętli i hydraulikę instalacji.</p></div>
          </details>
          <details>
            <summary>Czy laboratorium z artykułu zastępuje pełne OZC?</summary>
            <div class="rk-heat-faq-answer"><p>Nie. Laboratorium pokazuje zależności i przejrzysty model jednego pomieszczenia. Nie odtwarza pełnej geometrii budynku, wszystkich stref, szczegółowego gruntu, wentylacji, mostków ani kompletnej procedury projektowej.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-heat-zrodla">
        <span class="rk-heat-eyebrow">Podstawa techniczna</span>
        <h2>Oficjalne źródła i zakres metodyki</h2>
        <p>Poniższe odnośniki prowadzą wyłącznie do oficjalnych stron instytucji normalizacyjnych i portalu rządowego. Pełne normy mogą być płatne; strony zakresu pomagają ustalić, którego zagadnienia dotyczy dany dokument.</p>
        <div class="rk-heat-sources">
          <div class="rk-heat-source"><a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="nofollow noopener noreferrer">BSI — BS EN 12831-1, metoda obliczania projektowego obciążenia cieplnego</a><p>Oficjalny opis zakresu: obciążenie ogrzewania pojedynczych pomieszczeń, części budynku i całych budynków.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1 — potrzeby energetyczne i obciążenia cieplne</a><p>Zakres metod obliczeń energii do ogrzewania i chłodzenia oraz obciążeń wewnętrznych.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65708.html" target="_blank" rel="nofollow noopener noreferrer">ISO 6946 — opór cieplny i współczynnik przenikania U</a><p>Metoda dla elementów budowlanych; zakres wyłącza między innymi okna i elementy w kontakcie z gruntem.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370 — wymiana ciepła przez grunt</a><p>Metody obliczania współczynników przenoszenia ciepła i strumieni dla elementów stykających się z gruntem.</p></div>
          <div class="rk-heat-source"><a href="https://www.iso.org/standard/65706.html" target="_blank" rel="nofollow noopener noreferrer">ISO 14683 — liniowe mostki cieplne</a><p>Metody uproszczone i wartości liniowego współczynnika przenikania ciepła.</p></div>
          <div class="rk-heat-source"><a href="https://budowlaneabc.gov.pl/charakterystyka-energetyczna-budynkow/kalkulatory/calc-wpc/" target="_blank" rel="nofollow noopener noreferrer">Budowlane ABC — rządowy kalkulator współczynnika przenikania ciepła</a><p>Narzędzie pomocnicze do wyznaczania U przegród na podstawie ich układu warstw.</p></div>
        </div>
      </section>

      <section class="rk-heat-author" id="rk-heat-autor" aria-label="Autor opracowania">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-about" checked>
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-exp">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-method">
        <header class="rk-heat-author-head">
          <div>
            <span class="rk-heat-eyebrow">Autor i odpowiedzialność merytoryczna</span>
            <h2>Robert Kucharski — autor opracowania</h2>
            <p>Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego.</p>
          </div>
          <span class="rk-heat-author-mark">OZC POMIESZCZEŃ • OGRZEWANIE PŁASZCZYZNOWE • HYDRAULIKA INSTALACJI</span>
        </header>
        <div class="rk-heat-author-layout">
          <aside class="rk-heat-author-side">
            <div class="rk-heat-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-heat-author-name">Robert Kucharski</div>
            <div class="rk-heat-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-heat-author-social-label">Profile autora</div>
            <div class="rk-heat-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 3.5A2.2 2.2 0 1 1 5.2 8a2.2 2.2 0 0 1 0-4.5zM3.3 9.6h3.8V21H3.3V9.6zm6.2 0h3.6v1.6h.1c.5-.9 1.7-2 3.6-2 3.9 0 4.6 2.5 4.6 5.9V21h-3.8v-5.2c0-1.2 0-2.9-1.8-2.9s-2.1 1.4-2.1 2.8V21H9.5V9.6z"/></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Facebook Projekt Ogrzewania"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8h3V4.4c-.5-.1-2.2-.2-3.3-.2-3.2 0-5.3 1.9-5.3 5.4V12H5v4h3.4v8H13v-8h3.5l.6-4H13V10c0-1.2.3-2 1-2z"/></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.3 2H22l-8.1 9.2L23.4 22H16l-5.8-7.6L3.5 22H0l8.5-9.8L-.6 2H7l5.2 6.9L18.3 2zm-1.3 18h2L5.9 3.9H3.8L17 20z"/></svg></a>
            </div>
          </aside>
          <div class="rk-heat-author-main">
            <blockquote class="rk-heat-author-quote"><p>„Wynik strat ciepła jest wiarygodny dopiero wtedy, gdy można prześledzić jego drogę: od geometrii i warunków brzegowych, przez U, ψ i przepływy powietrza, aż do mocy każdego pomieszczenia.”</p></blockquote>
            <div class="rk-heat-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-heat-author-tab" for="rk-heat-author-about">O autorze</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-exp">Doświadczenie</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-method">Metodyka</label>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-about">
              <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia strat ciepła oraz analizy hydrauliczne dla budynków nowych i modernizowanych. W dokumentacji łączy wynik każdego pomieszczenia z jego rzeczywistą geometrią, powierzchnią czynną, planowaną okładziną, konstrukcją podłogi i parametrami instalacji.</p>
              <p>Materiały edukacyjne tworzy dla inwestorów, projektantów i wykonawców, którzy chcą rozumieć założenia stojące za liczbami. Szczególny nacisk kładzie na rozróżnienie mocy i energii oraz na możliwość zweryfikowania danych wejściowych, zamiast opierania decyzji na uniwersalnym wskaźniku W/m².</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-exp">
              <p>Zakres praktyki obejmuje bilanse cieplne pomieszczeń, ocenę przegród i warunków brzegowych, wyznaczanie powierzchni grzewczych, dobór temperatur i rozstawów, planowanie pętli, obliczenia przepływów oraz oporów hydraulicznych.</p>
              <p>W projektach ogrzewania płaszczyznowego autor analizuje nie tylko sumę kW dla budynku, lecz także lokalne obciążenie łazienek, pomieszczeń narożnych, stref z przeszkleniami i wnętrz z ograniczoną powierzchnią czynną. To pozwala powiązać bilans z realnym układem rur oraz nastawami rozdzielacza.</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-method">
              <p>Artykuł rozdziela współczynnik strat H [W/K], projektową moc Φ [W] i energię Q [kWh]. Interaktywne laboratorium pokazuje jawny model dydaktyczny jednego pomieszczenia. Nie udaje pełnego OZC: upraszcza grunt współczynnikiem b i wymaga podania efektywnego strumienia powietrza już po poprawnym uwzględnieniu działania systemu.</p>
              <p>Treść została skonfrontowana z oficjalnym zakresem BS EN 12831-1, ISO 52016-1, ISO 6946, ISO 13370 i ISO 14683. Szczegółowe obliczenia konkretnego budynku wymagają pełnych danych, aktualnych wydań dokumentów oraz spójnej metody projektowej.</p>
            </div>
            <div class="rk-heat-mini-label">Więcej materiałów autora</div>
            <div class="rk-heat-portals">
              <a href="https://projekt-ogrzewania.pl/author/admin3399/">Wszystkie wpisy autora</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Końcowe zaproszenie do zamówienia projektu">
        <h3>Przełóż straty każdego pomieszczenia na gotowy projekt podłogówki</h3>
        <p>Indywidualny projekt łączy obliczenia cieplne z powierzchnią czynną, układem kondygnacji, trasami rur, rozstawami, długościami pętli, przepływami i nastawami rozdzielacza. Otrzymujesz dokumentację opartą na danych Twojego budynku, a nie na jednej orientacyjnej wartości W/m².</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      </aside>
    </div>
  </article>
</div>

<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",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@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",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "obliczenia strat ciepła",
        "projektowe obciążenie cieplne",
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "dobór temperatur i przepływów"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Jak oblicza się straty ciepła w budynku?", "item": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage",
      "url": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/",
      "name": "Jak oblicza się straty ciepła w budynku? Wzory i przykład krok po kroku",
      "description": "Metodyka obliczania strat ciepła pomieszczeń i budynku: przegrody, mostki, wentylacja, W/K, W oraz W/m².",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#breadcrumb" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#article" },
      "dateModified": "2026-09-02",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#article",
      "headline": "Jak oblicza się straty ciepła w budynku? Wzory i przykład krok po kroku",
      "description": "Praktyczne wyjaśnienie wzorów U · A · Δθ, współczynnika H, mostków cieplnych, wentylacji oraz różnicy między W i kWh.",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "dateModified": "2026-09-02",
      "proficiencyLevel": "Beginner",
      "dependencies": "Geometria przegród, współczynniki U, wartości psi, temperatury projektowe oraz strumienie wentylacji",
      "keywords": [
        "jak oblicza się straty ciepła w budynku",
        "straty ciepła pomieszczenia",
        "U A delta T",
        "współczynnik strat ciepła W/K",
        "mostki cieplne psi",
        "straty wentylacyjne",
        "projektowe obciążenie cieplne"
      ],
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#laboratorium",
      "name": "Interaktywne laboratorium strat ciepła jednego pomieszczenia",
      "url": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#rk-heat-laboratorium",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "description": "Model edukacyjny rozkładający moc strat pokoju na ścianę, okno, dach lub strop, podłogę, mostki i wentylację.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#webpage" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#howto",
      "name": "Jak obliczyć projektową stratę ciepła pomieszczenia",
      "description": "Sześć etapów prowadzących od danych budynku do mocy pomieszczenia w W.",
      "totalTime": "PT45M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zbierz geometrię i parametry", "text": "Ustal powierzchnie netto przegród, współczynniki U, długości mostków oraz dane wentylacji." },
        { "@type": "HowToStep", "position": 2, "name": "Ustal warunki brzegowe", "text": "Przypisz temperaturę wewnętrzną oraz właściwe warunki zewnętrzne, strefy nieogrzewanej lub gruntu." },
        { "@type": "HowToStep", "position": 3, "name": "Policz przenikanie", "text": "Dla odpowiednich przegród wyznacz H jako U razy A, a następnie moc jako H razy różnica temperatur." },
        { "@type": "HowToStep", "position": 4, "name": "Dodaj mostki liniowe", "text": "Pomnóż wartości psi konkretnych detali przez ich długości i uwzględnij spójny system wymiarowania." },
        { "@type": "HowToStep", "position": 5, "name": "Policz wymianę powietrza", "text": "Wyznacz stratę wentylacyjną na podstawie uzasadnionego efektywnego strumienia powietrza i różnicy temperatur." },
        { "@type": "HowToStep", "position": 6, "name": "Zsumuj i zinterpretuj", "text": "Zsumuj składowe w W, zapisz H w W/K i odnieś moc pomieszczenia do właściwej powierzchni." }
      ],
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Co oznacza wynik strat ciepła podany w W?",
          "acceptedAnswer": { "@type": "Answer", "text": "Wynik w W oznacza moc cieplną potrzebną w zdefiniowanych warunkach obliczeniowych. Nie jest to miesięczne ani roczne zużycie energii. Aby otrzymać kWh, trzeba uwzględnić zmienną moc w czasie." }
        },
        {
          "@type": "Question",
          "name": "Czy jednostka W/godz. jest poprawna dla strat ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Wat jest już jednostką mocy, czyli tempa przekazywania energii. Projektową stratę ciepła podaje się w W lub kW, współczynnik strat w W/K, a energię zużytą w czasie w Wh lub kWh." }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć stratę ciepła przez ścianę?",
          "acceptedAnswer": { "@type": "Answer", "text": "Dla prostego fragmentu ściany można obliczyć H = U · A, a następnie Φ = H · Δθ. Powierzchnia A powinna być polem netto po odjęciu okien i drzwi, U musi dotyczyć rzeczywistej przegrody, a Δθ właściwych warunków po obu jej stronach." }
        },
        {
          "@type": "Question",
          "name": "Czy dla każdej przegrody stosuje się tę samą różnicę temperatur?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Ściana zewnętrzna, przegroda do strefy nieogrzewanej i podłoga na gruncie mają różne warunki brzegowe. Dla gruntu stosuje się osobną metodykę, a dla sąsiednich stref trzeba określić ich temperaturę lub właściwy współczynnik korekcyjny." }
        },
        {
          "@type": "Question",
          "name": "Do obliczeń okna przyjąć Uw czy Ug?",
          "acceptedAnswer": { "@type": "Answer", "text": "Do uproszczonego obliczenia straty przez całe okno należy przyjąć Uw całego wyrobu. Ug opisuje oszklenie i nie uwzględnia w pełni wpływu ramy oraz połączenia szyby z ramą." }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć straty przez podłogę na gruncie?",
          "acceptedAnswer": { "@type": "Answer", "text": "Podłogi na gruncie nie należy liczyć jak zwykłej ściany z pełną różnicą temperatur do powietrza zewnętrznego. Trzeba uwzględnić właściwości podłogi, geometrię, obwód, rozwiązanie krawędzi i kontakt z gruntem zgodnie z odpowiednią metodą, na przykład zakresem ISO 13370." }
        },
        {
          "@type": "Question",
          "name": "Czy mostki cieplne można dodać jako stały procent?",
          "acceptedAnswer": { "@type": "Answer", "text": "Stały procent może służyć co najwyżej do bardzo wstępnej kontroli, ale nie zastępuje obliczeń. Właściwe podejście przypisuje liniowy współczynnik ψ do konkretnego detalu, mnoży go przez długość połączenia i zachowuje spójny system wymiarowania." }
        },
        {
          "@type": "Question",
          "name": "Jak w uproszczeniu policzyć stratę przez wentylację?",
          "acceptedAnswer": { "@type": "Answer", "text": "Dla powietrza można użyć zależności ΦV ≈ 0,34 · V̇eff · Δθ, gdzie efektywny strumień V̇eff podaje się w m³/h. Strumień musi jednak wynikać z projektu i prawidłowo uwzględniać sposób wentylacji, odzysk, niezbilansowanie oraz infiltrację." }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperator całkowicie usuwa straty wentylacyjne?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rzeczywisty odzysk zależy od warunków pracy, strumieni i charakterystyki systemu, a ponadto pozostają infiltracja, niezbilansowanie oraz energia pomocnicza. Nie należy więc zerować straty wentylacyjnej ani redukować całego przepływu jedną katalogową sprawnością." }
        },
        {
          "@type": "Question",
          "name": "Czy moc projektową można pomnożyć przez 720 godzin, aby policzyć miesiąc?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie jako prognozę rzeczywistego zużycia. Takie działanie zakładałoby stałą moc projektową przez cały miesiąc. Do obliczenia energii potrzebny jest przebieg temperatur, zyski, harmonogramy, zachowanie budynku oraz sprawność systemu w zmiennych warunkach." }
        },
        {
          "@type": "Question",
          "name": "Czy wynik W/m² wystarcza do projektu ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Trzeba znać moc każdego pomieszczenia, powierzchnię rzeczywiście ogrzewaną, konstrukcję podłogi, opór okładziny, dopuszczalną temperaturę powierzchni, parametry wody, rozstawy, długości pętli i hydraulikę instalacji." }
        },
        {
          "@type": "Question",
          "name": "Czy laboratorium z artykułu zastępuje pełne OZC?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Laboratorium pokazuje zależności i przejrzysty model jednego pomieszczenia. Nie odtwarza pełnej geometrii budynku, wszystkich stref, szczegółowego gruntu, wentylacji, mostków ani kompletnej procedury projektowej." }
        }
      ],
      "inLanguage": "pl-PL"
    }
  ]
}
</script>

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

  var root = document.getElementById("rk-heat-tool");
  if (root === null) { return; }

  var currentPart = "wall";
  var latest = null;

  function element(id) {
    return document.getElementById(id);
  }

  function readNumber(id, fallback) {
    var input = element(id);
    if (input === null) { return fallback; }
    var parsed = Number(String(input.value).replace(",", "."));
    if (Number.isFinite(parsed) === false) { return fallback; }
    return parsed;
  }

  function nonNegative(id, fallback) {
    var value = readNumber(id, fallback);
    if (value < 0) { return 0; }
    return value;
  }

  function format(value, digits) {
    if (Number.isFinite(value) === false) { return "—"; }
    return value.toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  }

  function setText(id, value) {
    var output = element(id);
    if (output !== null) { output.textContent = value; }
  }

  function setBar(key, value, total, maximum) {
    var bar = element("rk-heat-bar-" + key);
    var label = element("rk-heat-val-" + key);
    var width = 0;
    var share = 0;
    if (maximum > 0) { width = value / maximum * 100; }
    if (total > 0) { share = value / total * 100; }
    if (bar !== null) { bar.style.width = Math.max(0, Math.min(100, width)) + "%"; }
    if (label !== null) { label.textContent = format(value, 0) + " W · " + format(share, 1) + "%"; }
  }

  function formulaFor(part, data) {
    if (data === null) { return; }
    var name = "";
    var equation = "";
    var note = "";

    if (part === "wall") {
      name = "Ściana netto";
      equation = "H = " + format(data.wallU, 2) + " × " + format(data.wallA, 1) + " = " + format(data.hWall, 2) + " W/K; Φ = " + format(data.hWall, 2) + " × " + format(data.delta, 1) + " = " + format(data.wall, 0) + " W";
      note = "Pole ściany musi być pomniejszone o otwory policzone osobno.";
    } else if (part === "window") {
      name = "Okno";
      equation = "H = " + format(data.windowU, 2) + " × " + format(data.windowA, 1) + " = " + format(data.hWindow, 2) + " W/K; Φ = " + format(data.hWindow, 2) + " × " + format(data.delta, 1) + " = " + format(data.window, 0) + " W";
      note = "W modelu stosujemy Uw całego okna, a nie Ug samej szyby.";
    } else if (part === "ceiling") {
      name = "Dach lub strop";
      equation = "H = " + format(data.ceilingU, 2) + " × " + format(data.ceilingA, 1) + " = " + format(data.hCeiling, 2) + " W/K; Φ = " + format(data.hCeiling, 2) + " × " + format(data.delta, 1) + " = " + format(data.ceiling, 0) + " W";
      note = "Przed obliczeniem trzeba ustalić, co znajduje się po drugiej stronie przegrody.";
    } else if (part === "floor") {
      name = "Podłoga — uproszczony model";
      equation = "H = " + format(data.floorU, 2) + " × " + format(data.floorA, 1) + " × " + format(data.floorB, 2) + " = " + format(data.hFloor, 2) + " W/K; Φ = " + format(data.hFloor, 2) + " × " + format(data.delta, 1) + " = " + format(data.floor, 0) + " W";
      note = "Współczynnik b służy tu do nauki struktury równania i nie zastępuje metody dla gruntu.";
    } else if (part === "bridge") {
      name = "Liniowe mostki cieplne";
      equation = "H_TB = Σ(ψ × l) = " + format(data.hBridge, 2) + " W/K; Φ_TB = " + format(data.hBridge, 2) + " × " + format(data.delta, 1) + " = " + format(data.bridge, 0) + " W";
      note = "Sumę H należy zbudować z konkretnych detali, ich wartości ψ i rzeczywistych długości.";
    } else {
      name = "Wentylacja i infiltracja";
      equation = "H_V = 0,34 × " + format(data.airflow, 0) + " = " + format(data.hVent, 2) + " W/K; Φ_V = " + format(data.hVent, 2) + " × " + format(data.delta, 1) + " = " + format(data.vent, 0) + " W";
      note = "Efektywny strumień powinien wynikać z projektu wentylacji i sposobu uwzględnienia odzysku oraz infiltracji.";
    }

    setText("rk-heat-formula-name", name);
    setText("rk-heat-formula-equation", equation);
    setText("rk-heat-formula-note", note);
  }

  function renderDiagnostics(data) {
    var container = element("rk-heat-diagnostics");
    if (container === null) { return; }
    container.textContent = "";
    var messages = [];

    if (data.roomArea <= 0) {
      messages.push({ type: "is-bad", text: "Powierzchnia pokoju musi być większa od zera, aby obliczyć wskaźnik W/m²." });
    }
    if (data.delta <= 0) {
      messages.push({ type: "is-bad", text: "Temperatura zewnętrzna nie jest niższa od wewnętrznej, dlatego model grzewczy daje Δθ = 0 K." });
    }
    if (data.hBridge === 0) {
      messages.push({ type: "", text: "Mostki mają H = 0 W/K. Upewnij się, że to świadome założenie, a nie brak danych o detalach." });
    }
    if (data.airflow === 0) {
      messages.push({ type: "", text: "Strumień powietrza wynosi 0 m³/h. Rzeczywisty model musi uwzględnić wentylację i infiltrację." });
    }
    messages.push({ type: "", text: "Podłoga jest tu liczona uproszczonym współczynnikiem b. Pełne obliczenie elementu na gruncie wymaga odrębnej metody." });
    messages.push({ type: "is-good", text: "Wynik " + format(data.total, 0) + " W jest mocą modelu przy Δθ = " + format(data.delta, 1) + " K. Nie jest miesięcznym zużyciem w kWh." });

    messages.forEach(function (message) {
      var item = document.createElement("div");
      item.className = "rk-heat-diagnostic";
      if (message.type !== "") { item.className += " " + message.type; }
      item.textContent = message.text;
      container.appendChild(item);
    });
  }

  function calculate() {
    var ti = readNumber("rk-heat-ti", 20);
    var te = readNumber("rk-heat-te", -20);
    var delta = ti - te;
    if (delta < 0) { delta = 0; }

    var roomArea = nonNegative("rk-heat-room-area", 20);
    var wallA = nonNegative("rk-heat-wall-a", 18);
    var wallU = nonNegative("rk-heat-wall-u", 0.20);
    var windowA = nonNegative("rk-heat-window-a", 4);
    var windowU = nonNegative("rk-heat-window-u", 0.90);
    var ceilingA = nonNegative("rk-heat-ceiling-a", 20);
    var ceilingU = nonNegative("rk-heat-ceiling-u", 0.15);
    var floorA = nonNegative("rk-heat-floor-a", 20);
    var floorU = nonNegative("rk-heat-floor-u", 0.20);
    var floorB = nonNegative("rk-heat-floor-b", 0.50);
    if (floorB > 1) { floorB = 1; }
    var hBridge = nonNegative("rk-heat-bridge-h", 3);
    var airflow = nonNegative("rk-heat-airflow", 30);

    var hWall = wallU * wallA;
    var hWindow = windowU * windowA;
    var hCeiling = ceilingU * ceilingA;
    var hFloor = floorU * floorA * floorB;
    var hVent = 0.34 * airflow;

    var wall = hWall * delta;
    var windowLoss = hWindow * delta;
    var ceiling = hCeiling * delta;
    var floor = hFloor * delta;
    var bridge = hBridge * delta;
    var vent = hVent * delta;
    var totalH = hWall + hWindow + hCeiling + hFloor + hBridge + hVent;
    var total = wall + windowLoss + ceiling + floor + bridge + vent;
    var wattsPerSquareMetre = null;
    if (roomArea > 0) { wattsPerSquareMetre = total / roomArea; }

    latest = {
      ti: ti,
      te: te,
      delta: delta,
      roomArea: roomArea,
      wallA: wallA,
      wallU: wallU,
      windowA: windowA,
      windowU: windowU,
      ceilingA: ceilingA,
      ceilingU: ceilingU,
      floorA: floorA,
      floorU: floorU,
      floorB: floorB,
      hBridge: hBridge,
      airflow: airflow,
      hWall: hWall,
      hWindow: hWindow,
      hCeiling: hCeiling,
      hFloor: hFloor,
      hVent: hVent,
      wall: wall,
      window: windowLoss,
      ceiling: ceiling,
      floor: floor,
      bridge: bridge,
      vent: vent,
      totalH: totalH,
      total: total,
      wattsPerSquareMetre: wattsPerSquareMetre
    };

    setText("rk-heat-out-delta", format(delta, 1) + " K");
    setText("rk-heat-out-h", format(totalH, 2) + " W/K");
    setText("rk-heat-out-w", format(total, 0) + " W");
    setText("rk-heat-out-kw", format(total / 1000, 2) + " kW");
    if (wattsPerSquareMetre === null) {
      setText("rk-heat-out-wm2", "—");
    } else {
      setText("rk-heat-out-wm2", format(wattsPerSquareMetre, 1) + " W/m²");
    }

    var values = [wall, windowLoss, ceiling, floor, bridge, vent];
    var maximum = Math.max.apply(null, values);
    setBar("wall", wall, total, maximum);
    setBar("window", windowLoss, total, maximum);
    setBar("ceiling", ceiling, total, maximum);
    setBar("floor", floor, total, maximum);
    setBar("bridge", bridge, total, maximum);
    setBar("vent", vent, total, maximum);

    var chart = element("rk-heat-live-chart");
    var nameInput = element("rk-heat-room-name");
    var roomName = "Pokój referencyjny";
    if (nameInput !== null) {
      if (nameInput.value.trim() !== "") { roomName = nameInput.value.trim(); }
    }
    if (chart !== null) { chart.setAttribute("aria-label", roomName + ": wykres sześciu składowych o łącznej mocy " + format(total, 0) + " W"); }

    formulaFor(currentPart, latest);
    renderDiagnostics(latest);
  }

  var numericInputs = root.querySelectorAll("input[type='number']");
  numericInputs.forEach(function (input) {
    input.addEventListener("input", calculate);
    input.addEventListener("change", calculate);
  });

  var nameField = element("rk-heat-room-name");
  if (nameField !== null) { nameField.addEventListener("input", calculate); }

  var calculateButton = element("rk-heat-calculate");
  if (calculateButton !== null) { calculateButton.addEventListener("click", calculate); }

  var tabs = root.querySelectorAll(".rk-heat-formula-tab");
  tabs.forEach(function (tab) {
    tab.addEventListener("click", function () {
      currentPart = tab.getAttribute("data-part") || "wall";
      tabs.forEach(function (candidate) {
        candidate.setAttribute("aria-pressed", candidate === tab ? "true" : "false");
      });
      formulaFor(currentPart, latest);
    });
  });

  calculate();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Jak oblicza się straty cieplne w budynkach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
