<?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 Normy i regulacje - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/normy-i-regulacje/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/normy-i-regulacje/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 07 Sep 2026 10:14:19 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Normy i regulacje - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/normy-i-regulacje/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-insulation-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-orange-soft: #fff2ec;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --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.76;
  }

  #rk-insulation-guide,
  #rk-insulation-guide * {
    box-sizing: border-box;
  }

  #rk-insulation-guide img,
  #rk-insulation-guide svg {
    max-width: 100%;
  }

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

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

  #rk-insulation-guide button,
  #rk-insulation-guide summary,
  #rk-insulation-guide a {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4,
  #rk-insulation-guide p,
  #rk-insulation-guide ul,
  #rk-insulation-guide ol,
  #rk-insulation-guide blockquote {
    margin-top: 0;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4 {
    color: var(--rk-dark);
    line-height: 1.18;
    letter-spacing: -0.025em;
  }

  #rk-insulation-guide h2 {
    margin-bottom: 22px;
    font-size: clamp(30px, 4vw, 48px);
    scroll-margin-top: 30px;
  }

  #rk-insulation-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(22px, 2.4vw, 29px);
  }

  #rk-insulation-guide h4 {
    margin-bottom: 9px;
    font-size: 20px;
  }

  #rk-insulation-guide p:last-child,
  #rk-insulation-guide ul:last-child,
  #rk-insulation-guide ol:last-child {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 28px 80px rgba(16, 37, 54, 0.11);
  }

  #rk-insulation-guide .rk-ins-progress-track {
    position: sticky;
    z-index: 20;
    top: 0;
    height: 5px;
    background: rgba(255, 255, 255, 0.2);
  }

  #rk-insulation-guide .rk-ins-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
  }

  #rk-insulation-guide .rk-ins-hero {
    position: relative;
    overflow: hidden;
    padding: 62px 58px 54px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 15%, rgba(40, 201, 218, 0.24), transparent 28%),
      radial-gradient(circle at 78% 105%, rgba(255, 116, 56, 0.24), transparent 34%),
      linear-gradient(135deg, #0f2637 0%, #123f55 64%, #174c5c 100%);
  }

  #rk-insulation-guide .rk-ins-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -140px;
    width: 420px;
    height: 420px;
    border: 38px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
  }

  #rk-insulation-guide .rk-ins-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 920px;
  }

  #rk-insulation-guide .rk-ins-eyebrow,
  #rk-insulation-guide .rk-ins-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-eyebrow {
    color: #91f4ff;
  }

  #rk-insulation-guide .rk-ins-eyebrow b {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.14);
  }

  #rk-insulation-guide .rk-ins-hero-title {
    max-width: 900px;
    margin-bottom: 20px;
    color: var(--rk-white);
    font-size: clamp(38px, 6vw, 68px);
    font-weight: 950;
    line-height: 1.02;
    letter-spacing: -0.05em;
  }

  #rk-insulation-guide .rk-ins-hero-lead {
    max-width: 830px;
    margin-bottom: 26px;
    color: #dcecf2;
    font-size: clamp(19px, 2.3vw, 24px);
    line-height: 1.55;
  }

  #rk-insulation-guide .rk-ins-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-insulation-guide .rk-ins-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 999px;
    color: #e7f7fa;
    background: rgba(255, 255, 255, 0.07);
    font-size: 13px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 24px 32px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-nav strong {
    display: block;
    width: 100%;
    margin-bottom: 2px;
    color: var(--rk-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-nav a:hover,
  #rk-insulation-guide .rk-ins-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-1px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-section {
    padding: 64px 58px;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-insulation-guide .rk-ins-section:nth-of-type(even) {
    background: #fbfdfe;
  }

  #rk-insulation-guide .rk-ins-intro {
    max-width: 930px;
    margin-bottom: 30px;
    color: var(--rk-text);
    font-size: 20px;
  }

  #rk-insulation-guide .rk-ins-answer {
    display: grid;
    grid-template-columns: 1.45fr 0.8fr;
    overflow: hidden;
    margin: 30px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
  }

  #rk-insulation-guide .rk-ins-answer-main,
  #rk-insulation-guide .rk-ins-answer-side {
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-answer-main {
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-answer-side {
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-answer-side p {
    color: #dcebf0;
  }

  #rk-insulation-guide .rk-ins-formula {
    margin: 28px 0;
    padding: 25px 28px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-dark);
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-formula strong {
    display: block;
    margin-bottom: 8px;
    color: #8ff5ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(21px, 3vw, 31px);
    letter-spacing: -0.03em;
  }

  #rk-insulation-guide .rk-ins-formula span {
    color: #d9e8ed;
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-grid-2,
  #rk-insulation-guide .rk-ins-grid-3,
  #rk-insulation-guide .rk-ins-grid-4 {
    display: grid;
    gap: 18px;
    margin: 28px 0;
  }

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

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

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

  #rk-insulation-guide .rk-ins-card,
  #rk-insulation-guide .rk-ins-location,
  #rk-insulation-guide .rk-ins-error,
  #rk-insulation-guide .rk-ins-step {
    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, 0.05);
  }

  #rk-insulation-guide .rk-ins-card-number,
  #rk-insulation-guide .rk-ins-error b {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-card h3,
  #rk-insulation-guide .rk-ins-location h3,
  #rk-insulation-guide .rk-ins-error h3,
  #rk-insulation-guide .rk-ins-step h3 {
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-card p,
  #rk-insulation-guide .rk-ins-location p,
  #rk-insulation-guide .rk-ins-error p,
  #rk-insulation-guide .rk-ins-step p {
    color: var(--rk-text);
    font-size: 16px;
  }

  #rk-insulation-guide .rk-ins-location {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(2) {
    border-top-color: var(--rk-green);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(3) {
    border-top-color: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(4) {
    border-top-color: var(--rk-purple);
  }

  #rk-insulation-guide .rk-ins-callout {
    margin: 28px 0;
    padding: 24px 26px;
    border: 1px solid #eed68d;
    border-radius: 18px;
    background: var(--rk-yellow-soft);
  }

  #rk-insulation-guide .rk-ins-callout strong {
    display: block;
    margin-bottom: 7px;
    color: #78550b;
    font-size: 18px;
  }

  #rk-insulation-guide .rk-ins-callout p {
    color: #6f5a25;
  }

  #rk-insulation-guide .rk-ins-table-wrap {
    margin: 30px 0;
  }

  #rk-insulation-guide .rk-ins-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-table th,
  #rk-insulation-guide .rk-ins-table td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-insulation-guide .rk-ins-table th:last-child,
  #rk-insulation-guide .rk-ins-table td:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-table thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 13px;
    letter-spacing: 0.035em;
  }

  #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-table-caption {
    margin-top: 10px;
    color: var(--rk-muted);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-tool {
    overflow: hidden;
    margin-top: 30px;
    border-radius: 24px;
    color: var(--rk-white);
    background: var(--rk-dark);
    box-shadow: 0 24px 65px rgba(16, 37, 54, 0.18);
  }

  #rk-insulation-guide .rk-ins-tool-head {
    padding: 34px 36px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    background:
      radial-gradient(circle at 93% 15%, rgba(40, 201, 218, 0.2), transparent 25%),
      linear-gradient(135deg, #123146, #16485a);
  }

  #rk-insulation-guide .rk-ins-tool-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
    font-size: clamp(27px, 4vw, 40px);
  }

  #rk-insulation-guide .rk-ins-tool-head p {
    max-width: 880px;
    color: #d7e9ef;
  }

  #rk-insulation-guide .rk-ins-tool-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    grid-template-areas:
      "form results"
      "form cross-section"
      "chart diagnostics";
    gap: 20px;
    align-items: start;
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-tool-column {
    display: grid;
    gap: 18px;
    align-content: start;
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
    grid-area: form;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
    height: 100%;
  }

  #rk-insulation-guide .rk-ins-tool-column-right {
    display: contents;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1) {
    grid-area: results;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2) {
    grid-area: cross-section;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
    grid-area: chart;
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
    grid-area: diagnostics;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
    flex: 1 1 auto;
    min-height: 260px;
    height: 100%;
    aspect-ratio: auto;
  }

  #rk-insulation-guide .rk-ins-tool-panel {
    min-width: 0;
    padding: 24px;
    border: 1px solid rgba(160, 213, 228, 0.25);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
  }

  #rk-insulation-guide .rk-ins-tool-panel h4 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-tool-panel > p {
    margin-bottom: 18px;
    color: #bfd5de;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-subhead {
    margin: 24px 0 15px;
    padding-top: 20px;
    border-top: 1px solid rgba(160, 213, 228, 0.22);
    color: #78ecf7;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.085em;
    text-transform: uppercase;
  }

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

  #rk-insulation-guide .rk-ins-field {
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-field.is-wide {
    grid-column: 1 / -1;
  }

  #rk-insulation-guide .rk-ins-field[hidden] {
    display: none;
  }

  #rk-insulation-guide .rk-ins-field label {
    display: block;
    margin-bottom: 7px;
    color: #e8f6f9;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-insulation-guide .rk-ins-field input,
  #rk-insulation-guide .rk-ins-field select {
    width: 100%;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid #b8ccd4;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-white);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-field input:focus,
  #rk-insulation-guide .rk-ins-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 4px rgba(40, 201, 218, 0.15);
  }

  #rk-insulation-guide .rk-ins-field small {
    display: block;
    margin-top: 6px;
    color: #9fb8c3;
    font-size: 11px;
    line-height: 1.4;
  }

  #rk-insulation-guide .rk-ins-layer-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
  }

  #rk-insulation-guide .rk-ins-layer-label strong {
    color: var(--rk-white);
    font-size: 17px;
  }

  #rk-insulation-guide .rk-ins-layer-label span {
    padding: 5px 9px;
    border-radius: 999px;
    color: #9cf4fc;
    background: rgba(40, 201, 218, 0.12);
    font-size: 11px;
    font-weight: 900;
  }

  #rk-insulation-guide .rk-ins-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
  }

  #rk-insulation-guide .rk-ins-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 13px;
    background: rgba(4, 22, 34, 0.35);
  }

  #rk-insulation-guide .rk-ins-result span {
    display: block;
    margin-bottom: 5px;
    color: #9eb7c1;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.045em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-result strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-white);
    font-size: clamp(20px, 3vw, 29px);
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-result small {
    display: block;
    margin-top: 5px;
    color: #8fa8b3;
    font-size: 10px;
  }

  #rk-insulation-guide .rk-ins-result.is-accent strong {
    color: #75edf8;
  }

  #rk-insulation-guide .rk-ins-result.is-warning strong {
    color: #ffd26d;
  }

  #rk-insulation-guide .rk-ins-result.is-danger strong {
    color: #ff968a;
  }

  #rk-insulation-guide .rk-ins-result.is-good strong {
    color: #79efc7;
  }

  #rk-insulation-guide .rk-ins-status {
    margin-top: 14px;
    padding: 15px 17px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 0 12px 12px 0;
    color: #d9edf2;
    background: rgba(40, 201, 218, 0.09);
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-status.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.13);
  }

  #rk-insulation-guide .rk-ins-section-stack {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 370px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #eef4f6;
  }

  #rk-insulation-guide .rk-ins-stack-layer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 34px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(16, 37, 54, 0.16);
    color: var(--rk-dark);
    font-size: 12px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-stack-layer small {
    color: inherit;
    font-size: 10px;
    opacity: 0.78;
  }

  #rk-insulation-guide .rk-ins-stack-finish {
    background: repeating-linear-gradient(90deg, #cba36f 0, #cba36f 28px, #b78d57 29px, #b78d57 31px);
  }

  #rk-insulation-guide .rk-ins-stack-heating {
    position: relative;
    background: #d9d4cd;
  }

  #rk-insulation-guide .rk-ins-stack-heating::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 14px;
    height: 10px;
    border-radius: 999px;
    background: repeating-linear-gradient(90deg, var(--rk-orange) 0, var(--rk-orange) 35px, transparent 35px, transparent 67px);
    opacity: 0.88;
  }

  #rk-insulation-guide .rk-ins-stack-layer2 {
    background: #dcecf2;
  }

  #rk-insulation-guide .rk-ins-stack-layer1 {
    background: #edf5f7;
  }

  #rk-insulation-guide .rk-ins-stack-service {
    background: #becbd0;
  }

  #rk-insulation-guide .rk-ins-stack-base {
    min-height: 46px;
    border-bottom: 0;
    color: var(--rk-white);
    background: #667b84;
  }

  #rk-insulation-guide .rk-ins-chart-wrap {
    overflow: hidden;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #f8fbfc;
  }

  #rk-insulation-guide .rk-ins-chart {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 680 / 330;
  }

  #rk-insulation-guide .rk-ins-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 12px 16px 15px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 11px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-insulation-guide .rk-ins-chart-legend i {
    width: 20px;
    height: 4px;
    border-radius: 99px;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(2) i {
    background: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(3) i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-yellow);
  }

  #rk-insulation-guide .rk-ins-diagnostics {
    display: grid;
    gap: 9px;
  }

  #rk-insulation-guide .rk-ins-diagnostic {
    padding: 13px 14px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 10px 10px 0;
    color: #d7e9ef;
    background: rgba(40, 201, 218, 0.08);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-warning {
    border-left-color: var(--rk-yellow);
    background: rgba(231, 173, 47, 0.1);
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.12);
  }

  #rk-insulation-guide .rk-ins-tool-note {
    margin: 0;
    padding: 0 28px 28px;
    color: #9fb6c0;
    font-size: 12px;
  }

  #rk-insulation-guide .rk-ins-mid-cta,
  #rk-insulation-guide .rk-ins-final-cta {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 46px 58px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 20%, rgba(255, 116, 56, 0.25), transparent 27%),
      linear-gradient(135deg, #12384d, #0f2b3e);
  }

  #rk-insulation-guide .rk-ins-mid-cta h3,
  #rk-insulation-guide .rk-ins-final-cta .rk-ins-cta-title {
    max-width: 820px;
    margin-bottom: 14px;
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
  }

  #rk-insulation-guide .rk-ins-mid-cta p,
  #rk-insulation-guide .rk-ins-final-cta p {
    max-width: 900px;
    color: #d9e9ee;
  }

  #rk-insulation-guide .rk-ins-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 18px;
    padding: 14px 23px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-orange);
    box-shadow: 0 12px 28px rgba(255, 116, 56, 0.27);
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-cta-button:hover,
  #rk-insulation-guide .rk-ins-cta-button:focus-visible {
    color: var(--rk-white);
    background: #ef5f27;
    transform: translateY(-2px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-disclosure {
    display: block;
    max-width: 780px;
    margin-top: 12px;
    color: #9fb7c0;
    font-size: 11px;
  }

  #rk-insulation-guide .rk-ins-example {
    margin: 28px 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), var(--rk-white));
  }

  #rk-insulation-guide .rk-ins-example h3 {
    font-size: 24px;
  }

  #rk-insulation-guide .rk-ins-example-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-insulation-guide .rk-ins-example-stat {
    padding: 15px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-example-stat span {
    display: block;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-example-stat strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 23px;
  }

  #rk-insulation-guide .rk-ins-error {
    border-top: 5px solid var(--rk-red);
    background: linear-gradient(180deg, var(--rk-red-soft), var(--rk-white) 56%);
  }

  #rk-insulation-guide .rk-ins-error b {
    color: var(--rk-red);
  }

  #rk-insulation-guide .rk-ins-steps {
    display: grid;
    gap: 14px;
    margin: 28px 0;
    counter-reset: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    counter-increment: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step::before {
    content: counter(rk-ins-step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 19px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-faq {
    display: grid;
    gap: 12px;
    margin-top: 28px;
  }

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

  #rk-insulation-guide .rk-ins-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.4;
    list-style: none;
  }

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

  #rk-insulation-guide .rk-ins-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

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

  #rk-insulation-guide .rk-ins-faq-answer {
    padding: 0 20px 20px;
    color: var(--rk-text);
  }

  #rk-insulation-guide .rk-ins-source-box {
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-source-box ul {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-source-box li + li {
    margin-top: 9px;
  }

  #rk-insulation-guide .rk-ins-update {
    margin-top: 16px;
    color: var(--rk-muted);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-insulation-guide .rk-ins-author {
    margin: 42px 58px;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 16px 45px rgba(16, 37, 54, 0.08);
  }

  #rk-insulation-guide .rk-ins-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  #rk-insulation-guide .rk-ins-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 30px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-insulation-guide .rk-ins-author-title {
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 950;
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-author-head p {
    margin: 7px 0 0;
    color: #cfe2e8;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-author-mark {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #8df2fc;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-insulation-guide .rk-ins-author-layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
  }

  #rk-insulation-guide .rk-ins-author-side {
    padding: 28px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(16, 37, 54, 0.16);
  }

  #rk-insulation-guide .rk-ins-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-insulation-guide .rk-ins-author-name {
    color: var(--rk-dark);
    font-size: 22px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-author-role {
    margin-top: 6px;
    color: var(--rk-text);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-author-social-label {
    margin-top: 20px;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }

  #rk-insulation-guide .rk-ins-author-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-insulation-guide .rk-ins-author-main {
    padding: 30px;
  }

  #rk-insulation-guide .rk-ins-author-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 25px 25px 25px 68px;
    border: 0;
    border-radius: 16px;
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-author-quote::before {
    content: "„";
    position: absolute;
    left: 22px;
    top: 1px;
    color: var(--rk-blue);
    font-family: Georgia, serif;
    font-size: 76px;
    line-height: 1;
  }

  #rk-insulation-guide .rk-ins-author-quote p {
    color: var(--rk-dark);
    font-size: 18px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 13px 13px 0 0;
  }

  #rk-insulation-guide .rk-ins-author-tab {
    padding: 12px 10px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-dark);
    background: var(--rk-soft);
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-tab:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-author-panel {
    display: none;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 13px 13px;
    color: var(--rk-text);
    font-size: 15px;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout .rk-ins-author-panel-about,
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout .rk-ins-author-panel-exp,
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout .rk-ins-author-panel-sites {
    display: block;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout label[for="rk-ins-author-about"],
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout label[for="rk-ins-author-exp"],
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout label[for="rk-ins-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-insulation-guide .rk-ins-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 13px;
  }

  #rk-insulation-guide .rk-ins-site-links a {
    padding: 7px 10px;
    border-radius: 8px;
    background: var(--rk-soft);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
  }

  @media (max-width: 980px) {
    #rk-insulation-guide .rk-ins-tool-grid,
    #rk-insulation-guide .rk-ins-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-areas: none;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
      grid-area: auto;
      align-self: start;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      align-content: start;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel {
      grid-area: auto;
      align-self: start;
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
      grid-area: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
      min-height: 0;
      height: auto;
      aspect-ratio: 680 / 330;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: 1 / -1;
    }

    #rk-insulation-guide .rk-ins-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

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

  @media (max-width: 760px) {
    #rk-insulation-guide {
      margin: 0 auto 45px;
      font-size: 17px;
    }

    #rk-insulation-guide .rk-ins-shell {
      border-right: 0;
      border-left: 0;
      border-radius: 0;
    }

    #rk-insulation-guide .rk-ins-hero,
    #rk-insulation-guide .rk-ins-section,
    #rk-insulation-guide .rk-ins-mid-cta,
    #rk-insulation-guide .rk-ins-final-cta {
      padding: 42px 20px;
    }

    #rk-insulation-guide .rk-ins-hero-title {
      font-size: clamp(36px, 12vw, 53px);
    }

    #rk-insulation-guide .rk-ins-nav {
      gap: 8px;
      padding: 18px 16px;
    }

    #rk-insulation-guide .rk-ins-nav a {
      flex: 1 1 calc(50% - 8px);
      justify-content: center;
      min-width: 0;
      padding: 9px 10px;
      border-radius: 12px;
      font-size: 12px;
      text-align: center;
    }

    #rk-insulation-guide .rk-ins-answer,
    #rk-insulation-guide .rk-ins-grid-2,
    #rk-insulation-guide .rk-ins-grid-3,
    #rk-insulation-guide .rk-ins-grid-4,
    #rk-insulation-guide .rk-ins-example-grid,
    #rk-insulation-guide .rk-ins-tool-column-right {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-head {
      padding: 28px 20px 24px;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-columns: minmax(0, 1fr);
      padding: 16px;
    }

    #rk-insulation-guide .rk-ins-tool-panel {
      padding: 19px;
    }

    #rk-insulation-guide .rk-ins-fields,
    #rk-insulation-guide .rk-ins-results {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-field.is-wide {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-note {
      padding: 0 18px 22px;
    }

    #rk-insulation-guide .rk-ins-table,
    #rk-insulation-guide .rk-ins-table tbody,
    #rk-insulation-guide .rk-ins-table tr,
    #rk-insulation-guide .rk-ins-table td {
      display: block;
      width: 100%;
    }

    #rk-insulation-guide .rk-ins-table {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-insulation-guide .rk-ins-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-insulation-guide .rk-ins-table tr {
      overflow: hidden;
      margin-bottom: 14px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
      box-shadow: 0 8px 22px rgba(16, 37, 54, 0.05);
    }

    #rk-insulation-guide .rk-ins-table td,
    #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.15fr);
      gap: 12px;
      padding: 12px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
      overflow-wrap: anywhere;
    }

    #rk-insulation-guide .rk-ins-table td::before {
      content: attr(data-label);
      color: var(--rk-muted);
      font-size: 10px;
      font-weight: 950;
      letter-spacing: 0.055em;
      text-transform: uppercase;
    }

    #rk-insulation-guide .rk-ins-table tr td:last-child {
      border-bottom: 0;
    }

    #rk-insulation-guide .rk-ins-step {
      grid-template-columns: 42px minmax(0, 1fr);
      gap: 13px;
      padding: 17px;
    }

    #rk-insulation-guide .rk-ins-step::before {
      width: 40px;
      height: 40px;
      border-radius: 12px;
    }

    #rk-insulation-guide .rk-ins-author {
      margin: 30px 16px;
    }

    #rk-insulation-guide .rk-ins-author-head {
      display: block;
      padding: 25px 22px;
    }

    #rk-insulation-guide .rk-ins-author-mark {
      display: inline-flex;
      margin-top: 17px;
    }

    #rk-insulation-guide .rk-ins-author-main {
      padding: 24px 18px;
    }

    #rk-insulation-guide .rk-ins-author-quote {
      padding: 65px 20px 22px;
    }

    #rk-insulation-guide .rk-ins-author-quote::before {
      left: 20px;
      top: 3px;
    }

    #rk-insulation-guide .rk-ins-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-author-tab {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-insulation-guide .rk-ins-cta-button {
      width: 100%;
    }
  }

  @media (max-width: 410px) {
    #rk-insulation-guide .rk-ins-nav a {
      flex-basis: 100%;
    }

    #rk-insulation-guide .rk-ins-table td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-insulation-guide *,
    #rk-insulation-guide *::before,
    #rk-insulation-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-insulation-guide" aria-label="Ile styropianu pod ogrzewanie podłogowe — poradnik i kalkulator">
  <div class="rk-ins-shell">
    <div class="rk-ins-progress-track" aria-hidden="true"><div class="rk-ins-progress" id="rk-ins-progress"></div></div>

    <header class="rk-ins-hero">
      <div class="rk-ins-hero-inner">
        <span class="rk-ins-eyebrow"><b aria-hidden="true"></b> Izolacja podłogi • aktualizacja 2026</span>
        <div class="rk-ins-hero-title">Nie dobieraj styropianu z jednej liczby w centymetrach</div>
        <p class="rk-ins-hero-lead">Sprawdź osobno opór cieplny izolacji, geometrię przegrody, wysokość warstw i parametry mechaniczne płyt. Następnie oblicz ilość materiału bez udawania, że prosty kalkulator zastępuje projekt podłogi na gruncie.</p>
        <div class="rk-ins-meta">
          <span><i aria-hidden="true"></i> Czytanie: około 22 minuty</span>
          <span><i aria-hidden="true"></i> Jeden analizator interaktywny</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 30 sierpnia 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-ins-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty — wszystkie główne części poradnika</strong>
      <a href="#rk-ins-answer">Szybka odpowiedź</a>
      <a href="#rk-ins-no-single-value">Dlaczego nie jedna grubość?</a>
      <a href="#rk-ins-law">Wymagania prawne</a>
      <a href="#rk-ins-three-checks">Trzy kontrole</a>
      <a href="#rk-ins-locations">Miejsce podłogi</a>
      <a href="#rk-ins-analyzer">Analizator</a>
      <a href="#rk-ins-results-reading">Jak czytać wynik?</a>
      <a href="#rk-ins-label">Etykieta i DoP</a>
      <a href="#rk-ins-materials">EPS, grafit i XPS</a>
      <a href="#rk-ins-height">Wysokość warstw</a>
      <a href="#rk-ins-layers">Jedna czy dwie warstwy?</a>
      <a href="#rk-ins-services">Instalacje w podłodze</a>
      <a href="#rk-ins-membranes">Folia i izolacje</a>
      <a href="#rk-ins-quantity">Ilość materiału</a>
      <a href="#rk-ins-heating-design">Wpływ na podłogówkę</a>
      <a href="#rk-ins-errors">Najczęstsze błędy</a>
      <a href="#rk-ins-checklist">Checklista</a>
      <a href="#rk-ins-faq">FAQ</a>
      <a href="#rk-ins-sources">Źródła</a>
    </nav>

    <main>
      <section class="rk-ins-section" id="rk-ins-answer">
        <span class="rk-ins-kicker">Odpowiedź w 60 sekund</span>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Nie ma jednej grubości właściwej dla każdego domu. Na podłodze na gruncie 15 cm EPS jest popularnym rozwiązaniem, ale nie stanowi uniwersalnego minimum wpisanego do przepisów. Wynik zależy od deklarowanej lambdy, geometrii podłogi, połączenia ze ścianami, pozostałych warstw, wymagań cieplnych i obciążeń.</p>

        <div class="rk-ins-answer">
          <div class="rk-ins-answer-main">
            <h3>Najpierw określ wymaganie, później centymetry</h3>
            <p><strong>Dla podłogi na gruncie trzeba sprawdzić całą przegrodę, a nie samą płytę EPS.</strong> Osobno kontroluje się opór izolacji pod systemem grzewczym oraz właściwości mechaniczne materiału pod jastrychem.</p>
          </div>
          <div class="rk-ins-answer-side">
            <h3>Co można policzyć od razu?</h3>
            <p>Z grubości i deklarowanej lambdy można wiarygodnie policzyć opór samej izolacji. Z powierzchni i grubości obliczymy także m³ materiału oraz liczbę paczek.</p>
          </div>
        </div>

        <div class="rk-ins-formula" aria-label="Wzór na opór cieplny warstwy izolacji">
          <strong>R<sub>izol</sub> = Σ(d<sub>i</sub> ÷ λ<sub>i</sub>)</strong>
          <span>Grubość d podajemy w metrach, a deklarowaną przewodność cieplną λ w W/(mK). Wynik R otrzymujemy w m²K/W.</span>
        </div>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Grubość</th><th>R przy λ = 0,036</th><th>R przy λ = 0,031</th><th>Co oznacza wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Grubość"><strong>10 cm</strong></td><td data-label="R • λ 0,036">2,78 m²K/W</td><td data-label="R • λ 0,031">3,23 m²K/W</td><td data-label="Interpretacja">Opór samej izolacji, bez oceny całej podłogi.</td></tr>
              <tr><td data-label="Grubość"><strong>15 cm</strong></td><td data-label="R • λ 0,036">4,17 m²K/W</td><td data-label="R • λ 0,031">4,84 m²K/W</td><td data-label="Interpretacja">Ta sama grubość może dawać inny opór zależnie od λ.</td></tr>
              <tr><td data-label="Grubość"><strong>20 cm</strong></td><td data-label="R • λ 0,036">5,56 m²K/W</td><td data-label="R • λ 0,031">6,45 m²K/W</td><td data-label="Interpretacja">Większe R nie potwierdza jeszcze nośności ani zgodności całej przegrody.</td></tr>
            </tbody>
          </table>
          <p class="rk-ins-table-caption">Wartości obliczono wyłącznie dla jednorodnej warstwy izolacyjnej. Nie są gotowym współczynnikiem U podłogi na gruncie.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-no-single-value">
        <span class="rk-ins-kicker">Centymetry bez kontekstu wprowadzają w błąd</span>
        <h2>Dlaczego nie istnieje jedna prawidłowa grubość styropianu?</h2>
        <p class="rk-ins-intro">Pytanie „10 czy 15 cm?” jest dopiero początkiem. Dziesięć centymetrów płyty o λ = 0,031 ma inny opór niż 10 cm materiału o λ = 0,040, a podłoga nad salonem pracuje w innych warunkach niż podłoga na gruncie albo strop nad nieogrzewanym garażem.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">01 • Ciepło</span><h3>Lambda i wszystkie warstwy</h3><p>Liczy się deklarowana przewodność materiału, jego grubość oraz układ całej przegrody. Sama nazwa „biały” lub „grafitowy” nie jest parametrem obliczeniowym.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">02 • Geometria</span><h3>Powierzchnia i obwód</h3><p>W podłodze na gruncie znaczenie ma relacja powierzchni do obwodu wystawionego oraz rozwiązanie krawędzi. Dwa domy po 120 m² nie muszą mieć identycznej wymiany ciepła.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">03 • Konstrukcja</span><h3>Obciążenia i wysokość</h3><p>Płyta musi przenosić przewidziane obciążenia, a cały układ zmieścić okładzinę, jastrych lub suchy system, instalacje i izolację.</p></article>
        </div>

        <p>Dlatego nie będziemy wybierać materiału z samej nazwy źródła ciepła. Podłoga nie „wie”, czy wodę ogrzała pompa ciepła, kocioł gazowy czy inne urządzenie. Źródło wpływa na pożądane temperatury pracy, ale nie wyznacza automatycznie grubości i klasy izolacji.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-law">
        <span class="rk-ins-kicker">Warunki techniczne określają efekt</span>
        <h2>Co rzeczywiście mówią przepisy o podłodze na gruncie?</h2>
        <p class="rk-ins-intro">W obowiązującym tekście warunków technicznych dla podłogi na gruncie w pomieszczeniu o temperaturze obliczeniowej co najmniej 16°C podano maksymalną wartość współczynnika przenikania ciepła U<sub>C(max)</sub> równą 0,30 W/(m²K). Przepis nie zapisuje jednej obowiązkowej grubości ani klasy EPS.</p>

        <div class="rk-ins-formula" aria-label="Maksymalny współczynnik przenikania ciepła podłogi na gruncie">
          <strong>U<sub>C(max)</sub> = 0,30 W/(m²K)</strong>
          <span>Podłoga na gruncie w pomieszczeniu ogrzewanym do temperatury obliczeniowej co najmniej 16°C — zgodnie z obowiązującym tekstem warunków technicznych.</span>
        </div>

        <div class="rk-ins-callout">
          <strong>To nie jest proste U = 1/R izolacji</strong>
          <p>Metodyka dla przegród stykających się z gruntem uwzględnia geometrię podłogi, obwód wystawiony, grunt i rozwiązanie krawędzi. Nie wolno odjąć umownego „oporu gruntu” i na tej podstawie ogłosić normowej liczby centymetrów.</p>
        </div>

        <p>W praktyce należy skoordynować projekt architektoniczno-budowlany, charakterystykę energetyczną, detal podłogi i obliczenia cieplne. Jeżeli zmieniasz materiał albo grubość na budowie, porównuj opór i właściwości produktu, ale nie zastępuj tym weryfikacji całej przegrody.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-three-checks">
        <span class="rk-ins-kicker">Nie mieszaj trzech różnych ocen</span>
        <h2>Współczynnik U, opór R i nośność — trzy osobne kontrole</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Przegroda</span><h3>Współczynnik U</h3><p>Opisuje przenikanie ciepła przez całą przegrodę w określonych warunkach. Dla podłogi na gruncie wymaga metody uwzględniającej kontakt z gruntem i geometrię.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Warstwa</span><h3>Opór R izolacji</h3><p>Wynika z grubości i lambdy każdej warstwy. Można go sumować dla kilku materiałów, ale sam nie jest kompletnym U podłogi na gruncie.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Konstrukcja</span><h3>Parametry mechaniczne</h3><p>CS(10) opisuje naprężenie przy 10-procentowym odkształceniu. Długotrwałą pracę trzeba oceniać razem z obciążeniem, pełnym kodem produktu i — gdy jest deklarowane — pełzaniem przy ściskaniu.</p></article>
        </div>

        <p><strong>Wysoki opór cieplny nie gwarantuje odpowiedniej nośności, a wysoka wartość CS(10) nie gwarantuje wymaganej izolacyjności.</strong> Produkt musi spełnić oba zestawy wymagań oraz być przeznaczony do planowanego zastosowania.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-locations">
        <span class="rk-ins-kicker">Najpierw ustal, co znajduje się pod podłogą</span>
        <h2>Podłoga na gruncie, piętro, piwnica czy przestrzeń zewnętrzna?</h2>
        <p class="rk-ins-intro">To samo 5, 10 albo 15 cm będzie miało inne znaczenie zależnie od warunków po drugiej stronie przegrody.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-location"><h3>Podłoga na gruncie</h3><p>Potrzebna jest ocena całej przegrody zgodnie z metodyką dla kontaktu z gruntem. Ważne są powierzchnia, obwód zewnętrzny, warstwy, grunt i detal obwodowy.</p></article>
          <article class="rk-ins-location"><h3>Strop nad ogrzewanym pomieszczeniem</h3><p>Różnica temperatur jest zwykle mała. O doborze warstw mogą silniej decydować akustyka, wymagania podłogi pływającej, instalacje i dostępna wysokość.</p></article>
          <article class="rk-ins-location"><h3>Strop nad piwnicą lub garażem</h3><p>Temperatura poniżej stropu może być znacznie niższa. Wymagania cieplne oraz rozwiązanie mostków trzeba sprawdzić dla konkretnej przegrody.</p></article>
          <article class="rk-ins-location"><h3>Podłoga nad przejazdem lub powietrzem</h3><p>Przegroda oddziela wnętrze od środowiska zewnętrznego. Nie należy stosować do niej uproszczeń właściwych dla stropu między ogrzewanymi pomieszczeniami.</p></article>
        </div>

        <p>W remontowanym budynku dochodzą ograniczenia progów, schodów i istniejących drzwi. Zobacz również, jak planować <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">ogrzewanie podłogowe w remontowanym budynku</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-analyzer">
        <span class="rk-ins-kicker">Jedno narzędzie zamiast kilku pozornie dokładnych kalkulatorów</span>
        <h2>Interaktywny analizator izolacji i warstw podłogi</h2>
        <p class="rk-ins-intro">Wpisz dane z projektu i etykiety materiału. Narzędzie policzy opór samej izolacji, ilość płyt, paczki i bilans wysokości. Dla podłogi na gruncie pokaże również wymiar charakterystyczny B′, ale celowo nie poda uproszczonego współczynnika U.</p>

        <div class="rk-ins-tool" id="rk-ins-tool">
          <div class="rk-ins-tool-head">
            <h3>Policz R izolacji, m³, paczki i wysokość</h3>
            <p>Każda wartość pozostaje edytowalna. Lambdę, CS(10) i wydajność paczki przepisz z dokumentacji konkretnego materiału, a wysokości z przekroju architektonicznego.</p>
          </div>

          <div class="rk-ins-tool-grid">
            <div class="rk-ins-tool-column">
              <div class="rk-ins-tool-panel">
                <h4>Dane podłogi</h4>
                <p>Najpierw określ położenie przegrody oraz rzeczywistą przestrzeń pomiędzy podłożem a gotową posadzką.</p>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field is-wide">
                    <label for="rk-ins-floor-type">Położenie analizowanej podłogi</label>
                    <select id="rk-ins-floor-type">
                      <option value="ground">Podłoga na gruncie</option>
                      <option value="heated">Strop nad ogrzewanym pomieszczeniem</option>
                      <option value="unheated">Strop nad nieogrzewaną piwnicą lub garażem</option>
                      <option value="outside">Podłoga nad przejazdem lub powietrzem zewnętrznym</option>
                    </select>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-area">Powierzchnia podłogi [m²]</label>
                    <input type="number" id="rk-ins-area" min="1" max="2000" step="1" value="120" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field" id="rk-ins-perimeter-wrap">
                    <label for="rk-ins-perimeter">Obwód wystawiony P [m]</label>
                    <input type="number" id="rk-ins-perimeter" min="1" max="1000" step="0.1" value="46" inputmode="decimal">
                    <small>Obwód oddzielający ogrzewaną podłogę od środowiska zewnętrznego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-available-height">Dostępna wysokość od podłoża [mm]</label>
                    <input type="number" id="rk-ins-available-height" min="20" max="1000" step="1" value="230" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-finish">Okładzina z klejem lub podkładem [mm]</label>
                    <input type="number" id="rk-ins-finish" min="0" max="100" step="1" value="15" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-heating-layer">Warstwa grzewcza nad izolacją [mm]</label>
                    <input type="number" id="rk-ins-heating-layer" min="10" max="250" step="1" value="70" inputmode="decimal">
                    <small>Łączna grubość od wierzchu izolacji do spodu okładziny: np. system z rurą i jastrychem albo płyty systemu suchego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-service-layer">Warstwa wyrównawcza lub instalacyjna [mm]</label>
                    <input type="number" id="rk-ins-service-layer" min="0" max="300" step="1" value="0" inputmode="decimal">
                  </div>
                </div>

                <div class="rk-ins-subhead">Dolna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 1</strong><span>najbliżej podłoża</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer1-thickness">Grubość d₁ [mm]</label><input type="number" id="rk-ins-layer1-thickness" min="0" max="400" step="1" value="100" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-lambda">Deklarowana λD₁ [W/(mK)]</label><input type="number" id="rk-ins-layer1-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer1-pack" min="0.1" max="100" step="0.01" value="3.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-cs">Deklarowane CS(10) [kPa]</label><input type="number" id="rk-ins-cs" min="10" max="1000" step="10" value="100" inputmode="decimal"><small>Parametr pomocniczy — nie jest dopuszczalnym obciążeniem długotrwałym.</small></div>
                </div>

                <div class="rk-ins-subhead">Górna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 2</strong><span>wpisz 0 mm, aby ją wyłączyć</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer2-thickness">Grubość d₂ [mm]</label><input type="number" id="rk-ins-layer2-thickness" min="0" max="400" step="1" value="50" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-lambda">Deklarowana λD₂ [W/(mK)]</label><input type="number" id="rk-ins-layer2-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer2-pack" min="0.1" max="100" step="0.01" value="6.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-waste">Zapas montażowy [%]</label><input type="number" id="rk-ins-waste" min="0" max="30" step="1" value="5" inputmode="decimal"><small>Zapas wpływa na ilość zakupu i liczbę paczek, nie na opór ułożonej warstwy.</small></div>
                </div>
              </div>
            </div>

            <div class="rk-ins-tool-column rk-ins-tool-column-right">
              <div class="rk-ins-tool-panel">
                <h4>Wynik na żywo</h4>
                <p>Wartości materiałowe i geometryczne dla wpisanego wariantu.</p>
                <div class="rk-ins-results" aria-live="polite">
                  <div class="rk-ins-result is-accent"><span>Łączna izolacja</span><strong id="rk-ins-result-thickness">150 mm</strong><small id="rk-ins-result-split">100 + 50 mm</small></div>
                  <div class="rk-ins-result is-accent"><span>Opór izolacji R</span><strong id="rk-ins-result-r">4,17</strong><small>m²K/W — bez pozostałych warstw</small></div>
                  <div class="rk-ins-result"><span>Objętość ułożona</span><strong id="rk-ins-result-volume">18,00 m³</strong><small>bez zapasu zakupowego</small></div>
                  <div class="rk-ins-result"><span>Objętość do zakupu</span><strong id="rk-ins-result-purchase">18,90 m³</strong><small id="rk-ins-result-waste-note">z zapasem 5%</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 1</span><strong id="rk-ins-result-pack1">42</strong><small id="rk-ins-result-pack1-note">dla 3,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 2</span><strong id="rk-ins-result-pack2">21</strong><small id="rk-ins-result-pack2-note">dla 6,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Wykorzystana wysokość</span><strong id="rk-ins-result-used">235 mm</strong><small>wszystkie wpisane warstwy</small></div>
                  <div class="rk-ins-result" id="rk-ins-balance-card"><span>Rezerwa wysokości</span><strong id="rk-ins-result-balance">−5 mm</strong><small>wartość ujemna oznacza kolizję</small></div>
                </div>
                <div class="rk-ins-status" id="rk-ins-height-status">Warstwy przekraczają dostępną wysokość o 5 mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.</div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Dynamiczny przekrój podłogi</h4>
                <p>Proporcje aktualizują się razem z wpisanymi grubościami. Schemat pokazuje kolejność, nie detal wykonawczy.</p>
                <div class="rk-ins-section-stack" id="rk-ins-stack" aria-label="Dynamiczny przekrój warstw podłogi">
                  <div class="rk-ins-stack-layer rk-ins-stack-finish" id="rk-ins-stack-finish"><span>Okładzina</span><small>15 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-heating" id="rk-ins-stack-heating"><span>Warstwa grzewcza</span><small>70 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer2" id="rk-ins-stack-layer2"><span>Izolacja 2</span><small>50 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer1" id="rk-ins-stack-layer1"><span>Izolacja 1</span><small>100 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-service" id="rk-ins-stack-service"><span>Warstwa instalacyjna</span><small>0 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-base"><span>Podłoże konstrukcyjne</span><small>poziom odniesienia</small></div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Opór R a grubość</h4>
                <p>Linie porównują wartości λ wpisane dla obu warstw. Punkt pokazuje opór ich rzeczywistej kombinacji.</p>
                <div class="rk-ins-chart-wrap">
                  <svg class="rk-ins-chart" id="rk-ins-chart" viewBox="0 0 680 330" role="img" aria-labelledby="rk-ins-chart-title rk-ins-chart-desc">
                    <title id="rk-ins-chart-title">Wykres oporu cieplnego izolacji w zależności od grubości</title>
                    <desc id="rk-ins-chart-desc">Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw.</desc>
                  </svg>
                  <div class="rk-ins-chart-legend">
                    <span><i></i><b id="rk-ins-legend1">λ₁ 0,036</b></span>
                    <span><i></i><b id="rk-ins-legend2">λ₂ 0,036</b></span>
                    <span><i></i><b>Twój układ</b></span>
                  </div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Diagnostyka wyniku</h4>
                <p>Narzędzie oddziela to, co można policzyć z podanych danych, od tego, czego bez projektu stwierdzić nie wolno.</p>
                <div class="rk-ins-diagnostics" id="rk-ins-diagnostics" aria-live="polite"></div>
                <div class="rk-ins-results">
                  <div class="rk-ins-result"><span>Wymiar B′</span><strong id="rk-ins-result-bprime">5,22 m</strong><small id="rk-ins-result-bprime-note">2A/P — informacja geometryczna</small></div>
                  <div class="rk-ins-result"><span>Ocena U podłogi</span><strong>Nie wyznaczono</strong><small>potrzebny pełny model przegrody</small></div>
                </div>
              </div>
            </div>
          </div>
          <p class="rk-ins-tool-note">Analizator nie jest kalkulatorem współczynnika U podłogi na gruncie, projektem konstrukcji ani doborem dopuszczalnego obciążenia. Wyniki materiałowe zależą od poprawności danych wpisanych z dokumentacji konkretnego produktu.</p>
        </div>
      </section>

      <aside class="rk-ins-mid-cta" aria-label="Indywidualny projekt po analizie warstw">
        <span class="rk-ins-kicker" style="color:#83f1fb">Co pozostaje poza kalkulatorem?</span>
        <h3>Analizator zmieścił warstwy i policzył materiał, ale nie zna całego budynku</h3>
        <p>Nie widzi mostka na połączeniu podłogi ze ścianą, pełnej geometrii, parametrów gruntu, obciążeń, stref bez rur, dylatacji ani hydrauliki pętli. Jeżeli chcesz skoordynować izolację, poziom posadzki, rozstaw rur, długości obwodów i temperaturę pracy, potrzebny jest indywidualny projekt.</p>
        <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt dopasowany do warstw podłogi</a>
        <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </aside>

      <section class="rk-ins-section" id="rk-ins-results-reading">
        <span class="rk-ins-kicker">Wynik ma granice</span>
        <h2>Jak prawidłowo czytać wynik analizatora?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik pewny</span><h3>R izolacji</h3><p>Jeżeli grubość i λD wpisano prawidłowo, obliczenie oporu jednorodnych warstw jest prostą zależnością geometryczną.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik zakupowy</span><h3>m³ i paczki</h3><p>Objętość ułożona wynika z powierzchni oraz łącznej grubości. Liczba paczek zależy od wpisanego pokrycia konkretnego opakowania i zapasu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik projektowy</span><h3>U i nośność</h3><p>Tych parametrów narzędzie nie potwierdza. Wymagają danych o całej przegrodzie, geometrii, obciążeniach i długotrwałej pracy materiału.</p></article>
        </div>

        <p>Wymiar B′ jest informacją o geometrii podłogi na gruncie. Pokazuje, dlaczego sama powierzchnia nie wystarcza: zwarty rzut ma inną relację powierzchni do obwodu niż długi, rozczłonkowany budynek. Narzędzie nie wykorzystuje B′ do pozornego, uproszczonego obliczenia U.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-label">
        <span class="rk-ins-kicker">Kupuj parametry, nie kolor</span>
        <h2>Jak czytać etykietę styropianu i deklarację właściwości?</h2>
        <p class="rk-ins-intro">Pełna nazwa handlowa „EPS 100” nie zastępuje kodu oznaczenia, przeznaczenia ani deklaracji właściwości użytkowych. Do porównania potrzebujesz dokumentu dla konkretnego wariantu i grubości.</p>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Parametr</th><th>Co opisuje?</th><th>Jak go używać?</th><th>Czego nie dowodzi?</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>λD</strong></td><td data-label="Znaczenie">Deklarowana przewodność cieplna.</td><td data-label="Zastosowanie">Do obliczenia oporu warstwy R = d/λ.</td><td data-label="Ograniczenie">Nie potwierdza nośności.</td></tr>
              <tr><td data-label="Parametr"><strong>CS(10)</strong></td><td data-label="Znaczenie">Naprężenie ściskające przy 10% odkształceniu.</td><td data-label="Zastosowanie">Do porównania klasy mechanicznej z projektem i przeznaczeniem.</td><td data-label="Ograniczenie">Nie jest dopuszczalnym obciążeniem przez cały okres użytkowania.</td></tr>
              <tr><td data-label="Parametr"><strong>CC</strong></td><td data-label="Znaczenie">Pełzanie przy ściskaniu w określonym czasie i warunkach.</td><td data-label="Zastosowanie">Pomaga ocenić długotrwałe odkształcenie, gdy parametr jest deklarowany i wymagany.</td><td data-label="Ograniczenie">Nie zastępuje obliczeń obciążenia układu.</td></tr>
              <tr><td data-label="Parametr"><strong>T</strong></td><td data-label="Znaczenie">Tolerancja grubości.</td><td data-label="Zastosowanie">Ważna dla równości i sumowania warstw.</td><td data-label="Ograniczenie">Nie mówi o izolacyjności ani akustyce.</td></tr>
              <tr><td data-label="Parametr"><strong>SD lub CP</strong></td><td data-label="Znaczenie">Parametry używane w wyrobach o funkcji akustycznej.</td><td data-label="Zastosowanie">Sprawdza się je w projekcie podłogi pływającej na stropie.</td><td data-label="Ograniczenie">Nie można ich zastąpić samym symbolem EPS 100.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Deklaracja właściwości użytkowych jest podstawowym źródłem informacji o parametrach wyrobu budowlanego. Komisja Europejska wyjaśnia, że dokument przekazuje informacje o właściwościach produktu objętego normą zharmonizowaną lub europejską oceną techniczną. Nie opieraj odbioru materiału na „teście kciukiem” ani domniemanej gęstości.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-materials">
        <span class="rk-ins-kicker">Materiał dobieramy do funkcji i deklaracji</span>
        <h2>Biały EPS, grafitowy EPS czy XPS pod podłogówkę?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS biały</span><h3>Większa grubość przy wyższej λ</h3><p>Może być właściwym rozwiązaniem, jeśli deklarowane właściwości cieplne i mechaniczne odpowiadają projektowi, a w przekroju jest wystarczająco dużo miejsca.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS grafitowy</span><h3>Większy R przy tej samej grubości</h3><p>Niższa deklarowana lambda pozwala uzyskać większy opór w ograniczonej wysokości. Kolor nie zwalnia z kontroli CS(10), przeznaczenia i dokumentów.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">XPS</span><h3>Inna struktura i zastosowania</h3><p>Zwykle wybiera się go tam, gdzie ważne są określone właściwości mechaniczne lub zachowanie przy kontakcie z wilgocią. Ma małą, ale nie „zerową” nasiąkliwość i nie jest automatycznie najlepszy w każdym salonie.</p></article>
        </div>

        <div class="rk-ins-callout">
          <strong>EPS 100 nie jest zapisanym w prawie minimum dla każdej podłogi</strong>
          <p>Wybierz produkt przeznaczony do podłóg i zweryfikuj jego pełne parametry z obciążeniem oraz układem jastrychu. W podłogach akustycznych mogą występować materiały o innej charakterystyce, dobrane jako część konkretnego systemu.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-height">
        <span class="rk-ins-kicker">Poziom gotowej posadzki jest granicą</span>
        <h2>Jak zmieścić izolację i wszystkie warstwy podłogi?</h2>
        <p class="rk-ins-intro">Najczęstszy błąd koordynacyjny polega na zarezerwowaniu miejsca wyłącznie na styropian i jastrych. W rzeczywistym przekroju trzeba uwzględnić wszystkie warstwy od podłoża do górnej powierzchni okładziny.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od góry</span><h3>Okładzina i warstwa grzewcza</h3><p>Płytka z klejem, panel z podkładem albo drewno mają własną grubość. Poniżej znajduje się pełna warstwa systemu mokrego lub suchego, a nie sama średnica rury.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od dołu</span><h3>Podłoże i instalacje</h3><p>Nierówności, przewody wodne, kanalizacja, peszle i inne instalacje mogą wymagać osobnej warstwy wyrównawczej. Nie wolno ukrywać brakującej wysokości przez przypadkowe ściskanie płyt.</p></article>
        </div>

        <p>Grubość i rodzaj jastrychu ustala się dla konkretnego systemu. Szczegóły omawia poradnik o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-layers">
        <span class="rk-ins-kicker">Mijanka pomaga, ale nie jest celem samym w sobie</span>
        <h2>Jedna czy dwie warstwy styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Dwie warstwy ułatwiają przesunięcie spoin i osłonięcie miejscowych nieciągłości, ale zdanie „nigdy nie układaj jednej grubej warstwy” jest zbyt kategoryczne. Liczy się zaprojektowany układ, równe podparcie oraz dopasowane płyty.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ jednowarstwowy</span><h3>Może być poprawny</h3><p>Jeżeli płyty są przeznaczone do zastosowania, podłoże jest równe, spoiny dopasowane, instalacje nie tworzą pustek, a wymagany opór i nośność są zapewnione.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ dwuwarstwowy</span><h3>Ułatwia przesunięcie spoin</h3><p>Górna warstwa może przykryć łączenia dolnej. Spoin nie ustawia się w jednej linii, ale nie ma jednej uniwersalnej wartości przesunięcia odpowiedniej do wszystkich formatów płyt.</p></article>
        </div>

        <h3>Co jest ważniejsze od samej liczby warstw?</h3>
        <ul>
          <li>stabilne, równe i czyste podłoże,</li>
          <li>pełne podparcie płyt bez kołysania,</li>
          <li>ściśle dopasowane krawędzie,</li>
          <li>brak krzyżujących się pustek i przypadkowych klinów,</li>
          <li>ciągłość przy ścianach, słupach i przejściach instalacyjnych.</li>
        </ul>
      </section>

      <section class="rk-ins-section" id="rk-ins-services">
        <span class="rk-ins-kicker">Rury instalacyjne nie mogą podwieszać posadzki</span>
        <h2>Jak prowadzić instalacje w warstwie izolacji?</h2>
        <p class="rk-ins-intro">Przewody wodne, kanalizacyjne i elektryczne często przebiegają pod podłogówką. Problemem nie jest samo ich występowanie, lecz przypadkowe wycinanie płyt, brak podparcia i tworzenie wysokich garbów.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Plan</span><h3>Wyznacz trasy wcześniej</h3><p>Skoordynuj podejścia przed zamówieniem grubości warstw. Kolizje powinny zostać rozwiązane na rzucie, a nie podczas układania ostatniej płyty.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podparcie</span><h3>Nie zostawiaj pustych kieszeni</h3><p>Wycięcia muszą odpowiadać przebiegowi instalacji, a pozostałe warstwy tworzyć stabilną płaszczyznę pod system grzewczy.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Poziom</span><h3>Rozważ warstwę wyrównawczą</h3><p>Jeżeli instalacji jest dużo, poprawnym rozwiązaniem może być zaprojektowana warstwa instalacyjna lub wyrównawcza zamiast poszatkowania warstwy nośnej.</p></article>
        </div>

        <p>Przed montażem rur ogrzewania warto przejść przez listę błędów opisanych w poradniku o <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">samodzielnym wykonywaniu podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-membranes">
        <span class="rk-ins-kicker">Każda warstwa ma inną funkcję</span>
        <h2>Folia, hydroizolacja i izolacja brzegowa nie zastępują styropianu</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Folia rozdzielająca</span><h3>Chroni układ podczas wykonywania</h3><p>Może ograniczać wpływanie zaczynu między płyty i pełnić funkcję warstwy rozdzielającej. Nadruk pomaga zachować geometrię rur, ale folia nie zastępuje termoizolacji.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydroizolacja</span><h3>Kontroluje wodę i wilgoć</h3><p>Jej miejsce oraz ciągłość wynikają z projektu przegrody. Nie należy przypisywać styropianowi funkcji zabezpieczenia przeciwwodnego.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Taśma brzegowa</span><h3>Oddziela jastrych od przegród</h3><p>Przejmuje odkształcenia i ogranicza sztywne połączenia przy ścianach. Musi współpracować z układem dylatacji oraz grubością jastrychu.</p></article>
        </div>

        <p>Bez szczeliny powietrznej metalizowana powierzchnia pod jastrychem nie tworzy samodzielnej „izolacji odbijającej ciepło”. Więcej o detalach przeczytasz w artykule o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-quantity">
        <span class="rk-ins-kicker">Zamówienie liczymy osobno dla każdej grubości</span>
        <h2>Ile m², m³ i paczek styropianu zamówić?</h2>
        <p class="rk-ins-intro">Każda pełna warstwa wymaga pokrycia całej przeznaczonej powierzchni. Objętość instalowana wynika z pola i grubości, natomiast liczba paczek z wydajności opakowania dla konkretnej płyty.</p>

        <div class="rk-ins-formula" aria-label="Wzory na ilość styropianu">
          <strong>V = A × d &nbsp; | &nbsp; N = zaokrąglenie w górę [A × (1 + zapas) ÷ A<sub>paczki</sub>]</strong>
          <span>Objętość V podajemy w m³, powierzchnię A w m², grubość d w metrach, a pokrycie paczki w m² dla danej grubości.</span>
        </div>

        <div class="rk-ins-example">
          <h3>Przykład: 120 m², warstwy 10 + 5 cm, zapas 5%</h3>
          <p>W posadzce znajdzie się 18,00 m³ izolacji. Zakup z pięcioprocentowym zapasem odpowiada 18,90 m³. Paczki trzeba jednak policzyć oddzielnie, ponieważ opakowanie płyt 100 mm zwykle pokrywa inną powierzchnię niż opakowanie płyt 50 mm.</p>
          <div class="rk-ins-example-grid">
            <div class="rk-ins-example-stat"><span>Powierzchnia</span><strong>120 m²</strong></div>
            <div class="rk-ins-example-stat"><span>Grubość</span><strong>150 mm</strong></div>
            <div class="rk-ins-example-stat"><span>Wbudowane</span><strong>18,00 m³</strong></div>
            <div class="rk-ins-example-stat"><span>Zakup 5%</span><strong>18,90 m³</strong></div>
          </div>
        </div>

        <p>Nie licz paczek z jednej umownej objętości, jeśli producent podaje inne pakowanie dla różnych grubości. W analizatorze możesz wpisać rzeczywiste m² przypadające na paczkę każdej warstwy.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-heating-design">
        <span class="rk-ins-kicker">Izolacja i instalacja wpływają na siebie, ale nie automatycznie</span>
        <h2>Jak izolacja wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-ins-intro">Opór warstw pod systemem wpływa na strumień ciepła kierowany w dół. Nie można jednak z samej zmiany 10 na 15 cm wyznaczyć nowego rozstawu rur, przepływu ani mocy pompy.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">OZC</span><h3>Straty pomieszczenia</h3><p>Wymagana moc wynika z bilansu wszystkich przegród, wentylacji i temperatur obliczeniowych. Zmiana jednej warstwy musi zostać wprowadzona do modelu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podłoga</span><h3>Moc z powierzchni czynnej</h3><p>Rozstaw zależy od wymaganych W/m², konstrukcji, oporu okładziny i temperatury wody, a nie od samego symbolu EPS.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydraulika</span><h3>Długości i przepływy</h3><p>Opór pętli wynika głównie z przepływu, długości, średnicy wewnętrznej, medium i armatury. Nie wolno nazywać pompy „przeciążoną” tylko dlatego, że zmieniono grubość izolacji.</p></article>
        </div>

        <p>Najpierw wykonuje się <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, później sprawdza moc powierzchniową i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego</a>, a następnie długości, przepływy i straty ciśnienia. Pełny zakres dokumentacji opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-errors">
        <span class="rk-ins-kicker">Błędy, których jastrych już nie pokaże</span>
        <h2>Najczęstsze błędy przy izolacji pod ogrzewaniem podłogowym</h2>
        <div class="rk-ins-grid-2">
          <article class="rk-ins-error"><b>Błąd 01</b><h3>Dobór wyłącznie z centymetrów</h3><p>Pomija lambdę, miejsce przegrody, geometrię, obciążenia i pozostałe warstwy.</p></article>
          <article class="rk-ins-error"><b>Błąd 02</b><h3>Liczenie U podłogi na gruncie ze wzoru 1/R</h3><p>Nie odtwarza metodyki wymiany ciepła z gruntem i może dać pozornie dokładny, ale błędnie opisany wynik.</p></article>
          <article class="rk-ins-error"><b>Błąd 03</b><h3>Zakup z samej nazwy EPS 100</h3><p>Nie sprawdza pełnego kodu, λD, przeznaczenia, tolerancji, deklaracji i długotrwałego obciążenia.</p></article>
          <article class="rk-ins-error"><b>Błąd 04</b><h3>Brak bilansu wysokości</h3><p>Po ułożeniu izolacji brakuje miejsca na zaprojektowaną warstwę grzewczą, okładzinę albo poziom progów.</p></article>
          <article class="rk-ins-error"><b>Błąd 05</b><h3>Układanie na nierównym podłożu</h3><p>Płyty kołyszą się, a obciążenia nie są przekazywane równomiernie na warstwy konstrukcyjne.</p></article>
          <article class="rk-ins-error"><b>Błąd 06</b><h3>Przypadkowe wycinanie wokół instalacji</h3><p>Powstają pustki, uskoki i niepodparte fragmenty pod przyszłym jastrychem.</p></article>
          <article class="rk-ins-error"><b>Błąd 07</b><h3>Mylenie folii z termoizolacją</h3><p>Metalizowana folia bez szczeliny powietrznej nie zastępuje oporu zapewnianego przez właściwą warstwę izolacyjną.</p></article>
          <article class="rk-ins-error"><b>Błąd 08</b><h3>Automatyczna zmiana rozstawu rur</h3><p>Rozstawu, przepływu i temperatury nie wyznacza się wyłącznie z grubości styropianu.</p></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-checklist">
        <span class="rk-ins-kicker">Kontrola przed przykryciem warstw</span>
        <h2>Checklista przed ułożeniem rur i wykonaniem wylewki</h2>
        <div class="rk-ins-steps">
          <article class="rk-ins-step"><div><h3>Potwierdź miejsce i wymagania przegrody</h3><p>Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zmierz dostępną wysokość</h3><p>Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zbierz dokumenty materiału</h3><p>Sprawdź nazwę wariantu, przeznaczenie, λD, CS(10), tolerancję grubości i inne parametry wymagane przez projekt.</p></div></article>
          <article class="rk-ins-step"><div><h3>Policz opór każdej warstwy</h3><p>Dodaj d/λ dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie.</p></div></article>
          <article class="rk-ins-step"><div><h3>Skoordynuj instalacje podpodłogowe</h3><p>Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni.</p></div></article>
          <article class="rk-ins-step"><div><h3>Ułóż płyty na równym podłożu</h3><p>Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych.</p></div></article>
          <article class="rk-ins-step"><div><h3>Wykonaj warstwy rozdzielające i brzegowe</h3><p>Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą.</p></div></article>
          <article class="rk-ins-step"><div><h3>Odbierz warstwy przed montażem rur</h3><p>Zrób zdjęcia, zachowaj etykiety i DoP, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem.</p></div></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-faq">
        <span class="rk-ins-kicker">Najczęstsze pytania inwestorów</span>
        <h2>FAQ — styropian pod ogrzewanie podłogowe</h2>
        <div class="rk-ins-faq">
          <details><summary>Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?</summary><div class="rk-ins-faq-answer"><p>Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy λ = 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie.</p></div></details>
          <details><summary>Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie automatycznie. Piętnaście centymetrów przy λ = 0,036 daje R izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem.</p></div></details>
          <details><summary>Ile styropianu dać pod podłogówkę na piętrze?</summary><div class="rk-ins-faq-answer"><p>Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i wysokość. Nie należy kopiować automatycznie 15 cm z parteru ani przyjmować 3–5 cm bez sprawdzenia projektu.</p></div></details>
          <details><summary>Czy pod podłogówkę zawsze trzeba stosować EPS 100?</summary><div class="rk-ins-faq-answer"><p>Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego.</p></div></details>
          <details><summary>Czy grafitowy styropian pozwala zmniejszyć grubość?</summary><div class="rk-ins-faq-answer"><p>Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać konkretną λD, właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty.</p></div></details>
          <details><summary>Czy XPS jest zawsze lepszy od EPS?</summary><div class="rk-ins-faq-answer"><p>Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt. Wyższa cena lub wytrzymałość nie czynią go automatycznie najlepszym materiałem dla każdego pomieszczenia.</p></div></details>
          <details><summary>Czy metalizowana folia odbija ciepło do pomieszczenia?</summary><div class="rk-ins-faq-answer"><p>Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur.</p></div></details>
          <details><summary>Czy lepiej układać styropian w jednej czy dwóch warstwach?</summary><div class="rk-ins-faq-answer"><p>Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem.</p></div></details>
          <details><summary>Jak policzyć m³ styropianu na 100 m² podłogi?</summary><div class="rk-ins-faq-answer"><p>Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek.</p></div></details>
          <details><summary>Czy kalkulator oblicza współczynnik U podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B′. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy.</p></div></details>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-sources">
        <span class="rk-ins-kicker">Źródła publiczne i normatywne</span>
        <h2>Podstawa techniczna opracowania</h2>
        <div class="rk-ins-source-box">
          <ul>
            <li><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="noopener nofollow">Elektroniczny Dziennik Ustaw — obowiązujący tekst warunków technicznych</a>, w tym wymaganie U<sub>C(max)</sub> dla podłogi na gruncie.</li>
            <li><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="noopener nofollow">ISO 13370:2017</a> — metody obliczania przenoszenia ciepła przez podłogi i inne elementy budynku stykające się z gruntem.</li>
            <li><a href="https://www.iso.org/standard/40966.html" target="_blank" rel="noopener nofollow">ISO 10456:2007</a> — zasady dotyczące deklarowanych i projektowych wartości cieplnych materiałów oraz wyrobów.</li>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — podstawy projektowania oraz wyznaczania mocy wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</li>
            <li><a href="https://single-market-economy.ec.europa.eu/sectors/construction/construction-products-regulation-cpr/declaration-performance-and-ce-marking_en" target="_blank" rel="noopener nofollow">Komisja Europejska — deklaracja właściwości użytkowych i oznakowanie CE</a>.</li>
          </ul>
          <p>Normy mogą być chronione prawem autorskim i odpłatne. Artykuł omawia zasady oraz zakres metod, ale nie zastępuje pełnego tekstu norm, dokumentacji projektowej ani deklaracji właściwości konkretnego produktu.</p>
        </div>
        <div class="rk-ins-update">Ostatnia aktualizacja merytoryczna: 30 sierpnia 2026 r.</div>
      </section>
    </main>

    <section class="rk-ins-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-about" checked="">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-exp">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-sites">

      <header class="rk-ins-author-head">
        <div><span class="rk-ins-kicker" style="color:#83f1fb">Autor opracowania</span><div class="rk-ins-author-title">Robert Kucharski</div><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-ins-author-mark">IZOLACJE • PODŁOGÓWKA • HVAC</span>
      </header>

      <div class="rk-ins-author-layout">
        <aside class="rk-ins-author-side">
          <div class="rk-ins-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
          <div class="rk-ins-author-name">Robert Kucharski</div>
          <div class="rk-ins-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-ins-author-social-label">Znajdziesz mnie również:</div>
          <div class="rk-ins-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="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
          </div>
        </aside>

        <div class="rk-ins-author-main">
          <blockquote class="rk-ins-author-quote"><p>„Dobra izolacja podłogi nie zaczyna się od pytania o liczbę centymetrów. Najpierw trzeba wiedzieć, co izolujemy, jaki opór ma materiał, jakie obciążenia przenosi i czy cały przekrój zmieści się w budynku.”</p></blockquote>
          <div class="rk-ins-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-ins-author-tab" for="rk-ins-author-about">O autorze</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-exp">Doświadczenie</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-sites">Portale</label>
          </div>
          <div class="rk-ins-author-panel rk-ins-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe, łącząc obliczenia strat ciepła z doborem temperatur, rozstawów, przepływów, długości pętli, strat ciśnienia i nastaw rozdzielaczy.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-exp"><p>W dokumentacji koordynuję założenia cieplne z rzeczywistym układem warstw podłogi. Dzięki temu instalacja nie jest dopasowywana „na oko” dopiero po ułożeniu izolacji i wykonaniu progów.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-sites"><p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p><div class="rk-ins-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
        </div>
      </div>
    </section>

    <section class="rk-ins-final-cta" aria-label="Projekt ogrzewania podłogowego skoordynowany z warstwami">
      <span class="rk-ins-kicker" style="color:#83f1fb">Zamknij decyzje przed wejściem wykonawcy</span>
      <div class="rk-ins-cta-title">Otrzymaj projekt podłogówki dopasowany do budynku i posadzki</div>
      <p>Dokumentacja łączy straty ciepła, powierzchnie czynne, temperaturę zasilania i powrotu, rozstawy rur, długości pętli, przepływy oraz nastawy. Warstwy podłogi stają się jednym z założeń projektu, a nie niespodzianką odkrytą podczas montażu.</p>
      <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "headline": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Techniczny poradnik o doborze izolacji pod ogrzewanie podłogowe z analizatorem oporu R, objętości, liczby paczek i wysokości warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        {"@type": "Thing", "name": "Izolacja pod ogrzewanie podłogowe"},
        {"@type": "Thing", "name": "Styropian podłogowy"},
        {"@type": "Thing", "name": "Opór cieplny izolacji"},
        {"@type": "Thing", "name": "Podłoga na gruncie"}
      ],
      "keywords": [
        "ile styropianu pod ogrzewanie podłogowe",
        "jaka grubość styropianu pod podłogówkę",
        "styropian pod podłogówkę 10 czy 15 cm",
        "opór cieplny izolacji podłogowej",
        "ile m3 styropianu na podłogę"
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "name": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Jak dobrać izolację pod podłogówkę i obliczyć jej opór, objętość, liczbę paczek oraz wysokość wszystkich warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"},
        {"@type": "ListItem", "position": 3, "name": "Ile styropianu pod ogrzewanie podłogowe?", "item": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application",
      "name": "Interaktywny analizator izolacji i warstw podłogi",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#rk-ins-analyzer",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Narzędzie oblicza opór cieplny warstw izolacji, objętość materiału, zapas, liczbę paczek, bilans wysokości i wymiar charakterystyczny podłogi na gruncie."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto",
      "name": "Jak sprawdzić izolację przed ułożeniem ogrzewania podłogowego?",
      "description": "Kolejność kontroli przegrody, materiału, wysokości, instalacji i wykonania przed zakryciem izolacji.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Potwierdź miejsce i wymagania przegrody", "text": "Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny."},
        {"@type": "HowToStep", "position": 2, "name": "Zmierz dostępną wysokość", "text": "Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach."},
        {"@type": "HowToStep", "position": 3, "name": "Zbierz dokumenty materiału", "text": "Sprawdź nazwę wariantu, przeznaczenie, deklarowaną lambdę, CS(10), tolerancję grubości i inne parametry wymagane przez projekt."},
        {"@type": "HowToStep", "position": 4, "name": "Policz opór każdej warstwy", "text": "Dodaj iloraz grubości i lambdy dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie."},
        {"@type": "HowToStep", "position": 5, "name": "Skoordynuj instalacje podpodłogowe", "text": "Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni."},
        {"@type": "HowToStep", "position": 6, "name": "Ułóż płyty na równym podłożu", "text": "Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych."},
        {"@type": "HowToStep", "position": 7, "name": "Wykonaj warstwy rozdzielające i brzegowe", "text": "Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą."},
        {"@type": "HowToStep", "position": 8, "name": "Odbierz warstwy przed montażem rur", "text": "Zrób zdjęcia, zachowaj etykiety i deklaracje, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?", "acceptedAnswer": {"@type": "Answer", "text": "Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy lambda 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie."}},
        {"@type": "Question", "name": "Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie automatycznie. Piętnaście centymetrów przy lambda 0,036 daje opór izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem."}},
        {"@type": "Question", "name": "Ile styropianu dać pod podłogówkę na piętrze?", "acceptedAnswer": {"@type": "Answer", "text": "Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i dostępna wysokość. Wartość trzeba potwierdzić w projekcie."}},
        {"@type": "Question", "name": "Czy pod podłogówkę zawsze trzeba stosować EPS 100?", "acceptedAnswer": {"@type": "Answer", "text": "Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego."}},
        {"@type": "Question", "name": "Czy grafitowy styropian pozwala zmniejszyć grubość?", "acceptedAnswer": {"@type": "Answer", "text": "Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty."}},
        {"@type": "Question", "name": "Czy XPS jest zawsze lepszy od EPS?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt."}},
        {"@type": "Question", "name": "Czy metalizowana folia odbija ciepło do pomieszczenia?", "acceptedAnswer": {"@type": "Answer", "text": "Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur."}},
        {"@type": "Question", "name": "Czy lepiej układać styropian w jednej czy dwóch warstwach?", "acceptedAnswer": {"@type": "Answer", "text": "Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem."}},
        {"@type": "Question", "name": "Jak policzyć m3 styropianu na 100 m2 podłogi?", "acceptedAnswer": {"@type": "Answer", "text": "Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek."}},
        {"@type": "Question", "name": "Czy kalkulator oblicza współczynnik U podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B prim. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@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/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "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";

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

  var byId = function (id) {
    return document.getElementById(id);
  };

  var readNumber = function (id, fallback, minimum, maximum) {
    var field = byId(id);
    var value = parseFloat(field.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    return Math.min(maximum, Math.max(minimum, value));
  };

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

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

  var svgNamespace = "http://www.w3.org/2000/svg";

  var svgElement = function (name, attributes, textValue) {
    var node = document.createElementNS(svgNamespace, name);
    Object.keys(attributes).forEach(function (key) {
      node.setAttribute(key, attributes[key]);
    });
    if (typeof textValue === "string") {
      node.textContent = textValue;
    }
    return node;
  };

  var drawChart = function (lambda1, lambda2, totalThickness, totalR) {
    var chart = byId("rk-ins-chart");
    if (!chart) {
      return;
    }

    while (chart.firstChild) {
      chart.removeChild(chart.firstChild);
    }

    chart.appendChild(svgElement("title", {id: "rk-ins-chart-title"}, "Wykres oporu cieplnego izolacji w zależności od grubości"));
    chart.appendChild(svgElement("desc", {id: "rk-ins-chart-desc"}, "Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw."));

    var left = 60;
    var top = 28;
    var right = 650;
    var bottom = 274;
    var width = right - left;
    var height = bottom - top;
    var xMaximum = Math.max(300, Math.ceil(totalThickness / 50) * 50);
    var minimumLambda = Math.min(lambda1, lambda2);
    var theoreticalR = (xMaximum / 1000) / minimumLambda;
    var yMaximum = Math.max(8, Math.ceil(Math.max(theoreticalR, totalR) / 2) * 2);

    chart.appendChild(svgElement("rect", {x: 0, y: 0, width: 680, height: 330, fill: "#f8fbfc"}));

    var xStep = xMaximum / 6;
    var yStep = yMaximum / 4;
    var index;

    for (index = 0; index <= 6; index += 1) {
      var xValue = xStep * index;
      var x = left + (xValue / xMaximum) * width;
      chart.appendChild(svgElement("line", {x1: x, y1: top, x2: x, y2: bottom, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: x, y: 296, fill: "#617684", "font-size": 11, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(xValue, 0)));
    }

    for (index = 0; index <= 4; index += 1) {
      var yValue = yStep * index;
      var y = bottom - (yValue / yMaximum) * height;
      chart.appendChild(svgElement("line", {x1: left, y1: y, x2: right, y2: y, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: 49, y: y + 4, fill: "#617684", "font-size": 11, "text-anchor": "end", "font-family": "system-ui, sans-serif"}, format(yValue, 1)));
    }

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("line", {x1: left, y1: top, x2: left, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("text", {x: 355, y: 320, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, "łączna grubość izolacji [mm]"));
    chart.appendChild(svgElement("text", {x: 18, y: 151, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif", transform: "rotate(-90 18 151)"}, "opór R [m²K/W]"));

    var endpointR1 = (xMaximum / 1000) / lambda1;
    var endpointR2 = (xMaximum / 1000) / lambda2;
    var endpointY1 = bottom - (endpointR1 / yMaximum) * height;
    var endpointY2 = bottom - (endpointR2 / yMaximum) * height;

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY1, stroke: "#28c9da", "stroke-width": 5, "stroke-linecap": "round"}));
    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY2, stroke: "#ff7438", "stroke-width": 4, "stroke-linecap": "round", "stroke-dasharray": "10 7"}));

    var markerX = left + (Math.min(totalThickness, xMaximum) / xMaximum) * width;
    var markerY = bottom - (Math.min(totalR, yMaximum) / yMaximum) * height;
    chart.appendChild(svgElement("line", {x1: markerX, y1: markerY, x2: markerX, y2: bottom, stroke: "#e7ad2f", "stroke-width": 2, "stroke-dasharray": "5 5"}));
    chart.appendChild(svgElement("circle", {cx: markerX, cy: markerY, r: 8, fill: "#e7ad2f", stroke: "#ffffff", "stroke-width": 3}));
    chart.appendChild(svgElement("text", {x: markerX, y: Math.max(18, markerY - 14), fill: "#74510a", "font-size": 12, "font-weight": 900, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(totalThickness, 0) + " mm • R " + format(totalR, 2)));
  };

  var updateStack = function (finish, heating, layer2, layer1, service) {
    var values = [
      {id: "rk-ins-stack-finish", value: finish, label: "Okładzina"},
      {id: "rk-ins-stack-heating", value: heating, label: "Warstwa grzewcza"},
      {id: "rk-ins-stack-layer2", value: layer2, label: "Izolacja 2"},
      {id: "rk-ins-stack-layer1", value: layer1, label: "Izolacja 1"},
      {id: "rk-ins-stack-service", value: service, label: "Warstwa instalacyjna"}
    ];

    values.forEach(function (item) {
      var node = byId(item.id);
      if (!node) {
        return;
      }
      if (item.value <= 0) {
        node.style.display = "none";
        return;
      }
      node.style.display = "flex";
      node.style.flexGrow = String(Math.max(8, item.value));
      node.style.flexBasis = "0";
      node.querySelector("span").textContent = item.label;
      node.querySelector("small").textContent = format(item.value, 0) + " mm";
    });
  };

  var addDiagnostic = function (container, textValue, stateClass) {
    var item = document.createElement("div");
    item.className = "rk-ins-diagnostic";
    if (stateClass) {
      item.classList.add(stateClass);
    }
    item.textContent = textValue;
    container.appendChild(item);
  };

  var update = function () {
    var floorType = byId("rk-ins-floor-type").value;
    var area = readNumber("rk-ins-area", 120, 1, 2000);
    var perimeter = readNumber("rk-ins-perimeter", 46, 1, 1000);
    var availableHeight = readNumber("rk-ins-available-height", 230, 20, 1000);
    var finish = readNumber("rk-ins-finish", 15, 0, 100);
    var heating = readNumber("rk-ins-heating-layer", 70, 10, 250);
    var service = readNumber("rk-ins-service-layer", 0, 0, 300);
    var layer1 = readNumber("rk-ins-layer1-thickness", 100, 0, 400);
    var lambda1 = readNumber("rk-ins-layer1-lambda", 0.036, 0.020, 0.080);
    var pack1 = readNumber("rk-ins-layer1-pack", 3, 0.1, 100);
    var csValue = readNumber("rk-ins-cs", 100, 10, 1000);
    var layer2 = readNumber("rk-ins-layer2-thickness", 50, 0, 400);
    var lambda2 = readNumber("rk-ins-layer2-lambda", 0.036, 0.020, 0.080);
    var pack2 = readNumber("rk-ins-layer2-pack", 6, 0.1, 100);
    var waste = readNumber("rk-ins-waste", 5, 0, 30);

    var totalThickness = layer1 + layer2;
    var r1 = (layer1 / 1000) / lambda1;
    var r2 = (layer2 / 1000) / lambda2;
    var totalR = r1 + r2;
    var installedVolume = area * totalThickness / 1000;
    var reserveFactor = 1 + waste / 100;
    var purchaseVolume = installedVolume * reserveFactor;
    var purchaseArea = area * reserveFactor;
    var packs1 = layer1 > 0 ? Math.ceil(purchaseArea / pack1) : 0;
    var packs2 = layer2 > 0 ? Math.ceil(purchaseArea / pack2) : 0;
    var usedHeight = finish + heating + service + totalThickness;
    var balance = availableHeight - usedHeight;
    var isGround = floorType === "ground";
    var bPrime = isGround ? (2 * area) / perimeter : 0;

    setText("rk-ins-result-thickness", format(totalThickness, 0) + " mm");
    setText("rk-ins-result-split", format(layer1, 0) + " + " + format(layer2, 0) + " mm");
    setText("rk-ins-result-r", format(totalR, 2));
    setText("rk-ins-result-volume", format(installedVolume, 2) + " m³");
    setText("rk-ins-result-purchase", format(purchaseVolume, 2) + " m³");
    setText("rk-ins-result-waste-note", "z zapasem " + format(waste, 0) + "%");
    setText("rk-ins-result-pack1", format(packs1, 0));
    setText("rk-ins-result-pack1-note", "dla " + format(pack1, 2) + " m²/paczkę");
    setText("rk-ins-result-pack2", format(packs2, 0));
    setText("rk-ins-result-pack2-note", layer2 > 0 ? "dla " + format(pack2, 2) + " m²/paczkę" : "warstwa wyłączona");
    setText("rk-ins-result-used", format(usedHeight, 0) + " mm");
    setText("rk-ins-result-balance", (balance < 0 ? "−" : "+") + format(Math.abs(balance), 0) + " mm");

    var balanceCard = byId("rk-ins-balance-card");
    balanceCard.classList.remove("is-good", "is-warning", "is-danger");
    var heightStatus = byId("rk-ins-height-status");
    heightStatus.classList.remove("is-danger");

    if (balance < 0) {
      balanceCard.classList.add("is-danger");
      heightStatus.classList.add("is-danger");
      heightStatus.textContent = "Warstwy przekraczają dostępną wysokość o " + format(Math.abs(balance), 0) + " mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.";
    } else if (balance < 10) {
      balanceCard.classList.add("is-warning");
      heightStatus.textContent = "Pozostało tylko " + format(balance, 0) + " mm rezerwy. Sprawdź tolerancje wykonawcze, nierówności podłoża, grubość kleju i rzeczywisty poziom progów.";
    } else {
      balanceCard.classList.add("is-good");
      heightStatus.textContent = "Wpisany układ mieści się w dostępnej wysokości z rezerwą " + format(balance, 0) + " mm. To kontrola geometryczna, nie odbiór całej konstrukcji.";
    }

    var perimeterWrap = byId("rk-ins-perimeter-wrap");
    perimeterWrap.hidden = !isGround;

    if (isGround) {
      setText("rk-ins-result-bprime", format(bPrime, 2) + " m");
      setText("rk-ins-result-bprime-note", "2A/P — informacja geometryczna");
    } else {
      setText("rk-ins-result-bprime", "—");
      setText("rk-ins-result-bprime-note", "dotyczy podłogi na gruncie");
    }

    setText("rk-ins-legend1", "λ₁ " + format(lambda1, 3));
    setText("rk-ins-legend2", "λ₂ " + format(lambda2, 3));

    updateStack(finish, heating, layer2, layer1, service);
    drawChart(lambda1, lambda2, totalThickness, totalR);

    var diagnostics = byId("rk-ins-diagnostics");
    diagnostics.innerHTML = "";

    if (floorType === "ground") {
      addDiagnostic(diagnostics, "Podłoga na gruncie: obowiązujące wymaganie Uc(max) dla pomieszczenia ogrzewanego do co najmniej 16°C wynosi 0,30 W/(m²K). Samo R izolacji i B′ nie wystarczają do potwierdzenia zgodności.", "is-warning");
    } else if (floorType === "heated") {
      addDiagnostic(diagnostics, "Strop nad ogrzewanym pomieszczeniem: oprócz przepływu ciepła sprawdź akustykę, konstrukcję podłogi pływającej i dopuszczalne odkształcenia warstw.", "");
    } else if (floorType === "unheated") {
      addDiagnostic(diagnostics, "Strop nad nieogrzewaną piwnicą lub garażem: potrzebna jest temperatura po stronie nieogrzewanej oraz pełne obliczenie całej przegrody.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Podłoga nad powietrzem zewnętrznym: nie stosuj uproszczeń dla stropu między ogrzewanymi pomieszczeniami. Sprawdź wymagania przegrody zewnętrznej i mostki.", "is-warning");
    }

    if (balance < 0) {
      addDiagnostic(diagnostics, "Kolizja wysokości: brakuje " + format(Math.abs(balance), 0) + " mm. Nie redukuj przypadkowo jastrychu ani izolacji bez uzgodnienia nowego przekroju.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Bilans wysokości: układ wykorzystuje " + format(usedHeight, 0) + " z dostępnych " + format(availableHeight, 0) + " mm.", "");
    }

    addDiagnostic(diagnostics, "Wpisane CS(10) = " + format(csValue, 0) + " kPa. Ta wartość opisuje naprężenie przy 10% odkształceniu i sama nie potwierdza dopuszczalnego obciążenia długotrwałego.", csValue < 70 ? "is-warning" : "");
    addDiagnostic(diagnostics, "Opór R = " + format(totalR, 2) + " m²K/W dotyczy wyłącznie dwóch wpisanych warstw izolacji. Lambdy powinny pochodzić z deklaracji właściwości konkretnego wyrobu.", "");
  };

  var fields = root.querySelectorAll("#rk-ins-tool input, #rk-ins-tool select");
  Array.prototype.forEach.call(fields, function (field) {
    field.addEventListener("input", update);
    field.addEventListener("change", update);
  });

  var progress = byId("rk-ins-progress");
  var updateProgress = function () {
    if (!progress) {
      return;
    }
    var rootTop = window.scrollY + root.getBoundingClientRect().top;
    var distance = root.scrollHeight - window.innerHeight;
    if (distance <= 0) {
      progress.style.width = "100%";
      return;
    }
    var current = window.scrollY - rootTop;
    var percentage = Math.min(100, Math.max(0, current / distance * 100));
    progress.style.width = percentage + "%";
  };

  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", updateProgress);

  update();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jaka jest optymalna temperatura ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 09 Mar 2025 18:05:03 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[materiały podłogowe]]></category>
		<category><![CDATA[norma en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2385</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale jak je dobrze ustawić? W naszym artykule znajdziesz praktyczne porady, wyliczenia i przykłady, które pomogą Ci ustalić idealne parametry dla Twojego domu. Dowiedz się, jaka jest optymalna temperatura ogrzewania podłogowego, by cieszyć się ciepłem w salonie, sypialni czy łazience, oszczędzając przy tym na rachunkach. Poznaj wpływ materiałów podłogowych i normy, które warto znać!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-opt-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-opt-guide,
  #rk-opt-guide * { box-sizing: border-box; }
  #rk-opt-guide img,
  #rk-opt-guide svg { max-width: 100%; }
  #rk-opt-guide button,
  #rk-opt-guide input,
  #rk-opt-guide select,
  #rk-opt-guide label,
  #rk-opt-guide summary,
  #rk-opt-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-opt-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-opt-guide a:hover,
  #rk-opt-guide a:focus-visible { color: var(--rk-red); }
  #rk-opt-guide p,
  #rk-opt-guide ul,
  #rk-opt-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-opt-guide h2,
  #rk-opt-guide h3,
  #rk-opt-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-opt-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-opt-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-opt-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-opt-guide strong { color: var(--rk-dark); }
  #rk-opt-guide [hidden] { display: none !important; }

  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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, .32), 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-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-hero-title {
    position: relative;
    z-index: 1;
    max-width: 1020px;
    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-opt-guide .rk-opt-hero-title span { color: #78efff; }
  #rk-opt-guide .rk-opt-lead {
    position: relative;
    z-index: 1;
    max-width: 940px;
    margin-bottom: 25px;
    color: #d5e9f1;
    font-size: clamp(1rem, 2.15vw, 1.24rem);
    line-height: 1.65;
  }
  #rk-opt-guide .rk-opt-hero-tags,
  #rk-opt-guide .rk-opt-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }
  #rk-opt-guide .rk-opt-hero-tags { margin-bottom: 22px; }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-byline {
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: #bdd6df;
    font-size: .68rem;
  }
  #rk-opt-guide .rk-opt-byline strong { color: var(--rk-white); }
  #rk-opt-guide .rk-opt-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 27px;
  }
  #rk-opt-guide .rk-opt-hero-metric {
    padding: 16px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 15px;
    background: rgba(7, 27, 40, .34);
  }
  #rk-opt-guide .rk-opt-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #78efff;
    font-size: .78rem;
  }
  #rk-opt-guide .rk-opt-hero-metric span {
    display: block;
    color: #d5e9f1;
    font-size: .68rem;
    line-height: 1.5;
  }

  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-nav a:hover,
  #rk-opt-guide .rk-opt-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-opt-guide .rk-opt-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-opt-guide .rk-opt-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-opt-guide .rk-opt-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-opt-guide .rk-opt-intro {
    max-width: 950px;
    color: var(--rk-text);
    font-size: 1.08rem;
  }
  #rk-opt-guide .rk-opt-answer,
  #rk-opt-guide .rk-opt-note,
  #rk-opt-guide .rk-opt-warning,
  #rk-opt-guide .rk-opt-success {
    margin: 25px 0;
    padding: 22px 23px;
    border-radius: 16px;
  }
  #rk-opt-guide .rk-opt-answer { border-left: 5px solid var(--rk-cyan); background: var(--rk-cyan-soft); }
  #rk-opt-guide .rk-opt-note { border-left: 5px solid var(--rk-blue); background: var(--rk-soft); }
  #rk-opt-guide .rk-opt-warning { border-left: 5px solid var(--rk-orange); background: var(--rk-orange-soft); }
  #rk-opt-guide .rk-opt-success { border-left: 5px solid var(--rk-green); background: var(--rk-green-soft); }
  #rk-opt-guide .rk-opt-answer p:last-child,
  #rk-opt-guide .rk-opt-note p:last-child,
  #rk-opt-guide .rk-opt-warning p:last-child,
  #rk-opt-guide .rk-opt-success p:last-child { margin-bottom: 0; }
  #rk-opt-guide .rk-opt-grid-2,
  #rk-opt-guide .rk-opt-grid-3,
  #rk-opt-guide .rk-opt-grid-4 {
    display: grid;
    gap: 15px;
    margin: 25px 0;
  }
  #rk-opt-guide .rk-opt-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-opt-guide .rk-opt-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-opt-guide .rk-opt-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-card p:last-child { margin-bottom: 0; }
  #rk-opt-guide .rk-opt-card-icon {
    display: inline-grid;
    place-items: center;
    min-width: 38px;
    height: 38px;
    margin-bottom: 14px;
    padding: 0 9px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: .75rem;
    font-weight: 950;
  }
  #rk-opt-guide .rk-opt-card.is-orange .rk-opt-card-icon { background: var(--rk-orange); }
  #rk-opt-guide .rk-opt-card.is-green .rk-opt-card-icon { background: var(--rk-green); }
  #rk-opt-guide .rk-opt-card.is-purple .rk-opt-card-icon { background: var(--rk-purple); }
  #rk-opt-guide .rk-opt-formula {
    margin: 25px 0;
    padding: 24px;
    border: 1px solid #b9e4ec;
    border-radius: 17px;
    text-align: center;
    background: linear-gradient(135deg, #f7fdff, #ecfafc);
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-formula span { color: var(--rk-muted); font-size: .78rem; }
  #rk-opt-guide .rk-opt-list {
    display: grid;
    gap: 10px;
    padding: 0;
    list-style: none;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-table-wrap {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }
  #rk-opt-guide table {
    width: 100%;
    border-collapse: collapse;
    color: var(--rk-text);
    font-size: .82rem;
  }
  #rk-opt-guide th,
  #rk-opt-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-opt-guide th:last-child,
  #rk-opt-guide td:last-child { border-right: 0; }
  #rk-opt-guide tr:last-child td { border-bottom: 0; }
  #rk-opt-guide th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .025em;
  }

  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-tool-head h3 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.8vw, 2.45rem);
  }
  #rk-opt-guide .rk-opt-tool-head p { margin-bottom: 0; color: #c9e0e8; }
  #rk-opt-guide .rk-opt-tool-body { padding: clamp(20px, 4vw, 34px); }
  #rk-opt-guide .rk-opt-step {
    margin-bottom: 23px;
    padding: 22px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 17px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-opt-guide .rk-opt-step:last-child { margin-bottom: 0; }
  #rk-opt-guide .rk-opt-step-title {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-step-title h4 { margin: 0; color: var(--rk-white); font-size: 1.16rem; }
  #rk-opt-guide .rk-opt-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }
  #rk-opt-guide .rk-opt-field { min-width: 0; }
  #rk-opt-guide .rk-opt-field.is-wide { grid-column: span 2; }
  #rk-opt-guide .rk-opt-field label {
    display: block;
    margin-bottom: 5px;
    color: #dff3f8;
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-opt-guide .rk-opt-field input,
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-field small {
    display: block;
    margin-top: 5px;
    color: #8fb6c5;
    font-size: .59rem;
    line-height: 1.42;
  }
  #rk-opt-guide .rk-opt-field input:focus,
  #rk-opt-guide .rk-opt-field select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-result-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
  }
  #rk-opt-guide .rk-opt-result-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-opt-guide .rk-opt-result-head p { margin-bottom: 0; color: #bcd7e1; font-size: .74rem; }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-result-badge.is-warning { color: #4f3300; background: #ffd568; }
  #rk-opt-guide .rk-opt-result-badge.is-bad { color: #59150f; background: #ff9f91; }
  #rk-opt-guide .rk-opt-result-badge.is-good { color: #063d31; background: #7aebc7; }
  #rk-opt-guide .rk-opt-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 15px;
  }
  #rk-opt-guide .rk-opt-metric {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(136, 202, 220, .18);
    border-radius: 12px;
    background: rgba(255, 255, 255, .05);
  }
  #rk-opt-guide .rk-opt-metric span {
    display: block;
    color: #93bac7;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-opt-guide .rk-opt-metric strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-white);
    font-size: 1.02rem;
  }
  #rk-opt-guide .rk-opt-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-result-card h4 { color: var(--rk-white); }
  #rk-opt-guide .rk-opt-diagnostics {
    display: grid;
    gap: 8px;
    margin-top: 14px;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-diagnostic.is-good {
    border-color: #4cd7ac;
    color: #d8fff1;
    background: rgba(22, 131, 107, .16);
  }
  #rk-opt-guide .rk-opt-diagnostic.is-bad {
    border-color: #ff786b;
    color: #ffe1dc;
    background: rgba(217, 75, 61, .15);
  }
  #rk-opt-guide .rk-opt-chart-wrap {
    margin-top: 15px;
    padding: 14px;
    border-radius: 14px;
    background: #f8fcfd;
  }
  #rk-opt-guide .rk-opt-chart {
    display: block;
    width: 100%;
    height: auto;
  }
  #rk-opt-guide .rk-opt-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 10px;
    color: #506774;
    font-size: .62rem;
    font-weight: 800;
  }
  #rk-opt-guide .rk-opt-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  #rk-opt-guide .rk-opt-chart-legend i {
    display: inline-block;
    width: 21px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-blue);
  }
  #rk-opt-guide .rk-opt-chart-legend .is-proposed i { background: var(--rk-orange); }
  #rk-opt-guide .rk-opt-chart-legend .is-measured i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-green);
  }
  #rk-opt-guide .rk-opt-tool-disclaimer {
    margin: 15px 0 0;
    color: #8fb6c5;
    font-size: .61rem;
    line-height: 1.5;
  }

  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-sales-cta h3 { color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-opt-guide .rk-opt-sales-cta p { max-width: 920px; color: #d0e4eb; }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-opt-guide .rk-opt-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-opt-guide .rk-opt-faq summary {
    position: relative;
    padding: 17px 48px 17px 18px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 880;
    list-style: none;
  }
  #rk-opt-guide .rk-opt-faq summary::-webkit-details-marker { display: none; }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-faq details[open] summary::after { content: "−"; }
  #rk-opt-guide .rk-opt-faq-answer { padding: 0 18px 17px; color: var(--rk-text); }
  #rk-opt-guide .rk-opt-faq-answer p:last-child { margin-bottom: 0; }
  #rk-opt-guide .rk-opt-sources { display: grid; gap: 11px; margin-top: 24px; }
  #rk-opt-guide .rk-opt-source {
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-opt-guide .rk-opt-source p { margin: 6px 0 0; color: var(--rk-muted); font-size: .77rem; }

  #rk-opt-guide .rk-opt-author {
    overflow: hidden;
    margin-top: 48px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
    scroll-margin-top: 18px;
  }
  #rk-opt-guide .rk-opt-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-author-head h2 { margin-bottom: 6px; font-size: clamp(1.55rem, 3vw, 2.2rem); }
  #rk-opt-guide .rk-opt-author-head p { margin: 0; color: var(--rk-muted); }
  #rk-opt-guide .rk-opt-author-mark {
    max-width: 380px;
    color: var(--rk-blue);
    font-size: .61rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-align: right;
  }
  #rk-opt-guide .rk-opt-author-layout { display: grid; grid-template-columns: 255px minmax(0, 1fr); }
  #rk-opt-guide .rk-opt-author-side {
    padding: 30px 24px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #rk-opt-guide .rk-opt-author-name { margin-bottom: 5px; font-size: 1.08rem; font-weight: 950; }
  #rk-opt-guide .rk-opt-author-role { color: #bdd4de; font-size: .68rem; line-height: 1.55; }
  #rk-opt-guide .rk-opt-author-social-label {
    margin-top: 24px;
    color: #8ca8b5;
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-opt-guide .rk-opt-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }
  #rk-opt-guide .rk-opt-author-social a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #507080;
    border-radius: 50%;
    color: var(--rk-white);
  }
  #rk-opt-guide .rk-opt-author-social a:hover { border-color: var(--rk-cyan); color: var(--rk-cyan); }
  #rk-opt-guide .rk-opt-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-opt-guide .rk-opt-author-main { padding: 30px 34px; }
  #rk-opt-guide .rk-opt-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-opt-guide .rk-opt-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-opt-guide .rk-opt-author-quote p { margin: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-opt-guide .rk-opt-author-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 20px; }
  #rk-opt-guide .rk-opt-author-tab {
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e2edf1;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 900;
  }
  #rk-opt-guide .rk-opt-author-panel { display: none; color: var(--rk-text); }
  #rk-opt-guide #rk-opt-author-about:checked ~ .rk-opt-author-layout .rk-opt-author-panel-about,
  #rk-opt-guide #rk-opt-author-exp:checked ~ .rk-opt-author-layout .rk-opt-author-panel-exp,
  #rk-opt-guide #rk-opt-author-method:checked ~ .rk-opt-author-layout .rk-opt-author-panel-method { display: block; }
  #rk-opt-guide #rk-opt-author-about:checked ~ .rk-opt-author-layout label[for="rk-opt-author-about"],
  #rk-opt-guide #rk-opt-author-exp:checked ~ .rk-opt-author-layout label[for="rk-opt-author-exp"],
  #rk-opt-guide #rk-opt-author-method:checked ~ .rk-opt-author-layout label[for="rk-opt-author-method"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }
  #rk-opt-guide .rk-opt-mini-label {
    margin: 21px 0 8px;
    color: var(--rk-muted);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-opt-guide .rk-opt-portals { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-opt-guide .rk-opt-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: 920px) {
    #rk-opt-guide .rk-opt-hero-metrics,
    #rk-opt-guide .rk-opt-grid-3,
    #rk-opt-guide .rk-opt-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-opt-guide .rk-opt-fields,
    #rk-opt-guide .rk-opt-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-opt-guide .rk-opt-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
  }
  @media (max-width: 720px) {
    #rk-opt-guide { margin-top: 18px; font-size: 16px; }
    #rk-opt-guide .rk-opt-shell { border-radius: 18px; }
    #rk-opt-guide .rk-opt-nav { grid-template-columns: 1fr; gap: 5px; }
    #rk-opt-guide .rk-opt-nav-label { padding: 0 0 4px 2px; }
    #rk-opt-guide .rk-opt-nav-track { width: 100%; }
    #rk-opt-guide .rk-opt-grid-2,
    #rk-opt-guide .rk-opt-result-grid,
    #rk-opt-guide .rk-opt-checklist { grid-template-columns: 1fr; }
    #rk-opt-guide .rk-opt-result-head { grid-template-columns: 1fr; }
    #rk-opt-guide .rk-opt-author-head { display: block; }
    #rk-opt-guide .rk-opt-author-mark { margin-top: 12px; text-align: left; }
    #rk-opt-guide .rk-opt-author-layout { grid-template-columns: 1fr; }
    #rk-opt-guide .rk-opt-table-wrap { overflow: visible; border: 0; }
    #rk-opt-guide table,
    #rk-opt-guide thead,
    #rk-opt-guide tbody,
    #rk-opt-guide tr,
    #rk-opt-guide th,
    #rk-opt-guide td { display: block; width: 100%; }
    #rk-opt-guide thead {
      position: absolute;
      overflow: hidden;
      width: 1px;
      height: 1px;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    #rk-opt-guide tr {
      overflow: hidden;
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
    }
    #rk-opt-guide td {
      position: relative;
      padding: 39px 15px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
    #rk-opt-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-opt-guide .rk-opt-hero { padding-left: 21px; padding-right: 21px; }
    #rk-opt-guide .rk-opt-hero-metrics,
    #rk-opt-guide .rk-opt-grid-3,
    #rk-opt-guide .rk-opt-grid-4,
    #rk-opt-guide .rk-opt-fields,
    #rk-opt-guide .rk-opt-metrics { grid-template-columns: 1fr; }
    #rk-opt-guide .rk-opt-field.is-wide { grid-column: auto; }
    #rk-opt-guide .rk-opt-content { padding-left: 16px; padding-right: 16px; }
    #rk-opt-guide .rk-opt-nav { padding-left: 15px; padding-right: 15px; }
    #rk-opt-guide .rk-opt-nav a { font-size: .61rem; }
    #rk-opt-guide .rk-opt-author-main { padding: 24px 18px; }
    #rk-opt-guide .rk-opt-author-quote { padding-left: 58px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-opt-guide *,
    #rk-opt-guide *::before,
    #rk-opt-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<div id="rk-opt-guide">
  <article class="rk-opt-shell">
    <header class="rk-opt-hero">
      <span class="rk-opt-kicker">Zasilanie • powrót • powierzchnia • krzywa grzewcza</span>
      <p class="rk-opt-hero-title">Optymalna temperatura podłogówki to <span>najniższa temperatura, która pokrywa obciążenie budynku</span></p>
      <p class="rk-opt-lead">Nie istnieje jedna nastawa właściwa dla każdego domu. Temperaturę projektową wyznacza się z wymaganej mocy, powierzchni czynnej, konstrukcji podłogi i okładziny, a podczas eksploatacji dopasowuje krzywą grzewczą do temperatury zewnętrznej.</p>
      <div class="rk-opt-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-opt-hero-tag">Zasilanie, powrót i ΔT</span>
        <span class="rk-opt-hero-tag">Temperatura powierzchni</span>
        <span class="rk-opt-hero-tag">Pompa ciepła, gaz i pellet</span>
        <span class="rk-opt-hero-tag">Analizator z dynamicznym wykresem</span>
      </div>
      <div class="rk-opt-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Aktualizacja techniczna: <strong>1 września 2026 r.</strong></span>
        <span>Czas czytania: <strong>około 25 minut</strong></span>
      </div>
      <div class="rk-opt-hero-metrics" aria-label="Najważniejsze reguły">
        <div class="rk-opt-hero-metric"><b>28–35°C to częsty zakres, nie przepis</b><span>W dobrze zaprojektowanych domach może wystarczać przez dużą część sezonu.</span></div>
        <div class="rk-opt-hero-metric"><b>Powierzchnia ≠ woda</b><span>Temperatura zasilania, powierzchni posadzki i powietrza to trzy inne wielkości.</span></div>
        <div class="rk-opt-hero-metric"><b>Krzywa zamiast stałej nastawy</b><span>W cieplejszy dzień instalacja zwykle potrzebuje chłodniejszej wody niż podczas mrozu.</span></div>
      </div>
    </header>

    <nav class="rk-opt-nav" aria-label="Skróty do wszystkich części artykułu">
      <span class="rk-opt-nav-label">Na skróty — wszystkie H2</span>
      <div class="rk-opt-nav-track">
        <a href="#rk-opt-szybka">Szybka odpowiedź</a>
        <a href="#rk-opt-temperatury">Siedem temperatur</a>
        <a href="#rk-opt-definicja">Co znaczy optymalna</a>
        <a href="#rk-opt-obciazenie">Strata i powierzchnia</a>
        <a href="#rk-opt-analizator">Analizator</a>
        <a href="#rk-opt-wynik">Interpretacja wyniku</a>
        <a href="#rk-opt-powierzchnia">Woda a powierzchnia</a>
        <a href="#rk-opt-limity">Limity powierzchni</a>
        <a href="#rk-opt-okladzina">Okładzina</a>
        <a href="#rk-opt-delta">Powrót i ΔT</a>
        <a href="#rk-opt-przeplyw">Przepływ</a>
        <a href="#rk-opt-krzywa">Krzywa grzewcza</a>
        <a href="#rk-opt-regulacja">Regulacja po rozruchu</a>
        <a href="#rk-opt-pompa">Pompa ciepła</a>
        <a href="#rk-opt-gaz">Kocioł gazowy</a>
        <a href="#rk-opt-pellet">Pellet i mieszanie</a>
        <a href="#rk-opt-pokoje">Jedna woda, różne pokoje</a>
        <a href="#rk-opt-rotametry">Rotametry</a>
        <a href="#rk-opt-diagnostyka">Za zimno lub za ciepło</a>
        <a href="#rk-opt-bezwladnosc">Bezwładność</a>
        <a href="#rk-opt-wysoka">40, 45 i 50°C</a>
        <a href="#rk-opt-bledy">Błędy</a>
        <a href="#rk-opt-checklista">Checklista</a>
        <a href="#rk-opt-faq">FAQ</a>
        <a href="#rk-opt-zrodla">Źródła</a>
        <a href="#rk-opt-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-opt-content">
      <section class="rk-opt-section" id="rk-opt-szybka">
        <span class="rk-opt-eyebrow">Odpowiedź w 60 sekund</span>
        <h2>Jaka jest optymalna temperatura ogrzewania podłogowego?</h2>
        <p class="rk-opt-intro"><strong>Optymalna jest najniższa temperatura zasilania, przy której instalacja pokrywa obliczeniowe straty ciepła wszystkich pomieszczeń, nie przekracza ograniczeń powierzchni i utrzymuje zadaną temperaturę wnętrza.</strong></p>
        <div class="rk-opt-answer">
          <h3>Najważniejsza odpowiedź</h3>
          <p>W wielu dobrze zaprojektowanych nowych budynkach woda zasilająca ma przez znaczną część sezonu około 28–35°C. Nie jest to jednak obowiązkowy zakres dla każdego domu ani normowe maksimum. Podczas łagodnej pogody wystarczy mniej, a w warunkach projektowego mrozu konkretny układ może wymagać innej wartości.</p>
        </div>
        <div class="rk-opt-grid-4">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">28–35</span><h3>Częsty zakres pracy</h3><p>Dobra orientacja dla niskotemperaturowej instalacji, ale nie wynik obliczeń konkretnego domu.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">θV</span><h3>Zasilanie</h3><p>Temperatura wody wpływającej do pętli. Nie jest temperaturą górnej powierzchni podłogi.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">θF</span><h3>Powierzchnia</h3><p>To jej temperatura decyduje o komforcie i ograniczeniach okładziny.</p></div>
          <div class="rk-opt-card is-purple"><span class="rk-opt-card-icon">Tzew</span><h3>Pogoda</h3><p>Im cieplej na zewnątrz, tym mniejszej temperatury zasilania zwykle potrzebuje budynek.</p></div>
        </div>
        <div class="rk-opt-warning"><p><strong>Nie ustawiaj 35°C jako stałej wartości przez cały sezon.</strong> Przy temperaturze zewnętrznej +10°C ta sama instalacja potrzebuje znacznie mniej mocy niż podczas mrozu. Stała wysoka nastawa sprzyja przegrzewaniu i pracy regulatorów w trybie ciągłego zamykania obwodów.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-temperatury">
        <span class="rk-opt-eyebrow">Najczęstsze źródło nieporozumień</span>
        <h2>Siedem temperatur, których nie wolno ze sobą mylić</h2>
        <p class="rk-opt-intro">Zdanie „mam na podłogówce 30°C” jest niepełne. Trzeba wiedzieć, gdzie wykonano pomiar, przy jakiej pogodzie i czy instalacja pracowała stabilnie.</p>
        <div class="rk-opt-grid-4">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">θV</span><h3>Temperatura zasilania</h3><p>Woda wpływająca do pętli lub rozdzielacza.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">θR</span><h3>Temperatura powrotu</h3><p>Woda wracająca po oddaniu części ciepła.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">θm</span><h3>Średnia temperatura wody</h3><p>W prostym przybliżeniu średnia z zasilania i powrotu.</p></div>
          <div class="rk-opt-card is-purple"><span class="rk-opt-card-icon">ΔT</span><h3>Spadek temperatury</h3><p>Różnica między zasilaniem i powrotem.</p></div>
          <div class="rk-opt-card"><span class="rk-opt-card-icon">θF</span><h3>Temperatura powierzchni</h3><p>Temperatura gotowej posadzki od strony pomieszczenia.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">θi</span><h3>Temperatura wnętrza</h3><p>Wartość obliczeniowa albo rzeczywiście zmierzona w pokoju.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">θe</span><h3>Temperatura zewnętrzna</h3><p>Podstawowy sygnał dla regulatora pogodowego.</p></div>
          <div class="rk-opt-card is-purple"><span class="rk-opt-card-icon">θmax</span><h3>Limit produktu</h3><p>Maksymalna temperatura dopuszczona przez okładzinę lub jej system montażowy.</p></div>
        </div>
        <div class="rk-opt-formula">
          <strong>ΔT<sub>wody</sub> = θ<sub>V</sub> − θ<sub>R</sub></strong>
          <span>Różnica zasilanie–powrót nie jest różnicą między wodą i pomieszczeniem.</span>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-definicja">
        <span class="rk-opt-eyebrow">Projekt i eksploatacja to dwa etapy</span>
        <h2>Co dokładnie oznacza „optymalna temperatura”?</h2>
        <p class="rk-opt-intro">W projekcie szukamy temperatury zapewniającej wymaganą moc podczas obliczeniowej temperatury zewnętrznej. W eksploatacji regulator pogodowy obniża ją wraz ze wzrostem temperatury na zewnątrz.</p>
        <div class="rk-opt-grid-2">
          <div class="rk-opt-card"><h3>Temperatura projektowa</h3><p>Wynika z najtrudniejszego pomieszczenia, jego powierzchni czynnej, konstrukcji podłogi, rozstawu rur i oporu okładziny. Jest sprawdzana dla warunków obliczeniowego mrozu.</p></div>
          <div class="rk-opt-card is-orange"><h3>Temperatura eksploatacyjna</h3><p>Zmienia się wraz z pogodą i rzeczywistym zachowaniem budynku. Ustawia ją krzywa grzewcza, a nie jedna wartość zapisana na cały rok.</p></div>
        </div>
        <p>Metodyka normowa wyznacza wydajność powierzchni grzewczej jako funkcję różnicy temperatur między medium a pomieszczeniem oraz parametrów konstrukcji. Wynikiem są między innymi charakterystyki mocy i temperatury powierzchni. <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a></p>
      </section>

      <section class="rk-opt-section" id="rk-opt-obciazenie">
        <span class="rk-opt-eyebrow">Temperatura zaczyna się od W/m²</span>
        <h2>Strata ciepła i powierzchnia czynna wyznaczają wymaganie podłogi</h2>
        <p class="rk-opt-intro">Powierzchnia całego pokoju nie zawsze jest powierzchnią grzewczą. Trwała zabudowa, wyłączone pola, kominek albo duża wyspa mogą zmniejszyć obszar, z którego trzeba przekazać całą wymaganą moc.</p>
        <div class="rk-opt-formula">
          <strong>q<sub>wym</sub> = Q<sub>pomieszczenia</sub> / A<sub>czynna</sub></strong>
          <span>Q — projektowa strata ciepła [W], A — rzeczywiście ogrzewana powierzchnia [m²], q — wymagana moc jednostkowa [W/m²].</span>
        </div>
        <p>Pomieszczenie tracące 1000 W i mające 20 m² czynnej podłogi wymaga 50 W/m². Jeżeli rury mogą znaleźć się tylko na 12 m², wymaganie rośnie do około 83 W/m². Podniesienie temperatury zasilania nie zawsze rozwiąże taki przypadek, ponieważ ograniczeniem może stać się temperatura powierzchni.</p>
        <div class="rk-opt-note"><p>Projektowanie i wymiarowanie powinno zapewnić wymaganą moc całego systemu, a nie tylko „ciepłą podłogę” w dotyku. <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021</a></p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-analizator">
        <span class="rk-opt-eyebrow">Narzędzie projektowe i diagnostyczne</span>
        <h2>Interaktywny analizator temperatury i krzywej grzewczej</h2>
        <p class="rk-opt-intro">Wpisz jeden punkt projektowy oraz bieżące pomiary. Narzędzie pokaże wymaganą moc jednostkową, temperaturę powierzchni wynikającą z tej mocy, aktualne ΔT, przebieg krzywej i kierunek korekty. Nie zastępuje charakterystyki konkretnego systemu podłogowego.</p>

        <div class="rk-opt-tool">
          <div class="rk-opt-tool-head">
            <h3>Sprawdź punkt pracy i sposób korekty krzywej</h3>
            <p>Najpierw projekt i ograniczenie powierzchni, później obserwacja działającej instalacji. Wszystkie wyniki są ułożone kolejno pełną szerokością.</p>
          </div>
          <form class="rk-opt-tool-body" id="rk-opt-form">
            <div class="rk-opt-step">
              <div class="rk-opt-step-title"><b>1</b><h4>Obciążenie analizowanego pomieszczenia</h4></div>
              <div class="rk-opt-fields">
                <div class="rk-opt-field">
                  <label for="rk-opt-load">Projektowa strata ciepła [W]</label>
                  <input id="rk-opt-load" type="number" min="50" max="20000" step="10" value="1000" inputmode="decimal">
                  <small>Najlepiej z obliczeń dla konkretnego pomieszczenia.</small>
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-active-area">Powierzchnia czynna podłogi [m²]</label>
                  <input id="rk-opt-active-area" type="number" min="0.5" max="300" step="0.1" value="20" inputmode="decimal">
                  <small>Bez trwałej zabudowy i pól bez rur.</small>
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-room-design">Projektowa temperatura pokoju [°C]</label>
                  <input id="rk-opt-room-design" type="number" min="15" max="30" step="0.5" value="20" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-zone">Strefa powierzchni</label>
                  <select id="rk-opt-zone">
                    <option value="occupied" selected="">Stałe przebywanie — 29°C</option>
                    <option value="bathroom">Łazienka — 33°C</option>
                    <option value="edge">Strefa brzegowa — 35°C</option>
                    <option value="custom">Własny limit</option>
                  </select>
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-zone-limit">Własny limit powierzchni [°C]</label>
                  <input id="rk-opt-zone-limit" type="number" min="20" max="40" step="0.5" value="29" inputmode="decimal">
                  <small>Aktywny tylko dla opcji „Własny limit”.</small>
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-product-limit">Niższy limit okładziny [°C] — opcjonalnie</label>
                  <input id="rk-opt-product-limit" type="number" min="20" max="40" step="0.5" placeholder="np. 27" inputmode="decimal">
                  <small>Z aktualnej dokumentacji konkretnego produktu.</small>
                </div>
              </div>
            </div>

            <div class="rk-opt-step">
              <div class="rk-opt-step-title"><b>2</b><h4>Punkt projektowy krzywej grzewczej</h4></div>
              <div class="rk-opt-fields">
                <div class="rk-opt-field">
                  <label for="rk-opt-outdoor-design">Projektowa temperatura zewnętrzna [°C]</label>
                  <input id="rk-opt-outdoor-design" type="number" min="-35" max="5" step="1" value="-20" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-supply-design">Zasilanie przy temperaturze projektowej [°C]</label>
                  <input id="rk-opt-supply-design" type="number" min="22" max="60" step="0.5" value="35" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-heating-stop">Granica wyłączenia ogrzewania [°C]</label>
                  <input id="rk-opt-heating-stop" type="number" min="8" max="22" step="1" value="15" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-min-supply">Minimalne zasilanie przy granicy grzania [°C]</label>
                  <input id="rk-opt-min-supply" type="number" min="18" max="35" step="0.5" value="24" inputmode="decimal">
                </div>
              </div>
            </div>

            <div class="rk-opt-step">
              <div class="rk-opt-step-title"><b>3</b><h4>Bieżący pomiar i zachowanie budynku</h4></div>
              <div class="rk-opt-fields">
                <div class="rk-opt-field">
                  <label for="rk-opt-outdoor-now">Temperatura zewnętrzna teraz [°C]</label>
                  <input id="rk-opt-outdoor-now" type="number" min="-35" max="25" step="0.5" value="0" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-supply-now">Zmierzona temperatura zasilania [°C]</label>
                  <input id="rk-opt-supply-now" type="number" min="18" max="65" step="0.5" value="30" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-return-now">Zmierzona temperatura powrotu [°C]</label>
                  <input id="rk-opt-return-now" type="number" min="15" max="60" step="0.5" value="25" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-room-target">Temperatura zadana w domu [°C]</label>
                  <input id="rk-opt-room-target" type="number" min="15" max="28" step="0.5" value="21" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-room-actual">Temperatura rzeczywista [°C]</label>
                  <input id="rk-opt-room-actual" type="number" min="10" max="32" step="0.1" value="21" inputmode="decimal">
                </div>
                <div class="rk-opt-field">
                  <label for="rk-opt-stable">Czas stabilnej pracy bez zmian</label>
                  <select id="rk-opt-stable">
                    <option value="short">Mniej niż 12 godzin</option>
                    <option value="medium">12–24 godziny</option>
                    <option value="long" selected="">Ponad 24 godziny</option>
                  </select>
                </div>
                <div class="rk-opt-field is-wide">
                  <label for="rk-opt-symptom">Najlepiej opisujące zachowanie instalacji</label>
                  <select id="rk-opt-symptom">
                    <option value="good" selected="">Temperatura w domu jest stabilna</option>
                    <option value="cold-all">Za chłodno zarówno przy mrozie, jak i łagodnej pogodzie</option>
                    <option value="warm-all">Za ciepło zarówno przy mrozie, jak i łagodnej pogodzie</option>
                    <option value="cold-frost">Dobrze przy łagodnej pogodzie, za chłodno podczas mrozu</option>
                    <option value="warm-mild">Dobrze podczas mrozu, za ciepło przy łagodnej pogodzie</option>
                    <option value="one-room">Problem dotyczy tylko jednego lub kilku pomieszczeń</option>
                  </select>
                </div>
              </div>
              <button class="rk-opt-tool-button" type="submit">Przelicz i pokaż kierunek regulacji</button>
            </div>

            <div class="rk-opt-step" aria-live="polite">
              <div class="rk-opt-result-head">
                <div>
                  <h4 id="rk-opt-result-title">Punkt pracy wygląda spójnie</h4>
                  <p id="rk-opt-result-text">Jeżeli komfort jest stabilny, nie podnoś temperatury tylko dlatego, że podłoga nie wydaje się ciepła w dotyku.</p>
                </div>
                <span class="rk-opt-result-badge is-good" id="rk-opt-result-badge">Bez korekty</span>
              </div>
              <div class="rk-opt-metrics">
                <div class="rk-opt-metric"><span>Wymagana moc</span><strong id="rk-opt-metric-q">50,0 W/m²</strong></div>
                <div class="rk-opt-metric"><span>Wymagana temp. powierzchni</span><strong id="rk-opt-metric-surface">24,8°C</strong></div>
                <div class="rk-opt-metric"><span>Aktualne ΔT</span><strong id="rk-opt-metric-dt">5,0 K</strong></div>
                <div class="rk-opt-metric"><span>Średnia woda</span><strong id="rk-opt-metric-mean">27,5°C</strong></div>
                <div class="rk-opt-metric"><span>Krzywa dla dziś</span><strong id="rk-opt-metric-curve">28,7°C</strong></div>
                <div class="rk-opt-metric"><span>Odchylenie pomiaru</span><strong id="rk-opt-metric-deviation">+1,3 K</strong></div>
                <div class="rk-opt-metric"><span>Przepływ energetyczny</span><strong id="rk-opt-metric-flow">172 l/h</strong></div>
                <div class="rk-opt-metric"><span>Korekta modelu</span><strong id="rk-opt-metric-correction">0 K</strong></div>
              </div>
              <div class="rk-opt-result-grid">
                <div class="rk-opt-result-card">
                  <h4>Diagnostyka wyniku</h4>
                  <div class="rk-opt-diagnostics" id="rk-opt-diagnostics"></div>
                </div>
                <div class="rk-opt-result-card">
                  <h4>Co zrobić jako następny krok?</h4>
                  <div class="rk-opt-diagnostics" id="rk-opt-actions"></div>
                </div>
              </div>
              <div class="rk-opt-chart-wrap">
                <svg class="rk-opt-chart" id="rk-opt-chart" viewBox="0 0 760 430" role="img" aria-labelledby="rk-opt-chart-title rk-opt-chart-desc">
                  <title id="rk-opt-chart-title">Krzywa temperatury zasilania ogrzewania podłogowego</title>
                  <desc id="rk-opt-chart-desc">Wykres pokazuje temperaturę zasilania względem temperatury zewnętrznej, wariant przed i po sugerowanej korekcie oraz bieżący punkt pomiarowy.</desc>
                  <g id="rk-opt-chart-grid"></g>
                  <g id="rk-opt-chart-lines"></g>
                  <g id="rk-opt-chart-points"></g>
                  <g id="rk-opt-chart-labels"></g>
                </svg>
                <div class="rk-opt-chart-legend" aria-hidden="true">
                  <span><i></i> aktualna krzywa</span>
                  <span class="is-proposed"><i></i> wariant po korekcie</span>
                  <span class="is-measured"><i></i> bieżący pomiar</span>
                </div>
              </div>
              <p class="rk-opt-tool-disclaimer">Model liniowy służy do zrozumienia nachylenia i przesunięcia krzywej. Rzeczywisty sterownik może używać innej numeracji oraz kształtu charakterystyki. Zmiany w działającej, masywnej podłodze oceniaj dopiero po ustabilizowaniu budynku.</p>
            </div>
          </form>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-wynik">
        <span class="rk-opt-eyebrow">Narzędzie wskazuje kierunek, nie magiczną liczbę</span>
        <h2>Jak interpretować wynik analizatora temperatury?</h2>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">↕</span><h3>Przesunięcie równoległe</h3><p>Gdy we wszystkich warunkach jest podobnie za chłodno albo za ciepło, problem może dotyczyć wysokości całej krzywej.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">∠</span><h3>Nachylenie</h3><p>Gdy problem pojawia się głównie podczas mrozu albo tylko przy łagodnej pogodzie, sprawdzamy nachylenie i minimalną temperaturę.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">1 pokój</span><h3>Problem lokalny</h3><p>Jeżeli pozostałe pomieszczenia są poprawne, najpierw sprawdzamy przepływ, siłownik, powietrze, powierzchnię i okładzinę.</p></div>
        </div>
        <div class="rk-opt-warning"><p><strong>Wynik „poza limitem powierzchni” zatrzymuje regulację krzywej.</strong> Jeżeli wymagana moc oznaczałaby przekroczenie dopuszczalnej temperatury powierzchni, nie wolno rozwiązywać problemu samym podniesieniem zasilania.</p></div>
      </section>

      <aside class="rk-opt-sales-cta" aria-label="Zamówienie projektu po analizie temperatury">
        <h3>Analizator pokazuje kierunek korekty, ale nie zna rzeczywistej charakterystyki Twojej podłogi</h3>
        <p>Nie widzi geometrii pomieszczeń, pól bez rur, konstrukcji jastrychu, oporu każdej okładziny, długości pętli ani oporów hydraulicznych. Jeżeli jesteś przed wykonaniem instalacji, temperaturę projektową trzeba wyznaczyć razem z mocą pomieszczeń, rozstawem, przepływami i nastawami rozdzielacza — nie dopiero w menu pompy ciepła lub kotła.</p>
        <a class="rk-opt-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczoną temperaturą zasilania</a>
      </aside>

      <section class="rk-opt-section" id="rk-opt-powierzchnia">
        <span class="rk-opt-eyebrow">Zasilanie 35°C nie daje podłogi 35°C</span>
        <h2>Temperatura wody a temperatura powierzchni posadzki</h2>
        <p class="rk-opt-intro">Pomiędzy wodą w rurze a użytkownikiem znajdują się ścianka przewodu, jastrych, klej, podkład i okładzina. Na powierzchnię wpływa również rozstaw rur oraz odbiór ciepła przez pomieszczenie.</p>
        <p>Przy tej samej temperaturze zasilania dwie podłogi mogą mieć inną moc oraz inną równomierność temperatury. Właśnie dlatego norma opisuje charakterystyki konkretnych układów i zależność mocy od różnicy temperatur, zamiast przypisywać jedną temperaturę do każdej podłogówki. <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-floor-heating-methods-for-the-determination-of-the-thermal-output-using-calculations-and-experimental-tests" target="_blank" rel="noopener nofollow">Metodyka BS EN 1264-2:2021</a></p>
        <div class="rk-opt-formula">
          <strong>q ≈ 8,92 × (θ<sub>F,m</sub> − θ<sub>i</sub>)<sup>1,1</sup></strong>
          <span>Uproszczona zależność pokazuje związek między średnią temperaturą powierzchni, temperaturą pomieszczenia i oddawaną mocą. Nie jest wzorem na temperaturę zasilania.</span>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-limity">
        <span class="rk-opt-eyebrow">Granica projektowa nie jest temperaturą docelową</span>
        <h2>Temperatura powierzchni: 29°C, 33°C i 35°C</h2>
        <p class="rk-opt-intro">Wartości należy łączyć z właściwą strefą oraz temperaturą pomieszczenia. Nie oznaczają, że każdą podłogę trzeba rozgrzać do granicy.</p>
        <div class="rk-opt-table-wrap">
          <table>
            <thead><tr><th>Strefa</th><th>Przykładowa granica</th><th>Jak ją interpretować</th><th>Dodatkowe ograniczenie</th></tr></thead>
            <tbody>
              <tr><td data-label="Strefa"><strong>Stałe przebywanie ludzi</strong></td><td data-label="Przykładowa granica">29°C</td><td data-label="Jak ją interpretować">Projektowa granica średniej temperatury głównej powierzchni.</td><td data-label="Dodatkowe ograniczenie">Okładzina może wymagać mniej.</td></tr>
              <tr><td data-label="Strefa"><strong>Łazienka</strong></td><td data-label="Przykładowa granica">33°C</td><td data-label="Jak ją interpretować">Łączona z wyższą temperaturą obliczeniową pomieszczenia.</td><td data-label="Dodatkowe ograniczenie">Powierzchnia czynna bywa mała.</td></tr>
              <tr><td data-label="Strefa"><strong>Strefa brzegowa</strong></td><td data-label="Przykładowa granica">35°C</td><td data-label="Jak ją interpretować">Dotyczy świadomie wydzielonego pola, nie całego salonu.</td><td data-label="Dodatkowe ograniczenie">Wymaga projektu geometrii i rozstawu.</td></tr>
              <tr><td data-label="Strefa"><strong>Panel lub drewno</strong></td><td data-label="Przykładowa granica">Według produktu</td><td data-label="Jak ją interpretować">Obowiązuje aktualna instrukcja dokładnej okładziny.</td><td data-label="Dodatkowe ograniczenie">Często niższe niż granica strefy.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Szczegółowe rozwinięcie granic pozostawiamy w osobnym artykule o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-okladzina">
        <span class="rk-opt-eyebrow">Rodzaj posadzki nie wyznacza sam temperatury</span>
        <h2>Płytki, panele i drewno a temperatura podłogówki</h2>
        <p class="rk-opt-intro">Nie można przypisać płytkom zasilania 30°C, panelom 35°C, a drewnu 40°C bez podania obciążenia i całej konstrukcji. Kluczowy jest rzeczywisty opór całego wykończenia.</p>
        <div class="rk-opt-formula">
          <strong>R<sub>wykończenia</sub> = R<sub>okładziny</sub> + R<sub>podkładu</sub> + R<sub>pozostałych warstw</sub></strong>
          <span>Do obliczeń przyjmuj dane dokładnego produktu, a nie orientacyjną wartość całej kategorii.</span>
        </div>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><h3>Płytki i gres</h3><p>Zwykle mają niski opór, dzięki czemu ułatwiają uzyskanie wymaganej mocy przy niższej temperaturze średniej wody.</p></div>
          <div class="rk-opt-card is-orange"><h3>Panele</h3><p>Trzeba zsumować panel i podkład oraz sprawdzić dopuszczalną temperaturę powierzchni dokładnego produktu.</p></div>
          <div class="rk-opt-card is-green"><h3>Drewno</h3><p>Znaczenie mają opór, budowa, wilgotność, sposób montażu i ograniczenie temperatury wskazane w instrukcji.</p></div>
        </div>
        <p>Zobacz osobne porównanie: <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele czy płytki na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-delta">
        <span class="rk-opt-eyebrow">Powrót jest częścią punktu pracy</span>
        <h2>Temperatura powrotu i ΔT ogrzewania podłogowego</h2>
        <p class="rk-opt-intro">Samo zasilanie nie opisuje ilości transportowanej energii. Dla mocy obwodu potrzebujemy również przepływu i różnicy temperatur.</p>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">małe ΔT</span><h3>Duży przepływ lub mały odbiór</h3><p>Może być prawidłowe, ale wymaga stabilnego pomiaru i sprawdzenia warunków pracy.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">5 K</span><h3>Częste założenie</h3><p>Około 5 K jest popularnym punktem projektowym, ale nie uniwersalnym obowiązkiem.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">duże ΔT</span><h3>Mały przepływ lub duży odbiór</h3><p>Wysoka różnica może wskazywać na ograniczony przepływ, lecz diagnoza wymaga całej hydrauliki.</p></div>
        </div>
        <p>Rozwinięcie znajdziesz w artykule: <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%CE%B4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury zasilania i powrotu w podłogówce</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-przeplyw">
        <span class="rk-opt-eyebrow">Przepływ wynika z mocy i ΔT</span>
        <h2>Jak obliczyć orientacyjny przepływ w ogrzewaniu podłogowym?</h2>
        <div class="rk-opt-formula">
          <strong>V̇ [m³/h] = Q [kW] / (1,163 × ΔT [K])</strong>
          <span>Dla wody. Wynik całego pomieszczenia trzeba następnie rozdzielić między rzeczywiste pętle zgodnie z ich mocą i hydrauliką.</span>
        </div>
        <p>Pomieszczenie wymagające 1 kW przy ΔT równym 5 K potrzebuje energetycznie około 0,172 m³/h, czyli 172 l/h. Nie oznacza to automatycznie nastawy jednego rotametru 2,87 l/min, jeżeli pomieszczenie ma kilka obwodów albo pętle obsługują również inne pola.</p>
        <div class="rk-opt-note"><p><strong>Wzór na przepływ nie wyznacza temperatury zasilania.</strong> Do temperatury potrzebna jest charakterystyka cieplna podłogi. Do nastawy rotametrów potrzebny jest podział mocy i obwodów.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-krzywa">
        <span class="rk-opt-eyebrow">Temperatura powinna reagować na pogodę</span>
        <h2>Jak działa krzywa grzewcza podłogówki?</h2>
        <p class="rk-opt-intro">Krzywa grzewcza przypisuje temperaturę zasilania do temperatury zewnętrznej. Przy spadku temperatury na zewnątrz budynek traci więcej ciepła, dlatego regulator podnosi temperaturę wody.</p>
        <div class="rk-opt-grid-2">
          <div class="rk-opt-card"><h3>Nachylenie</h3><p>Decyduje, jak silnie zasilanie rośnie wraz z mrozem. Za małe nachylenie daje problem głównie w zimne dni; za duże może przegrzewać podczas mrozu.</p></div>
          <div class="rk-opt-card is-orange"><h3>Przesunięcie</h3><p>Podnosi lub obniża całą charakterystykę. Stosujemy je, gdy odchylenie temperatury wewnętrznej jest podobne w różnych warunkach pogodowych.</p></div>
        </div>
        <p>Numer krzywej nie jest porównywalny między wszystkimi sterownikami. Jedna automatyka używa nachylenia i poziomu, inna dwóch punktów, a jeszcze inna parametrów opisanych własną skalą. Zobacz szczegółowy poradnik o <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej w ogrzewaniu podłogowym</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-regulacja">
        <span class="rk-opt-eyebrow">Jedna zmiana i czas na reakcję</span>
        <h2>Jak regulować temperaturę podłogówki po uruchomieniu?</h2>
        <ol>
          <li><strong>Otwórz i zrównoważ obwody</strong> zgodnie z projektem, zanim zaczniesz oceniać krzywą.</li>
          <li><strong>Utrzymuj możliwie stabilne warunki</strong> i nie wykonuj kilku zmian jednocześnie.</li>
          <li><strong>Zapisuj pogodę, zasilanie, powrót i temperaturę wnętrza</strong> o podobnych porach.</li>
          <li><strong>Przy problemie w całym domu</strong> koryguj poziom albo nachylenie małym krokiem.</li>
          <li><strong>Przy problemie jednego pokoju</strong> nie podnoś od razu temperatury całego źródła.</li>
          <li><strong>Po zmianie poczekaj na ustabilizowanie</strong> masywnej podłogi i budynku.</li>
        </ol>
        <div class="rk-opt-warning"><p>Nie zmieniaj równocześnie krzywej, przepływów, harmonogramów, głowic i temperatury zadanej. Jeżeli komfort się poprawi, nie będzie wiadomo, która zmiana była potrzebna.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-pompa">
        <span class="rk-opt-eyebrow">Niska temperatura sprzyja efektywności, ale bez uniwersalnego procentu</span>
        <h2>Temperatura podłogówki przy pompie ciepła</h2>
        <p class="rk-opt-intro">Dobrze zaprojektowana podłogówka jest korzystnym odbiornikiem dla pompy ciepła, ponieważ może przekazywać potrzebną moc przy relatywnie niskiej temperaturze wody.</p>
        <p>Nie będziemy jednak powtarzać zasady, że każdy dodatkowy 1°C obniża COP dokładnie o 2–2,5%. Zależność zależy od urządzenia, temperatury źródła, temperatury zewnętrznej, obciążenia, odszraniania oraz przepływów. Oficjalne opracowania podkreślają znaczenie optymalizacji całego systemu, a nie jednej nastawy. <a href="https://www.gov.uk/government/news/heat-pumps-explained-experts-answer-your-questions" target="_blank" rel="noopener nofollow">GOV.UK — heat pumps explained</a></p>
        <div class="rk-opt-success"><p><strong>Praktyczna reguła:</strong> obniżaj temperaturę do najniższej wartości, przy której najtrudniejsze pomieszczenie nadal osiąga wymaganą temperaturę bez przekraczania ograniczeń systemu.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-gaz">
        <span class="rk-opt-eyebrow">Kocioł może pracować bez osobnego mieszacza</span>
        <h2>Temperatura podłogówki przy kotle gazowym kondensacyjnym</h2>
        <p class="rk-opt-intro">Kocioł gazowy kondensacyjny może bezpośrednio zasilać prawidłowo zaprojektowaną instalację podłogową, jeżeli jego automatyka, zakres modulacji, przepływ i hydraulika odpowiadają systemowi.</p>
        <p>Nie ma zasady, że każdy kocioł gazowy wymaga grupy pompowo-mieszającej. Dodatkowe podmieszanie może być potrzebne w układach mieszanych albo przy określonej architekturze instalacji, ale nie powinno być montowane automatycznie bez celu.</p>
        <div class="rk-opt-note"><p>Niska temperatura powrotu sprzyja kondensacji, ale stabilna praca wymaga także odpowiedniej modulacji i odbioru mocy. Sama liczba 30°C na powrocie nie rozstrzyga poprawności całego układu.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-pellet">
        <span class="rk-opt-eyebrow">Źródło wysokotemperaturowe wymaga kontroli</span>
        <h2>Kocioł na pellet, bufor i zawór mieszający</h2>
        <p class="rk-opt-intro">Kocioł na pellet często pracuje z temperaturą wyższą niż potrzebna podłogówce i może wymagać ochrony temperatury powrotu. Temperatura źródła i temperatura wody kierowanej do rozdzielacza są wtedy dwiema różnymi wartościami.</p>
        <ul class="rk-opt-list">
          <li>Zawór mieszający ogranicza i reguluje temperaturę kierowaną do podłogówki.</li>
          <li>Bufor może rozdzielić czas pracy kotła od chwilowego odbioru instalacji.</li>
          <li>Czujnik i zabezpieczenie powinny działać również przy awarii sterowania.</li>
          <li>Pompa oraz zawór muszą być dobrane do przepływu i dostępnego ciśnienia.</li>
        </ul>
        <p>Więcej o specyfice źródła znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/">kocioł na pellet a ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-pokoje">
        <span class="rk-opt-eyebrow">Jedna temperatura zasilania, różna moc pomieszczeń</span>
        <h2>Czy podłogówka powinna mieć inną temperaturę w każdym pokoju?</h2>
        <p class="rk-opt-intro">W typowym rozdzielaczu wszystkie aktywne pętle otrzymują wodę o tej samej temperaturze zasilania. Różną moc poszczególnych pomieszczeń uzyskuje się już w projekcie.</p>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><h3>Geometria</h3><p>Powierzchnia czynna, układ pętli i strefy bez rur decydują o dostępnej powierzchni wymiany.</p></div>
          <div class="rk-opt-card is-orange"><h3>Rozstaw i okładzina</h3><p>Gęstość rur oraz opór posadzki zmieniają charakterystykę cieplną pola.</p></div>
          <div class="rk-opt-card is-green"><h3>Przepływ</h3><p>Przepływ przypisany pętli wynika z jej mocy, długości i przyjętego ΔT.</p></div>
        </div>
        <p>Termostat może ograniczyć przegrzewanie strefy, lecz nie zastąpi brakującej mocy ani błędnego rozstawu. Osobny analizator omawia, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-rotametry">
        <span class="rk-opt-eyebrow">Równoważenie nie jest niszczeniem hydrauliki</span>
        <h2>Rotametry a regulacja temperatury podłogówki</h2>
        <p class="rk-opt-intro">Rotametr służy do ustawienia przepływu konkretnej pętli. Kontrolowane dławienie jest normalnym elementem równoważenia hydraulicznego, ale nie zastępuje regulacji temperatury zasilania.</p>
        <div class="rk-opt-grid-2">
          <div class="rk-opt-card"><h3>Co można regulować rotametrem?</h3><p>Przepływ i rozdział mocy między pętlami w granicach projektu oraz możliwości hydraulicznych układu.</p></div>
          <div class="rk-opt-card is-orange"><h3>Czego nie powinien zastępować?</h3><p>Krzywej grzewczej, właściwego rozstawu, brakującej powierzchni czynnej ani zabezpieczenia temperatury.</p></div>
        </div>
        <p>Zobacz szczegółowy poradnik: <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">jak odczytać i ustawić rotametr</a>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-diagnostyka">
        <span class="rk-opt-eyebrow">Objaw wskazuje kierunek sprawdzania</span>
        <h2>Podłogówka grzeje za słabo albo za mocno — diagnostyka</h2>
        <div class="rk-opt-table-wrap">
          <table>
            <thead><tr><th>Objaw</th><th>Pierwsza hipoteza</th><th>Co sprawdzić przed zmianą temperatury</th></tr></thead>
            <tbody>
              <tr><td data-label="Objaw"><strong>Za chłodno w całym domu przez cały sezon</strong></td><td data-label="Pierwsza hipoteza">Krzywa za nisko albo ograniczona moc i przepływ.</td><td data-label="Co sprawdzić">Pomiary, otwarcie obwodów, pracę źródła, filtr, pompę i temperaturę projektową.</td></tr>
              <tr><td data-label="Objaw"><strong>Dobrze jesienią, za chłodno podczas mrozu</strong></td><td data-label="Pierwsza hipoteza">Za małe nachylenie albo brak mocy projektowej.</td><td data-label="Co sprawdzić">Najtrudniejsze pomieszczenie, limit powierzchni, wydajność źródła.</td></tr>
              <tr><td data-label="Objaw"><strong>Za ciepło przy łagodnej pogodzie</strong></td><td data-label="Pierwsza hipoteza">Za wysoka dolna część krzywej lub minimalne zasilanie.</td><td data-label="Co sprawdzić">Granice grzania, przesunięcie, wpływ zysków słonecznych.</td></tr>
              <tr><td data-label="Objaw"><strong>Problem tylko w jednym pokoju</strong></td><td data-label="Pierwsza hipoteza">Problem lokalny, nie globalna temperatura źródła.</td><td data-label="Co sprawdzić">Przepływ, siłownik, zapowietrzenie, okładzinę, powierzchnię i długość pętli.</td></tr>
              <tr><td data-label="Objaw"><strong>Podłoga chłodna w dotyku, ale w domu 21°C</strong></td><td data-label="Pierwsza hipoteza">Małe chwilowe zapotrzebowanie na ciepło.</td><td data-label="Co sprawdzić">Temperaturę wnętrza i pogodę; nie podnosić nastawy dla samego odczucia dłoni.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-bezwladnosc">
        <span class="rk-opt-eyebrow">Podłoga nie reaguje jak grzejnik</span>
        <h2>Bezwładność cieplna i obniżanie temperatury na noc</h2>
        <p class="rk-opt-intro">Masywny jastrych magazynuje energię i reaguje wolniej na zmianę nastawy. Dokładny czas zależy od konstrukcji, grubości, mocy, okładziny, temperatury oraz samego budynku — nie można obiecać uniwersalnych 3 albo 6 godzin.</p>
        <p>Obniżenie temperatury wewnętrznej zmniejsza straty budynku, ale w masywnym systemie głęboka, krótka obniżka może być mało użyteczna komfortowo i prowadzić do intensywnego dogrzewania rano. Wartość trzeba dobrać do rytmu domu i możliwości źródła, a nie przyjmować zasady „zawsze utrzymuj stałą temperaturę”.</p>
        <div class="rk-opt-note"><p>Przed oceną nowej krzywej pozwól instalacji pracować stabilnie. Szczególnie w ciężkiej płycie pojedynczy odczyt po kilku godzinach może opisywać poprzednią nastawę bardziej niż bieżącą.</p></div>
      </section>

      <section class="rk-opt-section" id="rk-opt-wysoka">
        <span class="rk-opt-eyebrow">Wysoka liczba wymaga kontekstu</span>
        <h2>Czy 40, 45 albo 50°C na podłogówkę zawsze oznacza błąd?</h2>
        <p class="rk-opt-intro">Nie każda chwilowa wartość 40°C oznacza awarię, ale im wyższe zasilanie, tym ważniejsze staje się sprawdzenie temperatury powierzchni, okładziny, konstrukcji i zabezpieczeń. 50°C nie powinno być traktowane jako zwykła nastawa bez obliczeń.</p>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">40°C</span><h3>Możliwe w części systemów</h3><p>Może pojawić się w trudniejszym budynku, ale warto sprawdzić, dlaczego instalacja potrzebuje takiego parametru.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">45°C</span><h3>Wysoki punkt pracy</h3><p>Wymaga weryfikacji mocy, oporu okładziny, przepływów oraz temperatury powierzchni.</p></div>
          <div class="rk-opt-card is-purple"><span class="rk-opt-card-icon">50°C</span><h3>Nie ustawiaj w ciemno</h3><p>Może szybko ujawnić błędy projektu lub regulacji i przekroczyć ograniczenia konkretnej posadzki.</p></div>
        </div>
        <p>W artykule o maksymalnej temperaturze omawiamy również zabezpieczenia i źródła wysokotemperaturowe. Tu kluczowe jest jedno: <strong>optymalna wartość nie jest najwyższą wartością, którą instalacja jeszcze wytrzyma</strong>.</p>
      </section>

      <section class="rk-opt-section" id="rk-opt-bledy">
        <span class="rk-opt-eyebrow">Najczęstsze błędne skróty</span>
        <h2>Błędy przy ustawianiu temperatury ogrzewania podłogowego</h2>
        <div class="rk-opt-grid-3">
          <div class="rk-opt-card"><span class="rk-opt-card-icon">1</span><h3>Stałe 35°C przez cały sezon</h3><p>Brak reakcji na pogodę prowadzi do niepotrzebnego przegrzewania podczas okresów przejściowych.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">2</span><h3>Temperatura z metrażu</h3><p>Sam metraż nie podaje straty ciepła, powierzchni czynnej ani charakterystyki podłogi.</p></div>
          <div class="rk-opt-card is-green"><span class="rk-opt-card-icon">3</span><h3>Zmiana kilku parametrów naraz</h3><p>Uniemożliwia ocenę, która korekta rzeczywiście zadziałała.</p></div>
          <div class="rk-opt-card is-purple"><span class="rk-opt-card-icon">4</span><h3>Regulacja całego domu dla jednego pokoju</h3><p>Problem lokalny należy najpierw sprawdzić na pętli i w geometrii pomieszczenia.</p></div>
          <div class="rk-opt-card"><span class="rk-opt-card-icon">5</span><h3>Dławienie zamiast krzywej</h3><p>Rotametry służą do równoważenia, a nie do zastępowania regulacji pogodowej.</p></div>
          <div class="rk-opt-card is-orange"><span class="rk-opt-card-icon">6</span><h3>Ocena po kilku godzinach</h3><p>Masywna podłoga i budynek mogą jeszcze reagować na poprzednie ustawienie.</p></div>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-checklista">
        <span class="rk-opt-eyebrow">Przed zmianą ustawień</span>
        <h2>Checklista ustawiania optymalnej temperatury podłogówki</h2>
        <ul class="rk-opt-checklist">
          <li>Znam projektową stratę ciepła pomieszczeń.</li>
          <li>Znam rzeczywiście ogrzewaną powierzchnię podłogi.</li>
          <li>Projekt uwzględnia konkretną okładzinę.</li>
          <li>Znam temperaturę projektową zasilania i powrotu.</li>
          <li>Rozróżniam temperaturę wody i powierzchni.</li>
          <li>Wiem, jaki limit ma wybrana posadzka.</li>
          <li>Przepływy zostały ustawione według projektu.</li>
          <li>Wszystkie pętle są odpowietrzone i drożne.</li>
          <li>Czujniki pokazują wiarygodne temperatury.</li>
          <li>Regulator pogodowy jest aktywny.</li>
          <li>Zmieniam jeden parametr na raz.</li>
          <li>Po zmianie czekam na ustabilizowanie podłogi.</li>
          <li>Problem jednego pokoju diagnozuję lokalnie.</li>
          <li>Nie przekraczam limitu powierzchni dla brakującej mocy.</li>
        </ul>
      </section>

      <section class="rk-opt-section" id="rk-opt-faq">
        <span class="rk-opt-eyebrow">Najczęstsze pytania inwestorów</span>
        <h2>FAQ: optymalna temperatura ogrzewania podłogowego</h2>
        <div class="rk-opt-faq">
          <details><summary>Jaka temperatura zasilania podłogówki jest optymalna?</summary><div class="rk-opt-faq-answer"><p>Najniższa, przy której wszystkie pomieszczenia osiągają temperaturę projektową bez przekroczenia ograniczeń powierzchni i okładziny. W wielu nowych domach przez dużą część sezonu jest to około 28–35°C, ale wynik konkretnego budynku może być inny.</p></div></details>
          <details><summary>Czy 35°C jest maksymalną temperaturą podłogówki?</summary><div class="rk-opt-faq-answer"><p>Nie. To częsty cel dla instalacji niskotemperaturowej, a nie uniwersalne maksimum. Granice wynikają z konstrukcji, temperatury powierzchni, okładziny i dokumentacji systemu.</p></div></details>
          <details><summary>Jaka powinna być temperatura powrotu podłogówki?</summary><div class="rk-opt-faq-answer"><p>Wynika z temperatury zasilania, mocy i przepływu. Nie ustawia się jej jako niezależnej liczby. Częstym założeniem jest ΔT około 5 K, lecz projekt może przyjmować inną wartość.</p></div></details>
          <details><summary>Czy zasilanie i powrót 35/28°C są prawidłowe?</summary><div class="rk-opt-faq-answer"><p>Oznaczają ΔT równe 7 K. Taki punkt może być prawidłowy, jeżeli zapewnia wymagany przepływ i moc, a powierzchnia pozostaje w dopuszczalnym zakresie. Same dwie liczby nie wystarczą do pełnej oceny.</p></div></details>
          <details><summary>Jaka temperatura podłogówki jest najlepsza dla pompy ciepła?</summary><div class="rk-opt-faq-answer"><p>Najniższa zapewniająca projektową moc i komfort. Niższa wymagana temperatura zwykle sprzyja efektywności, ale dokładny wpływ na COP zależy od modelu urządzenia i warunków pracy.</p></div></details>
          <details><summary>Czy podłoga powinna być ciepła w dotyku?</summary><div class="rk-opt-faq-answer"><p>Nie przez cały sezon. Przy małym zapotrzebowaniu powierzchnia może być tylko nieznacznie cieplejsza od powietrza i wydawać się neutralna, mimo że utrzymuje prawidłową temperaturę pomieszczenia.</p></div></details>
          <details><summary>Czy każdy pokój powinien mieć inną temperaturę zasilania?</summary><div class="rk-opt-faq-answer"><p>Zwykle nie. Pętle jednego rozdzielacza otrzymują tę samą temperaturę wody, a różną moc uzyskuje się przez powierzchnię, rozstaw, przepływ, długość pętli i okładzinę.</p></div></details>
          <details><summary>Czy można ustawić podłogówkę na 50°C?</summary><div class="rk-opt-faq-answer"><p>Nie należy robić tego bez obliczeń i kontroli ograniczeń. Tak wysoka temperatura może prowadzić do przekroczenia temperatury powierzchni lub limitu okładziny i zwykle wskazuje na potrzebę sprawdzenia projektu oraz regulacji.</p></div></details>
          <details><summary>Jak często zmieniać krzywą grzewczą?</summary><div class="rk-opt-faq-answer"><p>Wykonuj małe korekty pojedynczo i oceniaj je po ustabilizowaniu budynku. Masywna podłoga nie reaguje natychmiast, dlatego częste zmiany utrudniają prawidłową ocenę.</p></div></details>
          <details><summary>Co zrobić, gdy tylko jeden pokój jest niedogrzany?</summary><div class="rk-opt-faq-answer"><p>Najpierw sprawdź przepływ, siłownik, zapowietrzenie, powierzchnię czynną, okładzinę i geometrię pętli. Podnoszenie temperatury całego domu może przegrzać pozostałe pomieszczenia.</p></div></details>
        </div>
      </section>

      <section class="rk-opt-section" id="rk-opt-zrodla">
        <span class="rk-opt-eyebrow">Oficjalne podstawy metodyczne</span>
        <h2>Źródła techniczne wykorzystane w opracowaniu</h2>
        <p class="rk-opt-intro">Źródła opisują metodykę wydajności, wymiarowania i znaczenie optymalizacji systemu. Nie zastępują instrukcji konkretnego źródła ciepła, regulatora ani okładziny.</p>
        <div class="rk-opt-sources">
          <div class="rk-opt-source"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021 — wyznaczanie wydajności systemów powierzchniowych</a><p>Oficjalny zakres obejmuje strumień ciepła, temperaturę powierzchni, różnicę temperatur medium i charakterystyki układów.</p></div>
          <div class="rk-opt-source"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta normy opisującej metodę projektowania systemu zapewniającego wymaganą moc.</p></div>
          <div class="rk-opt-source"><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-floor-heating-methods-for-the-determination-of-the-thermal-output-using-calculations-and-experimental-tests" target="_blank" rel="noopener nofollow">BSI / BS EN 1264-2:2021 — obliczeniowe i badawcze metody określania mocy</a><p>Oficjalny opis zależności wydajności od różnicy temperatur medium i pomieszczenia oraz parametrów systemu.</p></div>
          <div class="rk-opt-source"><a href="https://www.gov.uk/government/news/heat-pumps-explained-experts-answer-your-questions" target="_blank" rel="noopener nofollow">GOV.UK — pompy ciepła i optymalizacja instalacji</a><p>Materiał rządowy podkreślający znaczenie poprawnego projektu oraz optymalizacji całego systemu dla efektywności.</p></div>
        </div>
      </section>

      <section class="rk-opt-author" id="rk-opt-autor" aria-label="Autor opracowania">
        <input type="radio" name="rk-opt-author-tabs" id="rk-opt-author-about" checked="">
        <input type="radio" name="rk-opt-author-tabs" id="rk-opt-author-exp">
        <input type="radio" name="rk-opt-author-tabs" id="rk-opt-author-method">
        <header class="rk-opt-author-head">
          <div>
            <span class="rk-opt-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-opt-author-mark">OBLICZENIA CIEPLNE • OGRZEWANIE PŁASZCZYZNOWE • HYDRAULIKA INSTALACJI</span>
        </header>
        <div class="rk-opt-author-layout">
          <aside class="rk-opt-author-side">
            <div class="rk-opt-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-opt-author-name">Robert Kucharski</div>
            <div class="rk-opt-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-opt-author-social-label">Profile autora</div>
            <div class="rk-opt-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="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.2H1.6V22h3.6V7.2ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22 13.5c0-4.5-2.4-6.6-5.6-6.6-2.6 0-3.7 1.4-4.4 2.4V7.2H8.4V22H12v-7.3c0-1.9.4-3.8 2.8-3.8 2.4 0 2.4 2.2 2.4 3.9V22H22v-8.5Z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M13.7 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.4c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.4H6.8V13h3.1v9h3.8Z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.4l7.2-8.3L.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L6.3 4H4.5l13.3 15.8Z"></path></svg></a>
            </div>
          </aside>
          <div class="rk-opt-author-main">
            <blockquote class="rk-opt-author-quote"><p>„Temperatury zasilania nie dobiera się do źródła ciepła ani do metrażu domu. Jest wynikiem obciążenia pomieszczeń, czynnej powierzchni, konstrukcji podłogi i warunków, w których instalacja ma zapewnić komfort.”</p></blockquote>
            <div class="rk-opt-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-opt-author-tab" for="rk-opt-author-about">O autorze</label>
              <label class="rk-opt-author-tab" for="rk-opt-author-exp">Doświadczenie</label>
              <label class="rk-opt-author-tab" for="rk-opt-author-method">Metodyka</label>
            </div>
            <div class="rk-opt-author-panel rk-opt-author-panel-about">
              <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W publikacjach prowadzi czytelnika od strat ciepła i powierzchni czynnej przez rozstaw oraz długości pętli aż do przepływów, nastaw rozdzielacza i współpracy instalacji ze źródłem ciepła.</p>
              <p>Jest autorem specjalistycznych opracowań o ogrzewaniu płaszczyznowym, pompach obiegowych, rotametrach, średnicach przewodów, automatyce, jakości medium i niskotemperaturowej pracy pomp ciepła. Rozdziela dane z dokumentacji, wynik obliczeń oraz czynności regulacyjne, aby czytelnik wiedział, kiedy wystarczy korekta ustawienia, a kiedy potrzebna jest diagnoza projektu.</p>
            </div>
            <div class="rk-opt-author-panel rk-opt-author-panel-exp">
              <p>W rzeczywistym projekcie temperatura zasilania nie powstaje jako samodzielne założenie. Najpierw obliczana jest strata każdego pomieszczenia, powierzchnia aktywna i wymagana moc jednostkowa. Następnie sprawdzane są rozstaw, konstrukcja, okładzina, temperatura powierzchni, przepływ oraz strata ciśnienia pętli.</p>
              <p>Doświadczenie projektowe pokazuje, że podnoszenie temperatury często maskuje inny problem: zbyt małą powierzchnię czynną, szeroki rozstaw, wysoki opór wykończenia, ograniczony przepływ albo błędną krzywą. Dlatego artykuł prowadzi od wymaganej mocy do regulacji, a nie od liczby na sterowniku do obietnicy efektu.</p>
            </div>
            <div class="rk-opt-author-panel rk-opt-author-panel-method">
              <p>Opracowanie rozdziela temperaturę projektową od eksploatacyjnej. Analizator wykorzystuje jawny model liniowej krzywej oraz podstawowe zależności mocy powierzchni i przepływu. Nie podaje katalogowej charakterystyki żadnego producenta i nie generuje fikcyjnego COP ani rachunku za energię.</p>
              <p>Podstawę stanowi metodyka wodnych systemów powierzchniowych, zasady bilansu cieplnego i hydrauliki oraz aktualne wymagania konkretnej okładziny i źródła ciepła. Jeżeli danych brakuje, wynik wskazuje dalszy krok zamiast przedstawiać jedną temperaturę jako pewne rozwiązanie.</p>
            </div>
            <p class="rk-opt-mini-label">Profil autora i właściciel serwisów</p>
            <div class="rk-opt-portals">
              <a href="https://projekt-ogrzewania.pl/author/admin3399/">Wszystkie wpisy autora</a>
              <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow me">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow me">Sobir.pl</a>
            </div>
          </div>
        </div>
      </section>

      <aside class="rk-opt-sales-cta" aria-label="Końcowe zamówienie projektu ogrzewania podłogowego">
        <h3>Temperatura projektowa powinna wynikać z obliczeń pomieszczeń, a nie z ustawienia „standard 35°C”</h3>
        <p>Projekt ogrzewania podłogowego uwzględnia straty ciepła, powierzchnię czynną, opór wykończenia, rozstaw i długości pętli, przepływy, temperaturę zasilania i powrotu oraz nastawy rozdzielacza. Dzięki temu krzywa grzewcza zaczyna się od realnego punktu projektowego.</p>
        <a class="rk-opt-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      </aside>

      <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.pl",
            "inLanguage": "pl-PL",
            "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
            "potentialAction": {
              "@type": "SearchAction",
              "target": { "@type": "EntryPoint", "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}" },
              "query-input": "required name=search_term_string"
            }
          },
          {
            "@type": "Organization",
            "@id": "https://projekt-ogrzewania.pl/#organization",
            "name": "Projekt-Ogrzewania.pl",
            "url": "https://projekt-ogrzewania.pl/",
            "logo": { "@type": "ImageObject", "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" },
            "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/",
            "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
          },
          {
            "@type": "Organization",
            "@id": "https://sobir.pl/#organization",
            "name": "Sobir.pl",
            "url": "https://sobir.pl/",
            "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
          },
          {
            "@type": "Person",
            "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
            "name": "Robert Kucharski",
            "url": "https://projekt-ogrzewania.pl/author/admin3399/",
            "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
            "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
            "knowsAbout": [
              "ogrzewanie podłogowe",
              "obliczenia cieplne",
              "hydraulika instalacji grzewczych",
              "krzywe grzewcze",
              "temperatura zasilania",
              "równoważenie hydrauliczne"
            ],
            "sameAs": [
              "https://www.linkedin.com/in/robert-kucharski-38069b48/",
              "https://www.facebook.com/projektogrzewaniapl",
              "https://x.com/Projekt_HVAC"
            ],
            "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" }
          },
          {
            "@type": "BreadcrumbList",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#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": "Optymalna temperatura ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" }
            ]
          },
          {
            "@type": "WebPage",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webpage",
            "url": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/",
            "name": "Jaka jest optymalna temperatura ogrzewania podłogowego? Zasilanie, powrót i podłoga",
            "description": "Praktyczny poradnik wyznaczania i regulowania temperatury zasilania, powrotu, powierzchni oraz krzywej grzewczej podłogówki.",
            "inLanguage": "pl-PL",
            "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
            "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#breadcrumb" },
            "dateModified": "2026-09-01"
          },
          {
            "@type": "TechArticle",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#article",
            "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#webpage" },
            "headline": "Jaka jest optymalna temperatura ogrzewania podłogowego? Zasilanie, powrót i podłoga",
            "description": "Techniczne opracowanie temperatury zasilania, powrotu, powierzchni oraz regulacji pogodowej wodnego ogrzewania podłogowego.",
            "dateModified": "2026-09-01",
            "inLanguage": "pl-PL",
            "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
            "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
            "keywords": [
              "optymalna temperatura ogrzewania podłogowego",
              "temperatura zasilania podłogówki",
              "temperatura powrotu podłogówki",
              "krzywa grzewcza podłogówki",
              "delta T ogrzewania podłogowego",
              "temperatura podłogówki przy pompie ciepła"
            ],
            "hasPart": [
              { "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#application" },
              { "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#howto" },
              { "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#faq" }
            ]
          },
          {
            "@type": "WebApplication",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#application",
            "name": "Analizator temperatury i krzywej grzewczej podłogówki",
            "description": "Narzędzie oblicza wymaganie jednostkowe, ΔT i przepływ oraz pokazuje krzywą temperatury zasilania względem temperatury zewnętrznej.",
            "applicationCategory": "UtilitiesApplication",
            "operatingSystem": "Dowolny system z przeglądarką internetową",
            "browserRequirements": "JavaScript",
            "isAccessibleForFree": true,
            "url": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#rk-opt-analizator",
            "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
            "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" }
          },
          {
            "@type": "HowTo",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#howto",
            "name": "Jak ustawić optymalną temperaturę ogrzewania podłogowego",
            "description": "Proces od wyznaczenia punktu projektowego do korekty krzywej grzewczej po uruchomieniu instalacji.",
            "step": [
              { "@type": "HowToStep", "position": 1, "name": "Oblicz wymaganie pomieszczeń", "text": "Wyznacz straty ciepła, powierzchnie czynne i wymagane moce jednostkowe." },
              { "@type": "HowToStep", "position": 2, "name": "Sprawdź konstrukcję podłogi", "text": "Uwzględnij rozstaw rur, jastrych, opór okładziny i limit temperatury powierzchni." },
              { "@type": "HowToStep", "position": 3, "name": "Wyznacz punkt projektowy", "text": "Określ temperaturę zasilania i powrotu zapewniającą wymaganą moc podczas obliczeniowego mrozu." },
              { "@type": "HowToStep", "position": 4, "name": "Ustaw regulację pogodową", "text": "Wprowadź punkt projektowy oraz dolną część krzywej odpowiednią dla granicy grzania." },
              { "@type": "HowToStep", "position": 5, "name": "Zrównoważ pętle", "text": "Ustaw przepływy wynikające z mocy poszczególnych obwodów i sprawdź hydraulikę." },
              { "@type": "HowToStep", "position": 6, "name": "Koryguj po obserwacji", "text": "Wykonuj małe pojedyncze zmiany i oceniaj je dopiero po ustabilizowaniu budynku." }
            ]
          },
          {
            "@type": "FAQPage",
            "@id": "https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/#faq",
            "mainEntity": [
              {
                "@type": "Question",
                "name": "Jaka temperatura zasilania podłogówki jest optymalna?",
                "acceptedAnswer": { "@type": "Answer", "text": "Najniższa, przy której wszystkie pomieszczenia osiągają temperaturę projektową bez przekroczenia ograniczeń powierzchni i okładziny. W wielu nowych domach przez dużą część sezonu jest to około 28–35°C, ale wynik konkretnego budynku może być inny." }
              },
              {
                "@type": "Question",
                "name": "Czy 35°C jest maksymalną temperaturą podłogówki?",
                "acceptedAnswer": { "@type": "Answer", "text": "Nie. To częsty cel dla instalacji niskotemperaturowej, a nie uniwersalne maksimum. Granice wynikają z konstrukcji, temperatury powierzchni, okładziny i dokumentacji systemu." }
              },
              {
                "@type": "Question",
                "name": "Jaka powinna być temperatura powrotu podłogówki?",
                "acceptedAnswer": { "@type": "Answer", "text": "Wynika z temperatury zasilania, mocy i przepływu. Nie ustawia się jej jako niezależnej liczby. Częstym założeniem jest ΔT około 5 K, lecz projekt może przyjmować inną wartość." }
              },
              {
                "@type": "Question",
                "name": "Czy zasilanie i powrót 35/28°C są prawidłowe?",
                "acceptedAnswer": { "@type": "Answer", "text": "Oznaczają ΔT równe 7 K. Taki punkt może być prawidłowy, jeżeli zapewnia wymagany przepływ i moc, a powierzchnia pozostaje w dopuszczalnym zakresie. Same dwie liczby nie wystarczą do pełnej oceny." }
              },
              {
                "@type": "Question",
                "name": "Jaka temperatura podłogówki jest najlepsza dla pompy ciepła?",
                "acceptedAnswer": { "@type": "Answer", "text": "Najniższa zapewniająca projektową moc i komfort. Niższa wymagana temperatura zwykle sprzyja efektywności, ale dokładny wpływ na COP zależy od modelu urządzenia i warunków pracy." }
              },
              {
                "@type": "Question",
                "name": "Czy podłoga powinna być ciepła w dotyku?",
                "acceptedAnswer": { "@type": "Answer", "text": "Nie przez cały sezon. Przy małym zapotrzebowaniu powierzchnia może być tylko nieznacznie cieplejsza od powietrza i wydawać się neutralna, mimo że utrzymuje prawidłową temperaturę pomieszczenia." }
              },
              {
                "@type": "Question",
                "name": "Czy każdy pokój powinien mieć inną temperaturę zasilania?",
                "acceptedAnswer": { "@type": "Answer", "text": "Zwykle nie. Pętle jednego rozdzielacza otrzymują tę samą temperaturę wody, a różną moc uzyskuje się przez powierzchnię, rozstaw, przepływ, długość pętli i okładzinę." }
              },
              {
                "@type": "Question",
                "name": "Czy można ustawić podłogówkę na 50°C?",
                "acceptedAnswer": { "@type": "Answer", "text": "Nie należy robić tego bez obliczeń i kontroli ograniczeń. Tak wysoka temperatura może prowadzić do przekroczenia temperatury powierzchni lub limitu okładziny i zwykle wskazuje na potrzebę sprawdzenia projektu oraz regulacji." }
              },
              {
                "@type": "Question",
                "name": "Jak często zmieniać krzywą grzewczą?",
                "acceptedAnswer": { "@type": "Answer", "text": "Wykonuj małe korekty pojedynczo i oceniaj je po ustabilizowaniu budynku. Masywna podłoga nie reaguje natychmiast, dlatego częste zmiany utrudniają prawidłową ocenę." }
              },
              {
                "@type": "Question",
                "name": "Co zrobić, gdy tylko jeden pokój jest niedogrzany?",
                "acceptedAnswer": { "@type": "Answer", "text": "Najpierw sprawdź przepływ, siłownik, zapowietrzenie, powierzchnię czynną, okładzinę i geometrię pętli. Podnoszenie temperatury całego domu może przegrzać pozostałe pomieszczenia." }
              }
            ]
          }
        ]
      }
      </script>

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

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

        function byId(id) { return document.getElementById(id); }
        function value(id) { return byId(id).value; }
        function numberValue(id) {
          var parsed = parseFloat(value(id).replace(",", "."));
          if (Number.isFinite(parsed)) { return parsed; }
          return 0;
        }
        function optionalNumber(id) {
          var raw = value(id).trim();
          if (raw === "") { return null; }
          var parsed = parseFloat(raw.replace(",", "."));
          if (Number.isFinite(parsed)) { return parsed; }
          return null;
        }
        function setText(id, text) { byId(id).textContent = text; }
        function format(number, digits) { return number.toFixed(digits).replace(".", ","); }
        function clamp(number, minimum, maximum) { return Math.min(Math.max(number, minimum), maximum); }
        function clear(element) {
          while (element.firstChild) { element.removeChild(element.firstChild); }
        }

        function zoneLimit(zone, custom) {
          if (zone === "bathroom") { return 33; }
          if (zone === "edge") { return 35; }
          if (zone === "custom") { return custom; }
          return 29;
        }

        function surfaceFromFlux(flux, room) {
          if (flux <= 0) { return room; }
          return room + Math.pow(flux / 8.92, 1 / 1.1);
        }

        function curveSupply(outdoor, outdoorDesign, heatingStop, supplyDesign, minimumSupply) {
          if (outdoor <= outdoorDesign) { return supplyDesign; }
          if (outdoor >= heatingStop) { return minimumSupply; }
          var share = (outdoor - outdoorDesign) / (heatingStop - outdoorDesign);
          return supplyDesign + (minimumSupply - supplyDesign) * share;
        }

        function addMessage(container, text, type) {
          var item = document.createElement("div");
          item.className = "rk-opt-diagnostic " + type;
          item.textContent = text;
          container.appendChild(item);
        }

        function svg(name, attributes, text) {
          var element = document.createElementNS("http://www.w3.org/2000/svg", name);
          Object.keys(attributes).forEach(function (key) {
            element.setAttribute(key, String(attributes[key]));
          });
          if (typeof text === "string") { element.textContent = text; }
          return element;
        }

        function correctionFor(symptom) {
          if (symptom === "cold-all") { return {shift: 1, slope: 0, label: "+1 K poziomu"}; }
          if (symptom === "warm-all") { return {shift: -1, slope: 0, label: "−1 K poziomu"}; }
          if (symptom === "cold-frost") { return {shift: 0, slope: 2, label: "+2 K punktu mrozu"}; }
          if (symptom === "warm-mild") { return {shift: -1, slope: -1, label: "obniż dół krzywej"}; }
          return {shift: 0, slope: 0, label: "0 K"};
        }

        function drawChart(data) {
          var grid = byId("rk-opt-chart-grid");
          var lines = byId("rk-opt-chart-lines");
          var points = byId("rk-opt-chart-points");
          var labels = byId("rk-opt-chart-labels");
          clear(grid);
          clear(lines);
          clear(points);
          clear(labels);

          var left = 70;
          var right = 730;
          var top = 28;
          var bottom = 355;
          var xMin = Math.min(-25, data.outdoorDesign - 2);
          var xMax = 20;
          var yMin = 18;
          var yMax = Math.max(50, data.supplyDesign + data.correction.shift + data.correction.slope + 5, data.supplyNow + 5);

          function x(value) { return left + (value - xMin) / (xMax - xMin) * (right - left); }
          function y(value) { return bottom - (value - yMin) / (yMax - yMin) * (bottom - top); }

          var index;
          for (index = 0; index <= 5; index += 1) {
            var xValue = xMin + (xMax - xMin) / 5 * index;
            var xPosition = x(xValue);
            grid.appendChild(svg("line", {x1:xPosition,y1:top,x2:xPosition,y2:bottom,stroke:"#d8e6eb","stroke-width":1}));
            labels.appendChild(svg("text", {x:xPosition,y:bottom+24,fill:"#607783","font-size":12,"text-anchor":"middle"}, format(xValue,0)+"°C"));

            var yValue = yMin + (yMax - yMin) / 5 * index;
            var yPosition = y(yValue);
            grid.appendChild(svg("line", {x1:left,y1:yPosition,x2:right,y2:yPosition,stroke:"#d8e6eb","stroke-width":1}));
            labels.appendChild(svg("text", {x:left-12,y:yPosition+4,fill:"#607783","font-size":12,"text-anchor":"end"}, format(yValue,0)+"°C"));
          }

          grid.appendChild(svg("line", {x1:left,y1:top,x2:left,y2:bottom,stroke:"#718995","stroke-width":1.5}));
          grid.appendChild(svg("line", {x1:left,y1:bottom,x2:right,y2:bottom,stroke:"#718995","stroke-width":1.5}));
          labels.appendChild(svg("text", {x:(left+right)/2,y:414,fill:"#334b58","font-size":13,"font-weight":800,"text-anchor":"middle"}, "temperatura zewnętrzna [°C]"));
          labels.appendChild(svg("text", {x:18,y:(top+bottom)/2,fill:"#334b58","font-size":13,"font-weight":800,"text-anchor":"middle",transform:"rotate(-90 18 "+((top+bottom)/2)+")"}, "temperatura zasilania [°C]"));

          var currentPoints = [];
          var proposedPoints = [];
          for (index = 0; index <= 80; index += 1) {
            var outdoor = xMin + (xMax - xMin) / 80 * index;
            var currentSupply = curveSupply(outdoor, data.outdoorDesign, data.heatingStop, data.supplyDesign, data.minimumSupply);
            var proposedSupply = curveSupply(
              outdoor,
              data.outdoorDesign,
              data.heatingStop,
              data.supplyDesign + data.correction.shift + data.correction.slope,
              data.minimumSupply + data.correction.shift
            );
            currentPoints.push(x(outdoor).toFixed(2)+","+y(currentSupply).toFixed(2));
            proposedPoints.push(x(outdoor).toFixed(2)+","+y(proposedSupply).toFixed(2));
          }
          lines.appendChild(svg("polyline", {points:currentPoints.join(" "),fill:"none",stroke:"#078fbe","stroke-width":4,"stroke-linecap":"round","stroke-linejoin":"round"}));
          lines.appendChild(svg("polyline", {points:proposedPoints.join(" "),fill:"none",stroke:"#ff6a3d","stroke-width":4,"stroke-dasharray":"10 7","stroke-linecap":"round","stroke-linejoin":"round"}));

          if (data.outdoorNow >= xMin) {
            if (data.outdoorNow <= xMax) {
              var measuredX = x(data.outdoorNow);
              var measuredY = y(data.supplyNow);
              points.appendChild(svg("line", {x1:measuredX,y1:top,x2:measuredX,y2:bottom,stroke:"#16836b","stroke-width":1.5,"stroke-dasharray":"5 5",opacity:.7}));
              points.appendChild(svg("circle", {cx:measuredX,cy:measuredY,r:7,fill:"#16836b",stroke:"#ffffff","stroke-width":3}));
              labels.appendChild(svg("text", {x:measuredX+10,y:measuredY-10,fill:"#125f4f","font-size":11,"font-weight":900}, "pomiar"));
            }
          }

          var designX = x(data.outdoorDesign);
          var designY = y(data.supplyDesign);
          points.appendChild(svg("circle", {cx:designX,cy:designY,r:6,fill:"#102536",stroke:"#ffffff","stroke-width":2}));
          labels.appendChild(svg("text", {x:designX+9,y:designY-9,fill:"#102536","font-size":11,"font-weight":900}, "punkt projektowy"));
        }

        function invalid(message) {
          setText("rk-opt-result-title", "Popraw dane wejściowe");
          setText("rk-opt-result-text", message);
          setText("rk-opt-result-badge", "Błąd danych");
          byId("rk-opt-result-badge").className = "rk-opt-result-badge is-bad";
        }

        function calculate(event) {
          if (event) { event.preventDefault(); }

          var load = numberValue("rk-opt-load");
          var activeArea = numberValue("rk-opt-active-area");
          var roomDesign = numberValue("rk-opt-room-design");
          var zone = value("rk-opt-zone");
          var customLimit = numberValue("rk-opt-zone-limit");
          var productLimit = optionalNumber("rk-opt-product-limit");
          var surfaceLimit = zoneLimit(zone, customLimit);
          if (productLimit !== null) { surfaceLimit = Math.min(surfaceLimit, productLimit); }

          var outdoorDesign = numberValue("rk-opt-outdoor-design");
          var supplyDesign = numberValue("rk-opt-supply-design");
          var heatingStop = numberValue("rk-opt-heating-stop");
          var minimumSupply = numberValue("rk-opt-min-supply");
          var outdoorNow = numberValue("rk-opt-outdoor-now");
          var supplyNow = numberValue("rk-opt-supply-now");
          var returnNow = numberValue("rk-opt-return-now");
          var targetRoom = numberValue("rk-opt-room-target");
          var actualRoom = numberValue("rk-opt-room-actual");
          var stable = value("rk-opt-stable");
          var symptom = value("rk-opt-symptom");

          if (load <= 0) { invalid("Projektowa strata ciepła musi być większa od zera."); return; }
          if (activeArea <= 0) { invalid("Powierzchnia czynna musi być większa od zera."); return; }
          if (heatingStop <= outdoorDesign) { invalid("Granica wyłączenia ogrzewania musi być wyższa od projektowej temperatury zewnętrznej."); return; }
          if (supplyDesign <= minimumSupply) { invalid("Zasilanie projektowe musi być wyższe od minimalnego zasilania przy granicy grzania."); return; }
          if (returnNow >= supplyNow) { invalid("Bieżąca temperatura powrotu musi być niższa od zasilania."); return; }
          if (surfaceLimit <= roomDesign) { invalid("Limit temperatury powierzchni musi być wyższy od temperatury pomieszczenia."); return; }

          var requiredFlux = load / activeArea;
          var requiredSurface = surfaceFromFlux(requiredFlux, roomDesign);
          var deltaT = supplyNow - returnNow;
          var meanWater = (supplyNow + returnNow) / 2;
          var expectedNow = curveSupply(outdoorNow, outdoorDesign, heatingStop, supplyDesign, minimumSupply);
          var deviation = supplyNow - expectedNow;
          var flowLitres = deltaT > 0 ? load / (1.163 * deltaT) : 0;
          var correction = correctionFor(symptom);
          var diagnostics = byId("rk-opt-diagnostics");
          var actions = byId("rk-opt-actions");
          clear(diagnostics);
          clear(actions);

          setText("rk-opt-metric-q", format(requiredFlux,1)+" W/m²");
          setText("rk-opt-metric-surface", format(requiredSurface,1)+"°C");
          setText("rk-opt-metric-dt", format(deltaT,1)+" K");
          setText("rk-opt-metric-mean", format(meanWater,1)+"°C");
          setText("rk-opt-metric-curve", format(expectedNow,1)+"°C");
          setText("rk-opt-metric-deviation", (deviation>=0?"+":"")+format(deviation,1)+" K");
          setText("rk-opt-metric-flow", format(flowLitres,0)+" l/h");
          setText("rk-opt-metric-correction", correction.label);

          var title = "Punkt pracy wygląda spójnie";
          var copy = "Jeżeli komfort jest stabilny, nie podnoś temperatury tylko dlatego, że podłoga nie wydaje się ciepła w dotyku.";
          var badge = "Bez korekty";
          var badgeClass = "rk-opt-result-badge is-good";

          if (requiredSurface > surfaceLimit) {
            title = "Wymagana moc przekracza limit powierzchni";
            copy = "Samo podnoszenie temperatury zasilania nie jest prawidłowym rozwiązaniem. Sprawdź powierzchnię czynną, straty budynku i dodatkowy emiter.";
            badge = "Zatrzymaj regulację";
            badgeClass = "rk-opt-result-badge is-bad";
            addMessage(diagnostics, "Wymagana średnia temperatura powierzchni wynosi około "+format(requiredSurface,1)+"°C, a efektywny limit to "+format(surfaceLimit,1)+"°C.", "is-bad");
            addMessage(actions, "Nie podnoś krzywej. Potrzebna jest weryfikacja mocy, powierzchni czynnej i konstrukcji podłogi.", "is-bad");
          } else if (symptom === "one-room") {
            title = "To wygląda na problem lokalny, nie na globalną krzywą";
            copy = "Podniesienie temperatury całego źródła może przegrzać pomieszczenia, które działają prawidłowo.";
            badge = "Sprawdź pętlę";
            badgeClass = "rk-opt-result-badge is-warning";
            correction = {shift:0,slope:0,label:"bez globalnej zmiany"};
            setText("rk-opt-metric-correction", correction.label);
            addMessage(diagnostics, "Problem tylko w części domu zwykle wymaga sprawdzenia przepływu, siłownika, powietrza, okładziny i powierzchni.", "");
            addMessage(actions, "Porównaj przepływ problemowej pętli z projektem i sprawdź, czy obwód jest całkowicie otwarty.", "is-good");
          } else if (stable !== "long") {
            title = "Instalacja nie pracowała jeszcze wystarczająco długo";
            copy = "Masywna podłoga może nadal reagować na poprzednie ustawienie. Nie wykonuj następnej zmiany na podstawie krótkiej obserwacji.";
            badge = "Poczekaj";
            badgeClass = "rk-opt-result-badge is-warning";
            correction = {shift:0,slope:0,label:"poczekaj"};
            setText("rk-opt-metric-correction", correction.label);
            addMessage(diagnostics, "Czas stabilnej pracy jest krótszy niż 24 godziny.", "");
            addMessage(actions, "Zapisuj temperatury i komfort bez dalszych zmian, aż podłoga oraz budynek się ustabilizują.", "is-good");
          } else if (symptom === "cold-all") {
            title = "Możliwa zbyt niska cała krzywa";
            copy = "Po sprawdzeniu przepływów można przetestować niewielkie przesunięcie krzywej w górę.";
            badge = "Poziom +1 K";
            badgeClass = "rk-opt-result-badge is-warning";
            addMessage(diagnostics, "Za chłodno przy różnych temperaturach zewnętrznych wskazuje na poziom całej krzywej albo ograniczenie mocy.", "");
            addMessage(actions, "Sprawdź najpierw przepływy i dostępność mocy źródła, a następnie podnieś poziom małym krokiem.", "is-good");
          } else if (symptom === "warm-all") {
            title = "Możliwa zbyt wysoka cała krzywa";
            copy = "Niewielkie obniżenie poziomu może ograniczyć przegrzewanie bez zmiany nachylenia.";
            badge = "Poziom −1 K";
            badgeClass = "rk-opt-result-badge is-warning";
            addMessage(diagnostics, "Za ciepło w różnych warunkach pogodowych wskazuje na zbyt wysokie przesunięcie całej krzywej.", "");
            addMessage(actions, "Obniż poziom małym krokiem i ponownie obserwuj instalację po ustabilizowaniu.", "is-good");
          } else if (symptom === "cold-frost") {
            title = "Możliwe zbyt małe nachylenie krzywej";
            copy = "Jeżeli przy łagodnej pogodzie jest dobrze, a problem pojawia się podczas mrozu, sprawdź punkt projektowy i dostępną moc.";
            badge = "Sprawdź nachylenie";
            badgeClass = "rk-opt-result-badge is-warning";
            addMessage(diagnostics, "Objaw pojawiający się głównie podczas mrozu może oznaczać zbyt niski punkt projektowy lub brak mocy emitera.", "");
            addMessage(actions, "Zwiększaj punkt mrozu tylko po potwierdzeniu limitu powierzchni i mocy najtrudniejszego pomieszczenia.", "is-good");
          } else if (symptom === "warm-mild") {
            title = "Dolna część krzywej może być za wysoko";
            copy = "Jeżeli podczas mrozu jest dobrze, a jesienią dom się przegrzewa, sprawdź minimalne zasilanie i granicę wyłączenia ogrzewania.";
            badge = "Obniż dół krzywej";
            badgeClass = "rk-opt-result-badge is-warning";
            addMessage(diagnostics, "Problem w okresach przejściowych wskazuje na zbyt wysoką dolną część charakterystyki albo zbyt późne wyłączenie grzania.", "");
            addMessage(actions, "Sprawdź minimalną temperaturę zasilania, granicę grzania oraz zyski słoneczne.", "is-good");
          } else {
            addMessage(diagnostics, "Temperatura rzeczywista i zadana są zgodne, a użytkownik nie zgłasza problemu zależnego od pogody.", "is-good");
            addMessage(actions, "Pozostaw ustawienia i obserwuj najtrudniejsze pomieszczenie podczas zmiany pogody.", "is-good");
          }

          if (deltaT > 10) { addMessage(diagnostics, "ΔT przekracza 10 K. Sprawdź przepływ i równoważenie przed podnoszeniem temperatury.", "is-bad"); }
          if (deltaT < 2) { addMessage(diagnostics, "ΔT jest mniejsze niż 2 K. Zweryfikuj stabilność pomiarów, przepływ oraz chwilowy odbiór ciepła.", ""); }
          if (Math.abs(deviation) > 2) { addMessage(diagnostics, "Zmierzona temperatura zasilania odbiega od modelowej krzywej o "+format(Math.abs(deviation),1)+" K.", ""); }
          if (actualRoom < targetRoom - .5) { addMessage(diagnostics, "Temperatura rzeczywista jest wyraźnie niższa od zadanej.", ""); }
          if (actualRoom > targetRoom + .5) { addMessage(diagnostics, "Temperatura rzeczywista jest wyraźnie wyższa od zadanej.", ""); }
          if (supplyDesign >= 45) { addMessage(diagnostics, "Projektowy punkt zasilania jest wysoki. Sprawdź, czy wynika z obliczeń podłogi i okładziny.", ""); }

          setText("rk-opt-result-title", title);
          setText("rk-opt-result-text", copy);
          setText("rk-opt-result-badge", badge);
          byId("rk-opt-result-badge").className = badgeClass;

          drawChart({
            outdoorDesign: outdoorDesign,
            supplyDesign: supplyDesign,
            heatingStop: heatingStop,
            minimumSupply: minimumSupply,
            outdoorNow: outdoorNow,
            supplyNow: supplyNow,
            correction: correction
          });
        }

        byId("rk-opt-zone").addEventListener("change", function () {
          if (this.value === "custom") {
            byId("rk-opt-zone-limit").removeAttribute("disabled");
          } else {
            byId("rk-opt-zone-limit").setAttribute("disabled", "disabled");
          }
          calculate();
        });
        byId("rk-opt-form").addEventListener("submit", calculate);
        root.querySelectorAll("#rk-opt-form input, #rk-opt-form select").forEach(function (field) {
          field.addEventListener("change", calculate);
        });
        byId("rk-opt-zone-limit").setAttribute("disabled", "disabled");
        calculate();
      }());
      </script>
    </div>
  </article>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">Jaka jest optymalna temperatura ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
